From c0a3ed6574923c0d7622660a19c36e0c2380bcfe Mon Sep 17 00:00:00 2001 From: Jackz Date: Wed, 17 Jun 2020 15:47:16 -0500 Subject: [PATCH] Plugin fixes/changes --- README.md | 2 +- plugins/csgo-misc.smx | Bin 0 -> 4669 bytes plugins/l4d2_ai_minigun.smx | Bin 9168 -> 10191 bytes scripting/include/jutils.inc | 72 +++++++++++++++++++++++++++++++- scripting/l4d2_ai_minigun.sp | 66 ++++++++++++++++++++++------- scripting/l4d2_avoid_minigun.sp | 2 + 6 files changed, 125 insertions(+), 17 deletions(-) create mode 100644 plugins/csgo-misc.smx diff --git a/README.md b/README.md index beb0c3e..939e709 100644 --- a/README.md +++ b/README.md @@ -101,4 +101,4 @@ Technically it is louis using minigun with a model change, but it works fine. Note: Sometimes bill model fails to spawn in, and is just invisible. * **Commands:** - * `sm_spawn_minigun_bot ` - Spawns the ai bot infront of wherever you are looking. Can also use numbers (0-7). \ No newline at end of file + * `sm_spawn_minigun_bot ` - Spawns the ai bot infront of wherever you are looking. Can also use numbers (0-7). \ No newline at end of file diff --git a/plugins/csgo-misc.smx b/plugins/csgo-misc.smx new file mode 100644 index 0000000000000000000000000000000000000000..fff0de8b89adbbe8635c70f4a5400f2d8b99f200 GIT binary patch literal 4669 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 R5ov!)T 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 -1) { + strcopy(buffer, length, "Francis"); + }else if(StrContains(modelName,"teenangst",false) > -1) { + strcopy(buffer, length, "Zoey"); + }else if(StrContains(modelName,"namvet",false) > -1) { + strcopy(buffer, length, "Bill"); + }else if(StrContains(modelName,"manager",false) > -1) { + strcopy(buffer, length, "Louis"); + }else if(StrContains(modelName,"coach",false) > -1) { + strcopy(buffer, length, "Coach"); + }else if(StrContains(modelName,"producer",false) > -1) { + strcopy(buffer, length, "Rochelle"); + }else if(StrContains(modelName,"gambler",false) > -1) { + strcopy(buffer, length, "Nick"); + }else if(StrContains(modelName,"mechanic",false) > -1) { + strcopy(buffer, length, "Ellis"); + }else{ + return false; + } + return true; +} + +stock int GetSurvivorType(const char[] modelName) { + if(StrContains(modelName,"biker",false) > -1) { + return 6; + }else if(StrContains(modelName,"teenangst",false) > -1) { + return 5; + }else if(StrContains(modelName,"namvet",false) > -1) { + return 4; + }else if(StrContains(modelName,"manager",false) > -1) { + return 7; + }else if(StrContains(modelName,"coach",false) > -1) { + return 2; + }else if(StrContains(modelName,"producer",false) > -1) { + return 1; + }else if(StrContains(modelName,"gambler",false) > -1) { + return 0; + }else if(StrContains(modelName,"mechanic",false) > -1) { + return 3; + }else{ + return false; + } +} + +stock bool GiveClientWeapon(int client, const char[] wpnName, bool lasers) { + char sTemp[64]; + float pos[3]; + GetClientAbsOrigin(client, pos); + Format(sTemp, sizeof(sTemp), "weapon_%s", wpnName); + + int entity = CreateEntityByName(sTemp); + if( entity != -1 ) { + DispatchSpawn(entity); + TeleportEntity(entity, pos, NULL_VECTOR, NULL_VECTOR); + + if(lasers) SetEntProp(entity, Prop_Send, "m_upgradeBitVec", 4); + + EquipPlayerWeapon(client, entity); + return true; + }else{ + return false; + } } \ No newline at end of file diff --git a/scripting/l4d2_ai_minigun.sp b/scripting/l4d2_ai_minigun.sp index a4c5a0f..1d6d89c 100644 --- a/scripting/l4d2_ai_minigun.sp +++ b/scripting/l4d2_ai_minigun.sp @@ -26,15 +26,14 @@ public Plugin myinfo = int g_iSurvivors[MAXPLAYERS+1], g_iLastSpawnClient, g_iAvoidChar[MAXPLAYERS+1] = {-1,...}; -public void OnPluginStart() -{ +public void OnPluginStart() { EngineVersion g_Game = GetEngineVersion(); - if(g_Game != Engine_Left4Dead && g_Game != Engine_Left4Dead2) - { - SetFailState("This plugin is for L4D/L4D2 only."); + if(g_Game != Engine_Left4Dead2) { + SetFailState("This plugin is for L4D2 only."); } - RegAdminCmd("sm_spawn_minigun_bot", Command_SpawnAIBot, ADMFLAG_ROOT); + RegAdminCmd("sm_spawn_holdout_bot", Command_SpawnHoldoutBot, ADMFLAG_ROOT); + RegAdminCmd("sm_spawn_minigun_bot", Command_SpawnMinigunBot, ADMFLAG_ROOT); } public void OnMapStart() { @@ -53,7 +52,7 @@ public void OnClientPutInServer(int client) { } } -public Action Command_SpawnAIBot(int client, int args) { +public Action Command_SpawnMinigunBot(int client, int args) { char arg1[16]; if(args > 0) { GetCmdArg(1, arg1, sizeof(arg1)); @@ -74,7 +73,44 @@ public Action Command_SpawnAIBot(int client, int args) { //make sure spawns a little above vPos[2] += 1.0; - if(!SpawnSurvivor(vPos, vAng, model, true)) { + int survivor = SpawnSurvivor(vPos, vAng, model, true); + if(survivor > -1) { + GiveClientWeapon(survivor, "rifle_ak47", true); + }else{ + ReplyToCommand(client, "Failed to spawn survivor."); + } + }else{ + ReplyToCommand(client, "Usage: sm_spawn_minigun_bot <4=Bill, 5=Zoey, 6=Francis, 7=Louis>"); + } + return Plugin_Handled; +} + +public Action Command_SpawnHoldoutBot(int client, int args) { + char arg1[16]; + if(args > 0) { + GetCmdArg(1, arg1, sizeof(arg1)); + char model[64]; + if(!FindSurvivorModel(arg1, model, sizeof(model))) { + LogError("Could not find a survivor model."); + ReplyToCommand(client, "Could not find that survivor."); + return Plugin_Handled; + } + + //get ground: + float vPos[3], vAng[3]; + if(!GetGround(client, vPos, vAng)) { + LogError("Failed to find ground for survivor"); + ReplyToCommand(client, "Could not find a suitable ground location to spawn survivor."); + return Plugin_Handled; + } + //make sure spawns a little above + vPos[2] += 1.0; + + int survivor = SpawnSurvivor(vPos, vAng, model, false); + if(survivor > -1) { + GiveClientWeapon(survivor, "rifle_ak47", true); + SetEntProp(survivor, Prop_Send, "m_survivorCharacter", GetSurvivorType(model)); + }else{ ReplyToCommand(client, "Failed to spawn survivor."); } }else{ @@ -86,11 +122,11 @@ public Action Command_SpawnAIBot(int client, int args) { -stock bool SpawnSurvivor(const float vPos[3], const float vAng[3], const char[] model, bool spawn_minigun) { +stock int SpawnSurvivor(const float vPos[3], const float vAng[3], const char[] model, bool spawn_minigun) { int entity = CreateEntityByName("info_l4d1_survivor_spawn"); if( entity == -1 ) { LogError("Failed to create \"info_l4d1_survivor_spawn\""); - return false; + return -1; } //set character type (7 = Louis) DispatchKeyValue(entity, "character", "7"); @@ -114,7 +150,7 @@ stock bool SpawnSurvivor(const float vPos[3], const float vAng[3], const char[] if( bot_user_id <= 0 || (bot_client_id = GetClientOfUserId(bot_user_id)) <= 0 ) { LogError("Failed to match survivor, did they not spawn? [%d/%d]", bot_user_id, bot_client_id); - return false; + return -1; } SetClientName(bot_client_id, "MinigunBot"); TeleportEntity(bot_client_id, vPos, NULL_VECTOR, NULL_VECTOR); @@ -122,12 +158,13 @@ stock bool SpawnSurvivor(const float vPos[3], const float vAng[3], const char[] if(spawn_minigun && !SpawnMinigun(vPos, vAng)) { LogError("Failed to spawn minigun for client #%d", bot_client_id); KickClient(bot_client_id, "AIMinigun:MinigunSpawnFailure"); - return false; + return -1; } TeleportEntity(bot_client_id, vPos, NULL_VECTOR, NULL_VECTOR); SetEntityModel(bot_client_id, model); CreateTimer(1.5, TimerMove, bot_user_id); - return true; + //probably return user_id? + return bot_client_id; } stock bool TraceFilter(int entity, int contentsMask) { if( entity <= MaxClients ) @@ -151,6 +188,7 @@ void AvoidCharacter(int type, bool avoid) case 5: set = 2; // Zoey case 7: set = 1; // Francis case 6: set = 0; // Louis + default: return; } SetEntProp(i, Prop_Send, "m_survivorCharacter", set); } else { @@ -177,4 +215,4 @@ Action TimerMove(Handle timer, any client) { SetEntityMoveType(client, MOVETYPE_NONE); TeleportEntity(client, NULL_VECTOR, NULL_VECTOR, view_as({ 0.0, 0.0, 0.0 })); } -} \ No newline at end of file +} diff --git a/scripting/l4d2_avoid_minigun.sp b/scripting/l4d2_avoid_minigun.sp index 568dad8..73500fd 100644 --- a/scripting/l4d2_avoid_minigun.sp +++ b/scripting/l4d2_avoid_minigun.sp @@ -64,6 +64,8 @@ public Action CheckTimer(Handle timer) { //todo: only teleport once? //TeleportEntity(bot, finalPos, NULL_VECTOR, NULL_VECTOR); L4D2_RunScript("CommandABot({cmd=1,bot=GetPlayerFromUserID(%i),pos=Vector(%f,%f,%f)})", GetClientUserId(bot), finalPos[0], finalPos[1], finalPos[2]); + }else{ + L4D2_RunScript("CommandABot({cmd=3,bot=GetPlayerFromUserID(%i)})", GetClientUserId(bot)); } } }