dwa kody: licznik punktów z rangami. Limit...
ViruSPL
22.07.2014
Cześć,
Znów mam problem (chyba 10 raz w tym tygodniu x_X).
Let's rock.
Chciał by zrobić system - 5 pierwszych najlepszych osób, dostaje X punktów dajmy 1 miejsce 5, 2 miejsce 4, 3 miejsce 3, 4 - 2, 5 - 1.
I po osiągnięci X puntów zmienia się ranga + spr (każda ranga własny spr). Jak graliście w gry moba to coś a'la system rankingowy tam.
+ oczywiście na chat - nazwa rangi [GOLD V]ViruS: Blabla
Domyślam się że trzeba zacząć od zdefiniowania tego..
#define ILOSCRANG 50 new const RANGI[ILOSCRANG][] = { "nazwa" "nazwa2" x50 }
Ale co daje?
Kolejny kod który bym chcial prosić o sugestie co robić itd to ograniczenia w menu tj. mamy liste
1. cos [1/5]
2. cos [1/2]
I to 1/5 oraz 1/2 to ilość osób które jeszcze może wybrać tę opcję w menu. Tu zupełnie nie mam pomysłu
speedkill
23.07.2014
Limit w menu, jednak musisz dodać sobie, że jeden gracz może wybrać tylko jedną opcję i tylko raz, ja podrzucam Ci przykład tego limitu, aczkolwiek nie testowany
/* Plugin generated by AMXX-Studio */ #include <amxmodx> #include <amxmisc> #define PLUGIN "New Plug-In" #define VERSION "1.0" #define AUTHOR "speedkill" new g_FirstValue[2], g_SecondValue[2]; public plugin_init(){ register_plugin(PLUGIN, VERSION, AUTHOR); /* Command */ register_clcmd("say /test", "ShowPlayerMenu"); /* Cvars */ register_cvar("first_limit", "5"); register_cvar("second_limit", "2"); } public plugin_cfg(){ g_FirstValue[0] = get_cvar_num("first_limit"), g_SecondValue[0] = get_cvar_num("second_limit"); } public ShowPlayerMenu(id){ new g_MenuText[64], g_Menu; g_Menu = menu_create("Menu", "MenuChoose"); formatex(g_MenuText, charsmax(g_MenuText), "Pierwsza opcja \d[ \r%d \w/ \r%d \d]", g_FirstValue[1], g_FirstValue[0]); menu_additem(g_Menu, g_MenuText); formatex(g_MenuText, charsmax(g_MenuText), "Druga opcja \d[ \r%d \w/ \r%d \d]", g_SecondValue[1], g_SecondValue[0]); menu_additem(g_Menu, g_MenuText); menu_setprop(g_Menu, MPROP_EXITNAME, "Wyjscie"); menu_display(id, g_Menu); } public MenuChoose(id, g_Menu, g_Item){ if(g_Item == MENU_EXIT){ menu_destroy(g_Menu); return PLUGIN_HANDLED; } switch(g_Item){ case 0:{ if(g_FirstValue[1] < g_FirstValue[0]){ g_FirstValue[1]++; client_print(id, 3, "Dolaczyles do pierwszej opcji."); } else{ client_print(id, 3, "Maksymalna ilosc ludzi dolaczyla."); } ShowPlayerMenu(id); } case 1:{ if(g_SecondValue[1] < g_SecondValue[0]){ g_SecondValue[1]++; client_print(id, 3, "Dolaczyles do drugiej opcji."); } else{ client_print(id, 3, "Maksymalna ilosc ludzi dolaczyla."); } ShowPlayerMenu(id); } } menu_destroy(g_Menu); return PLUGIN_HANDLED; }