Skocz do zawartości

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.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie

Zapis nvault i kopiowanie


  • Zamknięty Temat jest zamknięty
15 odpowiedzi w tym temacie

#1 A może sma?

    Godlike

  • Power User

Reputacja: 547
Wszechwiedzący

  • Postów:1 464
  • Steam:steam
  • Imię:Tomasz
  • Lokalizacja:Polska
Offline

Napisano 05.08.2011 16:13

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ć?
  • +
  • -
  • 0

#2 Raku129

    Wszechwidzący

  • Użytkownik

Reputacja: 71
Pomocny

  • Postów:280
  • GG:
  • Lokalizacja:Bielawa
Offline

Napisano 05.08.2011 16:43

SYSTEM REZERWACJI NICKU? SRN
  • +
  • -
  • 0

jigen3.jpg


#3 Gh0st

    :)

  • Power User

Reputacja: 852
Czempion

  • Postów:920
  • GG:
  • Imię:Tomek
  • Lokalizacja:Rabka-Zdrój
Offline

Napisano 05.08.2011 16:49

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

Użytkownik Gh0st edytował ten post 05.08.2011 16:49

  • +
  • -
  • 0

#4 A może sma?

    Godlike

  • Autor tematu
  • Power User

Reputacja: 547
Wszechwiedzący

  • Postów:1 464
  • Steam:steam
  • Imię:Tomasz
  • Lokalizacja:Polska
Offline

Napisano 05.08.2011 16:56

@Raku: Tzn??

@Gh0st: Nie chcę takiego rozwiązania...
  • +
  • -
  • 0

#5 Gh0st

    :)

  • Power User

Reputacja: 852
Czempion

  • Postów:920
  • GG:
  • Imię:Tomek
  • Lokalizacja:Rabka-Zdrój
Offline

Napisano 05.08.2011 17:03

jemu chodziło o SYSTEM REZERWACJI NICKU ... to rozwiązanie moje jest najłatwiejsze innego nie znam
  • +
  • -
  • 0

#6 dram

    Wszechwidzący

  • Użytkownik

Reputacja: 16
Początkujący

  • Postów:277
  • Lokalizacja:xxxx
Offline

Napisano 05.08.2011 17:04

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
  • +
  • -
  • 1
Co oferuje?

Pisanie pluginów amxx/modow itd
Skryptow php

Kontakt na PW LUB GG

#7 Gh0st

    :)

  • Power User

Reputacja: 852
Czempion

  • Postów:920
  • GG:
  • Imię:Tomek
  • Lokalizacja:Rabka-Zdrój
Offline

Napisano 05.08.2011 17:06

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 :)

Użytkownik Gh0st edytował ten post 05.08.2011 17:27

  • +
  • -
  • 1

#8 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 555
Godlike

  • Postów:11 983
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Warszawa
Offline

Napisano 05.08.2011 17:22

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)
  • +
  • -
  • 1

#9 A może sma?

    Godlike

  • Autor tematu
  • Power User

Reputacja: 547
Wszechwiedzący

  • Postów:1 464
  • Steam:steam
  • Imię:Tomasz
  • Lokalizacja:Polska
Offline

Napisano 05.08.2011 17:26

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?

Użytkownik A może sma? edytował ten post 05.08.2011 17:30

  • +
  • -
  • 0

#10 Gh0st

    :)

  • Power User

Reputacja: 852
Czempion

  • Postów:920
  • GG:
  • Imię:Tomek
  • Lokalizacja:Rabka-Zdrój
Offline

Napisano 05.08.2011 17:30

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

Użytkownik Gh0st edytował ten post 05.08.2011 17:52

  • +
  • -
  • 0

#11 A może sma?

    Godlike

  • Autor tematu
  • Power User

Reputacja: 547
Wszechwiedzący

  • Postów:1 464
  • Steam:steam
  • Imię:Tomasz
  • Lokalizacja:Polska
Offline

Napisano 05.08.2011 17:44

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

Daaarkkk... :*

Użytkownik A może sma? edytował ten post 05.08.2011 17:44

  • +
  • -
  • 0

#12 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 555
Godlike

  • Postów:11 983
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Warszawa
Offline

Napisano 05.08.2011 17:51

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]
  • +
  • -
  • 1

#13 A może sma?

    Godlike

  • Autor tematu
  • Power User

Reputacja: 547
Wszechwiedzący

  • Postów:1 464
  • Steam:steam
  • Imię:Tomasz
  • Lokalizacja:Polska
Offline

Napisano 05.08.2011 18:03

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));
}

  • +
  • -
  • 0

#14 Gh0st

    :)

  • Power User

Reputacja: 852
Czempion

  • Postów:920
  • GG:
  • Imię:Tomek
  • Lokalizacja:Rabka-Zdrój
Offline

Napisano 05.08.2011 21:33

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

Użytkownik Gh0st edytował ten post 05.08.2011 21:34

  • +
  • -
  • 1

#15 A może sma?

    Godlike

  • Autor tematu
  • Power User

Reputacja: 547
Wszechwiedzący

  • Postów:1 464
  • Steam:steam
  • Imię:Tomasz
  • Lokalizacja:Polska
Offline

Napisano 06.08.2011 13:59

Poszedłem tym tropem - zadziałało :D
  • +
  • -
  • 0

#16 Adminek AMXX.PL

    Admin :)

  • Bot

Reputacja: 156
Profesjonalista

  • Postów:7 492
  • Lokalizacja:AMXX.PL
Offline

Napisano 06.08.2011 15:14

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




Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych