Construction Set Nur bestimmte waffen sinnvoll

Verganon

Angehöriger
Hiho!

ich bin ja das absolute genie in sachen skripten deswegen frag ich mal wieder nach hilfe. hätte gerne einen Skript, mit dem man einem gegner nur schadet, wenn man einen richtigen Waffentyp benutzt (äxte, Lanzen etc.) ansonsten ist der gegner unverwundbar. kann mir das jemand schreiben? thx schonmal ;)

mfg
Verganon
 
Markiere den Thread doch bitte mit [MW] am Anfang.

Gut dieses Script ginge etwa so:

begin my_gegner_script

if ( GetPlayerDistance < 256 )
if ( Player->GetWeaponType != 1 )
Resurrect
endif
endif

end


Natürlich musst du bei GetWeaponType noch den richtigen Vergleichswert einsetzen:

-1 - keine Waffe
0 - Kurzwaffe
1 - Langwaffe, einhändig
2 - Langwaffe, zweihändig
3 - Stumpfe Waffe, einhändig
4 - Stumpfe Waffe, zweihändig, kurze Reichweite
5 - Stumpfe Waffe, zweihändig, große Reichweite
6 - Speer
7 - Axt, einhändig
8 - Axt, zweihändig
9 - Bogen
10 - Armbrust
11 - Wurfwaffe
12 - Pfeil
13 - Bolzen

Allerdings ist der Gegner so noch im Fernkampf und mit Magie verwundbar. Gegen Magie kannst du Resistenzen einsetzten. Wenn du aber auch Fernkampf ausschließen willst, musst du die Entfernungsabfrage entfernen. Dann geht dieses Script aber stark in die Performance.
 
Es geht vieleicht mit "resurrect" aber dabei wird der zu "Resurrectende" wieder auf Editor-Ausgangs-Einstellungen zurückgesetzt. (incl. Inventar). Dabei würde bereits gemachter Schaden wieder zunichte und der böse gegnerische Magier hätte zudem wieder volle Mana.
Aber im Prinzip ist's möglich. Besser wäre einen neuen Zauber, Typ Fähigkeit, zu erstellen. Ausdauer festigen 5000 Punkte + Ausdauer wiederherstellen 100 Punkte + Magie widerstehen 100 Punkte. Das macht denjenigen unverwundbar.

Und dann gib dem bösen Gegner solange diese Fähigkeit (Gegner->addspell "Unverwundbarkeit") wie der Spieler den falschen Waffentyp verwendet. Das solltest Du anhand der Liste von Killfetzer oben ganz easy bewerkstelligen können.

Und wenn
if (Gegner-> GetSpell "Unverwundbarkeit" == 1 )
musst Du sie ihm wieder wegnehmen
- Gegner-> RemoveSpell "Unverwundbarkeit" -
sobald der Spieler die "richtige" Waffe zückt.

also


wenn hat spieler falsche waffe
... wenn ich habe keine unverwundbarkeit
... ... bekomme ich unverwundbarkeit
...
ansonsten (hat spieler richtige waffe)

... wenn ich habe unverwundbarkeit
... ... nimm mir unverwundbarkeit weg
...



:)

PS.: Sollte es in der Zelle in der der Gegner ist Wasser geben dann füge der Unverwundbarkeit noch Wasseratmung hinzu

Ach ja, es gibt noch eine weitere Möglichkeit abzufragen ob eine ganz bestimmte Waffe eingesetzt wird. Der Befehl heisst

HitOnMe "WeaponID"

also

if ( HitOnMe "Sunder" == 1 )
;hat mich jemand mit Seelendonner gehauen
endif

leider funktioniert diese Abfrage aber nur an Kreaturen und nicht an NPCs
 
Zuletzt bearbeitet: