TheDarkRuler
Hortator
Habe ein Problem.
Schaut euch bitte mal dieses Script hier an.
Es geht eigentlich nur um diesen Teil hier.
Nun zu meinem Problem.
Durch die unterschiedlichen Wortlängen Englisch --> Deutsch habe ich innerhalb der Messageboxen Verschiebungen.
Da ich (schande über mich) zu faul bin, zig mal zu probieren, wollte ich mithilfe des OBSE-Befehls MessageBoxEx ( http://cs.elderscrolls.com/constwiki/index.php/MessageBoxEx ) Absätze schaffen, damit es schön übersichtlich ist.
Nun verstehe ich aber nicht genau, was ich da ändern soll?
Kann mir jemand mal das oben genannte für MessageBoxEx umschreiben?
Schaut euch bitte mal dieses Script hier an.
SCN MCSMMinionScript
short menuState;
short inventory;
short myLevel;
short button;
short doOnce;
short prevPackage;
short updateFollow;
short realSpeed;
short realAthletics;
short realAggro;
short realResp;
short followSpeed;
short followAthletics;
short renderUpdate;
short myMinionNumber;
short resetAI;
short myFatigue;
short unHeal;
short myItems;
short itemQuantity;
short curHealth;
short maxHealth;
short curMagic;
short maxMagic;
short curFatigue;
short maxFatigue;
float pcZ;
float pFacing;
float npcZ;
ref target;
ref chest;
ref me;
ref currentItem;
ref myHead;
ref myTorso;
ref myLegs;
ref myHands;
ref myFeet;
ref myFullBody;
Begin MenuMode ; ***MENUMODE***
if ( isPlayerMovingIntoNewSpace == 1 )
set renderUpdate to 1;
if ( Me.GetCurrentAIPackage == 1 )
set resetAI to 1;
elseif ( Me.GetCurrentAIPackage == 13 )
if ( Me.GetIsCurrentPackage MCSMMinionPatrolPackage == 1 )
set resetAI to 2;
else
set resetAI to 3;
endif
endif
endif
END
Begin OnActivate
if ( GetDead == 1 )
set myFullBody to Me.AddItem MCSMFullBody 1;
set myHead to Me.AddItem MCSMHead 1;
EquipItem MCSMFullBody;
EquipItem MCSMHead;
activate;
endif
if ( GetDead == 0 )
if ( IsActionRef player == 1 )
if ( MenuState == 0 )
set MyLevel to Me.GetLevel;
set curHealth to GetAV Health;
set curMagic to GetAV Magicka;
set curFatigue to GetAV Fatigue;
set maxHealth to GetBaseAV Health;
set maxMagic to GetBaseAV Magicka;
set maxFatigue to GetBaseAV Fatigue;
set menuState to 1;
if ( Me.GetIsID MCSMArcherMinion == 1 )
MessageBox "Skelettbogenschütze Level %.0f Gesundheit: %.0f / %.0f Magicka: %.0f / %.0f Ausdauer %.0f / %.0f Was wünscht du für deinen Diener?", MyLevel, curHealth, maxHealth, curMagic, maxMagic, curFatigue, maxFatigue, "Inventar betrachten" "Status ansehen" "Kommando" "Egal" ;
elseif ( Me.GetIsID MCSMMageMinion == 1 )
Messagebox "Skelettmagier Level %.0f Gesundheit: %.0f / %.0f Magicka: %.0f / %.0f Ausdauer %.0f / %.0f Was wünscht du für deinen Diener?", MyLevel, curHealth, maxHealth, curMagic, maxMagic, curFatigue, maxFatigue, "Inventar betrachten" "Status ansehen" "Kommando" "Egal" ;
elseif ( Me.GetIsID MCSMWarriorMinion == 1 )
Messagebox "Skelettkrieger Level %.0f Gesundheit: %.0f / %.0f Magicka: %.0f / %.0f Ausdauer %.0f / %.0f Was wünscht du für deinen Diener?", MyLevel, curHealth, maxHealth, curMagic, maxMagic, curFatigue, maxFatigue, "Inventar betrachten" "Status ansehen" "Kommando" "Egal" ;
endif
endif
endif
endif
END
Begin OnStartCombat
set target to Me.GetCombatTarget;
if ( target == Player )
modDisposition Player 100;
SetIgnoreFriendlyHits 10;
stopCombat;
endif
if ( MCSMMinionQuest.isEvil == 1 )
if ( target.GetInFaction AnvilFaction || target.GetInFaction SkingradFaction || target.GetInFaction ImperialWatch || target.GetInFaction KvatchFaction || target.GetInFaction BravilFaction || target.GetInFaction BrumaFaction || target.GetInFaction ICFaction || target.GetInFaction CheydinhalFaction || target.GetInFaction ImperialLegion || target.GetInFaction LeyawiinFaction )
if ( Player.GetCrimeGold < 5000 )
Player.ModCrimeGold 5000;
endif
endif
endif
END
Begin OnDeath; ***DEATH***
Message "Du fühlst einen scharfen Schmerz und hörst einen spitzen Schrei in deinen Gedanken - einer deiner Skelett-Diener ist gestorben."
AddItem Bonemeal 1;
set MCSMMinionQuest.numMinions to ( MCSMMinionQuest.numMinions - 1 );
Player.RemoveSpell MCSMMinionMagicDrain00;
Player.RemoveSpell MCSMMinionMagicDrain01;
Player.RemoveSpell MCSMMinionMagicDrain02;
Player.RemoveSpell MCSMMinionMagicDrain03;
Player.RemoveSpell MCSMMinionMagicDrain04;
Player.RemoveSpell MCSMMinionMagicDrain05;
Player.RemoveSpell MCSMMinionMagicDrain06;
Player.RemoveSpell MCSMMinionMagicDrain07;
Player.RemoveSpell MCSMMinionMagicDrain08;
Player.RemoveSpell MCSMMinionMagicDrain09;
if ( MCSMMinionQuest.numMinions == 1 )
Player.AddSpell MCSMMinionMagicDrain00;
elseif ( MCSMMinionQuest.numMinions == 2 )
Player.AddSpell MCSMMinionMagicDrain01;
elseif ( MCSMMinionQuest.numMinions == 3 )
Player.AddSpell MCSMMinionMagicDrain02;
elseif ( MCSMMinionQuest.numMinions == 4 )
Player.AddSpell MCSMMinionMagicDrain03;
elseif ( MCSMMinionQuest.numMinions == 5 )
Player.AddSpell MCSMMinionMagicDrain04;
elseif ( MCSMMinionQuest.numMinions == 6 )
Player.AddSpell MCSMMinionMagicDrain05;
elseif ( MCSMMinionQuest.numMinions == 7 )
Player.AddSpell MCSMMinionMagicDrain06;
elseif ( MCSMMinionQuest.numMinions == 8 )
Player.AddSpell MCSMMinionMagicDrain07;
elseif ( MCSMMinionQuest.numMinions == 9 )
Player.AddSpell MCSMMinionMagicDrain08;
elseif ( MCSMMinionQuest.numMinions == 10 )
Player.AddSpell MCSMMinionMagicDrain09;
endif
if ( MCSMMinionQuest.numMinions <= 0 )
Player.RemoveSpell MCSMMinionCommandFollowSpell;
Player.RemoveSpell MCSMMinionCommandAttackSpell;
Player.RemoveSpell MCSMMinionCommandWaitSpell;
Player.RemoveSpell MCSMMinionCommandRampageSpell;
Player.RemoveSpell MCSMRepairMinionSpell;
endif
if ( myMinionNumber == 0 )
set MCSMMinionQuest.min00Taken to 0;
elseif ( myMinionNumber == 1 )
set MCSMMinionQuest.min01Taken to 0;
elseif ( myMinionNumber == 2 )
set MCSMMinionQuest.min02Taken to 0;
elseif ( myMinionNumber == 3 )
set MCSMMinionQuest.min03Taken to 0;
elseif ( myMinionNumber == 4 )
set MCSMMinionQuest.min04Taken to 0;
elseif ( myMinionNumber == 5 )
set MCSMMinionQuest.min05Taken to 0;
elseif ( myMinionNumber == 6 )
set MCSMMinionQuest.min06Taken to 0;
elseif ( myMinionNumber == 7 )
set MCSMMinionQuest.min07Taken to 0;
elseif ( myMinionNumber == 8 )
set MCSMMinionQuest.min08Taken to 0;
elseif ( myMinionNumber == 9 )
set MCSMMinionQuest.min09Taken to 0;
endif
END
Begin OnPackageEnd MCSMReturnToBasePackage
Me.RemoveScriptPackage MCSMReturnToBasePackage;
Me.AddScriptPackage MCSMMinionHoldPositionPackage;
Message "Dein Skelett-Diener ist zu deiner Basis zurückgekehrt."
END
Begin GameMode
if ( MCSMMinionQuest.setEvil == 1 )
set button to GetButtonPressed;
if ( button >= 0 )
if ( button == 0 )
set MCSMMinionQuest.isEvil to 1;
set MCSMMinionQuest.SetEvil to 2;
SetFactionReaction AnvilFaction MCSMMinionFaction -100;
SetFactionReaction BravilFaction MCSMMinionFaction -100;
SetFactionReaction BrumaFaction MCSMMinionFaction -100;
SetFactionReaction CheydinhalFaction MCSMMinionFaction -100;
SetFactionReaction ICFaction MCSMMinionFaction -100;
SetFactionReaction ImperialLegion MCSMMinionFaction -100;
SetFactionReaction ImperialWatch MCSMMinionFaction -100;
SetFactionReaction KvatchFaction MCSMMinionFaction -100;
SetFactionReaction LeyawiinFaction MCSMMinionFaction -100;
SetFactionReaction SkingradFaction MCSMMinionFaction -100;
SetFactionReaction MCSMMinionFaction AnvilFaction -100;
SetFactionReaction MCSMMinionFaction BravilFaction -100;
SetFactionReaction MCSMMinionFaction BrumaFaction -100;
SetFactionReaction MCSMMinionFaction CheydinhalFaction -100;
SetFactionReaction MCSMMinionFaction ICFaction -100;
SetFactionReaction MCSMMinionFaction ImperialLegion -100;
SetFactionReaction MCSMMinionFaction ImperialWatch -100;
SetFactionReaction MCSMMinionFaction KvatchFaction -100;
SetFactionReaction MCSMMinionFaction LeyawiinFaction -100;
SetFactionReaction MCSMMinionFaction SkingradFaction -100;
endif
if ( button == 1 )
set MCSMMinionQuest.isEvil to 0;
set MCSMMinionQuest.SetEvil to 2;
endif
endif
endif
if ( MenuState == 0 )
if ( Me.HasMagicEffect REHE == 1 ) ; Skeletons Cannot Be Healed
set unHeal to Me.GetTotalActiveEffectMagnitude REHE;
set unHeal to -(unHeal);
;Me.ModAV2 Health unHeal;
Me.DispelAllSpells;
Message "Heilzauber haben keine Wirkung auf deine Diener..."
endif
if ( renderUpdate == 1 ) ; Render Update - For use in solving the infamous double face bug...
Me.Disable;
set renderUpdate to 2;
elseif ( renderUpdate >= 2 ) && ( renderUpdate <= 5 )
set renderUpdate to ( renderUpdate + 1 );
elseif ( renderupdate > 5 )
Me.Enable;
if ( resetAI == 1 )
Me.RemoveScriptPackage;
Me.AddScriptPackage MCSMMinionFollowPackage;
elseif ( resetAI == 2 )
Me.RemoveScriptPackage;
Me.AddScriptPackage MCSMMinionPatrolPackage;
elseif ( resetAI == 3 )
Me.RemoveScriptPackage;
Me.AddScriptPackage MCSMMinionHoldPositionPackage;
endif
set renderUpdate to -1;
set resetAI to -1;
endif
if ( updateFollow == 1 )
set followSpeed to ( Player.GetAV Speed * 1.5 );
set followAthletics to ( Player.GetAV Athletics * 1.5 );
Me.SetAV Speed followSpeed;
Me.SetAV Athletics followAthletics;
setIgnoreFriendlyHits 100;
set updateFollow to 0;
endif
if ( updateFollow == 2 )
Me.SetAV Speed realSpeed;
Me.SetAV Athletics realAthletics;
set updateFollow to 0;
endif
if ( GetCurrentAIPackage == 1 ) ; ***FOLLOWING AI***
set pcZ to Player.GetPos Z;
set npcZ to Me.GetPos Z;
if ( GetDistance Player > 1024 ) || ( pcz > ( npcz + 200 )) || ( pcz < ( npcz - 200 )) ; Warp script. Special thanks to CM Partners Mod
set pfacing to Player.GetAngle z;
if pfacing < 90 ; northeasterly
MoveTo Player, -50, -50, 10;
elseif pfacing < 180 ; southeasterly
MoveTo Player, -50, 50, 10;
elseif pfacing < 270 ; southwesterly
MoveTo Player, 50, 50, 10;
else ; northwesterly
MoveTo Player, 50, -50, 10;
endif
endif
if ( Player.IsInCombat == 0 )
if ( Player.IsWeaponOut == 1 ) && ( Me.IsWeaponOut == 0 )
SetAlert 1;
elseif ( Player.IsWeaponOut == 0 ) && ( Me.IsWeaponOut == 1 )
SetAlert 0;
endif
if ( Player.IsSneaking == 1 ) && ( Me.IsSneaking == 0 )
SetForceSneak 1;
SetAV Aggression 5;
SetAV Responsibility 0;
elseif ( Player.IsSneaking == 0 ) && ( Me.IsSneaking == 1 )
SetForceSneak 0;
SetAV Aggression realAggro;
SetAV Responsibility realResp;
endif
endif
endif
endif
if ( MenuState == 1 ) ; ***COMMAND INTERFACE***
set button to getbuttonpressed;
if ( button >= 0 )
if ( button == 0 ) ; Access Inventory
chest.MoveTo Player 0, 0, -50;
chest.setownership;
Me.RemoveAllItems Chest;
set menuState to 2;
elseif ( button == 1 ) ; Show Stats
set menuState to 6;
elseif ( button == 2 ) ; Commands
set MenuState to 4;
elseif ( button == 3 )
set MenuState to 0;
return;
endif
endif
endif
if ( menuState == 2 )
Chest.Activate Player;
set menuState to 3;
elseif ( menuState == 3 ) && ( MenuMode == 0 )
chest.RemoveAllItems Me;
chest.PositionCell 0,0,0,0 MCSMDumpCell;
Me.SetLevel MyLevel;
set myItems to ( Me.GetNumItems - 1 );
Label 1; ***FOR REMOVAL OF NON-POISON POTIONS***
if ( myItems >= 0 )
set currentItem to ( Me.GetInventoryObject myItems )
if ( GetMagicItemType currentItem == 3 )
if ( IsPoison currentItem )
else
set itemQuantity to Me.GetItemCount currentItem;
Me.RemoveItem currentItem itemQuantity;
Player.AddItem currentItem itemQuantity;
Message "Deine Skelettdiener könnnen nur Gifte mit sich tragen...."
endif
endif
set myItems to ( myItems - 1 );
GoTo 1;
endif
set menuState to 0;
elseif ( MenuState == 4 )
MessageBox "Was wünscht du von deinem Diener?" "Folgen" "Position halten" "Patroullieren" "Diese Position als Basis makieren" "Zur Basis zurückehren" "Egal"
set MenuState to 5;
elseif ( MenuState == 5 )
set button to GetButtonPressed
if ( button >= 0 )
if ( button == 0 )
Message "Folge mir"
Me.RemoveScriptPackage;
AddScriptPackage MCSMMinionFollowPackage;
set updateFollow to 1;
set MenuState to 0;
elseif ( button == 1 )
Message "Warte hier"
Me.RemoveScriptPackage;
AddScriptPackage MCSMMinionHoldPositionPackage;
set updateFollow to 2;
set MenuState to 0;
elseif ( button == 2 )
Message "Patroulliere etwas herum"
Me.RemoveScriptPackage;
AddScriptPackage MCSMMinionPatrolPackage;
set updateFollow to 2;
set MenuState to 0;
elseif ( button == 3 )
Message "Basis für alle Diener nach hier verlegt."
MCSMMinionBaseMarker.MoveTo Player;
set MenuState to 0;
elseif ( button == 4 )
if ( MCSMMinionBaseMarker.GetInCell MCSMDumpCell == 0 )
Message "Kehre zur Basis zurück."
Me.RemoveScriptPackage;
AddScriptPackage MCSMReturnToBasePackage;
set updateFollow to 2;
set MenuState to 0;
else
Message "Du hast noch keine Basis ausgewählt"
set MenuState to 0;
endif
else if ( button == 5 )
set MenuState to 0;
endif
endif
elseif ( MenuState == 6 )
Me.AddItem MCSMStatsToken 1;
set MenuState to 0;
endif
if ( doOnce == 0 ) ;***SPAWNING***
set Me to GetSelf;
set myMinionNumber to -1;
set chest to MCSMMinionInventory;
set realSpeed to GetBaseAV Speed;
set realAthletics to GetBaseAV Athletics;
set realAggro to GetBaseAV Aggression;
set realResp to GetBaseAV Responsibility;
set myFatigue to Me.GetAV Fatigue;
set myFatigue to -( myFatigue + 20 );
Me.ModAV2 Fatigue myFatigue;
AddScriptPackage MCSMMinionFollowPackage;
set updateFollow to 1;
if ( MCSMMinionQuest.min00Taken == 0 )
set MCSMMinionQuest.Minion00 to GetSelf;
set MCSMMinionQuest.min00Taken to 1;
set myMinionNumber to 0;
elseif ( MCSMMinionQuest.min01Taken == 0 )
set MCSMMinionQuest.Minion01 to GetSelf;
set MCSMMinionQuest.min01Taken to 1;
set myMinionNumber to 1;
elseif ( MCSMMinionQuest.min02Taken == 0 )
set MCSMMinionQuest.Minion02 to GetSelf;
set MCSMMinionQuest.min02Taken to 1;
set myMinionNumber to 2;
elseif ( MCSMMinionQuest.min03Taken == 0 )
set MCSMMinionQuest.Minion03 to GetSelf;
set MCSMMinionQuest.min03Taken to 1;
set myMinionNumber to 3;
elseif ( MCSMMinionQuest.min04Taken == 0 )
set MCSMMinionQuest.Minion04 to GetSelf;
set MCSMMinionQuest.min04Taken to 1;
set myMinionNumber to 4;
elseif ( MCSMMinionQuest.min05Taken == 0 )
set MCSMMinionQuest.Minion05 to GetSelf;
set MCSMMinionQuest.min05Taken to 1;
set myMinionNumber to 5;
elseif ( MCSMMinionQuest.min06Taken == 0 )
set MCSMMinionQuest.Minion06 to GetSelf;
set MCSMMinionQuest.min06Taken to 1;
set myMinionNumber to 6;
elseif ( MCSMMinionQuest.min07Taken == 0 )
set MCSMMinionQuest.Minion07 to GetSelf;
set MCSMMinionQuest.min07Taken to 1;
set myMinionNumber to 7;
elseif ( MCSMMinionQuest.min08Taken == 0 )
set MCSMMinionQuest.Minion08 to GetSelf;
set MCSMMinionQuest.min08Taken to 1;
set myMinionNumber to 8;
elseif ( MCSMMinionQuest.min09Taken == 0 )
set MCSMMinionQuest.Minion09 to GetSelf;
set MCSMMinionQuest.min09Taken to 1;
set myMinionNumber to 9;
endif
if ( Player.HasSpell MCSMMinionCommandFollowSpell )
else
Player.AddSpell MCSMMinionCommandFollowSpell;
Player.AddSpell MCSMMinionCommandAttackSpell;
Player.AddSpell MCSMMinionCommandWaitSpell;
Player.AddSpell MCSMMinionCommandRampageSpell;
Player.AddSpell MCSMRepairMinionSpell;
endif
set MCSMMinionQuest.numMinions to ( MCSMMinionQuest.numMinions + 1 );
Player.RemoveSpell MCSMMinionMagicDrain00;
Player.RemoveSpell MCSMMinionMagicDrain01;
Player.RemoveSpell MCSMMinionMagicDrain02;
Player.RemoveSpell MCSMMinionMagicDrain03;
Player.RemoveSpell MCSMMinionMagicDrain04;
Player.RemoveSpell MCSMMinionMagicDrain05;
Player.RemoveSpell MCSMMinionMagicDrain06;
Player.RemoveSpell MCSMMinionMagicDrain07;
Player.RemoveSpell MCSMMinionMagicDrain08;
Player.RemoveSpell MCSMMinionMagicDrain09;
if ( MCSMMinionQuest.numMinions == 1 )
Player.AddSpell MCSMMinionMagicDrain00;
elseif ( MCSMMinionQuest.numMinions == 2 )
Player.AddSpell MCSMMinionMagicDrain01;
elseif ( MCSMMinionQuest.numMinions == 3 )
Player.AddSpell MCSMMinionMagicDrain02;
elseif ( MCSMMinionQuest.numMinions == 4 )
Player.AddSpell MCSMMinionMagicDrain03;
elseif ( MCSMMinionQuest.numMinions == 5 )
Player.AddSpell MCSMMinionMagicDrain04;
elseif ( MCSMMinionQuest.numMinions == 6 )
Player.AddSpell MCSMMinionMagicDrain05;
elseif ( MCSMMinionQuest.numMinions == 7 )
Player.AddSpell MCSMMinionMagicDrain06;
elseif ( MCSMMinionQuest.numMinions == 8 )
Player.AddSpell MCSMMinionMagicDrain07;
elseif ( MCSMMinionQuest.numMinions == 9 )
Player.AddSpell MCSMMinionMagicDrain08;
elseif ( MCSMMinionQuest.numMinions == 10 )
Player.AddSpell MCSMMinionMagicDrain09;
endif
set doOnce to 1;
elseif ( doOnce >= 1 ) && ( doOnce < 60 )
set doOnce to ( doOnce + 1 );
elseif ( doonce >= 60 )
set pfacing to Player.GetAngle z;
if pfacing < 90 ; northeasterly
MoveTo Player, 80, 80, 10;
elseif pfacing < 180 ; southeasterly
MoveTo Player, 80, -80, 10;
elseif pfacing < 270 ; southwesterly
MoveTo Player, -80, -80, 10;
else ; northwesterly
MoveTo Player, -80, 80, 10;
endif
Me.SetActorAlpha 1;
Me.PMS effectReanimate 5;
set doOnce to -1;
if ( MCSMMinionQuest.setEvil == 0 )
MessageBox "Sollen du und deine Diener als 'Böse' gelten und deswegen von Wachen und der Bevölkerung angegriffen werden?" "Ja" "Nein"
set MCSMMinionQuest.setEvil to 1;
endif
endif
END
short menuState;
short inventory;
short myLevel;
short button;
short doOnce;
short prevPackage;
short updateFollow;
short realSpeed;
short realAthletics;
short realAggro;
short realResp;
short followSpeed;
short followAthletics;
short renderUpdate;
short myMinionNumber;
short resetAI;
short myFatigue;
short unHeal;
short myItems;
short itemQuantity;
short curHealth;
short maxHealth;
short curMagic;
short maxMagic;
short curFatigue;
short maxFatigue;
float pcZ;
float pFacing;
float npcZ;
ref target;
ref chest;
ref me;
ref currentItem;
ref myHead;
ref myTorso;
ref myLegs;
ref myHands;
ref myFeet;
ref myFullBody;
Begin MenuMode ; ***MENUMODE***
if ( isPlayerMovingIntoNewSpace == 1 )
set renderUpdate to 1;
if ( Me.GetCurrentAIPackage == 1 )
set resetAI to 1;
elseif ( Me.GetCurrentAIPackage == 13 )
if ( Me.GetIsCurrentPackage MCSMMinionPatrolPackage == 1 )
set resetAI to 2;
else
set resetAI to 3;
endif
endif
endif
END
Begin OnActivate
if ( GetDead == 1 )
set myFullBody to Me.AddItem MCSMFullBody 1;
set myHead to Me.AddItem MCSMHead 1;
EquipItem MCSMFullBody;
EquipItem MCSMHead;
activate;
endif
if ( GetDead == 0 )
if ( IsActionRef player == 1 )
if ( MenuState == 0 )
set MyLevel to Me.GetLevel;
set curHealth to GetAV Health;
set curMagic to GetAV Magicka;
set curFatigue to GetAV Fatigue;
set maxHealth to GetBaseAV Health;
set maxMagic to GetBaseAV Magicka;
set maxFatigue to GetBaseAV Fatigue;
set menuState to 1;
if ( Me.GetIsID MCSMArcherMinion == 1 )
MessageBox "Skelettbogenschütze Level %.0f Gesundheit: %.0f / %.0f Magicka: %.0f / %.0f Ausdauer %.0f / %.0f Was wünscht du für deinen Diener?", MyLevel, curHealth, maxHealth, curMagic, maxMagic, curFatigue, maxFatigue, "Inventar betrachten" "Status ansehen" "Kommando" "Egal" ;
elseif ( Me.GetIsID MCSMMageMinion == 1 )
Messagebox "Skelettmagier Level %.0f Gesundheit: %.0f / %.0f Magicka: %.0f / %.0f Ausdauer %.0f / %.0f Was wünscht du für deinen Diener?", MyLevel, curHealth, maxHealth, curMagic, maxMagic, curFatigue, maxFatigue, "Inventar betrachten" "Status ansehen" "Kommando" "Egal" ;
elseif ( Me.GetIsID MCSMWarriorMinion == 1 )
Messagebox "Skelettkrieger Level %.0f Gesundheit: %.0f / %.0f Magicka: %.0f / %.0f Ausdauer %.0f / %.0f Was wünscht du für deinen Diener?", MyLevel, curHealth, maxHealth, curMagic, maxMagic, curFatigue, maxFatigue, "Inventar betrachten" "Status ansehen" "Kommando" "Egal" ;
endif
endif
endif
endif
END
Begin OnStartCombat
set target to Me.GetCombatTarget;
if ( target == Player )
modDisposition Player 100;
SetIgnoreFriendlyHits 10;
stopCombat;
endif
if ( MCSMMinionQuest.isEvil == 1 )
if ( target.GetInFaction AnvilFaction || target.GetInFaction SkingradFaction || target.GetInFaction ImperialWatch || target.GetInFaction KvatchFaction || target.GetInFaction BravilFaction || target.GetInFaction BrumaFaction || target.GetInFaction ICFaction || target.GetInFaction CheydinhalFaction || target.GetInFaction ImperialLegion || target.GetInFaction LeyawiinFaction )
if ( Player.GetCrimeGold < 5000 )
Player.ModCrimeGold 5000;
endif
endif
endif
END
Begin OnDeath; ***DEATH***
Message "Du fühlst einen scharfen Schmerz und hörst einen spitzen Schrei in deinen Gedanken - einer deiner Skelett-Diener ist gestorben."
AddItem Bonemeal 1;
set MCSMMinionQuest.numMinions to ( MCSMMinionQuest.numMinions - 1 );
Player.RemoveSpell MCSMMinionMagicDrain00;
Player.RemoveSpell MCSMMinionMagicDrain01;
Player.RemoveSpell MCSMMinionMagicDrain02;
Player.RemoveSpell MCSMMinionMagicDrain03;
Player.RemoveSpell MCSMMinionMagicDrain04;
Player.RemoveSpell MCSMMinionMagicDrain05;
Player.RemoveSpell MCSMMinionMagicDrain06;
Player.RemoveSpell MCSMMinionMagicDrain07;
Player.RemoveSpell MCSMMinionMagicDrain08;
Player.RemoveSpell MCSMMinionMagicDrain09;
if ( MCSMMinionQuest.numMinions == 1 )
Player.AddSpell MCSMMinionMagicDrain00;
elseif ( MCSMMinionQuest.numMinions == 2 )
Player.AddSpell MCSMMinionMagicDrain01;
elseif ( MCSMMinionQuest.numMinions == 3 )
Player.AddSpell MCSMMinionMagicDrain02;
elseif ( MCSMMinionQuest.numMinions == 4 )
Player.AddSpell MCSMMinionMagicDrain03;
elseif ( MCSMMinionQuest.numMinions == 5 )
Player.AddSpell MCSMMinionMagicDrain04;
elseif ( MCSMMinionQuest.numMinions == 6 )
Player.AddSpell MCSMMinionMagicDrain05;
elseif ( MCSMMinionQuest.numMinions == 7 )
Player.AddSpell MCSMMinionMagicDrain06;
elseif ( MCSMMinionQuest.numMinions == 8 )
Player.AddSpell MCSMMinionMagicDrain07;
elseif ( MCSMMinionQuest.numMinions == 9 )
Player.AddSpell MCSMMinionMagicDrain08;
elseif ( MCSMMinionQuest.numMinions == 10 )
Player.AddSpell MCSMMinionMagicDrain09;
endif
if ( MCSMMinionQuest.numMinions <= 0 )
Player.RemoveSpell MCSMMinionCommandFollowSpell;
Player.RemoveSpell MCSMMinionCommandAttackSpell;
Player.RemoveSpell MCSMMinionCommandWaitSpell;
Player.RemoveSpell MCSMMinionCommandRampageSpell;
Player.RemoveSpell MCSMRepairMinionSpell;
endif
if ( myMinionNumber == 0 )
set MCSMMinionQuest.min00Taken to 0;
elseif ( myMinionNumber == 1 )
set MCSMMinionQuest.min01Taken to 0;
elseif ( myMinionNumber == 2 )
set MCSMMinionQuest.min02Taken to 0;
elseif ( myMinionNumber == 3 )
set MCSMMinionQuest.min03Taken to 0;
elseif ( myMinionNumber == 4 )
set MCSMMinionQuest.min04Taken to 0;
elseif ( myMinionNumber == 5 )
set MCSMMinionQuest.min05Taken to 0;
elseif ( myMinionNumber == 6 )
set MCSMMinionQuest.min06Taken to 0;
elseif ( myMinionNumber == 7 )
set MCSMMinionQuest.min07Taken to 0;
elseif ( myMinionNumber == 8 )
set MCSMMinionQuest.min08Taken to 0;
elseif ( myMinionNumber == 9 )
set MCSMMinionQuest.min09Taken to 0;
endif
END
Begin OnPackageEnd MCSMReturnToBasePackage
Me.RemoveScriptPackage MCSMReturnToBasePackage;
Me.AddScriptPackage MCSMMinionHoldPositionPackage;
Message "Dein Skelett-Diener ist zu deiner Basis zurückgekehrt."
END
Begin GameMode
if ( MCSMMinionQuest.setEvil == 1 )
set button to GetButtonPressed;
if ( button >= 0 )
if ( button == 0 )
set MCSMMinionQuest.isEvil to 1;
set MCSMMinionQuest.SetEvil to 2;
SetFactionReaction AnvilFaction MCSMMinionFaction -100;
SetFactionReaction BravilFaction MCSMMinionFaction -100;
SetFactionReaction BrumaFaction MCSMMinionFaction -100;
SetFactionReaction CheydinhalFaction MCSMMinionFaction -100;
SetFactionReaction ICFaction MCSMMinionFaction -100;
SetFactionReaction ImperialLegion MCSMMinionFaction -100;
SetFactionReaction ImperialWatch MCSMMinionFaction -100;
SetFactionReaction KvatchFaction MCSMMinionFaction -100;
SetFactionReaction LeyawiinFaction MCSMMinionFaction -100;
SetFactionReaction SkingradFaction MCSMMinionFaction -100;
SetFactionReaction MCSMMinionFaction AnvilFaction -100;
SetFactionReaction MCSMMinionFaction BravilFaction -100;
SetFactionReaction MCSMMinionFaction BrumaFaction -100;
SetFactionReaction MCSMMinionFaction CheydinhalFaction -100;
SetFactionReaction MCSMMinionFaction ICFaction -100;
SetFactionReaction MCSMMinionFaction ImperialLegion -100;
SetFactionReaction MCSMMinionFaction ImperialWatch -100;
SetFactionReaction MCSMMinionFaction KvatchFaction -100;
SetFactionReaction MCSMMinionFaction LeyawiinFaction -100;
SetFactionReaction MCSMMinionFaction SkingradFaction -100;
endif
if ( button == 1 )
set MCSMMinionQuest.isEvil to 0;
set MCSMMinionQuest.SetEvil to 2;
endif
endif
endif
if ( MenuState == 0 )
if ( Me.HasMagicEffect REHE == 1 ) ; Skeletons Cannot Be Healed
set unHeal to Me.GetTotalActiveEffectMagnitude REHE;
set unHeal to -(unHeal);
;Me.ModAV2 Health unHeal;
Me.DispelAllSpells;
Message "Heilzauber haben keine Wirkung auf deine Diener..."
endif
if ( renderUpdate == 1 ) ; Render Update - For use in solving the infamous double face bug...
Me.Disable;
set renderUpdate to 2;
elseif ( renderUpdate >= 2 ) && ( renderUpdate <= 5 )
set renderUpdate to ( renderUpdate + 1 );
elseif ( renderupdate > 5 )
Me.Enable;
if ( resetAI == 1 )
Me.RemoveScriptPackage;
Me.AddScriptPackage MCSMMinionFollowPackage;
elseif ( resetAI == 2 )
Me.RemoveScriptPackage;
Me.AddScriptPackage MCSMMinionPatrolPackage;
elseif ( resetAI == 3 )
Me.RemoveScriptPackage;
Me.AddScriptPackage MCSMMinionHoldPositionPackage;
endif
set renderUpdate to -1;
set resetAI to -1;
endif
if ( updateFollow == 1 )
set followSpeed to ( Player.GetAV Speed * 1.5 );
set followAthletics to ( Player.GetAV Athletics * 1.5 );
Me.SetAV Speed followSpeed;
Me.SetAV Athletics followAthletics;
setIgnoreFriendlyHits 100;
set updateFollow to 0;
endif
if ( updateFollow == 2 )
Me.SetAV Speed realSpeed;
Me.SetAV Athletics realAthletics;
set updateFollow to 0;
endif
if ( GetCurrentAIPackage == 1 ) ; ***FOLLOWING AI***
set pcZ to Player.GetPos Z;
set npcZ to Me.GetPos Z;
if ( GetDistance Player > 1024 ) || ( pcz > ( npcz + 200 )) || ( pcz < ( npcz - 200 )) ; Warp script. Special thanks to CM Partners Mod
set pfacing to Player.GetAngle z;
if pfacing < 90 ; northeasterly
MoveTo Player, -50, -50, 10;
elseif pfacing < 180 ; southeasterly
MoveTo Player, -50, 50, 10;
elseif pfacing < 270 ; southwesterly
MoveTo Player, 50, 50, 10;
else ; northwesterly
MoveTo Player, 50, -50, 10;
endif
endif
if ( Player.IsInCombat == 0 )
if ( Player.IsWeaponOut == 1 ) && ( Me.IsWeaponOut == 0 )
SetAlert 1;
elseif ( Player.IsWeaponOut == 0 ) && ( Me.IsWeaponOut == 1 )
SetAlert 0;
endif
if ( Player.IsSneaking == 1 ) && ( Me.IsSneaking == 0 )
SetForceSneak 1;
SetAV Aggression 5;
SetAV Responsibility 0;
elseif ( Player.IsSneaking == 0 ) && ( Me.IsSneaking == 1 )
SetForceSneak 0;
SetAV Aggression realAggro;
SetAV Responsibility realResp;
endif
endif
endif
endif
if ( MenuState == 1 ) ; ***COMMAND INTERFACE***
set button to getbuttonpressed;
if ( button >= 0 )
if ( button == 0 ) ; Access Inventory
chest.MoveTo Player 0, 0, -50;
chest.setownership;
Me.RemoveAllItems Chest;
set menuState to 2;
elseif ( button == 1 ) ; Show Stats
set menuState to 6;
elseif ( button == 2 ) ; Commands
set MenuState to 4;
elseif ( button == 3 )
set MenuState to 0;
return;
endif
endif
endif
if ( menuState == 2 )
Chest.Activate Player;
set menuState to 3;
elseif ( menuState == 3 ) && ( MenuMode == 0 )
chest.RemoveAllItems Me;
chest.PositionCell 0,0,0,0 MCSMDumpCell;
Me.SetLevel MyLevel;
set myItems to ( Me.GetNumItems - 1 );
Label 1; ***FOR REMOVAL OF NON-POISON POTIONS***
if ( myItems >= 0 )
set currentItem to ( Me.GetInventoryObject myItems )
if ( GetMagicItemType currentItem == 3 )
if ( IsPoison currentItem )
else
set itemQuantity to Me.GetItemCount currentItem;
Me.RemoveItem currentItem itemQuantity;
Player.AddItem currentItem itemQuantity;
Message "Deine Skelettdiener könnnen nur Gifte mit sich tragen...."
endif
endif
set myItems to ( myItems - 1 );
GoTo 1;
endif
set menuState to 0;
elseif ( MenuState == 4 )
MessageBox "Was wünscht du von deinem Diener?" "Folgen" "Position halten" "Patroullieren" "Diese Position als Basis makieren" "Zur Basis zurückehren" "Egal"
set MenuState to 5;
elseif ( MenuState == 5 )
set button to GetButtonPressed
if ( button >= 0 )
if ( button == 0 )
Message "Folge mir"
Me.RemoveScriptPackage;
AddScriptPackage MCSMMinionFollowPackage;
set updateFollow to 1;
set MenuState to 0;
elseif ( button == 1 )
Message "Warte hier"
Me.RemoveScriptPackage;
AddScriptPackage MCSMMinionHoldPositionPackage;
set updateFollow to 2;
set MenuState to 0;
elseif ( button == 2 )
Message "Patroulliere etwas herum"
Me.RemoveScriptPackage;
AddScriptPackage MCSMMinionPatrolPackage;
set updateFollow to 2;
set MenuState to 0;
elseif ( button == 3 )
Message "Basis für alle Diener nach hier verlegt."
MCSMMinionBaseMarker.MoveTo Player;
set MenuState to 0;
elseif ( button == 4 )
if ( MCSMMinionBaseMarker.GetInCell MCSMDumpCell == 0 )
Message "Kehre zur Basis zurück."
Me.RemoveScriptPackage;
AddScriptPackage MCSMReturnToBasePackage;
set updateFollow to 2;
set MenuState to 0;
else
Message "Du hast noch keine Basis ausgewählt"
set MenuState to 0;
endif
else if ( button == 5 )
set MenuState to 0;
endif
endif
elseif ( MenuState == 6 )
Me.AddItem MCSMStatsToken 1;
set MenuState to 0;
endif
if ( doOnce == 0 ) ;***SPAWNING***
set Me to GetSelf;
set myMinionNumber to -1;
set chest to MCSMMinionInventory;
set realSpeed to GetBaseAV Speed;
set realAthletics to GetBaseAV Athletics;
set realAggro to GetBaseAV Aggression;
set realResp to GetBaseAV Responsibility;
set myFatigue to Me.GetAV Fatigue;
set myFatigue to -( myFatigue + 20 );
Me.ModAV2 Fatigue myFatigue;
AddScriptPackage MCSMMinionFollowPackage;
set updateFollow to 1;
if ( MCSMMinionQuest.min00Taken == 0 )
set MCSMMinionQuest.Minion00 to GetSelf;
set MCSMMinionQuest.min00Taken to 1;
set myMinionNumber to 0;
elseif ( MCSMMinionQuest.min01Taken == 0 )
set MCSMMinionQuest.Minion01 to GetSelf;
set MCSMMinionQuest.min01Taken to 1;
set myMinionNumber to 1;
elseif ( MCSMMinionQuest.min02Taken == 0 )
set MCSMMinionQuest.Minion02 to GetSelf;
set MCSMMinionQuest.min02Taken to 1;
set myMinionNumber to 2;
elseif ( MCSMMinionQuest.min03Taken == 0 )
set MCSMMinionQuest.Minion03 to GetSelf;
set MCSMMinionQuest.min03Taken to 1;
set myMinionNumber to 3;
elseif ( MCSMMinionQuest.min04Taken == 0 )
set MCSMMinionQuest.Minion04 to GetSelf;
set MCSMMinionQuest.min04Taken to 1;
set myMinionNumber to 4;
elseif ( MCSMMinionQuest.min05Taken == 0 )
set MCSMMinionQuest.Minion05 to GetSelf;
set MCSMMinionQuest.min05Taken to 1;
set myMinionNumber to 5;
elseif ( MCSMMinionQuest.min06Taken == 0 )
set MCSMMinionQuest.Minion06 to GetSelf;
set MCSMMinionQuest.min06Taken to 1;
set myMinionNumber to 6;
elseif ( MCSMMinionQuest.min07Taken == 0 )
set MCSMMinionQuest.Minion07 to GetSelf;
set MCSMMinionQuest.min07Taken to 1;
set myMinionNumber to 7;
elseif ( MCSMMinionQuest.min08Taken == 0 )
set MCSMMinionQuest.Minion08 to GetSelf;
set MCSMMinionQuest.min08Taken to 1;
set myMinionNumber to 8;
elseif ( MCSMMinionQuest.min09Taken == 0 )
set MCSMMinionQuest.Minion09 to GetSelf;
set MCSMMinionQuest.min09Taken to 1;
set myMinionNumber to 9;
endif
if ( Player.HasSpell MCSMMinionCommandFollowSpell )
else
Player.AddSpell MCSMMinionCommandFollowSpell;
Player.AddSpell MCSMMinionCommandAttackSpell;
Player.AddSpell MCSMMinionCommandWaitSpell;
Player.AddSpell MCSMMinionCommandRampageSpell;
Player.AddSpell MCSMRepairMinionSpell;
endif
set MCSMMinionQuest.numMinions to ( MCSMMinionQuest.numMinions + 1 );
Player.RemoveSpell MCSMMinionMagicDrain00;
Player.RemoveSpell MCSMMinionMagicDrain01;
Player.RemoveSpell MCSMMinionMagicDrain02;
Player.RemoveSpell MCSMMinionMagicDrain03;
Player.RemoveSpell MCSMMinionMagicDrain04;
Player.RemoveSpell MCSMMinionMagicDrain05;
Player.RemoveSpell MCSMMinionMagicDrain06;
Player.RemoveSpell MCSMMinionMagicDrain07;
Player.RemoveSpell MCSMMinionMagicDrain08;
Player.RemoveSpell MCSMMinionMagicDrain09;
if ( MCSMMinionQuest.numMinions == 1 )
Player.AddSpell MCSMMinionMagicDrain00;
elseif ( MCSMMinionQuest.numMinions == 2 )
Player.AddSpell MCSMMinionMagicDrain01;
elseif ( MCSMMinionQuest.numMinions == 3 )
Player.AddSpell MCSMMinionMagicDrain02;
elseif ( MCSMMinionQuest.numMinions == 4 )
Player.AddSpell MCSMMinionMagicDrain03;
elseif ( MCSMMinionQuest.numMinions == 5 )
Player.AddSpell MCSMMinionMagicDrain04;
elseif ( MCSMMinionQuest.numMinions == 6 )
Player.AddSpell MCSMMinionMagicDrain05;
elseif ( MCSMMinionQuest.numMinions == 7 )
Player.AddSpell MCSMMinionMagicDrain06;
elseif ( MCSMMinionQuest.numMinions == 8 )
Player.AddSpell MCSMMinionMagicDrain07;
elseif ( MCSMMinionQuest.numMinions == 9 )
Player.AddSpell MCSMMinionMagicDrain08;
elseif ( MCSMMinionQuest.numMinions == 10 )
Player.AddSpell MCSMMinionMagicDrain09;
endif
set doOnce to 1;
elseif ( doOnce >= 1 ) && ( doOnce < 60 )
set doOnce to ( doOnce + 1 );
elseif ( doonce >= 60 )
set pfacing to Player.GetAngle z;
if pfacing < 90 ; northeasterly
MoveTo Player, 80, 80, 10;
elseif pfacing < 180 ; southeasterly
MoveTo Player, 80, -80, 10;
elseif pfacing < 270 ; southwesterly
MoveTo Player, -80, -80, 10;
else ; northwesterly
MoveTo Player, -80, 80, 10;
endif
Me.SetActorAlpha 1;
Me.PMS effectReanimate 5;
set doOnce to -1;
if ( MCSMMinionQuest.setEvil == 0 )
MessageBox "Sollen du und deine Diener als 'Böse' gelten und deswegen von Wachen und der Bevölkerung angegriffen werden?" "Ja" "Nein"
set MCSMMinionQuest.setEvil to 1;
endif
endif
END
Es geht eigentlich nur um diesen Teil hier.
Code:
MessageBox "Skelettbogenschütze Level %.0f Gesundheit: %.0f / %.0f Magicka: %.0f / %.0f Ausdauer %.0f / %.0f Was wünscht du für deinen Diener?", MyLevel, curHealth, maxHealth, curMagic, maxMagic, curFatigue, maxFatigue, "Inventar betrachten" "Status ansehen" "Kommando" "Egal" ;
elseif ( Me.GetIsID MCSMMageMinion == 1 )
Messagebox "Skelettmagier Level %.0f Gesundheit: %.0f / %.0f Magicka: %.0f / %.0f Ausdauer %.0f / %.0f Was wünscht du für deinen Diener?", MyLevel, curHealth, maxHealth, curMagic, maxMagic, curFatigue, maxFatigue, "Inventar betrachten" "Status ansehen" "Kommando" "Egal" ;
elseif ( Me.GetIsID MCSMWarriorMinion == 1 )
Messagebox "Skelettkrieger Level %.0f Gesundheit: %.0f / %.0f Magicka: %.0f / %.0f Ausdauer %.0f / %.0f Was wünscht du für deinen Diener?", MyLevel, curHealth, maxHealth, curMagic, maxMagic, curFatigue, maxFatigue, "Inventar betrachten" "Status ansehen" "Kommando" "Egal" ;
Nun zu meinem Problem.
Durch die unterschiedlichen Wortlängen Englisch --> Deutsch habe ich innerhalb der Messageboxen Verschiebungen.
Da ich (schande über mich) zu faul bin, zig mal zu probieren, wollte ich mithilfe des OBSE-Befehls MessageBoxEx ( http://cs.elderscrolls.com/constwiki/index.php/MessageBoxEx ) Absätze schaffen, damit es schön übersichtlich ist.
Nun verstehe ich aber nicht genau, was ich da ändern soll?
Kann mir jemand mal das oben genannte für MessageBoxEx umschreiben?