Dodawanie monet dla gracza offline
mordoryjacz
23.12.2022
Szukam pluginu ktory dodaje monety dla gracza ktorego nie ma na serwerze
zapis monet jest na nvault
Użytkownik mordoryjacz edytował ten post 23.12.2022 12:48
Boski Z Polski
23.12.2022
#include <amxmodx> #include <amxmisc> #include <colorchat> #include <nvault> #include <nvault_util> #define PLUGIN "Monety, gdy nie ma na serwerze" #define VERSION "1.0.0" #define AUTHOR "Boski Z Polski" native pobierz_monety(id); native ustaw_monety(id, wartosc); new nazwa_pliku[] = "aaa" new vault; public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR); register_concmd("dodaj_monety","dodaj_monety", ADMIN_IMMUNITY, "<nazwa gracza> <ilosc monet>"); vault = nvault_open(nazwa_pliku); } public plugin_end() { nvault_close(vault); } public dodaj_monety(id, level, cid) { if(!cmd_access(id, level, cid, 3)) { return PLUGIN_HANDLED; } new nazwa_wyszukiwanego[64] read_argv(1, nazwa_wyszukiwanego,charsmax(nazwa_wyszukiwanego)) new ilosc_dodanych_monet[64] read_argv(2, ilosc_dodanych_monet,charsmax(ilosc_dodanych_monet)) if(str_to_num(ilosc_dodanych_monet) <= 0 || !is_str_num(ilosc_dodanych_monet)) { return PLUGIN_HANDLED; } new znalezione; for(new i = 0;i < 32; i++) { if(!is_user_connected(i) || is_user_hltv(i)) { continue; } new name[33]; get_user_name(i, name, charsmax(name)); //jesli chcesz zeby bylo na sid to zmieniasz na get_user_authid w zaleznosci od formy zapisu if(equal(nazwa_wyszukiwanego, name)) { znalezione = true; ColorChat(id, TEAM_COLOR, "^x04[Monety]^x03 Dodales^x04 %s^x03 az^x04 %s monet!", nazwa_wyszukiwanego, ilosc_dodanych_monet); ustaw_monety(i, pobierz_monety(i) + str_to_num(ilosc_dodanych_monet)) return PLUGIN_CONTINUE; } } new u_vault = nvault_util_open(nazwa_pliku); //plik nvault; new iPos; new iTimeStamp; new iCount = nvault_util_count(u_vault); new szKey[64]; new szVal[64]; for(new iCurrent = 1, n = 1; iCurrent <= iCount ;iCurrent++ ) { iPos = nvault_util_read( u_vault , iPos , szKey , charsmax( szKey ) , szVal , charsmax( szVal ) , iTimeStamp ); n += iCurrent; // teraz wszystko zalezy w jaki sposob masz zapisane dane w oryginalnym pluginie od monet // ja mam zapisane w ^"%s^" na nick new g_nick[33]; new g_monety[33]; parse(szKey, g_nick, charsmax(g_nick)); replace_all(g_nick, charsmax(g_nick), "^"", " "); parse(szVal, g_monety, charsmax(g_monety)); replace_all(g_monety, charsmax(g_monety), "^"", " "); if(equal(nazwa_wyszukiwanego, g_nick)) { new nick[64]; formatex(nick, charsmax(nick), "^"%s^"", nazwa_wyszukiwanego); new monety[64]; formatex(monety, charsmax(monety), "%i", str_to_num(g_monety) + str_to_num(ilosc_dodanych_monet)); nvault_set(vault, nick, monety); znalezione = true; break; } } if(znalezione) { ColorChat(id, TEAM_COLOR, "^x04[Monety]^x03 Dodales^x04 %s^x03 az^x04 %s monet!", nazwa_wyszukiwanego, ilosc_dodanych_monet); } else { ColorChat(id, TEAM_COLOR, "^x04[Monety]^x03 Nie znaleziono gracza^x04 %s^x03 Poczekaj na zmiane mapy!", nazwa_wyszukiwanego); } return PLUGIN_HANDLED; }
Odczyt danych musi być taki sam jak odczyt z silnika od monet. Zapis jest na nick oraz dodatkowo, tu masz linka do inc nvault_util: Dokumentacja AMXX.pl: nvault_util.inc
Użytkownik Boski Z Polski edytował ten post 23.12.2022 18:23