kto pamięta czasy Ownserver.pl i to jak się zawinęli łapa w góre
Również na pukawce miałem wiele serwerów i nie było problemów, także to moge polecić. 1s1k nie sprawdzałem
To równanie zostało stworzone przy pomocy kodu LaTeX:
Edytor LaTeX online: CodeCogs.com/latex/eqneditor.php
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.
|
Napisane przez Rivit w 09.08.2019 05:32
Napisane przez Robiin w 08.08.2019 11:24
W związku z przestarzałym tematem i kodem, który ciągle widzę, że się pojawia:
new players[32], pnum, tempid; new szName[32], szTempid[10]; get_players(players, pnum); for(new i; i<pnum; i++) { tempid = players[i]; if(!is_user_connected(tempid)) continue; get_user_name(tempid, szName, charsmax(szName)); num_to_str(tempid, szTempid, charsmax(szTempid)); menu_additem(menu, szName, szTempid); }
Dodaję na szybko wam snippet, który wygląda ładniej i generalnie nie używa starych metod:
Przekazywanie indeksu gracza AMXX 1.8.3 i niżej:
public myMenu(index) { new menuIndex = menu_create("Menu:", "myMenu_handler"), userName[33], userIndex[3]; for(new i = 1; i <= 32; i++) { if(!is_user_connected(i)) { continue; } get_user_name(i, userName, charsmax(userName)); formatex(userIndex, charsmax(userIndex), "%i", i); menu_additem(menuIndex, userName, userIndex); } menu_display(index, menuIndex); return PLUGIN_HANDLED; } public myMenu_handler(index, menuIndex, item) { if(item == MENU_EXIT) { menu_destroy(menuIndex); return PLUGIN_HANDLED; } new menuData[2], blank, target; menu_item_getinfo(menuIndex, item, blank, menuData, charsmax(menuData), _, _, blank); menu_destroy(menuIndex); target = str_to_num(menuData); if(!is_user_connected(target)) { return PLUGIN_HANDLED; } return PLUGIN_HANDLED; }
Przekazywanie indeksu gracza AMXX 1.9 i wyżej:
public myMenu(index) { new menuIndex = menu_create("Menu:", "myMenu_handler"); for(new i = 1; i <= 32; i++) { if(!is_user_connected(i)) { continue; } menu_additem(menuIndex, fmt("%n", i), fmt("%i", i)); } menu_display(index, menuIndex); return PLUGIN_HANDLED; } public myMenu_handler(index, menuIndex, item) { if(item == MENU_EXIT) { menu_destroy(menuIndex); return PLUGIN_HANDLED; } new menuData[2], target; menu_item_getinfo(menuIndex, item, _, menuData, charsmax(menuData)); menu_destroy(menuIndex); target = str_to_num(menuData); if(!is_user_connected(target)) { return PLUGIN_HANDLED; } return PLUGIN_HANDLED; }
Opcja jeszcze krótsza:
public myMenu(index) { new menuIndex = menu_create("Menu:", "myMenu_handler"), i[1]; for(i[0] = 1; i[0] <= 32; i[0]++) { if(!is_user_connected(i[0])) { continue; } menu_additem(menuIndex, fmt("%n", i), i[0]); } menu_display(index, menuIndex); return PLUGIN_HANDLED; } public myMenu_handler(index, menuIndex, item) { if(item == MENU_EXIT) { menu_destroy(menuIndex); return PLUGIN_HANDLED; } new menuData[1], target; menu_item_getinfo(menuIndex, item, _, menuData, charsmax(menuData)); menu_destroy(menuIndex); target = menuData[0]; if(!is_user_connected(target)) { return PLUGIN_HANDLED; } return PLUGIN_HANDLED; }
Przekazywanie wielu wartości w menu:
public myMenu(index) { new menuIndex = menu_create("Menu:", "myMenu_handler"), menuData[4]; for(new i = 1; i <= 32; i++) { if(!is_user_connected(i)) { continue; } menuData[0] = i; menuData[1] = cs_get_user_money(i); menuData[2] = index; menu_additem(menuIndex, fmt("%n", i), menuData); } menu_display(index, menuIndex); return PLUGIN_HANDLED; } public myMenu_handler(index, menuIndex, item) { if(item == MENU_EXIT) { menu_destroy(menuIndex); return PLUGIN_HANDLED; } new menuData[6], target; menu_item_getinfo(menuIndex, item, _, menuData, charsmax(menuData)); menu_destroy(menuIndex); target = menuData[0]; value = menuData[1]; otherIndex = menuData[2]; if(!is_user_connected(target)) { return PLUGIN_HANDLED; } return PLUGIN_HANDLED; }
Przekazywanie dwóch stringów:
public myMenu(index) { new menuIndex = menu_create("Menu:", "myMenu_handler"), menuData[64]; for(new i = 1; i <= 32; i++) { if(!is_user_connected(i)) { continue; } get_user_name(i, userName, charsmax(userName)); formatex(menuData, charsmax(menuData), "%s#%s", userName, "abcd"); // "aSior abcd" menu_additem(menuIndex, fmt("%n", i), menuData); } menu_display(index, menuIndex); return PLUGIN_HANDLED; } public myMenu_handler(index, menuIndex, item) { if(item == MENU_EXIT) { menu_destroy(menuIndex); return PLUGIN_HANDLED; } new menuData[64], userName[33], additionalText[33]; menu_item_getinfo(menuIndex, item, _, menuData, charsmax(menuData)); menu_destroy(menuIndex); split(menuData, userName, charsmax(userName), additionalText, charsmax(additionalText), "#"); ColorChat(index, NORMAL, "Wybrales %s %s", userName, additionalText); // "Wybrales aSior abcd" return PLUGIN_HANDLED; }
Napisane przez Robiin w 02.09.2017 01:34
Napisane przez rzeznik9871 w 25.04.2017 13:42
Napisane przez White w 28.03.2017 19:33
Dostaję wiele zapytań, więc wstawiam tu moda.
Wymagane do poprawnego działania:
- orpheu: https://amxx.pl/topi...talacja-orpheu/
- round terminator Arkshine'a
- adv_vault
Napisane przez Wozny w 13.03.2017 17:58
Napisane przez _McHappy w 04.03.2017 17:28
Napisane przez _McHappy w 06.11.2016 16:31
stock LiczGraczy_flaga(flaga) { new maxP = get_maxplayers(); new g_iLicznik; for(new i=1; i<=maxP; i++) if(is_user_connected(i) && ( get_user_flags(i) & flaga )) g_iLicznik++; return g_iLicznik; }
Przykład wywołania:
/* Plugin generated by AMXX-Studio */ #include <amxmodx> #include <amxmisc> #define PLUGIN "Licznik Administratorow Online" #define VERSION "1.0" #define AUTHOR "_McHappy" public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_clcmd("say /admini", "licz"); } public licz(id) { new g_iAdmini = LiczGraczy_flaga(ADMIN_KICK); client_print(id, 3, "Admini obecni na serwerze: %d", g_iAdmini); } stock LiczGraczy_flaga(flaga) { new maxP = get_maxplayers(); new g_iLicznik; for(new i=1; i<=maxP; i++) if(is_user_connected(i) && ( get_user_flags(i) & flaga )) g_iLicznik++; return g_iLicznik; }
Napisane przez Boziak w 14.06.2016 08:49
Napisane przez Kowalsky w 15.11.2015 14:05
Oj MaxioR... Pamiętaj, że AMXBans nie składa się tylko z amxbans_main i amxbans_core. Zobacz w pliku /scripting/include/amxbans/cmdBan.inl a funkcja nazywa się _select_amxbans_motd (przynajmniej u mnie )
Po zmianie tego w cmdBan.inl musisz przekompilować amxbans_main.sma z uwzględnionym plkikiem cmdBan.inl.
Napisane przez Marionetkaa w 02.11.2015 21:29
Napisane przez plx211 w 19.08.2015 20:10
Napisane przez Asiap w 18.08.2015 00:45
Napisane przez NoLiFeR w 18.08.2015 00:55
Napisane przez Linux' w 07.08.2015 07:24
Wczoraj sie spieszylem i zapomnialem o trybie dla obserwatora. Teraz bedzie prawidlowo