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

Zamrazanie menu po wyborze


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

#1 M@nkovsky

    Zaawansowany

  • Zbanowany

Reputacja: 57
Pomocny

  • Postów:110
  • GG:
  • Steam:steam
  • Imię:Mariusz
  • Lokalizacja:Poland
Offline

Napisano 12.10.2011 12:56

Witam , ciężko mi to opisać (postaram się dość jasno)
Chciałbym zrobić coś takiego ,że po wyborze frakcji na serwerze menu się zamrozi na 5sekund(przykładowo) i przez te 5sekund nie będzie można wybrać klasy.

Potrzebuje czegoś takiego gdyż niektóre bazy nie wczytują od razu danych a nie sposób wszystkich garczy ciągle ostrzegać ,żeby odczekali.

Pytanie brzmi , czy takie coś jest wykonalne?

#2 Goliath

    Godlike

  • Przyjaciel

Reputacja: 1 237
Godlike

  • Postów:2 334
  • GG:
  • Steam:steam
  • Imię:Maciej
  • Lokalizacja:Mońki
Offline

Napisano 12.10.2011 13:02

Automatyczna wiadomość


Ten temat został przeniesiony z forum:
AMX Mod XPytania
do
Scripting AMXXPytania


  • +
  • -
  • 0

#3 MarWit

    The Chosen One

  • Przyjaciel

Reputacja: 843
Czempion

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

Napisano 12.10.2011 14:14

Daj sma CoD-a
  • +
  • -
  • 0

marwit-0.png


#4 Muzzi

    Guru

  • Przyjaciel

Reputacja: 228
Wszechwidzący

  • Postów:772
  • Lokalizacja:Kraków
Offline

Napisano 12.10.2011 14:14

Menu Callback i item_disabled ?(chyba tak to się pisze)
  • +
  • -
  • 0

#5 M@nkovsky

    Zaawansowany

  • Autor tematu
  • Zbanowany

Reputacja: 57
Pomocny

  • Postów:110
  • GG:
  • Steam:steam
  • Imię:Mariusz
  • Lokalizacja:Poland
Offline

Napisano 12.10.2011 19:15

Jak by kto mógł to proszę o konkretny przykład.
Bo posty wyżej nie wiele mi mówią ; /

#6 Muzzi

    Guru

  • Przyjaciel

Reputacja: 228
Wszechwidzący

  • Postów:772
  • Lokalizacja:Kraków
Offline

Napisano 12.10.2011 21:10

Kawałek z mojego kodu.

menu_additem(menu, szFormats, "999", 0, menu_makecallback("callback_cmdSkill"));




public callback_cmdSkill(id, menu, item)
return ITEM_DISABLED;


I public, to zablokuje dany item w menu, mam nadzieję, iż się połapałeś.
  • +
  • -
  • 0

#7 MarWit

    The Chosen One

  • Przyjaciel

Reputacja: 843
Czempion

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

Napisano 13.10.2011 12:19

ew. można jeszcze handle'u:

Po wybraniu frakcji do zmiennej np. g_fWaitTime[33] zapisujesz get_gametime()+10.0. Następnie w handle sprawdzasz czy get_gametime() jest <= g_fWaitTime[id]. Jeżeli tak, zwracasz PLUGIN_CONTINUE. Jeżeli nie, będzie można wybrać klasę. Enjoy.
  • +
  • -
  • 0

marwit-0.png


#8 Muzzi

    Guru

  • Przyjaciel

Reputacja: 228
Wszechwidzący

  • Postów:772
  • Lokalizacja:Kraków
Offline

Napisano 13.10.2011 13:01

@MarWit
Najlepsza metoda tutaj to użycie callback_menu (aby się zbytnio nie bawić) nie jest to trudne w zrobieniu.
  • +
  • -
  • 0

#9 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 554
Godlike

  • Postów:11 979
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Warszawa
Offline

Napisano 13.10.2011 13:18

daj sma
  • +
  • -
  • 0

#10 M@nkovsky

    Zaawansowany

  • Autor tematu
  • Zbanowany

Reputacja: 57
Pomocny

  • Postów:110
  • GG:
  • Steam:steam
  • Imię:Mariusz
  • Lokalizacja:Poland
Offline

Napisano 15.10.2011 18:59

O mamuniu..

Dark nie mogę dać Sma , wybacz ; )

Mam Diablo robione starym stylem tworzenia menu i nie bardzo wiem jak to posklejać
Mógłbyś mi to zrobić an zasadzie "runemenu"
Oczywiście za pomoc ++

public buyrune(id)
{
new text[513]

format(text, 512, "\ySklep z runami - ^n\w1. Upgrade Przedmiotu \r[$9000]^n\w2. Losuj Przedmiot \r[$5000]^n\w3. Pakiet Doswiadczenia \r[$14500]^n\w4. Loteria Expa \r[$14500]^n^n\w0. Zamknij")

new keys = (1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<9)
show_menu(id, keys, text)
return PLUGIN_HANDLED
}

public select_rune_menu(id, key)
{
switch(key)
{
case 0:
{
if (!UTIL_Buyformoney(id,9000))
return PLUGIN_HANDLED

upgrade_item(id)
}

case 1:
{
if (!UTIL_Buyformoney(id,5000))
return PLUGIN_HANDLED
award_item(id,0)
return PLUGIN_HANDLED
}
case 2:
{
if (!UTIL_Buyformoney(id,10000))
return PLUGIN_HANDLED
new exp = get_cvar_num("diablo_xpbonus")*random_num(1,2)+player_lvl[id]*get_cvar_num("diablo_xpbonus")/35
Give_Xp(id,exp)
client_print(id,print_center,"dostales %d expa!",exp)
return PLUGIN_HANDLED
}
case 3:
switch(random_num(0,2))
{
case 0:
{
if (!UTIL_Buyformoney(id,14500))
return PLUGIN_HANDLED

new exp = get_cvar_num("diablo_xpbonus")*random_num(1,2)+player_lvl[id]*get_cvar_num("diablo_xpbonus")/35
Give_Xp(id,exp)
client_print(id,print_center,"Dostales %d expa! (Zwykly)",exp)
return PLUGIN_HANDLED
}
case 1:
{
if (!UTIL_Buyformoney(id,14500))
return PLUGIN_HANDLED
new exp = get_cvar_num("diablo_xpbonus")*random_num(1,2)+player_lvl[id]*get_cvar_num("diablo_xpbonus")/35
Give_Xp(id,exp)
client_print(id,print_center,"Dostales %d expa! (Podwojny)",exp)
return PLUGIN_HANDLED
}
case 2:
{
if (!UTIL_Buyformoney(id,14500))
return PLUGIN_HANDLED

client_print(id,print_center,"Masz pecha, nic nie dostales.")
return PLUGIN_HANDLED
}
}
case 9:
{
return PLUGIN_HANDLED;
}


}

return PLUGIN_HANDLED
}


#11 MarWit

    The Chosen One

  • Przyjaciel

Reputacja: 843
Czempion

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

Napisano 15.10.2011 19:07

No to na początku tworzysz zmienną globalną ( new Float:g_fWaitTime[33]; ) O reszcie już mowiłem.



public buyrune(id)
{
new text[513]

format(text, 512, "\ySklep z runami - ^n\w1. Upgrade Przedmiotu \r[$9000]^n\w2. Losuj Przedmiot \r[$5000]^n\w3. Pakiet Doswiadczenia \r[$14500]^n\w4. Loteria Expa \r[$14500]^n^n\w0. Zamknij")

new keys = (1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<9)
show_menu(id, keys, text)

g_fWaitTime[id] = get_gametime() + 10.0

return PLUGIN_HANDLED
}

public select_rune_menu(id, key)
{
if(g_fWaitTime[id] > get_gametime())
return PLUGIN_CONTINUE

switch(key)
{
case 0:
{
if (!UTIL_Buyformoney(id,9000))
return PLUGIN_HANDLED

upgrade_item(id)
}

case 1:
{
if (!UTIL_Buyformoney(id,5000))
return PLUGIN_HANDLED
award_item(id,0)
return PLUGIN_HANDLED
}
case 2:
{
if (!UTIL_Buyformoney(id,10000))
return PLUGIN_HANDLED
new exp = get_cvar_num("diablo_xpbonus")*random_num(1,2)+player_lvl[id]*get_cvar_num("diablo_xpbonus")/35
Give_Xp(id,exp)
client_print(id,print_center,"dostales %d expa!",exp)
return PLUGIN_HANDLED
}
case 3:
switch(random_num(0,2))
{
case 0:
{
if (!UTIL_Buyformoney(id,14500))
return PLUGIN_HANDLED

new exp = get_cvar_num("diablo_xpbonus")*random_num(1,2)+player_lvl[id]*get_cvar_num("diablo_xpbonus")/35
Give_Xp(id,exp)
client_print(id,print_center,"Dostales %d expa! (Zwykly)",exp)
return PLUGIN_HANDLED
}
case 1:
{
if (!UTIL_Buyformoney(id,14500))
return PLUGIN_HANDLED
new exp = get_cvar_num("diablo_xpbonus")*random_num(1,2)+player_lvl[id]*get_cvar_num("diablo_xpbonus")/35
Give_Xp(id,exp)
client_print(id,print_center,"Dostales %d expa! (Podwojny)",exp)
return PLUGIN_HANDLED
}
case 2:
{
if (!UTIL_Buyformoney(id,14500))
return PLUGIN_HANDLED

client_print(id,print_center,"Masz pecha, nic nie dostales.")
return PLUGIN_HANDLED
}
}
case 9:
{
return PLUGIN_HANDLED;
}


}

return PLUGIN_HANDLED
}

  • +
  • -
  • 1

marwit-0.png


#12 M@nkovsky

    Zaawansowany

  • Autor tematu
  • Zbanowany

Reputacja: 57
Pomocny

  • Postów:110
  • GG:
  • Steam:steam
  • Imię:Mariusz
  • Lokalizacja:Poland
Offline

Napisano 26.10.2011 11:52

Fajnie ze zamrozi menu ale mi chodzi o to zeby zamrozilo a menu zostało. Tak jakby nie dało się ic wcisnąć..
Przy twojej opcji znika całkowicie

#13 Misiaczek ;c

    /dev/null

  • Moderator

Reputacja: 1 678
Godlike

  • Postów:2 496
  • GG:
  • Steam:steam
  • Imię:Michał
  • Lokalizacja:Halemba
Offline

Napisano 26.10.2011 11:59

dodac, bola ze po wyborze czegos daje go na true + task tam ze po 10 sek ma mu zrobic na false ;] i przed calym menu dac if(bol[id]] i juz ;d, jest to co prawda badziewny sposob ale powinien zadzialac :D

new bool:uzyl_menu[33];
#define TASK_UZYL 9988

public buyrune(id)
{
new text[513]

format(text, 512, "\ySklep z runami - ^n\w1. Upgrade Przedmiotu \r[$9000]^n\w2. Losuj Przedmiot \r[$5000]^n\w3. Pakiet Doswiadczenia \r[$14500]^n\w4. Loteria Expa \r[$14500]^n^n\w0. Zamknij")

new keys = (1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<9)
show_menu(id, keys, text)
return PLUGIN_HANDLED
}

public select_rune_menu(id, key)
{
if(!uzyl_menu[id])
{
switch(key)
{
case 0:
{
if (!UTIL_Buyformoney(id,9000))
return PLUGIN_HANDLED

upgrade_item(id)
uzyl_menu[id] = true;
task_menu(id)

}

case 1:
{
if (!UTIL_Buyformoney(id,5000))
return PLUGIN_HANDLED
award_item(id,0)
uzyl_menu[id] = true;
task_menu(id)
return PLUGIN_HANDLED
}
case 2:
{
if (!UTIL_Buyformoney(id,10000))
return PLUGIN_HANDLED
new exp = get_cvar_num("diablo_xpbonus")*random_num(1,2)+player_lvl[id]*get_cvar_num("diablo_xpbonus")/35
Give_Xp(id,exp)
client_print(id,print_center,"dostales %d expa!",exp)
uzyl_menu[id] = true;
task_menu(id)
return PLUGIN_HANDLED
}
case 3:
switch(random_num(0,2))
{
case 0:
{
if (!UTIL_Buyformoney(id,14500))
return PLUGIN_HANDLED

new exp = get_cvar_num("diablo_xpbonus")*random_num(1,2)+player_lvl[id]*get_cvar_num("diablo_xpbonus")/35
Give_Xp(id,exp)
client_print(id,print_center,"Dostales %d expa! (Zwykly)",exp)
uzyl_menu[id] = true;
task_menu(id)
return PLUGIN_HANDLED
}
case 1:
{
if (!UTIL_Buyformoney(id,14500))
return PLUGIN_HANDLED
new exp = get_cvar_num("diablo_xpbonus")*random_num(1,2)+player_lvl[id]*get_cvar_num("diablo_xpbonus")/35
Give_Xp(id,exp)
client_print(id,print_center,"Dostales %d expa! (Podwojny)",exp)
uzyl_menu[id] = true;

return PLUGIN_HANDLED
}
case 2:
{
if (!UTIL_Buyformoney(id,14500))
return PLUGIN_HANDLED

client_print(id,print_center,"Masz pecha, nic nie dostales.")
uzyl_menu[id] = true;
task_menu(id)
return PLUGIN_HANDLED
}
}
case 9:
{
return PLUGIN_HANDLED;
}


}
}

return PLUGIN_HANDLED
}

public task_menu(id)
{
if(!task_exists(id+TASK_UZYL))
{
set_task(10.0, "task_uzyl", id+TASK_UZYL, _, _, "b");
}
}

public task_uzyl(id)
{
uzyl_menu[id] = false;
remove_task(id+TASK_UZYL);
}

  • +
  • -
  • 0

#14 M@nkovsky

    Zaawansowany

  • Autor tematu
  • Zbanowany

Reputacja: 57
Pomocny

  • Postów:110
  • GG:
  • Steam:steam
  • Imię:Mariusz
  • Lokalizacja:Poland
Offline

Napisano 26.10.2011 12:42

up twoj sposob nie blokuje menu

#15 Misiaczek ;c

    /dev/null

  • Moderator

Reputacja: 1 678
Godlike

  • Postów:2 496
  • GG:
  • Steam:steam
  • Imię:Michał
  • Lokalizacja:Halemba
Offline

Napisano 26.10.2011 12:49

sprawdź tak
new bool:uzyl_menu[33];
#define TASK_UZYL 9988

public buyrune(id)
{
new text[513]

format(text, 512, "\ySklep z runami - ^n\w1. Upgrade Przedmiotu \r[$9000]^n\w2. Losuj Przedmiot \r[$5000]^n\w3. Pakiet Doswiadczenia \r[$14500]^n\w4. Loteria Expa \r[$14500]^n^n\w0. Zamknij")

new keys = (1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<9)
show_menu(id, keys, text)
return PLUGIN_HANDLED
}

public select_rune_menu(id, key)
{
switch(key)
{
if(!uzyl_menu[id])
{
case 0:
{
if (!UTIL_Buyformoney(id,9000))
return PLUGIN_HANDLED

upgrade_item(id)
uzyl_menu[id] = true;
task_menu(id)

}

case 1:
{
if (!UTIL_Buyformoney(id,5000))
return PLUGIN_HANDLED

award_item(id,0)
uzyl_menu[id] = true;
task_menu(id)
return PLUGIN_HANDLED
}
case 2:
{
if (!UTIL_Buyformoney(id,10000))
return PLUGIN_HANDLED
new exp = get_cvar_num("diablo_xpbonus")*random_num(1,2)+player_lvl[id]*get_cvar_num("diablo_xpbonus")/35
Give_Xp(id,exp)
client_print(id,print_center,"dostales %d expa!",exp)
uzyl_menu[id] = true;
task_menu(id)
return PLUGIN_HANDLED
}
case 3:
switch(random_num(0,2))
{
case 0:
{
if (!UTIL_Buyformoney(id,14500))
return PLUGIN_HANDLED

new exp = get_cvar_num("diablo_xpbonus")*random_num(1,2)+player_lvl[id]*get_cvar_num("diablo_xpbonus")/35
Give_Xp(id,exp)
client_print(id,print_center,"Dostales %d expa! (Zwykly)",exp)
uzyl_menu[id] = true;
task_menu(id)
return PLUGIN_HANDLED
}
case 1:
{
if (!UTIL_Buyformoney(id,14500))
return PLUGIN_HANDLED
new exp = get_cvar_num("diablo_xpbonus")*random_num(1,2)+player_lvl[id]*get_cvar_num("diablo_xpbonus")/35
Give_Xp(id,exp)
client_print(id,print_center,"Dostales %d expa! (Podwojny)",exp)
uzyl_menu[id] = true;

return PLUGIN_HANDLED
}
case 2:
{
if (!UTIL_Buyformoney(id,14500))
return PLUGIN_HANDLED

client_print(id,print_center,"Masz pecha, nic nie dostales.")
uzyl_menu[id] = true;
task_menu(id)
return PLUGIN_HANDLED
}
}
case 9:
{
return PLUGIN_HANDLED;
}
}
else if(uzyl_menu[id])
{
return PLUGIN_HANDLED;
}
return PLUGIN_HANDLED
}
}

public task_menu(id)
{
if(!task_exists(id+TASK_UZYL))
{
set_task(10.0, "task_uzyl", id+TASK_UZYL, _, _, "b");
}
}

public task_uzyl(id)
{
uzyl_menu[id] = false;
remove_task(id+TASK_UZYL);
}


a jak nie to przepisz menu na nowy styl O.o co w tym trudnego :F
  • +
  • -
  • 0




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

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