←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

System Klas

  • +
  • -
MA1L0 - zdjęcie MA1L0 19.02.2012

Witam. Czy jest jakiś poradnik jak stworzyć system klas i aby można daną klasę wybrać z menu (raz na rundę) ? Szukałem w google jedyne poradniki to jak dodać klasy do diablo moda i cod moda. A potrzebuję taki system do swojego moda.
Odpowiedz

  • +
  • -
Waleq - zdjęcie Waleq 19.02.2012

Aby można było wywołać menu tylko raz na rundę wystarczy stworzyć zmienną typu bool.
Następnie przy menu ustawić warunek:

if(uzyl[33]==true)
client_print(id, print_chat, "Wybrales juz w tej rundzie klase");
else
//kod menu klasy

Teraz wystarczy tylko, aby na początku każdej rundy zmieniać wartość zmiennej dla każdego gracza na false.
Odpowiedz

  • +
  • -
MA1L0 - zdjęcie MA1L0 20.02.2012

Dzięki leci +, ale chciałbym jeszcze aby z takiego menu można by wybrać klasę do której mogę przypisać jakąś moc. Coś jakby klasa była funkcją i aby można było ją zastosować w if-ie. Nie wiem jak to powiedzieć...
Odpowiedz

  • +
  • -
TomekPL - zdjęcie TomekPL 22.02.2012

no chyba nie

if(uzyl[33]==true)

tylko

if(uzyl[id]==true)


:)

jak chcesz dodac menu z klasami to robisz sobie:


public ZmianaKlasy(id)
{
new menu = menu_create("Wybierz Klase" , "Wybor_Klasy");
menu_additem(menu ,"NazwaKlasy1", "1" , 0);
menu_additem(menu ,"NazwaKlasy2", "2" , 0);
menu_additem(menu ,"NazwaKlasy3", "3" , 0);
menu_additem(menu ,"NazwaKlasy4", "4" , 0);
menu_setprop(menu , MPROP_EXIT , MEXIT_ALL);
menu_display(id , menu , 0);
return PLUGIN_CONTINUE;
}


potem nizej czesc ktora jest odpowiedzialna za pobranie wcisnietego numeru i dodanie mocy


public Wybor_Klasy(id, menu, item)
{

if (item == MENU_EXIT)
{
return PLUGIN_HANDLED
}

if(!is_user_alive(id))
{
klasa_aktywna[id] = false // to jest ze jak gracz jest niezywy to moze sobie caly czas zmieniac klasy :)
}

new data[5], iName[64]
new access, callback
menu_item_getinfo(menu, item, access, data,5, iName, 63, callback)
new key = str_to_num(data)
new i=str_to_num(data)

if(klasa_akt[id]) // tutaj jest ze jak gracz ma juz klase to zmieni sie ona dopiero w nastepnej rundzie
{
client_print(id, print_chat, "Klasa zostanie zmieniona w nastepnej rundzie.");
klasa_gracza[id] = i
return PLUGIN_HANDLED

}

switch(key)
{

case 1:{
klasa_gracza[id] = 1
klasa_akt[id] = true // tutaj aktywuje klase zeby nie moc zmienic w tej samej rundzie znow klasy :)
client_print(id, print_chat, "zostales kims tak."); // info o wybranej klasie
//tutaj dodajesz funkcie klasy....
menu_destroy(menu);
}
case 2:{
klasa_gracza[id] = 2
klasa_akt[id] = true // tutaj aktywuje klase zeby nie moc zmienic w tej samej rundzie znow klasy :)
client_print(id, print_chat, "zostales kims tak."); // info o wybranej klasie
//tutaj dodajesz funkcie klasy....

menu_destroy(menu)
return PLUGIN_CONTINUE;

}

case 3:{

/...
menu_destroy(menu)
return PLUGIN_CONTINUE;

}
case 4:{
//...
menu_destroy(menu)
return PLUGIN_CONTINUE;



no i jeszcze w evencie respawn musisz zrobic zeby za kazdym odrodzeniem dodawalo te moce, ale to juz pomysl sam :)
Użytkownik TomekPL edytował ten post 22.02.2012 21:58
Odpowiedz