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
Edited by mordoryjacz, 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
Edited by Boski Z Polski, 23.12.2022 18:23.