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

Screen Menu do klas


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

#1 BoB0_

    Wszechpomocny

  • Użytkownik

Reputacja: 38
Życzliwy

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

Napisano 16.08.2011 18:23

Siemka.

Chciałem sobie zrobić dla zabawy screen menu z klasami z funkcją od R3X'a ale pod zmienieniu kodu plugin się nie wczytuje a errorów brak :/

Oto kawałek który zmieniłem:

public WybierzKlase(id)
{
new menu = smenu_create("Wybierz klase:", "WybierzKlase_Handle");
new klasa[50];
for(new i=1; i <= ilosc_klas; i++)
{
WczytajDane(id, i);
format(klasa, charsmax(klasa), "%s \yPoziom: %i", nazwy_klas[i], poziom_gracza[id]);
smenu_additem(menu, klasa);
}

WczytajDane(id, klasa_gracza[id]);

smenu_setprop(menu, MPROP_EXITNAME, "Wyjdz");
smenu_setprop(menu, MPROP_BACKNAME, "Poprzednia strona");
smenu_setprop(menu, MPROP_NEXTNAME, "Nastepna strona");
smenu_display(id, menu);

client_cmd(id, "spk QTM_CodMod/select");
}

public WybierzKlase_Handle(id, menu, item)
{
client_cmd(id, "spk QTM_CodMod/select");

if(item++ == MENU_EXIT)
{
smenu_destroy(menu);
return PLUGIN_CONTINUE;
}

if(item == klasa_gracza[id] && !nowa_klasa_gracza[id])
return PLUGIN_CONTINUE;

nowa_klasa_gracza[id] = item;

if(klasa_gracza[id])
client_print(id, print_chat, "[COD:MW] Klasa zostanie zmieniona w nastepnej rundzie.");
else
{
UstawNowaKlase(id);
DajBronie(id);
ZastosujAtrybuty(id);
}

return PLUGIN_CONTINUE;
}


Tutaj tylko pozamieniałem menu na smenu, ale usuwałem Poprzednia strona itp i próbowałem coś poprawić mimo wszystko dalej nie działało mimo że kompilowało się bez problemów. Może pokazać jak to dobrze zrobić i czy w ogóle takie menu może czytać klasy.
  • +
  • -
  • 0

#2 Fili:P

    Godlike

  • Power User

Reputacja: 754
Guru

  • Postów:1 679
  • Imię:Darek
  • Lokalizacja:Warszawa
Offline

Napisano 17.08.2011 07:34

W screen menu może być max. 8 elementów menu. W wybierz klasę nie ma żądnych funkcji dotyczących menu, więc nie może to działać.
  • +
  • -
  • 0

#3 BoB0_

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 38
Życzliwy

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

Napisano 17.08.2011 09:55

Czy da się to w ogóle zrobić?
Klas mam 6.

Jeżeli się da to podrzućcie kod jak to ma wyglądać. Będę bardzo wdzięczny.
  • +
  • -
  • 0

#4 Nomaf

    Wszechpomocny

  • Użytkownik

Reputacja: 157
Profesjonalista

  • Postów:344
  • GG:
  • Imię:Mateusz
  • Lokalizacja:Polska
Offline

Napisano 17.08.2011 10:02

Fili, pozycji możesz sobie upchnąć ile chcesz, byle by tylko starczyło RAM'u :)
Bobo, jak wywołujesz menu? Poprzez wpisanie komendy, tak? To źle, trzeba przez klawisz, który się przytrzymuje. Chociażby E.
  • +
  • -
  • 0

#5 BoB0_

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 38
Życzliwy

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

Napisano 17.08.2011 11:32

Wybierz klase jest przypisane do komendy /klasa. Ale na razie nie w tym problem.

Gdy dodam to co jest teraz do kody Codmod'a to plugin się nie wczytuje :/

W liście pluginów pisz error a wszystkie klasy i perki są automatycznie wyłączane.
  • +
  • -
  • 0

#6 R3X

    Godlike

  • Przyjaciel

Reputacja: 2 987
Godlike

  • Postów:4 248
  • Lokalizacja:Nie
Offline

Napisano 18.08.2011 21:44

amx_showrcon amxx list

diagnozuj
  • +
  • -
  • 0

#7 BoB0_

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 38
Życzliwy

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

Napisano 21.08.2011 22:18

Pisze tylko
bad load
czyli nic ciekawego :/

Może trzeba jakieś pliki wrzucić na serwer?

Dodaje w załączniku .sma może ktoś pomoże.

Załączone pliki


  • +
  • -
  • 0

#8 A może sma?

    Godlike

  • Power User

Reputacja: 547
Wszechwiedzący

  • Postów:1 464
  • Steam:steam
  • Imię:Tomasz
  • Lokalizacja:Polska
Offline

Napisano 21.08.2011 22:22

No a wgrałeś plugin - matkę? Który umożliwia tworzenie menu?
  • +
  • -
  • 0

#9 R3X

    Godlike

  • Przyjaciel

Reputacja: 2 987
Godlike

  • Postów:4 248
  • Lokalizacja:Nie
Offline

Napisano 21.08.2011 22:24

bad load jest wręcz arcyciekawe! oznacza, że plugin nie został dobrze zainstalowany, pewnie nie wrzuciłeś samego ScreenMenu.amxx albo wrzuciłeś ale pod codmodem
  • +
  • -
  • 1

#10 BoB0_

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 38
Życzliwy

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

Napisano 21.08.2011 22:37

R3X zrobiłem właśnie tak jak napisałeś. Dziękuję za pomoc ale jest kolejny problem. Otóż menu mam pod komendą /klasa i po wejściu na serwer wyświetal się menu trochę rozjechane ale jest. Nie mogę wybrać żadnej z opcji. Po prostu menu sobie jest na ekranie i tyle. Muszę to zbindować pod jakiś klawisz czy coś w tym stylu? Da radę zrobić to pod tą komendę?
  • +
  • -
  • 0

#11 R3X

    Godlike

  • Przyjaciel

Reputacja: 2 987
Godlike

  • Postów:4 248
  • Lokalizacja:Nie
Offline

Napisano 21.08.2011 22:39

jak robiłem coś podobnego to /klasa robiła display, a lewy czy prawy klawisz myszy close()

a i nie wiem czy o tym już wspominałem, ale menu nie będzie działać na nieżywych graczach (chyba że na freelook)
  • +
  • -
  • 0

#12 BoB0_

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 38
Życzliwy

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

Napisano 21.08.2011 22:48

Coś takiego?

new menuklas;


register_clcmd("say /klasa", "cmdStartWybierz");
register_clcmd("say /class", "cmdStartWybierz");
register_clcmd("mouse1", "cmdStopWybierz");


public WybierzKlase(id)
{
menuklas = smenu_create("Wybierz klase:", "WybierzKlase_Handle");
new klasa[50];
for(new i=1; i <= ilosc_klas; i++)
{
WczytajDane(id, i);
format(klasa, charsmax(klasa), "%s \yPoziom: %i", nazwy_klas[i], poziom_gracza[id]);
smenu_additem(menuklas, klasa);
}

WczytajDane(id, klasa_gracza[id]);

smenu_display(id, menu);

client_cmd(id, "spk QTM_CodMod/select");
}

public WybierzKlase_Handle(id, menu, item)
{

if(item > 0)
client_print(id, print_chat, "Wybrales opcje %d", item);

client_cmd(id, "spk QTM_CodMod/select");

if(item++ == MENU_EXIT)
{
smenu_destroy(menu);
return PLUGIN_CONTINUE;
}

if(item == klasa_gracza[id] && !nowa_klasa_gracza[id])
return PLUGIN_CONTINUE;

nowa_klasa_gracza[id] = item;

if(klasa_gracza[id])
client_print(id, print_chat, "[COD:MW] Klasa zostanie zmieniona w nastepnej rundzie.");
else
{
UstawNowaKlase(id);
DajBronie(id);
ZastosujAtrybuty(id);
}

return PLUGIN_CONTINUE;
}

public cmdStartWybierz(id){
smenu_display(id, menuklas);
return PLUGIN_HANDLED;
}
public cmdStopWybierz(id){
smenu_exit(id);
return PLUGIN_HANDLED;
}


??
  • +
  • -
  • 0

#13 R3X

    Godlike

  • Przyjaciel

Reputacja: 2 987
Godlike

  • Postów:4 248
  • Lokalizacja:Nie
Offline

Napisano 21.08.2011 22:49

nie mouse1 tylko łap cmd_start czy prethink i sprawdzaj klawisze :P to by było zbyt proste
  • +
  • -
  • 1

#14 BoB0_

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 38
Życzliwy

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

Napisano 21.08.2011 22:55

Możesz podrzucić kod jak masz pod ręką? Nie wiem ocb z tym co napisałeś.

W jaki sposób się wybiera opcje z menu?

@edit.

public fwPlayerPreThink(id){
if(!is_user_alive(id))
return FMRES_IGNORED;

static buttons, oldbuttons;
buttons = pev(id, pev_button);
oldbuttons = pev(id, pev_oldbuttons);

if(player_smenu_info(id) == menu){
if(buttons&IN_USE == 0)
smenu_exit(id);
}else{
new Float:fNow = get_gametime();
if(buttons&IN_USE && oldbuttons&IN_USE == 0)
gfLastUse[id] = fNow;
else{
if(fNow-gfLastUse[id] < 0.1)
smenu_display(id, menu, -2);
}
}
return FMRES_IGNORED;
}


Coś takiego? Na co zamienić IN_USE?

Użytkownik BoB0_ edytował ten post 21.08.2011 23:00

  • +
  • -
  • 0

#15 R3X

    Godlike

  • Przyjaciel

Reputacja: 2 987
Godlike

  • Postów:4 248
  • Lokalizacja:Nie
Offline

Napisano 21.08.2011 23:00

Kliknięcie guzika w prethinku - AMXX.pl: Support AMX Mod X

opcję się wybiera myszą
  • +
  • -
  • 1

#16 BoB0_

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 38
Życzliwy

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

Napisano 21.08.2011 23:12

Zrobiłem coś takiego:

public client_PreThink(id)
{
new button = get_user_button(id)

if(zmienna[id]==0 && button & IN_ATTACK) smenu_exit(id);

if(button & IN_ATTACK) zmienna[id] = 1
else zmienna[id] = 0
}


I usunąłem z tym mouse1. Jest jeszcze jeden problem. Otóż zaraz po wejściu na serwer wyświetla się to menu ale nie mogę wybrać żadnej opcji. Mogę korzystać z broni ale nie są one pokazywane. Po wciśnięciu mouse1 menu się nie zamyka. Jest widoczne przez cały czas :/
  • +
  • -
  • 0

#17 A może sma?

    Godlike

  • Power User

Reputacja: 547
Wszechwiedzący

  • Postów:1 464
  • Steam:steam
  • Imię:Tomasz
  • Lokalizacja:Polska
Offline

Napisano 21.08.2011 23:22

Musisz usunąć z silnika CoDa pokazywanie menu jeżeli nie ma się klasy:

public Odrodzenie(id)
{
if(!task_exists(id+ZADANIE_POKAZ_INFORMACJE))
set_task(0.1, "PokazInformacje", id+ZADANIE_POKAZ_INFORMACJE, _, _, "b");

if(nowa_klasa_gracza[id])
UstawNowaKlase(id);

/*if(!klasa_gracza[id])
{
WybierzKlase(id);
return PLUGIN_CONTINUE;
}*/ //usun to co zakomentowałem

DajBronie(id);
ZastosujAtrybuty(id);

if(punkty_gracza[id] > 0)
PrzydzielPunkty(id);

return PLUGIN_CONTINUE;
}

  • +
  • -
  • 1

#18 BoB0_

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 38
Życzliwy

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

Napisano 21.08.2011 23:29

To wykluczyło tylko błąd po zrespieniu. Ale gdy otworzę menu przez komendę dalej nie mogę wybrać opcji i problem jest taki sam jak opisałem na górze.
  • +
  • -
  • 0




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

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