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

Aktualnie $ oraz wylaczenie menu po 5 sek


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

#1 vernon

    Zaawansowany

  • Użytkownik

Reputacja: -9
Nowy

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

Napisano 31.05.2012 23:27

Witam, mam do was pytania 2

1. Jak zrobić menu takie np:
Menu Sklepu
Aktualny Stan Konta: (Stan konta gracza)$

1. +50 HP (3000$)
2. +100 HP (6000$)


i chodzi mi o to jak zrobić Aktualny Stan Konta: (Stan konta gracza)$

Przykładowe menu do którego bym prosił żeby dodać Aktualny Stan Konta: (Stan konta gracza)

/* Plugin generated by AMXX-Studio */

#include
#include

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


public plugin_init() {
    register_plugin(PLUGIN, VERSION, AUTHOR)
    
    register_clcmd("say /sklep", "menu_sklepu")
}

public menu_sklepu(id)
{
    new menu = menu_create("\wMenu Sklepu:^nAktualny Stan Konta: \r(Stan konta gracza)", "wybieranie")    
    menu_additem(menu, "+50 HP (3000$)", "1", 0)
    menu_additem(menu, "+100 HP (6000$)", "2", 0)
    menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)    
    menu_display(id, menu, 0)
}

//dalszy kod...


2. Jak zrobić, takie coś ze np. na początku rundy wyświetla się jakieś tam menu, które wyłączy się po 5 sek

/* Plugin generated by AMXX-Studio */

#include
#include

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


public plugin_init() {
    register_plugin(PLUGIN, VERSION, AUTHOR)
    
    RegisterHam(Ham_Spawn, "player", "menu", 1);
}

public menu(id)
{
    new menu = menu_create("Cos tutaj?", "menu_wybor")    
    menu_additem(menu, "Tak", "1", 0)
    menu_additem(menu, "Nie", "2", 0)
    menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)    
    menu_display(id, menu, 0)
}

//dalszy kod...

Użytkownik vernon edytował ten post 31.05.2012 23:28

  • +
  • -
  • 0

#2 vernon

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: -9
Nowy

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

Napisano 01.06.2012 00:55

Z pierwszym problemem juz sobie poradzilem, ale z tym 2 nie dam sobie rady
  • +
  • -
  • 0

#3 GwynBleidD

    Godlike

  • Przyjaciel

Reputacja: 1 869
Godlike

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

Napisano 01.06.2012 05:08

ad 1. Tworzysz nową zmienną tekstową (tablicę) i za pomocą format uzupełniasz w niej stan konta itp. Następnie ustawiasz tą zmienną jako tytuł menu.

ad 2. Przed freeze time, czy po freeze time ma się wyświetlać?
Dla wyświetlania przed freeze time dodajesz do plugin_init:
register_event("HLTV", "wyswietlMenu", "a", "1=0", "2=0")

Tyle, że się nie wykona na pierwszej rundzie na mapie i po restarcie gry (gdy gracze wejdą na serwer do obu drużyn, oraz po użyciu sv_restart). Ale chyba dla Ciebie nie jest to jakiś duży problem :)

Jeśli chcesz wyświetlić po freeze time to zamiast powyższego użyj tego:
register_logevent("wyswietlMenu", 2, "1=Round_Start")


Następnie dla obu tych przypadków tworzysz funkcję wyswietlMenu w której wyświetlasz dane menu. Pamiętaj, że musisz to zrobić w pętli, ponieważ eventy wyżej wymienione nie podają id gracza, są wykonywane raz dla całego serwera, a nie dla konkretnych graczy. Po wyświetleniu menu dla danego gracza tworzysz task zamykający je:
new data[2];
data[0]=menu; // Tutaj przekazujemy do taska ID menu, żeby mógł je zniszczyć
data[1]=id;
set_task(5.0, "zamknijMenu, id, data, 2);

zmienne menu i id dostosuj do swojego kodu. Następnie funkcja zamykająca:
zamknijMenu(data[], len) {
show_menu(data[1], 0, "", 0);
menu_destroy(data[0]);
}


Jest jeszcze 3 opcja, wyświetlić graczowi to menu za każdym razem, gdy się spawnuje (wtedy wykona się zarówno na początku gry, jak i po restartach etc...). Aby to zrobić użyj w plugin_init:
RegisterHam(Ham_Spawn, "player", "wyswietlMenuGraczowi", 1)


W funkcji wyswietlMenuGraczowi nie stosujesz już pętli po graczach, gdyż ta funkcja wykonuje się dla każdego gracza i podaje ID gracza (dlatego tutaj zmieniłem nazwę funkcji, żebyś zauważył różnicę :) ). Reszta pozostaje taka sama.
  • +
  • -
  • 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





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

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