AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   Jail Break manager models (https://forums.alliedmods.net/showthread.php?t=116759)

benamo6 01-26-2010 11:40

Jail Break manager models
 
Hi, I got this jail break manager thats was in polish but someone translate it to english and then I translate it to spanish, but I have a problem all worked fine until I wanted to change prisoners (Terrorists) models. First I tried changing the name of the model in the code (#define TERRMODEL) and im sure all files are in the place they should be, but it crashes my server. Also I tried changig to cstrike (cs_set_user_model) but still crashing :(
Do anyone know how to fix it?
I added some comments on model change so you people can identify it faster
PHP Code:

/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>
#include <cstrike>
#include <fakemeta_util>

#define PLUGIN "JailBreak Manager"
#define VERSION "1.8"
#define AUTHOR "Sn!ff3r"

#define fm_remove_weaponbox(%1) dllfunc(DLLFunc_Think, %1)  
#define USERTASK 921
#define USERTASK2 721
#define UPDATEDELAY 1.0
#define OFFSET_TEAM 114
#define fm_cs_set_user_nobuy(%1)    set_pdata_int(%1, 235, get_pdata_int(%1, 235) & ~(1<<0)) 

#define TERRMODEL "wiezien2" // Here I changed the model name
#define CTMODEL "straznik"

new static reasons[][] = {
    
"flogger",
    
"violar a chris",
    
"colaboracion al atentado del 11/9",
    
"atentado a la AMIA",
    
"matar a kennedy"    
}


new 
wanted[512]
new 
cvar_countdayscvar_terroinfocvar_winmessagescvar_modelscvar_fistscvar_wantedcvar_revoltcvar_stripweaponscvar_maxctscvar_nobuycvar_crowbarcvar_playerinfo
new dayshudmessagehudmessage2hudmessage3hudmessage4nowantedcrowbaruser
new userreason[33], bool:changedModel[33 char]
new 
bool:revolt_startedStatusTextterronumterroalivebool:disabled_weapons

new static fist_models[][] = { "models/p_bknuckles.mdl""models/v_bknuckles.mdl" }
new static 
crowbar_models[][] = { "models/p_crowbar.mdl""models/v_crowbar.mdl" }
new static 
fist_sounds[][] = { "weapons/cbar_hitbod2.wav""weapons/cbar_hitbod1.wav""weapons/bullet_hit1.wav""weapons/bullet_hit2.wav" }

new 
weapons[][] = {
    
"weaponbox",
    
"armoury_entity",
    
"weapon_shield"
}

public 
plugin_init() 
{
    
register_plugin(PLUGINVERSIONAUTHOR)
    
    
register_clcmd("chooseteam""client_chooseteam")
    
    
register_logevent("round_end"2"1=Round_End"
    
    
register_event("TextMsg","restart_roundsnum","a","2&#Game_C"/*,"2&#Game_w"*/)
    
register_event("CurWeapon""CurWeapon""be""1=1""2=29")
    
register_event("HLTV""new_round""a""1=0""2=0")
    
register_event("DeathMsg","client_death","a")    
    
register_event("StatusValue""showStatus""be""1=2""2!0")
    
register_event("StatusValue""hideStatus""be""1=1""2=0")
    
    
register_message(get_user_msgid("TextMsg") ,"TextMsg")
    
register_message(get_user_msgid("ShowMenu"), "ShowMenu")
    
register_message(get_user_msgid("VGUIMenu"), "VGUIMenu")
    
register_message(get_user_msgid("StatusIcon") , "StatusIcon"
    
    
register_forward(FM_SetClientKeyValue,"SetClientKeyValue")
    
register_forward(FM_EmitSound"EmitSound")
    
    
RegisterHam(Ham_Spawn"player""client_spawn"1)
    
RegisterHam(Ham_TakeDamage"player""client_damage")
    
    for(new 
slot 0slot sizeof weaponsslot++) {
        
RegisterHam(Ham_Touchweapons[slot], "WeapEntTouch")
        
disabled_weapons true
    
}    
    
    
hudmessage CreateHudSyncObj()    
    
hudmessage2 CreateHudSyncObj()    
    
hudmessage3 CreateHudSyncObj()    
    
hudmessage4 CreateHudSyncObj()
    
    
StatusText get_user_msgid("StatusText")
    
    
cvar_countdays register_cvar("jailbreak_countdays""1")
    
cvar_terroinfo register_cvar("jailbreak_terroinfo""1")
    
cvar_winmessages register_cvar("jailbreak_winmessages""1")
    
cvar_models register_cvar("jailbreak_newmodels""1")
    
cvar_fists register_cvar("jailbreak_fists""1")
    
cvar_wanted register_cvar("jailbreak_wanted""1")
    
cvar_revolt register_cvar("jailbreak_revolt""1")
    
cvar_stripweapons register_cvar("jailbreak_stripweapons""1")
    
cvar_maxcts register_cvar("jailbreak_maxcts""4")
    
cvar_nobuy register_cvar("jailbreak_blockbuy""1")
    
cvar_crowbar register_cvar("jailbreak_terrocrowbar""1")
    
cvar_playerinfo register_cvar("jailbreak_playerinfo""1")
}

public 
plugin_cfg()
{            
    static 
cfgdir[32]
    
get_configsdir(cfgdircharsmax(cfgdir))
    
server_cmd("exec %s/jailbreak.cfg"cfgdir)
}

public 
plugin_precache()
{
    if(!
file_exists("sound/misc/pito.txt"))
    {
        
set_fail_state("ERROR")
    }
    
    static 
modelname[128], i
    
    formatex
(modelname127"models/player/%s/%s.mdl"TERRMODELTERRMODEL// Precache seems to be ok
    
engfunc(EngFunc_PrecacheModelmodelname)
    
    
formatex(modelname127"models/player/%s/%s.mdl"CTMODELCTMODEL)
    
engfunc(EngFunc_PrecacheModelmodelname)
    
    for(
0sizeof fist_modelsi++)
        
engfunc(EngFunc_PrecacheModel,fist_models[i])
    
    for(
0sizeof fist_soundsi++)        
        
engfunc(EngFunc_PrecacheSound,fist_sounds[i])    
    
    for(
0sizeof crowbar_modelsi++)
        
engfunc(EngFunc_PrecacheModel,crowbar_models[i])
}

public 
round_end()
{
    
days ++
    
    if(
get_pcvar_num(cvar_stripweapons)) {    
        static 
players[32], inumi    
        get_players
(playersinum"ah")    
        for (
0inum; ++i
            if(
cs_get_user_team(players[i]) == CS_TEAM_Tfm_strip_user_weapons(players[i])
        
        
disabled_weapons true
    
}
}

public 
restart_roundsnum() 
{
    
days 
}

public 
new_round()
{
    
formatex(wanted511"Nadie es el mas buscado")    
    
    
update_terro()
    
    
nowanted true    
    revolt_started 
false    
    crowbaruser 
0
    
    
if(get_pcvar_num(cvar_crowbar))    set_task(5.0"random_crowbar")
}

public 
random_crowbar()
{
    static 
players[32], inumid
    get_players
(playersinum"ahe""TERRORIST")
    
    if(
inum) {    
        
id players[random(inum)]
        
        
set_hudmessage(random_num(0,255), random_num(0,255), random_num(0,255), -1.00.320.55.0)    
        
ShowSyncHudMsg(idhudmessage3"= Conseguiste una barra = ")
        
        
crowbaruser id
        
        CurWeapon
(id)
    }
}

public 
TextMsg(iMsgidiDestid)
{    
    if(
get_pcvar_num(cvar_winmessages)) {
        static 
message[32]
        
get_msg_arg_string(2messagecharsmax(message))
        
        if(
equal(message"#Terrorists_Win")) set_msg_arg_string(2"Ganaron los prisioneros!")
        else if(
equal(message"#CTs_Win")) set_msg_arg_string(2"Ganaron los guardias!")
        }
}

public 
StatusIcon(iMsgidiDestid)
{
    if(
get_pcvar_num(cvar_nobuy)) {
        static 
szIcon[5]
        
get_msg_arg_string(2szIcon4)
        if(
szIcon[0] == 'b' && szIcon[2] == 'y' && szIcon[3] == 'z') {
            if(
get_msg_arg_int(1)) {
                
fm_cs_set_user_nobuy(id)
                return 
PLUGIN_HANDLED
            
}
        }
    }
    return 
PLUGIN_CONTINUE


public 
SetClientKeyValue(id, const infobuffer[], const key[])
{   
    return 
equal(key,"model") && changedModel{id} ? FMRES_SUPERCEDE FMRES_IGNORED
}

public 
CurWeapon(id)
{
    if(
is_user_alive(id)) {        
        if(
get_pcvar_num(cvar_fists) && id != crowbaruser) {
            
set_pev(idpev_viewmodel2fist_models[1])
            
set_pev(idpev_weaponmodel2fist_models[0])    
        }    
        else if(
get_pcvar_num(cvar_crowbar) && id == crowbaruser) {
            
set_pev(idpev_viewmodel2crowbar_models[1])
            
set_pev(idpev_weaponmodel2crowbar_models[0])            
        }
    }
}

public 
EmitSound(idchannelsample[])
{
    if(
get_pcvar_num(cvar_fists)) {
        if(
is_user_alive(id)) {
            if(
equal(sample"weapons/knife_"14))     {
                if(
equal(sample"weapons/knife_hit"17)) {
                    
emit_sound(idCHAN_WEAPON"weapons/bullet_hit2.wav"random_float(0.51.0), ATTN_NORM0PITCH_NORM)
                    return 
FMRES_SUPERCEDE
                
}
                else if(
equal(sample,"weapons/knife_stab.wav")) {
                    
emit_sound(idCHAN_WEAPON"weapons/cbar_hitbod2.wav"1.0ATTN_NORM0PITCH_NORM)    
                    return 
FMRES_SUPERCEDE
                
}
                else if(
equal(sample,"weapons/knife_hitwall1.wav")) {
                    
emit_sound(idCHAN_WEAPON"weapons/cbar_hitbod1.wav"1.0ATTN_NORM0PITCH_LOW)
                    return 
FMRES_SUPERCEDE            
                
}        
            }
        }        
    }
    return 
FMRES_IGNORED
}

public 
showStatus(id)
{
    if(
get_pcvar_num(cvar_playerinfo)) {
        if(
is_user_alive(id)) {
            static 
name[33], pid 
            pid 
read_data(2)
            
            
get_user_name(pidname32)
            
            switch(
cs_get_user_team(pid)) {
                case 
CS_TEAM_T: {
                    
set_hudmessage(1002550, -1.00.8000.013.00.010.01, -1)
                    
ShowSyncHudMsg(idhudmessage4"Prisionero: %s [%d HP]"nameget_user_health(pid))
                    
                }
                case 
CS_TEAM_CT: {
                    
set_hudmessage(0255100, -1.00.8000.013.00.010.01, -1)
                    
ShowSyncHudMsg(idhudmessage4"Guardia: %s [%d HP]"nameget_user_health(pid))                
                }
            }
        }
    }
}

public 
hideStatus(id)
{
    if(
get_pcvar_num(cvar_playerinfo)) ClearSyncHud(idhudmessage4)
}

public 
start_revolt()
{
    
set_hudmessage(random_num(0,255), random_num(0,255), random_num(0,255), -1.00.320.55.0)
    
ShowSyncHudMsg(0hudmessage3"= Los prisioneros se rebelaron ! =")
    
client_cmd(0,"speak ambience/siren")
    
    
set_task(8.0"stop_sound"0)
    
    
revolt_started true    
}

public 
ShowMenu(iMsgidiDestid)
{
    static 
code[32]
    
get_msg_arg_string(4codecharsmax(code))
    if(
equal(code"#Team_Select") || equal(code"#IG_Team_Select") && cs_get_user_team(id) != CS_TEAM_CT) {
        static 
ctcount
        ctcount 
active_players(CS_TEAM_CT)
        
        if(
ctcount >= get_pcvar_num(cvar_maxcts)) {
            static 
param[2]
            
param[0] = iMsgid
            set_task
(0.1"join_terrorist"idparamsizeof(param))
            return 
PLUGIN_HANDLED        
        
}
    }    
    return 
PLUGIN_CONTINUE
}

public 
VGUIMenu(iMsgidiDestid)
{
    if(
get_msg_arg_int(1) != 2) return PLUGIN_CONTINUE
    
    
static ctcount
    ctcount 
active_players(CS_TEAM_CT)
    
    if(
ctcount >= get_pcvar_num(cvar_maxcts) && cs_get_user_team(id) != CS_TEAM_CT) {
        static 
param[2]
        
param[0] = iMsgid
        set_task
(0.1"join_terrorist"idparamsizeof(param))
        
        return 
PLUGIN_HANDLED        
    
}    
    return 
PLUGIN_CONTINUE
}

public 
join_terrorist(param[], id)
{
    
handle_join(idparam[0], /*CS_TEAM_T*/ 1)    
    
set_task(5.0"check_valid_team"id)    
}

public 
check_valid_team(id)
{
    if(
cs_get_user_team(id) != CS_TEAM_Tcs_set_user_team(idCS_TEAM_T)    
}

public 
client_connect(id)
{
    
client_cmd(id"hud_centerid 0")
}

public 
client_chooseteam(id)
{
    static 
ctcount
    ctcount 
active_players(CS_TEAM_CT)
    
    if(
ctcount >= get_pcvar_num(cvar_maxcts) && cs_get_user_team(id) == CS_TEAM_T) {
        
client_print(idprint_chat"No te podes cambiar de equipo.")            
        return 
PLUGIN_HANDLED        
    
}
    return 
PLUGIN_CONTINUE
}

public 
client_damage(victimentidattackerFloat:damagedamagebits)
{
    if(!
is_user_connected(victim) || !is_user_connected(attacker))
        return 
HAM_IGNORED
    
    
if(get_pcvar_num(cvar_revolt)) {    
        if(
cs_get_user_team(attacker) == CS_TEAM_T && cs_get_user_team(victim) == CS_TEAM_CT) {
            if(!
revolt_startedstart_revolt()
        }
    }
    if(
get_pcvar_num(cvar_crowbar)) {
        if(
cs_get_user_team(attacker) == CS_TEAM_T && attacker == crowbaruser) {
            
damage *= 50.0
            SetHamParamFloat
(4damage)
            return 
HAM_OVERRIDE
        
}        
    }    
    return 
HAM_IGNORED
}

public 
client_spawn(id)
{    
    if(
get_pcvar_num(cvar_countdays)) {    
        
set_hudmessage(random_num(0,255), random_num(0,255), random_num(0,255), -1.00.320.55.0)
        
        
ShowSyncHudMsg(idhudmessage3"= El dia %d va a comenzar = "days)    
    }
    if(
get_pcvar_num(cvar_terroinfo)) {
        if(
task_exists(id USERTASK)) remove_task(id USERTASK)    
        
        if(
cs_get_user_team(id) == CS_TEAM_T) {    
            
userreason[id] = random_num(0sizeof reasons 1)
            
            
set_task(UPDATEDELAY"client_jailinfo"id USERTASK__"b")
        }        
    }
    if(
get_pcvar_num(cvar_wanted)) {
        if(
task_exists(id USERTASK2))    remove_task(id USERTASK2)
        if(
cs_get_user_team(id) == CS_TEAM_CTset_task(UPDATEDELAY"client_wantedinfo"id USERTASK2__"b")
        
        
update_terro()
    }    
    
    if(
get_pcvar_num(cvar_models)) {    
        static 
CsTeams:team
        team 
cs_get_user_team(id)
        
        if(
team == CS_TEAM_T) {
            
cs_set_user_model(id"models/player/wiezien2/wiezien2"// Changed to cstrike
            
changedModel{id} = true
        
}
        else if (
team == CS_TEAM_CT) {
            
set_user_model(idCTMODEL// Original model change
            
changedModel{id} = true        
        
}
    }
    if(
get_pcvar_num(cvar_stripweapons)) set_task(0.1"give_weapons"id)
}

public 
give_weapons(id)
{
    if(
is_user_alive(id)) {
        
fm_strip_user_weapons(id)
        
fm_give_item(id"weapon_knife")         
        
        if(
cs_get_user_team(id) == CS_TEAM_CT) {                        
            switch(
random_num(0,3))    {
                case 
0: {
                    
fm_give_item(id"weapon_m3")
                    
cs_set_user_bpammo(idCSW_M3120)                    
                }
                case 
1: {
                    
fm_give_item(id"weapon_mp5navy")
                    
cs_set_user_bpammo(idCSW_MP5NAVY120)
                }
                case 
2: {
                    
fm_give_item(id"weapon_xm1014")
                    
cs_set_user_bpammo(idCSW_XM1014120)
                }
                case 
3: {
                    
fm_give_item(id"weapon_mac10")
                    
cs_set_user_bpammo(idCSW_MAC10120)
                }
            }    
            
            
fm_give_item(id"weapon_usp")            
            
cs_set_user_bpammo(idCSW_USP100)
        }
    }
    
disabled_weapons false
}

public 
WeapEntTouch(thisidother)
{
    if(
disabled_weapons)     
        return 
HAM_SUPERCEDE
    
    
static model[33]
    
pev(thispev_modelmodel32)
    
    if(
equal(model"models/w_glock18.mdl")) {
        if(
pev_valid(this)) {
            
fm_remove_weaponbox(this)
            return 
HAM_SUPERCEDE
        
}
    }
    
    return 
HAM_IGNORED
}

public 
client_disconnect(id)
{
    
userreason[id] = -1
    
    
if(task_exists(id USERTASK)) remove_task(id USERTASK)
    
    
changedModel{id} = false
}

public 
client_death()
{
    if(
get_pcvar_num(cvar_wanted)) {    
        static 
victimkiller
        victim 
read_data(2)
        
killer read_data(1)
        
        if(
is_user_connected(victim) && is_user_connected(killer)) {            
            
            if(
cs_get_user_team(victim) == CS_TEAM_CT && cs_get_user_team(killer) == CS_TEAM_T) {
                static 
name[33]            
                
get_user_name(killernamecharsmax(name))
                
                if(
contain(wantedname) == -1) {    
                    if(
nowantedreplace_all(wanted511"Nadie es buscado""")                
                    
replace_all(wantedcharsmax(wanted), "Los mas buscados: ^n""")            
                    
                    
format(wantedcharsmax(wanted), "Los mas buscados: ^n%s^n%s"wantedname)
                    
                    
nowanted false
                
}
            }
            
            if(
cs_get_user_team(victim) == CS_TEAM_T) {
                static 
name[33]            
                
get_user_name(victimnamecharsmax(name))
                
                if(
contain(wantedname) != -1) {                
                    static 
buffer[64]
                    
formatex(buffercharsmax(buffer), "^n%s"name)
                    
replace_all(wantedcharsmax(wanted), buffer"")
                    
                    if(
strlen(wanted) < 20) {
                        
formatex(wanted511"Nadie es buscado")
                        
nowanted true
                    
}
                }                    
                
update_terro()
            }
        }
    }
}

public 
client_jailinfo(TASKID)
{
    static 
id
    id 
TASKID USERTASK
    
    set_hudmessage
(025500.80.106.012.0)
    
    
ShowSyncHudMsg(idhudmessage"Dia %d | Estas preso por %s."daysreasons[userreason[id]])    
}

public 
client_wantedinfo(TASKID)
{
    static 
id
    id 
TASKID USERTASK2;
    
    (
nowanted) ? set_hudmessage(2552552550.010.400.5UPDATEDELAY) : set_hudmessage(255000.010.420.5UPDATEDELAY)
    
    
ShowSyncHudMsg(idhudmessage2"%s"wanted)
    
    static 
text[128]
    
formatex(text,127,"Prisioneros: %d vivos, %d total"terroaliveterronum)
    
    
message_begin(MSG_ONE_UNRELIABLEStatusText, {0,0,0}, id)
    
write_byte(0)
    
write_string(text)
    
message_end() 
}

public 
stop_sound(id)
{
    
client_cmd(id"stopsound")
}

stock set_user_model(id,model[])
{
    
engfunc(EngFunc_SetClientKeyValueidengfunc(EngFunc_GetInfoKeyBuffer,id), "model"model)
}

stock active_players(CsTeams:teambool:aliveonly false)
{
    static 
players[32], inumiactiveCsTeams:playerteam
    
    
(aliveonly) ? get_players(playersinum"ah") : get_players(playersinum"h")
    
    
active 0
    
    
for (0inum; ++i
    {
        
playerteam cs_get_user_team(players[i])        
        if(
playerteam == teamactive++
    }    
    return 
active
}

stock handle_join(idiMsgidiTeam)
{        
    static 
iMsgBlock
    iMsgBlock 
get_msg_block(iMsgid)
    
set_msg_block(iMsgidBLOCK_SET)
    
    static 
team[2]
    
num_to_str(iTeamteamcharsmax(team))
    
    
engclient_cmd(id"jointeam"team)
    
engclient_cmd(id"joinclass""1")
    
    
set_msg_block(iMsgidiMsgBlock)    
    
    
client_print(idprint_chat"No podes cambiar de equipo.")
}

stock update_terro()
{
    
terronum active_players(CS_TEAM_Tfalse)
    
terroalive active_players(CS_TEAM_Ttrue)    




All times are GMT -4. The time now is 07:28.

Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.