Hi
So im using this plugin which Exolent on these forums made, tho it has some bugs. The problem is that when you get changed betweens teams you sometimes have the wrong skin.
So im wondering if someone could look into it at probably help me?
I've tried the Hide n Seek v1 by OneEyed plugin aswell, but it has the same bug.
Code:
#include <amxmodx>
#include <cstrike>
new gMaxPlayers;
new bool:gRestart[33];
public plugin_init()
{
register_plugin("Switch Ts", "1.0", "Exolent");
register_logevent("logevent_Round_End", 2, "1=Round_End");
register_clcmd("fullupdate", "clcmd_fullupdate");
register_event("TextMsg", "event_TextMsg", "a", "#2=Game_will_restart_in");
register_event("ResetHUD", "event_ResetHUD", "be");
gMaxPlayers = get_maxplayers();
}
public client_disconnect(id)
{
gRestart[id] = false;
}
public logevent_Round_End()
{
new bool:tAlive = false;
new CsTeams:team;
for(new i = 1; i <= gMaxPlayers; i++) {
if(!is_user_connected(i)) continue;
team = cs_get_user_team(i);
if(team == CS_TEAM_T && is_user_alive(i)) {
tAlive = true;
break;
}
}
if(!tAlive) {
for(new i = 1; i <= gMaxPlayers; i++) {
if(!is_user_connected(i)) continue;
team = cs_get_user_team(i);
if(team != CS_TEAM_CT && team!= CS_TEAM_T) continue;
cs_set_user_team(i, team == CS_TEAM_T ? CS_TEAM_CT : CS_TEAM_T, random_model(team));
}
}
}
public clcmd_fullupdate(id)
{
return PLUGIN_HANDLED_MAIN;
}
public event_TextMsg()
{
for(new i = 1; i <= gMaxPlayers; i++) {
if(is_user_alive(i)) gRestart[i] = true;
}
}
public event_ResetHUD(id)
{
if(gRestart[id]) {
gRestart[id] = false;
return;
}
// let other plugin set custom models before checking bad ones.
set_task(0.2, "handle_model", id + 888888);
}
public handle_model(id)
{
id -= 888888;
if(check_bad_model(id, CS_TEAM_T) || check_bad_model(id, CS_TEAM_CT)) {
set_task(0.5, "set_model", id + 999999);
}
}
public set_model(id)
{
id -= 999999;
new CsTeams:team = cs_get_user_team(id);
if(team == CS_TEAM_CT) {
cs_set_user_model(id, "gign");
}
else if(team == CS_TEAM_T) {
cs_set_user_model(id, "leet");
}
}
bool:check_bad_model(id, CsTeams:team)
{
new model[32];
cs_get_user_model(id, model, 31);
if(team == CS_TEAM_T) {
if(equali(model, "sas") || equali(model, "gign") || equali(model, "gsg9") || equali(model, "urban")) {
return true;
}
}
else if(team == CS_TEAM_CT) {
if(equali(model, "arctic") || equali(model, "leet") || equali(model, "guerilla") || equali(model, "terror")) {
return true;
}
}
return false;
}
CsInternalModel:random_model(CsTeams:team)
{
new CsInternalModel:model = CS_DONTCHANGE;
if(team == CS_TEAM_CT) {
switch(random_num(1, 4)) {
case 1: model = CS_T_TERROR;
case 2: model = CS_T_LEET;
case 3: model = CS_T_ARCTIC;
case 4: model = CS_T_GUERILLA;
}
}
else if(team == CS_TEAM_T) {
switch(random_num(1, 4)) {
case 1: model = CS_CT_URBAN;
case 2: model = CS_CT_GSG9;
case 3: model = CS_CT_SAS;
case 4: model = CS_CT_GIGN;
}
}
return model;
}