Page 1 of 3
Spawn on connect
Posted: 2011 Jul 13 01:58
by bussinessman
Sveiki,
ar yra koks cvar'as reguliuoti spawn laiką, ta prasme žmogus, kai prisijungia būna jį nuspawnina, o būna ne jei praeina tarkim 25 sekundės ar galima tą laiką prailginti/sutrumpinti?
Jei ne, gal galėtum kas kodą parašyt? Arba bent jau team_join event'ą duoti.
-- 2011 Lie 13 02:17 --
Va pasirašiau sau:
Code: Select all
register_event("TextMsg","Join_Respawn","a","1=1","2&Game_join_te","2&Game_join_ct") public Join_Respawn(){ new arg[32]; read_data(3,arg,31); new id = cmd_target(1,arg,0); set_task(0.5, "ok", id); return PLUGIN_CONTINUE} public ok(id){ ExecuteHamB(Ham_CS_RoundRespawn, id);}
kaip manote ar tai optimalu?
Re: Spawn on connect
Posted: 2011 Jul 13 03:18
by aaarnas
Kiek žinau tokio nustatymo pakeisti negalima, nebent su orpheu moduliu.
Tavo kode yra viena problema. Žaidėjas turi pasirinkti skiną, kitaip kils prolemų jį prikeliant.
Re: Spawn on connect
Posted: 2011 Jul 13 06:06
by bussinessman
Nesupratau, ta prasme pasirinkt skiną? O kaip įprastai prisijungia žmogus? Juk irgi renkasi skiną.
Re: Spawn on connect
Posted: 2011 Jul 13 18:18
by aurimasko
Manau, kad jis norėjo pasakyti, kad kol žaidėjas nepasirinks skino, tol jo nerespawnins.
Re: Spawn on connect
Posted: 2011 Jul 13 18:35
by hleV
Ne. Kartais kai prisijungi į serverį, o raundas jau prasidėjęs, tu vistiek gali spawn'inti, o kartais, kai jau daugiau lauko praėjo raunde, negali. Jis nori pareguliuot laiką, kada galima spawn'int po prisijungimo.
Re: Spawn on connect
Posted: 2011 Jul 13 18:37
by aurimasko
Turiu omeny Arno žodžius, apie skiną.
Re: Spawn on connect
Posted: 2011 Jul 13 18:43
by hleV
Netestavau.
Code: Select all
#include <amxmodx>#include <fakemeta> new RoundStartSpawnTime;new Float:RoundStartTime;new bool:FirstJoin[33] public plugin_init(){ RoundStartSpawnTime register_cvar("amx_roundstartspawntime", "15.0"); register_clcmd("joinclass", "OnJoinTeam"); register_logevent("OnRoundStart", 2, "1=Round_Start");} public client_putinserver(id) FirstJoin[id] = true; public OnJoinTeam(id){ if (!FirstJoin[id]) return; set_pdata_int(id, 365, get_gametime() - RoundStartTime > get_pcvar_float(RoundStartSpawnTime)); FirstJoin[id] = false;} public OnRoundStart() RoundStartTime = get_gametime();
Geriau aišku būtų daryt kai žaidėjas pasirenka skin'ą, bet nežinau tokio event'o. Registruojant pre spawn'ą turbūt neveiktų.
Re: Spawn on connect
Posted: 2011 Jul 13 19:27
by bussinessman
Žodžiu, o kaip CSDM mode padaryta? Ieškojau, bet nieko gero neradau.
Man reik nolimit respawn prisijungus.
Tai gal kas galėtumėt pagelbėti ir kokį kodą numest?
Re: Spawn on connect
Posted: 2011 Jul 13 19:53
by aaarnas
Padariau su forwardu kai žaidėjas pasirenka komandą ir klasę:
(Jei reikia, dar galima gauti ir kokią klasę ar komandą pasirinko)
Code: Select all
/* Plugin generated by AMXX-Studio */ #include <amxmodx>#include <hamsandwich> #define PLUGIN "Spawn on connect"#define VERSION "1.0"#define AUTHOR "aaarnas" new client_validate[33] public plugin_init() register_plugin(PLUGIN, VERSION, AUTHOR) public client_connect(id) client_validate[id] = 0 public client_command(id) { new cmd[20] read_argv(0, cmd, charsmax(cmd)) if(equal(cmd, "jointeam")) client_validate[id]++ else if(equal(cmd, "joinclass")) client_validate[id]++ if(client_validate[id] == 2) set_task(0.3, "spawn_player", id)} public spawn_player(id) if(!is_user_alive(id)) ExecuteHamB(Ham_CS_RoundRespawn, id)
hLeV, kas yra 365 offset?
Radau tik tai:
Code: Select all
m_rgpPlayerItems 365 370 +5 CBasePlayerItem*[MAX_ITEM_TYPES] #define MAX_ITEM_TYPES 4
Re: Spawn on connect
Posted: 2011 Jul 13 21:52
by bussinessman
Ačiū aaarnai išbandysiu.
Beje ar galėtum paaiškinti kodėl mano variantas kartais neveikia kartais veikia?