Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie

Menu raz na rundę


  • Zamknięty Temat jest zamknięty
1 odpowiedź w tym temacie

#1 .minD

    Wszechobecny

  • Użytkownik

Reputacja: 57
Pomocny

  • Postów:451
  • Lokalizacja:Łódź
Offline

Napisano 09.05.2010 20:18

Mam sobie menu z klasami, które wyświetla się od razu po wejściu na serwer. Pozniej po wpisaniu /klasa mozna znowu to menu z wyborem otworzyc, lecz chcę, żeby można je było włączyć tylko raz na rundę.

/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fun>
#include <engine>

#define PLUGIN "Klasy"
#define VERSION "1.0"
#define AUTHOR ".minD"

#define TASK_SHOWMENU 12000


public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("say /klasa","mymenu");
register_clcmd("say_team /klasa","mymenu");
}

public client_putinserver(id)
set_task(1.0, "show_menu_", id+TASK_SHOWMENU);

public show_menu_(tid){
new id=tid-TASK_SHOWMENU;
new iTeam=get_user_team(id);

new menu_id, keys;
new menuUp = player_menu_info( id, menu_id, keys );

if ( iTeam && (menuUp <= 0 || menu_id < 0) )
//Tu pokazujemy menu
mymenu(id);
else
set_task(1.0, "show_menu_", tid);
}

public mymenu(id){
new MyMenu=menu_create("OMG","cbMyMenu");

menu_additem(MyMenu,"ikdede");//item=0
menu_additem(MyMenu,"ikde");//item=1

menu_display(id, MyMenu,0);
return PLUGIN_HANDLED;
}
public cbMyMenu(id, menu, item){
switch(item){
case 0:{
cs_set_user_model (id,"ikdede")
give_item (id, "weapon_m4a1");
give_item (id, "weapon_p228");
give_item (id, "ammo_556nato");
give_item (id, "ammo_556nato");
give_item (id, "ammo_556nato");
client_print(id, print_chat, "ikdede.!");
}
case 1:{
cs_set_user_model (id,"iksde")
give_item (id, "weapon_g3sg1");
give_item (id, "weapon_fiveseven");
give_item (id, "ammo_762nato");
give_item (id, "ammo_762nato");
give_item (id, "ammo_762nato");
client_print(id, print_chat, "ikde.!");
}
}
client_print(id, print_chat, "Aby zmienic klase wpisz /klasa");
menu_destroy(menu);
return PLUGIN_HANDLED;

}

  • +
  • -
  • 0

#2 R3X

    Godlike

  • Przyjaciel

Reputacja: 2 987
Godlike

  • Postów:4 248
  • Lokalizacja:Nie
Offline

Napisano 09.05.2010 21:17

Dodajesz licznik [tablica 33 elementowa] i liczysz użycia. Jeśli przekroczysz limit (dałem stałą, możesz brać z cvar) nie pokazuj menu. Na nową rundę reset liczników, to samo przy wejściu gracza.
Nowe linie oznaczyłem komentarzami, żebyś łatwiej je odnalazł.
/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fun>
#include <engine>

#define PLUGIN "Klasy"
#define VERSION "1.0"
#define AUTHOR ".minD"

#define TASK_SHOWMENU 12000

//2 NOWE
#define USES_PER_ROUND 1
new giUses[33];

public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("say /klasa","mymenu");
register_clcmd("say_team /klasa","mymenu");

register_event("HLTV", "eventNewRound", "a", "1=0", "2=0");//NOWA
}

public client_putinserver(id){
giUses[id] = 0;//NOWA
set_task(1.0, "show_menu_", id+TASK_SHOWMENU);
}
//NOWA FUNKCJA
public eventNewRound(){
for(new i=1;i<33;i++)
giUses[i] = 0;
}

public show_menu_(tid){
new id=tid-TASK_SHOWMENU;
new iTeam=get_user_team(id);

new menu_id, keys;
new menuUp = player_menu_info( id, menu_id, keys );

if ( iTeam && (menuUp <= 0 || menu_id < 0) )
//Tu pokazujemy menu
mymenu(id);
else
set_task(1.0, "show_menu_", tid);
}

public mymenu(id){
if(giUses[id] >= USES_PER_ROUND){//NOWA
client_print(id, print_chat, "* W tej rundzie juz nie mozesz uzyc tej komendy");//NOWA
return PLUGIN_HANDLED;//NOWA
}
giUses[id]++;//NOWA

new MyMenu=menu_create("OMG","cbMyMenu");

menu_additem(MyMenu,"ikdede");//item=0
menu_additem(MyMenu,"ikde");//item=1

menu_display(id, MyMenu,0);
return PLUGIN_HANDLED;
}
public cbMyMenu(id, menu, item){
switch(item){
case 0:{
cs_set_user_model (id,"ikdede")
give_item (id, "weapon_m4a1");
give_item (id, "weapon_p228");
give_item (id, "ammo_556nato");
give_item (id, "ammo_556nato");
give_item (id, "ammo_556nato");
client_print(id, print_chat, "ikdede.!");
}
case 1:{
cs_set_user_model (id,"iksde")
give_item (id, "weapon_g3sg1");
give_item (id, "weapon_fiveseven");
give_item (id, "ammo_762nato");
give_item (id, "ammo_762nato");
give_item (id, "ammo_762nato");
client_print(id, print_chat, "ikde.!");
}
}
client_print(id, print_chat, "Aby zmienic klase wpisz /klasa");
menu_destroy(menu);
return PLUGIN_HANDLED;

}

  • +
  • -
  • 1




Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych