Naujoj sistema ir chooseteam

Šiame forume rašomi vartotojų klausimai/problemos su kuriomis jie susidūrė kuriant pluginus.
Pukuotukas951
Gana aktyvus vartotojas
Posts: 445
Joined: 2011 Aug 27 09:29

Naujoj sistema ir chooseteam

Post by Pukuotukas951 »

Naudoju naująją menu sistemą, meniu yra užsatytas ant chooseteam ir assigeteam , galit parašyt kodą kad pasirinkus tarkim meniu

1.Perkelia pas ct
2.Perkelias pas t
3.Pas spectator ?

nes dabar niekaip negaliu keist komandos

User avatar
xFrostas
Flooderis arba specialistas
Posts: 660
Joined: 2010 Sep 02 15:47
Skype: frost.lt

Re: Naujoj sistema ir chooseteam

Post by xFrostas »

Plugin
Attachments
Team_Menu.amxx
AMXX
(3.05 KiB) Downloaded 673 times
Team_Menu.sma
SMA
(1.21 KiB) Downloaded 696 times

Pukuotukas951
Gana aktyvus vartotojas
Posts: 445
Joined: 2011 Aug 27 09:29

Re: Naujoj sistema ir chooseteam

Post by Pukuotukas951 »

Ačiū, bet va, aš bšk. persidariau, kad ir mirusiam eitų persikelti į kitą komandą, o kaip padaryt, kad tą komandą leistų keisti tik 1 kartą per round?

Code: Select all

#include <amxmodx>#include <cstrike> public plugin_init(){    register_plugin("Team Menu", "1.0", "Lightas")         register_clcmd("say /team", "Main_Team_Menu")        register_clcmd("say team", "Main_Team_Menu")} public Main_Team_Menu(id){    new menu = menu_create("\rChoose Team", "Team_Menu")     menu_additem(menu, "\yTerrorist", "1", 0)    menu_additem(menu, "\yCounter-Terrorist", "2", 0)    menu_additem(menu, "\ySpectator", "3", 0)     menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)    menu_display(id, menu, 0)}public Menu(id, menu, item){    if (item == MENU_EXIT)    {        menu_destroy(menu)        return PLUGIN_HANDLED    }     new data[6], iName[64]    new access, callback    menu_item_getinfo(menu, item, access, data, 5, iName, 63, callback)    new key = str_to_num(data)     switch(key)    {        case 1:        {            if (is_user_alive(id))            {                user_silentkill(id)                cs_set_user_team(id, CS_TEAM_T)            }            else            {                cs_set_user_team(id, CS_TEAM_T)            }        }        case 2:        {            if (is_user_alive(id))            {                user_silentkill(id)                cs_set_user_team(id, CS_TEAM_CT)            }            else            {                cs_set_user_team(id, CS_TEAM_CT)            }        case 3:        {            if (is_user_alive(id))            {                user_silentkill(id)                cs_set_user_team(id, CS_TEAM_SPECTATOR)            }            else            {                cs_set_user_team(id, CS_TEAM_SPECTATOR)            }    }    menu_destroy(menu)    return PLUGIN_HANDLED}

Kažką su šituo daryt?

Code: Select all

  new bool:ChooseTeam_Used[33]; public Event_HLTV_New_Round(id)  {     arrayset(ChooseTeam_Used, false, sizeof(ChooseTeam_Used)); }   public client_authorized(id){    ChooseTeam_Used[id] = false;} //........//     if(ChooseTeam_Used[id] == true)    {        client_print(id, print_center, "Leidziama keisti tik 1 komanda.");        return PLUGIN_HANDLED;    }   //.....//    ChooseTeam_Used[id] = true; 

User avatar
xFrostas
Flooderis arba specialistas
Posts: 660
Joined: 2010 Sep 02 15:47
Skype: frost.lt

Re: Naujoj sistema ir chooseteam

Post by xFrostas »

Netikrinau, bet turėtų veikti.
Attachments
Team_Menu.sma
SMA
(2.38 KiB) Downloaded 679 times

Pukuotukas951
Gana aktyvus vartotojas
Posts: 445
Joined: 2011 Aug 27 09:29

Re: Naujoj sistema ir chooseteam

Post by Pukuotukas951 »

Neveikia, vistiek galima keisti daug kartų.

InvIs
Gana aktyvus vartotojas
Posts: 421
Joined: 2011 Aug 13 11:12
Skype: pksoldierlt
Location: ATOSTOGOSE

Re: Naujoj sistema ir chooseteam

Post by InvIs »

Tai kai pasirenka komandą uždėk kintamajį pasirinko[id] = 1

Code: Select all

switch(key){case 1:{    if(pasirinko[id] != 1)    {        cs_set_user_team(id, CS_TEAM_T)        pasirinko[id] = 1    }}case 2:{    if(pasirinko[id] != 1)    {        cs_set_user_team(id, CS_TEAM_CT)        pasirinko[id] = 1    }}case 3:{    if(pasirinko[id] != 1)    {        cs_set_user_team(id, CS_TEAM_SPECTATOR)        pasirinko[id] = 1    }}}

Code: Select all

public logevent_round_start(){    get_players( players, num )    for( new i = 1;i < num; i++)    {        pasirinko[i] = 0    }}
ISVYKES

Pukuotukas951
Gana aktyvus vartotojas
Posts: 445
Joined: 2011 Aug 27 09:29

Re: Naujoj sistema ir chooseteam

Post by Pukuotukas951 »

Pas mane yra padaryta su else tuomet tikrinimas netinka, nes tik pirmam if tikrins, o antram ne.

čia pilnas kodas

Code: Select all

#include <amxmodx>#include <cstrike> new bool: Changed[33] new ChangeTeam[33] public plugin_init(){    register_plugin("Team Menu", "1.0", "Lightas")         register_clcmd("say /team", "Main_Team_Menu")        register_clcmd("say team", "Main_Team_Menu")} public client_disconnect(id){    ChangeTeam[id] = 0    Changed[id] = false} public Main_Team_Menu(id){    new menu = menu_create("\rChoose Team", "Team_Menu")     menu_additem(menu, "\yTerrorist", "1", 0)    menu_additem(menu, "\yCounter-Terrorist", "2", 0)    menu_additem(menu, "\ySpectator", "3", 0)     menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)    menu_display(id, menu, 0)}public Menu(id, menu, item){    if (item == MENU_EXIT)    {        menu_destroy(menu)        return PLUGIN_HANDLED    }     new data[6], iName[64]    new access, callback    menu_item_getinfo(menu, item, access, data, 5, iName, 63, callback)    new key = str_to_num(data)     switch(key)    {        case 1:        {            if (is_user_alive(id))            {                user_silentkill(id)                cs_set_user_team(id, CS_TEAM_T)                Changed[id] = true                ChangeTeam[id]++            }            else            {                cs_set_user_team(id, CS_TEAM_T)                Changed[id] = true                ChangeTeam[id]++            }             if (ChangeTeam[id] > 1)            {                client_print(id, print_center, "Negali keisti komandos du kartus!")                return PLUGIN_HANDLED            }            else if (Changed[id])            {                ChangeTeam[id] = 0            }        }        case 2:        {            if (is_user_alive(id))            {                user_silentkill(id)                cs_set_user_team(id, CS_TEAM_CT)                Changed[id] = true                ChangeTeam[id]++            }            else            {                cs_set_user_team(id, CS_TEAM_CT)                Changed[id] = true                ChangeTeam[id]++            }             if (ChangeTeam[id] > 1)            {                client_print(id, print_center, "Negali keisti komandos du kartus!")                return PLUGIN_HANDLED            }            else if (Changed[id])            {                ChangeTeam[id] = 0            }        }        case 3:        {            if (is_user_alive(id))            {                user_silentkill(id)                cs_set_user_team(id, CS_TEAM_SPECTATOR)                Changed[id] = true                ChangeTeam[id]++            }            else            {                cs_set_user_team(id, CS_TEAM_SPECTATOR)                Changed[id] = true                ChangeTeam[id]++            }             if (ChangeTeam[id] > 1)            {                client_print(id, print_center, "Negali keisti komandos du kartus!")                return PLUGIN_HANDLED            }            else if (Changed[id])            {                ChangeTeam[id] = 0            }        }    }    menu_destroy(menu)    return PLUGIN_HANDLED}

InvIs
Gana aktyvus vartotojas
Posts: 421
Joined: 2011 Aug 13 11:12
Skype: pksoldierlt
Location: ATOSTOGOSE

Re: Naujoj sistema ir chooseteam

Post by InvIs »

Tai tu pagal mane pasidaryk....

EDIT:

Code: Select all

#include <amxmodx>#include <cstrike> new Changed[33] public plugin_init(){    register_plugin("Team Menu", "1.0", "Lightas")         register_clcmd("say /team", "Main_Team_Menu")        register_clcmd("say team", "Main_Team_Menu")    register_logevent("logevent_round_start", 2, "1=Round_Start") } public client_disconnect(id){    Changed[id] = 0} public Main_Team_Menu(id){    new menu = menu_create("\rChoose Team", "Team_Menu")     menu_additem(menu, "\yTerrorist", "1", 0)    menu_additem(menu, "\yCounter-Terrorist", "2", 0)    menu_additem(menu, "\ySpectator", "3", 0)     menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)    menu_display(id, menu, 0)}public Menu(id, menu, item){    if (item == MENU_EXIT)    {        menu_destroy(menu)        return PLUGIN_HANDLED    }     new data[6], iName[64]    new access, callback    menu_item_getinfo(menu, item, access, data, 5, iName, 63, callback)    new key = str_to_num(data)     switch(key)    {        case 1:        {            if (Changed[id] == 1)            {                client_print(id, print_center, "Negali keisti komandos du kartus!")                return PLUGIN_HANDLED            }            if (is_user_alive(id))            {                user_silentkill(id)                cs_set_user_team(id, CS_TEAM_T)                Changed[id] = 1            }            else            {                cs_set_user_team(id, CS_TEAM_T)                Changed[id] = 1            }        }        case 2:        {            if (Changed[id] == 1)            {                client_print(id, print_center, "Negali keisti komandos du kartus!")                return PLUGIN_HANDLED            }            if (is_user_alive(id))            {                user_silentkill(id)                cs_set_user_team(id, CS_TEAM_CT)                Changed[id] = 1            }            else            {                cs_set_user_team(id, CS_TEAM_CT)                Changed[id] = 1            }        }        case 3:        {            if (Changed[id] == 1)            {                client_print(id, print_center, "Negali keisti komandos du kartus!")                return PLUGIN_HANDLED            }            if (is_user_alive(id))            {                user_silentkill(id)                cs_set_user_team(id, SPECTATOR)                Changed[id] = 1            }            else            {                cs_set_user_team(id, CS_TEAM_SPECTATOR)                Changed[id] = 1            }        }    }    menu_destroy(menu)    return PLUGIN_HANDLED} public logevent_round_start(){        new players[32], num    get_players( players, num )    for( new i = 1;i < num; i++)    {                Changed[i] = 0    }}
ISVYKES

Pukuotukas951
Gana aktyvus vartotojas
Posts: 445
Joined: 2011 Aug 27 09:29

Re: Naujoj sistema ir chooseteam

Post by Pukuotukas951 »

Dabar leidžia vieną kartą pakeisti komandą, o daugiau išvis neleidžia, man reikia kaip default, pvz.:

Aš būnu T spaudžiu, kad perkeltų į CT tada mane nuždo ir kol būnu negyvas neleidžia keisti komandos kol į ją nepapuoliau arba tui praeiti 1 round.

Fly3r
Jau po truputį tampa savu
Posts: 138
Joined: 2011 Nov 06 11:35

Re: Naujoj sistema ir chooseteam

Post by Fly3r »

Taigi kam jūs kuriat masyvą? :)
Kuriat vieną kintamąjį ir pagal hleV pamoką tikrinate su bitų operacijomis. :)

Post Reply

Who is online

Users browsing this forum: Amazon [Bot] and 8 guests