Skocz do zawartości

  • Zaloguj korzystając z Facebooka Zaloguj korzystając z Twittera Zaloguj przez Steam Zaloguj poprzez Google      Logowanie »   
  • Rejestracja

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
CoD Nowy

Wrócenie do wyboru frakcji jeżeli nie wybrano klasy

cod nowy

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

#1 Split

    Programista

  • Power User

Reputacja: 105
Zaawansowany

  • Postów:449
  • GG:
  • Imię:Szymon
  • Lokalizacja:Głuchołazy
Offline

Napisano 28.06.2014 12:06

Witam, mam pewien problem, chciałbym osiągnąć takie coś że jak chcę wybrać klasę premium z menu "Wybierz klasę" i nie mam uprawnień, to wraca mi do "Wybierz Frakcje" bo domyślnie jeżeli nie mam dostępu do premium to zamyka się menu i muszę od nowa wpisać /klasa a chce że jak nie mam dostępu to wraca ponownie do wyboru frakcji.

Z góry dziękuje jak by ktoś powiedział co zrobić.

public WybierzKlase(id)
{
new menu = menu_create("Wybierz Narodowosc:", "WybierzKlase_Frakcje");
for(new i=1; i <= ilosc_klas; i++)
{
if(!equal(frakcja_klas[i],"") && !is_in_previous(frakcja_klas[i],i)){
menu_additem(menu,frakcja_klas[i],frakcja_klas[i])
}
}

menu_setprop(menu, MPROP_EXITNAME, "Wyjdz");
menu_setprop(menu, MPROP_BACKNAME, "Poprzednia strona");
menu_setprop(menu, MPROP_NEXTNAME, "Nastepna strona");
menu_display(id, menu);
}
 
public WybierzKlase_Frakcje(id, menu, item)
{
if(item == MENU_EXIT){
menu_destroy(menu);
return PLUGIN_CONTINUE;
}
 
new data[65], iName[64]
new acces, callback
menu_item_getinfo(menu, item, acces, data,64, iName, 63, callback)
 
new menu2 = menu_create("Wybierz klase:", "WybierzKlase_Handle");
 
new klasa[50],szTmp[5];
for(new i=1; i <= ilosc_klas; i++)
{
if(equali(data,frakcja_klas[i])){
WczytajDane(id, i);
format(klasa, charsmax(klasa), "%s \yPoziom: %i", nazwy_klas[i], poziom_gracza[id]);
num_to_str(i,szTmp,charsmax(szTmp));
menu_additem(menu2, klasa, szTmp);
}
}
 
WczytajDane(id, klasa_gracza[id]);
 
menu_setprop(menu2, MPROP_EXITNAME, "Wyjdz");
menu_setprop(menu2, MPROP_BACKNAME, "Poprzednia strona");
menu_setprop(menu2, MPROP_NEXTNAME, "Nastepna strona");
menu_display(id, menu2);
 
client_cmd(id, "spk QTM_CodMod/select");
 
menu_destroy(menu);
return PLUGIN_CONTINUE;
}
 
public WybierzKlase_Handle(id, menu, item)
{
client_cmd(id, "spk QTM_CodMod/select");
 
if(item == MENU_EXIT)
{
menu_destroy(menu);
return PLUGIN_CONTINUE;
} 
 
new data[65], iName[64]
new acces, callback
menu_item_getinfo(menu, item, acces, data,64, iName, 63, callback)
 
item = str_to_num(data);
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;
}

Użytkownik e-Skill edytował ten post 28.06.2014 12:14

  • +
  • -
  • 0

LoL, 500 postów ;D


#2 TSUBA

    Wszechwidzący

  • Użytkownik

Reputacja: 36
Życzliwy

  • Postów:229
  • Lokalizacja:Polska
Offline

Napisano 29.06.2014 06:22

Również przyłączam się do prośby :)


  • +
  • -
  • 0

#3 Mr.Skull

    Profesjonalista

  • Użytkownik

Reputacja: 32
Życzliwy

  • Postów:175
  • Imię:Tajemnica
  • Lokalizacja:Woj. Wielkopolskie
Offline

Napisano 29.06.2014 09:21

Jak możesz to wrzuć kod prosto z Silnika na wklejkę tutaj: http://amxx.pl/pastebin/  gdyż jak widać cały kod jest rozlany i jak dla mnie to jest prawie nie czytelny jak jest tak zlany, czyli brakuje tabulatorów w tych miejscach co powinien być. Wrzuć tak jak pisze a postaram ci się pomóc jak podołam wyzwaniu. :)


  • +
  • -
  • 0

#4 Split

    Programista

  • Autor tematu
  • Power User

Reputacja: 105
Zaawansowany

  • Postów:449
  • GG:
  • Imię:Szymon
  • Lokalizacja:Głuchołazy
Offline

Napisano 29.06.2014 10:39

Proszę:

http://amxx.pl/pastebin/ho3r6o49pase/


Użytkownik e-Skill edytował ten post 29.06.2014 10:45

  • +
  • -
  • 0

LoL, 500 postów ;D


#5 Mr.Skull

    Profesjonalista

  • Użytkownik

Reputacja: 32
Życzliwy

  • Postów:175
  • Imię:Tajemnica
  • Lokalizacja:Woj. Wielkopolskie
Offline

Napisano 29.06.2014 11:21

Nie działa link, dobra spróbuję zrobić to bez tego. (lecz najlepiej by sie przydał cały silnik COD'a żeby sprawdzić czy sie kompiluje.

 

@Edit

 
Na przyszłość staraj sie podawać kod w takim formacie: http://amxx.pl/pastebin/4l7g06f487jm/
Wtedy kod jest bardziej czytelny dla oczu i osoby chętne pomóc prędzej sie tego podejmują.
 
 
Nic tam jeszcze nie robiłem dopiero sie za to biorę lecz nie obiecuje czy mi sie uda gdyż nie wiem czy sie da zwrócić funkcje wracania tylko przy wyborze klasy premium :/
 
 
@Edit2 
 
Sprawdziłem i żeby zrobić to tylko dla klasy premium czyli jak nie masz dostępu do klasy to cie wradza do frakcji to wymagało by to bardzo duże przerobienie publików w silniku, + wątpię żeby mi się udało to zrobić, lecz da sie to zrobić w danej klasie że jak nie masz dostępu to cie cofa do frakcji. :) jak chcesz to podeślij mi wszystkie klasy premium na PW (najlepiej w załączniki same pliki .sma) a zrobię ci to w 100% optymalnie w klasach. :)
 
Przykład jak chce to zrobić:W klasie sprawcza ci czy gracz ma dane uprawnienie do klasy i jeśli nie ma to pojawia sie else które odsyła twoje zapytanie do odpowiedzi że nie mam uprawnień do używanie tej klasy i pod tą linią dał bym wykonanie jeszcze jednej czynności czyli: client_cmd(id, "echo ^"WymusKlase^";^"say /klasa^""); I wtedy osiągniesz to co właśnie chcesz czyli wrócenie do frakcji. :)

Użytkownik Mr.Skull edytował ten post 29.06.2014 11:45

  • +
  • -
  • 1

#6 Split

    Programista

  • Autor tematu
  • Power User

Reputacja: 105
Zaawansowany

  • Postów:449
  • GG:
  • Imię:Szymon
  • Lokalizacja:Głuchołazy
Offline

Napisano 29.06.2014 11:28

Sry, poprawny link:

http://amxx.pl/pastebin/blamuppxrtup/


  • +
  • -
  • 0

LoL, 500 postów ;D


#7 Split

    Programista

  • Autor tematu
  • Power User

Reputacja: 105
Zaawansowany

  • Postów:449
  • GG:
  • Imię:Szymon
  • Lokalizacja:Głuchołazy
Offline

Napisano 29.06.2014 12:08

 

Nie działa link, dobra spróbuję zrobić to bez tego. (lecz najlepiej by sie przydał cały silnik COD'a żeby sprawdzić czy sie kompiluje.

 

@Edit

 
Na przyszłość staraj sie podawać kod w takim formacie: http://amxx.pl/pastebin/4l7g06f487jm/
Wtedy kod jest bardziej czytelny dla oczu i osoby chętne pomóc prędzej sie tego podejmują.
 
 
Nic tam jeszcze nie robiłem dopiero sie za to biorę lecz nie obiecuje czy mi sie uda gdyż nie wiem czy sie da zwrócić funkcje wracania tylko przy wyborze klasy premium :/
 
 
@Edit2 
 
Sprawdziłem i żeby zrobić to tylko dla klasy premium czyli jak nie masz dostępu do klasy to cie wradza do frakcji to wymagało by to bardzo duże przerobienie publików w silniku, + wątpię żeby mi się udało to zrobić, lecz da sie to zrobić w danej klasie że jak nie masz dostępu to cie cofa do frakcji. :) jak chcesz to podeślij mi wszystkie klasy premium na PW (najlepiej w załączniki same pliki .sma) a zrobię ci to w 100% optymalnie w klasach. :)
 
Przykład jak chce to zrobić:W klasie sprawcza ci czy gracz ma dane uprawnienie do klasy i jeśli nie ma to pojawia sie else które odsyła twoje zapytanie do odpowiedzi że nie mam uprawnień do używanie tej klasy i pod tą linią dał bym wykonanie jeszcze jednej czynności czyli: client_cmd(id, "echo ^"WymusKlase^";^"say /klasa^""); I wtedy osiągniesz to co właśnie chcesz czyli wrócenie do frakcji. :)

 

 

Nie chodzi mi o to, chodzi mi o ogólne blokowanie, jak też np chcę wybrać klasę od lvl itp, powinno być może jakieś anulowanie w funkcji? WybierzKlase_Handle

czy to nie jest callback? wracanie gdy nie można wybrać jakieś klasy?

Chodzi mi o to że jak nie można wybrać jakieś klasy albo ona jest premium albo od lvl itp to zwracało.

 

 

Edit.

Tak jest w COD STARY


Użytkownik e-Skill edytował ten post 29.06.2014 12:16

  • +
  • -
  • 0

LoL, 500 postów ;D


#8 ka.linux

    Zaawansowany

  • Użytkownik

Reputacja: 46
Pomocny

  • Postów:78
  • GG:
  • Imię:Marek
  • Lokalizacja:Konin
Offline

Napisano 04.07.2014 10:18

Wpisywane w klase, prosty sposób:

/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <codmod>

new bool:ma_klase[33];

new const nazwa[] = "Test";
new const opis[] = "Powrot do wyboru klasy, frakcji...";
new const bronie = 1<<CSW_USP;
new const zdrowie = 0;
new const kondycja = 0;
new const inteligencja = 0;
new const wytrzymalosc = 0;

public plugin_init() {
    register_plugin(nazwa, "1.0", "KB.Di0NeL");
    
    cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
}
public cod_class_enabled(id)
{
    if(!(get_user_flags(id) & ADMIN_LEVEL_H))
    {
        client_print(id, print_chat, "Nie mozna wybrac klasy ! Powracam do wyboru...")
        client_cmd(id, "say /klasa")
        return COD_STOP;
    }
    ma_klase[id] = true;
    return COD_CONTINUE;
}

public cod_class_disabled(id)
    ma_klase[id] = false;

 

Lub w silniku możesz spróbować np :

    if(containi(nazwy_klas[klasa_gracza[id]], "Test") != -1)

Wystarczy dodać callback jeśli gracz nie posiada uprawnień klasy :)


  • +
  • -
  • 0

POMAGAM PŁATNIE NA PROŚBĘ!


#9 Mr.Skull

    Profesjonalista

  • Użytkownik

Reputacja: 32
Życzliwy

  • Postów:175
  • Imię:Tajemnica
  • Lokalizacja:Woj. Wielkopolskie
Offline

Napisano 04.07.2014 12:37

Co do twojego 1 sposobu to właśnie proponowałem to samo gdyż serw ma wtedy moim zdaniem zrobione optymalnie i bardzo prosto jest to zrobić (co prawda trzeba edytować wszystkie klasy Premium oraz te od któregoś LVL lecz jest to chyba optymalne. :)

 

Co do twojego 2 sposobu to nie pomyślałem o tym, lecz czy 100 % gwarancji że będzie działać optymalnie lub czy wogólę będzie działać?


  • +
  • -
  • 0





Również z jednym lub większą ilością słów kluczowych: cod nowy

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

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