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

nVault automatycznie


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

#1 Kusek

    z Wikipedii

  • Power User

Reputacja: 446
Wszechobecny

  • Postów:1 655
  • Imię:Krystian
Offline

Napisano 06.05.2010 17:52

Witam jak zrobić nvault automatycznie, wiem że trzeba dodać coś do client_connect i disconnect lecz co to nie wiem :)

tutaj mój nvault

	register_clcmd( "say /savemoney" , "cmdSaveMoney" );
register_clcmd( "say /getmoney" , "cmdGetMoney" );

public plugin_cfg()
{
//TRESC
}
public plugin_end()
{
nvault_close( g_Vault );
}
public cmdSaveMoney(id)
{
//TRESC
}

public cmdGetMoney(id)
{
//TRESC
}


jeśli będzie potrzebny cały to zapodam na PW :)
  • +
  • -
  • 0

#2 R3X

    Godlike

  • Przyjaciel

Reputacja: 2 987
Godlike

  • Postów:4 248
  • Lokalizacja:Nie
Offline

Napisano 06.05.2010 18:37

Zależy jak chcesz zapisywać.

jak chcesz na steamid to pobierz je(get_user_authid) i użyj jako klucza nVault
new ileKasy = nvault_get(g_Vault, steamid)

  • +
  • -
  • 0

#3 Kusek

    z Wikipedii

  • Autor tematu
  • Power User

Reputacja: 446
Wszechobecny

  • Postów:1 655
  • Imię:Krystian
Offline

Napisano 06.05.2010 18:40

czyli w connect mam wpisać to co wyżej??

a jeśli chcę na nick to
get_user_name??
  • +
  • -
  • 0

#4 R3X

    Godlike

  • Przyjaciel

Reputacja: 2 987
Godlike

  • Postów:4 248
  • Lokalizacja:Nie
Offline

Napisano 06.05.2010 18:45

Nie wiem do końca jak ma działać plugin, ale przypuszczam, że przy connect (BTW lepiej putinserver) pobierz do tablicy [33], a przy disconnect zapisz.


Podstawy kodu
new szTablicaZKluczami[33][DLUGOSC_KLUCZA]; //u Ciebie to będą nicki graczy
new iKasa[33]; //jak wejdzie gracz wklej tu ilośc kasy z nvault_get


public client_putinserver(id){
    get_user_name(id, szTablicaZKluczami[id], DLUGOSC_KLUCZA - 1 );
    iKasa[id] = nvault_get(g_Vault, szTablicaZKluczami[id]);
}
public client_disconnect(id){
    nvault_set(g_Vault, szTablicaZKluczami[id], iKasa[id]);
    szTablicaZKluczami[id][0] = '^0'
}
A dalej musisz tym jakoś zarządzać, ale z tego co podałeś nie wywnioskowałem jak :D
  • +
  • -
  • 0

#5 Kusek

    z Wikipedii

  • Autor tematu
  • Power User

Reputacja: 446
Wszechobecny

  • Postów:1 655
  • Imię:Krystian
Offline

Napisano 06.05.2010 18:49

mogę zapodać cały SMA lecz na PW :)
  • +
  • -
  • 0

#6 R3X

    Godlike

  • Przyjaciel

Reputacja: 2 987
Godlike

  • Postów:4 248
  • Lokalizacja:Nie
Offline

Napisano 06.05.2010 18:55

Słyszałem o maszynie, która bierze niedokończony kod w Pawnie i wytwarza z niego gotowy plugin zatrzymując przy Tobie prawa autorskie. Podajesz tylko co ma robić plugin i klikasz Enter.

A to co o niej słyszałem to fakt, że nie istnieje.
  • +
  • -
  • 0

#7 Kusek

    z Wikipedii

  • Autor tematu
  • Power User

Reputacja: 446
Wszechobecny

  • Postów:1 655
  • Imię:Krystian
Offline

Napisano 06.05.2010 18:56

dobra niech inny też z korzystają jak będzie potrzebne, trzeba się dzielić :)


//ZAPIS KASY
public plugin_cfg()
{
g_Vault = nvault_open( "forsa" );
//Make the plugin error if vault did not successfully open
if ( g_Vault == INVALID_HANDLE )
set_fail_state( "Error opening nVault" );

//This will remove all entries in the vault that are 5+ (or cvar+) days old at server-start
//or map-change
nvault_prune( g_Vault , 0 , get_systime() - ( 86400 * get_pcvar_num( g_pExpireDays ) ) );
}
public plugin_end()
{
//Close the vault when the plugin ends (map change\server shutdown\restart)
nvault_close( g_Vault );
}


public cmdSaveMoney(id)
{
//Save a single item into the value of the entry.
//Example: STEAM_0:0:1234 16000

new szMoney[7]; //Data holder for the money amount
new szKey[40]; //Key used to save money "STEAM_0:0:1234MONEY"

formatex( szKey , 39 , "%sMONEY" , g_szAuthID[id] );
formatex( szMoney , 6 , "%d" , cs_get_user_money(id) );

nvault_set( g_Vault , szKey , szMoney );

client_print( id , print_chat , "* Your money was saved to vault" );
}

public cmdGetMoney(id)
{
//Retrieve a single item from vault
//Example: STEAM_0:0:1234 16000

new szKey[40];
formatex( szKey , 39 , "%sMONEY" , g_szAuthID[id] );
new iMoney = nvault_get( g_Vault , szKey );

//If our money key was found, set the users money to the value we read from vault and
//delete the key so the player will not get the same money again.
if ( iMoney )
{
cs_set_user_money( id , iMoney , 1 );
nvault_remove( g_Vault , szKey );

client_print( id , print_chat , "* Your money was loaded from vault: $%d" , iMoney );
}
else
{
client_print( id , print_chat , "* You have no money entry in vault." );
}
}



  • +
  • -
  • 0

#8 sbstn

    Wszechwidzący

  • Użytkownik

Reputacja: 67
Pomocny

  • Postów:274
  • Lokalizacja:Szczecin
Offline

Napisano 06.05.2010 20:23

Po co na komendy... Niech się zapisuje przed wyjściem i wczytuje przy wejściu.
  • +
  • -
  • 0
-Piszę pluginy na zamówienie.
-Przerabiam pluginy (nie mody) na zamówienie.
-Piszę kursy/poradniki "Pisania pluginów w PAWN'ie"

Nie udzielam pomocy na GG, ani na innym komunikatorze internetowym.
Masz sprawę? PISZ NA PW

#9 Kusek

    z Wikipedii

  • Autor tematu
  • Power User

Reputacja: 446
Wszechobecny

  • Postów:1 655
  • Imię:Krystian
Offline

Napisano 06.05.2010 20:57

no to właśnie jak wywołać to :/
  • +
  • -
  • 0

#10 sbstn

    Wszechwidzący

  • Użytkownik

Reputacja: 67
Pomocny

  • Postów:274
  • Lokalizacja:Szczecin
Offline

Napisano 06.05.2010 21:19

Ogar:
#include <amxmodx>
#include <nvault>

new jakies_tam_cos_tam[33]
new jakis_tam_mod_vault

public plugin_init()
{
jakis_tam_mod_vault=nvault_open("jakis_tam_mod")
}

public Load_Data(id)
{
new nick[32]
get_user_name(id,nick,31)
new vaultkey[64]
new vaultdata[256]

format(vaultkey,63,"%s-jakis_tam_mod",nick)
format(vaultdata,255,"%i#",jakies_tam_cos_tam[id])

nvault_get(jakis_tam_mod_vault,vaultkey,vaultdata,255)
replace_all(vaultdata,255,"#"," ")
new jtm[32]
parse(vaultdata,jtm,31)
jakies_tam_cos_tam[id]=str_to_num(jtm)

return PLUGIN_CONTINUE
}

public Save_Data(id)
{
new nick[32]
get_user_name(id,nick,31)
new vaultkey[64]
new vaultdata[256]

format(vaultkey,63,"%s-jakis_tam_mod",nick)
format(vaultdata,255,"%i#",jakies_tam_cos_tam[id])

nvault_set(jakis_tam_mod_vault,vaultkey,vaultdata)

return PLUGIN_CONTINUE
}

public client_connect(id)
{
Load_Data(id)
}

public client_disconnect(id)
{
Save_Data(id)

}

-
  • +
  • -
  • 0
-Piszę pluginy na zamówienie.
-Przerabiam pluginy (nie mody) na zamówienie.
-Piszę kursy/poradniki "Pisania pluginów w PAWN'ie"

Nie udzielam pomocy na GG, ani na innym komunikatorze internetowym.
Masz sprawę? PISZ NA PW

#11 kyku

    Wszechmogący

  • Użytkownik

Reputacja: 166
Profesjonalista

  • Postów:612
  • Lokalizacja:Jasło
Offline

Napisano 07.05.2010 10:39

Przecież to nie twój plugin więc dlaczego sma nie chciałeś podać? :wstyd:
//ZAPIS KASY
public plugin_cfg()
{
        g_Vault = nvault_open( "forsa" );
        //Make the plugin error if vault did not successfully open
        if ( g_Vault == INVALID_HANDLE )
                set_fail_state( "Error opening nVault" );
        
        //This will remove all entries in the vault that are 5+ (or cvar+) days old at server-start
        //or map-change
        nvault_prune( g_Vault , 0 , get_systime() - ( 86400 * get_pcvar_num( g_pExpireDays ) ) );
}
public plugin_end()
{
        //Close the vault when the plugin ends (map change\server shutdown\restart)
        nvault_close( g_Vault );
}


public client_disconnect(id)
{
        //Save a single item into the value of the entry.
        //Example: STEAM_0:0:1234 16000
        
        new szMoney[7];        //Data holder for the money amount
        new szKey[40];        //Key used to save money "STEAM_0:0:1234MONEY"
        
        formatex( szKey , 39 , "%sMONEY" , g_szAuthID[id] );
        formatex( szMoney , 6 , "%d" , cs_get_user_money(id) );
        
        nvault_set( g_Vault , szKey , szMoney );
        
     //   client_print( id , print_chat , "* Your money was saved to vault" );
}

public client_putinserver(id)
{
        //Retrieve a single item from vault
        //Example: STEAM_0:0:1234 16000
        
        new szKey[40];
        formatex( szKey , 39 , "%sMONEY" , g_szAuthID[id] );
        new iMoney = nvault_get( g_Vault , szKey );
        
        //If our money key was found, set the users money to the value we read from vault and
        //delete the key so the player will not get the same money again.
        if ( iMoney )
        {
                cs_set_user_money( id , iMoney , 1 );
                nvault_remove( g_Vault , szKey );
                
                client_print( id , print_chat , "* Your money was loaded from vault: $%d" , iMoney );
        }
        else
        {
                client_print( id , print_chat , "* You have no money entry in vault." );
        }
}
w plugin_init usun komendy bo zapewne sa

Użytkownik kyku edytował ten post 07.05.2010 10:40

  • +
  • -
  • 0




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

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