Page 1 of 1
Blokavimas
Posted: 2014 Jan 11 18:49
by Spag
Kaip blokuoti CT komandai HE granatos davima jei kintamasis yra false?
Code: Select all
public OnAddPlayerItem(id, ent){ if (!kintamasis[id]) if (cs_get_user_team(id) != CS_TEAM_CT && !grenade_duel[id] || cs_get_weapon_id(ent) != CSW_HEGRENADE) return HAM_IGNORED; return HAM_SUPERCEDE;}
sitaip neveikia.. isvis blokuoja visada
Re: Blokavimas
Posted: 2014 Jan 11 20:58
by hleV
Code: Select all
public OnAddPlayerItem(id, ent){ if (kintamasis[id] || cs_get_weapon_id(ent) != CSW_HEGRENADE || cs_get_user_team(id) != CS_TEAM_CT) return HAM_IGNORED; entity_set_int(ent, EV_INT_flags, entity_get_int(ent, EV_INT_flags) | FL_KILLME); return HAM_SUPERCEDE;}
Re: Blokavimas
Posted: 2014 Jan 11 22:06
by Spag
nesuprantu aš to kodo visiškai...
Code: Select all
public OnAddPlayerItem(id, ent){ if (kintamasis[id] || cs_get_weapon_id(ent) != CSW_HEGRENADE || cs_get_user_team(id) != CS_TEAM_CT) return HAM_IGNORED; return HAM_SUPERCEDE;}
Čia tipo bus taip? : Jeigu kintamasis true arba ginklas ne granata arba komanda ne CT, tai blokuoja granatos davimą??
Man reikia padaryti taip:
Blokuoja visai CT komandai GRANATAS išskyrus tuos CT kurie turi kintamajį TRUE.
Prašau parašykit su komentarais kuris return blokuoja, nes čia konkreti šikna, nesuprantu...
Re: Blokavimas
Posted: 2014 Jan 11 22:59
by psychical
hleV wrote:Code: Select all
public OnAddPlayerItem(id, ent){ if (kintamasis[id] || cs_get_weapon_id(ent) != CSW_HEGRENADE || cs_get_user_team(id) != CS_TEAM_CT) //Jei kintamasis = true ARBA ginklas ne granata ARBA komanda ne CT return HAM_IGNORED; //funkcija ignoruojama, granata duodama entity_set_int(ent, EV_INT_flags, entity_get_int(ent, EV_INT_flags) | FL_KILLME); //granata nužudoma return HAM_SUPERCEDE; //funkcijos pabaiga}
Re: Blokavimas
Posted: 2014 Jan 12 11:22
by Spag
Na supratau, bet vistiek nesąmones atlieka ta funkcija, padariau pagal idėją taip:
Jeigu žaidėjas neturi kintamojo grenade[id] = true, tai tikrina ar jo gaunamas ginklas yra ne granata ir ar jisai yra ne iš CT komandos.
(Pagala šitą tikrinimą turi blokuoti granatų davimą tik CT komandai, jeigu neturi kintamojo true).
Dabar pagal šitą kodą yra taip:
Turi ar neturi kintamąjį, px vistiek grantas VIESIEMS blokuoja, tiek CT komandai, tiek T komandai. WTF??? Magijos..
Code: Select all
public OnAddPlayerItem(id, ent){ if (!grenade[id]) { if (cs_get_weapon_id(ent) != CSW_HEGRENADE && cs_get_user_team(id) != CS_TEAM_CT) return HAM_IGNORED; } entity_set_int(ent, EV_INT_flags, entity_get_int(ent, EV_INT_flags) | FL_KILLME); return HAM_SUPERCEDE;}
Re: Blokavimas
Posted: 2014 Jan 12 11:55
by psychical
Spag wrote:Code: Select all
public OnAddPlayerItem(id, ent){ if (!grenade[id]) //jei kintamasis false atlieka if'ą { if (cs_get_weapon_id(ent) != CSW_HEGRENADE && cs_get_user_team(id) != CS_TEAM_CT) return HAM_IGNORED; //šita vieta suveiks tik tada jei rankoje bus NE GRANATA,o komanda bus NE CT, jei bent vienas bus kitoks, granata bus sunaikinta. } entity_set_int(ent, EV_INT_flags, entity_get_int(ent, EV_INT_flags) | FL_KILLME); //nužudoma granata return HAM_SUPERCEDE; //funkcijos pabaiga}
Kad būtų tau lengviau:
Code: Select all
public OnAddPlayerItem(id, ent){ if (!grenade[id]) //jei FALSE funkcija ignoruojama return HAM_IGNORED; if (cs_get_weapon_id(ent) != CSW_HEGRENADE) //jei rankoje NE GRANATA funkcija ignoruojama return HAM_IGNORED; if(cs_get_user_team(id) != CS_TEAM_CT) //jei komanda NE CT funkcija ignoruojama return HAM_IGNORED; entity_set_int(ent, EV_INT_flags, entity_get_int(ent, EV_INT_flags) | FL_KILLME); //jei kintamasis true, rankoje granata ir tavo komanda CT - granata sunaikinta. return HAM_SUPERCEDE;}