teamswap - komandu keitimo optimizacija

Šiame forume rašomi vartotojų klausimai/problemos su kuriomis jie susidūrė kuriant pluginus.
Tetusis

teamswap - komandu keitimo optimizacija

Post by Tetusis »

Pirmasis kodas yra nemano, man ji pasiule naudoti exolent norint apkeisti komandas kai yra didziule apkrova serveryje, esme suprasite, ar verta naudoti delay? kam man to reikia? noriu 13x13 keitime ar daugiau isvengti crash'u, ar tai kazka keicia? gal tiesiog likti prie paprastesnio? noriu jusu nuomoniu.

Code: Select all

SwapTeams( ){    const GROUP = 5; // 5 people at a time    const Float:INTERVAL = 0.5; // delay between groups        new switched, data[ 1 ];        for( new i = 1; i <= g_iMaxPlayers; i++ )    {        if( is_user_connected( i ) )        {            data[ 0 ] = get_user_team( i );                        if( TEAM_TERRORIST <= data[ 0 ] <= TEAM_CT )            {                data[ 0 ] = 3 - data[ 0 ];                                if( switched++ < GROUP )                {                    TaskSwitch( data, i );                }                else                {                    set_task( INTERVAL * ( switched / GROUP ), "TaskSwitch", i, data, sizeof( data ) );                }            }        }    }} public TaskSwitch( data[ ], id ){    if( is_user_connected( id ) )    {        cs_set_team( id, data[ 0 ] );    }}

Code: Select all

 public kazkas_atsitiko() {    set_task(0.5,"Keiciames")} // Apkeiciam komandaspublic Keiciames() {    for (new id; id <= get_maxplayers(); id++) {        if(get_user_team(id) == 2)            cs_set_user_team(id, CS_TEAM_T)        else if(get_user_team(id) == 1)            cs_set_user_team(id, CS_TEAM_CT)    }}

newb
Pluginų patvirtintojas
Posts: 1047
Joined: 2010 Sep 23 21:43
Location: Wonderland
Contact:

Re: teamswap - komandu keitimo optimizacija

Post by newb »

Tavo tas paprastesnis blogas. Jei exolentas pasiule naudot ta, tai kame beda ? Ar manai daugiau kodo, daugiau apkrovos ?

Tetusis

Re: teamswap - komandu keitimo optimizacija

Post by Tetusis »

newb wrote:Tavo tas paprastesnis blogas. Jei exolentas pasiule naudot ta, tai kame beda ? Ar manai daugiau kodo, daugiau apkrovos ?
Nevisada, bet dazniausiai taip buna, aisku cia yra 2 konkrecios funkcijos t.y laikas per kuri apkeis nurodyta skaiciu zmoniu, pamastymui, delay tai yra tam tikras uzdelsimas arba intervalas per kuri ivygdoma tam tikra funkcija jeigu nurodyta ja kartoti ar daryti kazka panasaus? man idomu kas vyksta tarkim kai yra iskvieciama

Code: Select all

set_task(60.0, "kazkokia_funkcija", id)
cia aisku nurodoma, kad po 60 sec funkcija kazkokia_funkcija bus iskviesta, ar nera papildomos apkrovos tarp to laiko kai jau

Code: Select all

set_task(60.0, "kazkokia_funkcija", id)
iskviesta ,bet dar neivykdyta.? ar yra kazkokia alternatyva set_task?

User avatar
hleV
AMX Mod X ekspertai
Posts: 875
Joined: 2011 Apr 02 11:23
Skype: hlev.lt
Location: Šiauliai

Re: teamswap - komandu keitimo optimizacija

Post by hleV »

Yra modulis komandos keitimui, su kuriuo necrash'ina serveris.
Image ← RIP best userbar
DISKUSIJA: KIETAS PLUGIN'O UŽSAKOVAS
Privačios pagalbos neteikiu!

Tetusis

Re: teamswap - komandu keitimo optimizacija

Post by Tetusis »

hleV wrote:Yra modulis komandos keitimui, su kuriuo necrash'ina serveris.
taip zinau senai si, is patirties tavo noriu paklausti, ar verta siustis kazkokius pap modulius del vienos funkcijos ar tiesiog tvarkingai tai imanoma padaryti be modulio pagalbos?

InvIs
Gana aktyvus vartotojas
Posts: 421
Joined: 2011 Aug 13 11:12
Skype: pksoldierlt
Location: ATOSTOGOSE

Re: teamswap - komandu keitimo optimizacija

Post by InvIs »

Code: Select all

switchinam(id){switch(id){case 1..6: set_task(0.1, "keiciam", id)case 7..13: set_task(0.2, "keiciam", id)case 14..20: set_task(0.3, "keiciam", id)case 21..25: set_task(0.4, "keiciam", id)case 26..32: set_task(0.5, "keiciam", id)}{}}keiciam(id){switch(get_user_team(id)){case 1: cs_set_user_team(id, 2)case 2: cs_set_user_team(id, 1)}}
Na, jei tau Exolent kodas atrodo keistas ar nesuprantamas, naudok šitą. Šitas naudojamas umbrellaswarm modifikacijoje ir veikia be problemų.
ISVYKES

User avatar
hleV
AMX Mod X ekspertai
Posts: 875
Joined: 2011 Apr 02 11:23
Skype: hlev.lt
Location: Šiauliai

Re: teamswap - komandu keitimo optimizacija

Post by hleV »

Tikiuos suvoki, kad jei serveryje bus 32 žaidėjai, tai tu sukursi 32 task'us?
Image ← RIP best userbar
DISKUSIJA: KIETAS PLUGIN'O UŽSAKOVAS
Privačios pagalbos neteikiu!

Tetusis

Re: teamswap - komandu keitimo optimizacija

Post by Tetusis »

InvIs wrote:

Code: Select all

switchinam(id){switch(id){case 1..6: set_task(0.1, "keiciam", id)case 7..13: set_task(0.2, "keiciam", id)case 14..20: set_task(0.3, "keiciam", id)case 21..25: set_task(0.4, "keiciam", id)case 26..32: set_task(0.5, "keiciam", id)}{}}keiciam(id){switch(get_user_team(id)){case 1: cs_set_user_team(id, 2)case 2: cs_set_user_team(id, 1)}}
Na, jei tau Exolent kodas atrodo keistas ar nesuprantamas, naudok šitą. Šitas naudojamas umbrellaswarm modifikacijoje ir veikia be problemų.
hmm idomus kodas, cia kaip supratau supaprastintas? teks isbandyti, na as suprantu matematiskai kas po ko vyksta ir kaip tai padaroma, man tik iskilo esminis klausimas, i kuri atsake hlev
hleV wrote:Tikiuos suvoki, kad jei serveryje bus 32 žaidėjai, tai tu sukursi 32 task'us?

InvIs
Gana aktyvus vartotojas
Posts: 421
Joined: 2011 Aug 13 11:12
Skype: pksoldierlt
Location: ATOSTOGOSE

Re: teamswap - komandu keitimo optimizacija

Post by InvIs »

Kur tu matai 32 task'us ? :D Aš matau tik 5
ISVYKES

newb
Pluginų patvirtintojas
Posts: 1047
Joined: 2010 Sep 23 21:43
Location: Wonderland
Contact:

Re: teamswap - komandu keitimo optimizacija

Post by newb »

InvIs wrote:Kur tu matai 32 task'us ? :D Aš matau tik 5
Nu tai neziurek vien tik i zodzius set_task, o ziurek kaip sitas dalykas veiks...

Post Reply

Who is online

Users browsing this forum: No registered users and 4 guests