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

Tworzenie menu


  • Zamknięty Temat jest zamknięty
5 odpowiedzi w tym temacie

#1 BoB0_

    Wszechpomocny

  • Użytkownik

Reputacja: 38
Życzliwy

  • Postów:365
  • GG:
  • Lokalizacja:Przemyśl
Offline

Napisano 29.04.2011 12:53

Witam.

Chciałem stworzyć sobie menu do csa n swoje potrzeby i mam problem. Może najpierw dam kod żeby było jaśniej:
/* Plugin generated by AMXX-Studio */

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

#define PLUGIN "Menu"
#define VERSION "1.0"
#define AUTHOR "BoB0_"


public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	register_clcmd("say /menu", "menu");
	register_clcmd("radio2", "menu")
	// Add your code here...
}

public menu(id)
{
	new menu = menu_create("\rMenu", "wybieranie");
	menu_additem(menu, "\wPerk", "1", 0);
	menu_additem(menu, "\wWyrzuc Perk", "2", 0);
	menu_additem(menu, "\wSklep", "3", 0);
	menu_additem(menu, "\wLista Perkow", "4", 0);
	
	menu_setprop(menu, MPROP_EXITNAME, "Wyjscie")
	menu_display(id, menu, 0);
	ColorChat(id,GREEN,"[BingBang.eu]^x01 Wybrales menu pomocy.");
}
public wybieranie(id, menu, item)
{
        if (item == MENU_EXIT)
        {
                menu_destroy(menu)
                return PLUGIN_HANDLED;
        }
        new data[6], iName[64]
        new acces, callback
        menu_item_getinfo(menu, item, acces, data,5, iName, 63, callback)
	new key = str_to_num(data)
	
	switch(key)
{
	case 1:
	{
		client_cmd(id,"say /perk")
		menu_destroy(menu);
		return PLUGIN_HANDLED;
	}
	case 2:
	{
		client_cmd(id, "say /drop")
		menu_destroy(menu);
		return PLUGIN_HANDLED;
	}
	case 3:
	{
		client_cmd(id, "say /sklep")
		menu_destroy(menu);
		return PLUGIN_HANDLED;
	}
	case 4:
	{
		client_cmd(id, "say /perki")
		menu_destroy(menu);
		return PLUGIN_HANDLED;
	}
        }
        menu_destroy(menu)
        return PLUGIN_HANDLED;
}

W tym menu chciałbym dodać kolejną opcję nazwaną reset. Po naciśnięciu na tę opcję pojawiło by się kolejne menu z opcjami tak i nie. Jednak nie wiem jak to zrobić. Próbowałem w ten sposób:
/* Plugin generated by AMXX-Studio */

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

#define PLUGIN "Menu"
#define VERSION "1.0"
#define AUTHOR "BoB0_"


public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	register_clcmd("say /menu", "menu");
	register_clcmd("radio2", "menu");
	register_clcmd("say /reset2", "reset2");
	// Add your code here...
}

public menu(id)
{
	new menu = menu_create("\rMenu", "wybieranie");
	menu_additem(menu, "\wPerk", "1", 0);
	menu_additem(menu, "\wWyrzuc Perk", "2", 0);
	menu_additem(menu, "\wSklep", "3", 0);
	menu_additem(menu, "\wLista Perkow", "4", 0);
	new menu = menu_create("Resetuj Statystyki", "reset3");
	
	menu_setprop(menu, MPROP_EXITNAME, "Wyjscie")
	menu_display(id, menu, 0);
	ColorChat(id,GREEN,"[BingBang.eu]^x01 Wybrales menu pomocy.");
}
public wybieranie(id, menu, item)
{
        if (item == MENU_EXIT)
        {
                menu_destroy(menu)
                return PLUGIN_HANDLED;
        }
        new data[6], iName[64]
        new acces, callback
        menu_item_getinfo(menu, item, acces, data,5, iName, 63, callback)
	new key = str_to_num(data)
	
	switch(key)
{
	case 1:
	{
		client_cmd(id,"say /perk")
		menu_destroy(menu);
		return PLUGIN_HANDLED;
	}
	case 2:
	{
		client_cmd(id, "say /drop")
		menu_destroy(menu);
		return PLUGIN_HANDLED;
	}
	case 3:
	{
		client_cmd(id, "say /sklep")
		menu_destroy(menu);
		return PLUGIN_HANDLED;
	}
	case 4:
	{
		client_cmd(id, "say /perki")
		menu_destroy(menu);
		return PLUGIN_HANDLED;
	}
        }
        menu_destroy(menu)
        return PLUGIN_HANDLED;
}
public reset2(id)
{
	new menu = menu_create("Chcesz zresetowac statystyki?", "reset3");
	menu_additem(menu, "\wTak", "1", 0)
	menu_additem(menu, "\wNie", "2", 0)
	
	menu_setprop(menu, MPROP_EXITNAME, "Wyjscie")
	menu_display(id, menu, 0);
}
public reset3(id, menu, item)
{
	if (item == MENU_EXIT)
        {
                menu_destroy(menu)
                return PLUGIN_HANDLED;
        }
        new data[6], iName[64]
        new acces, callback
        menu_item_getinfo(menu, item, acces, data,5, iName, 63, callback)
	new key = str_to_num(data)
	
	switch(key)
{
	case 1:
	{
		client_cmd(id, "say /reset")
		menu_destroy(menu);
		return PLUGIN_HANDLED;
	}
	case 2:
	{
		menu_destroy(menu);
		return PLUGIN_HANDLED;
	}
}
        menu_destroy(menu)
        return PLUGIN_HANDLED;
}

Ale mam błąd że menu już istnieje. Błąd jest w linii 29. Jeżeli ktoś wie jak to zrobić prosłbym o pomoc, ponieważ nigdzie tego ładnie opisanego nie znalazłem. Pozdrawiam i z góry dziękuję,

Dodano 29 kwiecień 2011 - 13:14:
Prosiłbym o nie usuwanie tego posta.

Po kilku próbach udało mi się dojść do tego jak to się robi. Oto kod jakby ktoś potrzebował :
/* Plugin generated by AMXX-Studio */

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

#define PLUGIN "Menu"
#define VERSION "1.0"
#define AUTHOR "BoB0_"


public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	register_clcmd("say /menu", "menu");
	register_clcmd("radio2", "menu");
	register_clcmd("say /reset2", "reset2");
	// Add your code here...
}

public menu(id)
{
	new menu = menu_create("\rMenu", "wybieranie");
	menu_additem(menu, "\wPerk", "1", 0);
	menu_additem(menu, "\wWyrzuc Perk", "2", 0);
	menu_additem(menu, "\wSklep", "3", 0);
	menu_additem(menu, "\wLista Perkow", "4", 0);
	menu_additem(menu, "Resetuj Statystyki", "5", 0);
	
	menu_setprop(menu, MPROP_EXITNAME, "Wyjscie")
	menu_display(id, menu, 0);
	ColorChat(id,GREEN,"[BingBang.eu]^x01 Wybrales menu pomocy.");
}
public wybieranie(id, menu, item)
{
        if (item == MENU_EXIT)
        {
                menu_destroy(menu)
                return PLUGIN_HANDLED;
        }
        new data[6], iName[64]
        new acces, callback
        menu_item_getinfo(menu, item, acces, data,5, iName, 63, callback)
	new key = str_to_num(data)
	
	switch(key)
{
	case 1:
	{
		client_cmd(id,"say /perk")
		menu_destroy(menu);
		return PLUGIN_HANDLED;
	}
	case 2:
	{
		client_cmd(id, "say /drop")
		menu_destroy(menu);
		return PLUGIN_HANDLED;
	}
	case 3:
	{
		client_cmd(id, "say /sklep")
		menu_destroy(menu);
		return PLUGIN_HANDLED;
	}
	case 4:
	{
		client_cmd(id, "say /perki")
		menu_destroy(menu);
		return PLUGIN_HANDLED;
	}
	case 5:
	{
		new menu = menu_create("Chcesz zresetowac statystyki?", "reset3");
		menu_additem(menu, "\wTak", "1", 0)
		menu_additem(menu, "\wNie", "2", 0)
	
		menu_setprop(menu, MPROP_EXITNAME, "Wyjscie")
		menu_display(id, menu, 0);
	}
        }
        menu_destroy(menu)
        return PLUGIN_HANDLED;
}
public reset3(id, menu, item)
{
	if (item == MENU_EXIT)
        {
                menu_destroy(menu)
                return PLUGIN_HANDLED;
        }
        new data[6], iName[64]
        new acces, callback
        menu_item_getinfo(menu, item, acces, data,5, iName, 63, callback)
	new key = str_to_num(data)
	
	switch(key)
{
	case 1:
	{
		client_cmd(id, "say /reset")
		menu_destroy(menu);
		return PLUGIN_HANDLED;
	}
	case 2:
	{
		menu_destroy(menu);
		return PLUGIN_HANDLED;
	}
}
        menu_destroy(menu)
        return PLUGIN_HANDLED;
}

  • +
  • -
  • 0

#2 Leihto

    Wszechobecny

  • Użytkownik

Reputacja: 150
Profesjonalista

  • Postów:452
  • Lokalizacja:Rabka
Offline

Napisano 29.04.2011 13:21

Pozwole sobie Ci zwrocic uwage..

#include <cstrike>
#include <fun>

Po co Ci to jak tego nie uzywasz?
  • +
  • -
  • 0
Portek: Za 20zł, to ja nawet notatnika nie otworze..

Nowe portfolio. Ciekawe artykuły, ciekawe przykłady: WojtusDEV.pl

#3 Adminek AMXX.PL

    Admin :)

  • Bot

Reputacja: 156
Profesjonalista

  • Postów:7 476
  • Lokalizacja:AMXX.PL
Offline

Napisano 29.04.2011 13:22

Automatyczna wiadomość


Ten temat został przeniesiony z forum:
AMX Mod X -> Pytania
do
Scripting -> Pytania


#4 BoB0_

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 38
Życzliwy

  • Postów:365
  • GG:
  • Lokalizacja:Przemyśl
Offline

Napisano 29.04.2011 13:32

Jestem laik w tych sprawach, a to menu robiłem na podstawie podobnego. W tamtym te funkcje były zawarte dlatego wolałem nie ruszać. Skoro mówisz, że ich nie używa to je usunę.

Dodano 29 kwiecień 2011 - 13:40:
Czy żeby to menu było pod 'radio2' muszę najpierw jakoś ten przycisk odbindować?
  • +
  • -
  • 0

#5 Leihto

    Wszechobecny

  • Użytkownik

Reputacja: 150
Profesjonalista

  • Postów:452
  • Lokalizacja:Rabka
Offline

Napisano 29.04.2011 19:10

Raczej takie rzeczy sie binduje pod klawiszami :P
Np tak.
public client_putinserver(id)
{
client_cmd(id, "bind ^"c^" ^"say /menu")
}
public client_disconnect(id)
{
client_cmd(id, "unbind ^"c^"")
}

ta druga funkcja jest zeby je odbindowac gdy gracz wychodzi z serwera :P
  • +
  • -
  • 1
Portek: Za 20zł, to ja nawet notatnika nie otworze..

Nowe portfolio. Ciekawe artykuły, ciekawe przykłady: WojtusDEV.pl

#6 BoB0_

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 38
Życzliwy

  • Postów:365
  • GG:
  • Lokalizacja:Przemyśl
Offline

Napisano 29.04.2011 20:36

Dzięki za podesłanie takiego pomysłu. Mam jednak problem z tym menu ale nadal pod radio2. Chodzi o to, że gdy żyjemu i naciśniemy przycisk radio2 pojawia się nam radio2 a w czacie pisze, że weszliśmy do menu pomocy. Gdy jednak nie żyjemy i naciśniemy klawisz radio2 pokazuje nam się owe menu. Teraz to jest osobny plugin jednak chciałbym go wrzucić do silnika cod'a ponieważ są w tym pluginie zawarte funkcje z coda. Czy gdy przeniosę menu do silnika nie będzie tego problemu z radiem? Myślę, że tak będzie ponieważ w codzie pod radio3 jest już zbindowane używanie perku i działa poprawnie.
  • +
  • -
  • 0




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

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