World of Gothic Archiv
> NWN-Hilfe wieder so ne scriptfrage... |
|
17.07.2002, 09:46 | #1 | ||
Goon Beiträge: 73 |
wieder so ne scriptfrage...
also, der einzige der mir da wahrscheinlich hier helfen kann, ist gawain.... wie schaffe ich es in einen Kampf gegen einen NPC, wenn der NPC "dem Tode nahe ist" mich anspricht und um sein Leben bettelt? hoffe ich habs verständlich erklärt mfg goon |
||
17.07.2002, 10:11 | #2 | ||
Levi Beiträge: 43 |
Ich weiß es nicht genau, aber ich nehm an du musst im On_Damaged-Skript des NPC halt mit GetCurrentHitpoints abfragen, wie guts ihm noch geht, und ab einer bestimmten Grenze erreicht hat mit AdjustReputation(GetPCSpeaker(), OBJECT_SELF, 100); die beiden "befrieden" und mit AssignCommand(oPC, ClearAllActions()); AssignCommand(oNPC, ClearAllActions()); AssignCommand(oNPC, ActionMoveToObject(oPC)); AssignCommand(oNPC, ActionStartConversation(oPC)); den Dialog starten. Was ich aber nicht weiß ist, wie du verhinderst, dass der NPC bei nem besonders däftigen Schlag doch verreckt. Vielleicht kann man das On_Death-Skript auch so ändern, dass der NPC nicht stirbt? |
||
17.07.2002, 17:04 | #3 | ||
Gawain15 Beiträge: 1.084 |
Yo so würd ichs auch machen. Du kannst den NPC nicht unverwundbar machen und dann wieder nicht... du kannst ihn aber heilen und Wiederauferstehung sprechen... aber das kommt nicht so gut wenn auf einmal wild rum gezaubert wird und der Spieler weiß gar nicht was passiert :) Es gibt den Befehl GetPercentageHPLoss oder so ähnlich (kann den Edi noch immer nicht starten... aber du wirst es schon finden) dort sagst du halt wenn der NPC 60% HP oder so verloren hat gibt er auf du kannst auch noch mit Speakstring eine Zeile machen so wie "Ich gebe auf" oder so dann weiß der Spieler warum der Kampf aufgehört hat und greift den NPC nicht gleich wieder an. Wenn jetzt natülich ein level 20 Char das Modul spielt und mit einem Schlag 80 Schaden macht ist es natürlich schlecht aber dann haben sie selbst Schuld das sie sich das Spiel versaut haben :) |
||
17.07.2002, 17:19 | #4 | ||
Cordovan Beiträge: 39 |
Könnte man das skript gerade mal im Ganzen hier aufführen damit ich es direkt übernehmen kann? Das wäre Klasse :D Vielen Dank :) |
||
17.07.2002, 17:42 | #5 | ||
Gawain15 Beiträge: 1.084 |
Ich grad nicht da der Edi noch immer nicht startet und ich daher die genauen Befehlsbezeichnungne nicht kenne (ja ich weiß ich sollte mich jetzt schämen weil ich die Bezeichnungen nicht alle auswendig kann :)) |
||
17.07.2002, 17:43 | #6 | ||
Levi Beiträge: 43 |
Also erstmal gibt GetPercentageHPLoss witzigerweise zurück, wieviel Prozent das opfer ÜBRIG hat! Witzige Skriptsprache... void main() { // Wenn nur noch 40% Health übrig sind... if (GetCurrentHitpoints(OBJECT_SELF)<=40) { // oPC sei der Angreifer object oPC = GetAttackTarget(); // Frieden machen. :) 100 is vielleicht übertrieben, // da heiraten die ja gleich, aber egal AdjustReputation(oPC, OBJECT_SELF, 100); // Alle bisherigen Kommandos (z.B. Angriffe) löschen AssignCommand(oPC, ClearAllActions()); AssignCommand(OBJECT_SELF, ClearAllActions()); // Und jetzt: labern AssignCommand(oNPC, ActionStartConversation(oPC)); } Is ungetestet, das musste selber machen. ;) |
||
17.07.2002, 17:51 | #7 | ||
Cordovan Beiträge: 39 |
Danke vielmals, werd es mal testen :) *verbeug* |
||
17.07.2002, 19:14 | #8 | ||
Levi Beiträge: 43 |
np. Wenns nicht klappt sag bescheid, dann schau ichs mir nochmal genauer an. |
||
18.07.2002, 09:17 | #9 | ||
Targeteron Beiträge: 5 |
versuch mal in das script das die HP checkt einfach das einzubauen: // Use this on an NPC to cause all creatures within a 10-metre radius to stop // what they are doing and sets the NPC's enemies within this range to be // neutral towards the NPC for roughly 3 minutes. If this command is run on a PC // or an object that is not a creature, nothing will happen. void SurrenderToEnemies() habs schnell aus dem scripteditor rauskopiert. der command sollte dann heissen AssignCommand(oNPC, SurrenderToEnemies()); AssignCommand(oNPC, ActionStartConversation(oPC)); das wars. |
||
18.07.2002, 11:20 | #10 | ||
Levi Beiträge: 43 |
Stimmt, das ist wahrscheinlich insofern besser, dass bei meinem Skript wahrscheinlich die Begleiter den Kampf nicht einstellen. Außerdem ist es kürzer. ;) |
||
|