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
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 }}