Page 1 of 2

[CSTRIKE] Non-player entity 0 out of range

Posted: 2014 Jan 07 00:37
by MPD
Susidūriau su tokia problema. Nežinau ką daryti, viskas veikia gerai, bet nepatinka kai šitą klaidą rašo man į console.

Code: Select all

public Items(id){    set_task(get_pcvar_float(pGround), "GroundDmg", id+ID);    strip_user_weapons(id);    give_item(id, "weapon_m3");    give_item(id, "weapon_knife");    give_item(id, "weapon_awp");    set_user_health(id, get_pcvar_num(pHP));    new iWeap = find_ent_by_owner(-1,"weapon_awp",id);    cs_set_weapon_ammo(iWeap, 0);    cs_set_user_armor(id, get_pcvar_num(pArmor), CS_ARMOR_VESTHELM);    cs_set_user_bpammo(id, CSW_M3, 32);}

Code: Select all

[CSTRIKE] Non-player entity 0 out of range[AMXX] Displaying debug trace (plugin "xmod.amxx")[AMXX] Run time error 10: native error (native "cs_set_weapon_ammo")

Code: Select all

cs_set_weapon_ammo(iWeap, 0);
Nesuprantu, kodėl čia klaida yra. Su client_print tikrinau weapon (entity) id ir rašo viską normaliai ir veikia normaliai, tiesiog nesuprantu iš kur išdygo toks dalykas.
Gal kas paaiškinsit? Ar aš kur nors čia apsižioplinau?

Re: [CSTRIKE] Non-player entity 0 out of range

Posted: 2014 Jan 07 01:02
by psychical
https://forums.alliedmods.net/showthread.php?t=165310
P.S. Antram post'e, kur neveikai nuoroda tai ji čia: cs_get_weapon_ammo()

Re: [CSTRIKE] Non-player entity 0 out of range

Posted: 2014 Jan 07 14:49
by MPD
cs_set_weapon_ammo čia (komentaruose) parašyta, kad reikia naudoti ginklo entity id (taip pat ir cs_get_weapon_ammo), su kuo viskas veikia, bet klaidą vistiek rašo į console.

Tikrindamas ginklo entity id parašo normaliai (275 paskutinį syk), o errore rašo entity 0 out of range. Čia gal koks bugas tiesiog?

Re: [CSTRIKE] Non-player entity 0 out of range

Posted: 2014 Jan 07 14:57
by InvIs2
Nežinau kokius komentarus tu skaitai, bet reik žiūrėti pavyzdžiuis ir paaiškinimus.

Code: Select all

Sets the amount of ammo in a player's weapon clip.
Atkreipk dėmesį, jog rašo, kad nustato ammo žaidėjo ginkle.
Šiuo atvėju

cs_set_weapon_ammo(id, amount)

Re: [CSTRIKE] Non-player entity 0 out of range

Posted: 2014 Jan 07 16:37
by MPD
Su id neveikia ir metą panašų error (tik entity id rašomas žaidėjo dabar).
Su weapon id veikia, bet metą error, kur rašo entity id kaip 0.

Čia jau senai man išaiškita, kad naudojamas ginklo entity id, o ne žaidėjo id ar koks CSW_*.

Re: [CSTRIKE] Non-player entity 0 out of range

Posted: 2014 Jan 07 18:16
by psychical
Šiaip, toks menkas pastebėjimas, ką tu bandai čia padaryti?

Bandyk šitaip:

Code: Select all

cs_set_weapon_ammo(give_item(id, "weapon_awp"), 0);
P.S. Čia jis iškarto duodą ginklą ir iškarto nustato 0 kulkų.

Re: [CSTRIKE] Non-player entity 0 out of range

Posted: 2014 Jan 07 20:08
by MPD
Aš čia paprasčiausiai bandžiau padaryti, kad ginklas atsirastų pas žaidėją tuščias. Tas metodas, kur parašei, irgi veikia taip pat, bet vistiek tą errorą metą :D

Pastebėjau dabar, kad tą errorą meta tik vieną kartą, o kai kitus sykius respawninasi, tai klaidos neišmeta.

Re: [CSTRIKE] Non-player entity 0 out of range

Posted: 2014 Jan 07 21:10
by psychical
Tai tuomet nežinau, kada tu ten ką bandai daryt, kadangi naudoju pas save ir tokių klaidų nesu matęs...

Tuomet daryk šitaip:

Code: Select all

public Items(id){    set_task(get_pcvar_float(pGround), "GroundDmg", id+ID);     if(!is_user_alive(id))        return;     set_user_health(id, get_pcvar_num(pHP));    strip_user_weapons(id);    give_item(id, "weapon_m3");    give_item(id, "weapon_knife");    give_item(id, "weapon_awp");    new iWeap = find_ent_by_owner(-1,"weapon_awp",id);    cs_set_weapon_ammo(iWeap, 0);    cs_set_user_armor(id, get_pcvar_num(pArmor), CS_ARMOR_VESTHELM);    cs_set_user_bpammo(id, CSW_M3, 32);}
O šiaip sakau, nežinau, kada tu ten ką darai, bet parodyk kaip tu priregistravęs funkcija, kuri registruoja spawn ar kada tu ten ką darai?

Re: [CSTRIKE] Non-player entity 0 out of range

Posted: 2014 Jan 07 21:13
by hleV
iWeap lygus nuliui. Esu susidūręs su kažkuo panašaus, kai ar give_item() ar ginklo paieška naudojant find_ent_by_*() negrąžina ent ID, bet sprendimo tam neturiu.

Pabandyk pakeist:

Code: Select all

     give_item(id, "weapon_awp");    set_user_health(id, get_pcvar_num(pHP));    new iWeap = find_ent_by_owner(-1,"weapon_awp",id);

Code: Select all

     new iWeap = give_item(id, "weapon_awp");    set_user_health(id, get_pcvar_num(pHP));    //new iWeap = find_ent_by_owner(-1,"weapon_awp",id);

Re: [CSTRIKE] Non-player entity 0 out of range

Posted: 2014 Jan 07 21:46
by MPD
Bandžiau šitą, bet ta pati situacija.
Tikrinant su client_print(id, print_chat, "%d", iWeap) (naudojant abu būdus) iškart po radimo visada parašo kažkokį skaičių (275 ar pnš), o po tikrinimo iškarto nustatinėju ammo į 0 ir vistiek parodo klaidą [CSTRIKE] Non-player entity 0 out of range.

Kas svarbiausia veikia ir vienu, ir kitu būdu. Tai kaip suprantu dėl šito dalyko čia nėra ko pergyventi, nes praktiškai problemos čia nėra.