World of Gothic Archiv
> NWN-Hilfe Meine Npcs sind mir zu Höflich |
|
21.07.2002, 23:05 | #1 | ||
Sparschwein Beiträge: 44 |
Meine Npcs sind mir zu Höflich
Habe ein Paar Npcs Um Einen Tisch sitzen, wenn ein Spieler sie Anspricht Sollen sie Sitzen bleiben, und Ihren Satz sagen, oder was auch immer. Wie kann ich sie an den Stuhl nageln?` Und wenn ich sie Angreifen lassen will, wie bekomme ich sie wieder hoch :D |
||
22.07.2002, 08:08 | #2 | ||
Gawain15 Beiträge: 1.084 |
Irgendwo hier schwirrt ein Script rum mit dem die NPCs sitzen bleiben wenn du sie ansprichst... ich kuck nachher nochmal genauer... |
||
22.07.2002, 08:35 | #3 | ||
Gawain15 Beiträge: 1.084 |
Soderle bei OnConversation vor der letzten Klammer (}) einfügen: int nStuhl = 1; object oStuhl; oChair = GetNearestObjectByTag("Dein Stuhl", OBJECT_SELF, nStuhl); ActionSit(oStuhl); Der Stuhl sollte auch der Stuhl sein auf dem er gerade sitzt. |
||
22.07.2002, 17:47 | #4 | ||
Silvan Beiträge: 12 |
Fehlermeldung
Folgendes Script unter Con... { int nMatch = GetListenPatternNumber(); object oShouter = GetLastSpeaker(); object oIntruder; if (nMatch == -1 && GetCommandable(OBJECT_SELF)) { ClearAllActions(); BeginConversation(); } else if(nMatch != -1 && GetIsObjectValid(oShouter) && !GetIsPC(oShouter) && GetIsFriend(oShouter)) { if(nMatch == 4) { oIntruder = GetLocalObject(oShouter, "NW_BLOCKER_INTRUDER"); } else if (nMatch == 5) { oIntruder = GetLastHostileActor(oShouter); if(!GetIsObjectValid(oIntruder)) { oIntruder = GetAttemptedAttackTarget(); if(!GetIsObjectValid(oIntruder)) { oIntruder = GetAttemptedSpellTarget(); if(!GetIsObjectValid(oIntruder)) { oIntruder = OBJECT_INVALID; } } } } RespondToShout(oShouter, nMatch, oIntruder); } if(GetSpawnInCondition(NW_FLAG_ON_DIALOGUE_EVENT)) { SignalEvent(OBJECT_SELF, EventUserDefined(1004)); } int nChair = 1; object oChair; oChair = GetNearestObjectByTag(Chair, OBJECT_SELF, nChair); ActionSit(oChair); } Folgende Fehlermeldung: 22.07.02 18:47:38: Fehler. 'sitzen_talk' konnte nicht kompiliert werden. sitzen_talk.nss(62): FEHLER: VARIABLE OHNE TYP DEFINIERT Was ist falsch? Gruß Silvan |
||
22.07.2002, 18:40 | #5 | ||
Levi Beiträge: 43 |
Du musst das erste Chair in GetNearestObjectByTag ja auch in ""s setzen. ;) |
||
23.07.2002, 12:16 | #6 | ||
Erevain Beiträge: 253 |
Frisch gestohlen aus dem Bioware-Forum: :) void main() { if(GetCommandable(OBJECT_SELF)){ //This sets the NPC as the speaker { BeginConversation(); //This starts the conversation script. } ClearAllActions(); // Clears the actions so the NPC will not follow you with his/her eyes int nChair = 1; object oChair; oChair = GetNearestObjectByTag("chair01", OBJECT_SELF, nChair); ActionSit(oChair); //Sits the NPC down } } |
||
23.07.2002, 13:44 | #7 | ||
Sparschwein Beiträge: 44 |
Hm Wenn ich mir mit meinen newbieaugen den Script angucke, setzt er sich doch erst nach dem Gepräch hin ? |
||
25.07.2002, 12:03 | #8 | ||
Erevain Beiträge: 253 |
Richtig gesehen, stimmt auffallend. :( |
||
25.07.2002, 12:42 | #9 | ||
Levi Beiträge: 43 |
Naja, fast klappt das skript schon. Ich hab was ähnliches mit nem Heini der auf dem Boden sitzt. Wenn ich dem im OnConversation-Skript direkt sage "ClearAllActions" und "ActionPlayAnimation(ANIMATION_LOOPING_SIT_CROSS,1.0,4000.0);" bleibt er sitzen. Das problem: Die Conversation beginnt so nicht. Wenn ich BeginConversation vor das ClearAllActions mache, so wie in Erevains skript, wird das Gespräch mit ClearAllActions auch gelöscht, sprich der Kerl bleibt stumm. Mach ichs dahinter steht er trotzdem auf. |
||
|