Weapon Touch problema

Šiame forume rašomi vartotojų klausimai/problemos su kuriomis jie susidūrė kuriant pluginus.
Post Reply
addinol
Jau po truputį tampa savu
Posts: 144
Joined: 2010 Sep 05 15:20
Skype: kasparas94

Weapon Touch problema

Post by addinol »

Sveiki, taigi darau pluginą ir susidūriau su problema. Plugino esmė tokia jog jei žaidėjo Snaiperio_Ginklai[id] yra true, tada jis gali pirkti awp, g1sg3, sg550 ir pasiimti juos nuo žemės. štai kodas, kažkodėl pirkti galiu, o pasiimti nuo žemės ne, rašo Message_No_awp...

Code: Select all

     register_touch("weaponbox", "player", "WeaponBox_Touch")     register_menucmd(register_menuid("T_BuyRifle", 1), (1<<4), "BuyRifle")    register_menucmd(register_menuid("T_BuyRifle", 1), (1<<5), "BuyRifle")    register_menucmd(register_menuid("CT_BuyRifle", 1), (1<<5), "BuyRifle")    register_menucmd(register_menuid("CT_BuyRifle", 1), (1<<4), "BuyRifle")  public BuyRifle(id){    if(!(get_user_flags(id) & VIP_FLAGAS))    {        Message_No_Vip(id)        return PLUGIN_HANDLED    }    if(A_Snaiperio_Ginklai[id] == false && get_user_flags(id) & VIP_FLAGAS)    {        Message_No_Awp(id)        return PLUGIN_HANDLED    }    return PLUGIN_CONTINUE} public client_command(id){    static szCommand[8]     if( read_argv(0, szCommand, charsmax(szCommand)) < 7 && bCheckArgAwp(id, szCommand) )    {        return PLUGIN_HANDLED    }    return PLUGIN_CONTINUE} public CS_InternalCommand(id, const szCommand[]){    if( strlen(szCommand) < 7 && bCheckArgAwp(id, szCommand) )    {        return PLUGIN_HANDLED    }    return PLUGIN_CONTINUE} bool:bCheckArgAwp(id, const szCommand[]){    static const awp[] = "awp"    static const magnum[] = "magnum"    static const sg550[] = "sg550"    static const g3sg1[] = "g3sg1"     if((equali(szCommand, awp) || equali(szCommand, magnum) || equali(szCommand, sg550) || equali(szCommand, g3sg1)))    {        if(!(get_user_flags(id) & VIP_FLAGAS))    {    Message_No_Vip(id)    return true    }        if(A_Snaiperio_Ginklai[id] == false && get_user_flags(id) & VIP_FLAGAS)    {    Message_No_Awp(id)    return true             }    }    return false} public WeaponBox_Touch(iWpnBx, id){    if( is_user_alive(id) && entity_get_int(iWpnBx, EV_INT_flags) & FL_ONGROUND )    {        const XTRA_OFS_WEAPONBOX = 4        const m_rgpPlayerItems_wpnbx_slot1 = 35         static iWeapon        iWeapon = get_pdata_cbase(iWpnBx, m_rgpPlayerItems_wpnbx_slot1, XTRA_OFS_WEAPONBOX)            if( iWeapon > 0 && A_Snaiperio_Ginklai[id] == false && cs_get_weapon_id(iWeapon) == CSW_AWP || CSW_G3SG1 ||  CSW_SG550)        {            if( g_iLastTouchedBox[id] != iWpnBx )            {                if(!user_has_weapon(id, CSW_AWP || CSW_G3SG1 || CSW_SG550))                {                    Message_No_Awp(id)                }                g_iLastTouchedBox[id] = iWpnBx            }            return PLUGIN_HANDLED        }    }    return PLUGIN_CONTINUE} Message_No_Awp(id){    const HUD_PRINTCENTER    =    4    static const szOnlyVIP[] = "Jusu snaiperio ginklu rezimas isjungtas"      message_begin(MSG_ONE_UNRELIABLE, gmsgTextMsg, .player=id)    write_byte( HUD_PRINTCENTER )    write_string( szOnlyVIP )    message_end()}    Message_No_Vip(id){    const HUD_PRINTCENTER    =    4    static const szOnlyVIP[] = "Snaiperio ginklai tik vipams"      message_begin(MSG_ONE_UNRELIABLE, gmsgTextMsg, .player=id)    write_byte( HUD_PRINTCENTER )    write_string( szOnlyVIP )    message_end()} 
Jaučiu jog problema yra WeaponBox_Touch kode.

User avatar
aaarnas
Vyr. diskusijų administratorius
Posts: 3891
Joined: 2010 Aug 31 13:21
Skype: fiarno
Contact:

Re: Weapon Touch problema

Post by aaarnas »

Viena klaida tai čia:

Code: Select all

cs_get_weapon_id(iWeapon) == CSW_AWP || CSW_G3SG1 ||  CSW_SG550)

Code: Select all

new wpnid = cs_get_weapon_id(iWeapon)if( iWeapon > 0 && A_Snaiperio_Ginklai[id] == false &&  (wpnid == CSW_AWP || wpnid == CSW_G3SG1 || wpnid == CSW_SG550))
Palikau CS pasaulį ;/ . Nebepasiekiamas.

addinol
Jau po truputį tampa savu
Posts: 144
Joined: 2010 Sep 05 15:20
Skype: kasparas94

Re: Weapon Touch problema

Post by addinol »

Ačiū, veikia. dar viena problema prie to pačio sakykim tai pas mane pačiam gale Player_Spawn funkcijos yra set task...

Code: Select all

       if((user_has_weapon(id, CSW_AWP) || user_has_weapon(id, CSW_SG550) || user_has_weapon(id, CSW_G3SG1)) && A_Snaiperio_Ginklai[id] == false){        set_task(1.0,"dropZOOM")        } public dropZOOM(id){    engclient_cmd(id, "slot1")    engclient_cmd(id, "drop", "weapon_awp")    engclient_cmd(id, "drop", "weapon_g3sg1")    engclient_cmd(id, "drop", "weapon_sg550")} 
Ir kažkodėl kai mano A_Snaiperio_Ginklai[id] = false; jis man nesuveikia. A_Snaiperio_Ginklai[id] į false nusistato Player_Spawn funkcijos pradžioje.

User avatar
aaarnas
Vyr. diskusijų administratorius
Posts: 3891
Joined: 2010 Aug 31 13:21
Skype: fiarno
Contact:

Re: Weapon Touch problema

Post by aaarnas »

Code: Select all

 client_print(id, print_chat, "user_has_weapon(id, CSW_AWP): %s", user_has_weapon(id, CSW_AWP) ? "True" : "False")client_print(id, print_chat, "user_has_weapon(id, CSW_AWP): %s", user_has_weapon(id, CSW_SG550) ? "True" : "False")client_print(id, print_chat, "user_has_weapon(id, CSW_AWP): %s", user_has_weapon(id, CSW_G3SG1) ? "True" : "False")client_print(id, print_chat, "user_has_weapon(id, CSW_AWP): %s", (A_Snaiperio_Ginklai[id] == false) ? "True" : "False")
Įdėk šitą ir pamatysi kame problema
Palikau CS pasaulį ;/ . Nebepasiekiamas.

Post Reply

Who is online

Users browsing this forum: No registered users and 12 guests