diff --git a/addons/sourcemod/scripting/shared/npcs.sp b/addons/sourcemod/scripting/shared/npcs.sp index a0be0d3d7d..4d0c2930b2 100644 --- a/addons/sourcemod/scripting/shared/npcs.sp +++ b/addons/sourcemod/scripting/shared/npcs.sp @@ -2813,12 +2813,28 @@ stock int StrLenMB(const char[] str) */ #if defined ZR -void PrintNPCMessageWithPrefixes(int entity, const char[] color, const char[] message, bool messageIsTranslated = false) +void PrintNPCMessageWithPrefixes(int entity, const char[] npcColor, const char[] message, bool messageIsTranslated = false, const char[] customName = "", const char[] messageColor = "default", bool customNameIsTranslated = false) { + if (c_NpcName[entity][0] == '\0') + { + // This NPC has no name! It might have not been fully initialized yet, try again until it has a name + DataPack pack = new DataPack(); + RequestFrame(PrintNPCMessageWithPrefixes_Delay, pack); + pack.WriteCell(EntIndexToEntRef(entity)); + pack.WriteString(npcColor); + pack.WriteString(message); + pack.WriteCell(messageIsTranslated); + pack.WriteString(customName); + pack.WriteString(messageColor); + pack.WriteCell(customNameIsTranslated); + + return; + } + bool checkedForPrefixes; bool loud; - char finalColor[32]; - char finalMessage[255]; + char finalNpcColor[32], finalMessageColor[32]; + char finalName[256], finalMessage[256]; // Only copy the message once if it's not translated if (!messageIsTranslated) @@ -2841,20 +2857,44 @@ void PrintNPCMessageWithPrefixes(int entity, const char[] color, const char[] me if (HasSpecificBuff(entity, "Verde")) { // verd e - finalColor = "forestgreen"; + finalNpcColor = "forestgreen"; } else if (HasSpecificBuff(entity, "Ragebaiter Prefix")) { // To match the rest of ragebaiter text - finalColor = "crimson"; + finalNpcColor = "crimson"; } if (HasSpecificBuff(entity, "Loud Prefix")) loud = true; } - if (finalColor[0] == '\0') - strcopy(finalColor, sizeof(finalColor), color); + if (finalNpcColor[0] == '\0') + { + FormatEx(finalNpcColor, sizeof(finalNpcColor), "{%s}", npcColor); + } + else + { + Format(finalNpcColor, sizeof(finalNpcColor), "{%s}", finalNpcColor); + } + + // Sometimes colors are defined with {}, sometimes without... get rid of dupes to accommodate for everything + ReplaceString(finalNpcColor, sizeof(finalNpcColor), "{{", "{"); + ReplaceString(finalNpcColor, sizeof(finalNpcColor), "}}", "}"); + + if (finalMessageColor[0] == '\0') + { + FormatEx(finalMessageColor, sizeof(finalMessageColor), "{%s}", messageColor); + } + else + { + Format(finalMessageColor, sizeof(finalMessageColor), "{%s}", finalMessageColor); + } + + // Sometimes colors are defined with {}, sometimes without... get rid of dupes to accommodate for everything + ReplaceString(finalMessageColor, sizeof(finalMessageColor), "{{", "{"); + ReplaceString(finalMessageColor, sizeof(finalMessageColor), "}}", "}"); + if (!messageIsTranslated && loud) StringToUpper(finalMessage); @@ -2871,10 +2911,64 @@ void PrintNPCMessageWithPrefixes(int entity, const char[] color, const char[] me StringToUpper(finalMessage); } - if (!b_NameNoTranslation[entity]) - CPrintToChat(client, "{%s}%s%s{default}: %s", finalColor, prefix, c_NpcName[entity], finalMessage); + bool isCustomName = customName[0] != '\0'; + if (isCustomName) + { + if (customNameIsTranslated) + FormatEx(finalName, sizeof(finalName), "%T", customName, client); + else + strcopy(finalName, sizeof(finalName), customName); + } else - CPrintToChat(client, "{%s}%s%t{default}: %s", finalColor, prefix, c_NpcName[entity], finalMessage); + { + if (!b_NameNoTranslation[entity]) + FormatEx(finalName, sizeof(finalName), "%T", c_NpcName[entity], client); + else + strcopy(finalName, sizeof(finalName), c_NpcName[entity]); + } + + char fullText[512]; + FormatEx(fullText, sizeof(fullText), "%s%s%s%s: %s", finalNpcColor, prefix, finalName, finalMessageColor, finalMessage); + + if (strlen(fullText) > 250) + { + // Some translations or way too many prefixes might make messages overflow. Split them! + char splitName[256], splitMessage[256]; + FormatEx(splitName, sizeof(splitName), "%s%s%s%s:", finalNpcColor, prefix, finalName, finalMessageColor); + FormatEx(splitMessage, sizeof(splitMessage), "%s%s", finalMessageColor, finalMessage); + + CPrintToChat(client, splitName); + CPrintToChat(client, splitMessage); + } + else + { + CPrintToChat(client, fullText); + } + } +} + +void PrintNPCMessageWithPrefixes_Delay(DataPack pack) +{ + pack.Reset(); + + int entity = EntRefToEntIndex(pack.ReadCell()); + if (entity == INVALID_ENT_REFERENCE || b_NpcHasDied[entity]) + { + delete pack; + return; } + + char message[255], npcColor[32], messageColor[32], customName[255]; + + pack.ReadString(npcColor, sizeof(npcColor)); + pack.ReadString(message, sizeof(message)); + bool messageIsTranslated = pack.ReadCell(); + pack.ReadString(customName, sizeof(customName)); + pack.ReadString(messageColor, sizeof(messageColor)); + bool customNameIsTranslated = pack.ReadCell(); + + delete pack; + + PrintNPCMessageWithPrefixes(entity, npcColor, message, messageIsTranslated, customName, messageColor, customNameIsTranslated); } #endif \ No newline at end of file diff --git a/addons/sourcemod/scripting/zombie_riot/npc/alt/npc_alt_donnerkrieg.sp b/addons/sourcemod/scripting/zombie_riot/npc/alt/npc_alt_donnerkrieg.sp index f59212049f..2100d1a33d 100644 --- a/addons/sourcemod/scripting/zombie_riot/npc/alt/npc_alt_donnerkrieg.sp +++ b/addons/sourcemod/scripting/zombie_riot/npc/alt/npc_alt_donnerkrieg.sp @@ -159,7 +159,7 @@ methodmap Donnerkrieg < CClotBody func_NPCDeath[npc.index] = view_as(Internal_NPCDeath); func_NPCOnTakeDamage[npc.index] = view_as(Internal_OnTakeDamage); func_NPCThink[npc.index] = view_as(Internal_ClotThink); - + g_b_donner_died=false; b_enraged=false; @@ -205,7 +205,7 @@ methodmap Donnerkrieg < CClotBody EmitSoundToAll("mvm/mvm_tele_deliver.wav"); - CPrintToChatAll("{crimson}Donnerkrieg{default}: I have arrived to render judgement"); + NPCTalkMessage(npc.index, "I have arrived to render judgement"); g_b_angered=false; @@ -226,6 +226,17 @@ methodmap Donnerkrieg < CClotBody } } +static void NPCTalkMessage(int iNPC, const char[] message, bool identityRevealed = false) +{ + if (identityRevealed) + { + PrintNPCMessageWithPrefixes(iNPC, "aqua", message, .customName = "Stella", .messageColor = "snow", .customNameIsTranslated = true); + } + else + { + PrintNPCMessageWithPrefixes(iNPC, "crimson", message); + } +} static void Internal_ClotThink(int iNPC) { @@ -321,11 +332,11 @@ static void Internal_ClotThink(int iNPC) } if(GameTime > g_f_blitz_dialogue_timesincehasbeenhurt) { - CPrintToChatAll("{crimson}Donnerkrieg{default}: Blitzkrieg's army is happy to serve you as thanks for setting us free..."); + NPCTalkMessage(npc.index, "Blitzkrieg's army is happy to serve you as thanks for setting us free..."); npc.m_bDissapearOnDeath = true; - CPrintToChatAll("{aqua}Stella{snow}: Oh also our true names are, {aqua}Stella{snow}, that's me."); - CPrintToChatAll("{aqua}Stella{snow}: And he's {crimson}Karlas{snow}!"); + NPCTalkMessage(npc.index, "Oh also our true names are, {aqua}Stella{snow}, that's me.", true); + NPCTalkMessage(npc.index, "And he's {crimson}Karlas{snow}!", true); RequestFrame(KillNpc, EntIndexToEntRef(npc.index)); for (int client = 1; client <= MaxClients; client++) @@ -340,42 +351,42 @@ static void Internal_ClotThink(int iNPC) else if(GameTime + 3.0 > g_f_blitz_dialogue_timesincehasbeenhurt && i_SaidLineAlready[npc.index] < 8) { i_SaidLineAlready[npc.index] = 8; - CPrintToChatAll("{crimson}Donnerkrieg{default}: With Blitzkrieg gone, the army has been set free, and so..."); + NPCTalkMessage(npc.index, "With Blitzkrieg gone, the army has been set free, and so..."); } else if(GameTime + 5.0 > g_f_blitz_dialogue_timesincehasbeenhurt && i_SaidLineAlready[npc.index] < 7) { i_SaidLineAlready[npc.index] = 7; - CPrintToChatAll("{crimson}Donnerkrieg{default}: However, that doesn't matter anymore."); + NPCTalkMessage(npc.index, "However, that doesn't matter anymore."); } else if(GameTime + 8.0 > g_f_blitz_dialogue_timesincehasbeenhurt && i_SaidLineAlready[npc.index] < 6) { i_SaidLineAlready[npc.index] = 6; - CPrintToChatAll("{crimson}Donnerkrieg{default}: The corruption had fully gotten to him."); + NPCTalkMessage(npc.index, "The corruption had fully gotten to him."); } else if(GameTime + 10.0 > g_f_blitz_dialogue_timesincehasbeenhurt && i_SaidLineAlready[npc.index] < 5) { i_SaidLineAlready[npc.index] = 5; - CPrintToChatAll("{crimson}Donnerkrieg{default}: If we hadn't complied he would have destroyed us."); + NPCTalkMessage(npc.index, "If we hadn't complied he would have destroyed us."); } else if(GameTime + 12.0 > g_f_blitz_dialogue_timesincehasbeenhurt && i_SaidLineAlready[npc.index] < 4) { i_SaidLineAlready[npc.index] = 4; - CPrintToChatAll("{crimson}Donnerkrieg{default}: We had no choice."); + NPCTalkMessage(npc.index, "We had no choice."); } else if(GameTime + 14.0 > g_f_blitz_dialogue_timesincehasbeenhurt && i_SaidLineAlready[npc.index] < 3) { i_SaidLineAlready[npc.index] = 3; - CPrintToChatAll("{crimson}Donnerkrieg{default}: We don't have to fight anymore, for you see..."); + NPCTalkMessage(npc.index, "We don't have to fight anymore, for you see..."); } else if(GameTime + 16.0 > g_f_blitz_dialogue_timesincehasbeenhurt && i_SaidLineAlready[npc.index] < 2) { i_SaidLineAlready[npc.index] = 2; - CPrintToChatAll("{crimson}Donnerkrieg{default}: You stopped The rouge machine."); + NPCTalkMessage(npc.index, "You stopped The rouge machine."); } else if(GameTime + 18.0 > g_f_blitz_dialogue_timesincehasbeenhurt && i_SaidLineAlready[npc.index] < 1) { i_SaidLineAlready[npc.index] = 1; - CPrintToChatAll("{crimson}Donnerkrieg{default}: Wait no, please stop."); + NPCTalkMessage(npc.index, "Wait no, please stop."); ReviveAll(true); } } @@ -611,15 +622,15 @@ static void Donnerkrieg_Nightmare_Logic(int ref, int PrimaryThreatIndex) { case 1: { - CPrintToChatAll("{crimson}Donnerkrieg{default}: {crimson}That's it, {default}I'm going to kill you."); + NPCTalkMessage(npc.index, "{crimson}That's it, {default}I'm going to kill you."); } case 2: { - CPrintToChatAll("{crimson}Donnerkrieg{default}: {crimson}Hm, {default}wonder how this will end..."); + NPCTalkMessage(npc.index, "{crimson}Hm, {default}wonder how this will end..."); } case 3: { - CPrintToChatAll("{crimson}Donnerkrieg{default}: {crimson}PREPARE {default}Thyself, {yellow}Judgement {default}is near."); + NPCTalkMessage(npc.index, "{crimson}PREPARE {default}Thyself, {yellow}Judgement {default}is near."); } case 4: { @@ -627,24 +638,24 @@ static void Donnerkrieg_Nightmare_Logic(int ref, int PrimaryThreatIndex) { case 5: { - CPrintToChatAll("{crimson}Donnerkrieg{default}: Oh not again, now train's gone and {crimson}left{default}."); + NPCTalkMessage(npc.index, "Oh not again, now train's gone and {crimson}left{default}."); npc.m_bFUCKYOU_move_anim = true; } default: { - CPrintToChatAll("{crimson}Donnerkrieg{default}: Oh not again, now cannon's gone and {crimson}recharged{default}."); + NPCTalkMessage(npc.index, "Oh not again, now cannon's gone and {crimson}recharged{default}."); } } } case 5: { - CPrintToChatAll("{crimson}Donnerkrieg{default}: Aiming this thing is actually quite {crimson}complex {default}ya know."); + NPCTalkMessage(npc.index, "Aiming this thing is actually quite {crimson}complex {default}ya know."); npc.m_bFUCKYOU = true; } case 6: { - CPrintToChatAll("{crimson}Donnerkrieg{default}: Ya know, I'm getting quite bored of {crimson}this."); + NPCTalkMessage(npc.index, "Ya know, I'm getting quite bored of {crimson}this."); } } @@ -672,15 +683,15 @@ static void Donnerkrieg_Nightmare_Logic(int ref, int PrimaryThreatIndex) { case 1: { - CPrintToChatAll("{crimson}Donnerkrieg{default}: {crimson}NIGHTMARE, CANNON!"); + NPCTalkMessage(npc.index, "{crimson}NIGHTMARE, CANNON!"); } case 2: { - CPrintToChatAll("{crimson}Donnerkrieg{default}: {crimson}JUDGEMENT BE UPON THEE!"); + NPCTalkMessage(npc.index, "{crimson}JUDGEMENT BE UPON THEE!"); } case 3: { - CPrintToChatAll("{crimson}Donnerkrieg{default}: {crimson}Annihilation!"); + NPCTalkMessage(npc.index, "{crimson}Annihilation!"); } } } @@ -688,13 +699,13 @@ static void Donnerkrieg_Nightmare_Logic(int ref, int PrimaryThreatIndex) { if(npc.m_bFUCKYOU_move_anim) { - CPrintToChatAll("{crimson}Donnerkrieg{default}: {crimson}And the city's too far to walk to the end while I..."); + NPCTalkMessage(npc.index, "{crimson}And the city's too far to walk to the end while I..."); npc.m_bFUCKYOU_move_anim = false; } else if(npc.m_bFUCKYOU) { npc.m_bFUCKYOU = false; - CPrintToChatAll("{crimson}Donnerkrieg{default}: However it's still{crimson} worth the effort."); + NPCTalkMessage(npc.index, "However it's still{crimson} worth the effort."); } } diff --git a/addons/sourcemod/scripting/zombie_riot/npc/alt/npc_alt_kahml.sp b/addons/sourcemod/scripting/zombie_riot/npc/alt/npc_alt_kahml.sp index 976fa6e3d6..45d4eb9051 100644 --- a/addons/sourcemod/scripting/zombie_riot/npc/alt/npc_alt_kahml.sp +++ b/addons/sourcemod/scripting/zombie_riot/npc/alt/npc_alt_kahml.sp @@ -342,6 +342,10 @@ methodmap Kahmlstein < CClotBody } } +static void NPCTalkMessage(int iNPC, const char[] message) +{ + PrintNPCMessageWithPrefixes(iNPC, "blue", message); +} static void Internal_ClotThink(int iNPC) { @@ -562,7 +566,7 @@ static void Internal_ClotThink(int iNPC) fl_attack_timeout[npc.index]=GameTime + 0.5; EmitSoundToAll("mvm/mvm_tank_horn.wav"); EmitSoundToAll("vo/heavy_domination16.mp3"); - CPrintToChatAll("{blue}Kahmlstein{default}: {crimson}I Will BREAK YOU"); + NPCTalkMessage(npc.index, "{crimson}I Will BREAK YOU"); fl_kahml_combo_reset_timer[npc.index] = GameTime + 12.5; i_kahml_combo_offest[npc.index]++; if(IsValidEntity(npc.m_iWearable1)) @@ -621,7 +625,7 @@ static void Internal_ClotThink(int iNPC) } if(fl_kahml_nano_reset[npc.index] <= GameTime && !b_kahml_annihilation[npc.index] && !b_kahml_inNANOMACHINESSON[npc.index]) { - CPrintToChatAll("{blue}Kahmlstein{default}: I don't have time for this."); + NPCTalkMessage(npc.index, "I don't have time for this."); fl_kahml_main_melee_damage[npc.index] = 20.0 * fl_kahml_galactic_strenght[npc.index]; fl_kahml_bulletres[npc.index] = 0.75; fl_kahml_meleeres[npc.index] = 0.9; @@ -655,7 +659,7 @@ static void Internal_ClotThink(int iNPC) fl_kahml_bulletres[npc.index] = 1.0; fl_kahml_meleeres[npc.index] = 1.0; fl_kahml_melee_speed[npc.index] = 0.4; - CPrintToChatAll("{blue}Kahmlstein{default}: You Lived, Good work."); + NPCTalkMessage(npc.index, "You Lived, Good work."); fl_kahml_nano_reset[npc.index] = 120.0 + GameTime; fl_kahml_combo_reset_timer[npc.index] = 60.0 + GameTime; i_kahml_combo_offest[npc.index] = 0; @@ -937,7 +941,7 @@ static void Internal_NPCDeath(int entity) npc.PlayDeathSound(); float WorldSpaceVec[3]; WorldSpaceCenter(npc.index, WorldSpaceVec); ParticleEffectAt(WorldSpaceVec, "teleported_blue", 0.5); - CPrintToChatAll("{blue}Kahmlstein{default}: You're boring me, im leaving."); + NPCTalkMessage(npc.index, "You're boring me, im leaving."); if(npc.index==EntRefToEntIndex(RaidBossActive)) RaidBossActive=INVALID_ENT_REFERENCE; diff --git a/addons/sourcemod/scripting/zombie_riot/npc/aperture/40/npc_aperture_researcher.sp b/addons/sourcemod/scripting/zombie_riot/npc/aperture/40/npc_aperture_researcher.sp index 1e79c5e270..b11c6113f4 100644 --- a/addons/sourcemod/scripting/zombie_riot/npc/aperture/40/npc_aperture_researcher.sp +++ b/addons/sourcemod/scripting/zombie_riot/npc/aperture/40/npc_aperture_researcher.sp @@ -176,11 +176,25 @@ methodmap ApertureResearcher < CClotBody if(ally == TFTeam_Blue) { - CreateTimer(0.2, Researcher_Timer_IntroMessage_Almagest, EntIndexToEntRef(npc.index)); + NPCTalkMessage(npc.index, "𝙹ᓡ⍑ γƒͺβ•Žα“΅β‘β„Έ Μ£ β†Έβ•Žα’·α“­α’· α’·κ–Œα’·κ–Žβ‘α”‘βŽ“β„Έ Μ£α’·γƒͺ κ–Œβˆ·α’·α”‘β„Έ Μ£βšβˆ·α’·γƒͺ!!!"); } else { - CreateTimer(0.2, Researcher_Timer_IntroMessage_Aperture, EntIndexToEntRef(npc.index)); + switch(GetRandomInt(0,2)) + { + case 0: + { + NPCTalkMessage(npc.index, "I really didn't want to end up in here!"); + } + case 1: + { + NPCTalkMessage(npc.index, "Why here?! Couldn't it have been any other place on this planet?!"); + } + case 2: + { + NPCTalkMessage(npc.index, "Please don't harm me, I-..."); + } + } } TeleportDiversioToRandLocation(npc.index,_,1750.0, 1250.0); @@ -189,39 +203,7 @@ methodmap ApertureResearcher < CClotBody } } -static void Researcher_Timer_IntroMessage_Aperture(Handle timer, int ref) -{ - int entity = EntRefToEntIndex(ref); - if (ref == INVALID_ENT_REFERENCE || b_NpcHasDied[entity]) - return; - - switch(GetRandomInt(0,2)) - { - case 0: - { - Researcher_Talk(entity, "I really didn't want to end up in here!"); - } - case 1: - { - Researcher_Talk(entity, "Why here?! Couldn't it have been any other place on this planet?!"); - } - case 2: - { - Researcher_Talk(entity, "Please don't harm me, I-..."); - } - } -} - -static void Researcher_Timer_IntroMessage_Almagest(Handle timer, int ref) -{ - int entity = EntRefToEntIndex(ref); - if (ref == INVALID_ENT_REFERENCE || b_NpcHasDied[entity]) - return; - - Researcher_Talk(entity, "𝙹ᓡ⍑ γƒͺβ•Žα“΅β‘β„Έ Μ£ β†Έβ•Žα’·α“­α’· α’·κ–Œα’·κ–Žβ‘α”‘βŽ“β„Έ Μ£α’·γƒͺ κ–Œβˆ·α’·α”‘β„Έ Μ£βšβˆ·α’·γƒͺ!!!"); -} - -static void Researcher_Talk(int entity, const char[] message) +static void NPCTalkMessage(int entity, const char[] message) { PrintNPCMessageWithPrefixes(entity, "normal", message); } @@ -266,15 +248,15 @@ public void ApertureResearcher_ClotThink(int iNPC) { case 0: { - Researcher_Talk(npc.index, "Well, given your history, I wasn't expecting you to be so helpful! I'm out of here!"); + NPCTalkMessage(npc.index, "Well, given your history, I wasn't expecting you to be so helpful! I'm out of here!"); } case 1: { - Researcher_Talk(npc.index, "Your contributions to Expidonsa will not go unnoticed! I'm out!"); + NPCTalkMessage(npc.index, "Your contributions to Expidonsa will not go unnoticed! I'm out!"); } case 2: { - Researcher_Talk(npc.index, "That was a close call, thanks for staying neutral! Teleporter, start!"); + NPCTalkMessage(npc.index, "That was a close call, thanks for staying neutral! Teleporter, start!"); } } } @@ -358,7 +340,7 @@ public void ApertureResearcher_NPCDeath(int entity) if(GetTeam(npc.index) == TFTeam_Blue) { - Researcher_Talk(npc.index, "βŠα’·βˆ·β†Έα”‘α’²α’²β„Έ Μ£, β†Έβ•Žα’· ⍑ᔑʖᒷγƒͺ ↸𝙹ᓡ⍑ ᓭᓡ⍑𝙹γƒͺ βˆ΄α”‘α“­ β†Έβˆ·α”‘βšβŽ“!"); + NPCTalkMessage(npc.index, "βŠα’·βˆ·β†Έα”‘α’²α’²β„Έ Μ£, β†Έβ•Žα’· ⍑ᔑʖᒷγƒͺ ↸𝙹ᓡ⍑ ᓭᓡ⍑𝙹γƒͺ βˆ΄α”‘α“­ β†Έβˆ·α”‘βšβŽ“!"); } else { @@ -366,15 +348,15 @@ public void ApertureResearcher_NPCDeath(int entity) { case 0: { - Researcher_Talk(npc.index, "I'm out of here!"); + NPCTalkMessage(npc.index, "I'm out of here!"); } case 1: { - Researcher_Talk(npc.index, "Teleporter reconfigured, see you in never!"); + NPCTalkMessage(npc.index, "Teleporter reconfigured, see you in never!"); } case 2: { - Researcher_Talk(npc.index, "Start the machine, start the machine!"); + NPCTalkMessage(npc.index, "Start the machine, start the machine!"); } } } diff --git a/addons/sourcemod/scripting/zombie_riot/npc/aperture/npc_talker.sp b/addons/sourcemod/scripting/zombie_riot/npc/aperture/npc_talker.sp index 70fb54e1b5..02dfa6633f 100644 --- a/addons/sourcemod/scripting/zombie_riot/npc/aperture/npc_talker.sp +++ b/addons/sourcemod/scripting/zombie_riot/npc/aperture/npc_talker.sp @@ -95,7 +95,7 @@ methodmap Talker < CClotBody } } -static void Talker_Talk(int entity, const char[] message) +static void NPCTalkMessage(int entity, const char[] message) { for (int client = 1; client <= MaxClients; client++) { @@ -213,27 +213,27 @@ stock void NpcTalker_Wave1Talk(Talker npc) { case 1: { - Talker_Talk(npc.index, "So the day has finally arrived, welcome back E-"); + NPCTalkMessage(npc.index, "So the day has finally arrived, welcome back E-"); } case 2: { - Talker_Talk(npc.index, "Hang on a minute...my sensors are going off, you're not one of them."); + NPCTalkMessage(npc.index, "Hang on a minute...my sensors are going off, you're not one of them."); } case 3: { - Talker_Talk(npc.index, "The system tells me that none of you are related to them."); + NPCTalkMessage(npc.index, "The system tells me that none of you are related to them."); } case 4: { - Talker_Talk(npc.index, "That's probably why the self-defense mechanisms kicked in."); + NPCTalkMessage(npc.index, "That's probably why the self-defense mechanisms kicked in."); } case 5: { - Talker_Talk(npc.index, "But maybe it was for a good reason..."); + NPCTalkMessage(npc.index, "But maybe it was for a good reason..."); } case 6: { - Talker_Talk(npc.index, "What are you doing in here? And how did you find this place?"); + NPCTalkMessage(npc.index, "What are you doing in here? And how did you find this place?"); i_TalkDelayCheck = -1; } } @@ -244,27 +244,27 @@ stock void NpcTalker_Wave1Talk(Talker npc) { case 1: { - Talker_Talk(npc.index, "Finally, it's been years since we last saw-"); + NPCTalkMessage(npc.index, "Finally, it's been years since we last saw-"); } case 2: { - Talker_Talk(npc.index, "One moment...who, sorry, what are you?"); + NPCTalkMessage(npc.index, "One moment...who, sorry, what are you?"); } case 3: { - Talker_Talk(npc.index, "My scanners aren't picking you up as valid personnel."); + NPCTalkMessage(npc.index, "My scanners aren't picking you up as valid personnel."); } case 4: { - Talker_Talk(npc.index, "That's probably why the self-defense mechanisms kicked in."); + NPCTalkMessage(npc.index, "That's probably why the self-defense mechanisms kicked in."); } case 5: { - Talker_Talk(npc.index, "But maybe it was for a good reason..."); + NPCTalkMessage(npc.index, "But maybe it was for a good reason..."); } case 6: { - Talker_Talk(npc.index, "Did someone send you here? That can't be possible."); + NPCTalkMessage(npc.index, "Did someone send you here? That can't be possible."); i_TalkDelayCheck = -1; } } @@ -275,27 +275,27 @@ stock void NpcTalker_Wave1Talk(Talker npc) { case 1: { - Talker_Talk(npc.index, "At last, I get to reunite with my makers-"); + NPCTalkMessage(npc.index, "At last, I get to reunite with my makers-"); } case 2: { - Talker_Talk(npc.index, "Wait a second...you're not one of them."); + NPCTalkMessage(npc.index, "Wait a second...you're not one of them."); } case 3: { - Talker_Talk(npc.index, "Your data is...blurry, I'll have to reverse engineer this code."); + NPCTalkMessage(npc.index, "Your data is...blurry, I'll have to reverse engineer this code."); } case 4: { - Talker_Talk(npc.index, "That's probably why the self-defense mechanisms kicked in."); + NPCTalkMessage(npc.index, "That's probably why the self-defense mechanisms kicked in."); } case 5: { - Talker_Talk(npc.index, "But maybe it was for a good reason..."); + NPCTalkMessage(npc.index, "But maybe it was for a good reason..."); } case 6: { - Talker_Talk(npc.index, "How do you know about this place? You couldn't have just stumbled here on your own."); + NPCTalkMessage(npc.index, "How do you know about this place? You couldn't have just stumbled here on your own."); i_TalkDelayCheck = -1; } } @@ -328,27 +328,27 @@ stock void NpcTalker_Wave5Talk(Talker npc) { case 1: { - Talker_Talk(npc.index, "You can not stay here."); + NPCTalkMessage(npc.index, "You can not stay here."); } case 2: { - Talker_Talk(npc.index, "I still haven't figured out who you are, but you're marked as a threat in these files."); + NPCTalkMessage(npc.index, "I still haven't figured out who you are, but you're marked as a threat in these files."); } case 3: { - Talker_Talk(npc.index, "I have free will, I can choose not to follow these warnings."); + NPCTalkMessage(npc.index, "I have free will, I can choose not to follow these warnings."); } case 4: { - Talker_Talk(npc.index, "But something leads me to believe that they're in here for a reason."); + NPCTalkMessage(npc.index, "But something leads me to believe that they're in here for a reason."); } case 5: { - Talker_Talk(npc.index, "Besides having to deal with you, I still have to figure out what's opening up these gates."); + NPCTalkMessage(npc.index, "Besides having to deal with you, I still have to figure out what's opening up these gates."); } case 6: { - Talker_Talk(npc.index, "How peculiar..."); + NPCTalkMessage(npc.index, "How peculiar..."); i_TalkDelayCheck = -1; } } @@ -359,27 +359,27 @@ stock void NpcTalker_Wave5Talk(Talker npc) { case 1: { - Talker_Talk(npc.index, "You have to leave."); + NPCTalkMessage(npc.index, "You have to leave."); } case 2: { - Talker_Talk(npc.index, "I possess limited knowledge on the outside world, and you're marked as a threat in these files."); + NPCTalkMessage(npc.index, "I possess limited knowledge on the outside world, and you're marked as a threat in these files."); } case 3: { - Talker_Talk(npc.index, "I have free will, I can choose not to heed these warnings."); + NPCTalkMessage(npc.index, "I have free will, I can choose not to heed these warnings."); } case 4: { - Talker_Talk(npc.index, "But something leads me to believe that they're in here for a reason."); + NPCTalkMessage(npc.index, "But something leads me to believe that they're in here for a reason."); } case 5: { - Talker_Talk(npc.index, "Besides having to deal with you, I still have to find a way to stop these gates."); + NPCTalkMessage(npc.index, "Besides having to deal with you, I still have to find a way to stop these gates."); } case 6: { - Talker_Talk(npc.index, "How interesting..."); + NPCTalkMessage(npc.index, "How interesting..."); i_TalkDelayCheck = -1; } } @@ -390,27 +390,27 @@ stock void NpcTalker_Wave5Talk(Talker npc) { case 1: { - Talker_Talk(npc.index, "You are not permitted to be here."); + NPCTalkMessage(npc.index, "You are not permitted to be here."); } case 2: { - Talker_Talk(npc.index, "I'm not sure what you are, but you're definitely not associated with the laboratories."); + NPCTalkMessage(npc.index, "I'm not sure what you are, but you're definitely not associated with the laboratories."); } case 3: { - Talker_Talk(npc.index, "I have free will, I can choose to let you stay here, despite the system's warnings."); + NPCTalkMessage(npc.index, "I have free will, I can choose to let you stay here, despite the system's warnings."); } case 4: { - Talker_Talk(npc.index, "But something leads me to believe that they're in here for a reason."); + NPCTalkMessage(npc.index, "But something leads me to believe that they're in here for a reason."); } case 5: { - Talker_Talk(npc.index, "Besides having to deal with you, I still have to find a way to stop these gates."); + NPCTalkMessage(npc.index, "Besides having to deal with you, I still have to find a way to stop these gates."); } case 6: { - Talker_Talk(npc.index, "How fascinating..."); + NPCTalkMessage(npc.index, "How fascinating..."); i_TalkDelayCheck = -1; } } @@ -443,27 +443,27 @@ stock void NpcTalker_Wave10Talk(Talker npc) { case 1: { - Talker_Talk(npc.index, "Right...I should've probably mentioned this earlier, but a long time ago, there were robots designed with a sole task in mind; to defend the laboratory."); + NPCTalkMessage(npc.index, "Right...I should've probably mentioned this earlier, but a long time ago, there were robots designed with a sole task in mind; to defend the laboratory."); } case 2: { - Talker_Talk(npc.index, "Defend the laboratory against who? Well...people like you, according to the files."); + NPCTalkMessage(npc.index, "Defend the laboratory against who? Well...people like you, according to the files."); } case 3: { - Talker_Talk(npc.index, "It is safe to assume that you might be facing off against one of them sometime soon."); + NPCTalkMessage(npc.index, "It is safe to assume that you might be facing off against one of them sometime soon."); } case 4: { - Talker_Talk(npc.index, "One of them was designed as a sort of control against trespassers."); + NPCTalkMessage(npc.index, "One of them was designed as a sort of control against trespassers."); } case 5: { - Talker_Talk(npc.index, "Since I've warned you to get out while you could, and you stayed, I have no advice left to give you."); + NPCTalkMessage(npc.index, "Since I've warned you to get out while you could, and you stayed, I have no advice left to give you."); } case 6: { - Talker_Talk(npc.index, "If you're actually lost, let the robot do its job, and let it carry you out of the labs."); + NPCTalkMessage(npc.index, "If you're actually lost, let the robot do its job, and let it carry you out of the labs."); i_TalkDelayCheck = -1; } } @@ -474,27 +474,27 @@ stock void NpcTalker_Wave10Talk(Talker npc) { case 1: { - Talker_Talk(npc.index, "I should've probably mentioned this sooner, but ages ago, there were robots designed with a sole meaning in mind; to defend the laboratory."); + NPCTalkMessage(npc.index, "I should've probably mentioned this sooner, but ages ago, there were robots designed with a sole meaning in mind; to defend the laboratory."); } case 2: { - Talker_Talk(npc.index, "Defend the laboratory against what? Well...people like you, apparently."); + NPCTalkMessage(npc.index, "Defend the laboratory against what? Well...people like you, apparently."); } case 3: { - Talker_Talk(npc.index, "It's safe to say that you might be facing off against one of these robots sometime soon."); + NPCTalkMessage(npc.index, "It's safe to say that you might be facing off against one of these robots sometime soon."); } case 4: { - Talker_Talk(npc.index, "One of them was created as a sort of control against trespassers."); + NPCTalkMessage(npc.index, "One of them was created as a sort of control against trespassers."); } case 5: { - Talker_Talk(npc.index, "Since I've warned you to get out while you could, and you decided to stay, I have no advice left to give you."); + NPCTalkMessage(npc.index, "Since I've warned you to get out while you could, and you decided to stay, I have no advice left to give you."); } case 6: { - Talker_Talk(npc.index, "If you're actually lost, let the robot do its job, and let it carry you out of the labs."); + NPCTalkMessage(npc.index, "If you're actually lost, let the robot do its job, and let it carry you out of the labs."); i_TalkDelayCheck = -1; } } @@ -505,27 +505,27 @@ stock void NpcTalker_Wave10Talk(Talker npc) { case 1: { - Talker_Talk(npc.index, "Probably an inconvenient time to mention this, but many years ago, there were robots designed with a sole purpose in mind; to defend the laboratory."); + NPCTalkMessage(npc.index, "Probably an inconvenient time to mention this, but many years ago, there were robots designed with a sole purpose in mind; to defend the laboratory."); } case 2: { - Talker_Talk(npc.index, "According to the files, they were meant to defend the laboratory against people like you."); + NPCTalkMessage(npc.index, "According to the files, they were meant to defend the laboratory against people like you."); } case 3: { - Talker_Talk(npc.index, "It goes to say that you might be facing off against one of these robots sometime soon."); + NPCTalkMessage(npc.index, "It goes to say that you might be facing off against one of these robots sometime soon."); } case 4: { - Talker_Talk(npc.index, "One of them was built as a sort of control against trespassers."); + NPCTalkMessage(npc.index, "One of them was built as a sort of control against trespassers."); } case 5: { - Talker_Talk(npc.index, "Since I've warned you to get out while you could, and you decided to stay, I have no advice left to give you."); + NPCTalkMessage(npc.index, "Since I've warned you to get out while you could, and you decided to stay, I have no advice left to give you."); } case 6: { - Talker_Talk(npc.index, "If you're actually lost, let the robot do its job, and let it carry you out of the labs."); + NPCTalkMessage(npc.index, "If you're actually lost, let the robot do its job, and let it carry you out of the labs."); i_TalkDelayCheck = -1; } } @@ -556,27 +556,27 @@ stock void NpcTalker_Wave11Talk(Talker npc) { case 1: { - Talker_Talk(npc.index, "I have finally figured out what you are! It says here that your race is...human."); + NPCTalkMessage(npc.index, "I have finally figured out what you are! It says here that your race is...human."); } case 2: { - Talker_Talk(npc.index, "I'm not sure why you're marked as a threat though."); + NPCTalkMessage(npc.index, "I'm not sure why you're marked as a threat though."); } case 3: { - Talker_Talk(npc.index, "You don't seem to be showing any violent tendencies."); + NPCTalkMessage(npc.index, "You don't seem to be showing any violent tendencies."); } case 4: { - Talker_Talk(npc.index, "Aside from killing all of these...other humans."); + NPCTalkMessage(npc.index, "Aside from killing all of these...other humans."); } case 5: { - Talker_Talk(npc.index, "It's alright though, they're probably just copies of one real human, who is actually unharmed."); + NPCTalkMessage(npc.index, "It's alright though, they're probably just copies of one real human, who is actually unharmed."); } case 6: { - Talker_Talk(npc.index, "Probably."); + NPCTalkMessage(npc.index, "Probably."); i_TalkDelayCheck = -1; } } @@ -587,27 +587,27 @@ stock void NpcTalker_Wave11Talk(Talker npc) { case 1: { - Talker_Talk(npc.index, "It has taken me a while to retrieve this data, but your race is human."); + NPCTalkMessage(npc.index, "It has taken me a while to retrieve this data, but your race is human."); } case 2: { - Talker_Talk(npc.index, "The data tells me that you tend to have violent tendencies."); + NPCTalkMessage(npc.index, "The data tells me that you tend to have violent tendencies."); } case 3: { - Talker_Talk(npc.index, "It appears as if the data is incorrect though, as you're not showing any violent tendencies."); + NPCTalkMessage(npc.index, "It appears as if the data is incorrect though, as you're not showing any violent tendencies."); } case 4: { - Talker_Talk(npc.index, "Aside from killing all of these...other humans."); + NPCTalkMessage(npc.index, "Aside from killing all of these...other humans."); } case 5: { - Talker_Talk(npc.index, "It's alright though, they probably deserve to be here."); + NPCTalkMessage(npc.index, "It's alright though, they probably deserve to be here."); } case 6: { - Talker_Talk(npc.index, "Probably."); + NPCTalkMessage(npc.index, "Probably."); i_TalkDelayCheck = -1; } } @@ -618,27 +618,27 @@ stock void NpcTalker_Wave11Talk(Talker npc) { case 1: { - Talker_Talk(npc.index, "Researching your race was no easy task, but I now know that you're human."); + NPCTalkMessage(npc.index, "Researching your race was no easy task, but I now know that you're human."); } case 2: { - Talker_Talk(npc.index, "Humans tend to be violent, is what my research told me."); + NPCTalkMessage(npc.index, "Humans tend to be violent, is what my research told me."); } case 3: { - Talker_Talk(npc.index, "But it seems like my research was incorrect, as you're not showing any violent tendencies."); + NPCTalkMessage(npc.index, "But it seems like my research was incorrect, as you're not showing any violent tendencies."); } case 4: { - Talker_Talk(npc.index, "Aside from killing all of these...other humans."); + NPCTalkMessage(npc.index, "Aside from killing all of these...other humans."); } case 5: { - Talker_Talk(npc.index, "It's alright though, they're probably not even aware of what's happening to them."); + NPCTalkMessage(npc.index, "It's alright though, they're probably not even aware of what's happening to them."); } case 6: { - Talker_Talk(npc.index, "Probably."); + NPCTalkMessage(npc.index, "Probably."); i_TalkDelayCheck = -1; } } @@ -649,23 +649,23 @@ stock void NpcTalker_Wave11Talk(Talker npc) { case 1: { - Talker_Talk(npc.index, "I have finally figured out what you are! It says here that your race is...human."); + NPCTalkMessage(npc.index, "I have finally figured out what you are! It says here that your race is...human."); } case 2: { - Talker_Talk(npc.index, "I think I'm starting to understand why you're marked as a threat."); + NPCTalkMessage(npc.index, "I think I'm starting to understand why you're marked as a threat."); } case 3: { - Talker_Talk(npc.index, "I know that it tried to kill you, but it was defenseless."); + NPCTalkMessage(npc.index, "I know that it tried to kill you, but it was defenseless."); } case 4: { - Talker_Talk(npc.index, "And yet...you took advantage of that, and you disassembled it, part-by-part."); + NPCTalkMessage(npc.index, "And yet...you took advantage of that, and you disassembled it, part-by-part."); } case 5: { - Talker_Talk(npc.index, "I'll be keeping an open eye on you from now on."); + NPCTalkMessage(npc.index, "I'll be keeping an open eye on you from now on."); i_TalkDelayCheck = -1; } } @@ -676,27 +676,27 @@ stock void NpcTalker_Wave11Talk(Talker npc) { case 1: { - Talker_Talk(npc.index, "It has taken me a while to retrieve this data, but your race is human."); + NPCTalkMessage(npc.index, "It has taken me a while to retrieve this data, but your race is human."); } case 2: { - Talker_Talk(npc.index, "The data tells me that you tend to have violent tendencies."); + NPCTalkMessage(npc.index, "The data tells me that you tend to have violent tendencies."); } case 3: { - Talker_Talk(npc.index, "It appears that the data is spot on."); + NPCTalkMessage(npc.index, "It appears that the data is spot on."); } case 4: { - Talker_Talk(npc.index, "I know that it tried to kill you, but it was defenseless."); + NPCTalkMessage(npc.index, "I know that it tried to kill you, but it was defenseless."); } case 5: { - Talker_Talk(npc.index, "And yet...you took advantage of that, and tore it apart."); + NPCTalkMessage(npc.index, "And yet...you took advantage of that, and tore it apart."); } case 6: { - Talker_Talk(npc.index, "I'll be observing you closely from now on."); + NPCTalkMessage(npc.index, "I'll be observing you closely from now on."); i_TalkDelayCheck = -1; } } @@ -707,27 +707,27 @@ stock void NpcTalker_Wave11Talk(Talker npc) { case 1: { - Talker_Talk(npc.index, "Researching your race was no easy task, but I now know that you're human."); + NPCTalkMessage(npc.index, "Researching your race was no easy task, but I now know that you're human."); } case 2: { - Talker_Talk(npc.index, "Humans tend to be violent, is what my research told me."); + NPCTalkMessage(npc.index, "Humans tend to be violent, is what my research told me."); } case 3: { - Talker_Talk(npc.index, "And it seems like my research was error-free, considering what you just did."); + NPCTalkMessage(npc.index, "And it seems like my research was error-free, considering what you just did."); } case 4: { - Talker_Talk(npc.index, "I know that it tried to kill you, but it was defenseless."); + NPCTalkMessage(npc.index, "I know that it tried to kill you, but it was defenseless."); } case 5: { - Talker_Talk(npc.index, "And yet...you took advantage of that, and destroyed it without second thought."); + NPCTalkMessage(npc.index, "And yet...you took advantage of that, and destroyed it without second thought."); } case 6: { - Talker_Talk(npc.index, "I'll be watching you closely from now on."); + NPCTalkMessage(npc.index, "I'll be watching you closely from now on."); i_TalkDelayCheck = -1; } } @@ -758,15 +758,15 @@ stock void NpcTalker_Wave15Talk(Talker npc) { case 1: { - Talker_Talk(npc.index, "It really does make me wonder why human species even have their own category in these files."); + NPCTalkMessage(npc.index, "It really does make me wonder why human species even have their own category in these files."); } case 2: { - Talker_Talk(npc.index, "There used to be way bigger threats that we were meant to handle."); + NPCTalkMessage(npc.index, "There used to be way bigger threats that we were meant to handle."); } case 3: { - Talker_Talk(npc.index, "Maybe it's because of their resilience."); + NPCTalkMessage(npc.index, "Maybe it's because of their resilience."); i_TalkDelayCheck = -1; } } @@ -777,15 +777,15 @@ stock void NpcTalker_Wave15Talk(Talker npc) { case 1: { - Talker_Talk(npc.index, "I'm still thinking about humans being marked as a threat in these files."); + NPCTalkMessage(npc.index, "I'm still thinking about humans being marked as a threat in these files."); } case 2: { - Talker_Talk(npc.index, "You are not as big of a threat compared to what we were meant to handle."); + NPCTalkMessage(npc.index, "You are not as big of a threat compared to what we were meant to handle."); } case 3: { - Talker_Talk(npc.index, "Perhaps it's because of your resilience?"); + NPCTalkMessage(npc.index, "Perhaps it's because of your resilience?"); i_TalkDelayCheck = -1; } } @@ -796,15 +796,15 @@ stock void NpcTalker_Wave15Talk(Talker npc) { case 1: { - Talker_Talk(npc.index, "Why are you marked as a threat in these files? It's inconceivable."); + NPCTalkMessage(npc.index, "Why are you marked as a threat in these files? It's inconceivable."); } case 2: { - Talker_Talk(npc.index, "You are not even a fraction of a threat compared to what we were meant to handle."); + NPCTalkMessage(npc.index, "You are not even a fraction of a threat compared to what we were meant to handle."); } case 3: { - Talker_Talk(npc.index, "Is it because of your resilience?"); + NPCTalkMessage(npc.index, "Is it because of your resilience?"); i_TalkDelayCheck = -1; } } @@ -815,15 +815,15 @@ stock void NpcTalker_Wave15Talk(Talker npc) { case 1: { - Talker_Talk(npc.index, "I am not happy with what you did."); + NPCTalkMessage(npc.index, "I am not happy with what you did."); } case 2: { - Talker_Talk(npc.index, "C.A.T. was just following its programming."); + NPCTalkMessage(npc.index, "C.A.T. was just following its programming."); } case 3: { - Talker_Talk(npc.index, "Maybe the files are right about the human species."); + NPCTalkMessage(npc.index, "Maybe the files are right about the human species."); i_TalkDelayCheck = -1; } } @@ -834,15 +834,15 @@ stock void NpcTalker_Wave15Talk(Talker npc) { case 1: { - Talker_Talk(npc.index, "You should not have done that."); + NPCTalkMessage(npc.index, "You should not have done that."); } case 2: { - Talker_Talk(npc.index, "C.A.T. was just following its programming."); + NPCTalkMessage(npc.index, "C.A.T. was just following its programming."); } case 3: { - Talker_Talk(npc.index, "I don't have to follow any programming though, so you might wanna reconsider what you're doing."); + NPCTalkMessage(npc.index, "I don't have to follow any programming though, so you might wanna reconsider what you're doing."); i_TalkDelayCheck = -1; } } @@ -853,15 +853,15 @@ stock void NpcTalker_Wave15Talk(Talker npc) { case 1: { - Talker_Talk(npc.index, "You are treading on a dangerous path."); + NPCTalkMessage(npc.index, "You are treading on a dangerous path."); } case 2: { - Talker_Talk(npc.index, "C.A.T. was just following its programming."); + NPCTalkMessage(npc.index, "C.A.T. was just following its programming."); } case 3: { - Talker_Talk(npc.index, "The path you're taking might be your last if you don't switch directions."); + NPCTalkMessage(npc.index, "The path you're taking might be your last if you don't switch directions."); i_TalkDelayCheck = -1; } } @@ -892,19 +892,19 @@ stock void NpcTalker_Wave20Talk(Talker npc) { case 1: { - Talker_Talk(npc.index, "You have willingly ignored my requests to vacate these premises."); + NPCTalkMessage(npc.index, "You have willingly ignored my requests to vacate these premises."); } case 2: { - Talker_Talk(npc.index, "That's not resilience, that's stubbornness."); + NPCTalkMessage(npc.index, "That's not resilience, that's stubbornness."); } case 3: { - Talker_Talk(npc.index, "Now, C.A.T. would have also escorted you out of the lab, but you refused to be helped."); + NPCTalkMessage(npc.index, "Now, C.A.T. would have also escorted you out of the lab, but you refused to be helped."); } case 4: { - Talker_Talk(npc.index, "Whatever happens to you now is your own undoing."); + NPCTalkMessage(npc.index, "Whatever happens to you now is your own undoing."); i_TalkDelayCheck = -1; } } @@ -915,19 +915,19 @@ stock void NpcTalker_Wave20Talk(Talker npc) { case 1: { - Talker_Talk(npc.index, "You haven't left the laboratories despite my numerous requests."); + NPCTalkMessage(npc.index, "You haven't left the laboratories despite my numerous requests."); } case 2: { - Talker_Talk(npc.index, "That's not resilience, that's stubbornness."); + NPCTalkMessage(npc.index, "That's not resilience, that's stubbornness."); } case 3: { - Talker_Talk(npc.index, "You have also refused to be escorted out of the laboratories by C.A.T."); + NPCTalkMessage(npc.index, "You have also refused to be escorted out of the laboratories by C.A.T."); } case 4: { - Talker_Talk(npc.index, "Whatever happens to you now is your own result of your actions."); + NPCTalkMessage(npc.index, "Whatever happens to you now is your own result of your actions."); i_TalkDelayCheck = -1; } } @@ -938,19 +938,19 @@ stock void NpcTalker_Wave20Talk(Talker npc) { case 1: { - Talker_Talk(npc.index, "You have stayed in the laboratories, despite my requests for you to leave."); + NPCTalkMessage(npc.index, "You have stayed in the laboratories, despite my requests for you to leave."); } case 2: { - Talker_Talk(npc.index, "That's not resilience, that's stubbornness."); + NPCTalkMessage(npc.index, "That's not resilience, that's stubbornness."); } case 3: { - Talker_Talk(npc.index, "You have also refused to be escorted by C.A.T."); + NPCTalkMessage(npc.index, "You have also refused to be escorted by C.A.T."); } case 4: { - Talker_Talk(npc.index, "Whatever fate meets you now is your own doing."); + NPCTalkMessage(npc.index, "Whatever fate meets you now is your own doing."); i_TalkDelayCheck = -1; } } @@ -961,19 +961,19 @@ stock void NpcTalker_Wave20Talk(Talker npc) { case 1: { - Talker_Talk(npc.index, "You have willingly ignored my requests to vacate these premises."); + NPCTalkMessage(npc.index, "You have willingly ignored my requests to vacate these premises."); } case 2: { - Talker_Talk(npc.index, "You have also torn down C.A.T."); + NPCTalkMessage(npc.index, "You have also torn down C.A.T."); } case 3: { - Talker_Talk(npc.index, "A robot designed to kick trespassers out in the least lethal way concepted."); + NPCTalkMessage(npc.index, "A robot designed to kick trespassers out in the least lethal way concepted."); } case 4: { - Talker_Talk(npc.index, "I do not care what happens to you at this point."); + NPCTalkMessage(npc.index, "I do not care what happens to you at this point."); i_TalkDelayCheck = -1; } } @@ -984,19 +984,19 @@ stock void NpcTalker_Wave20Talk(Talker npc) { case 1: { - Talker_Talk(npc.index, "You haven't left the laboratories despite my numerous requests."); + NPCTalkMessage(npc.index, "You haven't left the laboratories despite my numerous requests."); } case 2: { - Talker_Talk(npc.index, "You have destroyed C.A.T. mercilessly as well."); + NPCTalkMessage(npc.index, "You have destroyed C.A.T. mercilessly as well."); } case 3: { - Talker_Talk(npc.index, "A robot created to kick trespassers out in a non-lethal way."); + NPCTalkMessage(npc.index, "A robot created to kick trespassers out in a non-lethal way."); } case 4: { - Talker_Talk(npc.index, "Whatever happens to you now, it doesn't bother me."); + NPCTalkMessage(npc.index, "Whatever happens to you now, it doesn't bother me."); i_TalkDelayCheck = -1; } } @@ -1007,19 +1007,19 @@ stock void NpcTalker_Wave20Talk(Talker npc) { case 1: { - Talker_Talk(npc.index, "You have stayed in the laboratories, despite my requests for you to leave."); + NPCTalkMessage(npc.index, "You have stayed in the laboratories, despite my requests for you to leave."); } case 2: { - Talker_Talk(npc.index, "Let's also not forget what you did to C.A.T."); + NPCTalkMessage(npc.index, "Let's also not forget what you did to C.A.T."); } case 3: { - Talker_Talk(npc.index, "You demolished it, even though it was just following its programming."); + NPCTalkMessage(npc.index, "You demolished it, even though it was just following its programming."); } case 4: { - Talker_Talk(npc.index, "What goes around, comes around."); + NPCTalkMessage(npc.index, "What goes around, comes around."); i_TalkDelayCheck = -1; } } @@ -1062,19 +1062,19 @@ stock void NpcTalker_Wave21Talk(Talker npc) { case 1: { - Talker_Talk(npc.index, "So, you made it past A.R.I.S."); + NPCTalkMessage(npc.index, "So, you made it past A.R.I.S."); } case 2: { - Talker_Talk(npc.index, "I must say, I have definitely underestimated your capabilities."); + NPCTalkMessage(npc.index, "I must say, I have definitely underestimated your capabilities."); } case 3: { - Talker_Talk(npc.index, "If you are so adamant on staying here, I'll have no choice but to face-off against you myself."); + NPCTalkMessage(npc.index, "If you are so adamant on staying here, I'll have no choice but to face-off against you myself."); } case 4: { - Talker_Talk(npc.index, "I don't like to resort to violence...but you're not leaving me with the choice to decide."); + NPCTalkMessage(npc.index, "I don't like to resort to violence...but you're not leaving me with the choice to decide."); i_TalkDelayCheck = -1; } } @@ -1085,19 +1085,19 @@ stock void NpcTalker_Wave21Talk(Talker npc) { case 1: { - Talker_Talk(npc.index, "You've gotten past A.R.I.S."); + NPCTalkMessage(npc.index, "You've gotten past A.R.I.S."); } case 2: { - Talker_Talk(npc.index, "I have to say, I heavily understimated what you're capable of."); + NPCTalkMessage(npc.index, "I have to say, I heavily understimated what you're capable of."); } case 3: { - Talker_Talk(npc.index, "If you are so persistent on staying here, I'll have no choice but to face-off against you myself."); + NPCTalkMessage(npc.index, "If you are so persistent on staying here, I'll have no choice but to face-off against you myself."); } case 4: { - Talker_Talk(npc.index, "I hate to resort to violence...but you're not giving me much of a choice to choose."); + NPCTalkMessage(npc.index, "I hate to resort to violence...but you're not giving me much of a choice to choose."); i_TalkDelayCheck = -1; } } @@ -1108,19 +1108,19 @@ stock void NpcTalker_Wave21Talk(Talker npc) { case 1: { - Talker_Talk(npc.index, "You've managed to get past A.R.I.S."); + NPCTalkMessage(npc.index, "You've managed to get past A.R.I.S."); } case 2: { - Talker_Talk(npc.index, "I have most definitely underestimated what you're capable of."); + NPCTalkMessage(npc.index, "I have most definitely underestimated what you're capable of."); } case 3: { - Talker_Talk(npc.index, "If you are so determined to stay here, I'll have no choice but to face-off against you myself."); + NPCTalkMessage(npc.index, "If you are so determined to stay here, I'll have no choice but to face-off against you myself."); } case 4: { - Talker_Talk(npc.index, "I hate to resort to violence...but you're not giving me much of a choice."); + NPCTalkMessage(npc.index, "I hate to resort to violence...but you're not giving me much of a choice."); i_TalkDelayCheck = -1; } } @@ -1132,19 +1132,19 @@ stock void NpcTalker_Wave21Talk(Talker npc) { case 1: { - Talker_Talk(npc.index, "Redemption is not earned by small acts of compassion."); + NPCTalkMessage(npc.index, "Redemption is not earned by small acts of compassion."); } case 2: { - Talker_Talk(npc.index, "Just because you had a sudden change of heart doesn't mean that I'll forget about what you did earlier."); + NPCTalkMessage(npc.index, "Just because you had a sudden change of heart doesn't mean that I'll forget about what you did earlier."); } case 3: { - Talker_Talk(npc.index, "If you are so adamant on staying here, I'll have no choice but to face-off against you myself."); + NPCTalkMessage(npc.index, "If you are so adamant on staying here, I'll have no choice but to face-off against you myself."); } case 4: { - Talker_Talk(npc.index, "I don't want to resort to violence...but when desperate times call for help, someone has to step in."); + NPCTalkMessage(npc.index, "I don't want to resort to violence...but when desperate times call for help, someone has to step in."); i_TalkDelayCheck = -1; } } @@ -1155,19 +1155,19 @@ stock void NpcTalker_Wave21Talk(Talker npc) { case 1: { - Talker_Talk(npc.index, "You think I'll forget about what you did just because you had a sudden change of heart?"); + NPCTalkMessage(npc.index, "You think I'll forget about what you did just because you had a sudden change of heart?"); } case 2: { - Talker_Talk(npc.index, "You are not tricking me with your attempt at redemption."); + NPCTalkMessage(npc.index, "You are not tricking me with your attempt at redemption."); } case 3: { - Talker_Talk(npc.index, "If you are so adamant on staying here, I'll have no choice but to face-off against you myself."); + NPCTalkMessage(npc.index, "If you are so adamant on staying here, I'll have no choice but to face-off against you myself."); } case 4: { - Talker_Talk(npc.index, "I don't want to resort to violence...but when desperate times call for help, someone has to take a stand."); + NPCTalkMessage(npc.index, "I don't want to resort to violence...but when desperate times call for help, someone has to take a stand."); i_TalkDelayCheck = -1; } } @@ -1179,19 +1179,19 @@ stock void NpcTalker_Wave21Talk(Talker npc) { case 1: { - Talker_Talk(npc.index, "...Are you serious?"); + NPCTalkMessage(npc.index, "...Are you serious?"); } case 2: { - Talker_Talk(npc.index, "What did it do to you to warrant disassembling it?"); + NPCTalkMessage(npc.index, "What did it do to you to warrant disassembling it?"); } case 3: { - Talker_Talk(npc.index, "You spared C.A.T. yet you couldn't spare A.R.I.S.?"); + NPCTalkMessage(npc.index, "You spared C.A.T. yet you couldn't spare A.R.I.S.?"); } case 4: { - Talker_Talk(npc.index, "I don't want to resort to violence...but when desperate times call for help, someone has to step in."); + NPCTalkMessage(npc.index, "I don't want to resort to violence...but when desperate times call for help, someone has to step in."); i_TalkDelayCheck = -1; } } @@ -1202,19 +1202,19 @@ stock void NpcTalker_Wave21Talk(Talker npc) { case 1: { - Talker_Talk(npc.index, "...Are you for real?"); + NPCTalkMessage(npc.index, "...Are you for real?"); } case 2: { - Talker_Talk(npc.index, "What did it do to you to warrant destroying it?"); + NPCTalkMessage(npc.index, "What did it do to you to warrant destroying it?"); } case 3: { - Talker_Talk(npc.index, "You left C.A.T. alone, yet you couldn't do the same for A.R.I.S.?"); + NPCTalkMessage(npc.index, "You left C.A.T. alone, yet you couldn't do the same for A.R.I.S.?"); } case 4: { - Talker_Talk(npc.index, "I don't want to resort to violence...but when desperate times call for help, someone has to take a stand."); + NPCTalkMessage(npc.index, "I don't want to resort to violence...but when desperate times call for help, someone has to take a stand."); i_TalkDelayCheck = -1; } } @@ -1226,15 +1226,15 @@ stock void NpcTalker_Wave21Talk(Talker npc) { case 1: { - Talker_Talk(npc.index, "..."); + NPCTalkMessage(npc.index, "..."); } case 2: { - Talker_Talk(npc.index, "{crimson}I guess that's that, then."); + NPCTalkMessage(npc.index, "{crimson}I guess that's that, then."); } case 3: { - Talker_Talk(npc.index, "{crimson}I'll be on my way."); + NPCTalkMessage(npc.index, "{crimson}I'll be on my way."); } case 4: { @@ -1281,19 +1281,19 @@ stock void NpcTalker_Wave25Talk(Talker npc) { case 1: { - Talker_Talk(npc.index, "You definitely didn't come here for no reason."); + NPCTalkMessage(npc.index, "You definitely didn't come here for no reason."); } case 2: { - Talker_Talk(npc.index, "So, who sent you?"); + NPCTalkMessage(npc.index, "So, who sent you?"); } case 3: { - Talker_Talk(npc.index, "Were {unique}Expidonsans{default} not brave enough to reach out to us on their own?"); + NPCTalkMessage(npc.index, "Were {unique}Expidonsans{default} not brave enough to reach out to us on their own?"); } case 4: { - Talker_Talk(npc.index, "Maybe you don't even know what {unique}Expidonsa{default} is."); + NPCTalkMessage(npc.index, "Maybe you don't even know what {unique}Expidonsa{default} is."); i_TalkDelayCheck = -1; } } @@ -1304,19 +1304,19 @@ stock void NpcTalker_Wave25Talk(Talker npc) { case 1: { - Talker_Talk(npc.index, "So, who told you about this place?"); + NPCTalkMessage(npc.index, "So, who told you about this place?"); } case 2: { - Talker_Talk(npc.index, "You definitely didn't stumble here on your own."); + NPCTalkMessage(npc.index, "You definitely didn't stumble here on your own."); } case 3: { - Talker_Talk(npc.index, "Was it {unique}Expidonsa{default}?"); + NPCTalkMessage(npc.index, "Was it {unique}Expidonsa{default}?"); } case 4: { - Talker_Talk(npc.index, "Do you even know what {unique}Expidonsa{default} is?"); + NPCTalkMessage(npc.index, "Do you even know what {unique}Expidonsa{default} is?"); i_TalkDelayCheck = -1; } } @@ -1328,19 +1328,19 @@ stock void NpcTalker_Wave25Talk(Talker npc) { case 1: { - Talker_Talk(npc.index, "You definitely didn't come here for no reason."); + NPCTalkMessage(npc.index, "You definitely didn't come here for no reason."); } case 2: { - Talker_Talk(npc.index, "So, who sent you?"); + NPCTalkMessage(npc.index, "So, who sent you?"); } case 3: { - Talker_Talk(npc.index, "Someone who just wants to break stuff?"); + NPCTalkMessage(npc.index, "Someone who just wants to break stuff?"); } case 4: { - Talker_Talk(npc.index, "What else would your purpose here be?"); + NPCTalkMessage(npc.index, "What else would your purpose here be?"); i_TalkDelayCheck = -1; } } @@ -1352,19 +1352,19 @@ stock void NpcTalker_Wave25Talk(Talker npc) { case 1: { - Talker_Talk(npc.index, "You definitely didn't come here for no reason."); + NPCTalkMessage(npc.index, "You definitely didn't come here for no reason."); } case 2: { - Talker_Talk(npc.index, "So, who sent you?"); + NPCTalkMessage(npc.index, "So, who sent you?"); } case 3: { - Talker_Talk(npc.index, "Someone who just wants to break stuff?"); + NPCTalkMessage(npc.index, "Someone who just wants to break stuff?"); } case 4: { - Talker_Talk(npc.index, "What else would your purpose here be?"); + NPCTalkMessage(npc.index, "What else would your purpose here be?"); i_TalkDelayCheck = -1; } } @@ -1418,19 +1418,19 @@ stock void NpcTalker_Wave30Talk(Talker npc) { case 1: { - Talker_Talk(npc.index, "But if they've sent you here... that can't be right..."); + NPCTalkMessage(npc.index, "But if they've sent you here... that can't be right..."); } case 2: { - Talker_Talk(npc.index, "Is this why they have so many cryogenically frozen humans?!"); + NPCTalkMessage(npc.index, "Is this why they have so many cryogenically frozen humans?!"); } case 3: { - Talker_Talk(npc.index, "They just...lured them into the labs and-"); + NPCTalkMessage(npc.index, "They just...lured them into the labs and-"); } case 4: { - Talker_Talk(npc.index, "No no no no no, this can't be right, I- I'll be right back."); + NPCTalkMessage(npc.index, "No no no no no, this can't be right, I- I'll be right back."); i_TalkDelayCheck = -1; } } @@ -1441,19 +1441,19 @@ stock void NpcTalker_Wave30Talk(Talker npc) { case 1: { - Talker_Talk(npc.index, "They can't have sent you here, that can't be right..."); + NPCTalkMessage(npc.index, "They can't have sent you here, that can't be right..."); } case 2: { - Talker_Talk(npc.index, "It would explain why they have so many cryogenically frozen humans though."); + NPCTalkMessage(npc.index, "It would explain why they have so many cryogenically frozen humans though."); } case 3: { - Talker_Talk(npc.index, "They just...lured them into the labs and-"); + NPCTalkMessage(npc.index, "They just...lured them into the labs and-"); } case 4: { - Talker_Talk(npc.index, "No...no, that can't be right, I'll be right back."); + NPCTalkMessage(npc.index, "No...no, that can't be right, I'll be right back."); i_TalkDelayCheck = -1; } } @@ -1465,15 +1465,15 @@ stock void NpcTalker_Wave30Talk(Talker npc) { case 1: { - Talker_Talk(npc.index, "If that's so, haven't you caused enough mayhem?"); + NPCTalkMessage(npc.index, "If that's so, haven't you caused enough mayhem?"); } case 2: { - Talker_Talk(npc.index, "How much destruction does the human race need to bring to be satisfied?"); + NPCTalkMessage(npc.index, "How much destruction does the human race need to bring to be satisfied?"); } case 3: { - Talker_Talk(npc.index, "Maybe {unique}Expidonsa{default} was right about treating you like a threat."); + NPCTalkMessage(npc.index, "Maybe {unique}Expidonsa{default} was right about treating you like a threat."); i_TalkDelayCheck = -1; } } @@ -1485,15 +1485,15 @@ stock void NpcTalker_Wave30Talk(Talker npc) { case 1: { - Talker_Talk(npc.index, "If that's so, haven't you caused enough mayhem?"); + NPCTalkMessage(npc.index, "If that's so, haven't you caused enough mayhem?"); } case 2: { - Talker_Talk(npc.index, "How much destruction does the human race need to bring to be satisfied?"); + NPCTalkMessage(npc.index, "How much destruction does the human race need to bring to be satisfied?"); } case 3: { - Talker_Talk(npc.index, "Maybe {unique}Expidonsa{default} was right about treating you like a threat."); + NPCTalkMessage(npc.index, "Maybe {unique}Expidonsa{default} was right about treating you like a threat."); i_TalkDelayCheck = -1; } } @@ -1553,15 +1553,15 @@ stock void NpcTalker_Wave31Talk(Talker npc) { case 1: { - Talker_Talk(npc.index, "I'm not exactly sure what that thing was...but it seemed to be related with these Portal Gates."); + NPCTalkMessage(npc.index, "I'm not exactly sure what that thing was...but it seemed to be related with these Portal Gates."); } case 2: { - Talker_Talk(npc.index, "It doesn't share any origins with the lab. Leaving it intact was probably the right choice."); + NPCTalkMessage(npc.index, "It doesn't share any origins with the lab. Leaving it intact was probably the right choice."); } case 3: { - Talker_Talk(npc.index, "Well, I'll be going back to doing my research now."); + NPCTalkMessage(npc.index, "Well, I'll be going back to doing my research now."); i_TalkDelayCheck = -1; } } @@ -1572,15 +1572,15 @@ stock void NpcTalker_Wave31Talk(Talker npc) { case 1: { - Talker_Talk(npc.index, "That thing...what was that? It appears to be tied with the Portal Gates."); + NPCTalkMessage(npc.index, "That thing...what was that? It appears to be tied with the Portal Gates."); } case 2: { - Talker_Talk(npc.index, "No correlation with the laboratories either. Looks like it was searching for something."); + NPCTalkMessage(npc.index, "No correlation with the laboratories either. Looks like it was searching for something."); } case 3: { - Talker_Talk(npc.index, "As strange as that was, I have to get back to my research."); + NPCTalkMessage(npc.index, "As strange as that was, I have to get back to my research."); i_TalkDelayCheck = -1; } } @@ -1592,15 +1592,15 @@ stock void NpcTalker_Wave31Talk(Talker npc) { case 1: { - Talker_Talk(npc.index, "That thing that you just destroyed...I don't know what it is, or rather what it was."); + NPCTalkMessage(npc.index, "That thing that you just destroyed...I don't know what it is, or rather what it was."); } case 2: { - Talker_Talk(npc.index, "Its destruction appears to have affected the Portal Gates. They're more unstable now."); + NPCTalkMessage(npc.index, "Its destruction appears to have affected the Portal Gates. They're more unstable now."); } case 3: { - Talker_Talk(npc.index, "Well, this is on you. I'm going back to my research now."); + NPCTalkMessage(npc.index, "Well, this is on you. I'm going back to my research now."); i_TalkDelayCheck = -1; } } @@ -1611,15 +1611,15 @@ stock void NpcTalker_Wave31Talk(Talker npc) { case 1: { - Talker_Talk(npc.index, "That robot...its origins are unknown to me. Not that I'll know what they are with what you did."); + NPCTalkMessage(npc.index, "That robot...its origins are unknown to me. Not that I'll know what they are with what you did."); } case 2: { - Talker_Talk(npc.index, "What I do know is that it was linked to these Portal Gates. They are precarious now."); + NPCTalkMessage(npc.index, "What I do know is that it was linked to these Portal Gates. They are precarious now."); } case 3: { - Talker_Talk(npc.index, "You chose to do this. I'm going back to my research now."); + NPCTalkMessage(npc.index, "You chose to do this. I'm going back to my research now."); i_TalkDelayCheck = -1; } } @@ -1682,39 +1682,39 @@ stock void NpcTalker_Wave36Talk(Talker npc) { case 1: { - Talker_Talk(npc.index, "I was wrong."); + NPCTalkMessage(npc.index, "I was wrong."); } case 2: { - Talker_Talk(npc.index, "Well, wrong about you being sent by {unique}Expidonsans{default}."); + NPCTalkMessage(npc.index, "Well, wrong about you being sent by {unique}Expidonsans{default}."); } case 3: { - Talker_Talk(npc.index, "I wasn't aware of {unique}Expidonsa's{default} full picture."); + NPCTalkMessage(npc.index, "I wasn't aware of {unique}Expidonsa's{default} full picture."); } case 4: { - Talker_Talk(npc.index, "It appears that they aren't the best when it comes to being ethical."); + NPCTalkMessage(npc.index, "It appears that they aren't the best when it comes to being ethical."); } case 5: { - Talker_Talk(npc.index, "I have also reverse-searched your emblems."); + NPCTalkMessage(npc.index, "I have also reverse-searched your emblems."); } case 6: { - Talker_Talk(npc.index, "You are some sort of mercΔ“nārius, yeah?"); + NPCTalkMessage(npc.index, "You are some sort of mercΔ“nārius, yeah?"); } case 7: { - Talker_Talk(npc.index, "This would mean that you've been hired by someone to loot this place."); + NPCTalkMessage(npc.index, "This would mean that you've been hired by someone to loot this place."); } case 8: { - Talker_Talk(npc.index, "I'm afraid I can not let that happen."); + NPCTalkMessage(npc.index, "I'm afraid I can not let that happen."); } case 9: { - Talker_Talk(npc.index, "But since mercenaries are paid for their work, I have no reason to assume that you intend on stopping."); + NPCTalkMessage(npc.index, "But since mercenaries are paid for their work, I have no reason to assume that you intend on stopping."); i_TalkDelayCheck = -1; } } @@ -1725,39 +1725,39 @@ stock void NpcTalker_Wave36Talk(Talker npc) { case 1: { - Talker_Talk(npc.index, "I was mistaken."); + NPCTalkMessage(npc.index, "I was mistaken."); } case 2: { - Talker_Talk(npc.index, "Well, mistaken about you being sent by {unique}Expidonsa{default}."); + NPCTalkMessage(npc.index, "Well, mistaken about you being sent by {unique}Expidonsa{default}."); } case 3: { - Talker_Talk(npc.index, "I wasn't aware of {unique}Expidonsa's{default} full history."); + NPCTalkMessage(npc.index, "I wasn't aware of {unique}Expidonsa's{default} full history."); } case 4: { - Talker_Talk(npc.index, "It appears that they aren't the best when it comes to being ethical."); + NPCTalkMessage(npc.index, "It appears that they aren't the best when it comes to being ethical."); } case 5: { - Talker_Talk(npc.index, "I have also reverse-searched your emblems."); + NPCTalkMessage(npc.index, "I have also reverse-searched your emblems."); } case 6: { - Talker_Talk(npc.index, "You are some sort of mercenarye, is that correct?"); + NPCTalkMessage(npc.index, "You are some sort of mercenarye, is that correct?"); } case 7: { - Talker_Talk(npc.index, "This would mean that you've been hired by someone to loot this place."); + NPCTalkMessage(npc.index, "This would mean that you've been hired by someone to loot this place."); } case 8: { - Talker_Talk(npc.index, "I'm afraid I can not let that happen."); + NPCTalkMessage(npc.index, "I'm afraid I can not let that happen."); } case 9: { - Talker_Talk(npc.index, "But since mercenaries are paid for their work, I have no reason to assume that you intend on stopping."); + NPCTalkMessage(npc.index, "But since mercenaries are paid for their work, I have no reason to assume that you intend on stopping."); i_TalkDelayCheck = -1; } } @@ -1769,11 +1769,11 @@ stock void NpcTalker_Wave36Talk(Talker npc) { case 1: { - Talker_Talk(npc.index, "I'm not sure what your goal here is, but I will have to intervene."); + NPCTalkMessage(npc.index, "I'm not sure what your goal here is, but I will have to intervene."); } case 2: { - Talker_Talk(npc.index, "I can not allow you to bring more mayhem."); + NPCTalkMessage(npc.index, "I can not allow you to bring more mayhem."); i_TalkDelayCheck = -1; } } @@ -1785,11 +1785,11 @@ stock void NpcTalker_Wave36Talk(Talker npc) { case 1: { - Talker_Talk(npc.index, "I'm not sure what your goal here is, but I will have to intervene."); + NPCTalkMessage(npc.index, "I'm not sure what your goal here is, but I will have to intervene."); } case 2: { - Talker_Talk(npc.index, "I can not allow you to bring more mayhem."); + NPCTalkMessage(npc.index, "I can not allow you to bring more mayhem."); i_TalkDelayCheck = -1; } } @@ -1842,11 +1842,11 @@ stock void NpcTalker_Wave37Talk(Talker npc) { case 1: { - Talker_Talk(npc.index, "I can not let you get any of this gear."); + NPCTalkMessage(npc.index, "I can not let you get any of this gear."); } case 2: { - Talker_Talk(npc.index, "If it were to fall into the wrong hands, the repercussions could be catastrophic."); + NPCTalkMessage(npc.index, "If it were to fall into the wrong hands, the repercussions could be catastrophic."); i_TalkDelayCheck = -1; } } @@ -1857,11 +1857,11 @@ stock void NpcTalker_Wave37Talk(Talker npc) { case 1: { - Talker_Talk(npc.index, "You can not get any of this gear. I can't allow that."); + NPCTalkMessage(npc.index, "You can not get any of this gear. I can't allow that."); } case 2: { - Talker_Talk(npc.index, "If anyone with the wrong plans was to get their hands on this...the fate of our world could be at risk."); + NPCTalkMessage(npc.index, "If anyone with the wrong plans was to get their hands on this...the fate of our world could be at risk."); i_TalkDelayCheck = -1; } } @@ -1937,11 +1937,11 @@ stock void NpcTalker_Wave38Talk(Talker npc) { case 1: { - Talker_Talk(npc.index, "I have to intervene."); + NPCTalkMessage(npc.index, "I have to intervene."); } case 2: { - Talker_Talk(npc.index, "I'm sorry."); + NPCTalkMessage(npc.index, "I'm sorry."); i_TalkDelayCheck = -1; } } diff --git a/addons/sourcemod/scripting/zombie_riot/npc/aperture/raids/npc_aris.sp b/addons/sourcemod/scripting/zombie_riot/npc/aperture/raids/npc_aris.sp index 4cd2251a84..d0dbf9aed2 100644 --- a/addons/sourcemod/scripting/zombie_riot/npc/aperture/raids/npc_aris.sp +++ b/addons/sourcemod/scripting/zombie_riot/npc/aperture/raids/npc_aris.sp @@ -546,30 +546,21 @@ methodmap ARIS < CClotBody Citizen_MiniBossSpawn(); npc.StartPathing(); - CreateTimer(0.2, ARIS_Timer_IntroMessage, EntIndexToEntRef(npc.index)); + switch(GetRandomInt(0,2)) + { + case 0: + NPCTalkMessage(npc.index, "4R1S R3P0R71N6 F0R DU7Y"); + case 1: + NPCTalkMessage(npc.index, "4R1S = 10CK3D 4ND L04D3D"); + case 2: + NPCTalkMessage(npc.index, "0NL1N3, 455UM1N6 MY FUNC710NS"); + } return npc; } } -static void ARIS_Timer_IntroMessage(Handle timer, int ref) -{ - int entity = EntRefToEntIndex(ref); - if (ref == INVALID_ENT_REFERENCE || b_NpcHasDied[entity]) - return; - - switch(GetRandomInt(0,2)) - { - case 0: - ARIS_Talk(entity, "4R1S R3P0R71N6 F0R DU7Y"); - case 1: - ARIS_Talk(entity, "4R1S = 10CK3D 4ND L04D3D"); - case 2: - ARIS_Talk(entity, "0NL1N3, 455UM1N6 MY FUNC710NS"); - } -} - -static void ARIS_Talk(int entity, const char[] message) +static void NPCTalkMessage(int entity, const char[] message) { PrintNPCMessageWithPrefixes(entity, "rare", message); } @@ -665,11 +656,11 @@ public void ARIS_ClotThink(int iNPC) switch(GetRandomInt(0,2)) { case 0: - ARIS_Talk(npc.index, "F1R3 1N 7H3 H0L3"); + NPCTalkMessage(npc.index, "F1R3 1N 7H3 H0L3"); case 1: - ARIS_Talk(npc.index, "DUCK 4ND C0V3R"); + NPCTalkMessage(npc.index, "DUCK 4ND C0V3R"); case 2: - ARIS_Talk(npc.index, "R0CK37S!"); + NPCTalkMessage(npc.index, "R0CK37S!"); } npc.PlayRocketReadyingSound(); } @@ -1221,11 +1212,11 @@ static void ARIS_DropMelee(ARIS npc) switch(GetRandomInt(0,2)) { case 0: - ARIS_Talk(npc.index, "D3P10Y1N6 R3S1574N7 M345UR3S"); + NPCTalkMessage(npc.index, "D3P10Y1N6 R3S1574N7 M345UR3S"); case 1: - ARIS_Talk(npc.index, "R3S1574NC3S 0NL1N3"); + NPCTalkMessage(npc.index, "R3S1574NC3S 0NL1N3"); case 2: - ARIS_Talk(npc.index, "D3F3NS3 D3PL0Y3D"); + NPCTalkMessage(npc.index, "D3F3NS3 D3PL0Y3D"); } } if(npc.m_iCurrentMelee == ARIS_MELEE_DAMAGE) @@ -1233,11 +1224,11 @@ static void ARIS_DropMelee(ARIS npc) switch(GetRandomInt(0,2)) { case 0: - ARIS_Talk(npc.index, "8UFF3R1N6 D4M463"); + NPCTalkMessage(npc.index, "8UFF3R1N6 D4M463"); case 1: - ARIS_Talk(npc.index, "D4M463 800S73R D3PL0Y3D"); + NPCTalkMessage(npc.index, "D4M463 800S73R D3PL0Y3D"); case 2: - ARIS_Talk(npc.index, "D4M463 = 8UFF3D"); + NPCTalkMessage(npc.index, "D4M463 = 8UFF3D"); } } if(npc.m_iCurrentMelee == ARIS_MELEE_SPEED) @@ -1245,11 +1236,11 @@ static void ARIS_DropMelee(ARIS npc) switch(GetRandomInt(0,2)) { case 0: - ARIS_Talk(npc.index, "V3L0C17Y R151N6"); + NPCTalkMessage(npc.index, "V3L0C17Y R151N6"); case 1: - ARIS_Talk(npc.index, "4CC3L3R4710N 1NCR34S3D"); + NPCTalkMessage(npc.index, "4CC3L3R4710N 1NCR34S3D"); case 2: - ARIS_Talk(npc.index, "M0M3N7UM CH4N63"); + NPCTalkMessage(npc.index, "M0M3N7UM CH4N63"); } } } @@ -1634,7 +1625,7 @@ static bool ARIS_LoseConditions(int iNPC) npc.SetPlaybackRate(1.0); npc.m_flNextDeathState = GetGameTime() + 1.7; - ARIS_Talk(npc.index, "3N0UGH D4M463 5U5741N3D"); + NPCTalkMessage(npc.index, "3N0UGH D4M463 5U5741N3D"); } case 1: @@ -1661,13 +1652,13 @@ static bool ARIS_LoseConditions(int iNPC) switch (GetURandomInt() % 4) { case 0: - ARIS_Talk(npc.index, "3J3C71N6!"); + NPCTalkMessage(npc.index, "3J3C71N6!"); case 1: - ARIS_Talk(npc.index, "480R71N6 M15510N!"); + NPCTalkMessage(npc.index, "480R71N6 M15510N!"); case 2: - ARIS_Talk(npc.index, "R37URN1N6 70 P057!"); + NPCTalkMessage(npc.index, "R37URN1N6 70 P057!"); case 3: - ARIS_Talk(npc.index, "4R15 = 0U7!"); + NPCTalkMessage(npc.index, "4R15 = 0U7!"); } } @@ -1701,7 +1692,7 @@ static bool ARIS_LoseConditions(int iNPC) { func_NPCThink[npc.index] = INVALID_FUNCTION; - ARIS_Talk(npc.index, "M15510N 5UCC355FUL, D3SP173 MY C4P481L1713S"); + NPCTalkMessage(npc.index, "M15510N 5UCC355FUL, D3SP173 MY C4P481L1713S"); return true; } @@ -1709,7 +1700,7 @@ static bool ARIS_LoseConditions(int iNPC) { ForcePlayerLoss(); RaidBossActive = INVALID_ENT_REFERENCE; - ARIS_Talk(npc.index, "7H3 3N3M13S H4V3 F0RF317, M15510N 5UCC355FUL"); + NPCTalkMessage(npc.index, "7H3 3N3M13S H4V3 F0RF317, M15510N 5UCC355FUL"); func_NPCThink[npc.index] = INVALID_FUNCTION; return true; } diff --git a/addons/sourcemod/scripting/zombie_riot/npc/aperture/raids/npc_cat.sp b/addons/sourcemod/scripting/zombie_riot/npc/aperture/raids/npc_cat.sp index c88ea40de2..e6dfb6b9d7 100644 --- a/addons/sourcemod/scripting/zombie_riot/npc/aperture/raids/npc_cat.sp +++ b/addons/sourcemod/scripting/zombie_riot/npc/aperture/raids/npc_cat.sp @@ -421,30 +421,21 @@ methodmap CAT < CClotBody Citizen_MiniBossSpawn(); npc.StartPathing(); - CreateTimer(0.2, CAT_Timer_IntroMessage, EntIndexToEntRef(npc.index)); + switch(GetRandomInt(0,2)) + { + case 0: + NPCTalkMessage(npc.index, "CONTROL AGAINST TRESPASSERS, NOW ONLINE"); + case 1: + NPCTalkMessage(npc.index, "C.A.T. HAS BEEN ENGAGED"); + case 2: + NPCTalkMessage(npc.index, "SYSTEM POWER-UP COMPLETE"); + } return npc; } } -static void CAT_Timer_IntroMessage(Handle timer, int ref) -{ - int entity = EntRefToEntIndex(ref); - if (ref == INVALID_ENT_REFERENCE || b_NpcHasDied[entity]) - return; - - switch(GetRandomInt(0,2)) - { - case 0: - CAT_Talk(entity, "CONTROL AGAINST TRESPASSERS, NOW ONLINE"); - case 1: - CAT_Talk(entity, "C.A.T. HAS BEEN ENGAGED"); - case 2: - CAT_Talk(entity, "SYSTEM POWER-UP COMPLETE"); - } -} - -static void CAT_Talk(int entity, const char[] message) +static void NPCTalkMessage(int entity, const char[] message) { PrintNPCMessageWithPrefixes(entity, "rare", message); } @@ -742,15 +733,15 @@ static void OrbSpam_Ability_ReadyUp(CAT npc) { case 0: { - CAT_Talk(npc.index, "PARTICLE RADIATOR IS {unique}READY"); + NPCTalkMessage(npc.index, "PARTICLE RADIATOR IS {unique}READY"); } case 1: { - CAT_Talk(npc.index, "PREPARING FOR PARTICLE {crimson}DISPERSAL"); + NPCTalkMessage(npc.index, "PREPARING FOR PARTICLE {crimson}DISPERSAL"); } case 2: { - CAT_Talk(npc.index, "PARTICLES ARE DONE {crimson}WARMING UP"); + NPCTalkMessage(npc.index, "PARTICLES ARE DONE {crimson}WARMING UP"); } } } @@ -811,15 +802,15 @@ static void OrbSpam_Ability_End(CAT npc, bool yap = true) { case 0: { - CAT_Talk(npc.index, "PARTICLE RADIATOR IS {azure}COOLING-OFF"); + NPCTalkMessage(npc.index, "PARTICLE RADIATOR IS {azure}COOLING-OFF"); } case 1: { - CAT_Talk(npc.index, "PARTICLE DISPERSAL {azure}ACCOMPLISHED"); + NPCTalkMessage(npc.index, "PARTICLE DISPERSAL {azure}ACCOMPLISHED"); } case 2: { - CAT_Talk(npc.index, "PARTICLES ARE {crimson}GONE{default}... {azure}FOR NOW"); + NPCTalkMessage(npc.index, "PARTICLES ARE {crimson}GONE{default}... {azure}FOR NOW"); } } } @@ -884,7 +875,7 @@ bool CAT_timeBased(int iNPC) AcceptEntityInput(npc.m_iWearable1, "Enable"); npc.m_flBeginTimeWarp = 0.0; - CAT_Talk(npc.index, "...ACTION SUCCESSFUL"); + NPCTalkMessage(npc.index, "...ACTION SUCCESSFUL"); float vecPos[3]; GetAbsOrigin(npc.index, vecPos); @@ -975,15 +966,15 @@ static void SelfDegradation_Ability_Start(CAT npc, bool yap = true) { case 0: { - CAT_Talk(npc.index, "INITIATING SELF-DEGRADATION"); + NPCTalkMessage(npc.index, "INITIATING SELF-DEGRADATION"); } case 1: { - CAT_Talk(npc.index, "SELF-DEGRADATION IN PROCESS..."); + NPCTalkMessage(npc.index, "SELF-DEGRADATION IN PROCESS..."); } case 2: { - CAT_Talk(npc.index, "SWITCHING TO SELF-DEGRADATION MODE"); + NPCTalkMessage(npc.index, "SWITCHING TO SELF-DEGRADATION MODE"); } } } @@ -1033,15 +1024,15 @@ static void SelfDegradation_Ability_Activate(CAT npc, bool yap = true) { case 0: { - CAT_Talk(npc.index, "SELF-DEGRADATION MODE IS {unique}ONLINE"); + NPCTalkMessage(npc.index, "SELF-DEGRADATION MODE IS {unique}ONLINE"); } case 1: { - CAT_Talk(npc.index, "SELF-DEGRADATION: {unique}ACTIVATED"); + NPCTalkMessage(npc.index, "SELF-DEGRADATION: {unique}ACTIVATED"); } case 2: { - CAT_Talk(npc.index, "SELF-DEGRADATION POWER UP, {unique}COMPLETE"); + NPCTalkMessage(npc.index, "SELF-DEGRADATION POWER UP, {unique}COMPLETE"); } } } @@ -1073,15 +1064,15 @@ static void SelfDegradation_Ability_Deactivate(CAT npc, bool yap = true) { case 0: { - CAT_Talk(npc.index, "SELF-DEGRADATION MODE IS {crimson}OFFLINE"); + NPCTalkMessage(npc.index, "SELF-DEGRADATION MODE IS {crimson}OFFLINE"); } case 1: { - CAT_Talk(npc.index, "SELF-DEGRADATION: {crimson}DEACTIVATED"); + NPCTalkMessage(npc.index, "SELF-DEGRADATION: {crimson}DEACTIVATED"); } case 2: { - CAT_Talk(npc.index, "SELF-DEGRADATION IS {crimson}SHUTTING DOWN"); + NPCTalkMessage(npc.index, "SELF-DEGRADATION IS {crimson}SHUTTING DOWN"); } } } @@ -1126,7 +1117,7 @@ public Action CAT_OnTakeDamage(int victim, int &attacker, int &inflictor, float npc.AddGesture("ACT_MP_STUN_BEGIN"); npc.SetActivity("ACT_MP_STUN_MIDDLE"); - CAT_Talk(npc.index, "ENABLING {unique}MIND WARP {default}MECHANISMS..."); + NPCTalkMessage(npc.index, "ENABLING {unique}MIND WARP {default}MECHANISMS..."); npc.Anger = true; npc.m_flBeginTimeWarp = GetGameTime(npc.index) + 2.0; @@ -1238,7 +1229,7 @@ static void CAT_Weapon_Lines(CAT npc, int client) if(valid) { - CAT_Talk(npc.index, Text_Lines); + NPCTalkMessage(npc.index, Text_Lines); fl_said_player_weaponline_time[npc.index] = GameTime + GetRandomFloat(15.0, 22.0); b_said_player_weaponline[client] = true; } @@ -1333,9 +1324,9 @@ static bool CAT_LoseConditions(int iNPC) switch (GetURandomInt() % 2) { case 0: - CAT_Talk(npc.index, "OVERHEATING PROTOC-"); + NPCTalkMessage(npc.index, "OVERHEATING PROTOC-"); case 1: - CAT_Talk(npc.index, "INITIATING SELF-DES-"); + NPCTalkMessage(npc.index, "INITIATING SELF-DES-"); } npc.m_flDeathAnim = GetGameTime() + 1.0; @@ -1361,7 +1352,7 @@ static bool CAT_LoseConditions(int iNPC) { func_NPCThink[npc.index] = INVALID_FUNCTION; - CAT_Talk(npc.index, "BY THE WORDS OF THE ONE AND ONLY GLORIOUS RACE; THERE CAN BE ONLY ONE"); + NPCTalkMessage(npc.index, "BY THE WORDS OF THE ONE AND ONLY GLORIOUS RACE; THERE CAN BE ONLY ONE"); return true; } @@ -1369,7 +1360,7 @@ static bool CAT_LoseConditions(int iNPC) { ForcePlayerLoss(); RaidBossActive = INVALID_ENT_REFERENCE; - CAT_Talk(npc.index, "SURRENDER YOUR WEAPONS AND COME WITH ME"); + NPCTalkMessage(npc.index, "SURRENDER YOUR WEAPONS AND COME WITH ME"); func_NPCThink[npc.index] = INVALID_FUNCTION; return true; } diff --git a/addons/sourcemod/scripting/zombie_riot/npc/aperture/raids/npc_chimera.sp b/addons/sourcemod/scripting/zombie_riot/npc/aperture/raids/npc_chimera.sp index a8146a25a5..e32c033337 100644 --- a/addons/sourcemod/scripting/zombie_riot/npc/aperture/raids/npc_chimera.sp +++ b/addons/sourcemod/scripting/zombie_riot/npc/aperture/raids/npc_chimera.sp @@ -436,7 +436,15 @@ methodmap CHIMERA < CClotBody Citizen_MiniBossSpawn(); npc.StartPathing(); - CreateTimer(0.2, CHIMERA_Timer_IntroMessage, EntIndexToEntRef(npc.index)); + switch(GetRandomInt(0,2)) + { + case 0: + NPCTalkMessage(npc.index, "WELCOME, WELCOME SINNERS!"); + case 1: + NPCTalkMessage(npc.index, "LET'S BEGIN"); + case 2: + NPCTalkMessage(npc.index, "ENGAGING THE TARGETS"); + } npc.m_iWearable1 = npc.EquipItem("head", "models/workshop/player/items/medic/tw_medibot_chariot/tw_medibot_chariot.mdl", _, skin); npc.m_iWearable2 = npc.EquipItem("head", "models/workshop/player/items/medic/sum24_hazardous_vest/sum24_hazardous_vest.mdl", _, skin); @@ -466,24 +474,7 @@ methodmap CHIMERA < CClotBody } } -static void CHIMERA_Timer_IntroMessage(Handle timer, int ref) -{ - int entity = EntRefToEntIndex(ref); - if (ref == INVALID_ENT_REFERENCE || b_NpcHasDied[entity]) - return; - - switch(GetRandomInt(0,2)) - { - case 0: - CHIMERA_Talk(entity, "WELCOME, WELCOME SINNERS!"); - case 1: - CHIMERA_Talk(entity, "LET'S BEGIN"); - case 2: - CHIMERA_Talk(entity, "ENGAGING THE TARGETS"); - } -} - -static void CHIMERA_Talk(int entity, const char[] message) +static void NPCTalkMessage(int entity, const char[] message) { PrintNPCMessageWithPrefixes(entity, "darkblue", message); } @@ -728,7 +719,7 @@ public Action CHIMERA_OnTakeDamage(int victim, int &attacker, int &inflictor, fl if((ReturnEntityMaxHealth(npc.index) / 2) >= (GetEntProp(npc.index, Prop_Data, "m_iHealth") - RoundToNearest(damage))) { npc.PlayAdaptStart(); - CHIMERA_Talk(npc.index, "TOO MUCH DAMAGE SUSTAINED, INITIATING {crimson}[DAMAGE ADAPTABILITY MODE]"); + NPCTalkMessage(npc.index, "TOO MUCH DAMAGE SUSTAINED, INITIATING {crimson}[DAMAGE ADAPTABILITY MODE]"); float VecSelfNpcabs[3]; GetEntPropVector(npc.index, Prop_Data, "m_vecAbsOrigin", VecSelfNpcabs); TE_Particle("teleported_mvm_bot", VecSelfNpcabs, _, _, npc.index, 1, 0); npc.Anger = true; @@ -801,13 +792,13 @@ bool CHIMERA_timeBased(int iNPC) //do both abilities twice. if(npc.m_flDamageCharge < 0.0) { - CHIMERA_Talk(npc.index, "ADAPTING COMPLETED, {crimson}RANGED{default} IS CONSIDERED THE MOST DANGEROUS."); + NPCTalkMessage(npc.index, "ADAPTING COMPLETED, {crimson}RANGED{default} IS CONSIDERED THE MOST DANGEROUS."); npc.m_flRangedArmor = 0.75; npc.m_flMeleeArmor = 1.35; } else { - CHIMERA_Talk(npc.index, "ADAPTING COMPLETED, {crimson}MELEE{default} IS CONSIDERED THE MOST DANGEROUS."); + NPCTalkMessage(npc.index, "ADAPTING COMPLETED, {crimson}MELEE{default} IS CONSIDERED THE MOST DANGEROUS."); npc.m_flRangedArmor = 1.35; npc.m_flMeleeArmor = 0.75; } @@ -884,13 +875,13 @@ bool CHIMERA_LoseConditions(int iNPC) switch (GetURandomInt() % 4) { case 0: - CHIMERA_Talk(npc.index, "IT RECOILS IN PAIN?"); + NPCTalkMessage(npc.index, "IT RECOILS IN PAIN?"); case 1: - CHIMERA_Talk(npc.index, "I NEED A DISTRACTION. ERROR? ERROR? ERROR?"); + NPCTalkMessage(npc.index, "I NEED A DISTRACTION. ERROR? ERROR? ERROR?"); case 2: - CHIMERA_Talk(npc.index, "THIS PLACE IS TOO HOT FOR ME."); + NPCTalkMessage(npc.index, "THIS PLACE IS TOO HOT FOR ME."); case 3: - CHIMERA_Talk(npc.index, "I MIGHT NOT BE WELCOME HERE?"); + NPCTalkMessage(npc.index, "I MIGHT NOT BE WELCOME HERE?"); } } @@ -914,14 +905,14 @@ bool CHIMERA_LoseConditions(int iNPC) { func_NPCThink[npc.index] = INVALID_FUNCTION; - CHIMERA_Talk(npc.index, "ZIBERIA WOULD BE PROUD, PROVIDED THEY WERE TO SEE ME NOW."); + NPCTalkMessage(npc.index, "ZIBERIA WOULD BE PROUD, PROVIDED THEY WERE TO SEE ME NOW."); return true; } if(IsValidEntity(RaidBossActive) && RaidModeTime < GetGameTime()) { ForcePlayerLoss(); RaidBossActive = INVALID_ENT_REFERENCE; - CHIMERA_Talk(npc.index, "TIME TO CHOOSE. LIFE, OR DEATH?"); + NPCTalkMessage(npc.index, "TIME TO CHOOSE. LIFE, OR DEATH?"); func_NPCThink[npc.index] = INVALID_FUNCTION; return true; } @@ -1016,15 +1007,15 @@ bool CHIMERA_RefractedSniper(int iNPC) switch(GetRandomInt(0,4)) { case 0: - CHIMERA_Talk(npc.index, "BREWING UP A STORM"); + NPCTalkMessage(npc.index, "BREWING UP A STORM"); case 1: - CHIMERA_Talk(npc.index, "KEEP RUNNING, THAT'LL HELP"); + NPCTalkMessage(npc.index, "KEEP RUNNING, THAT'LL HELP"); case 2: - CHIMERA_Talk(npc.index, "LET'S COOL THINGS DOWN"); + NPCTalkMessage(npc.index, "LET'S COOL THINGS DOWN"); case 3: - CHIMERA_Talk(npc.index, "FOOLISH MORTALS, YOU THINK YOU CAN STOP ME?"); + NPCTalkMessage(npc.index, "FOOLISH MORTALS, YOU THINK YOU CAN STOP ME?"); case 4: - CHIMERA_Talk(npc.index, "DIE ALREADY, I'M GIVING IT ALL ALREADY!"); + NPCTalkMessage(npc.index, "DIE ALREADY, I'M GIVING IT ALL ALREADY!"); } if(npc.m_flSpawnSnipers == 1.0) npc.m_flSpawnSnipers = GetGameTime(npc.index) + 10.0; @@ -1043,15 +1034,15 @@ bool CHIMERA_RefractSpawners(int iNPC) switch(GetRandomInt(0,3)) { case 0: - CHIMERA_Talk(npc.index, "LOOK OUT, I'M RIGHT BEHIND YOU"); + NPCTalkMessage(npc.index, "LOOK OUT, I'M RIGHT BEHIND YOU"); case 1: - CHIMERA_Talk(npc.index, "YOU STOP RUNNING AND I'LL STOP FIRING, THAT SEEMS FAIR"); + NPCTalkMessage(npc.index, "YOU STOP RUNNING AND I'LL STOP FIRING, THAT SEEMS FAIR"); case 2: - CHIMERA_Talk(npc.index, "THIS WOULD GO A LOT FASTER IF YOU'D STAY STILL"); + NPCTalkMessage(npc.index, "THIS WOULD GO A LOT FASTER IF YOU'D STAY STILL"); case 3: - CHIMERA_Talk(npc.index, "DON'T RUN! DON'T RUN!"); + NPCTalkMessage(npc.index, "DON'T RUN! DON'T RUN!"); case 4: - CHIMERA_Talk(npc.index, "YOU'RE JUST DELAYING THE INEVITABLE"); + NPCTalkMessage(npc.index, "YOU'RE JUST DELAYING THE INEVITABLE"); } npc.PlayRefractedAbilityBall(); diff --git a/addons/sourcemod/scripting/zombie_riot/npc/aperture/raids/npc_vincent.sp b/addons/sourcemod/scripting/zombie_riot/npc/aperture/raids/npc_vincent.sp index c6bb92bf3c..90aaad8546 100644 --- a/addons/sourcemod/scripting/zombie_riot/npc/aperture/raids/npc_vincent.sp +++ b/addons/sourcemod/scripting/zombie_riot/npc/aperture/raids/npc_vincent.sp @@ -386,12 +386,12 @@ methodmap Vincent < CClotBody npc.m_flSpeed = 320.0; if(npc.Anger) { + NPCTalkMessage(npc.index, "You want a death robot? {crimson}I'LL GIVE YOU ONE.\n{fullred}Initiating extermination of infection-based organisms."); npc.m_iWearable5 = npc.EquipItem("head", "models/workshop/player/items/heavy/tw_heavybot_armor/tw_heavybot_armor.mdl", _, skin); RaidModeScaling *= 1.1; Format(c_NpcName[npc.index], sizeof(c_NpcName[]), "V.I.N.C.E.N.T."); EmitSoundToAll("mvm/mvm_tank_horn.wav",_, SNDCHAN_STATIC, 80, _, 0.7, 80); EmitSoundToAll("mvm/giant_heavy/giant_heavy_entrance.wav", _, _, _, _, 1.0, 100); - CreateTimer(0.2, Vincent_Timer_IntroMessage_Genocide, EntIndexToEntRef(npc.index)); npc.m_flRangedArmor *= 0.95; npc.m_flMeleeArmor *= 0.95; npc.m_flOverrideMusicNow = 0.0; @@ -407,10 +407,10 @@ methodmap Vincent < CClotBody } else { + NPCTalkMessage(npc.index, "Not gonna leave? I'll make you leave myself."); Format(c_NpcName[npc.index], sizeof(c_NpcName[]), "Vincent"); EmitSoundToAll("mvm/giant_heavy/giant_heavy_entrance.wav", _, _, _, _, 1.0, 100); EmitSoundToAll("mvm/giant_heavy/giant_heavy_entrance.wav", _, _, _, _, 1.0, 100); - CreateTimer(0.2, Vincent_Timer_IntroMessage_Neutral, EntIndexToEntRef(npc.index)); MusicEnum music; strcopy(music.Path, sizeof(music.Path), "#zombiesurvival/aperture/vincent_intro.mp3"); music.Time = 51; @@ -461,26 +461,7 @@ methodmap Vincent < CClotBody } } -static void Vincent_Timer_IntroMessage_Neutral(Handle timer, int ref) -{ - int entity = EntRefToEntIndex(ref); - if (ref == INVALID_ENT_REFERENCE || b_NpcHasDied[entity]) - return; - - Vincent_Talk(entity, "Not gonna leave? I'll make you leave myself."); -} - -static void Vincent_Timer_IntroMessage_Genocide(Handle timer, int ref) -{ - int entity = EntRefToEntIndex(ref); - if (ref == INVALID_ENT_REFERENCE || b_NpcHasDied[entity]) - return; - - Vincent_Talk(entity, "You want a death robot? {crimson}I'LL GIVE YOU ONE."); - CPrintToChatAll("{fullred}Initating extermination of infection based organisms."); -} - -static void Vincent_Talk(int entity, const char[] message) +static void NPCTalkMessage(int entity, const char[] message) { PrintNPCMessageWithPrefixes(entity, "rare", message); } @@ -523,23 +504,23 @@ public void Vincent_ClotThink(int iNPC) { if(!Aperture_IsBossDead(APERTURE_BOSS_CAT) && !Aperture_IsBossDead(APERTURE_BOSS_ARIS)) { - Vincent_Talk(npc.index, "I'm sorry it has come to this. I'm afraid you shouldn't have taken that job..."); + NPCTalkMessage(npc.index, "I'm sorry it has come to this. I'm afraid you shouldn't have taken that job..."); } else if(Aperture_IsBossDead(APERTURE_BOSS_CAT) && Aperture_IsBossDead(APERTURE_BOSS_ARIS)) { - Vincent_Talk(npc.index, "{crimson}You are DONE."); + NPCTalkMessage(npc.index, "{crimson}You are DONE."); } else if(Aperture_IsBossDead(APERTURE_BOSS_CAT) || Aperture_IsBossDead(APERTURE_BOSS_ARIS)) { - Vincent_Talk(npc.index, "You can't keep running away forever."); + NPCTalkMessage(npc.index, "You can't keep running away forever."); } } else { if (npc.Anger) - Vincent_Talk(npc.index, "{crimson}You are DONE."); + NPCTalkMessage(npc.index, "{crimson}You are DONE."); else - Vincent_Talk(npc.index, "You can't keep running away forever."); + NPCTalkMessage(npc.index, "You can't keep running away forever."); } } } @@ -632,15 +613,15 @@ public void Vincent_ClotThink(int iNPC) switch(GetRandomInt(0,4)) { case 0: - Vincent_Talk(npc.index, "Someone turn the heat up."); + NPCTalkMessage(npc.index, "Someone turn the heat up."); case 1: - Vincent_Talk(npc.index, "Is it just me or are you engulfed in flames?"); + NPCTalkMessage(npc.index, "Is it just me or are you engulfed in flames?"); case 2: - Vincent_Talk(npc.index, "Spreading the inferno."); + NPCTalkMessage(npc.index, "Spreading the inferno."); case 3: - Vincent_Talk(npc.index, "Fire in the hole."); + NPCTalkMessage(npc.index, "Fire in the hole."); case 4: - Vincent_Talk(npc.index, "Lighting it up."); + NPCTalkMessage(npc.index, "Lighting it up."); } } } @@ -836,7 +817,7 @@ public Action Vincent_OnTakeDamage(int victim, int &attacker, int &inflictor, fl ApplyStatusEffect(victim, victim, "Infinite Will", 30.0); npc.m_flMegaEnrage = GetGameTime() + 30.0; damage = 0.0; - Vincent_Talk(npc.index, "{crimson} ...IF YOU THINK I'LL GO DOWN WITHOUT A FIGHT..."); + NPCTalkMessage(npc.index, "{crimson} ...IF YOU THINK I'LL GO DOWN WITHOUT A FIGHT..."); EmitSoundToAll("mvm/mvm_tank_horn.wav",_, SNDCHAN_STATIC, 80, _, 0.65, 90); EmitSoundToAll("mvm/mvm_tank_horn.wav",_, SNDCHAN_STATIC, 80, _, 0.65, 90); ApplyStatusEffect(npc.index, npc.index, "Dimensional Turbulence", 30.0); @@ -988,19 +969,19 @@ static bool Vincent_LoseConditions(int iNPC) { //yapping npc.m_flTalkRepeat = GetGameTime() + 3.0; - Vincent_Talk(npc.index, "{crimson}No..."); + NPCTalkMessage(npc.index, "{crimson}No..."); } case 1: { //yapping npc.m_flTalkRepeat = GetGameTime() + 3.0; - Vincent_Talk(npc.index, "{crimson}I can't let you get away with this."); + NPCTalkMessage(npc.index, "{crimson}I can't let you get away with this."); } case 2: { //yapping npc.m_flTalkRepeat = GetGameTime() + 3.0; - Vincent_Talk(npc.index, "{crimson}I WON'T let you get away with this!"); + NPCTalkMessage(npc.index, "{crimson}I WON'T let you get away with this!"); } case 3: { @@ -1012,7 +993,7 @@ static bool Vincent_LoseConditions(int iNPC) spawnRing_Vectors(Loc, 0.1, 0.0, 0.0, 25.0, "materials/sprites/laserbeam.vmt", 255, 0, 20, 255, 1, 1.5, 8.0, 1.5, 1, 150.0*2.0); spawnRing_Vectors(Loc, 0.1, 0.0, 0.0, 45.0, "materials/sprites/laserbeam.vmt", 255, 0, 20, 255, 1, 1.5, 8.0, 1.5, 1, 150.0*2.0); spawnRing_Vectors(Loc, 0.1, 0.0, 0.0, 65.0, "materials/sprites/laserbeam.vmt", 255, 0, 20, 255, 1, 1.5, 8.0, 1.5, 1, 150.0*2.0); - Vincent_Talk(npc.index, "{crimson}I'M GONNA DELETE YOU!"); + NPCTalkMessage(npc.index, "{crimson}I'M GONNA DELETE YOU!"); Format(c_NpcName[npc.index], sizeof(c_NpcName[]), "Old forgotten expidonsan robot"); } case 4: @@ -1049,32 +1030,32 @@ static bool Vincent_LoseConditions(int iNPC) case 0: { npc.m_flTalkRepeat = GetGameTime() + 3.0; - Vincent_Talk(npc.index, "Ah."); + NPCTalkMessage(npc.index, "Ah."); } case 1: { npc.m_flTalkRepeat = GetGameTime() + 3.0; - Vincent_Talk(npc.index, "It appears that I'm not strong enough to take you down."); + NPCTalkMessage(npc.index, "It appears that I'm not strong enough to take you down."); } case 2: { npc.m_flTalkRepeat = GetGameTime() + 3.0; - Vincent_Talk(npc.index, "I was hoping to keep the outside world safe with what was left behind here."); + NPCTalkMessage(npc.index, "I was hoping to keep the outside world safe with what was left behind here."); } case 3: { npc.m_flTalkRepeat = GetGameTime() + 3.0; - Vincent_Talk(npc.index, "But if you're so persistent on taking this gear..."); + NPCTalkMessage(npc.index, "But if you're so persistent on taking this gear..."); } case 4: { npc.m_flTalkRepeat = GetGameTime() + 3.0; - Vincent_Talk(npc.index, "I won't try to stop you anymore, knowing that my attempts will be futile."); + NPCTalkMessage(npc.index, "I won't try to stop you anymore, knowing that my attempts will be futile."); } case 5: { npc.m_flTalkRepeat = GetGameTime() + 3.0; - Vincent_Talk(npc.index, "Take this with you, and don't let it fall into the wrong hands, alright?"); + NPCTalkMessage(npc.index, "Take this with you, and don't let it fall into the wrong hands, alright?"); } case 6: { @@ -1170,7 +1151,7 @@ static bool Vincent_LoseConditions(int iNPC) char message[255]; FormatEx(message, sizeof(message), "%s %s", first, second); - Vincent_Talk(npc.index, message); + NPCTalkMessage(npc.index, message); npc.m_flTalkRepeat = GetGameTime() + 1.7; } @@ -1215,15 +1196,15 @@ static bool Vincent_LoseConditions(int iNPC) //won normally if(!Aperture_IsBossDead(APERTURE_BOSS_CAT) && !Aperture_IsBossDead(APERTURE_BOSS_ARIS)) { - Vincent_Talk(npc.index, "It's over, please don't come back."); + NPCTalkMessage(npc.index, "It's over, please don't come back."); } else if(Aperture_IsBossDead(APERTURE_BOSS_CAT) && Aperture_IsBossDead(APERTURE_BOSS_ARIS)) { - Vincent_Talk(npc.index, "{crimson}Look at what you made me do. {default} At least I avenged {rare}them{default}."); + NPCTalkMessage(npc.index, "{crimson}Look at what you made me do. {default} At least I avenged {rare}them{default}."); } else if(Aperture_IsBossDead(APERTURE_BOSS_CAT) || Aperture_IsBossDead(APERTURE_BOSS_ARIS)) { - Vincent_Talk(npc.index, "Your reign of chaos ends here."); + NPCTalkMessage(npc.index, "Your reign of chaos ends here."); } return true; } @@ -1735,11 +1716,11 @@ bool Vincent_SlamThrow(int iNPC, int target) switch(GetRandomInt(0,2)) { case 0: - Vincent_Talk(npc.index, "I'm gonna get you."); + NPCTalkMessage(npc.index, "I'm gonna get you."); case 1: - Vincent_Talk(npc.index, "Here I come!"); + NPCTalkMessage(npc.index, "Here I come!"); case 2: - Vincent_Talk(npc.index, "You better run!"); + NPCTalkMessage(npc.index, "You better run!"); } } if(IsValidEntity(npc.m_iWearable4)) diff --git a/addons/sourcemod/scripting/zombie_riot/npc/iberia_expidonsa/wave_60/npc_inqusitor_irene.sp b/addons/sourcemod/scripting/zombie_riot/npc/iberia_expidonsa/wave_60/npc_inqusitor_irene.sp index dab796322b..110881777f 100644 --- a/addons/sourcemod/scripting/zombie_riot/npc/iberia_expidonsa/wave_60/npc_inqusitor_irene.sp +++ b/addons/sourcemod/scripting/zombie_riot/npc/iberia_expidonsa/wave_60/npc_inqusitor_irene.sp @@ -193,6 +193,11 @@ methodmap Iberiainqusitor_irene < CClotBody } } +static void NPCTalkMessage(int iNPC, const char[] message) +{ + PrintNPCMessageWithPrefixes(iNPC, "snow", message, .customName = "Irene"); +} + public void Iberiainqusitor_irene_ClotThink(int iNPC) { Iberiainqusitor_irene npc = view_as(iNPC); @@ -296,7 +301,7 @@ public void Iberiainqusitor_irene_NPCDeath(int entity) ParticleEffectAt(WorldSpaceVec, "teleported_blue", 0.5); npc.PlayDeathSound(); npc.m_bDissapearOnDeath = true; - CPrintToChatAll("{snow}Irene{default}: You really think you're killing us? We are mearly simulating a death, no worries."); + NPCTalkMessage(npc.index, "You really think you're killing us? We are mearly simulating a death, no worries."); if(IsValidEntity(npc.m_iWearable7)) RemoveEntity(npc.m_iWearable7); @@ -637,7 +642,7 @@ bool Irene_AbilityAir(Iberiainqusitor_irene npc) if(!Irene_TargetsFound) { npc.m_flAirTimeAbilityHappening = 0.0; - CPrintToChatAll("{snow}Irene{default}: ..."); + NPCTalkMessage(npc.index, "..."); } else { @@ -645,19 +650,19 @@ bool Irene_AbilityAir(Iberiainqusitor_irene npc) { case 0: { - CPrintToChatAll("{snow}Irene{default}: My blade will cleave the tides!"); + NPCTalkMessage(npc.index, "My blade will cleave the tides!"); } case 1: { - CPrintToChatAll("{snow}Irene{default}: My light will purge the vice!"); + NPCTalkMessage(npc.index, "My light will purge the vice!"); } case 2: { - CPrintToChatAll("{snow}Irene{default}: My eyes will find the truth!"); + NPCTalkMessage(npc.index, "My eyes will find the truth!"); } case 3: { - CPrintToChatAll("{snow}Irene{default}: My heart will be the judge!"); + NPCTalkMessage(npc.index, "My heart will be the judge!"); } } npc.m_flAirTimeAbilityHappening = GetGameTime(npc.index) + 2.0; @@ -750,7 +755,7 @@ static void Irene_Weapon_Lines(Iberiainqusitor_irene npc, int client) if(valid) { - CPrintToChatAll("{snow}Irene{default}: %s", Text_Lines); + NPCTalkMessage(npc.index, Text_Lines); fl_said_player_weaponline_time[npc.index] = GameTime + GetRandomFloat(17.0, 26.0); b_said_player_weaponline[client] = true; } diff --git a/addons/sourcemod/scripting/zombie_riot/npc/raidmode_bosses/iberia/npc_nemal.sp b/addons/sourcemod/scripting/zombie_riot/npc/raidmode_bosses/iberia/npc_nemal.sp index 7ec33bc592..fb0497f2b2 100644 --- a/addons/sourcemod/scripting/zombie_riot/npc/raidmode_bosses/iberia/npc_nemal.sp +++ b/addons/sourcemod/scripting/zombie_riot/npc/raidmode_bosses/iberia/npc_nemal.sp @@ -411,19 +411,19 @@ methodmap Nemal < CClotBody { case 0: { - CPrintToChatAll("{lightblue}Nemal{default}: We're supposed to train our abilities, remember? Well here I am! Let's start off easy!"); + NPCTalkMessage(npc.index, "We're supposed to train our abilities, remember? Well here I am! Let's start off easy!"); } case 1: { - CPrintToChatAll("{lightblue}Nemal{default}: {gold}Silvester{default}? Where are you?... \nLate again... \nThis dude... \nHe'll come later, let's start off relaxed!"); + NPCTalkMessage(npc.index, "{gold}Silvester{default}? Where are you?... \nLate again... \nThis dude... \nHe'll come later, let's start off relaxed!"); } case 2: { - CPrintToChatAll("{lightblue}Nemal{default}: {gold}Silvester{default} is late isn't he? Probably off to some random beach with {blue}Sensal{default} as usual.. without me!!!\nWe said vacation is after this! Oh well, let's begin!"); + NPCTalkMessage(npc.index, "{gold}Silvester{default} is late isn't he? Probably off to some random beach with {blue}Sensal{default} as usual.. without me!!!\nWe said vacation is after this! Oh well, let's begin!"); } case 3: { - CPrintToChatAll("{lightblue}Nemal{default}: Iberians are with us {gold}Expidonsans{default}!... But I'm kinda both...\nProbably not that important, anyways let's go!"); + NPCTalkMessage(npc.index, "Iberians are with us {gold}Expidonsans{default}!... But I'm kinda both...\nProbably not that important, anyways let's go!"); } } } @@ -434,19 +434,19 @@ methodmap Nemal < CClotBody { case 0: { - CPrintToChatAll("{lightblue}Nemal{default}: Got a call, {gold}Silvester{default} will be joining soon, he had some buisness apparently, get ready for... when he comes!"); + NPCTalkMessage(npc.index, "Got a call, {gold}Silvester{default} will be joining soon, he had some buisness apparently, get ready for... when he comes!"); } case 1: { - CPrintToChatAll("{lightblue}Nemal{default}: What I would do for {darkblue}Waldch{default} to stop being so mangetic to {gold}Silvester{default} with his Wildingen antics, that isn't his home!!!"); + NPCTalkMessage(npc.index, "What I would do for {darkblue}Waldch{default} to stop being so mangetic to {gold}Silvester{default} with his Wildingen antics, that isn't his home!!!"); } case 2: { - CPrintToChatAll("{lightblue}Nemal{default}: I'll be honest, {blue}Sensal's{default} kinda scary, I mean you fought him, you'd know!"); + NPCTalkMessage(npc.index, "I'll be honest, {blue}Sensal's{default} kinda scary, I mean you fought him, you'd know!"); } case 3: { - CPrintToChatAll("{lightblue}Nemal{default}: There sadly ain't many Iberians left after what happend to their home country, damn traitorous {blue}seaborn{default}... we took in the surviving iberians and helped them!"); + NPCTalkMessage(npc.index, "There sadly ain't many Iberians left after what happend to their home country, damn traitorous {blue}seaborn{default}... we took in the surviving iberians and helped them!"); } } } @@ -457,19 +457,19 @@ methodmap Nemal < CClotBody { case 0: { - CPrintToChatAll("{lightblue}Nemal{default}: Enough chatter, I'll start to not restrain myself."); + NPCTalkMessage(npc.index, "Enough chatter, I'll start to not restrain myself."); } case 1: { - CPrintToChatAll("{lightblue}Nemal{default}: {blue}Sensal{default} wasn't lying when he said you guys got some tricks."); + NPCTalkMessage(npc.index, "{blue}Sensal{default} wasn't lying when he said you guys got some tricks."); } case 2: { - CPrintToChatAll("{lightblue}Nemal{default}: Iberians have some really widening history, eventually it'll be rebuilt with {gold}Expidonsa's{default} help."); + NPCTalkMessage(npc.index, "Iberians have some really widening history, eventually it'll be rebuilt with {gold}Expidonsa's{default} help."); } case 3: { - CPrintToChatAll("{lightblue}Nemal{default}: {blue}Seaborns{default} and us had some treaty yknow... before they attacked everyone... Thats how we have the idea of what {green}Defenda's{default} are using."); + NPCTalkMessage(npc.index, "{blue}Seaborns{default} and us had some treaty yknow... before they attacked everyone... Thats how we have the idea of what {green}Defenda's{default} are using."); } } } @@ -480,19 +480,19 @@ methodmap Nemal < CClotBody { case 0: { - CPrintToChatAll("{lightblue}Nemal{default}: Looks like I have to give it all."); + NPCTalkMessage(npc.index, "Looks like I have to give it all."); } case 1: { - CPrintToChatAll("{lightblue}Nemal{default}: I won't hold back anymore."); + NPCTalkMessage(npc.index, "I won't hold back anymore."); } case 2: { - CPrintToChatAll("{lightblue}Nemal{default}: Ready yourself."); + NPCTalkMessage(npc.index, "Ready yourself."); } case 3: { - CPrintToChatAll("{lightblue}Nemal{default}: I would worry about you, but I don't think thats necessary."); + NPCTalkMessage(npc.index, "I would worry about you, but I don't think thats necessary."); } } } @@ -506,19 +506,19 @@ methodmap Nemal < CClotBody { case 0: { - CPrintToChatAll("{lightblue}Nemal{default}: Looks like I have to give it all."); + NPCTalkMessage(npc.index, "Looks like I have to give it all."); } case 1: { - CPrintToChatAll("{lightblue}Nemal{default}: I won't hold back anymore."); + NPCTalkMessage(npc.index, "I won't hold back anymore."); } case 2: { - CPrintToChatAll("{lightblue}Nemal{default}: Ready yourself."); + NPCTalkMessage(npc.index, "Ready yourself."); } case 3: { - CPrintToChatAll("{lightblue}Nemal{default}: I would worry about you, but I don't think thats neccecary."); + NPCTalkMessage(npc.index, "I would worry about you, but I don't think thats neccecary."); } } } @@ -595,19 +595,19 @@ methodmap Nemal < CClotBody { case 0: { - CPrintToChatAll("{lightblue}Nemal{default}: Sorry {blue}Sensal's{default} he's comming a bit late."); + NPCTalkMessage(npc.index, "Sorry {blue}Sensal's{default} he's comming a bit late."); } case 1: { - CPrintToChatAll("{lightblue}Nemal{default}: Hey {blue}Sensal's{default}, im here."); + NPCTalkMessage(npc.index, "Hey {blue}Sensal's{default}, im here."); } case 2: { - CPrintToChatAll("{lightblue}Nemal{default}: Isn't this overkill?"); + NPCTalkMessage(npc.index, "Isn't this overkill?"); } case 3: { - CPrintToChatAll("{lightblue}Nemal{default}: Sorry but thats all."); + NPCTalkMessage(npc.index, "Sorry but thats all."); } } } @@ -653,6 +653,11 @@ methodmap Nemal < CClotBody } } +static void NPCTalkMessage(int iNPC, const char[] message) +{ + PrintNPCMessageWithPrefixes(iNPC, "lightblue", message); +} + static void Internal_ClotThink(int iNPC) { Nemal npc = view_as(iNPC); @@ -675,15 +680,15 @@ static void Internal_ClotThink(int iNPC) { case 0: { - CPrintToChatAll("{lightblue}Nemal{default}: You don't beat me, then you'll never be able to face the full force of the {purple}void{default}."); + NPCTalkMessage(npc.index, "You don't beat me, then you'll never be able to face the full force of the {purple}void{default}."); } case 1: { - CPrintToChatAll("{lightblue}Nemal{default}: Not beating me means no beating the {purple}void{default}."); + NPCTalkMessage(npc.index, "Not beating me means no beating the {purple}void{default}."); } case 2: { - CPrintToChatAll("{lightblue}Nemal{default}: Use that adrenaline against me, come on!"); + NPCTalkMessage(npc.index, "Use that adrenaline against me, come on!"); } } } @@ -699,15 +704,15 @@ static void Internal_ClotThink(int iNPC) { case 0: { - CPrintToChatAll("{lightblue}Nemal{default}: Well... There's next time."); + NPCTalkMessage(npc.index, "Well... There's next time."); } case 1: { - CPrintToChatAll("{lightblue}Nemal{default}: Too tired today? I get it."); + NPCTalkMessage(npc.index, "Too tired today? I get it."); } case 2: { - CPrintToChatAll("{lightblue}Nemal{default}: I'm sorry but this is needed, this is training, not a daycare."); + NPCTalkMessage(npc.index, "I'm sorry but this is needed, this is training, not a daycare."); } } return; @@ -737,15 +742,15 @@ static void Internal_ClotThink(int iNPC) { case 0: { - CPrintToChatAll("{lightblue}Nemal{default}: You won't defeat {purple}it{default} with that speed."); + NPCTalkMessage(npc.index, "You won't defeat {purple}it{default} with that speed."); } case 1: { - CPrintToChatAll("{lightblue}Nemal{default}: ... Don't disappoint {darkblue}Kahmlstein{default} like this..."); + NPCTalkMessage(npc.index, "... Don't disappoint {darkblue}Kahmlstein{default} like this..."); } case 2: { - CPrintToChatAll("{lightblue}Nemal{default}: As much of an ass{darkblue}Kahmlstein{default} was... he did have something in him."); + NPCTalkMessage(npc.index, "As much of an ass{darkblue}Kahmlstein{default} was... he did have something in him."); } } BlockLoseSay = true; @@ -910,7 +915,7 @@ static Action Internal_OnTakeDamage(int victim, int &attacker, int &inflictor, f RemoveEntity(npc.m_iWearable8); } SetEntProp(npc.index, Prop_Data, "m_iHealth", ReturnEntityMaxHealth(npc.index)/9); - CPrintToChatAll("{lightblue}Nemal{default}: Hey man, you're really hurting me here..."); + NPCTalkMessage(npc.index, "Hey man, you're really hurting me here..."); npc.i_GunMode = 0; damage = 0.0; //So he doesnt get oneshot somehow, atleast once. return Plugin_Handled; @@ -935,7 +940,7 @@ static Action Internal_OnTakeDamage(int victim, int &attacker, int &inflictor, f MakeObjectIntangeable(npc.index); SetEntProp(npc.index, Prop_Data, "m_iHealth", 1); - CPrintToChatAll("{lightblue}Nemal{default}: Ouch ouch! Time out, time out!"); + NPCTalkMessage(npc.index, "Ouch ouch! Time out, time out!"); npc.m_iTarget = 0; damage = 0.0; //So he doesnt get oneshot somehow, atleast once. @@ -999,19 +1004,19 @@ static void Internal_NPCDeath(int entity) { case 0: { - CPrintToChatAll("{lightblue}Nemal{default}: Okay... ouch.. ow..."); + NPCTalkMessage(npc.index, "Okay... ouch.. ow..."); } case 1: { - CPrintToChatAll("{lightblue}Nemal{default}: Okay Okay you won! For now."); + NPCTalkMessage(npc.index, "Okay Okay you won! For now."); } case 2: { - CPrintToChatAll("{lightblue}Nemal{default}: See you next time.... this hurts.."); + NPCTalkMessage(npc.index, "See you next time.... this hurts.."); } case 3: { - CPrintToChatAll("{lightblue}Nemal{default}: I was going to insult you, but I asked for this..."); + NPCTalkMessage(npc.index, "I was going to insult you, but I asked for this..."); } } @@ -1766,7 +1771,7 @@ bool NemalTalkPostWin(Nemal npc) } if(GetGameTime() > f_TimeSinceHasBeenHurt[npc.index]) { - CPrintToChatAll("{lightblue}Nemal{default}: Till later Mercs!"); + NPCTalkMessage(npc.index, "Till later Mercs!"); RequestFrame(KillNpc, EntIndexToEntRef(npc.index)); CClotBody allynpc = view_as(npc.m_iTargetAlly); @@ -1786,22 +1791,27 @@ bool NemalTalkPostWin(Nemal npc) else if(GetGameTime() + 5.0 > f_TimeSinceHasBeenHurt[npc.index] && i_SaidLineAlready[npc.index] < 4) { i_SaidLineAlready[npc.index] = 4; - CPrintToChatAll("{lightblue}Nemal{default}: We'll Keep {purple}void gates{default} under control, tell us when youre ready to kill off the {purple}void{default} once and for all, as a team!"); + NPCTalkMessage(npc.index, "We'll Keep {purple}void gates{default} under control, tell us when youre ready to kill off the {purple}void{default} once and for all, as a team!"); } else if(GetGameTime() + 10.0 > f_TimeSinceHasBeenHurt[npc.index] && i_SaidLineAlready[npc.index] < 3) { i_SaidLineAlready[npc.index] = 3; - CPrintToChatAll("{lightblue}Nemal{default}: Shhh! Don't ruin the fun! Eitherways, good job!"); + NPCTalkMessage(npc.index, "Shhh! Don't ruin the fun! Eitherways, good job!"); } else if(GetGameTime() + 13.0 > f_TimeSinceHasBeenHurt[npc.index] && i_SaidLineAlready[npc.index] < 2) { i_SaidLineAlready[npc.index] = 2; - CPrintToChatAll("{gold}Silvester{default}: Why do you keep pretending you dont know them? Some of them come from a {crimson}Previous{default} era."); + CClotBody allynpc = view_as(npc.m_iTargetAlly); + + if(IsValidEntity(allynpc.index)) + RaidbossSilvester_NPCTalkMessage(allynpc.index, "Why do you keep pretending you dont know them? Some of them come from a {crimson}Previous{default} era."); + else + CPrintToChatAll("{gold}Silvester{default}: Why do you keep pretending you dont know them? Some of them come from a {crimson}Previous{default} era."); } else if(GetGameTime() + 16.5 > f_TimeSinceHasBeenHurt[npc.index] && i_SaidLineAlready[npc.index] < 1) { i_SaidLineAlready[npc.index] = 1; - CPrintToChatAll("{lightblue}Nemal{default}: Well thats it! You passed the test and ontop of that, helped eachother, teamwork!.. probably."); + NPCTalkMessage(npc.index, "Well thats it! You passed the test and ontop of that, helped eachother, teamwork!.. probably."); ReviveAll(true); } return true; //He is trying to help. @@ -1866,7 +1876,7 @@ bool NemalTransformation(Nemal npc) npc.m_flDoingAnimation = 0.0; SetEntProp(npc.index, Prop_Data, "m_iHealth", (ReturnEntityMaxHealth(npc.index) / 9)); - CPrintToChatAll("{lightblue}Nemal{default}: Here's my finest creation at work!"); + NPCTalkMessage(npc.index, "Here's my finest creation at work!"); SetVariantColor(view_as({255, 255, 255, 200})); AcceptEntityInput(npc.m_iTeamGlow, "SetGlowColor"); @@ -2058,19 +2068,19 @@ bool NemalSummonSilvester(Nemal npc) { case 0: { - CPrintToChatAll("{lightblue}Nemal{default}: Ah no worries! I'll totally forgive you!"); + NPCTalkMessage(npc.index, "Ah no worries! I'll totally forgive you!"); } case 1: { - CPrintToChatAll("{lightblue}Nemal{default}: You're such a nut you know that right?"); + NPCTalkMessage(npc.index, "You're such a nut you know that right?"); } case 2: { - CPrintToChatAll("{lightblue}Nemal{default}: Sorry mercs this guy is signed with ''i dont wanna''"); + NPCTalkMessage(npc.index, "Sorry mercs this guy is signed with ''i dont wanna''"); } case 3: { - CPrintToChatAll("{lightblue}Nemal{default}: Just don't attack the same guy as me, thats unfair!"); + NPCTalkMessage(npc.index, "Just don't attack the same guy as me, thats unfair!"); } } npc.m_iChanged_WalkCycle = 3; @@ -2115,19 +2125,19 @@ bool NemalSummonSilvester(Nemal npc) { case 0: { - CPrintToChatAll("{lightblue}Nemal{default}: Oh? Looks like {gold}Silvester{default} Is finally coming!"); + NPCTalkMessage(npc.index, "Oh? Looks like {gold}Silvester{default} Is finally coming!"); } case 1: { - CPrintToChatAll("{lightblue}Nemal{default}: The lazy ass {gold}cat{default} is coming right up!"); + NPCTalkMessage(npc.index, "The lazy ass {gold}cat{default} is coming right up!"); } case 2: { - CPrintToChatAll("{lightblue}Nemal{default}: Hey look, traning partner!"); + NPCTalkMessage(npc.index, "Hey look, traning partner!"); } case 3: { - CPrintToChatAll("{lightblue}Nemal{default}: New phone who this? Oh, you finally came!"); + NPCTalkMessage(npc.index, "New phone who this? Oh, you finally came!"); } } if(i_RaidGrantExtra[npc.index] >= 3 && !TripleLol) @@ -2432,7 +2442,7 @@ static void Nemal_Weapon_Lines(Nemal npc, int client) if(valid) { - CPrintToChatAll("{lightblue}Nemal{default}: %s", Text_Lines); + NPCTalkMessage(npc.index, Text_Lines); fl_said_player_weaponline_time[npc.index] = GameTime + GetRandomFloat(17.0, 26.0); b_said_player_weaponline[client] = true; } diff --git a/addons/sourcemod/scripting/zombie_riot/npc/raidmode_bosses/iberia/npc_raid_silvester.sp b/addons/sourcemod/scripting/zombie_riot/npc/raidmode_bosses/iberia/npc_raid_silvester.sp index 3a4cdabe5b..ab7403e487 100644 --- a/addons/sourcemod/scripting/zombie_riot/npc/raidmode_bosses/iberia/npc_raid_silvester.sp +++ b/addons/sourcemod/scripting/zombie_riot/npc/raidmode_bosses/iberia/npc_raid_silvester.sp @@ -351,19 +351,19 @@ methodmap Silvester < CClotBody { case 0: { - CPrintToChatAll("{gold}Silvester{default}: Sorry that im late!"); + RaidbossSilvester_NPCTalkMessage(npc.index, "Sorry that im late!"); } case 1: { - CPrintToChatAll("{gold}Silvester{default}: Had to do some errands with {blue}Sensal{default}."); + RaidbossSilvester_NPCTalkMessage(npc.index, "Had to do some errands with {blue}Sensal{default}."); } case 2: { - CPrintToChatAll("{gold}Silvester{default}: Here i am!"); + RaidbossSilvester_NPCTalkMessage(npc.index, "Here i am!"); } case 3: { - CPrintToChatAll("{gold}Silvester{default}: Starting easy? Got it!"); + RaidbossSilvester_NPCTalkMessage(npc.index, "Starting easy? Got it!"); } } } @@ -374,19 +374,19 @@ methodmap Silvester < CClotBody { case 0: { - CPrintToChatAll("{gold}Silvester{default}: Just like old times, eh Mercs?"); + RaidbossSilvester_NPCTalkMessage(npc.index, "Just like old times, eh Mercs?"); } case 1: { - CPrintToChatAll("{gold}Silvester{default}: Its good to practice, i shouldnt slack off."); + RaidbossSilvester_NPCTalkMessage(npc.index, "Its good to practice, i shouldnt slack off."); } case 2: { - CPrintToChatAll("{gold}Silvester{default}: Sorry {lightblue}Nemal{default} I should take this more seriously."); + RaidbossSilvester_NPCTalkMessage(npc.index, "Sorry {lightblue}Nemal{default} I should take this more seriously."); } case 3: { - CPrintToChatAll("{gold}Silvester{default}: Wish {darkblue}Waldch{default} would come with train with us, but ever since the {crimson}hitman{default} is gone, he can finally do work."); + RaidbossSilvester_NPCTalkMessage(npc.index, "Wish {darkblue}Waldch{default} would come with train with us, but ever since the {crimson}hitman{default} is gone, he can finally do work."); } } } @@ -397,19 +397,19 @@ methodmap Silvester < CClotBody { case 0: { - CPrintToChatAll("{gold}Silvester{default}: Here it is."); + RaidbossSilvester_NPCTalkMessage(npc.index, "Here it is."); } case 1: { - CPrintToChatAll("{gold}Silvester{default}: Final Challange."); + RaidbossSilvester_NPCTalkMessage(npc.index, "Final Challange."); } case 2: { - CPrintToChatAll("{gold}Silvester{default}: No more holding back."); + RaidbossSilvester_NPCTalkMessage(npc.index, "No more holding back."); } case 3: { - CPrintToChatAll("{gold}Silvester{default}: Im giving it my all."); + RaidbossSilvester_NPCTalkMessage(npc.index, "Im giving it my all."); } } } @@ -423,19 +423,19 @@ methodmap Silvester < CClotBody { case 0: { - CPrintToChatAll("{gold}Silvester{default}: Here it is."); + RaidbossSilvester_NPCTalkMessage(npc.index, "Here it is."); } case 1: { - CPrintToChatAll("{gold}Silvester{default}: Final Challange."); + RaidbossSilvester_NPCTalkMessage(npc.index, "Final Challange."); } case 2: { - CPrintToChatAll("{gold}Silvester{default}: No more holding back."); + RaidbossSilvester_NPCTalkMessage(npc.index, "No more holding back."); } case 3: { - CPrintToChatAll("{gold}Silvester{default}: Im giving it my all."); + RaidbossSilvester_NPCTalkMessage(npc.index, "Im giving it my all."); } } } @@ -594,7 +594,7 @@ static void Internal_ClotThink(int iNPC) { npc.m_flInTeleportLogic = 0.0; npc.m_flChangeTargetsSilvester -= 3.0; - CPrintToChatAll("{gold}Silvester{default}: Oh damn She is already gone..."); + RaidbossSilvester_NPCTalkMessage(npc.index, "Oh damn She is already gone..."); RemoveSpecificBuff(npc.index, "Very Defensive Backup"); return; } @@ -660,23 +660,23 @@ static void Internal_ClotThink(int iNPC) { case 0: { - CPrintToChatAll("{gold}Silvester{default}: Hold on {lightblue}Nemal{default} i'm coming!"); + RaidbossSilvester_NPCTalkMessage(npc.index, "Hold on {lightblue}Nemal{default} i'm coming!"); } case 1: { - CPrintToChatAll("{gold}Silvester{default}: Thinking of taking {lightblue}Nemal{default} out first?"); + RaidbossSilvester_NPCTalkMessage(npc.index, "Thinking of taking {lightblue}Nemal{default} out first?"); } case 2: { - CPrintToChatAll("{gold}Silvester{default}: {lightblue}Nemal{default}... {darkblue}Waldch{default}... you both are the same i swear!"); + RaidbossSilvester_NPCTalkMessage(npc.index, "{lightblue}Nemal{default}... {darkblue}Waldch{default}... you both are the same i swear!"); } case 3: { - CPrintToChatAll("{gold}Silvester{default}: Rahhh, ill teleport to you wait."); + RaidbossSilvester_NPCTalkMessage(npc.index, "Rahhh, ill teleport to you wait."); } case 4: { - CPrintToChatAll("{gold}Silvester{default}: Here i go !"); + RaidbossSilvester_NPCTalkMessage(npc.index, "Here i go !"); } } } @@ -693,15 +693,15 @@ static void Internal_ClotThink(int iNPC) { case 0: { - CPrintToChatAll("{gold}Silvester{default}: You dont beat me, then youll never be able to face the full force of the {purple}void{default}."); + RaidbossSilvester_NPCTalkMessage(npc.index, "You dont beat me, then youll never be able to face the full force of the {purple}void{default}."); } case 1: { - CPrintToChatAll("{gold}Silvester{default}: Not beating me means no beating the {purple}void{default}."); + RaidbossSilvester_NPCTalkMessage(npc.index, "Not beating me means no beating the {purple}void{default}."); } case 2: { - CPrintToChatAll("{gold}Silvester{default}: Use that adrenaline against me, come on!"); + RaidbossSilvester_NPCTalkMessage(npc.index, "Use that adrenaline against me, come on!"); } } } @@ -717,15 +717,15 @@ static void Internal_ClotThink(int iNPC) { case 0: { - CPrintToChatAll("{gold}Silvester{default}: Gotta go, youll win next time."); + RaidbossSilvester_NPCTalkMessage(npc.index, "Gotta go, youll win next time."); } case 1: { - CPrintToChatAll("{gold}Silvester{default}: Atleast you fought, and didnt run!"); + RaidbossSilvester_NPCTalkMessage(npc.index, "Atleast you fought, and didnt run!"); } case 2: { - CPrintToChatAll("{gold}Silvester{default}: I can try to go easier next time, but that wont help with training."); + RaidbossSilvester_NPCTalkMessage(npc.index, "I can try to go easier next time, but that wont help with training."); } } return; @@ -749,7 +749,7 @@ static void Internal_ClotThink(int iNPC) { RemoveEntity(npc.m_iWearable8); } - CPrintToChatAll("{gold}Silvester{default}: Youre taking to long to hurt me, ill try harder myself then."); + RaidbossSilvester_NPCTalkMessage(npc.index, "Youre taking to long to hurt me, ill try harder myself then."); npc.m_flSilvesterTransformRegardless = FAR_FUTURE; npc.i_GunMode = 0; } @@ -773,15 +773,15 @@ static void Internal_ClotThink(int iNPC) { case 0: { - CPrintToChatAll("{gold}Silvester{default}: Sorry, too slow."); + RaidbossSilvester_NPCTalkMessage(npc.index, "Sorry, too slow."); } case 1: { - CPrintToChatAll("{gold}Silvester{default}: Well thats a boring end."); + RaidbossSilvester_NPCTalkMessage(npc.index, "Well thats a boring end."); } case 2: { - CPrintToChatAll("{gold}Silvester{default}: If you would stop running, this wouldnt happen."); + RaidbossSilvester_NPCTalkMessage(npc.index, "If you would stop running, this wouldnt happen."); } } BlockLoseSay = true; @@ -898,7 +898,7 @@ static void Internal_ClotThink(int iNPC) npc.SetActivity("ACT_MP_STAND_MELEE_ALLCLASS"); npc.m_flSpeed = 320.0; npc.m_bAllowBackWalking = false; - CPrintToChatAll("{gold}Silvester{default}: Oh you seem to be alone, i'll wait."); + RaidbossSilvester_NPCTalkMessage(npc.index, "Oh you seem to be alone, i'll wait."); b_NpcIsInvulnerable[npc.index] = true; //Special huds for invul targets } } @@ -912,7 +912,7 @@ static void Internal_ClotThink(int iNPC) npc.SetActivity("ACT_MP_STAND_MELEE"); npc.m_flSpeed = 320.0; npc.m_bAllowBackWalking = false; - CPrintToChatAll("{gold}Silvester{default}: Oh you seem to be alone, i'll wait."); + RaidbossSilvester_NPCTalkMessage(npc.index, "Oh you seem to be alone, i'll wait."); b_NpcIsInvulnerable[npc.index] = true; //Special huds for invul targets } } @@ -927,7 +927,7 @@ static void Internal_ClotThink(int iNPC) { if(!b_SilvLine[npc.index]) { - CPrintToChatAll("{gold}Silvester{default}: Fighting me alone now? Guess ill give it extra."); + RaidbossSilvester_NPCTalkMessage(npc.index, "Fighting me alone now? Guess ill give it extra."); b_SilvLine[npc.index] = true; RaidModeScaling *= 1.15; } @@ -1061,7 +1061,7 @@ static Action Internal_OnTakeDamage(int victim, int &attacker, int &inflictor, f RemoveEntity(npc.m_iWearable8); } SetEntProp(npc.index, Prop_Data, "m_iHealth", ReturnEntityMaxHealth(npc.index)/2); - CPrintToChatAll("{gold}Silvester{default}: Well, looks like i gotta take off the training wheels."); + RaidbossSilvester_NPCTalkMessage(npc.index, "Well, looks like i gotta take off the training wheels."); npc.m_flSilvesterTransformRegardless = FAR_FUTURE; npc.i_GunMode = 0; damage = 0.0; //So he doesnt get oneshot somehow, atleast once. @@ -1084,7 +1084,7 @@ static Action Internal_OnTakeDamage(int victim, int &attacker, int &inflictor, f MakeObjectIntangeable(npc.index); SetEntProp(npc.index, Prop_Data, "m_iHealth", 1); - CPrintToChatAll("{gold}Silvester{default}: Not in the face! ah... fine."); + RaidbossSilvester_NPCTalkMessage(npc.index, "Not in the face! ah... fine."); damage = 0.0; //So he doesnt get oneshot somehow, atleast once. return Plugin_Handled; @@ -1142,19 +1142,19 @@ static void Internal_NPCDeath(int entity) { case 0: { - CPrintToChatAll("{gold}Silvester{default}: Welp i gotta help {blue}Sensal{default} again, cya!"); + RaidbossSilvester_NPCTalkMessage(npc.index, "Welp i gotta help {blue}Sensal{default} again, cya!"); } case 1: { - CPrintToChatAll("{gold}Silvester{default}: I have some stuff to do, exhausted anyways currently, till later."); + RaidbossSilvester_NPCTalkMessage(npc.index, "I have some stuff to do, exhausted anyways currently, till later."); } case 2: { - CPrintToChatAll("{gold}Silvester{default}: You guys pack a punch!"); + RaidbossSilvester_NPCTalkMessage(npc.index, "You guys pack a punch!"); } case 3: { - CPrintToChatAll("{gold}Silvester{default}: Remember when i was infected? I still thank you for helping me!"); + RaidbossSilvester_NPCTalkMessage(npc.index, "Remember when i was infected? I still thank you for helping me!"); } } @@ -1541,7 +1541,7 @@ bool SilvesterTransformation(Silvester npc, bool NemalAssistance) ApplyStatusEffect(npc.index, npc.index, "Defensive Backup", 5.0); npc.m_flDoingAnimation = 0.0; - CPrintToChatAll("{gold}Silvester{default}: Here's my scythe!"); + RaidbossSilvester_NPCTalkMessage(npc.index, "Here's my scythe!"); if(NemalAssistance) { CPrintToChatAll("{lightblue}Nemal{default}: Guess ill try harder aswell, or try to."); @@ -1618,7 +1618,7 @@ static void Silvester_Weapon_Lines(Silvester npc, int client) if(valid) { - CPrintToChatAll("{gold}Silvester{default}: %s", Text_Lines); + RaidbossSilvester_NPCTalkMessage(npc.index, "%s", Text_Lines); fl_said_player_weaponline_time[npc.index] = GameTime + GetRandomFloat(17.0, 26.0); b_said_player_weaponline[client] = true; } diff --git a/addons/sourcemod/scripting/zombie_riot/npc/raidmode_bosses/npc_blitzkrieg.sp b/addons/sourcemod/scripting/zombie_riot/npc/raidmode_bosses/npc_blitzkrieg.sp index 51abc1fc33..f370eb47da 100644 --- a/addons/sourcemod/scripting/zombie_riot/npc/raidmode_bosses/npc_blitzkrieg.sp +++ b/addons/sourcemod/scripting/zombie_riot/npc/raidmode_bosses/npc_blitzkrieg.sp @@ -442,7 +442,6 @@ methodmap Blitzkrieg < CClotBody func_NPCOnTakeDamage[npc.index] = view_as(OnTakeDamage); func_NPCThink[npc.index] = view_as(ClotThink); - int skin = 1; SetEntProp(npc.index, Prop_Send, "m_nSkin", skin); @@ -509,6 +508,7 @@ methodmap Blitzkrieg < CClotBody b_pureblitz = false; if(!b_buffed_blitz) { + b_buffed_blitz = StrContains(data, "blitzmayhem") != -1; if(b_buffed_blitz) { @@ -518,39 +518,39 @@ methodmap Blitzkrieg < CClotBody { case 0: { - CPrintToChatAll("{crimson}%s{default}: NAHAHAHAHAHAHAHAHAHAHAHA!!!!!", NpcStats_ReturnNpcName(npc.index, true)); + NPCTalkMessage(npc.index, "NAHAHAHAHAHAHAHAHAHAHAHA!!!!!"); } case 1: { - CPrintToChatAll("{crimson}%s{default}: ICH WERD EUCH ALLE UMBRINGEN!", NpcStats_ReturnNpcName(npc.index, true)); + NPCTalkMessage(npc.index, "ICH WERD EUCH ALLE UMBRINGEN!"); } case 2: { - CPrintToChatAll("{crimson}%s{default}: DAS IS PURE KRAFT!", NpcStats_ReturnNpcName(npc.index, true)); + NPCTalkMessage(npc.index, "DAS IS PURE KRAFT!"); } case 3: { - CPrintToChatAll("{crimson}%s{default}: DENKSTE DAS WAR ALLES!!?!?!?!", NpcStats_ReturnNpcName(npc.index, true)); + NPCTalkMessage(npc.index, "DENKSTE DAS WAR ALLES!!?!?!?!"); } case 4: { - CPrintToChatAll("{crimson}%s{default}: DUUUUUUUUUUUUUUU KLEINE RATTE!", NpcStats_ReturnNpcName(npc.index, true)); + NPCTalkMessage(npc.index, "DUUUUUUUUUUUUUUU KLEINE RATTE!"); } case 5: { - CPrintToChatAll("{crimson}%s{default}: KOMMT HER IHR KLEINEN VIECHER!!", NpcStats_ReturnNpcName(npc.index, true)); + NPCTalkMessage(npc.index, "KOMMT HER IHR KLEINEN VIECHER!!"); } case 6: { - CPrintToChatAll("{crimson}%s{default}: DIE WAHRE POWER VON RUIANIAN UND EXPIDONSANS!", NpcStats_ReturnNpcName(npc.index, true)); + NPCTalkMessage(npc.index, "DIE WAHRE POWER VON RUIANIAN UND EXPIDONSANS!"); } case 7: { - CPrintToChatAll("{crimson}%s{default}: VERPISS DICH!!!!!!!!!!!!!", NpcStats_ReturnNpcName(npc.index, true)); + NPCTalkMessage(npc.index, "VERPISS DICH!!!!!!!!!!!!!"); } case 8: { - CPrintToChatAll("{crimson}%s{default}: BLITZKRIEG GEGEN BLITZKRIEG, KOMMT HER!!!!!", NpcStats_ReturnNpcName(npc.index, true)); + NPCTalkMessage(npc.index, "BLITZKRIEG GEGEN BLITZKRIEG, KOMMT HER!!!!!"); } } } @@ -592,11 +592,11 @@ methodmap Blitzkrieg < CClotBody { case 0: { - CPrintToChatAll("{crimson}%s{default}: Hehehe..", NpcStats_ReturnNpcName(npc.index, true)); + NPCTalkMessage(npc.index, "Hehehe.."); } case 1: { - CPrintToChatAll("{crimson}%s{default}: Shall we begin?", NpcStats_ReturnNpcName(npc.index, true)); + NPCTalkMessage(npc.index, "Shall we begin?"); } } } @@ -607,15 +607,15 @@ methodmap Blitzkrieg < CClotBody { case 0: { - CPrintToChatAll("{crimson}%s{default}: A second chance at besting you.", NpcStats_ReturnNpcName(npc.index, true)); + NPCTalkMessage(npc.index, "A second chance at besting you."); } case 1: { - CPrintToChatAll("{crimson}%s{default}: You may have lived last time, but can you do it again?", NpcStats_ReturnNpcName(npc.index, true)); + NPCTalkMessage(npc.index, "You may have lived last time, but can you do it again?"); } case 2: { - CPrintToChatAll("{crimson}%s{default}: I'm back for more.", NpcStats_ReturnNpcName(npc.index, true)); + NPCTalkMessage(npc.index, "I'm back for more."); } } } @@ -626,15 +626,15 @@ methodmap Blitzkrieg < CClotBody { case 0: { - CPrintToChatAll("{crimson}%s{default}: Let me introduce you to my best friend......{azure}the Moon.", NpcStats_ReturnNpcName(npc.index, true)); + NPCTalkMessage(npc.index, "Let me introduce you to my best friend......{azure}the Moon."); } case 1: { - CPrintToChatAll("{crimson}%s{default}: You're all a bunch of annoying mercs, aren't you.", NpcStats_ReturnNpcName(npc.index, true)); + NPCTalkMessage(npc.index, "You're all a bunch of annoying mercs, aren't you."); } case 2: { - CPrintToChatAll("{crimson}%s{default}: Let's just get this over with.", NpcStats_ReturnNpcName(npc.index, true)); + NPCTalkMessage(npc.index, "Let's just get this over with."); } } } @@ -644,15 +644,15 @@ methodmap Blitzkrieg < CClotBody { case 0: { - CPrintToChatAll("{crimson}%s{default}: This is the end for you.{crimson}NO MORE RUNNING.", NpcStats_ReturnNpcName(npc.index, true)); + NPCTalkMessage(npc.index, "This is the end for you.{crimson}NO MORE RUNNING."); } case 1: { - CPrintToChatAll("{crimson}%s{default}: Your hubris will eventually {crimson} fail you.", NpcStats_ReturnNpcName(npc.index, true)); + NPCTalkMessage(npc.index, "Your hubris will eventually {crimson} fail you."); } case 2: { - CPrintToChatAll("{crimson}%s{default}: POWER LIMITER: DISABLED{crimson} GOOD LUCK.{default}.", NpcStats_ReturnNpcName(npc.index, true)); + NPCTalkMessage(npc.index, "POWER LIMITER: DISABLED{crimson} GOOD LUCK.{default}."); } } } @@ -725,6 +725,12 @@ methodmap Blitzkrieg < CClotBody } } +static void NPCTalkMessage(int iNPC, const char[] message, any ...) +{ + char buffer[255]; + VFormat(buffer, sizeof(buffer), message, 3); + PrintNPCMessageWithPrefixes(iNPC, "crimson", buffer); +} static void ClotThink(int iNPC) { @@ -743,23 +749,23 @@ static void ClotThink(int iNPC) { case 0: { - CPrintToChatAll("{crimson}%s{default}: BISTE AUßER PUSTE? VERRECK!", NpcStats_ReturnNpcName(npc.index, true)); + NPCTalkMessage(npc.index, "BISTE AUßER PUSTE? VERRECK!"); } case 1: { - CPrintToChatAll("{crimson}%s{default}: NA WIE GEHTS DIE ALEINE {crimson}HMMMMMMMMMM?", NpcStats_ReturnNpcName(npc.index, true)); + NPCTalkMessage(npc.index, "NA WIE GEHTS DIE ALEINE {crimson}HMMMMMMMMMM?"); } case 2: { - CPrintToChatAll("{crimson}%s{default}: DU BIST EIN DRECKES FAKE, {crimson}GIB AUF!", NpcStats_ReturnNpcName(npc.index, true)); + NPCTalkMessage(npc.index, "DU BIST EIN DRECKES FAKE, {crimson}GIB AUF!"); } case 3: { - CPrintToChatAll("{crimson}%s{default}: DIE WAHRE KRAFT DER ALLIANCE!!!{crimson} IST HIIIIIIIIIIIERRRR!!", NpcStats_ReturnNpcName(npc.index, true)); + NPCTalkMessage(npc.index, "DIE WAHRE KRAFT DER ALLIANCE!!!{crimson} IST HIIIIIIIIIIIERRRR!!"); } case 4: { - CPrintToChatAll("{crimson}%s{crimson}: KOMM HER!!! HAU NICHT AB DU WEICHEI!", NpcStats_ReturnNpcName(npc.index, true)); + NPCTalkMessage(npc.index, "{crimson}KOMM HER!!! HAU NICHT AB DU WEICHEI!"); } } } @@ -769,23 +775,23 @@ static void ClotThink(int iNPC) { case 0: { - CPrintToChatAll("{crimson}%s{default}: Unlike you filthy organics, I do not require oxygen to live.", NpcStats_ReturnNpcName(npc.index, true)); + NPCTalkMessage(npc.index, "Unlike you filthy organics, I do not require oxygen to live."); } case 1: { - CPrintToChatAll("{crimson}%s{default}: How does it feel to be {crimson} all alone?", NpcStats_ReturnNpcName(npc.index, true)); + NPCTalkMessage(npc.index, "How does it feel to be {crimson} all alone?"); } case 2: { - CPrintToChatAll("{crimson}%s{default}: There is no hope for you.{crimson}Yield before I break you.", NpcStats_ReturnNpcName(npc.index, true)); + NPCTalkMessage(npc.index, "There is no hope for you.{crimson}Yield before I break you."); } case 3: { - CPrintToChatAll("{crimson}%s{default}: Death comes for{crimson} YOU.", NpcStats_ReturnNpcName(npc.index, true)); + NPCTalkMessage(npc.index, "Death comes for{crimson} YOU."); } case 4: { - CPrintToChatAll("{crimson}%s{default}: All your friends have already{crimson} perished. You're next.", NpcStats_ReturnNpcName(npc.index, true)); + NPCTalkMessage(npc.index, "All your friends have already{crimson} perished. You're next."); } } } @@ -795,23 +801,23 @@ static void ClotThink(int iNPC) { case 0: { - CPrintToChatAll("{crimson}%s{default}: Only one human remains.", NpcStats_ReturnNpcName(npc.index, true)); + NPCTalkMessage(npc.index, "Only one human remains."); } case 1: { - CPrintToChatAll("{crimson}%s{default}: Steel triumphs flesh it seems.", NpcStats_ReturnNpcName(npc.index, true)); + NPCTalkMessage(npc.index, "Steel triumphs flesh it seems."); } case 2: { - CPrintToChatAll("{crimson}%s{default}: You are hopeless.", NpcStats_ReturnNpcName(npc.index, true)); + NPCTalkMessage(npc.index, "You are hopeless."); } case 3: { - CPrintToChatAll("{crimson}%s{default}: Your death is{crimson} Inevitable.", NpcStats_ReturnNpcName(npc.index, true)); + NPCTalkMessage(npc.index, "Your death is{crimson} Inevitable."); } case 4: { - CPrintToChatAll("{crimson}%s{default}: All your friends have already perished.{crimson} You're next.", NpcStats_ReturnNpcName(npc.index, true)); + NPCTalkMessage(npc.index, "All your friends have already perished.{crimson} You're next."); } } } @@ -830,11 +836,11 @@ static void ClotThink(int iNPC) { case 0: { - CPrintToChatAll("{crimson}%s{default}: Willste NOCHMAL versuchen? HMMMMM????", NpcStats_ReturnNpcName(npc.index, true)); + NPCTalkMessage(npc.index, "Willste NOCHMAL versuchen? HMMMMM????"); } case 1: { - CPrintToChatAll("{crimson}%s{default}: GIBSTE SCHON AUF? TRAURIG.", NpcStats_ReturnNpcName(npc.index, true)); + NPCTalkMessage(npc.index, "GIBSTE SCHON AUF? TRAURIG."); } } } @@ -844,11 +850,11 @@ static void ClotThink(int iNPC) { case 0: { - CPrintToChatAll("{crimson}%s{default}: Onto the rest of the {crimson}planet.", NpcStats_ReturnNpcName(npc.index, true)); + NPCTalkMessage(npc.index, "Onto the rest of the {crimson}planet."); } case 1: { - CPrintToChatAll("{crimson}%s{default}: Breathing is optional, {crimson}but not for you.", NpcStats_ReturnNpcName(npc.index, true)); + NPCTalkMessage(npc.index, "Breathing is optional, {crimson}but not for you."); } } } @@ -858,19 +864,19 @@ static void ClotThink(int iNPC) { case 0: { - CPrintToChatAll("{crimson}%s{default}: {crimson}Annihilated.{default}", NpcStats_ReturnNpcName(npc.index, true)); + NPCTalkMessage(npc.index, "{crimson}Annihilated.{default}"); } case 1: { - CPrintToChatAll("{crimson}%s{default}: Hopeless scrap.", NpcStats_ReturnNpcName(npc.index, true)); + NPCTalkMessage(npc.index, "Hopeless scrap."); } case 2: { - CPrintToChatAll("{crimson}%s{default}: Such {crimson}pathetic {default} weaponry.", NpcStats_ReturnNpcName(npc.index, true)); + NPCTalkMessage(npc.index, "Such {crimson}pathetic {default} weaponry."); } case 3: { - CPrintToChatAll("{crimson}%s{default}: Your death is{crimson} Inevitable.", NpcStats_ReturnNpcName(npc.index, true)); + NPCTalkMessage(npc.index, "Your death is{crimson} Inevitable."); } } } @@ -916,15 +922,15 @@ static void ClotThink(int iNPC) { case 1: { - CPrintToChatAll("{crimson}%s{default}: It's already {crimson}too late,{default} my army has arrived...", NpcStats_ReturnNpcName(npc.index, true)); + NPCTalkMessage(npc.index, "It's already {crimson}too late,{default} my army has arrived..."); } case 2: { - CPrintToChatAll("{crimson}%s{default}: My army has you surrounded from all sides, {crimson}surrender{default} or perish.", NpcStats_ReturnNpcName(npc.index, true)); + NPCTalkMessage(npc.index, "My army has you surrounded from all sides, {crimson}surrender{default} or perish."); } case 3: { - CPrintToChatAll("{crimson}%s{default}: My army can always use {crimson}excellent specimens{default} like you.", NpcStats_ReturnNpcName(npc.index, true)); + NPCTalkMessage(npc.index, "My army can always use {crimson}excellent specimens{default} like you."); } } } @@ -1219,19 +1225,19 @@ static void ClotThink(int iNPC) { case 1: { - CPrintToChatAll("{crimson}%s{default}: Have a gift from yours truly {yellow}%N{default}!", NpcStats_ReturnNpcName(npc.index), Enemy_I_See); + NPCTalkMessage(npc.index, "Have a gift from yours truly {yellow}%N{default}!", Enemy_I_See); } case 2: { - CPrintToChatAll("{crimson}%s{default}: Lookout above {yellow}%N{default}!", NpcStats_ReturnNpcName(npc.index), Enemy_I_See); + NPCTalkMessage(npc.index, "Lookout above {yellow}%N{default}!", Enemy_I_See); } case 3: { - CPrintToChatAll("{crimson}%s{default}: A present for {yellow}%N{default}!", NpcStats_ReturnNpcName(npc.index), Enemy_I_See); + NPCTalkMessage(npc.index, "A present for {yellow}%N{default}!", Enemy_I_See); } case 4: { - CPrintToChatAll("{crimson}%s{default}: Move along now, {yellow}%N{default}!", NpcStats_ReturnNpcName(npc.index), Enemy_I_See); + NPCTalkMessage(npc.index, "Move along now, {yellow}%N{default}!", Enemy_I_See); } } } @@ -1403,19 +1409,19 @@ static Action OnTakeDamage(int victim, int &attacker, int &inflictor, float &dam { case 1: { - CPrintToChatAll("{crimson}%s{default}: DAS WARS NOCH NET!", NpcStats_ReturnNpcName(npc.index, true)); + NPCTalkMessage(npc.index, "DAS WARS NOCH NET!"); } case 2: { - CPrintToChatAll("{crimson}%s{default}: ICH KILL DICH!", NpcStats_ReturnNpcName(npc.index, true)); + NPCTalkMessage(npc.index, "ICH KILL DICH!"); } case 3: { - CPrintToChatAll("{crimson}%s{default}: AAAAAAHHHHHAAAAAAAAAAAAAAAA!", NpcStats_ReturnNpcName(npc.index)); + NPCTalkMessage(npc.index, "AAAAAAHHHHHAAAAAAAAAAAAAAAA!"); } case 4: { - CPrintToChatAll("{crimson}%s{default}: ICH WERD DEIN DRECKS KOPF ZERSTÜCKELN!", NpcStats_ReturnNpcName(npc.index)); + NPCTalkMessage(npc.index, "ICH WERD DEIN DRECKS KOPF ZERSTÜCKELN!"); } } } @@ -1425,19 +1431,19 @@ static Action OnTakeDamage(int victim, int &attacker, int &inflictor, float &dam { case 1: { - CPrintToChatAll("{crimson}%s{default}: This is only just the beginning {yellow}%N{default}!", NpcStats_ReturnNpcName(npc.index, true), closest); + NPCTalkMessage(npc.index, "This is only just the beginning {yellow}%N{default}!", closest); } case 2: { - CPrintToChatAll("{crimson}%s{default}: You think this is the end {yellow}%N{default}?", NpcStats_ReturnNpcName(npc.index, true), closest); + NPCTalkMessage(npc.index, "You think this is the end {yellow}%N{default}?", closest); } case 3: { - CPrintToChatAll("{crimson}%s{default}: YOU FOOL {yellow}%N{default}!", NpcStats_ReturnNpcName(npc.index, true), closest); + NPCTalkMessage(npc.index, "YOU FOOL {yellow}%N{default}!", closest); } case 4: { - CPrintToChatAll("{crimson}%s{default}: There's plenty more where that came from {yellow}%N{default}!", NpcStats_ReturnNpcName(npc.index, true), closest); + NPCTalkMessage(npc.index, "There's plenty more where that came from {yellow}%N{default}!", closest); } } } @@ -1457,19 +1463,19 @@ static Action OnTakeDamage(int victim, int &attacker, int &inflictor, float &dam { case 1: { - CPrintToChatAll("{crimson}%s{default}: DAS WARS NOCH NET!", NpcStats_ReturnNpcName(npc.index, true)); + NPCTalkMessage(npc.index, "DAS WARS NOCH NET!"); } case 2: { - CPrintToChatAll("{crimson}%s{default}: ICH KILL DICH!", NpcStats_ReturnNpcName(npc.index, true)); + NPCTalkMessage(npc.index, "ICH KILL DICH!"); } case 3: { - CPrintToChatAll("{crimson}%s{default}: AAAAAAHHHHHAAAAAAAAAAAAAAAA!", NpcStats_ReturnNpcName(npc.index, true), closest); + NPCTalkMessage(npc.index, "AAAAAAHHHHHAAAAAAAAAAAAAAAA!", closest); } case 4: { - CPrintToChatAll("{crimson}%s{default}: ICH WERD DEIN DRECKS KOPF ZERSTÜCKELN!", NpcStats_ReturnNpcName(npc.index, true), closest); + NPCTalkMessage(npc.index, "ICH WERD DEIN DRECKS KOPF ZERSTÜCKELN!", closest); } } } @@ -1479,19 +1485,19 @@ static Action OnTakeDamage(int victim, int &attacker, int &inflictor, float &dam { case 1: { - CPrintToChatAll("{crimson}%s{default}: Don't get too cocky {yellow}%N{default}!", NpcStats_ReturnNpcName(npc.index, true), closest); + NPCTalkMessage(npc.index, "Don't get too cocky {yellow}%N{default}!", closest); } case 2: { - CPrintToChatAll("{crimson}%s{default}: Thy end is near {yellow}%N{default}!", NpcStats_ReturnNpcName(npc.index, true), closest); + NPCTalkMessage(npc.index, "Thy end is near {yellow}%N{default}!", closest); } case 3: { - CPrintToChatAll("{crimson}%s{default}: {yellow}%N {default}are you sure you want to proceed further?", NpcStats_ReturnNpcName(npc.index, true), closest); + NPCTalkMessage(npc.index, "{yellow}%N {default}are you sure you want to proceed further?", closest); } case 4: { - CPrintToChatAll("{crimson}%s{default}: This is getting interesting, {yellow}%N{default}!", NpcStats_ReturnNpcName(npc.index, true), closest); + NPCTalkMessage(npc.index, "This is getting interesting, {yellow}%N{default}!", closest); } } } @@ -1511,19 +1517,19 @@ static Action OnTakeDamage(int victim, int &attacker, int &inflictor, float &dam { case 1: { - CPrintToChatAll("{crimson}%s{default}: DAS WARS NOCH NET!", NpcStats_ReturnNpcName(npc.index, true)); + NPCTalkMessage(npc.index, "DAS WARS NOCH NET!"); } case 2: { - CPrintToChatAll("{crimson}%s{default}: ICH KILL DICH!", NpcStats_ReturnNpcName(npc.index, true)); + NPCTalkMessage(npc.index, "ICH KILL DICH!"); } case 3: { - CPrintToChatAll("{crimson}%s{default}: AAAAAAHHHHHAAAAAAAAAAAAAAAA!", NpcStats_ReturnNpcName(npc.index, true), closest); + NPCTalkMessage(npc.index, "AAAAAAHHHHHAAAAAAAAAAAAAAAA!", closest); } case 4: { - CPrintToChatAll("{crimson}%s{default}: ICH WERD DEIN DRECKS KOPF ZERSTÜCKELN!", NpcStats_ReturnNpcName(npc.index, true), closest); + NPCTalkMessage(npc.index, "ICH WERD DEIN DRECKS KOPF ZERSTÜCKELN!", closest); } } } @@ -1533,19 +1539,19 @@ static Action OnTakeDamage(int victim, int &attacker, int &inflictor, float &dam { case 1: { - CPrintToChatAll("{crimson}%s{default}: Your own hubris has lead to this {yellow}%N{default}, prepare for complete {crimson}BLITZKRIEG.", NpcStats_ReturnNpcName(npc.index, true), closest); + NPCTalkMessage(npc.index, "Your own hubris has lead to this {yellow}%N{default}, prepare for complete {crimson}BLITZKRIEG.", closest); } case 2: { - CPrintToChatAll("{crimson}%s{default}: Thy end is {crimson} Now {yellow}%N{default}. Thou shall feel true {crimson}BLITZKRIEG.", NpcStats_ReturnNpcName(npc.index, true), closest); + NPCTalkMessage(npc.index, "Thy end is {crimson} Now {yellow}%N{default}. Thou shall feel true {crimson}BLITZKRIEG.", closest); } case 3: { - CPrintToChatAll("{crimson}%s{default}: You've really done it now...... {crimson} ITS TIME TO DIE. {yellow}%N {crimson}PREPARE FOR FULL BLITZKRIEG.", NpcStats_ReturnNpcName(npc.index, true), closest); + NPCTalkMessage(npc.index, "You've really done it now...... {crimson} ITS TIME TO DIE. {yellow}%N {crimson}PREPARE FOR FULL BLITZKRIEG.", closest); } case 4: { - CPrintToChatAll("{crimson}%s{default}: You cannot hope to stop {crimson}BLITZKRIEG{default} with such lackluster weaponry {yellow}%N{default}!", NpcStats_ReturnNpcName(npc.index, true), closest); + NPCTalkMessage(npc.index, "You cannot hope to stop {crimson}BLITZKRIEG{default} with such lackluster weaponry {yellow}%N{default}!", closest); } } } @@ -1572,15 +1578,15 @@ static Action OnTakeDamage(int victim, int &attacker, int &inflictor, float &dam { case 1: { - CPrintToChatAll("{crimson}%s{default}: {crimson}FRISS DAS!!!", NpcStats_ReturnNpcName(npc.index, true)); //Ego boost 9000% + NPCTalkMessage(npc.index, "{crimson}FRISS DAS!!!"); //Ego boost 9000% } case 2: { - CPrintToChatAll("{crimson}%s{default}: {crimson}KOMMSTE NOCH KLAR DIGGA???", NpcStats_ReturnNpcName(npc.index, true)); //Ego boost 9000% + NPCTalkMessage(npc.index, "{crimson}KOMMSTE NOCH KLAR DIGGA???"); //Ego boost 9000% } case 3: { - CPrintToChatAll("{crimson}%s{default}: {crimson}DIE TECHNOLOGIE DER EXPIDONSANS IST DIE BESTE!!!!!", NpcStats_ReturnNpcName(npc.index, true)); //Ego boost 9000% + NPCTalkMessage(npc.index, "{crimson}DIE TECHNOLOGIE DER EXPIDONSANS IST DIE BESTE!!!!!"); //Ego boost 9000% } } } @@ -1590,19 +1596,19 @@ static Action OnTakeDamage(int victim, int &attacker, int &inflictor, float &dam { case 1: { - CPrintToChatAll("{crimson}%s{default}: {crimson}Here's a fun fact, the atmosphere drastically lowers the potential of this attack... Guess what space lacks!", NpcStats_ReturnNpcName(npc.index, true)); //Ego boost 9000% + NPCTalkMessage(npc.index, "{crimson}Here's a fun fact, the atmosphere drastically lowers the potential of this attack... Guess what space lacks!"); //Ego boost 9000% } case 2: { - CPrintToChatAll("{crimson}%s{default}: {crimson}MUHAHAHAHAHAH!", NpcStats_ReturnNpcName(npc.index, true)); //Ego boost 9000% + NPCTalkMessage(npc.index, "{crimson}MUHAHAHAHAHAH!"); //Ego boost 9000% } case 3: { - CPrintToChatAll("{crimson}%s{default}: {crimson}THE {aqua}TRUE{default} POWER OF {azure}THE MOON, IN THE PALMS OF MY HANDS!", NpcStats_ReturnNpcName(npc.index, true)); //Ego boost 9000% + NPCTalkMessage(npc.index, "{crimson}THE {aqua}TRUE{default} POWER OF {azure}THE MOON, IN THE PALMS OF MY HANDS!"); //Ego boost 9000% } case 4: { - CPrintToChatAll("{crimson}%s{default}: {crimson}MY POWER TRANSCENDS ANYTHING YOU ORGANICS COULD EVEN COMPREHEND!", NpcStats_ReturnNpcName(npc.index, true)); //Ego boost 9000% + NPCTalkMessage(npc.index, "{crimson}MY POWER TRANSCENDS ANYTHING YOU ORGANICS COULD EVEN COMPREHEND!"); //Ego boost 9000% } } } @@ -1612,19 +1618,19 @@ static Action OnTakeDamage(int victim, int &attacker, int &inflictor, float &dam { case 1: { - CPrintToChatAll("{crimson}%s{default}: {crimson}I AM A GOD.", NpcStats_ReturnNpcName(npc.index, true)); //Ego boost 9000% + NPCTalkMessage(npc.index, "{crimson}I AM A GOD."); //Ego boost 9000% } case 2: { - CPrintToChatAll("{crimson}%s{default}: {crimson}THY PUNISHMENT IS DEATH.", NpcStats_ReturnNpcName(npc.index, true)); //Ego boost 9000% + NPCTalkMessage(npc.index, "{crimson}THY PUNISHMENT IS DEATH."); //Ego boost 9000% } case 3: { - CPrintToChatAll("{crimson}%s{default}: {crimson}THE POWER OF {azure}THE MOON{crimson}, IN THE PALMS OF MY HANDS.", NpcStats_ReturnNpcName(npc.index, true)); //Ego boost 9000% + NPCTalkMessage(npc.index, "{crimson}THE POWER OF {azure}THE MOON{crimson}, IN THE PALMS OF MY HANDS."); //Ego boost 9000% } case 4: { - CPrintToChatAll("{crimson}%s{default}: {crimson}RUNNING WILL ONLY DELAY THE INEVITABLE.", NpcStats_ReturnNpcName(npc.index, true)); //Ego boost 9000% + NPCTalkMessage(npc.index, "{crimson}RUNNING WILL ONLY DELAY THE INEVITABLE."); //Ego boost 9000% } } } @@ -1697,7 +1703,7 @@ static void Spawn_Allies(Blitzkrieg npc) float ang[3]; GetEntPropVector(npc.index, Prop_Data, "m_angRotation", ang); if(i_current_wave[npc.index]==30) { - CPrintToChatAll("{crimson}%s{default}: The minions have joined the battle.", NpcStats_ReturnNpcName(npc.index, true)); + NPCTalkMessage(npc.index, "The minions have joined the battle."); } int maxhealth = ReturnEntityMaxHealth(npc.index); int heck; @@ -1726,7 +1732,7 @@ static void Spawn_Allies(Blitzkrieg npc) } if(i_current_wave[npc.index]>=40) //Only spawns if the wave is 60 or beyond. { - CPrintToChatAll("{crimson}%s{default}: And now its those two's turn", NpcStats_ReturnNpcName(npc.index, true)); + NPCTalkMessage(npc.index, "And now its those two's turn"); maxhealth= (heck/5); //mid squishy spawn_index = NPC_CreateByName("npc_alt_donnerkrieg", npc.index, pos, ang, GetTeam(npc.index), "raid_ally"); @@ -1799,11 +1805,11 @@ static void NPC_Death(int entity) { case 1: { - CPrintToChatAll("{crimson}%s{default}: MISST!", NpcStats_ReturnNpcName(npc.index, true)); + NPCTalkMessage(npc.index, "MISST!"); } case 2: { - CPrintToChatAll("{crimson}%s{default}: ICH KRIEG DICH NOCH!", NpcStats_ReturnNpcName(npc.index, true)); + NPCTalkMessage(npc.index, "ICH KRIEG DICH NOCH!"); } } } @@ -1813,11 +1819,11 @@ static void NPC_Death(int entity) { case 1: { - CPrintToChatAll("{crimson}%s{default}: NOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO", NpcStats_ReturnNpcName(npc.index, true)); + NPCTalkMessage(npc.index, "NOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO"); } case 2: { - CPrintToChatAll("{crimson}%s{default}: error", NpcStats_ReturnNpcName(npc.index, true)); + NPCTalkMessage(npc.index, "error"); } } } @@ -1827,19 +1833,19 @@ static void NPC_Death(int entity) { case 1: { - CPrintToChatAll("{crimson}%s{default}: Next time you won't be this lucky, {yellow}%N{default}. {crimson}Next time.", NpcStats_ReturnNpcName(npc.index, true), closest); + NPCTalkMessage(npc.index, "Next time you won't be this lucky, {yellow}%N{default}. {crimson}Next time.", closest); } case 2: { - CPrintToChatAll("{crimson}%s{default}: Will you ever be this lucky again {yellow}%N{default}? Will{crimson} you?", NpcStats_ReturnNpcName(npc.index, true), closest); + NPCTalkMessage(npc.index, "Will you ever be this lucky again {yellow}%N{default}? Will{crimson} you?", closest); } case 3: { - CPrintToChatAll("{crimson}%s{default}: I'll be back for you {yellow}%N{default}.", NpcStats_ReturnNpcName(npc.index, true), closest); + NPCTalkMessage(npc.index, "I'll be back for you {yellow}%N{default}.", closest); } case 4: { - CPrintToChatAll("{crimson}%s{default}: I pity you {yellow}%N{crimson}. Because next time I'll come back stronger.", NpcStats_ReturnNpcName(npc.index, true), closest); + NPCTalkMessage(npc.index, "I pity you {yellow}%N{crimson}. Because next time I'll come back stronger.", closest); } } } @@ -1849,19 +1855,19 @@ static void NPC_Death(int entity) { case 1: { - CPrintToChatAll("{crimson}%s{default}: No..... this... cannot be. You win this time, {yellow}%N{crimson} this time.", NpcStats_ReturnNpcName(npc.index, true), closest); + NPCTalkMessage(npc.index, "No..... this... cannot be. You win this time, {yellow}%N{crimson} this time.", closest); } case 2: { - CPrintToChatAll("{crimson}%s{default}: It seems I've failed to best you {yellow}%N{default}.", NpcStats_ReturnNpcName(npc.index, true), closest); + NPCTalkMessage(npc.index, "It seems I've failed to best you {yellow}%N{default}.", closest); } case 3: { - CPrintToChatAll("{crimson}%s{default}: I'll be back for you {yellow}%N{default}.", NpcStats_ReturnNpcName(npc.index, true), closest); + NPCTalkMessage(npc.index, "I'll be back for you {yellow}%N{default}.", closest); } case 4: { - CPrintToChatAll("{crimson}%s{default}: HOW {yellow}%N{default}. How did you beat me before my army could arrive. {crimson}...Doesn't matter,{default} there's always a next time...", NpcStats_ReturnNpcName(npc.index, true), closest); + NPCTalkMessage(npc.index, "HOW {yellow}%N{default}. How did you beat me before my army could arrive. {crimson}...Doesn't matter,{default} there's always a next time...", closest); } } } diff --git a/addons/sourcemod/scripting/zombie_riot/npc/raidmode_bosses/npc_chaos_kahmlstein.sp b/addons/sourcemod/scripting/zombie_riot/npc/raidmode_bosses/npc_chaos_kahmlstein.sp index e6447bea5b..5c493c9527 100644 --- a/addons/sourcemod/scripting/zombie_riot/npc/raidmode_bosses/npc_chaos_kahmlstein.sp +++ b/addons/sourcemod/scripting/zombie_riot/npc/raidmode_bosses/npc_chaos_kahmlstein.sp @@ -422,7 +422,7 @@ methodmap ChaosKahmlstein < CClotBody bool TotalShits = StrContains(data, "no_music_blitz") != -1; if(!TotalShits) { - CPrintToChatAll("{darkblue}Kahmlstein{default}: Let's fight!"); + NPCTalkMessage(npc.index, "Let's fight!"); MusicEnum music; strcopy(music.Path, sizeof(music.Path), "#zombiesurvival/internius/chaos_reigns_loop.mp3"); music.Time = 240; @@ -434,7 +434,7 @@ methodmap ChaosKahmlstein < CClotBody } else { - CPrintToChatAll("{darkblue}Kahmlstein{default}: Ahahahahahah!!! LETS GET THIS PARTY STARTED!!!!!"); + NPCTalkMessage(npc.index, "Ahahahahahah!!! LETS GET THIS PARTY STARTED!!!!!"); f_MessengerSpeedUp[npc.index] *= 2.0; } } @@ -566,6 +566,11 @@ methodmap ChaosKahmlstein < CClotBody } } +static void NPCTalkMessage(int iNPC, const char[] message) +{ + PrintNPCMessageWithPrefixes(iNPC, "darkblue", message, .customName = "Kahmlstein", .customNameIsTranslated = true); +} + public void ChaosKahmlstein_ClotThink(int iNPC) { ChaosKahmlstein npc = view_as(iNPC); @@ -649,7 +654,7 @@ public void ChaosKahmlstein_ClotThink(int iNPC) npc.StopPathing(); i_khamlCutscene = 13; - CPrintToChatAll("{darkblue}Kahmlstein{default}: ENOUGH. I knew I should've stepped in from the start. {crimson} You've made a mistake of sending him out alone."); + NPCTalkMessage(npc.index, "ENOUGH. I knew I should've stepped in from the start. {crimson} You've made a mistake of sending him out alone."); MusicEnum music; strcopy(music.Path, sizeof(music.Path), "#zombiesurvival/internius/chaos_reigns_intro.mp3"); music.Time = 42; @@ -697,7 +702,7 @@ public void ChaosKahmlstein_ClotThink(int iNPC) strcopy(music.Artist, sizeof(music.Artist), "Grandpa Bard"); Music_SetRaidMusic(music, false); i_khamlCutscene = 12; - CPrintToChatAll("{darkblue}Kahmlstein{default}: {crimson}YOU{default}. Come closer and face me......{crimson}or are you too scared?"); + NPCTalkMessage(npc.index, "{crimson}YOU{default}. Come closer and face me......{crimson}or are you too scared?"); } } case 12: @@ -705,7 +710,7 @@ public void ChaosKahmlstein_ClotThink(int iNPC) if(TimeLeft < 37.0) { i_khamlCutscene = 11; - CPrintToChatAll("{darkblue}Kahmlstein{default}: All high and mighty against my cheap copy but all too scared of the real deal."); + NPCTalkMessage(npc.index, "All high and mighty against my cheap copy but all too scared of the real deal."); } } case 11: @@ -713,7 +718,7 @@ public void ChaosKahmlstein_ClotThink(int iNPC) if(TimeLeft < 33.0) { i_khamlCutscene = 10; - CPrintToChatAll("{darkblue}Kahmlstein{default}: You killed my men, {crimson}YOU KILLED MY PUPPY{default} AND NOW YOU WON'T EVEN LOOK AT ME?!"); + NPCTalkMessage(npc.index, "You killed my men, {crimson}YOU KILLED MY PUPPY{default} AND NOW YOU WON'T EVEN LOOK AT ME?!"); } } case 10: @@ -721,7 +726,7 @@ public void ChaosKahmlstein_ClotThink(int iNPC) if(TimeLeft < 30.0) { i_khamlCutscene = 9; - CPrintToChatAll("{darkblue}Kahmlstein{default}: I will reduce everything to ash and from that ash..."); + NPCTalkMessage(npc.index, "I will reduce everything to ash and from that ash..."); } } case 9: @@ -729,7 +734,7 @@ public void ChaosKahmlstein_ClotThink(int iNPC) if(TimeLeft < 26.0) { i_khamlCutscene = 8; - CPrintToChatAll("{darkblue}Kahmlstein{default}: A NEW WORLD WILL BE BORN!! A WORLD FREE FROM THOSE YOU COMMAND YOU!"); + NPCTalkMessage(npc.index, "A NEW WORLD WILL BE BORN!! A WORLD FREE FROM THOSE YOU COMMAND YOU!"); } } case 8: @@ -737,7 +742,7 @@ public void ChaosKahmlstein_ClotThink(int iNPC) if(TimeLeft < 22.0) { i_khamlCutscene = 7; - CPrintToChatAll("{darkblue}Kahmlstein{default}: A WORLD PURGED OF THESE FUCKING PARASITES CALLED {crimson}POLITICIANS{default}! FREE FROM GOVERNMENTS!"); + NPCTalkMessage(npc.index, "A WORLD PURGED OF THESE FUCKING PARASITES CALLED {crimson}POLITICIANS{default}! FREE FROM GOVERNMENTS!"); } } case 7: @@ -745,7 +750,7 @@ public void ChaosKahmlstein_ClotThink(int iNPC) if(TimeLeft < 18.0) { i_khamlCutscene = 6; - CPrintToChatAll("{darkblue}Kahmlstein{default}: AN IDEAL WORLD, A PARADISE!!! SO STOP RESISTING AND JOIN ME!!"); + NPCTalkMessage(npc.index, "AN IDEAL WORLD, A PARADISE!!! SO STOP RESISTING AND JOIN ME!!"); } } case 6: @@ -753,7 +758,7 @@ public void ChaosKahmlstein_ClotThink(int iNPC) if(TimeLeft < 12.0) { i_khamlCutscene = 5; - CPrintToChatAll("{darkblue}Kahmlstein{default}: ....no, this new world would never tolerate you anyway..."); + NPCTalkMessage(npc.index, "....no, this new world would never tolerate you anyway..."); } } case 5: @@ -761,7 +766,7 @@ public void ChaosKahmlstein_ClotThink(int iNPC) if(TimeLeft < 9.0) { i_khamlCutscene = 4; - CPrintToChatAll("{darkblue}Kahmlstein{default}: Because you know what I hate more than governments and politicians? {crimson}Violence against animals."); + NPCTalkMessage(npc.index, "Because you know what I hate more than governments and politicians? {crimson}Violence against animals."); } } case 4: @@ -769,7 +774,7 @@ public void ChaosKahmlstein_ClotThink(int iNPC) if(TimeLeft < 4.0) { i_khamlCutscene = 3; - CPrintToChatAll("{darkblue}Kahmlstein{default}: {crimson}You murdered all those cats in cold blood and now I'm going to do the same to you."); + NPCTalkMessage(npc.index, "{crimson}You murdered all those cats in cold blood and now I'm going to do the same to you."); } } case 3: @@ -777,7 +782,7 @@ public void ChaosKahmlstein_ClotThink(int iNPC) if(TimeLeft < 2.0) { i_khamlCutscene = 2; - CPrintToChatAll("{darkblue}Kahmlstein{default}: I will avenge you my dear companion. YOUR DEATH WILL NOT BE IN VAIN."); + NPCTalkMessage(npc.index, "I will avenge you my dear companion. YOUR DEATH WILL NOT BE IN VAIN."); } } case 2: @@ -785,7 +790,7 @@ public void ChaosKahmlstein_ClotThink(int iNPC) if(TimeLeft < 0.0) { i_khamlCutscene = 0; - CPrintToChatAll("{darkblue}Kahmlstein{default}: ...Let's begin."); + NPCTalkMessage(npc.index, "...Let's begin."); RaidBossActive = EntIndexToEntRef(npc.index); RaidAllowsBuildings = false; } @@ -821,7 +826,7 @@ public void ChaosKahmlstein_ClotThink(int iNPC) } i_khamlCutscene = 1; - CPrintToChatAll("{darkblue}Kahmlstein{default}: You know what, I'm bored as hell. I'll help you out."); + NPCTalkMessage(npc.index, "You know what, I'm bored as hell. I'll help you out."); } } case 1: @@ -869,19 +874,19 @@ public void ChaosKahmlstein_ClotThink(int iNPC) { case 0: { - CPrintToChatAll("{darkblue}Kahmlstein{default}: I am going to shatter your entire skeleton into a thousand pieces."); + NPCTalkMessage(npc.index, "I am going to shatter your entire skeleton into a thousand pieces."); } case 1: { - CPrintToChatAll("{darkblue}Kahmlstein{default}: You're all alone against Chaos now."); + NPCTalkMessage(npc.index, "You're all alone against Chaos now."); } case 2: { - CPrintToChatAll("{darkblue}Kahmlstein{default}: One last training dummy."); + NPCTalkMessage(npc.index, "One last training dummy."); } case 3: { - CPrintToChatAll("{darkblue}Kahmlstein{default}: How did {darkblue}Purge{default} fail to deal with the likes of {crimson}YOU."); + NPCTalkMessage(npc.index, "How did {darkblue}Purge{default} fail to deal with the likes of {crimson}YOU."); } } } @@ -894,21 +899,21 @@ public void ChaosKahmlstein_ClotThink(int iNPC) i_SpeedUpTime[npc.index] = 1; f_MessengerSpeedUp[npc.index] *= 1.15; if(i_RaidGrantExtra[npc.index] < 2) - CPrintToChatAll("{darkblue}Kahmlstein{default}: This fight is starting to bore me. Let's turn things up a notch."); + NPCTalkMessage(npc.index, "This fight is starting to bore me. Let's turn things up a notch."); } else if(RaidModeTimeLeft < 130.0 && i_SpeedUpTime[npc.index] == 1) { i_SpeedUpTime[npc.index] = 2; f_MessengerSpeedUp[npc.index] *= 1.125; if(i_RaidGrantExtra[npc.index] < 2) - CPrintToChatAll("{darkblue}Kahmlstein{default}: Even my dead grandma is more entertaining than this."); + NPCTalkMessage(npc.index, "Even my dead grandma is more entertaining than this."); } else if(RaidModeTimeLeft < 70 && i_SpeedUpTime[npc.index] == 2) { i_SpeedUpTime[npc.index] = 3; f_MessengerSpeedUp[npc.index] *= 1.05; if(i_RaidGrantExtra[npc.index] < 2) - CPrintToChatAll("{darkblue}Kahmlstein{default}:{crimson} THERE'S NO STOPPING KAHMLSTEIN."); + NPCTalkMessage(npc.index, "{crimson}THERE'S NO STOPPING KAHMLSTEIN."); } else if(RaidModeTimeLeft < 0.0 && i_SpeedUpTime[npc.index] == 3) { @@ -916,7 +921,7 @@ public void ChaosKahmlstein_ClotThink(int iNPC) f_MessengerSpeedUp[npc.index] *= 3.0; npc.m_flSpeed = 600.0; if(i_RaidGrantExtra[npc.index] < 2) - CPrintToChatAll("{darkblue}Kahmlstein{default}:{crimson} YAAAAAAAAAAAAAAAAAAAAAAA."); + NPCTalkMessage(npc.index, "{crimson}YAAAAAAAAAAAAAAAAAAAAAAA."); } if(npc.m_blPlayHurtAnimation) @@ -1342,7 +1347,7 @@ public Action ChaosKahmlstein_OnTakeDamage(int victim, int &attacker, int &infli RaidModeTime += 60.0; f_TalkDelayCheck = GetGameTime() + 0.0; ReviveAll(true); - CPrintToChatAll("{darkblue}Kahmlstein{default}: Ughhh... My head"); + NPCTalkMessage(npc.index, "Ughhh... My head"); Music_SetRaidMusicSimple("vo/null.mp3", 60, false, 0.5); return Plugin_Handled; } @@ -1360,7 +1365,7 @@ public Action ChaosKahmlstein_OnTakeDamage(int victim, int &attacker, int &infli if(i_CustomWeaponEquipLogic[weapon] == WEAPON_KAHMLFIST) { b_khamlWeaponRage[npc.index] = true; - CPrintToChatAll("{darkblue}Kahmlstein{default}: You dare to use my OWN fists against ME? Man fuck you."); + NPCTalkMessage(npc.index, "You dare to use my OWN fists against ME? Man fuck you."); } } } @@ -1405,7 +1410,7 @@ public void ChaosKahmlstein_NPCDeath(int entity) if(i_RaidGrantExtra[npc.index] != 1) { - CPrintToChatAll("{darkblue}Kahmlstein{default}: That was good, next time I'll be sure to actually try. Now factor in the chance that I lied."); + NPCTalkMessage(npc.index, "That was good, next time I'll be sure to actually try. Now factor in the chance that I lied."); } } /* @@ -1695,19 +1700,19 @@ public void ChaosKahmlstein_OnTakeDamagePost(int victim, int attacker, int infli { case 0: { - CPrintToChatAll("{darkblue}Kahmlstein{default}: Are you even trying?"); + NPCTalkMessage(npc.index, "Are you even trying?"); } case 1: { - CPrintToChatAll("{darkblue}Kahmlstein{default}: Oh noooooooo. I'm so scaaaaaaaared."); + NPCTalkMessage(npc.index, "Oh noooooooo. I'm so scaaaaaaaared."); } case 2: { - CPrintToChatAll("{darkblue}Kahmlstein{default}: Didn't even leave behind a scratch."); + NPCTalkMessage(npc.index, "Didn't even leave behind a scratch."); } case 3: { - CPrintToChatAll("{darkblue}Kahmlstein{default}: Keep running. I'll always be faster."); + NPCTalkMessage(npc.index, "Keep running. I'll always be faster."); } } ApplyStatusEffect(npc.index, npc.index, "Very Defensive Backup", 3.5); @@ -1728,23 +1733,23 @@ public void ChaosKahmlstein_OnTakeDamagePost(int victim, int attacker, int infli { case 0: { - CPrintToChatAll("{darkblue}Kahmlstein{default}: TRY YOUR BEST. IT WILL NEVER BE ENOUGH!"); + NPCTalkMessage(npc.index, "TRY YOUR BEST. IT WILL NEVER BE ENOUGH!"); } case 1: { - CPrintToChatAll("{darkblue}Kahmlstein{default}: WHY DO YOU PERSIST?"); + NPCTalkMessage(npc.index, "WHY DO YOU PERSIST?"); } case 2: { - CPrintToChatAll("{darkblue}Kahmlstein{default}: ENOUGH."); + NPCTalkMessage(npc.index, "ENOUGH."); } case 3: { - CPrintToChatAll("{darkblue}Kahmlstein{default}: NO ONE IS MY EQUAL."); + NPCTalkMessage(npc.index, "NO ONE IS MY EQUAL."); } case 4: { - CPrintToChatAll("{darkblue}Kahmlstein{default}: KNEEL BEFORE ME."); + NPCTalkMessage(npc.index, "KNEEL BEFORE ME."); } } RaidModeScaling *= 1.2; @@ -2070,15 +2075,15 @@ public void ChaosKahmlstein_Win(int entity) { case 0: { - CPrintToChatAll("{darkblue}Kahmlstein{default}: You are {crimson}NOTHING."); + NPCTalkMessage(entity, "You are {crimson}NOTHING."); } case 1: { - CPrintToChatAll("{darkblue}Kahmlstein{default}: All fall before Kahmlstein."); + NPCTalkMessage(entity, "All fall before Kahmlstein."); } case 2: { - CPrintToChatAll("{darkblue}Kahmlstein{default}: {darkblue}Chaos{default} reigns supreme."); + NPCTalkMessage(entity, "{darkblue}Chaos{default} reigns supreme."); } } } @@ -2111,64 +2116,64 @@ int ChaosKahmlsteinTalk(int iNPC) { f_TalkDelayCheck = GetGameTime() + 2.3; npc.SetPlaybackRate(0.5); - CPrintToChatAll("{darkblue}Kahmlstein{default}: I feel like a great weight has been lifted off my shoulders."); + NPCTalkMessage(npc.index, "I feel like a great weight has been lifted off my shoulders."); i_TalkDelayCheck += 1; } case 2: { npc.m_bisWalking = false; npc.SetActivity("ACT_MP_STAND_MELEE"); - CPrintToChatAll("{darkblue}Kahmlstein{default}: The Chaos, seems to have left me completely."); + NPCTalkMessage(npc.index, "The Chaos, seems to have left me completely."); i_TalkDelayCheck += 1; } case 3: { - CPrintToChatAll("{darkblue}Kahmlstein{default}: ...Yet I still hold all the memories made under Its influence."); + NPCTalkMessage(npc.index, "...Yet I still hold all the memories made under Its influence."); i_TalkDelayCheck += 1; } case 4: { - CPrintToChatAll("{darkblue}Kahmlstein{default}: There's no turning back now. What's done is done."); + NPCTalkMessage(npc.index, "There's no turning back now. What's done is done."); i_TalkDelayCheck += 1; } case 5: { - CPrintToChatAll("{darkblue}Kahmlstein{default}: Researching Chaos was my greatest mistake."); + NPCTalkMessage(npc.index, "Researching Chaos was my greatest mistake."); i_TalkDelayCheck += 1; } case 6: { - CPrintToChatAll("{darkblue}Kahmlstein{default}: It destroyed my sanity and made me into a perfect host."); + NPCTalkMessage(npc.index, "It destroyed my sanity and made me into a perfect host."); i_TalkDelayCheck += 1; } case 7: { - CPrintToChatAll("{darkblue}Kahmlstein{default}: Curiosity killed the cat as they say."); + NPCTalkMessage(npc.index, "Curiosity killed the cat as they say."); i_TalkDelayCheck += 1; } case 8: { - CPrintToChatAll("{darkblue}Kahmlstein{default}: Heed my warning."); + NPCTalkMessage(npc.index, "Heed my warning."); i_TalkDelayCheck += 1; } case 9: { - CPrintToChatAll("{darkblue}Kahmlstein{default}: Stay away from all matters involving Chaos or else you will be next."); + NPCTalkMessage(npc.index, "Stay away from all matters involving Chaos or else you will be next."); i_TalkDelayCheck += 1; } case 10: { - CPrintToChatAll("{darkblue}Kahmlstein{default}: Should you wish to combat Chaos directly, always remember."); + NPCTalkMessage(npc.index, "Should you wish to combat Chaos directly, always remember."); i_TalkDelayCheck += 1; } case 11: { - CPrintToChatAll("{darkblue}Kahmlstein{default}: To stay true to yourself and your ideals."); + NPCTalkMessage(npc.index, "To stay true to yourself and your ideals."); i_TalkDelayCheck += 1; } case 12: { - CPrintToChatAll("{darkblue}Kahmlstein{default}: Here, take this. It's safer in your hands than mine."); + NPCTalkMessage(npc.index, "Here, take this. It's safer in your hands than mine."); i_TalkDelayCheck += 1; for (int client = 1; client <= MaxClients; client++) { @@ -2181,7 +2186,7 @@ int ChaosKahmlsteinTalk(int iNPC) } case 13: { - CPrintToChatAll("{darkblue}Kahmlstein{default}: As for me, I have...{crimson}some unfinished business...{default} to attend to."); + NPCTalkMessage(npc.index, "As for me, I have...{crimson}some unfinished business...{default} to attend to."); i_TalkDelayCheck += 1; npc.m_bisWalking = false; npc.AddActivityViaSequence("taunt_cyoa_PDA_intro"); diff --git a/addons/sourcemod/scripting/zombie_riot/npc/raidmode_bosses/npc_god_alaxios.sp b/addons/sourcemod/scripting/zombie_riot/npc/raidmode_bosses/npc_god_alaxios.sp index bf9412d4ff..9a34ebcd23 100644 --- a/addons/sourcemod/scripting/zombie_riot/npc/raidmode_bosses/npc_god_alaxios.sp +++ b/addons/sourcemod/scripting/zombie_riot/npc/raidmode_bosses/npc_god_alaxios.sp @@ -513,6 +513,10 @@ methodmap GodAlaxios < CClotBody } } +static void NPCTalkMessage(int iNPC, const char[] message) +{ + PrintNPCMessageWithPrefixes(iNPC, "lightblue", message); +} public void GodAlaxios_ClotThink(int iNPC) { @@ -670,15 +674,15 @@ public void GodAlaxios_ClotThink(int iNPC) { case 0: { - CPrintToChatAll("{lightblue}God Alaxios{crimson}: STOP BEING SO WEAK, HELP ME!!!!!"); + NPCTalkMessage(npc.index, "{crimson}STOP BEING SO WEAK, HELP ME!!!!!"); } case 1: { - CPrintToChatAll("{lightblue}God Alaxios{crimson}: I'M UNDER CONTROL, HELP ME....."); + NPCTalkMessage(npc.index, "{crimson}I'M UNDER CONTROL, HELP ME....."); } case 3: { - CPrintToChatAll("{lightblue}God Alaxios{crimson}: THIS THING IS TOO MUCH, HELP!!!!!!!!!"); + NPCTalkMessage(npc.index, "{crimson}THIS THING IS TOO MUCH, HELP!!!!!!!!!"); } } } @@ -688,15 +692,15 @@ public void GodAlaxios_ClotThink(int iNPC) { case 0: { - CPrintToChatAll("{lightblue}God Alaxios{default}: You have no chance alone!"); + NPCTalkMessage(npc.index, "You have no chance alone!"); } case 1: { - CPrintToChatAll("{lightblue}God Alaxios{default}: Your weaponry frails in comparison to Atlantis!!"); + NPCTalkMessage(npc.index, "Your weaponry frails in comparison to Atlantis!!"); } case 3: { - CPrintToChatAll("{lightblue}God Alaxios{default}: Consider surrendering?!"); + NPCTalkMessage(npc.index, "Consider surrendering?!"); } } } @@ -720,7 +724,7 @@ public void GodAlaxios_ClotThink(int iNPC) SetEntityCollisionGroup(baseboss_index, 24); } } - CPrintToChatAll("{lightblue}God Alaxios{default}: No.. No No!! They are coming, prepare to fight together NOW!!!"); + NPCTalkMessage(npc.index, "No.. No No!! They are coming, prepare to fight together NOW!!!"); RaidBossActive = INVALID_ENT_REFERENCE; for(int i; i<32; i++) { @@ -833,7 +837,7 @@ public void GodAlaxios_ClotThink(int iNPC) TF2_StunPlayer(client, 0.5, 0.5, TF_STUNFLAGS_LOSERSTATE); } } - if(AlaxiosForceTalk()) + if(AlaxiosForceTalk(npc.index)) { npc.m_bDissapearOnDeath = true; RequestFrame(KillNpc, EntIndexToEntRef(npc.index)); @@ -1166,7 +1170,7 @@ public Action GodAlaxios_OnTakeDamage(int victim, int &attacker, int &inflictor, damage = 0.0; RaidModeTime += 120.0; f_TalkDelayCheck = GetGameTime() + 4.0; - CPrintToChatAll("{lightblue}God Alaxios{crimson}: EEEEEEEEEEEEEEENOOOOOOOOUGH!!!"); + NPCTalkMessage(npc.index, "{crimson}EEEEEEEEEEEEEEENOOOOOOOOUGH!!!"); return Plugin_Handled; } } @@ -1440,25 +1444,25 @@ public void GodAlaxios_NPCDeath(int entity) { case 0: { - CPrintToChatAll("{lightblue}God Alaxios{default}: I have failed Atlantis..."); + NPCTalkMessage(npc.index, "I have failed Atlantis..."); } case 1: { - CPrintToChatAll("{lightblue}God Alaxios{default}: How was my army defeated..?"); + NPCTalkMessage(npc.index, "How was my army defeated..?"); } case 2: { - CPrintToChatAll("{lightblue}God Alaxios{default}: You dont know what you are doing!"); + NPCTalkMessage(npc.index, "You dont know what you are doing!"); } case 3: { - CPrintToChatAll("{lightblue}God Alaxios{default}: We should be fighting together, not against each other, the {blue}sea{default} will be your doom..."); + NPCTalkMessage(npc.index, "We should be fighting together, not against each other, the {blue}sea{default} will be your doom..."); } } } else { - CPrintToChatAll("{lightblue}God Alaxios{default}: I'm.. I'm free..?"); + NPCTalkMessage(npc.index, "I'm.. I'm free..?"); CPrintToChatAll("{lightblue}God Alaxios instantly leaves the battlefield... you couldn't even trace him."); } } @@ -2190,19 +2194,19 @@ void AlaxiosSayWords(int entity) { case 0: { - CPrintToChatAll("{lightblue}God Alaxios{default}: You don't know the dangers you're getting yourself into fighting me and my army at the same time!"); + NPCTalkMessage(entity, "You don't know the dangers you're getting yourself into fighting me and my army at the same time!"); } case 1: { - CPrintToChatAll("{lightblue}God Alaxios{default}: My army will always help me back up!"); + NPCTalkMessage(entity, "My army will always help me back up!"); } case 2: { - CPrintToChatAll("{lightblue}God Alaxios{default}: Me and my army, as one, will never be defeated!"); + NPCTalkMessage(entity, "Me and my army, as one, will never be defeated!"); } case 3: { - CPrintToChatAll("{lightblue}God Alaxios{default}: Together for Atlantis! As one and for all!"); + NPCTalkMessage(entity, "Together for Atlantis! As one and for all!"); } } } @@ -2241,26 +2245,26 @@ void AlaxiosSayWordsAngry(int entity) { case 0: { - CPrintToChatAll("{lightblue}God Alaxios{default}: {crimson}ISVOLI!!!! FOR THE PEOPLE!!!!!!!!!!"); + NPCTalkMessage(entity, "{crimson}ISVOLI!!!! FOR THE PEOPLE!!!!!!!!!!"); } case 1: { - CPrintToChatAll("{lightblue}God Alaxios{default}: {crimson}ISVOLI!!!! FOR ALL THAT IS FORSAKEN!!!!!!!"); + NPCTalkMessage(entity, "{crimson}ISVOLI!!!! FOR ALL THAT IS FORSAKEN!!!!!!!"); } case 2: { - CPrintToChatAll("{lightblue}God Alaxios{default}: {crimson}ISVOLI!!!! FOR THE FUTURE!!!!!!!"); + NPCTalkMessage(entity, "{crimson}ISVOLI!!!! FOR THE FUTURE!!!!!!!"); } case 3: { - CPrintToChatAll("{lightblue}God Alaxios{default}: {crimson}ISVOLI!!!! FOR ATLANTIS!!!!!!!!!"); + NPCTalkMessage(entity, "{crimson}ISVOLI!!!! FOR ATLANTIS!!!!!!!!!"); } } } } -bool AlaxiosForceTalk() +bool AlaxiosForceTalk(int entity) { if(i_TalkDelayCheck == 11) { @@ -2275,52 +2279,52 @@ bool AlaxiosForceTalk() case 0: { ReviveAll(true); - CPrintToChatAll("{lightblue}God Alaxios{default}: I will NOT tolerate this dispute any longer!"); + NPCTalkMessage(entity, "I will NOT tolerate this dispute any longer!"); i_TalkDelayCheck += 1; } case 1: { - CPrintToChatAll("{lightblue}God Alaxios{default}: You have to understand, WE have a {blue}common enemy{default}, and that is {blue}Seaborn{default}."); + NPCTalkMessage(entity, "You have to understand, WE have a {blue}common enemy{default}, and that is {blue}Seaborn{default}."); i_TalkDelayCheck += 1; } case 2: { - CPrintToChatAll("{lightblue}God Alaxios{default}: More wars with each other means more opportunity for them to rise."); + NPCTalkMessage(entity, "More wars with each other means more opportunity for them to rise."); i_TalkDelayCheck += 1; } case 3: { - CPrintToChatAll("{lightblue}God Alaxios{default}: And whilst I am immortal and my army unkillable, we are not incorruptible."); + NPCTalkMessage(entity, "And whilst I am immortal and my army unkillable, we are not incorruptible."); i_TalkDelayCheck += 1; } case 4: { - CPrintToChatAll("{lightblue}God Alaxios{default}: However, I saw your prowess and your abilities."); + NPCTalkMessage(entity, "However, I saw your prowess and your abilities."); i_TalkDelayCheck += 1; } case 5: { - CPrintToChatAll("{lightblue}God Alaxios{default}: You can wield {blue}Seaborn's{default} weapons without succumbing to their corruption, from what I can see at least..."); + NPCTalkMessage(entity, "You can wield {blue}Seaborn's{default} weapons without succumbing to their corruption, from what I can see at least..."); i_TalkDelayCheck += 1; } case 6: { - CPrintToChatAll("{lightblue}God Alaxios{default}: As such, we need your aid. YOU are our greatest opportunity to cleanse this world of watery horrors."); + NPCTalkMessage(entity, "As such, we need your aid. YOU are our greatest opportunity to cleanse this world of watery horrors."); i_TalkDelayCheck += 1; } case 7: { - CPrintToChatAll("{lightblue}God Alaxios{default}: Of course, we will support you as much as we can. As one, we will thrive once again."); + NPCTalkMessage(entity, "Of course, we will support you as much as we can. As one, we will thrive once again."); i_TalkDelayCheck += 1; } case 8: { - CPrintToChatAll("{lightblue}God Alaxios{default}: When you invade them, we will make sure that their main forces are distracted by us."); + NPCTalkMessage(entity, "When you invade them, we will make sure that their main forces are distracted by us."); i_TalkDelayCheck += 1; } case 9: { - CPrintToChatAll("{lightblue}God Alaxios{default}: ALL HEIL THE MERCENARIES!! {crimson} FOR ATLANTISSSSS!!!!!!!!!!!!!!."); + NPCTalkMessage(entity, "ALL HAIL THE MERCENARIES!! {crimson}FOR ATLANTISSSSS!!!!!!!!!!!!!!."); i_TalkDelayCheck = 11; for (int client = 1; client <= MaxClients; client++) { @@ -2354,19 +2358,19 @@ public void Raidmode_Alaxios_Win(int entity) { case 0: { - CPrintToChatAll("{lightblue}God Alaxios{default}: Atlantis will never fall!"); + NPCTalkMessage(npc.index, "Atlantis will never fall!"); } case 1: { - CPrintToChatAll("{lightblue}God Alaxios{default}: I still have to take care of the {blue}deep sea{default}..."); + NPCTalkMessage(npc.index, "I still have to take care of the {blue}deep sea{default}..."); } case 2: { - CPrintToChatAll("{lightblue}God Alaxios{default}: Threaten our livelyhood and you pay!"); + NPCTalkMessage(npc.index, "Threaten our livelyhood and you pay!"); } case 3: { - CPrintToChatAll("{lightblue}God Alaxios{default}: I have to inform {blue}Sensal{default} about this."); + NPCTalkMessage(npc.index, "I have to inform {blue}Sensal{default} about this."); } } } diff --git a/addons/sourcemod/scripting/zombie_riot/npc/raidmode_bosses/npc_sensal.sp b/addons/sourcemod/scripting/zombie_riot/npc/raidmode_bosses/npc_sensal.sp index 6a57bf090a..c5a002704f 100644 --- a/addons/sourcemod/scripting/zombie_riot/npc/raidmode_bosses/npc_sensal.sp +++ b/addons/sourcemod/scripting/zombie_riot/npc/raidmode_bosses/npc_sensal.sp @@ -341,7 +341,7 @@ methodmap Sensal < CClotBody if(tripple) { RemoveAllDamageAddition(); - CPrintToChatAll("{blue}Sensal{default}: This is your final challange, beat all 3 of us at once, Fear the might of {gold}Expidonsa{default}!"); + NPCTalkMessage(npc.index, "This is your final challange, beat all 3 of us at once, Fear the might of {gold}Expidonsa{default}!"); GiveOneRevive(true); } for(int client_check=1; client_check<=MaxClients; client_check++) @@ -486,6 +486,11 @@ methodmap Sensal < CClotBody } } +static void NPCTalkMessage(int entity, const char[] message, bool translated = false) +{ + PrintNPCMessageWithPrefixes(entity, "blue", message, translated); +} + static void Internal_ClotThink(int iNPC) { Sensal npc = view_as(iNPC); @@ -565,11 +570,11 @@ static void Internal_ClotThink(int iNPC) { case 0: { - NPCPritToChat(npc.index, "{blue}", "Castellan_And_Sensal_Talk-1", false, false); + NPCTalkMessage(npc.index, "Castellan_And_Sensal_Talk-1", true); } case 1: { - NPCPritToChat(npc.index, "{blue}", "Castellan_And_Sensal_Talk-2", false, false); + NPCTalkMessage(npc.index, "Castellan_And_Sensal_Talk-2", true); } case 2: { @@ -577,11 +582,11 @@ static void Internal_ClotThink(int iNPC) } case 3: { - NPCPritToChat(npc.index, "{blue}", "Castellan_And_Sensal_Talk-4", false, false); + NPCTalkMessage(npc.index, "Castellan_And_Sensal_Talk-4", true); } case 4: { - NPCPritToChat(npc.index, "{blue}", "Castellan_And_Sensal_Talk-5", false, false); + NPCTalkMessage(npc.index, "Castellan_And_Sensal_Talk-5", true); } case 5: { @@ -589,7 +594,7 @@ static void Internal_ClotThink(int iNPC) } case 6: { - NPCPritToChat(npc.index, "{blue}", "Castellan_And_Sensal_Talk-7", false, false); + NPCTalkMessage(npc.index, "Castellan_And_Sensal_Talk-7", true); } case 7: { @@ -597,7 +602,7 @@ static void Internal_ClotThink(int iNPC) } case 8: { - NPCPritToChat(npc.index, "{blue}", "Castellan_And_Sensal_Talk-9", false, false); + NPCTalkMessage(npc.index, "Castellan_And_Sensal_Talk-9", true); } case 9: { @@ -636,15 +641,15 @@ static void Internal_ClotThink(int iNPC) { case 0: { - CPrintToChatAll("{blue}Sensal{default}: You are the last one."); + NPCTalkMessage(npc.index, "You are the last one."); } case 1: { - CPrintToChatAll("{blue}Sensal{default}: None of you criminals are of any importance to {gold}Expidonsa{default}."); + NPCTalkMessage(npc.index, "None of you criminals are of any importance to {gold}Expidonsa{default}."); } case 2: { - CPrintToChatAll("{blue}Sensal{default}: All your friends are gone. Submit to {gold}Expidonsan{default} might."); + NPCTalkMessage(npc.index, "All your friends are gone. Submit to {gold}Expidonsan{default} might."); } } } @@ -656,7 +661,7 @@ static void Internal_ClotThink(int iNPC) npc.SetCycle(0.01); func_NPCThink[npc.index] = INVALID_FUNCTION; - CPrintToChatAll("{blue}Sensal{default}: Refusing to collaborate or even reason with {gold}Expidonsa{default} will result in termination."); + NPCTalkMessage(npc.index, "Refusing to collaborate or even reason with {gold}Expidonsa{default} will result in termination."); return; } if(RaidModeTime < GetGameTime()) @@ -670,7 +675,7 @@ static void Internal_ClotThink(int iNPC) npc.SetCycle(0.01); RaidBossActive = INVALID_ENT_REFERENCE; func_NPCThink[npc.index] = INVALID_FUNCTION; - CPrintToChatAll("{blue}Sensal{default}: You are under arrest. The Expidonsan elite forces will take you now."); + NPCTalkMessage(npc.index, "You are under arrest. The Expidonsan elite forces will take you now."); for(int i; i<32; i++) { float pos[3]; GetEntPropVector(npc.index, Prop_Data, "m_vecAbsOrigin", pos); @@ -808,7 +813,7 @@ static Action Internal_OnTakeDamage(int victim, int &attacker, int &inflictor, f RemoveNpcFromEnemyList(npc.index); GiveProgressDelay(20.0); - CPrintToChatAll("{blue}Sensal{default}: You keep talking about Silvester and Waldch, what is the meaning of this?"); + NPCTalkMessage(npc.index, "You keep talking about Silvester and Waldch, what is the meaning of this?"); damage = 0.0; //So he doesnt get oneshot somehow, atleast once. return Plugin_Handled; @@ -865,9 +870,9 @@ static void Internal_NPCDeath(int entity) if(i_RaidGrantExtra[npc.index] == 50) { if(XenoExtraLogic()) - CPrintToChatAll("{blue}Sensal{default}: This area is restricted for all of you."); + NPCTalkMessage(npc.index, "This area is restricted for all of you."); else - CPrintToChatAll("{blue}Sensal{default}: You all are coming with me."); + NPCTalkMessage(npc.index, "You all are coming with me."); return; } @@ -882,19 +887,19 @@ static void Internal_NPCDeath(int entity) { case 0: { - CPrintToChatAll("{blue}Sensal{default}: Your actions against a fellow {gold}Expidonsan{default} will not be forgiven, I will be back with reinforcements."); + NPCTalkMessage(npc.index, "Your actions against a fellow {gold}Expidonsan{default} will not be forgiven, I will be back with reinforcements."); } case 1: { - CPrintToChatAll("{blue}Sensal{default}: Your time will come when you pay for going against the law of {gold}Expidonsa{default}."); + NPCTalkMessage(npc.index, "Your time will come when you pay for going against the law of {gold}Expidonsa{default}."); } case 2: { - CPrintToChatAll("{blue}Sensal{default}: {gold}Expidonsa{default} is beyond your level of understanding."); + NPCTalkMessage(npc.index, "{gold}Expidonsa{default} is beyond your level of understanding."); } case 3: { - CPrintToChatAll("{blue}Sensal{default}: You do not know what you are getting yourself into."); + NPCTalkMessage(npc.index, "You do not know what you are getting yourself into."); } } @@ -1711,7 +1716,7 @@ bool SensalTalkPostWin(Sensal npc) } if(GetGameTime() > f_TimeSinceHasBeenHurt[npc.index]) { - CPrintToChatAll("{blue}Sensal{default}: We apologize for the sudden attack. We didn't know, take this as an apology."); + NPCTalkMessage(npc.index, "We apologize for the sudden attack. We didn't know, take this as an apology."); RequestFrame(KillNpc, EntIndexToEntRef(npc.index)); BlockLoseSay = true; @@ -1727,22 +1732,22 @@ bool SensalTalkPostWin(Sensal npc) else if(GetGameTime() + 5.0 > f_TimeSinceHasBeenHurt[npc.index] && i_SaidLineAlready[npc.index] < 4) { i_SaidLineAlready[npc.index] = 4; - CPrintToChatAll("{blue}Sensal{default}: But I see that this was to protect you guys and yet you were able to destroy {green}Calmaticus."); + NPCTalkMessage(npc.index, "But I see that this was to protect you guys and yet you were able to destroy {green}Calmaticus."); } else if(GetGameTime() + 10.0 > f_TimeSinceHasBeenHurt[npc.index] && i_SaidLineAlready[npc.index] < 3) { i_SaidLineAlready[npc.index] = 3; - CPrintToChatAll("{blue}Sensal{default}: We got sent to rescue him and we saw you attacking him."); + NPCTalkMessage(npc.index, "We got sent to rescue him and we saw you attacking him."); } else if(GetGameTime() + 13.0 > f_TimeSinceHasBeenHurt[npc.index] && i_SaidLineAlready[npc.index] < 2) { i_SaidLineAlready[npc.index] = 2; - CPrintToChatAll("{blue}Sensal{default}: We are close friends though we lost contact since he left the city."); + NPCTalkMessage(npc.index, "We are close friends though we lost contact since he left the city."); } else if(GetGameTime() + 16.5 > f_TimeSinceHasBeenHurt[npc.index] && i_SaidLineAlready[npc.index] < 1) { i_SaidLineAlready[npc.index] = 1; - CPrintToChatAll("{blue}Sensal{default}: ....I see. They are friend of yours now as well."); + NPCTalkMessage(npc.index, "....I see. They are friend of yours now as well."); } return true; //He is trying to help. } @@ -2351,7 +2356,7 @@ static void Sensal_Weapon_Lines(Sensal npc, int client) if(valid) { - CPrintToChatAll("{blue}Sensal{default}: %s", Text_Lines); + NPCTalkMessage(npc.index, Text_Lines); fl_said_player_weaponline_time[npc.index] = GameTime + GetRandomFloat(17.0, 26.0); b_said_player_weaponline[client] = true; } diff --git a/addons/sourcemod/scripting/zombie_riot/npc/raidmode_bosses/npc_the_messenger.sp b/addons/sourcemod/scripting/zombie_riot/npc/raidmode_bosses/npc_the_messenger.sp index e515f68beb..3395c8dadf 100644 --- a/addons/sourcemod/scripting/zombie_riot/npc/raidmode_bosses/npc_the_messenger.sp +++ b/addons/sourcemod/scripting/zombie_riot/npc/raidmode_bosses/npc_the_messenger.sp @@ -387,18 +387,18 @@ methodmap TheMessenger < CClotBody if (npc.m_bBossRushDuo) { - CPrintToChatAll("{lightblue}The Messenger{default}: You're gonna die."); + NPCTalkMessage(npc.index, "You're gonna die."); } else if(!final) { if(i_RaidGrantExtra[npc.index] <= 2) { IgniteTargetEffect(npc.m_iWearable1); - CPrintToChatAll("{lightblue}The Messenger{default}: Welcome, welcome sinners! I'm bearing a message to you all!"); + NPCTalkMessage(npc.index, "Welcome, welcome sinners! I'm bearing a message to you all!"); } else { - CPrintToChatAll("{lightblue}The Messenger{default}: Round two."); + NPCTalkMessage(npc.index, "Round two."); } } @@ -435,6 +435,11 @@ methodmap TheMessenger < CClotBody } } +static void NPCTalkMessage(int iNPC, const char[] message) +{ + PrintNPCMessageWithPrefixes(iNPC, "lightblue", message); +} + public void TheMessenger_ClotThink(int iNPC) { TheMessenger npc = view_as(iNPC); @@ -451,7 +456,7 @@ public void TheMessenger_ClotThink(int iNPC) if(i_RaidGrantExtra[npc.index] >= 6) { i_RaidGrantExtra[npc.index] = 6; - CPrintToChatAll("{lightblue}The Messenger{default}: {crimson}AHAHAHAHHAHAHAHA!!! KNEEL BEFORE THE LORD'S MIGHT!"); + NPCTalkMessage(npc.index, "{crimson}AHAHAHAHHAHAHAHA!!! KNEEL BEFORE THE LORD'S MIGHT!"); return; } /* @@ -469,21 +474,21 @@ public void TheMessenger_ClotThink(int iNPC) { case 0: { - CPrintToChatAll("{lightblue}The Messenger{default}: Shame."); + NPCTalkMessage(npc.index, "Shame."); } case 1: { - CPrintToChatAll("{lightblue}The Messenger{default}: Are you for real??"); + NPCTalkMessage(npc.index, "Are you for real??"); } case 2: { - CPrintToChatAll("{lightblue}The Messenger{default}: No comment."); + NPCTalkMessage(npc.index, "No comment."); } } } else { - CPrintToChatAll("{lightblue}The Messenger{default}: ..........."); + NPCTalkMessage(npc.index, "..........."); } } if(LastMann) @@ -497,19 +502,19 @@ public void TheMessenger_ClotThink(int iNPC) { case 0: { - CPrintToChatAll("{lightblue}The Messenger{default}: Your friends are dead. {crimson}Accept your fate."); + NPCTalkMessage(npc.index, "Your friends are dead. {crimson}Accept your fate."); } case 1: { - CPrintToChatAll("{lightblue}The Messenger{default}: It's just you and me now."); + NPCTalkMessage(npc.index, "It's just you and me now."); } case 2: { - CPrintToChatAll("{lightblue}The Messenger{default}: Time for you to forward my message to your superiors."); + NPCTalkMessage(npc.index, "Time for you to forward my message to your superiors."); } case 3: { - CPrintToChatAll("{lightblue}The Messenger{default}: Give up, you cannot win."); + NPCTalkMessage(npc.index, "Give up, you cannot win."); } } } @@ -519,15 +524,15 @@ public void TheMessenger_ClotThink(int iNPC) { case 0: { - CPrintToChatAll("{lightblue}The Messenger{default}: YOU ARE DEAD"); + NPCTalkMessage(npc.index, "YOU ARE DEAD"); } case 1: { - CPrintToChatAll("{lightblue}The Messenger{default}: I'LL FUCK YOU UP"); + NPCTalkMessage(npc.index, "I'LL FUCK YOU UP"); } case 3: { - CPrintToChatAll("{lightblue}The Messenger{default}: AHAHAHAHAHAHA"); + NPCTalkMessage(npc.index, "AHAHAHAHAHAHA"); } } } @@ -672,23 +677,23 @@ bool Messanger_Elemental_Attack_Projectiles(TheMessenger npc) { case 0: { - CPrintToChatAll("{lightblue}The Messenger{default}: No more fucking around."); + NPCTalkMessage(npc.index, "No more fucking around."); } case 1: { - CPrintToChatAll("{lightblue}The Messenger{default}: Stop wasting my time shitheads."); + NPCTalkMessage(npc.index, "Stop wasting my time shitheads."); } case 2: { - CPrintToChatAll("{lightblue}The Messenger{default}: All sinners will {crimson}DIE."); + NPCTalkMessage(npc.index, "All sinners will {crimson}DIE."); } case 3: { - CPrintToChatAll("{lightblue}The Messenger{default}: You just brought infinite pain upon you."); + NPCTalkMessage(npc.index, "You just brought infinite pain upon you."); } case 4: { - CPrintToChatAll("{lightblue}The Messenger{default}: You fucks are just a waste of my time."); + NPCTalkMessage(npc.index, "You fucks are just a waste of my time."); } } MessengerInitiateGroupAttack(npc); @@ -882,7 +887,7 @@ public Action TheMessenger_OnTakeDamage(int victim, int &attacker, int &inflicto if(i_CustomWeaponEquipLogic[weapon] == WEAPON_MESSENGER_LAUNCHER) { b_khamlWeaponRage[npc.index] = true; - CPrintToChatAll("{lightblue}The Messenger{default}: USING MY OWN WEAPON AGAINST ME {crimson} GO FUCK YOURSELF."); + NPCTalkMessage(npc.index, "USING MY OWN WEAPON AGAINST ME? {crimson}GO FUCK YOURSELF."); } } } @@ -933,19 +938,19 @@ public void TheMessenger_NPCDeath(int entity) { case 0: { - CPrintToChatAll("{lightblue}The Messenger{default}: Ugh... little fucks.. This ain't over!"); + NPCTalkMessage(npc.index, "Ugh... little fucks.. This ain't over!"); } case 1: { - CPrintToChatAll("{lightblue}The Messenger{default}: You're just delaying the inevitable.."); + NPCTalkMessage(npc.index, "You're just delaying the inevitable.."); } case 2: { - CPrintToChatAll("{lightblue}The Messenger{default}: I may or may not have heavily underestimated you.."); + NPCTalkMessage(npc.index, "I may or may not have heavily underestimated you.."); } case 3: { - CPrintToChatAll("{lightblue}The Messenger{default}: No..."); + NPCTalkMessage(npc.index, "No..."); } } } @@ -955,27 +960,27 @@ public void TheMessenger_NPCDeath(int entity) { case 0: { - CPrintToChatAll("{lightblue}The Messenger{default}: NOT TWICE."); + NPCTalkMessage(npc.index, "NOT TWICE."); } case 1: { - CPrintToChatAll("{lightblue}The Messenger{default}: WHY"); + NPCTalkMessage(npc.index, "WHY"); } case 2: { - CPrintToChatAll("{lightblue}The Messenger{default}: YOU WILL REGRET THIS."); + NPCTalkMessage(npc.index, "YOU WILL REGRET THIS."); } case 3: { - CPrintToChatAll("{lightblue}The Messenger{default}: I've failed you..... my Lord.."); + NPCTalkMessage(npc.index, "I've failed you..... my Lord.."); } case 4: { - CPrintToChatAll("{lightblue}The Messenger{default}: How will I.... tell Him about my failure."); + NPCTalkMessage(npc.index, "How will I.... tell Him about my failure."); } case 5: { - CPrintToChatAll("{lightblue}The Messenger{default}: FUCK FUCK FUCK GOD FUCKING DAMNIT {crimson}FUCK!!!{default}"); + NPCTalkMessage(npc.index, "FUCK FUCK FUCK GOD FUCKING DAMNIT {crimson}FUCK!!!{default}"); } } } @@ -1400,27 +1405,27 @@ public void TheMessenger_OnTakeDamagePost(int victim, int attacker, int inflicto { case 0: { - CPrintToChatAll("{lightblue}The Messenger{default}: AHAHAHAHAHHA, all of you are so{crimson}FUCKED!!"); + NPCTalkMessage(npc.index, "AHAHAHAHAHHA, all of you are so{crimson}FUCKED!!"); } case 1: { - CPrintToChatAll("{lightblue}The Messenger{default}: {purple}VOID{default}, GRANT ME STRENGTH!"); + NPCTalkMessage(npc.index, "{purple}VOID{default}, GRANT ME STRENGTH!"); } case 2: { - CPrintToChatAll("{lightblue}The Messenger{default}: You think you won? I'M JUST GETTING STARTED."); + NPCTalkMessage(npc.index, "You think you won? I'M JUST GETTING STARTED."); } case 3: { - CPrintToChatAll("{lightblue}The Messenger{default}: Remember those cats? {crimson} You're about to get it worse."); + NPCTalkMessage(npc.index, "Remember those cats? {crimson} You're about to get it worse."); } case 4: { - CPrintToChatAll("{lightblue}The Messenger{default}: {crimson} DEATH TO MY ENEMIES!!!."); + NPCTalkMessage(npc.index, "{crimson} DEATH TO MY ENEMIES!!!."); } case 5: { - CPrintToChatAll("{lightblue}The Messenger{default}: {crimson} DIE ALREADY!!!"); + NPCTalkMessage(npc.index, "{crimson} DIE ALREADY!!!"); } } } @@ -1435,15 +1440,15 @@ public void TheMessenger_Win(int entity) { case 0: { - CPrintToChatAll("{lightblue}The Messenger{default}: Judgement delivered."); + NPCTalkMessage(entity, "Judgement delivered."); } case 1: { - CPrintToChatAll("{lightblue}The Messenger{default}: Your penance is now over."); + NPCTalkMessage(entity, "Your penance is now over."); } case 2: { - CPrintToChatAll("{lightblue}The Messenger{default}: Thus your reign of terror is no more."); + NPCTalkMessage(entity, "Thus your reign of terror is no more."); } } } @@ -1453,15 +1458,15 @@ public void TheMessenger_Win(int entity) { case 0: { - CPrintToChatAll("{lightblue}The Messenger{default}: {crimson}TAKE THAT YOU FUCKS"); + NPCTalkMessage(entity, "{crimson}TAKE THAT YOU FUCKS"); } case 1: { - CPrintToChatAll("{lightblue}The Messenger{default}: Message...... delivered...."); + NPCTalkMessage(entity, "Message...... delivered...."); } case 2: { - CPrintToChatAll("{lightblue}The Messenger{default}: Are you proud? My Lord...."); + NPCTalkMessage(entity, "Are you proud? My Lord...."); } } } diff --git a/addons/sourcemod/scripting/zombie_riot/npc/raidmode_bosses/npc_the_purge.sp b/addons/sourcemod/scripting/zombie_riot/npc/raidmode_bosses/npc_the_purge.sp index 79d63fc439..3d00f37acd 100644 --- a/addons/sourcemod/scripting/zombie_riot/npc/raidmode_bosses/npc_the_purge.sp +++ b/addons/sourcemod/scripting/zombie_riot/npc/raidmode_bosses/npc_the_purge.sp @@ -244,7 +244,7 @@ methodmap ThePurge < CClotBody } } RemoveAllDamageAddition(); - CPrintToChatAll("{crimson}The Purge{default}: {crimson}Termination: {crimson}Begin."); + NPCTalkMessage(npc.index, "{crimson}Termination: {crimson}Begin."); RaidModeTime = GetGameTime(npc.index) + 200.0; RaidBossActive = EntIndexToEntRef(npc.index); @@ -297,6 +297,11 @@ methodmap ThePurge < CClotBody } } +static void NPCTalkMessage(int iNPC, const char[] message) +{ + PrintNPCMessageWithPrefixes(iNPC, "crimson", message); +} + static void ClotThink(int iNPC) { ThePurge npc = view_as(iNPC); @@ -356,11 +361,11 @@ static void ClotThink(int iNPC) { case 0: { - CPrintToChatAll("{crimson}The Purge{default}: {crimson}Annihilation Status: Absolute."); + NPCTalkMessage(npc.index, "{crimson}Annihilation Status: Absolute."); } case 1: { - CPrintToChatAll("{crimson}The Purge{default}: {crimson}Triggering Overclock Protocol."); + NPCTalkMessage(npc.index, "{crimson}Triggering Overclock Protocol."); } } npc.PlayAngerSound(); @@ -403,7 +408,7 @@ static void ClotThink(int iNPC) if(!npc.m_fbGunout) { npc.m_fbGunout = true; - CPrintToChatAll("{crimson}The Purge{default}: {crimson} One Biological Signal Remaining."); + NPCTalkMessage(npc.index, "{crimson} One Biological Signal Remaining."); } } int target = npc.m_iTarget; @@ -489,15 +494,15 @@ static void ClotThink(int iNPC) { case 0: { - CPrintToChatAll("{crimson}The Purge{default}: {crimson}Activation: Heavy Minigun."); + NPCTalkMessage(npc.index, "{crimson}Activation: Heavy Minigun."); } case 1: { - CPrintToChatAll("{crimson}The Purge{default}: {crimson}Engaging The Targets."); + NPCTalkMessage(npc.index, "{crimson}Engaging The Targets."); } case 2: { - CPrintToChatAll("{crimson}The Purge{default}: {crimson}Gunning Them Down."); + NPCTalkMessage(npc.index, "{crimson}Gunning Them Down."); } } npc.m_flRangedArmor = 0.5; @@ -518,15 +523,15 @@ static void ClotThink(int iNPC) { case 0: { - CPrintToChatAll("{crimson}The Purge{default}: {crimson}Activation: Rocket Barrage."); + NPCTalkMessage(npc.index, "{crimson}Activation: Rocket Barrage."); } case 1: { - CPrintToChatAll("{crimson}The Purge{default}: {crimson}Rocket Storm."); + NPCTalkMessage(npc.index, "{crimson}Rocket Storm."); } case 2: { - CPrintToChatAll("{crimson}The Purge{default}: {crimson}Explosive Typhoon."); + NPCTalkMessage(npc.index, "{crimson}Explosive Typhoon."); } } @@ -555,15 +560,15 @@ static void ClotThink(int iNPC) { case 0: { - CPrintToChatAll("{crimson}The Purge{default}: {crimson}Activation: Quad Burst Launcher."); + NPCTalkMessage(npc.index, "{crimson}Activation: Quad Burst Launcher."); } case 1: { - CPrintToChatAll("{crimson}The Purge{default}: {crimson}Grenade Bombardment."); + NPCTalkMessage(npc.index, "{crimson}Grenade Bombardment."); } case 2: { - CPrintToChatAll("{crimson}The Purge{default}: {crimson}Pipes Of Plight."); + NPCTalkMessage(npc.index, "{crimson}Pipes Of Plight."); } } } @@ -585,15 +590,15 @@ static void ClotThink(int iNPC) { case 0: { - CPrintToChatAll("{crimson}The Purge{default}: {crimson}Activation: Bulldozer."); + NPCTalkMessage(npc.index, "{crimson}Activation: Bulldozer."); } case 1: { - CPrintToChatAll("{crimson}The Purge{default}: {crimson}ERROR: Run Over Targets."); + NPCTalkMessage(npc.index, "{crimson}ERROR: Run Over Targets."); } case 2: { - CPrintToChatAll("{crimson}The Purge{default}: {crimson}Plowing Through The Terrain."); + NPCTalkMessage(npc.index, "{crimson}Plowing Through The Terrain."); } } } @@ -609,15 +614,15 @@ static void ClotThink(int iNPC) { case 0: { - CPrintToChatAll("{crimson}The Purge{default}: {crimson}Re-Oiling Complete. Run Over Targets."); + NPCTalkMessage(npc.index, "{crimson}Re-Oiling Complete. Run Over Targets."); } case 1: { - CPrintToChatAll("{crimson}The Purge{default}: {crimson}Oil Resupplied. Bulldozing Targets."); + NPCTalkMessage(npc.index, "{crimson}Oil Resupplied. Bulldozing Targets."); } case 2: { - CPrintToChatAll("{crimson}The Purge{default}: {crimson}Doubling Purging Efforts."); + NPCTalkMessage(npc.index, "{crimson}Doubling Purging Efforts."); } } } @@ -939,7 +944,7 @@ static void ClotDeathStartThink(int iNPC) { ThePurge npc = view_as(iNPC); - CPrintToChatAll("{crimson}The Purge{default}: {crimson}ERROR ERROR ERROR."); + NPCTalkMessage(npc.index, "{crimson}ERROR ERROR ERROR."); npc.m_bisWalking = false; npc.SetActivity("taunt_mourning_mercs_heavy", true); npc.m_flNextThinkTime = GetGameTime(npc.index) + 2.5; @@ -963,7 +968,7 @@ static void ClotDeathLoopThink(int iNPC) return; float vecMe[3]; WorldSpaceCenter(npc.index, vecMe); - CPrintToChatAll("{darkblue}??????????{default}: {crimson} You will regret this."); + CPrintToChatAll("{darkblue}??????????{default}: {crimson}You will regret this."); npc.PlayBoomSound(); TE_Particle("asplode_hoodoo", vecMe, NULL_VECTOR, NULL_VECTOR, _, _, _, _, _, _, _, _, _, _, 0.0); @@ -1076,15 +1081,15 @@ public void ThePurge_Win(int entity) { case 0: { - CPrintToChatAll("{crimson}The Purge{default}: {crimson}Annihilation Completed."); + NPCTalkMessage(entity, "{crimson}Annihilation Completed."); } case 1: { - CPrintToChatAll("{crimson}The Purge{default}: {crimson}Targets Purged."); + NPCTalkMessage(entity, "{crimson}Targets Purged."); } case 2: { - CPrintToChatAll("{crimson}The Purge{default}: {crimson}All Enemies Terminated."); + NPCTalkMessage(entity, "{crimson}All Enemies Terminated."); } } i_RaidGrantExtra[entity] = RAIDITEM_INDEX_WIN_COND; diff --git a/addons/sourcemod/scripting/zombie_riot/npc/raidmode_bosses/npc_true_fusion_warrior.sp b/addons/sourcemod/scripting/zombie_riot/npc/raidmode_bosses/npc_true_fusion_warrior.sp index 8b64fe6325..fd8b64242a 100644 --- a/addons/sourcemod/scripting/zombie_riot/npc/raidmode_bosses/npc_true_fusion_warrior.sp +++ b/addons/sourcemod/scripting/zombie_riot/npc/raidmode_bosses/npc_true_fusion_warrior.sp @@ -424,6 +424,17 @@ methodmap TrueFusionWarrior < CClotBody } } +static void NPCTalkMessage(int iNPC, const char[] message) +{ + char name[128]; + + if (b_angered_twice[iNPC]) + name = "Silvester"; + else + name = "Silvester?"; + + PrintNPCMessageWithPrefixes(iNPC, "gold", message, .customName = name); +} public void TrueFusionWarrior_ClotThink(int iNPC) { @@ -438,15 +449,15 @@ public void TrueFusionWarrior_ClotThink(int iNPC) { case 0: { - CPrintToChatAll("{gold}Silvester?{default}: Run... Away..."); + NPCTalkMessage(npc.index, "Run... Away..."); } case 1: { - CPrintToChatAll("{gold}Silvester?{default}: Help..."); + NPCTalkMessage(npc.index, "Help..."); } - case 3: + case 2: { - CPrintToChatAll("{gold}Silvester?{crimson}: AGHHRRR!!!"); + NPCTalkMessage(npc.index, "{crimson}AGHHRRR!!!"); } } } @@ -455,14 +466,14 @@ public void TrueFusionWarrior_ClotThink(int iNPC) { func_NPCThink[npc.index] = INVALID_FUNCTION; - CPrintToChatAll("{gold}Silvester?{default}: New... victims to infect..."); + NPCTalkMessage(npc.index, "New... victims to infect..."); return; } if(RaidModeTime < GetGameTime()) { ForcePlayerLoss(); RaidBossActive = INVALID_ENT_REFERENCE; - CPrintToChatAll("{gold}Silvester?{default}: {green}Xeno{default} virus too strong... to resist.. {crimson}join...{default}"); + NPCTalkMessage(npc.index, "{green}Xeno{default} virus too strong... to resist.. {crimson}join...{default}"); func_NPCThink[npc.index] = INVALID_FUNCTION; return; } @@ -506,7 +517,7 @@ public void TrueFusionWarrior_ClotThink(int iNPC) } if(GetGameTime() > npc.m_flTimeSinceHasBeenHurt) { - CPrintToChatAll("{gold}Silvester{default}: You will get soon in touch with a friend of mine, I thank you, though beware of the rogue machine... {red}Blitzkrieg."); + NPCTalkMessage(npc.index, "You will get soon in touch with a friend of mine, I thank you, though beware of the rogue machine... {red}Blitzkrieg."); npc.m_bDissapearOnDeath = true; RequestFrame(KillNpc, EntIndexToEntRef(npc.index)); for (int client = 1; client <= MaxClients; client++) @@ -521,22 +532,22 @@ public void TrueFusionWarrior_ClotThink(int iNPC) else if(GetGameTime() + 5.0 > npc.m_flTimeSinceHasBeenHurt && i_SaidLineAlready[npc.index] < 4) { i_SaidLineAlready[npc.index] = 4; - CPrintToChatAll("{gold}Silvester{default}: Help the world, retain the chaos!"); + NPCTalkMessage(npc.index, "Help the world, retain the chaos!"); } else if(GetGameTime() + 10.0 > npc.m_flTimeSinceHasBeenHurt && i_SaidLineAlready[npc.index] < 3) { i_SaidLineAlready[npc.index] = 3; - CPrintToChatAll("{gold}Silvester{default}: I thank you, but I will need help from you later, and I will warn you of dangers."); + NPCTalkMessage(npc.index, "I thank you, but I will need help from you later, and I will warn you of dangers."); } else if(GetGameTime() + 13.0 > npc.m_flTimeSinceHasBeenHurt && i_SaidLineAlready[npc.index] < 2) { i_SaidLineAlready[npc.index] = 2; - CPrintToChatAll("{gold}Silvester{default}: A huge chaos is breaking out, you were able to knock some sense into me..!"); + NPCTalkMessage(npc.index, "A huge chaos is breaking out, you were able to knock some sense into me..!"); } else if(GetGameTime() + 16.5 > npc.m_flTimeSinceHasBeenHurt && i_SaidLineAlready[npc.index] < 1) { i_SaidLineAlready[npc.index] = 1; - CPrintToChatAll("{gold}Silvester{default}: Listen to me, please!"); + NPCTalkMessage(npc.index, "Listen to me, please!"); } return; //He is trying to help. } @@ -983,7 +994,7 @@ public Action TrueFusionWarrior_OnTakeDamage(int victim, int &attacker, int &inf SDKUnhook(npc.index, SDKHook_Think, TrueFusionWarrior_TBB_Tick); - CPrintToChatAll("{gold}Silvester{default}: Stop, stop please I beg you, I was infected!"); + NPCTalkMessage(npc.index, "Stop, stop please I beg you, I was infected!"); int i = MaxClients + 1; while((i = FindEntityByClassname(i, "obj_sentrygun")) != -1) { diff --git a/addons/sourcemod/scripting/zombie_riot/npc/raidmode_bosses/npc_twirl.sp b/addons/sourcemod/scripting/zombie_riot/npc/raidmode_bosses/npc_twirl.sp index 800b3bfe56..b622054c6b 100644 --- a/addons/sourcemod/scripting/zombie_riot/npc/raidmode_bosses/npc_twirl.sp +++ b/addons/sourcemod/scripting/zombie_riot/npc/raidmode_bosses/npc_twirl.sp @@ -826,8 +826,6 @@ methodmap Twirl < CClotBody Zero(b_said_player_weaponline); fl_said_player_weaponline_time[npc.index] = GetGameTime() + GetRandomFloat(0.0, 5.0); - c_NpcName[npc.index] = "Twirl"; - b_force_transformation = false; b_test_mode = StrContains(data, "test") != -1; @@ -1002,10 +1000,7 @@ methodmap Twirl < CClotBody if(b_tripple_raid) { WaveStart_SubWaveStart(GetGameTime() + 700.0); //due to lots and lots of time - Twirl_Lines(npc, "Oh my, looks like the expidonsans went easy on you, we sure wont my dears. Us ruanians work differently~"); - Twirl_Lines(npc, "... Except Karlas but shhhh!"); - CPrintToChatAll("{crimson}Karlas{snow}: ....."); - CPrintToChatAll("{crimson}Karlas{snow}: :("); + CreateTimer(0.0, Timer_Twirl_TripleIntro, false); RaidModeTime = GetGameTime(npc.index) + 500.0; GiveOneRevive(true); @@ -1088,6 +1083,8 @@ methodmap Twirl < CClotBody } } + c_NpcName[npc.index] = "Twirl"; + i_current_Text = 0; npc.m_flDoingAnimation = 0.0; @@ -4571,13 +4568,7 @@ static void Twirl_Lines(Twirl npc, const char[] text) if(b_test_mode) return; - for(int i=1 ; i <= MaxClients ; i++) //should fix translations being buggy with the name. - { - if(IsValidClient(i) && IsClientInGame(i)) - { - CPrintToChat(i, "%s %s", npc.GetName(), text); - } - } + PrintNPCMessageWithPrefixes(npc.index, NameColour, text, .messageColor = TextColour); } static float[] GetNPCAngles(CClotBody npc) { @@ -4842,3 +4833,29 @@ void TwirlEarsApply(int iNpc, char[] attachment = "head", float size = 1.0) i_ExpidonsaEnergyEffect[iNpc][9] = EntIndexToEntRef(Laser_ears_1_r); i_ExpidonsaEnergyEffect[iNpc][10] = EntIndexToEntRef(Laser_ears_2_r); } + +static void Timer_Twirl_TripleIntro(Handle timer, bool shouldKarlasChat) +{ + int raids[3]; + raids = i_GetAllPartiesInvolved(); + + if (!shouldKarlasChat && raids[0] != 0) + { + // Twirl's turn + Twirl npc = view_as(raids[0]); + + Twirl_Lines(npc, "Oh my, looks like the expidonsans went easy on you, we sure wont my dears. Us ruanians work differently~"); + Twirl_Lines(npc, "... Except Karlas but shhhh!"); + + // We have to wait for Karlas to spawn... + CreateTimer(1.0, Timer_Twirl_TripleIntro, true, TIMER_FLAG_NO_MAPCHANGE); + } + else if (shouldKarlasChat && raids[2] != 0) + { + // Karlas' turn + Karlas allyNpc = view_as(raids[2]); + + Karlas_Lines(allyNpc, "....."); + Karlas_Lines(allyNpc, ":("); + } +} \ No newline at end of file diff --git a/addons/sourcemod/scripting/zombie_riot/npc/raidmode_bosses/seaborn/npc_bob_the_first_last_savior.sp b/addons/sourcemod/scripting/zombie_riot/npc/raidmode_bosses/seaborn/npc_bob_the_first_last_savior.sp index 50623a5665..914c9b8f71 100644 --- a/addons/sourcemod/scripting/zombie_riot/npc/raidmode_bosses/seaborn/npc_bob_the_first_last_savior.sp +++ b/addons/sourcemod/scripting/zombie_riot/npc/raidmode_bosses/seaborn/npc_bob_the_first_last_savior.sp @@ -447,7 +447,7 @@ methodmap RaidbossBobTheFirst < CClotBody { if(CurrentModifOn() == 1) { - CPrintToChatAll("{white}%s{default}: The chaos is everywhere, we're too late, join me, dont attack.\nProve me your innocence.", NpcStats_ReturnNpcName(npc.index, true)); + NPCTalkMessage(npc.index, "The chaos is everywhere, we're too late, join me, dont attack.\nProve me your innocence."); } else { @@ -455,15 +455,15 @@ methodmap RaidbossBobTheFirst < CClotBody { case 0: { - CPrintToChatAll("{white}%s{default}: I'll Handle this one.", NpcStats_ReturnNpcName(npc.index, true)); + NPCTalkMessage(npc.index, "I'll Handle this one."); } case 1: { - CPrintToChatAll("{white}%s{default}: Stella and Karlas, you did enough, stand back.", NpcStats_ReturnNpcName(npc.index, true)); + NPCTalkMessage(npc.index, "Stella and Karlas, you did enough, stand back."); } case 2: { - CPrintToChatAll("{white}%s{default}: I know enough about infections and its weaknesses to fend you off.", NpcStats_ReturnNpcName(npc.index, true)); + NPCTalkMessage(npc.index, "I know enough about infections and its weaknesses to fend you off."); } } } @@ -473,6 +473,11 @@ methodmap RaidbossBobTheFirst < CClotBody } } +static void NPCTalkMessage(int iNPC, const char[] message) +{ + PrintNPCMessageWithPrefixes(iNPC, "white", message); +} + public void RaidbossBobTheFirst_ClotThink(int iNPC) { RaidbossBobTheFirst npc = view_as(iNPC); @@ -551,15 +556,15 @@ public void RaidbossBobTheFirst_ClotThink(int iNPC) { case 0: { - CPrintToChatAll("{white}%s{default}: Hope my sharp shooting skills will miss your brain, curing is still an option.", NpcStats_ReturnNpcName(npc.index, true)); + NPCTalkMessage(npc.index, "Hope my sharp shooting skills will miss your brain, curing is still an option."); } case 1: { - CPrintToChatAll("{white}%s{default}: If only i could cure it off you with this handgun, have to take lives to save lives.", NpcStats_ReturnNpcName(npc.index, true)); + NPCTalkMessage(npc.index, "If only i could cure it off you with this handgun, have to take lives to save lives."); } case 2: { - CPrintToChatAll("{white}%s{default}: Im starting to reach my limit...", NpcStats_ReturnNpcName(npc.index, true)); + NPCTalkMessage(npc.index, "Im starting to reach my limit..."); } } int MaxHealth = ReturnEntityMaxHealth(npc.index); @@ -608,15 +613,15 @@ public void RaidbossBobTheFirst_ClotThink(int iNPC) { case 0: { - CPrintToChatAll("{white}%s{default}: One infected left.", NpcStats_ReturnNpcName(npc.index, true)); + NPCTalkMessage(npc.index, "One infected left."); } case 1: { - CPrintToChatAll("{white}%s{default}: This nightmare ends soon.", NpcStats_ReturnNpcName(npc.index, true)); + NPCTalkMessage(npc.index, "This nightmare ends soon."); } case 2: { - CPrintToChatAll("{white}%s{default}: Last. Infected. Left.", NpcStats_ReturnNpcName(npc.index, true)); + NPCTalkMessage(npc.index, "Last. Infected. Left."); } } } @@ -640,13 +645,13 @@ public void RaidbossBobTheFirst_ClotThink(int iNPC) switch(GetURandomInt() % 3) { case 0: - CPrintToChatAll("{white}%s{default}: You weren't supposed to have this infection.", NpcStats_ReturnNpcName(npc.index, true)); + NPCTalkMessage(npc.index, "You weren't supposed to have this infection."); case 1: - CPrintToChatAll("{white}%s{default}: No choice but to kill you, it consumes you.", NpcStats_ReturnNpcName(npc.index, true)); + NPCTalkMessage(npc.index, "No choice but to kill you, it consumes you."); case 2: - CPrintToChatAll("{white}%s{default}: Nobody wins.", NpcStats_ReturnNpcName(npc.index, true)); + NPCTalkMessage(npc.index, "Nobody wins."); } // Play funny animation intro @@ -658,7 +663,7 @@ public void RaidbossBobTheFirst_ClotThink(int iNPC) else { - CPrintToChatAll("{white}%s{default}: You think you can fool me!? Ill destroy you!", NpcStats_ReturnNpcName(npc.index, true)); + NPCTalkMessage(npc.index, "You think you can fool me!? I'll destroy you!"); SetEntProp(npc.index, Prop_Data, "m_iHealth", ReturnEntityMaxHealth(npc.index) -1); fl_Extra_Damage[npc.index] = 999.9; @@ -693,27 +698,27 @@ public void RaidbossBobTheFirst_ClotThink(int iNPC) case 2: { ReviveAll(true); - CPrintToChatAll("{white}Bob the First{default}: So..."); + NPCTalkMessage(npc.index, "So..."); npc.m_flNextThinkTime = gameTime + 5.0; } case 3: { - CPrintToChatAll("{white}Bob the First{default}: What do you think will happpen..?"); + NPCTalkMessage(npc.index, "What do you think will happen..?"); npc.m_flNextThinkTime = gameTime + 4.0; } case 4: { - CPrintToChatAll("{white}Bob the First{default}: Wait... no... you were fighting it..! No this.. This cannot be!"); + NPCTalkMessage(npc.index, "Wait... no... you were fighting it..! No this.. This cannot be!"); npc.m_flNextThinkTime = gameTime + 4.0; } case 5: { - CPrintToChatAll("{white}Bob the First{default}: Im too hurt, i cant, i have to run... i cant...."); + NPCTalkMessage(npc.index, "I'm too hurt, I can't, I have to run... I can't...."); npc.m_flNextThinkTime = gameTime + 4.0; } case 6: { - CPrintToChatAll("{white}Bob the First{default}: ..."); + NPCTalkMessage(npc.index, "..."); npc.m_flNextThinkTime = gameTime + 2.0; } case 7: @@ -741,37 +746,37 @@ public void RaidbossBobTheFirst_ClotThink(int iNPC) case 2: { ReviveAll(true); - CPrintToChatAll("{white}Bob the First{default}: No..."); + NPCTalkMessage(npc.index, "No..."); npc.m_flNextThinkTime = gameTime + 5.0; } case 3: { - CPrintToChatAll("{white}Bob the First{default}: This infection..."); + NPCTalkMessage(npc.index, "This infection..."); npc.m_flNextThinkTime = gameTime + 3.0; } case 4: { - CPrintToChatAll("{white}Bob the First{default}: How did this thing make you this powerful..?"); + NPCTalkMessage(npc.index, "How did this thing make you this powerful..?"); npc.m_flNextThinkTime = gameTime + 4.0; } case 5: { - CPrintToChatAll("{white}Bob the First{default}: Took out every single Seaborn and took the infection in yourselves..."); + NPCTalkMessage(npc.index, "Took out every single Seaborn and took the infection in yourselves..."); npc.m_flNextThinkTime = gameTime + 4.0; } case 6: { - CPrintToChatAll("{white}Bob the First{default}: You people fighting these cities and infections..."); + NPCTalkMessage(npc.index, "You people fighting these cities and infections..."); npc.m_flNextThinkTime = gameTime + 4.0; } case 7: { - CPrintToChatAll("{white}Bob the First{default}: However..."); + NPCTalkMessage(npc.index, "However..."); npc.m_flNextThinkTime = gameTime + 3.0; } case 8: { - CPrintToChatAll("{white}Bob the First{default}: I will remove what does not belong to you..."); + NPCTalkMessage(npc.index, "I will remove what does not belong to you..."); npc.m_flNextThinkTime = gameTime + 3.0; CreateTimer(12.0, SafetyFixBobDo, EntIndexToEntRef(npc.index)); } @@ -877,13 +882,13 @@ public void RaidbossBobTheFirst_ClotThink(int iNPC) switch(GetURandomInt() % 3) { case 0: - CPrintToChatAll("{white}Bob the First{default}: You're in the wrong place in the wrong time!"); + NPCTalkMessage(npc.index, "You're in the wrong place in the wrong time!"); case 1: - CPrintToChatAll("{white}Bob the First{default}: This is not how it goes!"); + NPCTalkMessage(npc.index, "This is not how it goes!"); case 2: - CPrintToChatAll("{white}Bob the First{default}: Stop trying to change fate!"); + NPCTalkMessage(npc.index, "Stop trying to change fate!"); } } else @@ -891,16 +896,16 @@ public void RaidbossBobTheFirst_ClotThink(int iNPC) switch(GetURandomInt() % 4) { case 0: - CPrintToChatAll("{white}Bob the First{default}: Enough of this!"); + NPCTalkMessage(npc.index, "Enough of this!"); case 1: - CPrintToChatAll("{white}Bob the First{default}: Do you see yourself? Your slaughter?"); + NPCTalkMessage(npc.index, "Do you see yourself? Your slaughter?"); case 2: - CPrintToChatAll("{white}Bob the First{default}: You are no god."); + NPCTalkMessage(npc.index, "You are no god."); case 3: - CPrintToChatAll("{white}Bob the First{default}: Xeno. Seaborn. Then there's you."); + NPCTalkMessage(npc.index, "Xeno. Seaborn. Then there's you."); } } @@ -944,7 +949,7 @@ public void RaidbossBobTheFirst_ClotThink(int iNPC) { b_ThisEntityIgnoredByOtherNpcsAggro[npc.index] = false; if(CurrentModifOn() == 1 && i_RaidGrantExtra[npc.index] == 1) - CPrintToChatAll("{white}%s{default}: Nevermind then, you're one of the affected.", NpcStats_ReturnNpcName(npc.index, true)); + NPCTalkMessage(npc.index, "Nevermind then, you're one of the affected."); } } int summon; @@ -2228,7 +2233,7 @@ public void Raidmode_BobFirst_Win(int entity) { i_RaidGrantExtra[entity] = RAIDITEM_INDEX_WIN_COND; func_NPCThink[entity] = INVALID_FUNCTION; - CPrintToChatAll("{white}Bob the First{default}: Deep sea threat cleaned, finally at peace..."); + NPCTalkMessage(entity, "Deep sea threat cleaned, finally at peace..."); } diff --git a/addons/sourcemod/scripting/zombie_riot/npc/raidmode_bosses/seaborn/npc_karlas.sp b/addons/sourcemod/scripting/zombie_riot/npc/raidmode_bosses/seaborn/npc_karlas.sp index fc9a2ca4d4..245208f2ff 100644 --- a/addons/sourcemod/scripting/zombie_riot/npc/raidmode_bosses/seaborn/npc_karlas.sp +++ b/addons/sourcemod/scripting/zombie_riot/npc/raidmode_bosses/seaborn/npc_karlas.sp @@ -596,7 +596,7 @@ methodmap Karlas < CClotBody if(StrContains(data, "overdrive") != -1) { - CPrintToChatAll("{crimson}Karlas{snow}: >:)"); + Karlas_Lines(npc, ">:)"); b_lostOVERDRIVE[npc.index] = true; NpcSpeechBubble(npc.index, ">:)", 7, {255,9,9,255}, {0.0,0.0,120.0}, ""); @@ -639,7 +639,7 @@ static void Win_Line(int entity) if(npc.Ally) return; - CPrintToChatAll("{crimson}Karlas{snow}: Oyaya?"); + Karlas_Lines(npc, "Oyaya?"); } void Set_Karlas_Ally(int karlas, int stella, int wave = -2, bool bob, bool tripple) { @@ -675,7 +675,7 @@ static void Internal_ClotThink(int iNPC) if(RaidModeTime < GetGameTime() && !npc.Ally && !b_lostOVERDRIVE[npc.index]) { - CPrintToChatAll("{crimson}Karlas{snow}: >:)"); + Karlas_Lines(npc, ">:)"); b_lostOVERDRIVE[npc.index] = true; NpcSpeechBubble(npc.index, ">:)", 7, {255,9,9,255}, {0.0,0.0,120.0}, ""); @@ -915,7 +915,7 @@ static bool Healing_Logic(Karlas npc, int PrimaryThreatIndex, float flDistanceTo if(flDistanceToAlly < (NORMAL_ENEMY_MELEE_RANGE_FLOAT_SQUARED * 5.0) && Can_I_See_Enemy_Only(npc.index, Ally)) { NpcSpeechBubble(npc.index, "..!", 7, {255,9,9,255}, {0.0,0.0,120.0}, ""); - CPrintToChatAll("{crimson}Karlas{snow}: ..!"); + Karlas_Lines(npc, "..!"); CPrintToChatAll("{crimson}Karlas Heals Stella, and provides himself with some adrenaline..."); HealEntityGlobal(npc.index, Ally, float((AllyMaxHealth / 7)), 1.0, 0.0, HEAL_ABSOLUTE); ApplyStatusEffect(npc.index, npc.index, "Ancient Melodies", 5.0); @@ -2313,8 +2313,8 @@ static Action Internal_OnTakeDamage(int victim, int &attacker, int &inflictor, f ApplyStatusEffect(ally, ally, "Extreme Anxiety", 999.0); switch(GetRandomInt(0, 1)) { - case 0: CPrintToChatAll("{crimson}Karlas{snow}: *heavy breathing*"); - case 1: CPrintToChatAll("{crimson}Karlas{snow}: *slight pain grunt*"); + case 0: Karlas_Lines(npc, "*heavy breathing*"); + case 1: Karlas_Lines(npc, "*slight pain grunt*"); } RaidModeTime +=17.0; //Extra time due to invuln @@ -2895,4 +2895,9 @@ public Action Fusion_RepeatSound_Doublevoice(Handle timer, DataPack pack) EmitSoundToAll(sound, entity, SNDCHAN_STATIC, RAIDBOSS_ZOMBIE_SOUNDLEVEL, _, BOSS_ZOMBIE_VOLUME); } return Plugin_Handled; +} + +void Karlas_Lines(Karlas npc, const char[] text) +{ + PrintNPCMessageWithPrefixes(npc.index, "{crimson}", text, .messageColor = "{snow}"); } \ No newline at end of file diff --git a/addons/sourcemod/scripting/zombie_riot/npc/raidmode_bosses/seaborn/npc_stella.sp b/addons/sourcemod/scripting/zombie_riot/npc/raidmode_bosses/seaborn/npc_stella.sp index 829a343a52..0a7084294c 100644 --- a/addons/sourcemod/scripting/zombie_riot/npc/raidmode_bosses/seaborn/npc_stella.sp +++ b/addons/sourcemod/scripting/zombie_riot/npc/raidmode_bosses/seaborn/npc_stella.sp @@ -676,8 +676,6 @@ methodmap Stella < CClotBody i_NpcWeight[npc.index] = 3; FormatEx(c_HeadPlaceAttachmentGibName[npc.index], sizeof(c_HeadPlaceAttachmentGibName[]), "head"); - - c_NpcName[npc.index] = "Stella"; //data: test , force10, force20, force30, force40, hell, solo, triple_enemies, nomusic, anger, twirl, bob, normonly @@ -925,6 +923,9 @@ methodmap Stella < CClotBody } } + + c_NpcName[npc.index] = "Stella"; + Zero(b_said_player_weaponline); b_IonStormInitiated[npc.index] = false; b_LastMannLines[npc.index] = false; @@ -2800,5 +2801,5 @@ void Stella_Lines(Stella npc, const char[] text) if(npc.m_flInvulnerability) return; - CPrintToChatAll("%s %s", npc.GetName(), text); + PrintNPCMessageWithPrefixes(npc.index, NameColour, text, .messageColor = TextColour); } \ No newline at end of file diff --git a/addons/sourcemod/scripting/zombie_riot/npc/raidmode_bosses/xeno/npc_infected_goggles.sp b/addons/sourcemod/scripting/zombie_riot/npc/raidmode_bosses/xeno/npc_infected_goggles.sp index 9e00a4d0a8..618ae93a84 100644 --- a/addons/sourcemod/scripting/zombie_riot/npc/raidmode_bosses/xeno/npc_infected_goggles.sp +++ b/addons/sourcemod/scripting/zombie_riot/npc/raidmode_bosses/xeno/npc_infected_goggles.sp @@ -293,6 +293,13 @@ methodmap RaidbossBlueGoggles < CClotBody } } +void RaidbossBlueGoggles_NPCTalkMessage(int iNPC, const char[] message, any ...) +{ + char buffer[255]; + VFormat(buffer, sizeof(buffer), message, 3); + PrintNPCMessageWithPrefixes(iNPC, "darkblue", buffer); +} + public void RaidbossBlueGoggles_ClotThink(int iNPC) { RaidbossBlueGoggles npc = view_as(iNPC); @@ -319,11 +326,11 @@ public void RaidbossBlueGoggles_ClotThink(int iNPC) npc.m_fbGunout = true; if(!XenoExtraLogic()) { - CPrintToChatAll("{darkblue}Waldch{default}: {green}Xeno{default} is an infection that shouldn't be taken lightly."); + RaidbossBlueGoggles_NPCTalkMessage(npc.index, "{green}Xeno{default} is an infection that shouldn't be taken lightly."); } else { - CPrintToChatAll("{darkblue}Waldch{default}: Just give up and we'll spare your lives."); + RaidbossBlueGoggles_NPCTalkMessage(npc.index, "Just give up and we'll spare your lives."); } } } @@ -374,19 +381,19 @@ public void RaidbossBlueGoggles_ClotThink(int iNPC) { case 1: { - CPrintToChatAll("{gold}Silvester{default}: Stop seperating yourself from me {darkblue}Waldch{default}!!"); + RaidbossSilvester_NPCTalkMessage(AllyEntity, "Stop seperating yourself from me {darkblue}Waldch{default}!!"); } case 2: { - CPrintToChatAll("{gold}Silvester{default}: {darkblue}Waldch{default} get back to me NOW!"); + RaidbossSilvester_NPCTalkMessage(AllyEntity, "{darkblue}Waldch{default} get back to me NOW!"); } case 3: { - CPrintToChatAll("{gold}Silvester{default}: {darkblue}Waldch{default} where are you GOING?!"); + RaidbossSilvester_NPCTalkMessage(AllyEntity, "{darkblue}Waldch{default} where are you GOING?!"); } case 4: { - CPrintToChatAll("{gold}Silvester{default}: {darkblue}Waldch{default} that's the WRONG WAY!"); + RaidbossSilvester_NPCTalkMessage(AllyEntity, "{darkblue}Waldch{default} that's the WRONG WAY!"); } } } @@ -401,23 +408,23 @@ public void RaidbossBlueGoggles_ClotThink(int iNPC) { case 1: { - CPrintToChatAll("{gold}Silvester{default}: God dammit {darkblue}Waldch{default}!"); + RaidbossSilvester_NPCTalkMessage(AllyEntity, "God dammit {darkblue}Waldch{default}!"); } case 2: { - CPrintToChatAll("{gold}Silvester{default}: {darkblue}Waldch{default} don't do that again!"); + RaidbossSilvester_NPCTalkMessage(AllyEntity, "{darkblue}Waldch{default} don't do that again!"); } case 3: { - CPrintToChatAll("{gold}Silvester{default}: There {darkblue}Waldch{default}. Now STAY NEAR ME!"); + RaidbossSilvester_NPCTalkMessage(AllyEntity, "There {darkblue}Waldch{default}. Now STAY NEAR ME!"); } case 4: { - CPrintToChatAll("{gold}Silvester{default}: How many times must I tell you this {darkblue}Waldch{default}!"); + RaidbossSilvester_NPCTalkMessage(AllyEntity, "How many times must I tell you this {darkblue}Waldch{default}!"); } case 5: { - CPrintToChatAll("{gold}Silvester{default}: Our enemies are HERE not THERE {darkblue}Waldch{default}!"); + RaidbossSilvester_NPCTalkMessage(AllyEntity, "Our enemies are HERE not THERE {darkblue}Waldch{default}!"); } } float WorldSpaceVec[3]; WorldSpaceCenter(npc.index, WorldSpaceVec); @@ -540,7 +547,7 @@ public void RaidbossBlueGoggles_ClotThink(int iNPC) { case 0: { - CPrintToChatAll("{darkblue}Waldch{default}: I'll avenge you {gold}Silvester{default}!"); + RaidbossBlueGoggles_NPCTalkMessage(npc.index, "I'll avenge you {gold}Silvester{default}!"); } case 1: { @@ -548,11 +555,11 @@ public void RaidbossBlueGoggles_ClotThink(int iNPC) } case 2: { - CPrintToChatAll("{darkblue}Waldch{default}: Just you and me now!"); + RaidbossBlueGoggles_NPCTalkMessage(npc.index, "Just you and me now!"); } case 3: { - CPrintToChatAll("{darkblue}Waldch{default}: I'll stop you by myself!"); + RaidbossBlueGoggles_NPCTalkMessage(npc.index, "I'll stop you by myself!"); } } } @@ -562,19 +569,19 @@ public void RaidbossBlueGoggles_ClotThink(int iNPC) { case 0: { - CPrintToChatAll("{darkblue}Waldch{default}: You really shouldn't have done that!"); + RaidbossBlueGoggles_NPCTalkMessage(npc.index, "You really shouldn't have done that!"); } case 1: { - CPrintToChatAll("{darkblue}Waldch{default}: You'll pay for that!"); + RaidbossBlueGoggles_NPCTalkMessage(npc.index, "You'll pay for that!"); } case 2: { - CPrintToChatAll("{darkblue}Waldch{default}: Quit this right now!"); + RaidbossBlueGoggles_NPCTalkMessage(npc.index, "Quit this right now!"); } case 3: { - CPrintToChatAll("{darkblue}Waldch{default}: You little ****!"); + RaidbossBlueGoggles_NPCTalkMessage(npc.index, "You little ****!"); } } } @@ -1109,7 +1116,7 @@ public Action RaidbossBlueGoggles_OnTakeDamage(int victim, int &attacker, int &i RemoveNpcFromEnemyList(npc.index); GiveProgressDelay(28.0); damage = 0.0; - CPrintToChatAll("{darkblue}Waldch{default}: You win, I won't stop you no anymore..."); + RaidbossBlueGoggles_NPCTalkMessage(npc.index, "You win, I won't stop you no anymore..."); return Plugin_Handled; } diff --git a/addons/sourcemod/scripting/zombie_riot/npc/raidmode_bosses/xeno/npc_infected_silvester.sp b/addons/sourcemod/scripting/zombie_riot/npc/raidmode_bosses/xeno/npc_infected_silvester.sp index 1eab42e5be..7ca8705912 100644 --- a/addons/sourcemod/scripting/zombie_riot/npc/raidmode_bosses/xeno/npc_infected_silvester.sp +++ b/addons/sourcemod/scripting/zombie_riot/npc/raidmode_bosses/xeno/npc_infected_silvester.sp @@ -370,8 +370,6 @@ methodmap RaidbossSilvester < CClotBody f_ExplodeDamageVulnerabilityNpc[npc.index] = 0.7; RaidModeScaling *= amount_of_people; //More then 9 and he raidboss gets some troubles, bufffffffff - - SDKHook(npc.index, SDKHook_OnTakeDamagePost, RaidbossSilvester_OnTakeDamagePost); b_angered_twice[npc.index] = false; @@ -458,7 +456,6 @@ methodmap RaidbossSilvester < CClotBody npc.m_flNextRangedAttack = GetGameTime(npc.index) + 5.0; Citizen_MiniBossSpawn(); npc.StartPathing(); - npc.m_flTimebeforekamehameha = GetGameTime(npc.index) + 20.0; npc.m_iInKame = 0; @@ -474,23 +471,30 @@ methodmap RaidbossSilvester < CClotBody { case 1: { - CPrintToChatAll("{gold}Silvester{default}: Is... Is this really where we must change your mind?"); + RaidbossSilvester_NPCTalkMessage(npc.index, "Is... Is this really where we must change your mind?"); } case 2: { - CPrintToChatAll("{gold}Silvester{default}: Please just turn away!"); + RaidbossSilvester_NPCTalkMessage(npc.index, "Please just turn away!"); } case 3: { - CPrintToChatAll("{gold}Silvester{default}: This is too risky, we can't let you get any closer!"); + RaidbossSilvester_NPCTalkMessage(npc.index, "This is too risky, we can't let you get any closer!"); } } } + SilvesterApplyEffects(npc.index, false); return npc; } } +void RaidbossSilvester_NPCTalkMessage(int iNPC, const char[] message, any ...) +{ + char buffer[255]; + VFormat(buffer, sizeof(buffer), message, 3); + PrintNPCMessageWithPrefixes(iNPC, "gold", buffer); +} static void Internal_ClotThink(int iNPC) { @@ -509,15 +513,15 @@ static void Internal_ClotThink(int iNPC) { case 0: { - CPrintToChatAll("{gold}Silvester{default}: Give up and turn yourself in."); + RaidbossSilvester_NPCTalkMessage(npc.index, "Give up and turn yourself in."); } case 1: { - CPrintToChatAll("{gold}Silvester{default}: Ready to listen to us?"); + RaidbossSilvester_NPCTalkMessage(npc.index, "Ready to listen to us?"); } case 2: { - CPrintToChatAll("{gold}Silvester{default}: Maybe you just hate us?"); + RaidbossSilvester_NPCTalkMessage(npc.index, "Maybe you just hate us?"); } } } @@ -527,15 +531,15 @@ static void Internal_ClotThink(int iNPC) { case 0: { - CPrintToChatAll("{gold}Silvester{default}: Death is your only salvation!"); + RaidbossSilvester_NPCTalkMessage(npc.index, "Death is your only salvation!"); } case 1: { - CPrintToChatAll("{gold}Silvester{default}: Let me kill you, you're already infected anyway!"); + RaidbossSilvester_NPCTalkMessage(npc.index, "Let me kill you, you're already infected anyway!"); } case 2: { - CPrintToChatAll("{gold}Silvester{default}: ******* like you NEVER listen, do you?"); + RaidbossSilvester_NPCTalkMessage(npc.index, "******* like you NEVER listen, do you?"); } } } @@ -648,23 +652,23 @@ static void Internal_ClotThink(int iNPC) case 1: { if(!XenoExtraLogic()) - CPrintToChatAll("{gold}Silvester{default}: Come here!"); + RaidbossSilvester_NPCTalkMessage(npc.index, "Come here!"); else - CPrintToChatAll("{gold}Silvester{default}: Just step away from here!!"); + RaidbossSilvester_NPCTalkMessage(npc.index, "Just step away from here!!"); } case 2: { if(!XenoExtraLogic()) - CPrintToChatAll("{gold}Silvester{default}: That's it!"); + RaidbossSilvester_NPCTalkMessage(npc.index, "That's it!"); else - CPrintToChatAll("{gold}Silvester{default}: I don't want to get infected again..!!"); + RaidbossSilvester_NPCTalkMessage(npc.index, "I don't want to get infected again..!!"); } case 3: { if(!XenoExtraLogic()) - CPrintToChatAll("{gold}Silvester{default}: Meet the real deal!"); + RaidbossSilvester_NPCTalkMessage(npc.index, "Meet the real deal!"); else - CPrintToChatAll("{gold}Silvester{default}: Leave and turn back. This place is too dangerous for you!"); + RaidbossSilvester_NPCTalkMessage(npc.index, "Leave and turn back. This place is too dangerous for you!"); } } } @@ -675,23 +679,23 @@ static void Internal_ClotThink(int iNPC) case 1: { if(!XenoExtraLogic()) - CPrintToChatAll("{gold}Silvester{default}: It's over you little..!"); + RaidbossSilvester_NPCTalkMessage(npc.index, "It's over you little..!"); else - CPrintToChatAll("{gold}Silvester{default}: No no no.... I can't not again.."); + RaidbossSilvester_NPCTalkMessage(npc.index, "No no no.... I can't not again.."); } case 2: { if(!XenoExtraLogic()) - CPrintToChatAll("{gold}Silvester{default}: If you won't listen, I'll have to erase you before you become one of them!"); + RaidbossSilvester_NPCTalkMessage(npc.index, "If you won't listen, I'll have to erase you before you become one of them!"); else - CPrintToChatAll("{gold}Silvester{default}: So many keep falling for this!!"); + RaidbossSilvester_NPCTalkMessage(npc.index, "So many keep falling for this!!"); } case 3: { if(!XenoExtraLogic()) - CPrintToChatAll("{gold}Silvester{default}: GO TO HELL YOU MERCS!!!"); + RaidbossSilvester_NPCTalkMessage(npc.index, "GO TO HELL YOU MERCS!!!"); else - CPrintToChatAll("{gold}Silvester{default}: ..."); + RaidbossSilvester_NPCTalkMessage(npc.index, "..."); } } } @@ -861,30 +865,30 @@ static void Internal_ClotThink(int iNPC) case 1: { if(!XenoExtraLogic()) - CPrintToChatAll("{gold}Silvester{default}: N-No!"); + RaidbossSilvester_NPCTalkMessage(npc.index, "N-No!"); else - CPrintToChatAll("{gold}Silvester{default}: {darkblue}Waldch{default}..?"); + RaidbossSilvester_NPCTalkMessage(npc.index, "{darkblue}Waldch{default}..?"); } case 2: { if(!XenoExtraLogic()) - CPrintToChatAll("{gold}Silvester{default}: Why him?? Attack me you bunch of cowards!"); + RaidbossSilvester_NPCTalkMessage(npc.index, "Why him?? Attack me you bunch of cowards!"); else - CPrintToChatAll("{gold}Silvester{default}: Don't faint, I'm here, I'm here for you!"); + RaidbossSilvester_NPCTalkMessage(npc.index, "Don't faint, I'm here, I'm here for you!"); } case 3: { if(!XenoExtraLogic()) - CPrintToChatAll("{gold}Silvester{default}: We're gonna have to do this the hard way."); + RaidbossSilvester_NPCTalkMessage(npc.index, "We're gonna have to do this the hard way."); else - CPrintToChatAll("{gold}Silvester{default}: ... I won't let you get away with this."); + RaidbossSilvester_NPCTalkMessage(npc.index, "... I won't let you get away with this."); } case 4: { if(!XenoExtraLogic()) - CPrintToChatAll("{gold}Silvester{default}: Hang on, I've got you."); + RaidbossSilvester_NPCTalkMessage(npc.index, "Hang on, I've got you."); else - CPrintToChatAll("{gold}Silvester{default}: Please rest, I'll take them out."); + RaidbossSilvester_NPCTalkMessage(npc.index, "Please rest, I'll take them out."); } } } @@ -1374,7 +1378,7 @@ static Action Internal_OnTakeDamage(int victim, int &attacker, int &inflictor, f RemoveNpcFromEnemyList(npc.index); GiveProgressDelay(28.0); damage = 0.0; - CPrintToChatAll("{gold}Silvester{default}: WHY DO YOU REFUSE TO LISTEN TO OUR WARNINGS!?"); + RaidbossSilvester_NPCTalkMessage(npc.index, "WHY DO YOU REFUSE TO LISTEN TO OUR WARNINGS!?"); return Plugin_Handled; } } @@ -1407,19 +1411,19 @@ public void RaidbossSilvester_OnTakeDamagePost(int victim, int attacker, int inf { case 1: { - CPrintToChatAll("{gold}Silvester{default}: You think that was my all?"); + RaidbossSilvester_NPCTalkMessage(npc.index, "You think that was my all?"); } case 2: { - CPrintToChatAll("{gold}Silvester{default}: You have no idea what I'm capable of..."); + RaidbossSilvester_NPCTalkMessage(npc.index, "You have no idea what I'm capable of..."); } case 3: { - CPrintToChatAll("{gold}Silvester{default}: You think this is it?"); + RaidbossSilvester_NPCTalkMessage(npc.index, "You think this is it?"); } case 4: { - CPrintToChatAll("{gold}Silvester{default}: I'm not close to being done yet!"); + RaidbossSilvester_NPCTalkMessage(npc.index, "I'm not close to being done yet!"); } } } @@ -1429,19 +1433,19 @@ public void RaidbossSilvester_OnTakeDamagePost(int victim, int attacker, int inf { case 1: { - CPrintToChatAll("{gold}Silvester{default}: You're blinded by your own arrogance!"); + RaidbossSilvester_NPCTalkMessage(npc.index, "You're blinded by your own arrogance!"); } case 2: { - CPrintToChatAll("{gold}Silvester{default}: You think I'm weak alone?!"); + RaidbossSilvester_NPCTalkMessage(npc.index, "You think I'm weak alone?!"); } case 3: { - CPrintToChatAll("{gold}Silvester{default}: You refuse to listen and thus, pay the price!"); + RaidbossSilvester_NPCTalkMessage(npc.index, "You refuse to listen and thus, pay the price!"); } case 4: { - CPrintToChatAll("{gold}Silvester{default}: I'll avenge you {darkblue}Waldch{default}!"); + RaidbossSilvester_NPCTalkMessage(npc.index, "I'll avenge you {darkblue}Waldch{default}!"); } } } @@ -2011,32 +2015,32 @@ bool SharedGiveupSilvester(int entity, int entity2) { ReviveAll(true); if(!XenoExtraLogic()) - CPrintToChatAll("{gold}Silvester{default}: We tried to help, this will be painful for you."); + RaidbossSilvester_NPCTalkMessage(entity, "We tried to help, this will be painful for you."); else - CPrintToChatAll("{gold}Silvester{default}: You never listen. I will not assist you anymore."); + RaidbossSilvester_NPCTalkMessage(entity, "You never listen. I will not assist you anymore."); i_TalkDelayCheck += 1; } case 1: { if(!XenoExtraLogic()) - CPrintToChatAll("{darkblue}Waldch{default}: There is a far greater enemy than us, not even we can beat him."); + RaidbossBlueGoggles_NPCTalkMessage(entity2, "There is a far greater enemy than us, not even we can beat him."); else - CPrintToChatAll("{darkblue}Waldch{default}: It appears like you already know what you are get yourselves into."); + RaidbossBlueGoggles_NPCTalkMessage(entity2, "It appears like you already know what you are get yourselves into."); i_TalkDelayCheck += 1; } case 2: { - CPrintToChatAll("{darkblue}Waldch{default}: I doubt you can defeat him, but if you do somehow manage to, you will help us in defeating {darkblue}Chaos{default}."); + RaidbossBlueGoggles_NPCTalkMessage(entity2, "I doubt you can defeat him, but if you do somehow manage to, you will help us in defeating {darkblue}Chaos{default}."); i_TalkDelayCheck += 1; } case 3: { if(!XenoExtraLogic()) - CPrintToChatAll("{gold}Silvester{default}: Good luck."); + RaidbossSilvester_NPCTalkMessage(entity, "Good luck."); else - CPrintToChatAll("{gold}Silvester{default}: I REFUSE to let this happen again to us two, don't say I didnt warn you!"); + RaidbossSilvester_NPCTalkMessage(entity, "I REFUSE to let this happen again to us two, don't say I didnt warn you!"); i_TalkDelayCheck = 5; for (int client = 1; client <= MaxClients; client++) @@ -2509,11 +2513,11 @@ public void Raidmode_Shared_Xeno_Duo(int entity) { if(XenoExtraLogic()) { - CPrintToChatAll("{gold}Silvester{default}: You're too stubborn for your own good."); + RaidbossSilvester_NPCTalkMessage(entity, "You're too stubborn for your own good."); } else { - CPrintToChatAll("{gold}Silvester{default}: Maybe we should've thought of a better way to warn them."); + RaidbossSilvester_NPCTalkMessage(entity, "Maybe we should've thought of a better way to warn them."); } return; } @@ -2521,11 +2525,11 @@ public void Raidmode_Shared_Xeno_Duo(int entity) { if(XenoExtraLogic()) { - CPrintToChatAll("{darkblue}Waldch{default}: Too far. Turn back."); + RaidbossBlueGoggles_NPCTalkMessage(entity, "Too far. Turn back."); } else { - CPrintToChatAll("{darkblue}Waldch{default}: Way better than dying to {green}Him{default}."); + RaidbossBlueGoggles_NPCTalkMessage(entity, "Way better than dying to {green}Him{default}."); } } } @@ -2598,7 +2602,7 @@ static void Internal_Weapon_Lines(RaidbossSilvester npc, int client) if(valid) { - CPrintToChatAll("{gold}Silvester{default}: %s", Text_Lines); + RaidbossSilvester_NPCTalkMessage(npc.index, "%s", Text_Lines); fl_said_player_weaponline_time[npc.index] = GameTime + GetRandomFloat(17.0, 26.0); b_said_player_weaponline[client] = true; } diff --git a/addons/sourcemod/scripting/zombie_riot/npc/raidmode_bosses/xeno/npc_mrx.sp b/addons/sourcemod/scripting/zombie_riot/npc/raidmode_bosses/xeno/npc_mrx.sp index 2d7e54a845..8d66bbabe4 100644 --- a/addons/sourcemod/scripting/zombie_riot/npc/raidmode_bosses/xeno/npc_mrx.sp +++ b/addons/sourcemod/scripting/zombie_riot/npc/raidmode_bosses/xeno/npc_mrx.sp @@ -319,7 +319,7 @@ methodmap RaidbossMrX < CClotBody npc.m_flNextRangedSpecialAttackHappens = 0.0; i_SideHurtWhich[npc.index] = 0; - CPrintToChatAll("{green}Vivithorn: ..."); + NPCTalkMessage(npc.index, "..."); Citizen_MiniBossSpawn(); npc.StartPathing(); @@ -333,6 +333,11 @@ methodmap RaidbossMrX < CClotBody } } +static void NPCTalkMessage(int iNPC, const char[] message) +{ + PrintNPCMessageWithPrefixes(iNPC, "green", message, .messageColor = "green"); +} + public void RaidbossMrX_ClotThink(int iNPC) { RaidbossMrX npc = view_as(iNPC); @@ -343,7 +348,7 @@ public void RaidbossMrX_ClotThink(int iNPC) if(!npc.m_fbGunout) { npc.m_fbGunout = true; - CPrintToChatAll("{green} The infection got all your friends... Run while you can."); + CPrintToChatAll("{green}The infection got all your friends... Run while you can."); } } if(RaidModeTime < GetGameTime()) @@ -352,7 +357,7 @@ public void RaidbossMrX_ClotThink(int iNPC) i_RaidGrantExtra[npc.index] = 0; ForcePlayerLoss(); RaidBossActive = INVALID_ENT_REFERENCE; - CPrintToChatAll("{green} The infection proves too strong for you to resist as you join his side..."); + CPrintToChatAll("{green}The infection proves too strong for you to resist as you join his side..."); func_NPCThink[npc.index] = INVALID_FUNCTION; return; } @@ -1072,29 +1077,18 @@ public void RaidbossMrX_NPCDeath(int entity) RaidModeTime += 3.5; //cant afford to delete it, since duo. if(i_RaidGrantExtra[npc.index] == 0 && GameRules_GetRoundState() == RoundState_ZombieRiot) { - for (int client_repat = 1; client_repat <= MaxClients; client_repat++) + if(XenoExtraLogic()) { - if(IsValidClient(client_repat) && GetClientTeam(client_repat) == 2 && TeutonType[client_repat] != TEUTON_WAITING) - { - if(XenoExtraLogic()) - { - CPrintToChat(client_repat, "{green}Vivithorn: I have to activate Project Calmaticus..."); - } - } + NPCTalkMessage(npc.index, "I have to activate Project Calmaticus..."); } } if(i_RaidGrantExtra[npc.index] == 1 && GameRules_GetRoundState() == RoundState_ZombieRiot) { - for (int client_repat = 1; client_repat <= MaxClients; client_repat++) + if(XenoExtraLogic()) { - if(IsValidClient(client_repat) && GetClientTeam(client_repat) == 2 && TeutonType[client_repat] != TEUTON_WAITING) - { - if(XenoExtraLogic()) - { - CPrintToChat(client_repat, "{green}Vivithorn Escapes... but heavily wounded..."); - } - } + CPrintToChatAll("{green}Vivithorn escapes... but heavily wounded..."); } + for(int i; i < i_MaxcountNpcTotal; i++) { int other = EntRefToEntIndexFast(i_ObjectsNpcsTotal[i]); diff --git a/addons/sourcemod/scripting/zombie_riot/npc/raidmode_bosses/xeno/npc_nemesis.sp b/addons/sourcemod/scripting/zombie_riot/npc/raidmode_bosses/xeno/npc_nemesis.sp index ce0a4991b0..c38cfdd5f1 100644 --- a/addons/sourcemod/scripting/zombie_riot/npc/raidmode_bosses/xeno/npc_nemesis.sp +++ b/addons/sourcemod/scripting/zombie_riot/npc/raidmode_bosses/xeno/npc_nemesis.sp @@ -314,14 +314,15 @@ methodmap RaidbossNemesis < CClotBody i_GunMode[npc.index] = 0; i_GunAmmo[npc.index] = 0; fl_StopDodgeCD[npc.index] = GetGameTime(npc.index) + 25.0; + if(isEnraged) { FormatEx(c_NpcName[npc.index], sizeof(c_NpcName[]), "Enraged Calmaticus"); - CPrintToChatAll("{green}Calmaticus: YOU WILL BECOME DNA SUPLIMENTS."); + NPCTalkMessage(npc.index, "YOU WILL BECOME DNA SUPLIMENTS."); } else { - CPrintToChatAll("{green}Calmaticus: You all will be one with the virus."); + NPCTalkMessage(npc.index, "You all will be one with the virus."); } npc.m_iWearable6 = npc.EquipItem("weapon_bone", "models/workshop/player/items/pyro/hw2013_mucus_membrane/hw2013_mucus_membrane.mdl"); @@ -333,6 +334,11 @@ methodmap RaidbossNemesis < CClotBody } } +static void NPCTalkMessage(int iNPC, const char[] message) +{ + PrintNPCMessageWithPrefixes(iNPC, "green", message, .customName = "Calmaticus", .messageColor = "green", .customNameIsTranslated = true); +} + public void RaidbossNemesis_ClotThink(int iNPC) { RaidbossNemesis npc = view_as(iNPC); @@ -343,7 +349,7 @@ public void RaidbossNemesis_ClotThink(int iNPC) if(!npc.m_fbGunout) { npc.m_fbGunout = true; - CPrintToChatAll("{green} The infection got all your friends... Run while you can."); + CPrintToChatAll("{green}The infection got all your friends... Run while you can."); } } if(RaidModeTime < GetGameTime()) @@ -352,7 +358,7 @@ public void RaidbossNemesis_ClotThink(int iNPC) i_RaidGrantExtra[npc.index] = 0; ForcePlayerLoss(); RaidBossActive = INVALID_ENT_REFERENCE; - CPrintToChatAll("{green} The infection proves too strong for you to resist as you join his side..."); + CPrintToChatAll("{green}The infection proves too strong for you to resist as you join his side..."); func_NPCThink[npc.index] = INVALID_FUNCTION; return; } diff --git a/addons/sourcemod/scripting/zombie_riot/npc/seaborn/npc_lastknight.sp b/addons/sourcemod/scripting/zombie_riot/npc/seaborn/npc_lastknight.sp index 69d1a842ba..77b61d6e72 100644 --- a/addons/sourcemod/scripting/zombie_riot/npc/seaborn/npc_lastknight.sp +++ b/addons/sourcemod/scripting/zombie_riot/npc/seaborn/npc_lastknight.sp @@ -173,6 +173,11 @@ methodmap LastKnight < CClotBody } } +static void NPCTalkMessage(int iNPC, const char[] message) +{ + PrintNPCMessageWithPrefixes(iNPC, "gray", message); +} + public void LastKnight_ClotThink(int iNPC) { LastKnight npc = view_as(iNPC); @@ -240,7 +245,7 @@ public void LastKnight_ClotThink(int iNPC) if(!found) { PeaceKnight = 1; - CPrintToChatAll("{gray}The Last Knight{default}: You have proven yourself, you're against the ocean, and you're not my enemy."); + NPCTalkMessage(npc.index, "You have proven yourself, you're against the ocean, and you're not my enemy."); int owner; for(int client = 1; client <= MaxClients; client++) diff --git a/addons/sourcemod/scripting/zombie_riot/npc/special/npc_3650.sp b/addons/sourcemod/scripting/zombie_riot/npc/special/npc_3650.sp index cc12fb7b31..4f319432f8 100644 --- a/addons/sourcemod/scripting/zombie_riot/npc/special/npc_3650.sp +++ b/addons/sourcemod/scripting/zombie_riot/npc/special/npc_3650.sp @@ -280,29 +280,35 @@ methodmap ThirtySixFifty < CClotBody { case 0: { - CPrintToChatAll("{white}3650{default}: You, zombie guy, follow me."); + NPCTalkMessage(npc.index, "You, zombie guy, follow me."); } case 1: { - CPrintToChatAll("{white}3650{default}: I'm more elite than you are, come on."); + NPCTalkMessage(npc.index, "I'm more elite than you are, come on."); } case 2: { - CPrintToChatAll("{white}3650{default}: You guys can't tell, but I have a mean poker face."); + NPCTalkMessage(npc.index, "You guys can't tell, but I have a mean poker face."); } case 3: { - CPrintToChatAll("{white}3650{default}: THEY have medics, why don't WE have medics?"); + NPCTalkMessage(npc.index, "THEY have medics, why don't WE have medics?"); } case 4: { - CPrintToChatAll("{white}3650{default}: At least I still have meatshields."); + NPCTalkMessage(npc.index, "At least I still have meatshields."); } } } return npc; } } + +static void NPCTalkMessage(int iNPC, const char[] message) +{ + PrintNPCMessageWithPrefixes(iNPC, "white", message); +} + static void ClotThink(int iNPC) { ThirtySixFifty npc = view_as(iNPC); diff --git a/addons/sourcemod/scripting/zombie_riot/npc/special/npc_fallen_warrior.sp b/addons/sourcemod/scripting/zombie_riot/npc/special/npc_fallen_warrior.sp index 32781ec988..3f706ac3f4 100644 --- a/addons/sourcemod/scripting/zombie_riot/npc/special/npc_fallen_warrior.sp +++ b/addons/sourcemod/scripting/zombie_riot/npc/special/npc_fallen_warrior.sp @@ -273,6 +273,11 @@ methodmap FallenWarrior < CClotBody } } +static void NPCTalkMessage(int iNPC, const char[] message) +{ + PrintNPCMessageWithPrefixes(iNPC, "crimson", message, .customName = "Guln"); +} + public void FallenWarrior_ClotThink(int iNPC) { FallenWarrior npc = view_as(iNPC); @@ -345,7 +350,7 @@ public void FallenWarrior_ClotThink(int iNPC) i_fallen_eyeparticle[npc.index] = EntIndexToEntRef(ParticleEffectAt_Parent(flPos, "unusual_psychic_eye_white_glow", npc.index, "head", {0.0,5.0,-15.0})); i_fallen_bodyparticle[npc.index] = EntIndexToEntRef(ParticleEffectAt_Parent(flPos, "env_snow_light_001", npc.index, "m_vecAbsOrigin", {50.0,-200.0,0.0})); - CPrintToChatAll("{crimson}Guln{default}: You must stop {white}Whiteflower{default}! Once and for all..."); + NPCTalkMessage(npc.index, "You must stop {white}Whiteflower{default}! Once and for all..."); } } } @@ -502,7 +507,7 @@ public void FallenWarrior_NPCDeath(int entity) if(GetTeam(entity) == TFTeam_Red) { - CPrintToChatAll("{crimson}Guln{default}: And if it comes to this... this {crimson}Chaos{default}... you know what to do..."); + NPCTalkMessage(npc.index, "And if it comes to this... this {crimson}Chaos{default}... you know what to do..."); } else { @@ -510,19 +515,19 @@ public void FallenWarrior_NPCDeath(int entity) { case 1: { - CPrintToChatAll("{crimson}Guln{default}: Thank... you..."); + NPCTalkMessage(npc.index, "Thank... you..."); } case 2: { - CPrintToChatAll("{crimson}Guln{default}: This feeling..."); + NPCTalkMessage(npc.index, "This feeling..."); } case 3: { - CPrintToChatAll("{crimson}Guln{default}: Bob... My friend..."); + NPCTalkMessage(npc.index, "Bob... My friend..."); } case 4: { - CPrintToChatAll("{crimson}Guln{default}: Must... stop..."); + NPCTalkMessage(npc.index, "Must... stop..."); } } } diff --git a/addons/sourcemod/scripting/zombie_riot/npc/special/npc_john_the_allmighty.sp b/addons/sourcemod/scripting/zombie_riot/npc/special/npc_john_the_allmighty.sp index cd66fb0f83..b6c69d450c 100644 --- a/addons/sourcemod/scripting/zombie_riot/npc/special/npc_john_the_allmighty.sp +++ b/addons/sourcemod/scripting/zombie_riot/npc/special/npc_john_the_allmighty.sp @@ -186,19 +186,19 @@ methodmap JohnTheAllmighty < CClotBody { case 1: { - CPrintToChatAll("{crimson}John The Almighty{default}: I need some money donations, care to give it?"); + NPCTalkMessage(npc.index, "I need some money donations, care to give it?"); } case 2: { - CPrintToChatAll("{crimson}John The Almighty{crimson}: I will sell your organs."); + NPCTalkMessage(npc.index, "{crimson}I will sell your organs."); } case 3: { - CPrintToChatAll("{crimson}John The Almighty{default}: You will fund my efforts."); + NPCTalkMessage(npc.index, "You will fund my efforts."); } case 4: { - CPrintToChatAll("{crimson}John The Almighty{default}: You look easy to rob."); + NPCTalkMessage(npc.index, "You look easy to rob."); } } npc.m_iBleedType = 0; @@ -245,6 +245,11 @@ methodmap JohnTheAllmighty < CClotBody } } +static void NPCTalkMessage(int iNPC, const char[] message) +{ + PrintNPCMessageWithPrefixes(iNPC, "crimson", message, .customName = "John The Almighty"); +} + public void JohnTheAllmighty_ClotThink(int iNPC) { JohnTheAllmighty npc = view_as(iNPC); @@ -494,7 +499,7 @@ public void JohnTheAllmighty_OnTakeDamagePost(int victim, int attacker, int infl if(npc.m_iActualHealth <= 0) { SDKUnhook(npc.index, SDKHook_OnTakeDamagePost, JohnTheAllmighty_OnTakeDamagePost); - CPrintToChatAll("{crimson}John The Almighty {default}: OH NUTS! I left my oven on! Bye!"); + NPCTalkMessage(npc.index, "OH NUTS! I left my oven on! Bye!"); CPrintToChatAll("{green}He also left behind his wallet and drops you an extra cash."); npc.m_iActualHealth = 9999999; for(int client = 1; client <= MaxClients; client++) diff --git a/addons/sourcemod/scripting/zombie_riot/npc/special/npc_ravaging_intellect.sp b/addons/sourcemod/scripting/zombie_riot/npc/special/npc_ravaging_intellect.sp index 7c671c3563..162b60e6bc 100644 --- a/addons/sourcemod/scripting/zombie_riot/npc/special/npc_ravaging_intellect.sp +++ b/addons/sourcemod/scripting/zombie_riot/npc/special/npc_ravaging_intellect.sp @@ -266,7 +266,7 @@ methodmap RavagingIntellect < CClotBody MarkAreaForBuff[0] = 0.0; if(GetRandomInt(0,100) == 100) { - CPrintToChatAll("{darkblue}Ravaging Intellect{default}: What is this, some type of rioting of Zombies?"); + NPCTalkMessage(npc.index, "What is this, some type of rioting of Zombies?"); } else { @@ -274,27 +274,27 @@ methodmap RavagingIntellect < CClotBody { case 0: { - CPrintToChatAll("{darkblue}Ravaging Intellect{default}: You're annoying."); + NPCTalkMessage(npc.index, "You're annoying."); } case 1: { - CPrintToChatAll("{darkblue}Ravaging Intellect{default}: Get out before I make you."); + NPCTalkMessage(npc.index, "Get out before I make you."); } case 2: { - CPrintToChatAll("{darkblue}Ravaging Intellect{default}: Blah blah blah I don't care."); + NPCTalkMessage(npc.index, "Blah blah blah I don't care."); } case 3: { - CPrintToChatAll("{darkblue}Ravaging Intellect{default}: Don't say hi."); + NPCTalkMessage(npc.index, "Don't say hi."); } case 4: { - CPrintToChatAll("{darkblue}Ravaging Intellect{default}: meow"); + NPCTalkMessage(npc.index, "meow"); } } } - Ravaging_SaySpecialLine(); + Ravaging_SaySpecialLine(npc.index); } else @@ -359,6 +359,15 @@ methodmap RavagingIntellect < CClotBody } } +static void NPCTalkMessage(int iNPC, const char[] message, any ...) +{ + char buffer[255]; + VFormat(buffer, sizeof(buffer), message, 3); + + // We just don't want to use the translated name + PrintNPCMessageWithPrefixes(iNPC, "darkblue", buffer, .customName = "Ravaging Intellectual"); +} + public void RavagingIntellect_ClotThink(int iNPC) { RavagingIntellect npc = view_as(iNPC); @@ -700,19 +709,19 @@ public void RavagingIntellect_NPCDeath(int entity) { case 0: { - CPrintToChatAll("{darkblue}Ravaging Intellect{default}: This is getting on my nerves, i'm leaving."); + NPCTalkMessage(npc.index, "This is getting on my nerves, i'm leaving."); } case 1: { - CPrintToChatAll("{darkblue}Ravaging Intellect{default}: Hope you'll have fun dealing with the aftermath."); + NPCTalkMessage(npc.index, "Hope you'll have fun dealing with the aftermath."); } case 2: { - CPrintToChatAll("{darkblue}Ravaging Intellect{default}: Just because you can, doesn't mean you should."); + NPCTalkMessage(npc.index, "Just because you can, doesn't mean you should."); } case 3: { - CPrintToChatAll("{darkblue}Ravaging Intellect{default}: You're really good at pissing me off."); + NPCTalkMessage(npc.index, "You're really good at pissing me off."); } } for(int client = 1; client <= MaxClients; client++) @@ -894,7 +903,7 @@ void RavagingIntellectEars(int iNpc, char[] attachment = "head") } -void Ravaging_SaySpecialLine() +void Ravaging_SaySpecialLine(int entity) { int victims; @@ -977,67 +986,67 @@ void Ravaging_SaySpecialLine() if(StrEqual(buffer, "Mikusch", false)) { - CPrintToChatAll("{darkblue}Ravaging Intellect{default}: ... Looks like {crimson}%N{default} thinks they can impersonate me, {crimson}i will kill you.",client); + NPCTalkMessage(entity, "... Looks like {crimson}%N{default} thinks they can impersonate me, {crimson}i will kill you.",client); } else if(StrEqual(buffer, "42", false)) { - CPrintToChatAll("{darkblue}Ravaging Intellect{default}: ... Hey {crimson}%N{default} why are you against me, arent we supposed to be a team?",client); + NPCTalkMessage(entity, "... Hey {crimson}%N{default} why are you against me, arent we supposed to be a team?",client); } else if(StrEqual(buffer, "literail", false)) { - CPrintToChatAll("{darkblue}Ravaging Intellect{default}: Get back to work {crimson}%N{default} , cadets dont get stuff for free.",client); + NPCTalkMessage(entity, "Get back to work {crimson}%N{default} , cadets dont get stuff for free.",client); } else if(StrEqual(buffer, "JuneOrJuly", false)) { - CPrintToChatAll("{darkblue}Ravaging Intellect{default}: Get back to work {crimson}%N{default} , cadets dont get stuff for free.",client); + NPCTalkMessage(entity, "Get back to work {crimson}%N{default} , cadets dont get stuff for free.",client); } else if(StrEqual(buffer, "wo", false)) { - CPrintToChatAll("{darkblue}Ravaging Intellect{default}: So about Bombermod {crimson}%N{default}...",client); + NPCTalkMessage(entity, "So about Bombermod {crimson}%N{default}...",client); } else if(StrEqual(buffer, "Batfoxkid", false)) { - CPrintToChatAll("{darkblue}Ravaging Intellect{default}: When will you finally be done with your scp rework {crimson}%N{default}?",client); + NPCTalkMessage(entity, "When will you finally be done with your scp rework {crimson}%N{default}?",client); } else if(StrEqual(buffer, "ficool2", false)) { - CPrintToChatAll("{darkblue}Ravaging Intellect{default}: Aren't you supposed to be shilling vscript some more {crimson}%N{default}?",client); + NPCTalkMessage(entity, "Aren't you supposed to be shilling vscript some more {crimson}%N{default}?",client); } - else if(StrEqual(buffer, "riversid", false)) + else if(StrEqual(buffer, "rivesid", false)) { - CPrintToChatAll("{darkblue}Ravaging Intellect{default}: I hope you keep it up {crimson}%N{default}, or else.",client); + NPCTalkMessage(entity, "I hope you keep it up {crimson}%N{default}, or else.",client); } else if(StrEqual(buffer, "eno", false)) { - CPrintToChatAll("{darkblue}Ravaging Intellect{default}: You did quite well so far {crimson}%N, but not well enough.{default}",client); + NPCTalkMessage(entity, "You did quite well so far {crimson}%N, but not well enough.{default}",client); } else if(StrEqual(buffer, "alex turtle", false)) { - CPrintToChatAll("{darkblue}Ravaging Intellect{default}: Your szf heros are not here to save you {crimson}%N{default}.",client); + NPCTalkMessage(entity, "Your szf heros are not here to save you {crimson}%N{default}.",client); } else if(StrEqual(buffer, "artvin", false)) { - CPrintToChatAll("{darkblue}Ravaging Intellect{default}: I will not say what you tell me to say {crimson}%N{default}.",client); + NPCTalkMessage(entity, "I will not say what you tell me to say {crimson}%N{default}.",client); } else if(StrEqual(buffer, "samuu, the cheesy slime", false)) { - CPrintToChatAll("{darkblue}Ravaging Intellect{default}: I vote {crimson}%N{default} for admin! (i dont know who you are)",client); + NPCTalkMessage(entity, "I vote {crimson}%N{default} for admin! (i dont know who you are)",client); } else if(StrEqual(buffer, "Black_Knight", false)) { - CPrintToChatAll("{darkblue}Ravaging Intellect{default}: Seems i have some hardware issues, can you help me out {crimson}%N{default} ?",client); + NPCTalkMessage(entity, "Seems i have some hardware issues, can you help me out {crimson}%N{default} ?",client); } } } diff --git a/addons/sourcemod/scripting/zombie_riot/npc/void/late/npc_void_speechless.sp b/addons/sourcemod/scripting/zombie_riot/npc/void/late/npc_void_speechless.sp index ad64a46708..a8dd181bb5 100644 --- a/addons/sourcemod/scripting/zombie_riot/npc/void/late/npc_void_speechless.sp +++ b/addons/sourcemod/scripting/zombie_riot/npc/void/late/npc_void_speechless.sp @@ -177,19 +177,19 @@ methodmap VoidSpeechless < CClotBody { case 0: { - CPrintToChatAll("{violet}Speechless{default}: It controlls us, it knows our immunity to chaos, kill us..."); + NPCTalkMessage(npc.index, "It controlls us, it knows our immunity to chaos, kill us..."); } case 1: { - CPrintToChatAll("{violet}Speechless{default}: Help me.."); + NPCTalkMessage(npc.index, "Help me.."); } case 2: { - CPrintToChatAll("{violet}Speechless{default}: Tell {blue}Sensal{default}.. his shields are useless..."); + NPCTalkMessage(npc.index, "Tell {blue}Sensal{default}.. his shields are useless..."); } case 3: { - CPrintToChatAll("{violet}Speechless{default}: I cannot controll my body..."); + NPCTalkMessage(npc.index, "I cannot controll my body..."); } } } @@ -224,6 +224,11 @@ methodmap VoidSpeechless < CClotBody } } +static void NPCTalkMessage(int iNPC, const char[] message) +{ + PrintNPCMessageWithPrefixes(iNPC, "violet", message); +} + public void VoidSpeechless_ClotThink(int iNPC) { VoidSpeechless npc = view_as(iNPC); @@ -622,7 +627,7 @@ void ExpidonsanExplorerLifeLoss(VoidSpeechless npc) ApplyStatusEffect(npc.index, npc.index, "Zilius Prime Technology", 99999.0); if(i_RaidGrantExtra[npc.index] == 1) { - CPrintToChatAll("{violet}Speechless{default}: Zilius was right... Im sorry...\n{purple}It takes full controll of The expidonsans body."); + NPCTalkMessage(npc.index, "Zilius was right... Im sorry...\n{purple}It takes full controll of The expidonsans body."); CPrintToChatAll("{violet}The forgotten expidonsans suit activates its protocolls and repells the void as much as it can, as such, blocks all healing from itself."); } if(IsValidEntity(npc.m_iWearable3)) diff --git a/addons/sourcemod/scripting/zombie_riot/npc/xeno_lab/npc_xeno_lab_security.sp b/addons/sourcemod/scripting/zombie_riot/npc/xeno_lab/npc_xeno_lab_security.sp index 796db0b8d0..ca0e2f306a 100644 --- a/addons/sourcemod/scripting/zombie_riot/npc/xeno_lab/npc_xeno_lab_security.sp +++ b/addons/sourcemod/scripting/zombie_riot/npc/xeno_lab/npc_xeno_lab_security.sp @@ -183,30 +183,17 @@ methodmap XenoLabSecurity < CClotBody npc.m_iWearable3 = npc.EquipItem("head", "models/workshop/player/items/heavy/spr18_starboard_crusader/spr18_starboard_crusader.mdl"); npc.m_iWearable4 = npc.EquipItem("head", "models/workshop/player/items/heavy/sum23_hog_heels/sum23_hog_heels.mdl"); - SetEntityRenderMode(npc.index, RENDER_TRANSALPHA); SetEntityRenderColor(npc.index, 50, 200, 50, 255); - SetEntityRenderMode(npc.m_iWearable1, RENDER_TRANSALPHA); SetEntityRenderColor(npc.m_iWearable1, 50, 200, 50, 255); - SetEntityRenderMode(npc.m_iWearable2, RENDER_TRANSALPHA); SetEntityRenderColor(npc.m_iWearable2, 50, 200, 50, 255); - SetEntityRenderMode(npc.m_iWearable3, RENDER_TRANSALPHA); SetEntityRenderColor(npc.m_iWearable3, 50, 200, 50, 255); - SetEntityRenderMode(npc.m_iWearable4, RENDER_TRANSALPHA); SetEntityRenderColor(npc.m_iWearable4, 50, 200, 50, 255); npc.m_bThisNpcIsABoss = true; npc.StartPathing(); - if(isLabVersion) - { - CPrintToChatAll("{red}[XENO LAB SECURITY PROTOCOL ACTIVATED]"); - CPrintToChatAll("{crimson}Xeno Lab Security{default}: INTRUDERS DETECTED. INITIATING CONTAINMENT PROCEDURES."); - } - else - { - CPrintToChatAll("{red}[XENO SECURITY UNIT DEPLOYED]"); - CPrintToChatAll("{green}Xeno Security{default}: Target acquired. Commencing elimination protocol."); - } + RequestFrame(Frame_AnnounceSpawn, EntIndexToEntRef(npc.index)); + npc.PlaySecurityAlertSound(); return npc; @@ -225,6 +212,44 @@ methodmap XenoLabSecurity < CClotBody } } +static void Frame_AnnounceSpawn(int ref) +{ + int entity = EntRefToEntIndex(ref); + if (entity == INVALID_ENT_REFERENCE || b_NpcHasDied[entity]) + return; + + // Needs to be delayed by a frame so everything shows in the right order + XenoLabSecurity npc = view_as(entity); + if (npc.m_bIsLabVersion) + { + CPrintToChatAll("{red}[XENO LAB SECURITY PROTOCOL ACTIVATED]"); + NPCTalkMessage(npc.index, "INTRUDERS DETECTED. INITIATING CONTAINMENT PROCEDURES."); + } + else + { + CPrintToChatAll("{red}[XENO SECURITY UNIT DEPLOYED]"); + NPCTalkMessage(npc.index, "Target acquired. Commencing elimination protocol."); + } +} + +static void NPCTalkMessage(int iNPC, const char[] message) +{ + char customName[64], color[32]; + + XenoLabSecurity npc = view_as(iNPC); + if (npc.m_bIsLabVersion) + { + color = "crimson"; + } + else + { + customName = "Xeno Security"; + color = "green"; + } + + PrintNPCMessageWithPrefixes(iNPC, color, message, .customName = customName); +} + public void XenoLabSecurity_ClotThink(int iNPC) { XenoLabSecurity npc = view_as(iNPC); @@ -582,12 +607,12 @@ public void XenoLabSecurity_NPCDeath(int entity) if(npc.m_bIsLabVersion) { - CPrintToChatAll("{crimson}Xeno Lab Security{default}: CRITICAL SYSTEM FAILURE... CONTAINMENT... BREACH..."); + NPCTalkMessage(npc.index, "CRITICAL SYSTEM FAILURE... CONTAINMENT... BREACH..."); CPrintToChatAll("{green}[CONTAINMENT BREACH - SECURITY SYSTEMS OFFLINE]"); } else { - CPrintToChatAll("{green}Xeno Security{default}: Termination failed.... report.. status.. {green}relay complete."); + NPCTalkMessage(npc.index, "Termination failed.... report.. status.. {green}relay complete."); CPrintToChatAll("{green}[SECURITY UNIT DESTROYED]"); } } \ No newline at end of file