Witamy w Nieoficjalnym polskim support'cie AMX Mod X
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.
|
Plug-in zapisujacy ilosc pieniedzy $
#1
Napisano 30.06.2015 19:05
Proszę mi nie podawać linków do banku z $ ;/
#2
Napisano 02.07.2015 21:48
Prosty zapis nvault powinien załatwić sprawe
#3
Napisano 03.07.2015 10:16
#4
Napisano 03.07.2015 15:07
#5
Napisano 03.07.2015 17:42
#6
Napisano 03.07.2015 19:56
Nie testowane ale powinno dzialac.
#include <amxmodx> #include <amxmisc> #include <cstrike> #include <fakemeta> #include <hamsandwich> #include <nvault> new vault; new nazwa_gracza[33][64]; new dolary_gracza[33]; public plugin_init() { register_plugin("PLUGIN", "VERSION", "Linux`"); RegisterHam(Ham_Spawn, "player", "Odrodzenie", 1); vault = nvault_open("DolarMod"); } public client_authorized(id) { get_user_name(id, nazwa_gracza[id], 63); dolary_gracza[id] = 0; if(!task_exists(id)) set_task(5.0, "DajDolary", id); } public client_disconnect(id) { ZapiszDane(id); } public DajDolary(id) { WczytajDane(id); if(dolary_gracza[id]) cs_set_user_money(id, dolary_gracza[id]); } public ZapiszDane(id) { new vaultkey[128],vaultdata[256], identyfikator[64]; format(vaultdata, charsmax(vaultdata),"#%i", dolary_gracza[id]); format(vaultkey, charsmax(vaultkey),"%s-%i-cod", identyfikator, copy(identyfikator, charsmax(identyfikator), nazwa_gracza[id])); nvault_set(vault, vaultkey, vaultdata); } public WczytajDane(id) { new vaultkey[128],vaultdata[256], identyfikator[64]; format(vaultkey, charsmax(vaultkey),"%s-%i-cod", identyfikator, copy(identyfikator, charsmax(identyfikator), nazwa_gracza[id])); if(!nvault_get(vault, vaultkey, vaultdata, 255)) // Jezeli nie ma danych gracza sprawdza stary zapis. { format(vaultkey, charsmax(vaultkey), "%s-cod", nazwa_gracza[id]); nvault_get(vault,vaultkey,vaultdata,255); } replace_all(vaultdata, 255, "#", " "); new danegracza[1][32]; parse(vaultdata, danegracza[0], 31); dolary_gracza[id] = str_to_num(danegracza[0]); }
Na szybko wyciagniety zapis z nowego coda, ustawiony dla jednej zmiennej i z usunietymi klasami. I teraz robisz tak, przy odejmowaniu pieniedzy w jakiejs funkcji ustawiasz zmienna "dolary_gracza" na taka sama jak ilosc dolarow po zmianie, czyli:
dolary_gracza[index] = cs_get_user_money(index);
Edit: Albo jeszcze inaczej. http://amxx.pl/topic...k-aktualizacja/. Jak nie odpowiada, mozna przerobic ale to juz w odpowiednim dziale.
#7
Napisano 08.07.2015 09:50
Nie działa, czekam dalej.
#8
Napisano 08.07.2015 11:21
Wczesniej pisalem na szybko wiec nawet nie analizowalem bledow w kodzie . Sprawdz teraz
#include <amxmodx> #include <amxmisc> #include <cstrike> #include <fakemeta> #include <nvault> new vault; new nazwa_gracza[33][64]; new dolary_gracza[33]; public plugin_init() { register_plugin("PLUGIN", "VERSION", "Linux`"); vault = nvault_open("DolarMod"); } public client_authorized(id) { get_user_name(id, nazwa_gracza[id], 63); dolary_gracza[id] = 0; WczytajDane(id); } public client_disconnect(id) { ZapiszDane(id); } public ZapiszDane(id) { new vaultkey[64],vaultdata[256]; format(vaultkey,63,"%s-cod", nazwa_gracza[id]); format(vaultdata,255,"#%i", dolary_gracza[id]); nvault_set(vault,vaultkey,vaultdata); } public WczytajDane(id) { new vaultkey[64],vaultdata[256]; format(vaultkey,63,"%s-cod", nazwa_gracza[id]); format(vaultdata,255,"#%i", dolary_gracza[id]); nvault_get(vault,vaultkey,vaultdata,255); replace_all(vaultdata, 255, "#", " "); new dolarygracza[32]; parse(vaultdata, dolarygracza, 31); dolary_gracza[id] = str_to_num(dolarygracza); cs_set_user_money(id, dolary_gracza[id]); }
Użytkownicy przeglądający ten temat: 0
0 użytkowników, 0 gości, 0 anonimowych