Page 1 of 2

klausimas dėl include naudojimo

Posted: 2011 Mar 06 14:27
by aurimasko
Ar tiesa, kad naudojant plugine mažiau include <..> susinaudoja mažiau resursų? Arba jeigu aš naudoju visur get_user_team komandą, o ne cs_get_user_team, bet reikia include <cstrike> dėl tokių komandų kaip cs_set_user_ammo, tai mažiau sunaudos resursų negu naudojant visur cs_get_user_team?

Re: klausimas dėl include naudojimo

Posted: 2011 Mar 06 14:29
by aaarnas
Include skaičius nesudaro jokio skirtumo. Ar jų bus 1 ar bus daug. Gali includinti kad ir visus cs amxmodx modulius. Svarbiausia kažkokiam veiksmui atlikti naudoti to modulio funkcijas, kuris atlieką tą veiksmą optimaliausiai.

Re: klausimas dėl include naudojimo

Posted: 2011 Mar 06 14:33
by aurimasko
aaarnas wrote:Include skaičius nesudaro jokio skirtumo. Ar jų bus 1 ar bus daug. Gali includinti kad ir visus cs amxmodx modulius. Svarbiausia kažkokiam veiksmui atlikti naudoti to modulio funkcijas, kuris atlieką tą veiksmą optimaliausiai.
O kaip geriau naudoti cs_get_user_team ar get_user_team?

Ir ar geriau daryti:

Code: Select all

 if(cs_get_user_team(id) == CS_TEAM_T){...}else if(cs_get_user_team(id) == CS_TEAM_CT){...} 
ar

Code: Select all

 switch(cs_get_user_team(id)){case CS_TEAM_T: { .... }case CS_TEAM_CT: { .... }} 

Re: klausimas dėl include naudojimo

Posted: 2011 Mar 06 14:45
by aaarnas
Tarp jų didelio skirtumo manau nėra. Logiškai mąstant, cstrike modulis turėtų būti optimalesnis. Gali naudoti tą kuris labiau patinka.

Savaime suprantama antras variantas.

Re: klausimas dėl include naudojimo

Posted: 2011 Mar 06 14:50
by aurimasko
aaarnas wrote:Tarp jų didelio skirtumo manau nėra. Logiškai mąstant, cstrike modulis turėtų būti optimalesnis. Gali naudoti tą kuris labiau patinka.

Savaime suprantama antras variantas.
Tai gerai aš switch ir naudoju :D

O kas dar turi įtakos serverio apkrovimui?

Re: klausimas dėl include naudojimo

Posted: 2011 Mar 06 15:03
by aaarnas
Na ant kiek optimaliai sugebėsi parašyti algoritmą. Tas ir turi įtakos.

Re: klausimas dėl include naudojimo

Posted: 2011 Mar 06 15:13
by aurimasko
O šitas pvz optimaliausias ar įmanoma dar geriau?

Code: Select all

 public player_attack(victim, attacker, Float:damage, Float:direction[3], tracehandle, damagebits){    static CsTeams:vteam, CsTeams:ateam    if(!is_user_connected(victim) || !is_user_connected(attacker) || victim == attacker)        return HAM_IGNORED        new weapon = get_user_weapon(attacker, _, _);     vteam = cs_get_user_team(victim)    ateam = cs_get_user_team(attacker)        if(kill[victim] && kill[attacker])        if((ateam == CS_TEAM_CT && vteam == CS_TEAM_T) || (ateam == CS_TEAM_T && vteam == CS_TEAM_CT))        return HAM_SUPERCEDE        if(gaudynes[attacker] && gaudynes[victim])         if(ateam == CS_TEAM_CT && vteam == CS_TEAM_T)        if(weapon != CSW_KNIFE)        return HAM_SUPERCEDE        if(slepynes[attacker] && slepynes[victim])        if(ateam == CS_TEAM_T && vteam == CS_TEAM_CT)        if(weapon != CSW_KNIFE)        return HAM_SUPERCEDE        if(amgunday[attacker] && amgunday[victim])        if((ateam == CS_TEAM_CT && vteam == CS_TEAM_T) || (ateam == CS_TEAM_T && vteam == CS_TEAM_CT))        return HAM_SUPERCEDE        if(agaudynes[attacker] && agaudynes[victim])        if(ateam == CS_TEAM_CT && vteam == CS_TEAM_T)        if(weapon != CSW_KNIFE && weapon != CSW_GLOCK18)        return HAM_SUPERCEDE        if(sharkas[attacker] && sharkas[victim])        if(ateam == CS_TEAM_CT && vteam == CS_TEAM_T)        if(weapon != CSW_KNIFE)        return HAM_SUPERCEDE        if(medziokl[attacker] && medziokl[victim])        if((ateam == CS_TEAM_T && vteam == CS_TEAM_CT) || (ateam == CS_TEAM_CT && vteam == CS_TEAM_T))        if(weapon != CSW_AWP)        return HAM_SUPERCEDE        return HAM_IGNORED}  

Re: klausimas dėl include naudojimo

Posted: 2011 Mar 06 15:29
by aaarnas
Tai visada galima kažką optimaliau sugalvoti. Pvz pasidarai kintamuosius cl_connected, cl_team ir juose žaidėjų informaciją atnaujini. Taip nereiks kaskart iškvietinėti funkcijų. Bet šitas metodas geriausiai tinka moduose arba dideliuose pluginuose.

Re: klausimas dėl include naudojimo

Posted: 2011 Mar 06 15:31
by aurimasko
aaarnas wrote:Tai visada galima kažką optimaliau sugalvoti. Pvz pasidarai kintamuosius cl_connected, cl_team ir juose žaidėjų informaciją atnaujini. Taip nereiks kaskart iškvietinėti funkcijų. Bet šitas metodas geriausiai tinka moduose arba dideliuose pluginuose.
maždaug taip

Code: Select all

 new cl_teampublic player_spawn(id){cl_team = cs_get_user_team(id)} 

Re: klausimas dėl include naudojimo

Posted: 2011 Mar 06 16:12
by aaarnas

Code: Select all

 register_event("TeamInfo", "team_change", "a")public team_change() {        new id = read_data(1)    new team[15]    read_data(2, team, charsmax(team))    switch(team[0]) {        case 'T': p_team[id] = 1        case 'C': p_team[id] = 2    }}