Construction Set Schwerer Script

Ukauka

Abenteurer
hallo schon wieder:lol:

ich brauche ein Script das bewirkt, dass ein bestimmter NPC nur durch ein bestimmtes Schwert Schaden nimmt oder stirbt. Er soll dann gegen alle anderen Waffen Unverwundbar sein!!!!

ich weiß, dass das ein sehr komplexes Script ist aber es ist zu machen;) oder??
 
ich würd ihm einfach massig HP geben, nen helm, der ihn komplett schützt, und eine Waffe, die so stark ist, das sie ihn tötet...
 
Code:
scn Naquadahschwert

Begin OnHit
setessential MeinNPC 1
end

Begin OnHitwith SchwertID
setessential MeinNPC 0
end
So würde ich es machen
 
ich würds einfach den npc von anfang an auf essential setzen und dann nur folgenden block in das npc script einsetzen:

Begin OnHitwith SchwertID
setessential MeinNPC 0
kill ;wenn er sofort sterben soll
end
 
Bei den vorgeschlagenen Dingen wird der NPC zwar unbesiegbar, aber trotz dem "Essential" verwundbar. Wenn du den NPC nicht nur unsterblich sondern auch unverwundbar machen willst, würde ich folgendes machen:

Du erstellst ein Enchantment, das vor sämtlichen Schäden schützt. Feuer widerstehen 999999999, Frost widerstehen 999999999, Schock widerstehen 999999999, Magie widerstehen 999999999, Lebensenergie festigen 999999999, Herkömmlichen Waffen widerstehen 999999999 usw. usf.

Jetzt erstellst du noch einen Helm, ein Amulett, egal was, und gibst es dem NPC. Auf diesem, sagen wir Amulett, liegt dein Enchantment. Du erstellst noch ein zweites Amulett ohne Verzauberung bzw. das ihn vor allem außer den normalen Waffen bzw. Magie schützt, je nach dem, was für eine Waffe du hast.

Standardmäßig hat der NPC jetzt das verzauberte Amulett angelegt, ist also unbesiegbar. Sobald der Spieler ihn jedoch mit deiner Waffe trifft, wird ein Script gestartet, der auf dem NPC liegt:

Code:
scn MeinTollerUnbesiegbarUndWiederBesiegbarMachScript

short done

begin onHit Player

if Player.GetEquipped [B]IDDerWaffe[/B] == 1 && done == 0
   [B]NPCRef[/B].unequipitem [B]IDDesVerzaubertenAmuletts[/B], 1
   [B]NPCRef[/B].equipitem [B]IDDes[I]Un[/I]verzaubertenAmuletts[/B], 1
   kill ;nur, wenn du willst, dass der NPC sofort getötet wird
   set done to 1
endif

end

Es gibt noch ein paar Möglichkeiten, das zu variieren, dazu musst du mir aber sagen, ob der NPC sofort sterben soll, ob er überhaupt unverwundbar oder nur unsterblich sein soll, was die Waffe für eine Waffe ist (verzaubert oder nicht), ob er auch gegen Zauber unverwundbar sein soll, ob er nach dem Treffer nur von der Waffe Schaden zugefügt bekommen soll und weiterhin gegen alles andere resistent sein soll oder ob er nach dem Treffer gegen gar nichts mehr resistent sein soll, wogegen er vor dem Treffer resistent sein soll...
 
Habe ich gerade mal zurechtgetippert.
Ist nicht getestet, sollte aber trotzdem klappen

Der Gegner ist durch einen Eigenschaftszauber gegen alles resistent. Sobald er mit dem Spezialschwert getroffen wird, verschwinden die Resistenzen und er kann ganz normal bekämpft werden.
Wird er von einem Zauber oder einer anderen Waffe getroffen, heilt er sich sofort vollständig, entfernt alle Zauber (z.B. länger wirkende Gifte) von sich und ist ab da wieder unverwundbar, weil der Zauber wieder aktiviert wird.
Code:
ScriptName OnlySpecialSwordHurtsScript

;abResistAllDamage ->     Zauber vom Typ EIGENSCHAFT
;                        Resistenz 100% gegen Magie, Gift, 
;                        Waffenschaden, Schock, Frost, Feuer.
;                        Zusätzlich "Lebensenergie wiederherstellen" 100
;                        Zusätzlich "Unterwasseratmung"

Short SpecialSwordTrigger


Begin OnLoad
    AddSpell abResistAllDamage            ;Beim Laden sicherstellen, dass alle Resistenzen aktiv sind
End


Begin OnHitWith SpecialSwordID
    Set SpecialSwordTrigger To 255        ;Treffer mit dem Spezialschwert registrieren
    Message "DEBUG: Treffer mit Spezialschwert"
End


Begin OnHit
    If SpecialSwordTrigger != 255
        Set SpecialSwordTrigger To -1    ;alle anderen Treffer registrieren
        Message "DEBUG: Treffer mit anderer Waffe oder Zauber"
    EndIf
End


Begin GameMode
    If SpecialSwordTrigger == 255
        RemoveSpell abResistAllDamage
        Message "DEBUG: Schutzzauber wurde entfernt"
        Set SpecialSwordTrigger To 0
    ElseIf SpecialSwordTrigger == -1
        DispelAllSpells
        ResetHealth
        AddSpell abResistAllDamage
        Message "DEBUG: Schutzzauber aktiv - Ziel ist unverwundbar"
        Set SpecialSwordTrigger To 0
    EndIf
End
oder die kurze Variante nach Fellans Muster. Allerdings kann der Player bei der Variante seinen Schaden auch durch Zauber austeilen, weil nur Bedingung ist, dass er das Schwert ausgerüstet hat. Er muss es aber nicht benutzen, weil die Art der Treffer nicht ausgewertet wird.
Code:
ScriptName OnlySpecialSwordHurtsScript

;abResistAllDamage ->     Zauber vom Typ EIGENSCHAFT
;                        Resistenz 100% gegen Magie, Gift, 
;                        Waffenschaden, Schock, Frost, Feuer.
;                        Zusätzlich "Lebensenergie wiederherstellen" 100
;                        Zusätzlich "Unterwasseratmung"


Begin OnLoad
    AddSpell abResistAllDamage            ;Beim Laden sicherstellen, dass alle Resistenzen aktiv sind
End

Begin OnHit Player
    If Player.GetEquipped SpecialSwordID
        RemoveSpell abResistAllDamage
        Message "DEBUG: Schutzzauber wurde entfernt"
    Else
        DispelAllSpells
        ResetHealth
        AddSpell abResistAllDamage
        Message "DEBUG: Schutzzauber aktiv - Ziel ist unverwundbar"
    EndIf
End
Jetzt erstellst du noch einen Helm, ein Amulett, egal was, und gibst es dem NPC.
Der Logik nach sollte das zwar klappen, aber leider ist das nicht zuverlässig. Die Eigenschaften von verzauberten Gegenständen wirken auf NPC nicht so, wie auf den Player, sondern u.U. eher zufällig. Ausserdem kann man das Game abschießen, in dem man einen NPC zwingt einen Gegenstand anzulegen - er aber zur selben Zeit "entscheidet" auf dem selben Slot einen anderen Gegenstand auszurüsten.
 
Zuletzt bearbeitet: