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

[ROZWIĄZANE] [Pytanie] Wykonanie funkcji dopiero po wymaganiach


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

#1 Jadek13

    Banned

  • Zbanowany

Reputacja: 2
Nowy

  • Postów:47
  • Imię:Daniel
  • Lokalizacja:Sejny
Offline

Napisano 22.03.2013 15:42

Witam. W pluginie którym pisze mam switch(item) i chodzi dokladnie o to jak zrobić żeby dopiero po tym:
case 1:
		{
			if(!is_user_alive(id))
				return PLUGIN_CONTINUE;
			if(!Gracz(id))
				return PLUGIN_CONTINUE;
		
wykonało się to:
			give_item(id, "weapon_glock18")
			give_item(id,"ammo_9mm")
			give_item(id,"ammo_9mm")
			give_item(id,"ammo_9mm")
			give_item(id,"ammo_9mm")
			give_item(id,"ammo_9mm")
			give_item(id,"ammo_9mm")
			give_item(id,"weapon_knife")
		}
Te dwa "[.code]" wyżej to jest jeden "case". Proszę o szybką odpowiedź :)
Gracz(id)
jest to lista graczy. Bo gdy wpiszę komende amx_weapons i wybiorę odpowiednią broń (case) to od razu ją dostaje chociaż że pokazuje się lista graczy. Gdy wybiorę gracza nic już to nie powoduje.

Użytkownik Jadek Nowy edytował ten post 22.03.2013 15:45


#2 MrBombastic

    Banned

  • Zbanowany

Reputacja: 32
Życzliwy

  • Postów:94
  • Imię:Kazimierz
  • Lokalizacja:Internet
Offline

Napisano 22.03.2013 15:47

Nie rozumiem, chcesz, żeby po warunkach wykonał się ten kod?

case 1:
{
	if(!is_user_alive(id) && !Gracz(id))
		return PLUGIN_CONTINUE;
	give_item(id, "weapon_glock18")
	give_item(id,"ammo_9mm")
	give_item(id,"ammo_9mm")
	give_item(id,"ammo_9mm")
	give_item(id,"ammo_9mm")
	give_item(id,"ammo_9mm")
	give_item(id,"ammo_9mm")
	give_item(id,"weapon_knife")
}

Posiadam unikalną paczkę PB - więcej informacji na PW
Dołączona grafika

#3 Jadek13

    Banned

  • Autor tematu
  • Zbanowany

Reputacja: 2
Nowy

  • Postów:47
  • Imię:Daniel
  • Lokalizacja:Sejny
Offline

Napisano 22.03.2013 15:48

Ja tak samo zapisałem jak ty tylko że w odzielnych ifach

#4 MrBombastic

    Banned

  • Zbanowany

Reputacja: 32
Życzliwy

  • Postów:94
  • Imię:Kazimierz
  • Lokalizacja:Internet
Offline

Napisano 22.03.2013 15:50

Możesz podać cały kod? Najpierw musisz pobrać gracza, któremu chcesz dać broń, następnie dać mu ją.

Użytkownik MrBombastic edytował ten post 22.03.2013 15:52

Posiadam unikalną paczkę PB - więcej informacji na PW
Dołączona grafika

#5 dasiek

    Nie wiem, nie znam się, nie orientuję się, zarobiony jestem.

  • Junior Admin

Reputacja: 2 077
Godlike

  • Postów:5 706
  • Imię:Adaś
  • Lokalizacja:No teraz trochę dalej od WWy
Offline

Napisano 22.03.2013 15:54

Jeśli Gracz(id) to menu , To swich z broniami dodaj w handlu tego menu.
  • +
  • -
  • 0

#6 Jadek13

    Banned

  • Autor tematu
  • Zbanowany

Reputacja: 2
Nowy

  • Postów:47
  • Imię:Daniel
  • Lokalizacja:Sejny
Offline

Napisano 22.03.2013 15:54

Ależ proszę :)
/* Plugin generated by AMXX-Studio */

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

#define PLUGIN "Weapons Menu"
#define VERSION "1.0"
#define AUTHOR "Jadek"

new gracz_id[33], wybrany;
new name[33];


public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	
	register_clcmd("amx_weapons", "weapons", ADMIN_IMMUNITY, "Admin moze dac graczowi okreslona bron");
}

public weapons(id)
{
	if(!(get_user_flags(id) & ADMIN_IMMUNITY))
		return PLUGIN_HANDLED;

	new tytul[64];
	format(tytul, 63, "\rMenu dawania broni by Jadek");
	new menu = menu_create(tytul, "weapons_handler");
	menu_additem(menu, "USP");//0
	menu_additem(menu, "GLOCK");//1

	menu_display(id, menu);
	
	return PLUGIN_HANDLED;
}

public weapons_handler(id, menu, item)
{
	if(!is_user_connected(id))
		return PLUGIN_CONTINUE;
		
	if(item == MENU_EXIT)
	{
		menu_destroy(menu);
		return PLUGIN_CONTINUE;
	}
	
	switch(item)
	{
		case 0:
		{
			if(!is_user_alive(id))
				return PLUGIN_CONTINUE;
			if(!Gracz(id))
				return PLUGIN_CONTINUE;
				
				
				give_item(id,"weapon_usp")
				give_item(id,"ammo_45acp")
				give_item(id,"ammo_45acp")
				give_item(id,"ammo_45acp")
				give_item(id,"ammo_45acp")
				give_item(id,"ammo_45acp")
				give_item(id,"ammo_45acp")
				give_item(id,"ammo_45acp")
				give_item(id,"ammo_45acp")
				give_item(id,"ammo_45acp")
				give_item(id,"weapon_knife")
				
			
		}
		
		case 1:
		{
			if(!is_user_alive(id))
				return PLUGIN_CONTINUE;
			if(!Gracz(id))
				return PLUGIN_CONTINUE;
		
			give_item(id, "weapon_glock18")
			give_item(id,"ammo_9mm")
			give_item(id,"ammo_9mm")
			give_item(id,"ammo_9mm")
			give_item(id,"ammo_9mm")
			give_item(id,"ammo_9mm")
			give_item(id,"ammo_9mm")
			give_item(id,"weapon_knife")
		 }
}

public Gracz(id)
{
	new menu = menu_create("Wybierz gracza:", "Gracz_handler");
	
	for(new i=0, n=0; i<=32; i++)
	{
		if(!is_user_connected(i))
			continue;
		gracz_id[n++] = i;
		new nazwa_gracza[64];
		get_user_name(i, nazwa_gracza, 63)
		menu_additem(menu, nazwa_gracza, "0", 0);
	}
	menu_display(id, menu);
}


public Gracz_handler(id, menu, item)
{
	if(item == MENU_EXIT)
	{
		menu_destroy(menu);
		return PLUGIN_CONTINUE;
	}
	
	wybrany = gracz_id[item];
	get_user_name(wybrany, name, 32);
	
		
	return PLUGIN_HANDLED;
}


Edit:
CheQ - tak mam.

Użytkownik Jadek Nowy edytował ten post 22.03.2013 15:56


#7 GwynBleidD

    Godlike

  • Przyjaciel

Reputacja: 1 869
Godlike

  • Postów:3 066
  • Steam:steam
  • Lokalizacja:Przemyśl
Offline

Napisano 23.03.2013 01:10

Ojj, coś Ci się mocno pomieszało :) Musisz to zrobić następująco: Wywołać jedno menu, poczekać na rezultat (tak masz pierwsze), następnie w rezultacie wywołać drugie i w rezultacie tego 2 menu dopiero dajesz broń. Proponuję najpierw wybrać gracza, dopiero później broń jaką mu dać :)

public wybierz_gracza(id) {
new menu = menu_create("Wybierz gracza", "handle_gracze");

new players[32], num;
new name[32], info[3];
get_players(players, num);
for(new i=0; i<num; ++i) {
get_user_name(players[i], name, 31);
info[0] = players[i];
info[1] = get_user_userid(players[i]) & 0xFF;
info[2] = (get_user_userid(players[i])>>8) & 0xFF;
menu_additem(menu, name, info);
}

menu_display(id, menu);
}

public handle_gracze(id, menu, item) {
if(item == MENU_EXIT) {
menu_destroy(menu);
return PLUGIN_HANDLED;
}

new info[3], access, callback;
menu_item_getinfo(menu, item, access, info, 3,_, _, callback);
if(is_user_connected(info[0]) && info[1]+(info[2]<<8) == get_user_userid(info[0])) {
new menu2= = menu_create("Wybierz Broń", "handle_bronie");
menu_additem(menu, "USP", info);//0
menu_additem(menu, "GLOCK", info);//1

menu_display(id, menu);
} else {
client_print(id, print_chat, "Gracz chyba uciekł...");

menu_destroy(menu);
return PLUGIN_HANDLED;
}

public handle_bronie(id, menu, item) {
if(item == MENU_EXIT) {
menu_destroy(menu);
return PLUGIN_HANDLED;
}

new info[3], access, callback;
menu_item_getinfo(menu, item, access, info, 3,_, _, callback);
if(is_user_connected(info[0]) && info[1]+(info[2]<<8) == get_user_userid(info[0])) {
switch(item) {
case 0: {
give_item(info[0],"weapon_usp")
give_item(info[0],"ammo_45acp")
give_item(info[0],"ammo_45acp")
give_item(info[0],"ammo_45acp")
give_item(info[0],"ammo_45acp")
give_item(info[0],"ammo_45acp")
give_item(info[0],"ammo_45acp")
give_item(info[0],"ammo_45acp")
give_item(info[0],"ammo_45acp")
give_item(info[0],"ammo_45acp")
give_item(info[0],"weapon_knife")
}
}
} else {
client_print(id, print_chat, "Gracz chyba uciekł...");

menu_destroy(menu);
return PLUGIN_HANDLED;
}

To powinno zadziałać :)
  • +
  • -
  • 1

NIE pomagam na PW. Nie trudź się, na zlecenia nie odpiszę... Od pomagania jest forum.
NIE zaglądam w tematy wysłane na PW. Jeśli są na forum to prędzej czy później je przeczytam. Jeśli mam co w nich odpisać, to odpiszę.
 
1988650.png?theme=dark


#8 Jadek13

    Banned

  • Autor tematu
  • Zbanowany

Reputacja: 2
Nowy

  • Postów:47
  • Imię:Daniel
  • Lokalizacja:Sejny
Offline

Napisano 23.03.2013 09:51

Dzięki masz + +
Do zamknięcia.

#9 GwynBleidD

    Godlike

  • Przyjaciel

Reputacja: 1 869
Godlike

  • Postów:3 066
  • Steam:steam
  • Lokalizacja:Przemyśl
Offline

Napisano 23.03.2013 14:47

Zmień jeszcze w obu miejscach to:
 == get_user_userid(info[0])

na to:
 == get_user_userid(info[0]) &0xFFFF


Te fragmenty służą do weryfikacji, czy gracz Ci z serwera nie uciekł i nie musisz ich "rozumieć" :)

Użytkownik GwynBleidD edytował ten post 23.03.2013 14:48

  • +
  • -
  • 0

NIE pomagam na PW. Nie trudź się, na zlecenia nie odpiszę... Od pomagania jest forum.
NIE zaglądam w tematy wysłane na PW. Jeśli są na forum to prędzej czy później je przeczytam. Jeśli mam co w nich odpisać, to odpiszę.
 
1988650.png?theme=dark


#10 MarWit

    The Chosen One

  • Przyjaciel

Reputacja: 843
Czempion

  • Postów:1 485
  • GG:
  • Steam:steam
  • Imię:Marcin
  • Lokalizacja:Bystrzyca
Offline

Napisano 23.03.2013 16:35

Wiadomość wygenerowana automatycznie


Ten temat został zamknięty przez moderatora.

Powód: Pomoc udzielona

Jeśli się z tym nie zgadzasz, Dołączona grafika raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.


Z pozdrowieniami,
Zespół AMXX.PL
  • +
  • -
  • 0

marwit-0.png





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

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