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?