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