Skip to content

Instantly share code, notes, and snippets.

@kristiker
Last active September 27, 2021 00:23
Show Gist options
  • Save kristiker/18c2b093ae64e2039709620a3314c121 to your computer and use it in GitHub Desktop.
Save kristiker/18c2b093ae64e2039709620a3314c121 to your computer and use it in GitHub Desktop.
CS:GO MIGI3 VScript: Loop through each player model
// =========================================================================================
// THIS FILE WAS GENERATED BY MIGI
// =========================================================================================
//
// VScripts example, can be used on hosts to play around with entities.
// They use a language called Squirrel and have its most basic functionalities.
// For the rest use CS:GO's implementations listed bellow.
// Not much can be done without events, no way to add them to this system for now.
//
// Documentation:
//
// http://squirrel-lang.org/doc/squirrel2.html
// https://developer.valvesoftware.com/wiki/List_of_Counter-Strike:_Global_Offensive_Script_Functions
// https://developer.valvesoftware.com/wiki/CSGO_Vscript_Examples
//
// - @ZooL_Smith
//
// =========================================================================================
// Example variable in the script scope
round_number <- 0;
::i <- 0;
::pm_list_full <-[
"models/player/custom_player/legacy/ctm_diver_varianta.mdl",
"models/player/custom_player/legacy/ctm_diver_variantb.mdl",
"models/player/custom_player/legacy/ctm_diver_variantc.mdl",
"models/player/custom_player/legacy/ctm_fbi.mdl",
"models/player/custom_player/legacy/ctm_fbi_varianta.mdl",
"models/player/custom_player/legacy/ctm_fbi_variantb.mdl",
"models/player/custom_player/legacy/ctm_fbi_variantc.mdl",
"models/player/custom_player/legacy/ctm_fbi_variantd.mdl",
"models/player/custom_player/legacy/ctm_fbi_variante.mdl",
"models/player/custom_player/legacy/ctm_fbi_variantf.mdl",
"models/player/custom_player/legacy/ctm_fbi_variantg.mdl",
"models/player/custom_player/legacy/ctm_fbi_varianth.mdl",
"models/player/custom_player/legacy/ctm_gendarmerie_varianta.mdl",
"models/player/custom_player/legacy/ctm_gendarmerie_variantb.mdl",
"models/player/custom_player/legacy/ctm_gendarmerie_variantc.mdl",
"models/player/custom_player/legacy/ctm_gendarmerie_variantd.mdl",
"models/player/custom_player/legacy/ctm_gendarmerie_variante.mdl",
"models/player/custom_player/legacy/ctm_gign.mdl",
"models/player/custom_player/legacy/ctm_gign_varianta.mdl",
"models/player/custom_player/legacy/ctm_gign_variantb.mdl",
"models/player/custom_player/legacy/ctm_gign_variantc.mdl",
"models/player/custom_player/legacy/ctm_gign_variantd.mdl",
"models/player/custom_player/legacy/ctm_gsg9.mdl",
"models/player/custom_player/legacy/ctm_gsg9_varianta.mdl",
"models/player/custom_player/legacy/ctm_gsg9_variantb.mdl",
"models/player/custom_player/legacy/ctm_gsg9_variantc.mdl",
"models/player/custom_player/legacy/ctm_gsg9_variantd.mdl",
"models/player/custom_player/legacy/ctm_heavy.mdl",
"models/player/custom_player/legacy/ctm_idf.mdl",
"models/player/custom_player/legacy/ctm_idf_variantb.mdl",
"models/player/custom_player/legacy/ctm_idf_variantc.mdl",
"models/player/custom_player/legacy/ctm_idf_variantd.mdl",
"models/player/custom_player/legacy/ctm_idf_variante.mdl",
"models/player/custom_player/legacy/ctm_idf_variantf.mdl",
"models/player/custom_player/legacy/ctm_sas.mdl",
"models/player/custom_player/legacy/ctm_sas_varianta.mdl",
"models/player/custom_player/legacy/ctm_sas_variantb.mdl",
"models/player/custom_player/legacy/ctm_sas_variantc.mdl",
"models/player/custom_player/legacy/ctm_sas_variantd.mdl",
"models/player/custom_player/legacy/ctm_sas_variante.mdl",
"models/player/custom_player/legacy/ctm_sas_variantf.mdl",
"models/player/custom_player/legacy/ctm_sas_variantg.mdl",
"models/player/custom_player/legacy/ctm_st6.mdl",
"models/player/custom_player/legacy/ctm_st6_varianta.mdl",
"models/player/custom_player/legacy/ctm_st6_variantb.mdl",
"models/player/custom_player/legacy/ctm_st6_variantc.mdl",
"models/player/custom_player/legacy/ctm_st6_variantd.mdl",
"models/player/custom_player/legacy/ctm_st6_variante.mdl",
"models/player/custom_player/legacy/ctm_st6_variantg.mdl",
"models/player/custom_player/legacy/ctm_st6_varianti.mdl",
"models/player/custom_player/legacy/ctm_st6_variantj.mdl",
"models/player/custom_player/legacy/ctm_st6_variantk.mdl",
"models/player/custom_player/legacy/ctm_st6_variantl.mdl",
"models/player/custom_player/legacy/ctm_st6_variantm.mdl",
"models/player/custom_player/legacy/ctm_st6_variantn.mdl",
"models/player/custom_player/legacy/ctm_swat.mdl",
"models/player/custom_player/legacy/ctm_swat_varianta.mdl",
"models/player/custom_player/legacy/ctm_swat_variantb.mdl",
"models/player/custom_player/legacy/ctm_swat_variantc.mdl",
"models/player/custom_player/legacy/ctm_swat_variantd.mdl",
"models/player/custom_player/legacy/ctm_swat_variante.mdl",
"models/player/custom_player/legacy/ctm_swat_variantf.mdl",
"models/player/custom_player/legacy/ctm_swat_variantg.mdl",
"models/player/custom_player/legacy/ctm_swat_varianth.mdl",
"models/player/custom_player/legacy/ctm_swat_varianti.mdl",
"models/player/custom_player/legacy/ctm_swat_variantj.mdl",
"models/player/custom_player/legacy/ctm_swat_variantk.mdl",
"models/player/custom_player/legacy/tm_anarchist.mdl",
"models/player/custom_player/legacy/tm_anarchist_varianta.mdl",
"models/player/custom_player/legacy/tm_anarchist_variantb.mdl",
"models/player/custom_player/legacy/tm_anarchist_variantc.mdl",
"models/player/custom_player/legacy/tm_anarchist_variantd.mdl",
"models/player/custom_player/legacy/tm_balkan_varianta.mdl",
"models/player/custom_player/legacy/tm_balkan_variantb.mdl",
"models/player/custom_player/legacy/tm_balkan_variantc.mdl",
"models/player/custom_player/legacy/tm_balkan_variantd.mdl",
"models/player/custom_player/legacy/tm_balkan_variante.mdl",
"models/player/custom_player/legacy/tm_balkan_variantf.mdl",
"models/player/custom_player/legacy/tm_balkan_variantg.mdl",
"models/player/custom_player/legacy/tm_balkan_varianth.mdl",
"models/player/custom_player/legacy/tm_balkan_varianti.mdl",
"models/player/custom_player/legacy/tm_balkan_variantj.mdl",
"models/player/custom_player/legacy/tm_balkan_variantk.mdl",
"models/player/custom_player/legacy/tm_balkan_variantl.mdl",
"models/player/custom_player/legacy/tm_jumpsuit_varianta.mdl",
"models/player/custom_player/legacy/tm_jumpsuit_variantb.mdl",
"models/player/custom_player/legacy/tm_jumpsuit_variantc.mdl",
"models/player/custom_player/legacy/tm_jungle_raider_varianta.mdl",
"models/player/custom_player/legacy/tm_jungle_raider_variantb.mdl",
"models/player/custom_player/legacy/tm_jungle_raider_variantb2.mdl",
"models/player/custom_player/legacy/tm_jungle_raider_variantc.mdl",
"models/player/custom_player/legacy/tm_jungle_raider_variantd.mdl",
"models/player/custom_player/legacy/tm_jungle_raider_variante.mdl",
"models/player/custom_player/legacy/tm_jungle_raider_variantf.mdl",
"models/player/custom_player/legacy/tm_jungle_raider_variantf2.mdl",
"models/player/custom_player/legacy/tm_leet_varianta.mdl",
"models/player/custom_player/legacy/tm_leet_variantb.mdl",
"models/player/custom_player/legacy/tm_leet_variantc.mdl",
"models/player/custom_player/legacy/tm_leet_variantd.mdl",
"models/player/custom_player/legacy/tm_leet_variante.mdl",
"models/player/custom_player/legacy/tm_leet_variantf.mdl",
"models/player/custom_player/legacy/tm_leet_variantg.mdl",
"models/player/custom_player/legacy/tm_leet_varianth.mdl",
"models/player/custom_player/legacy/tm_leet_varianti.mdl",
"models/player/custom_player/legacy/tm_leet_variantj.mdl",
"models/player/custom_player/legacy/tm_leet_variantk.mdl",
"models/player/custom_player/legacy/tm_phoenix.mdl",
"models/player/custom_player/legacy/tm_phoenix_heavy.mdl",
"models/player/custom_player/legacy/tm_phoenix_varianta.mdl",
"models/player/custom_player/legacy/tm_phoenix_variantb.mdl",
"models/player/custom_player/legacy/tm_phoenix_variantc.mdl",
"models/player/custom_player/legacy/tm_phoenix_variantd.mdl",
"models/player/custom_player/legacy/tm_phoenix_variantf.mdl",
"models/player/custom_player/legacy/tm_phoenix_variantg.mdl",
"models/player/custom_player/legacy/tm_phoenix_varianth.mdl",
"models/player/custom_player/legacy/tm_phoenix_varianti.mdl",
"models/player/custom_player/legacy/tm_pirate.mdl",
"models/player/custom_player/legacy/tm_pirate_varianta.mdl",
"models/player/custom_player/legacy/tm_pirate_variantb.mdl",
"models/player/custom_player/legacy/tm_pirate_variantc.mdl",
"models/player/custom_player/legacy/tm_pirate_variantd.mdl",
"models/player/custom_player/legacy/tm_professional.mdl",
"models/player/custom_player/legacy/tm_professional_var1.mdl",
"models/player/custom_player/legacy/tm_professional_var2.mdl",
"models/player/custom_player/legacy/tm_professional_var3.mdl",
"models/player/custom_player/legacy/tm_professional_var4.mdl",
"models/player/custom_player/legacy/tm_professional_varf.mdl",
"models/player/custom_player/legacy/tm_professional_varf1.mdl",
"models/player/custom_player/legacy/tm_professional_varf2.mdl",
"models/player/custom_player/legacy/tm_professional_varf3.mdl",
"models/player/custom_player/legacy/tm_professional_varf4.mdl",
"models/player/custom_player/legacy/tm_professional_varf5.mdl",
"models/player/custom_player/legacy/tm_professional_varg.mdl",
"models/player/custom_player/legacy/tm_professional_varh.mdl",
"models/player/custom_player/legacy/tm_professional_vari.mdl",
"models/player/custom_player/legacy/tm_professional_varj.mdl",
"models/player/custom_player/legacy/tm_separatist.mdl",
"models/player/custom_player/legacy/tm_separatist_varianta.mdl",
"models/player/custom_player/legacy/tm_separatist_variantb.mdl",
"models/player/custom_player/legacy/tm_separatist_variantc.mdl",
"models/player/custom_player/legacy/tm_separatist_variantd.mdl"
];
::pm_riptide <-[
"models/player/custom_player/legacy/tm_balkan_variantc.mdl",
"models/player/custom_player/legacy/ctm_diver_varianta.mdl",
"models/player/custom_player/legacy/ctm_diver_variantb.mdl",
"models/player/custom_player/legacy/ctm_diver_variantc.mdl",
"models/player/custom_player/legacy/ctm_gendarmerie_varianta.mdl",
"models/player/custom_player/legacy/ctm_gendarmerie_variantb.mdl",
"models/player/custom_player/legacy/ctm_gendarmerie_variantc.mdl",
"models/player/custom_player/legacy/ctm_gendarmerie_variantd.mdl",
"models/player/custom_player/legacy/ctm_gendarmerie_variante.mdl",
"models/player/custom_player/legacy/ctm_sas_variantg.mdl",
"models/player/custom_player/legacy/ctm_st6_variantn.mdl",
"models/player/custom_player/legacy/ctm_swat_variantk.mdl",
"models/player/custom_player/legacy/tm_jungle_raider_varianta.mdl",
"models/player/custom_player/legacy/tm_jungle_raider_variantb.mdl",
"models/player/custom_player/legacy/tm_jungle_raider_variantb2.mdl",
"models/player/custom_player/legacy/tm_jungle_raider_variantc.mdl",
"models/player/custom_player/legacy/tm_jungle_raider_variantd.mdl",
"models/player/custom_player/legacy/tm_jungle_raider_variante.mdl",
"models/player/custom_player/legacy/tm_jungle_raider_variantf.mdl",
"models/player/custom_player/legacy/tm_jungle_raider_variantf2.mdl",
"models/player/custom_player/legacy/tm_leet_variantj.mdl",
//"models/player/custom_player/legacy/tm_leet_variantk.mdl",
"models/player/custom_player/legacy/tm_professional_varf5.mdl"
];
// Function called by the main MIGI script each new round
function OnNewRound()
{
round_number++;
i = 0;
printl(">> This function has been called after a new round!");
printl(">> Current rounds: " + round_number);
printAllPlayersAndBots();
foreach(pm in pm_riptide)
{
self.PrecacheModel(pm);
printl(" ++ Precached " + pm);
}
SendToConsole("sv_cheats 1;mp_autoteambalance 0;mp_limitteams 0");
printl("cl_drawhud 0;r_drawviewmodel 0;bot_stop 1;bot_add_t;bot_add_t;bot_add_t;bot_add_t;mp_t_default_secondary 0;mp_t_default_melee 0;mp_death_drop_c4 0;mp_death_drop_gun 0;mp_death_drop_defuser 0");
printl("noclip;fov_cs_debug 73;setpos_exact -148.515015 -982.123413 114.638153;setang -7.035161 -66.786316 0.000000");
printl("bind i \"script respawn()\";bind o \"script respawn(1)\";bind p \"script kill()\"");
SendToConsole("bind i \"script respawn()\";bind o \"script respawn(1)\";bind p \"script kill()\"");
printl("script set_pos(-86.864990, -1134.085449, 128.031250)");
printl("script set_angle(-5, -5)");
// script print(SPAWN_POS)
// (vector : (1041.380127, -1455.685791, 24.031250))
//
// fov_cs_debug 60
// setpos_exact 1002.880859 -1552.548584 2.098738;setang 2.667962 68.126427 0.000000
printl(" - DeathCry preview")
printl("[I] to respawn, [O] to respawn with different model, [P] to kill")
}
::ON_DISPLAY <- null;
::kill <- function()
{
if (ON_DISPLAY != null && ON_DISPLAY.IsValid())
{
EntFireByHandle(ON_DISPLAY, "DispatchResponse", "DeathCry", 0.0, null, null);
EntFireByHandle(ON_DISPLAY, "sethealth", "0", 0.0, null, null);
ON_DISPLAY = null;
}
}
::SPAWN_POS <- Vector(0, 0, 0);
::SPAWN_ANGLE <- [0,0];
::set_mine <- function()
{
local ply = null;
while(ply = Entities.FindByClassname(ply, "player"))
{
SPAWN_POS <- ply.GetOrigin();
//SPAWN_ANGLE <- GetAngles();
}
}
::set_pos <- function(x=0, y=0, z=0)
{
SPAWN_POS <= Vector(x,y,z);
}
::set_angle <- function(ang1=0, ang2=0)
{
SPAWN_ANGLE[0] = ang1;
SPAWN_ANGLE[1] = ang2;
}
::respawn <- function(change=false)
{
printl(">> Call me from anywhere! Use `script respawn()` in the console!");
//local player = null;
//player = Entities.FindByClassname(bot, "player");
local bot = null;
local mdl = pm_riptide[i];
local once = false;
local ply = null;
while(ply = Entities.FindByClassname(ply, "player"))
{
ply.SetModel(mdl); // Sleves
}
while (bot = Entities.FindByClassname(bot, "cs_bot"))
{
bot.SetModel(mdl);
if (once == false)
{
if(bot.GetHealth() > 0)
{
if (ON_DISPLAY != null && ON_DISPLAY.IsValid())
{
ON_DISPLAY.SetOrigin(Vector(0, 0, 0));
}
bot.SetOrigin(SPAWN_POS);
bot.SetAngles(SPAWN_ANGLE[0], SPAWN_ANGLE[1], 0);
ON_DISPLAY = bot;
once = true;
}
}
}
if (!change)
return
if(i < (pm_riptide.len()-1))
{
i++;
}
else
{
i <- 0;
}
}
function checkup()
{
local z = 5;
}
function printAllPlayersAndBots()
{
foreach(m in ["player","cs_bot"])
{
local ply = null;
while(ply = Entities.FindByClassname(ply, m))
{
printl(" - " + ply);
}
}
}
// The entity this script is contained in doesn't respawn on new rounds, be careful!
printl(">> I'm only called once in there!");
printl(">> I'm contained inside the entity: " + self );
printl(">> This is my table: " + this);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment