Knochenkeule
Hausbruder
Ach was, kann nie schaden, wenn man sich mal damit beschäftigt. Zumindest einfache Script sind häufig von nutzen, zum Beispiel wenn man mal n kleines Easteregg einbauen will oder so.
int EnemyAround
int Index
ref ActorRef
[...]
set Index to 0
SaveIP 1
if ( Index <= GetNumRefs 69 1 0 )
set ActorRef to Apple
if ( Index == 0 )
set ActorRef to GetFirstRef 69 1 0
else
set ActorRef to GetNextRef
endif
set Index to ( Index + 1 )
if ( ( ( ActorRef.GetIsCreature ) || ( ActorRef.IsActorEvil ) || ( ActorRef.GetShouldAttack Player ) ) && ( EnemyAround == 0 ) )
set EnemyAround to 1
;dein Code um den Verzauberungseffekt hinzuzufügen kommt hier hin
set Index to 0
Return
elseif ( ( ( ActorRef.GetIsCreature == 0 ) || ( ActorRef.IsActorEvil == 0 ) || ( ActorRef.GetShouldAttack Player == 0 ) ) && ( EnemyAround ) )
set EnemyAround to 0
;dein Code um den Verzauberungseffekt zu entfernen kommt hier hin
set Index to 0
Return
endif
RestoreIP 1
endif
[...]
scn NRSmithScript
short SmithSkill
short IronCount
short Button
begin OnActivate
set SmithSkill to player.GetActorValue Armorer
set IronCount to player.GetItemCount NRIronIngredient
if SmithSkill >=25
set Button to -1
messageBox "Was möchtest du schmieden?", "Ein Schwert"
set Button to GetButtonPressed
elseif SmithSkill <25
messageBox "Du solltest das Schmieden noch ein bisschen üben."
endif
if Button == 0 && IronCount >=3
player.additem WeapIronLongsword 1
player.removeitem NRIronIngredient 3
elseif IronCount < 3
messageBox "Du hast nicht das nötige Material."
endif
end
scn NRSmithScript
short SmithSkill
short IronCount
short Button
short active
begin OnActivate
set SmithSkill to player.GetActorValue Armorer
set IronCount to player.GetItemCount NRIronIngredient
if SmithSkill >=25
messageBox "Was möchtest du schmieden?", "Ein Schwert"
set active to 1
elseif SmithSkill <25
messageBox "Du solltest das Schmieden noch ein bisschen üben."
endif
end
Begin gameMode
if active == 1
set Button to getButtonPressed
set active to 2
endif
if Button == 0 && IronCount >= 3 && active == 2
player.additem WeapIronLongsword 1
player.removeitem NRIronIngredient 3
set active to 0
set Button to -1
elseif Button == 0 && IronCount < 3 && active == 2
messageBox "Du hast nicht das nötige Material."
set active to 0
set Button to -1
endif
end
GetSelf gibt, wenn es auf den Player manchmal einen anderen Wert als Player aus, so dasshin und wieder als nicht zutreffenden deklariert wird. Deshalb soll man für die Überprüfung, ob eine gewisse Referenz gemeint ist GetIsReference verwenden, da dort dieser Fehler nicht existiert.Code:set self to Player.GetSelf if Self == Player
.
ne sry... irgentwie will der sinn dieser Funktion, und zwar der, einfach festzustellen, das es eben irgenteine Referenz ist nicht in meinen Kopf.. muss doch irgendeinen sinn haben
Danke, allerdings gibt es da noch ein kleines Problem, ich erhalte sämtliche Meldungen, die im GameMode sind nciht, dass heißt, wenn ich nicht genug Material habe, kommt keine Meldung , etc. und auch alles andere was im GameMode-Block passieren sollte passiert nicht, ich krieg auch nix abgenommen und ein Schwert krieg ich auch nicht, ich denke das Problem müsste dann irgendwo im GameMode-Block bzw. dem Übergang darein liegen :/
scn 000UniversalBefehlScript
Ref Target
Short Button
Begin ScriptEffectStart
Mate01Ref.SetActorValue Aggression 5
Mate02Ref.SetActorValue Aggression 5
Mate03Ref.SetActorValue Aggression 5
Mate04Ref.SetActorValue Aggression 5
Mate01Ref.SetFactionRank 0TotenDienerFaction 0
Mate02Ref.SetFactionRank 0TotenDienerFaction 0
Mate03Ref.SetFactionRank 0TotenDienerFaction 0
Mate04Ref.SetFactionRank 0TotenDienerFaction 0
Mate01Ref.EvaluatePackage
Mate02Ref.EvaluatePackage
Mate03Ref.EvaluatePackage
Mate04Ref.EvaluatePackage
Set Target to GetSelf
Set Button to -1
Messagebox "Wie sollen wir vorgehen, Herr?", "An alle! Angriff!", "Mate1 und Mate4, greift an!", "Mate3, stürm vor!", "Mate2! Lähme den Feind, ich will ihn lebend!"
end
Begin GameMode
Set Button to GetButtonPressed
If ( Button == 0 ) && ( Target.GetInFaction 0TotenDienerFaction == 0 )
Set Button to -1
Mate01Ref.StartCombat Target
Mate02Ref.StartCombat Target
Mate03Ref.StartCombat Target
Mate04Ref.StartCombat Target
Elseif ( Button == 1 ) && ( Target.GetInFaction 0TotenDienerFaction == 0 )
Set Button to -1
Mate01Ref.StartCombat Target
Mate04Ref.StartCombat Target
Elseif ( Button == 2 ) && ( Target.GetInFaction 0TotenDienerFaction == 0 )
Mate03Ref.StartCombat Target
Elseif ( Button == 3 ) && ( Target.GetInFaction 0TotenDienerFaction == 0 )
Mate02Ref.SetForceRun 1
Mate02Ref.SetForceSneak 1
Mate02Ref.Cast 0BayazLaehmung Target
endif
end