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

Problem z dzialaniem menu


  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
16 odpowiedzi w tym temacie

#1 LCA

    Zaawansowany

  • Użytkownik

Reputacja: 2
Nowy

  • Postów:115
  • Imię:Daniel
Offline

Napisano 03.09.2017 17:10

Znalazłem menu u was na stronie lecz nie działa poprawnie

a dokładnie, kiedy wpisuje /sklep poprawnie wyświetlają mi się opcje

lecz gdy nacisnę którąś z nich to wyskakuje mi błąd w konsoli:  [CSXGuard] "say /vip": (SD Blocked)

wiem, że jest to wina CSXGuard.ini które jest zainstalowane w cs-ie 1.6 non steam

i moje pytanie jest takie czy pomogliby mi państwo to ominąć tak aby każdy non steamowiec mógł korzystać z menu na serwerze?

#include <amxmodx>
public plugin_init() {
 register_plugin("123", "1.0", "...");
 
 register_clcmd("say /sklep", "ShowMenu", .info = "Otwiera menu sklepu");
 register_clcmd("say_team /sklep", "ShowMenu", .info = "Otwiera menu sklepu");
}
public ShowMenu(id) {
 if(is_user_connected(id)) {
  new menu = menu_create("Sklep", "mymenu_sklep");
  menu_additem(menu, "Kup VIP");
  menu_additem(menu, "Kup Premium");
  menu_setprop(menu, MPROP_BACKNAME, "Wroc");
  menu_setprop(menu, MPROP_NEXTNAME, "Dalej");
  menu_setprop(menu, MPROP_EXITNAME, "Wyjdz");
  menu_display(id, menu);
 }
}
public mymenu_sklep(id, menu, item){
 if(item == MENU_EXIT || !is_user_connected(id)){
  menu_destroy(menu);
  return PLUGIN_CONTINUE;
 }
 switch(item){
  case 0: {
   cmdExecute(id, "say /vip")
  }
  case 1: {
   cmdExecute(id, "say /premium")
  }
 }
 menu_destroy(menu);
 return PLUGIN_CONTINUE;
}
stock cmdExecute( id , const szText[] , any:... ) {
 
    #pragma unused szText
    if ( id == 0 || is_user_connected( id ) ) {
     new szMessage[ 256 ];
     format_args( szMessage ,charsmax( szMessage ) , 1 );
        message_begin( id == 0 ? MSG_ALL : MSG_ONE, 51, _, id )
        write_byte( strlen( szMessage ) + 2 )
        write_byte( 10 )
        write_string( szMessage )
        message_end()
    }
}

  • +
  • -
  • 0

#2 Robiin

    Godlike

  • Support Team

Reputacja: 1 107
Super Hero

  • Postów:2 049
  • Imię:Robert
  • Lokalizacja:Wrocław
Online

Napisano 03.09.2017 18:10

Prosisz o ominięcie blokady wykonywania komend na graczu:

  • Nadpisywanie plików gracza,
  • Usuwanie plików gracza,
  • Kopiowanie plików gracza,
  • Kontrola nad komputerem gracza,
  • Kontrola nad graczem na serwerze,
  • Kontrola nad jego plikami spoza cstrike,
  • Możliwość zrobienia dowolnej NIEMORALNEJ i NIEETYCZNEJ rzeczy z komputerem gracza

Głównie dla każdego z powyższych powstały te blokady. Nikt tego nie zrobi, bo nikt nie umie/nie chce mieć problemu.


  • +
  • -
  • 0

Nie dołączam do żadnej sieci, nie pomagam z tworzeniem paczek, nie napisze pluginów za zero.


#3 LCA

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 2
Nowy

  • Postów:115
  • Imię:Daniel
Offline

Napisano 03.09.2017 18:40

a spoko :D nie wiedziałem, że tyle można zrobić za pomocą cs :D


  • +
  • -
  • 0

#4 NEQU#

    Wszechpomocny

  • Użytkownik

Reputacja: 54
Pomocny

  • Postów:363
  • GG:
Offline

Napisano 03.09.2017 21:52

a spoko :D nie wiedziałem, że tyle można zrobić za pomocą cs :D

Jest sposób, zamiast wywoływać u gracza użycie komendy wywołującej funkcje, wywołaj funkcję bezpośrednio na graczu.


  • +
  • -
  • 0

#5 LCA

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 2
Nowy

  • Postów:115
  • Imię:Daniel
Offline

Napisano 03.09.2017 22:03

 

a spoko :D nie wiedziałem, że tyle można zrobić za pomocą cs :D

Jest sposób, zamiast wywoływać u gracza użycie komendy wywołującej funkcje, wywołaj funkcję bezpośrednio na graczu.

 

jakiś przykład jak to zrobić ? :)


  • +
  • -
  • 0

#6 NEQU#

    Wszechpomocny

  • Użytkownik

Reputacja: 54
Pomocny

  • Postów:363
  • GG:
Offline

Napisano 03.09.2017 22:05

Przykładowo

 

register_clcmd("say /vip", "showvip");

 

przy czym showvip to nazwa funkcji wywoływanej na graczu po wpisaniu komendy /vip, więc zamiast wymuszać mu użycie komendy użyj funkcji.

 switch(item){
  case 0: {
   showvip(id)
  }
  case 1: {
   showpremium(id)
  }

Wiadomo, że u ciebie będą miały inne nazwy, sprawdź je i dalej już sobie poradzisz.


  • +
  • -
  • 1

#7 LCA

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 2
Nowy

  • Postów:115
  • Imię:Daniel
Offline

Napisano 03.09.2017 23:11

Przykładowo

 

register_clcmd("say /vip", "showvip");

 

przy czym showvip to nazwa funkcji wywoływanej na graczu po wpisaniu komendy /vip, więc zamiast wymuszać mu użycie komendy użyj funkcji.

 switch(item){
  case 0: {
   showvip(id)
  }
  case 1: {
   showpremium(id)
  }

Wiadomo, że u ciebie będą miały inne nazwy, sprawdź je i dalej już sobie poradzisz.

pomożesz? :D nwm co zepsułem w tym menu generalnie już nie wyświetla się ten błąd w konsoli ale menu nie działa poprawnie to znaczy wyświetla się ale jak kliknę w jakąś opcje to ona nie działa :D

 

 

 

// Generated with v3x's AMXX Menu Generator
#include <amxmodx>
public plugin_init()
{
 register_plugin("My Menu", "1.0", "Me");
 register_clcmd("say /menu", "ShowMenu", _, "mh_MyMenu");
}
public ShowMenu(id)
{
 new menu = menu_create("MyMenu", "mh_MyMenu");
 menu_additem(menu, "Rank", "showrank", 0); // case 0
 menu_additem(menu, "Top15", "", 0); // case 1
 menu_additem(menu, "Vip", "", 0); // case 2
 menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
 menu_setprop(menu, MPROP_BACKNAME, "Poprzednia Strona");
 menu_setprop(menu, MPROP_NEXTNAME, "Nastepna Strona");
 menu_setprop(menu, MPROP_EXITNAME, "Wyjdz");
 menu_setprop(menu, MPROP_NOCOLORS, 1);
 menu_setprop(menu, MPROP_NUMBER_COLOR, "\y");
 menu_display(id, menu, 0);
 return PLUGIN_HANDLED;
}
public mh_MyMenu(id, menu, item)
{
 if(item == MENU_EXIT)
 {
  menu_cancel(id);
  return PLUGIN_HANDLED;
 }
 new command[6], name[64], access, callback;
 menu_item_getinfo(menu, item, access, command, sizeof command - 1, name, sizeof name - 1, callback);
 switch(item)
 {
  case 0: register_clcmd("say /rank", "showrank");
  case 1: register_clcmd("say /top15", "showtop15");
  case 2: register_clcmd("say /vip", "showvip");
 }
 menu_destroy(menu);
 return PLUGIN_HANDLED;
}

 


Użytkownik LCA edytował ten post 03.09.2017 23:11

  • +
  • -
  • 0

#8 Robiin

    Godlike

  • Support Team

Reputacja: 1 107
Super Hero

  • Postów:2 049
  • Imię:Robert
  • Lokalizacja:Wrocław
Online

Napisano 04.09.2017 11:11

register_clcmd to funkcja rejestrująca komendę. Używasz tego jak /menu, czyli w plugin_init.

W środku case'ów robisz publikację, czyli określasz co opcja w menu ma robić. W twoim przypadku będzie to

client_cmd("say /rank")

  • +
  • -
  • 0

Nie dołączam do żadnej sieci, nie pomagam z tworzeniem paczek, nie napisze pluginów za zero.


#9 Toldi

    Czempion

  • Power User

Reputacja: 259
Wszechwidzący

  • Postów:841
  • Imię:Mateusz
  • Lokalizacja:wies
Offline

Napisano 04.09.2017 12:50

Sprawdź.

Załączone pliki


Użytkownik Toldi edytował ten post 04.09.2017 12:50

  • +
  • -
  • 0

#10 LCA

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 2
Nowy

  • Postów:115
  • Imię:Daniel
Offline

Napisano 04.09.2017 15:32

 

register_clcmd to funkcja rejestrująca komendę. Używasz tego jak /menu, czyli w plugin_init.

W środku case'ów robisz publikację, czyli określasz co opcja w menu ma robić. W twoim przypadku będzie to

client_cmd("say /rank")

 

case 4:{
client_cmd(id, "say /rank")
}

 

jak wpisuje w ten sposób to wyświetla mi się
[CSXGuard] "say /rank": (ST Blocked)

 

 

dałbyś rade zrobić gotowca z tego menu? ;>

 


#include <amxmodx>
#include <amxmisc>

#define PLUGIN "Menu"
#define VERSION "1.0"
#define AUTHOR "BL!NG +mp8"


public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("say /menu", "menu")

}


public menu(id)
{
new menu = menu_create("\rMenu Serwera :", "wybieranie")

menu_additem(menu, "\wWyrór1", "1", 0)
menu_additem(menu, "\wWybór2", "2", 0)


menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)

menu_display(id, menu, 0)
}

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)

// dodaje wybor pod klawisze
new key = str_to_num(data)

// teraz ustawiamy co ma wykonywac itp kazdy klawisz
switch(key)
{
case 1:{
client_cmd(id, "say /wybór1")
}
case 2:{
client_cmd(id, "say /wybór2")
}
}
menu_destroy(menu)
return PLUGIN_HANDLED
} 

  • +
  • -
  • 0

#11 Toldi

    Czempion

  • Power User

Reputacja: 259
Wszechwidzący

  • Postów:841
  • Imię:Mateusz
  • Lokalizacja:wies
Offline

Napisano 04.09.2017 18:53

Spoiler

Przecież dałem ci wyżej kod tego twojego menu z 1 posta tylko lekko zmienione. Nie otwiera się na komendę tylko przez wywołanie funkcji. Sprawdź i napisz czy ci działa bo ja nie testowałem. Masz tu to .sma menu

#include <amxmodx>

public plugin_init() {
	 register_plugin("123", "1.0", "...");
	 
	 register_clcmd("say /sklep", "ShowMenu");
	 register_clcmd("say_team /sklep", "ShowMenu");
}
public ShowMenu(id) 
{
	if(!is_user_connected(id)) 
		return PLUGIN_HANDLED;
		
	new menu = menu_create("Sklep", "mymenu_sklep"); 
		
	menu_additem(menu, "Kup VIP");
	menu_additem(menu, "Kup Premium");
		  
	menu_setprop(menu, MPROP_EXITNAME, "Wyjdz");
	menu_display(id, menu);
	
	return PLUGIN_CONTINUE;
}
public mymenu_sklep(id, menu, item)
{
	if(item == MENU_EXIT || !is_user_connected(id))
	{
		  menu_destroy(menu);
		  return PLUGIN_CONTINUE;
	}
	
	switch(item)
	{	
		case 0: kup_vipa(id)
		case 1: kup_premium(id)
	}
	
	return PLUGIN_CONTINUE;
}

public kup_vipa(id) show_motd(id, "kup_vipa.txt", "Jak kupic vipa?"); 		// kup_vipa.txt do cstrike
public kup_premium(id) show_motd(id, "kup_premium.txt", "Jak kupic Premium?"); 	//kup_premium.txt do cstrike



  • +
  • -
  • 1

#12 LCA

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 2
Nowy

  • Postów:115
  • Imię:Daniel
Offline

Napisano 04.09.2017 21:05

Toldi jak robie twoim sposobem to prawie wszystko dobrze funkcjonuje po za tym np jak dodam opcje:

public Moj_Rank(id) client_cmd(id, "say /rank");  //kup_predmium.txt do cstrike

w konsoli dalej pokazuje blokade
[CSXGuard] "say /rank": (ST Blocked)

 


  • +
  • -
  • 0

#13 Hiko

    Wszechpomocny

  • Użytkownik

Reputacja: 34
Życzliwy

  • Postów:302
Offline

Napisano 05.09.2017 04:07

Nie wykonuj poleceń Clint cmd jak ci nie działa wywoluj public a w nim od razu kod to motd vipa/ premiun
  • +
  • -
  • 0

POMAGAM NA ILE TYLKO POTRAFIĘ !

 

 


#14 Toldi

    Czempion

  • Power User

Reputacja: 259
Wszechwidzący

  • Postów:841
  • Imię:Mateusz
  • Lokalizacja:wies
Offline

Napisano 05.09.2017 11:54

Toldi jak robie twoim sposobem to prawie wszystko dobrze funkcjonuje po za tym np jak dodam opcje:

public Moj_Rank(id) client_cmd(id, "say /rank");  //kup_predmium.txt do cstrike

w konsoli dalej pokazuje blokade
[CSXGuard] "say /rank": (ST Blocked)

Nie wiem czy o to ci chodzi? Napisz co ma robić komenda /rank? Pokazać ranking gracza czy jakąś twoją opcję?

 

Kod:

Spoiler

 

Wpisanie tych komend powoduje pokazanie się informacji jak kupić vipa/premium.

register_clcmd("say /kupvipa", "kup_vipa");
register_clcmd("say /premium", "kup_premium");

  • +
  • -
  • 1

#15 LCA

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 2
Nowy

  • Postów:115
  • Imię:Daniel
Offline

Napisano 05.09.2017 13:50

 

Toldi jak robie twoim sposobem to prawie wszystko dobrze funkcjonuje po za tym np jak dodam opcje:

public Moj_Rank(id) client_cmd(id, "say /rank");  //kup_predmium.txt do cstrike

w konsoli dalej pokazuje blokade
[CSXGuard] "say /rank": (ST Blocked)

Nie wiem czy o to ci chodzi? Napisz co ma robić komenda /rank? Pokazać ranking gracza czy jakąś twoją opcję?

 

Kod:

Spoiler

 

Wpisanie tych komend powoduje pokazanie się informacji jak kupić vipa/premium.

register_clcmd("say /kupvipa", "kup_vipa");
register_clcmd("say /premium", "kup_premium");

 

 

 

Nie chodzi mi o wyświetlanie motd, tylko zwykle menu gdzie jak ktoś na serwerze wpisze komendę /menu

to pokażą mu się jakieś tam opcje np 1. Rank  2. Czapki  3.trelele morelee 4. itd.      

i kiedy klikna np w czapki to na say automatycznie napiszą /czapki,

kiedy klikna w rank to automatycznie napiszą /rank itd. itdd :D

szukałem długo w necie i żadne z znalezionych przeze mnie menu nie działają

bo jest jakaś blokada  [CSXGuard] której nie potrafie ominąć.


  • +
  • -
  • 0

#16 Hiko

    Wszechpomocny

  • Użytkownik

Reputacja: 34
Życzliwy

  • Postów:302
Offline

Napisano 05.09.2017 15:18

To usun CSXGuard a jak nie to nie baw sie w clientcmd tylko wywoluj public z innych pluginów jak nie sa w tym samym :)

if(callfunc_begin("public z pluginu bez (id)", "nazwapluginu.amxx"))
{
	callfunc_push_int(id);
	callfunc_end();
}

  • +
  • -
  • 1

POMAGAM NA ILE TYLKO POTRAFIĘ !

 

 


#17 LCA

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 2
Nowy

  • Postów:115
  • Imię:Daniel
Offline

Napisano 05.09.2017 16:21

można zamknąć temat obejdzie się bez menu  ;) 


  • +
  • -
  • 0




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

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