Bugfixing pass
Bugfixing pass. Spawn swapovers. Broom!
This commit is contained in:
		
							
								
								
									
										185
									
								
								_module/nss/_inc_battlecry_.nss
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										185
									
								
								_module/nss/_inc_battlecry_.nss
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,185 @@ | ||||
| /////////////////////////////////// | ||||
| // Carcerian's BattleCry Script  // | ||||
| //      "Evil Dead" Edition      // | ||||
| /////////////////////////////////// | ||||
|  | ||||
| #include "NW_I0_GENERIC" | ||||
|  | ||||
| const int BattleCryChance = 15; | ||||
| const int CombatCryChance = 20; | ||||
| const int DeathCryChance = 20; | ||||
| const int CustomUndeadChance = 50; | ||||
|  | ||||
| const string COLOR_RED = "<c<>  >"; | ||||
| const string COLOR_DARK = "<cSSS>"; | ||||
| const string COLOR_GREEN = "<c <20> >"; | ||||
| const string COLOR_WHITE = "<c<><63><EFBFBD>>"; | ||||
| const string COLOR_VIOLET = "<c<> <20>>"; | ||||
| const string COLOR_YELLOW = "<c<><63> >"; | ||||
|  | ||||
| int HasSpoken() | ||||
| { | ||||
|     if (GetLocalInt(OBJECT_SELF,"HASSPOKEN")) return 1; | ||||
|     SetLocalInt(OBJECT_SELF,"HASSPOKEN",1); | ||||
|     DelayCommand(IntToFloat(d10(4)),SetLocalInt(OBJECT_SELF,"HASSPOKEN",0)); | ||||
|     return 0; | ||||
| } | ||||
|  | ||||
| void DoUndeadChatter() | ||||
| { | ||||
|     string sMyTag = GetTag(OBJECT_SELF); | ||||
|     if ((FindSubString(sMyTag,"SKEL")>-1)||(FindSubString(sMyTag,"MOHRG")>-1)) | ||||
|     { | ||||
|         switch (d3()) // Skeletons | ||||
|         { | ||||
|             case 1 : ActionSpeakString(COLOR_WHITE+"I got a bone to pick with you!",TALKVOLUME_TALK); break; | ||||
|             case 2 : ActionSpeakString(COLOR_WHITE+"Forward, you worthless bags of bones!",TALKVOLUME_TALK); break; | ||||
|             case 3 : ActionSpeakString(COLOR_WHITE+"CHARGE!",TALKVOLUME_TALK); break; | ||||
|          } | ||||
|     } | ||||
|     else if (FindSubString(sMyTag,"ZOMB")>-1) | ||||
|     { | ||||
|         if (Random(2)) ActionSpeakString(COLOR_GREEN+"Brains!",TALKVOLUME_TALK); | ||||
|         else ActionSpeakString(COLOR_GREEN+"BRAINS!",TALKVOLUME_TALK); | ||||
|         // "More brains!" | ||||
|     } | ||||
|     else if ((FindSubString(sMyTag,"GHOUL")>-1)||(FindSubString(sMyTag,"GHAST")>-1) | ||||
|            ||(FindSubString(sMyTag,"WIGHT")>-1)) | ||||
|     { | ||||
|         switch (d4()) // Flesh Eaters | ||||
|         { | ||||
|             case 1 : ActionSpeakString(COLOR_GREEN+"I'll feast on your entrails!",TALKVOLUME_TALK); break; | ||||
|             case 2 : ActionSpeakString(COLOR_GREEN+"FOOD!",TALKVOLUME_TALK); break; | ||||
|             case 3 : ActionSpeakString(COLOR_GREEN+"Live ones!!",TALKVOLUME_TALK); break; | ||||
|             case 4 : ActionSpeakString(COLOR_GREEN+"FLESSSSHHHH!!!",TALKVOLUME_TALK); break; | ||||
|          } | ||||
|      } | ||||
|     else if ((FindSubString(sMyTag,"WRAITH")>-1)||(FindSubString(sMyTag,"ALLIP")>-1) | ||||
|     ||(FindSubString(sMyTag,"Bodak")>-1)||(FindSubString(sMyTag,"SHADOW")>-1) | ||||
|     ||(FindSubString(sMyTag,"SHFIEND")>-1)||(FindSubString(sMyTag,"SPECTRE")>-1)) | ||||
|     { | ||||
|         switch (d4())  // Soul Eaters | ||||
|         { | ||||
|             case 1 : ActionSpeakString(COLOR_VIOLET+"I'll swallow your soul!",TALKVOLUME_TALK); break; | ||||
|             case 2 : ActionSpeakString(COLOR_VIOLET+"Your soul will be mine!",TALKVOLUME_TALK); break; | ||||
|             case 3 : ActionSpeakString(COLOR_VIOLET+"Mine!!!!",TALKVOLUME_TALK); break; | ||||
|             case 4 : ActionSpeakString(COLOR_VIOLET+"The darkness calls for you...",TALKVOLUME_TALK); break; | ||||
|          } | ||||
|      } | ||||
|     else switch (d6()) // Generic Undead | ||||
|     { | ||||
|         case 1 : ActionSpeakString(COLOR_RED+"I'll swallow your soul!",TALKVOLUME_TALK); break; | ||||
|         case 2 : ActionSpeakString(COLOR_RED+"Blood and souls!",TALKVOLUME_TALK); break; | ||||
|         case 3 : ActionSpeakString(COLOR_RED+"Joinnnn usssssssss!",TALKVOLUME_TALK); break; | ||||
|         case 4 : ActionSpeakString(COLOR_RED+"For the Master!",TALKVOLUME_TALK); break; | ||||
|         case 5 : ActionSpeakString(COLOR_RED+"For the Master!",TALKVOLUME_TALK); break; | ||||
|         case 6 : ActionSpeakString(COLOR_RED+"One by one we will take you!",TALKVOLUME_TALK); break; | ||||
|      } | ||||
| } | ||||
|  | ||||
| // For use on perception | ||||
| void DoBattleCry() | ||||
| {    //if undead spotted "i see dead people!" "Dead ahead!" | ||||
|     if (d100()<=BattleCryChance) | ||||
|     { | ||||
|         if (HasSpoken()) return; | ||||
|         if ((GetRacialType(OBJECT_SELF) == RACIAL_TYPE_UNDEAD)&&(d100()<=CustomUndeadChance)) | ||||
|         { | ||||
|             DoUndeadChatter(); | ||||
|         } | ||||
|         else switch (d10()) | ||||
|         { | ||||
|             case 1: PlayVoiceChat(VOICE_CHAT_ATTACK); break; | ||||
|             case 2: PlayVoiceChat(VOICE_CHAT_BATTLECRY1); break; | ||||
|             case 3: PlayVoiceChat(VOICE_CHAT_BATTLECRY2); break; | ||||
|             case 4: PlayVoiceChat(VOICE_CHAT_BATTLECRY3); break; | ||||
|             case 5: PlayVoiceChat(VOICE_CHAT_THREATEN); break; | ||||
|             case 6: PlayVoiceChat(VOICE_CHAT_TAUNT); break; | ||||
|             case 7: PlayVoiceChat(VOICE_CHAT_ENEMIES); break; | ||||
|             case 8: PlayVoiceChat(VOICE_CHAT_CHEER); break; | ||||
|             case 9: PlayVoiceChat(VOICE_CHAT_FOLLOWME); break; | ||||
|             case 10: PlayVoiceChat(VOICE_CHAT_LOOKHERE); break; | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | ||||
| //For End of Combat Round | ||||
| void DoCombatCry() | ||||
| { | ||||
|     if (GetHasEffect(EFFECT_TYPE_FRIGHTENED)) | ||||
|     { | ||||
|         if (d100()<=CombatCryChance) | ||||
|         { | ||||
|             if (HasSpoken()) return; | ||||
|             if ((GetRacialType(OBJECT_SELF) == RACIAL_TYPE_UNDEAD)&&(d100()<=CustomUndeadChance)) | ||||
|             switch (d6()) //Turned undead :) | ||||
|             { | ||||
|                 case 1 : ActionSpeakString(COLOR_YELLOW+"It Burns! It Burns!",TALKVOLUME_TALK); break; | ||||
|                 case 2 : ActionSpeakString(COLOR_YELLOW+"Cursed Light!",TALKVOLUME_TALK); break; | ||||
|                 case 3 : ActionSpeakString(COLOR_YELLOW+"Your faith is weak, I can feel your fear...",TALKVOLUME_TALK); break; | ||||
|                 case 4 : ActionSpeakString(COLOR_YELLOW+"AAAIIIEEE!!!",TALKVOLUME_TALK); break; | ||||
|                 case 5 : ActionSpeakString(COLOR_YELLOW+"NOOO!!!",TALKVOLUME_TALK); break; | ||||
|                 case 6 : ActionSpeakString(COLOR_YELLOW+"It Burns!",TALKVOLUME_TALK); break; | ||||
|             } | ||||
|             else switch (d6()) | ||||
|             { | ||||
|                 case 1: PlayVoiceChat(VOICE_CHAT_FLEE); break; | ||||
|                 case 2: PlayVoiceChat(VOICE_CHAT_HELP); break; | ||||
|                 case 3: PlayVoiceChat(VOICE_CHAT_GUARDME); break; | ||||
|                 case 4: PlayVoiceChat(VOICE_CHAT_CUSS); break; | ||||
|                 case 5: PlayVoiceChat(VOICE_CHAT_BADIDEA); break; | ||||
|                 case 6: PlayVoiceChat(VOICE_CHAT_NEARDEATH); break; | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|     else | ||||
|     { | ||||
|        if (d100()<=CombatCryChance) | ||||
|        { | ||||
|         if (HasSpoken()) return; | ||||
|         if ((GetRacialType(OBJECT_SELF) == RACIAL_TYPE_UNDEAD)&&(d100()<=CustomUndeadChance)) | ||||
|         switch (d6()) | ||||
|         { | ||||
|             DoUndeadChatter(); | ||||
|         } | ||||
|         else switch (d6()) | ||||
|         { | ||||
|             case 1: PlayVoiceChat(VOICE_CHAT_BATTLECRY1); break; | ||||
|             case 2: PlayVoiceChat(VOICE_CHAT_BATTLECRY2); break; | ||||
|             case 3: PlayVoiceChat(VOICE_CHAT_BATTLECRY3); break; | ||||
|             case 4: PlayVoiceChat(VOICE_CHAT_LAUGH); break; | ||||
|             case 5: PlayVoiceChat(VOICE_CHAT_TAUNT); break; | ||||
|             case 6: PlayVoiceChat(VOICE_CHAT_THREATEN); break; | ||||
|         } | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | ||||
| //For Creature Death | ||||
| void DoDeathCry() | ||||
| { | ||||
|     if (d100()<=DeathCryChance) | ||||
|     { | ||||
|         if (HasSpoken()) return; | ||||
|         if ((GetRacialType(OBJECT_SELF) == RACIAL_TYPE_UNDEAD)&&(d100()<=CustomUndeadChance)) | ||||
|         switch (d6()) | ||||
|         { | ||||
|             case 1 : ActionSpeakString(COLOR_RED+"Dead by dawn! Dead by dawn!",TALKVOLUME_TALK); break; | ||||
|             case 2 : ActionSpeakString(COLOR_RED+"Death is only the beginning!",TALKVOLUME_TALK); break; | ||||
|             case 3 : ActionSpeakString(COLOR_RED+"Darkness take me...",TALKVOLUME_TALK); break; | ||||
|             case 4 : ActionSpeakString(COLOR_RED+"Free at last...",TALKVOLUME_TALK); break; | ||||
|             case 5 : ActionSpeakString(COLOR_RED+"Time to die...",TALKVOLUME_TALK); break; | ||||
|             case 6 : ActionSpeakString(COLOR_RED+"Thank you...",TALKVOLUME_TALK); break; | ||||
|         }     // "No more tears..." | ||||
|         else switch (d6()) | ||||
|         { | ||||
|              case 1: PlayVoiceChat(VOICE_CHAT_CUSS); break; | ||||
|              case 2: PlayVoiceChat(VOICE_CHAT_DEATH); break; | ||||
|              case 3: PlayVoiceChat(VOICE_CHAT_NEARDEATH); break; | ||||
|              case 4: PlayVoiceChat(VOICE_CHAT_GOODBYE); break; | ||||
|              case 5: PlayVoiceChat(VOICE_CHAT_LAUGH); break; | ||||
|              case 6: PlayVoiceChat(VOICE_CHAT_HEALME); break; | ||||
|          } | ||||
|     } | ||||
| } | ||||
| //void main (){} | ||||
		Reference in New Issue
	
	Block a user