←  Problemy

AMXX.pl: Support AMX Mod X i SourceMod

»

Zapis nvault i kopiowanie

Locked

  • +
  • -
A może sma?'s Photo A może sma? 05.08.2011

Cześć.
Zapisuję dane w ten sposób:
public Wczytaj(id)
{
new name[35];
get_user_name(id,name,34);
new vaultkey[64],vaultdata[256];
format(vaultkey,63,"%s-monety",name);
format(vaultdata,255,"%d#",monety[id]);
nvault_get(vault,vaultkey,vaultdata,255);

replace_all(vaultdata, 255, "#", " ");

new monetytemp[33];
parse(vaultdata, monetytemp, 32);

monety[id] = str_to_num(monetytemp);

return PLUGIN_CONTINUE
}

public Zapisz(id)
{
new name[35];
get_user_name(id,name,34);
new vaultkey[64], vaultdata[256];
format(vaultkey,63,"%s-monety",name);
format(vaultdata,255,"%d#",monety[id]);
nvault_set(vault,vaultkey,vaultdata);

return PLUGIN_CONTINUE
}


Jednak zauważyłem, że można skopiować monety z jednego nicku na drugi. Jak to zablokować?
Quote

  • +
  • -
Raku129's Photo Raku129 05.08.2011

SYSTEM REZERWACJI NICKU? SRN
Quote

  • +
  • -
Gh0st's Photo Gh0st 05.08.2011

proszę oto link do pluginu :
G_block_name_change - AMXX.pl: Support AMX Mod X

Plugin ten zabrania zmieniania nicku podczas gdy jest się połączonym z serwerem
Edited by Gh0st, 05.08.2011 16:49.
Quote

  • +
  • -
A może sma?'s Photo A może sma? 05.08.2011

@Raku: Tzn??

@Gh0st: Nie chcę takiego rozwiązania...
Quote

  • +
  • -
Gh0st's Photo Gh0st 05.08.2011

jemu chodziło o SYSTEM REZERWACJI NICKU ... to rozwiązanie moje jest najłatwiejsze innego nie znam
Quote

  • +
  • -
dram's Photo dram 05.08.2011

Mhm a może podczas wczytywania sprawdzaj jaki gracz ma nick i podczas zapisywania sprawdzaj czy te dwa nicki są takie same. Jeżeli tak - zapisz jeżeli nie - anuluj
Quote

  • +
  • -
Gh0st's Photo Gh0st 05.08.2011

Pobieraj nick gracza zapisuj do jakiejś zmiennej globalnej i sprawdzaj :P

Dodano 05 sierpień 2011 - 17:06:
Już ci napisze sma

Dodano 05 sierpień 2011 - 17:10:

public Wczytaj(id)
{
new name[35]
get_user_name(id,sprawdz,34);
get_user_name(id,name,34);
new vaultkey[64],vaultdata[256];
format(vaultkey,63,"%s-monety",name);
format(vaultdata,255,"%d#",monety[id]);
nvault_get(vault,vaultkey,vaultdata,255);

replace_all(vaultdata, 255, "#", " ");

new monetytemp[33];
parse(vaultdata, monetytemp, 32);

monety[id] = str_to_num(monetytemp);

return PLUGIN_CONTINUE
}

public Zapisz(id)
{
if(get_user_name(id) != sprawdz[id])
{
return PLUGIN_CONTINUE
}
new name[35];
get_user_name(id,name,34);
new vaultkey[64], vaultdata[256];
format(vaultkey,63,"%s-monety",name);
format(vaultdata,255,"%d#",monety[id]);
nvault_set(vault,vaultkey,vaultdata);

return PLUGIN_CONTINUE
}


w zmiennych globalnych dodaj

new sprawdz[35]



P.S :) zmień system zapisu , sam kiedyś go używałem ale R3X uświadomił mi że jest zły :)
Edited by Gh0st, 05.08.2011 17:27.
Quote

  • +
  • -
DarkGL's Photo DarkGL 05.08.2011

get_user_name(id) != sprawdz[id]
:lol:

rozwiązaniem nie jest pobieranie nicku graczowi przy zapisie / wczytywaniu tylko przy samym wejściu pobranie go do globalnej tablicy i zapisywanie / wczytywanie na ten jeden nie będzie można wtedy skopiować "monet" na inny nick
jest to tak zrobione np w cod mod (zmienna nazwa_gracza)
Quote

  • +
  • -
A może sma?'s Photo A może sma? 05.08.2011

Darku kochany wkleiłbyś mi gotowy kod? :*

:mur:
public client_authorized(id)
{
UsunMonety(id)
get_user_name(id, nazwa_gracza[id], 63);
}


Wystarczy coś takiego? :D
Ale jak ma teraz wyglądać Zapisz/Wczytaj?
Edited by A może sma?, 05.08.2011 17:30.
Quote

  • +
  • -
Gh0st's Photo Gh0st 05.08.2011

DarkGL o co ci chodzi ? :)

Brakło mi *if*
to 1.błąd z mojej strony ^^

Dodano 05 sierpień 2011 - 17:32:



public Zapisz(id)
{
new spawdz[35]
get_user_name(id,sprawdz,34)
if(sprawdz[id] != nazwa_gracza[id])
{
return PLUGIN_CONTINUE
}
new name[35];
get_user_name(id,name,34);
new vaultkey[64], vaultdata[256];
format(vaultkey,63,"%s-monety",name);
format(vaultdata,255,"%d#",monety[id]);
nvault_set(vault,vaultkey,vaultdata);

return PLUGIN_CONTINUE
}


Tylko zapisz


Proszę mi o wyjaśnienie czemu nie działa ^D^
Bo nie rozumiem , a staram się pomoc ;d
Edited by Gh0st, 05.08.2011 17:52.
Quote

  • +
  • -
A może sma?'s Photo A może sma? 05.08.2011

@Gh0st nie działa... Dalej można kopiować monety

Daaarkkk... :*
Edited by A może sma?, 05.08.2011 17:44.
Quote

  • +
  • -
DarkGL's Photo DarkGL 05.08.2011

public client_authorized(id)
{
        UsunMonety(id)
        get_user_name(id, nazwa_gracza[id], 63);
}
tak coś takiego wystarczy i podczas zapisu / wczytywania korzystasz z nazwa_gracza[id]
oczywiście w zmiennych globalnych musisz dodać
new nazwa_gracza[33][64]
Quote

  • +
  • -
A może sma?'s Photo A może sma? 05.08.2011

Dzięęęękujęęę :*
Działa :]

Tylko teraz... Jak dodać do tego:

public Wczytaj(id)
{
new vaultkey[64],vaultdata[256];
format(vaultkey,63,"%s-monety",nazwa_gracza[id]);
format(vaultdata,255,"%d#",monety[id]);
nvault_get(vault,vaultkey,vaultdata,255);

replace_all(vaultdata, 255, "#", " ");

new monetytemp[33];
parse(vaultdata, monetytemp, 32);

monety[id] = str_to_num(monetytemp);

return PLUGIN_CONTINUE
}

public Zapisz(id)
{
new vaultkey[64], vaultdata[256];
format(vaultkey,63,"%s-monety",nazwa_gracza[id]);
format(vaultdata,255,"%d#",monety[id]);
nvault_set(vault,vaultkey,vaultdata);

return PLUGIN_CONTINUE
}


To?

new typ_zapisu = get_pcvar_num(cvar_typ_zapisu);

switch(typ_zapisu)
{
case 1: copy(identyfikator, charsmax(identyfikator), nazwa_gracza[id]);
case 2: get_user_authid(id, identyfikator, charsmax(identyfikator));
case 3: get_user_ip(id, identyfikator, charsmax(identyfikator));
}
Quote

  • +
  • -
Gh0st's Photo Gh0st 05.08.2011

z tymi cvarami musisz zrobić to w :

public client_authorized(id)


public client_authorized(id)
{
UsunMonety(id)
new typ_zapisu = get_pcvar_num(cvar_typ_zapisu);

switch(typ_zapisu)
{
case 1: copy(identyfikator, charsmax(identyfikator), nazwa_gracza[id]);
case 2: get_user_authid(id, identyfikator, charsmax(identyfikator));
case 3: get_user_ip(id, identyfikator, charsmax(identyfikator));
}
}


chyba dobrze , sprawdz
Edited by Gh0st, 05.08.2011 21:34.
Quote

  • +
  • -
A może sma?'s Photo A może sma? 06.08.2011

Poszedłem tym tropem - zadziałało :D
Quote

Adminek AMXX.PL's Photo Adminek AMXX.PL 06.08.2011

Wiadomość wygenerowana automatycznie


Ten temat został zamknięty przez moderatora.

Powód: zadziałało :D

Jeśli się z tym nie zgadzasz, Dołączona grafika raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.


Z pozdrowieniami,
Zespół AMXX.PL
Quote
Locked