Proszę mi nie podawać linków do banku z $ ;/
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


Dodatki SourceMod














