Raised This Month: $32 Target: $400
 8% 

Guardado de AP, usando fvault


  
 
 
Thread Tools Display Modes
Author Message
vazmar
Veteran Member
Join Date: Apr 2009
Old 01-04-2010 , 22:55   Guardado de AP, usando fvault
#1

Hola, una vez postie esto, pero no explique nada porque no sabia nada ..
Ahora lo mejore un poco.. esta todo explicado en el plug

PHP Code:
#include <amxmodx>
#include <fakemeta>
#include <fvault>
#include <zombieplague>

#define PLUGIN "Tutorial: Guardado de ap usando Fvault"
#define VERSION "1.0"
#define AUTHOR "vazmar"

new const g_vault_name[] = "AP"// AP es el nombre del archivo txt que se crea en la carpeta 
                // data/file_vault para guardar los ammo packs de los players
new g_ammopacks[33]                
new 
g_iMaxPlayers

public plugin_init() 
{
    
register_plugin(PLUGINVERSIONAUTHOR)
    
    
// Dedicado a meTaLiCroSS xD
    
register_forward(FM_Sys_Error"fw_svshutdown"// El nombre de 
    
register_forward(FM_GameShutdown"fw_svshutdown"// las forwards
    
register_forward(FM_ServerDeactivate "fw_svshutdown"// lo dice todo
    
register_forward(FM_ChangeLevel"fw_svshutdown"// Gracias eXacT :P
    
    // Evento
    
register_logevent("logevent_round_end"2"1=Round_End")
    
    
g_iMaxPlayers get_maxplayers();
}

public 
client_putinserver(id// Si se conectan
{
    if(!
is_user_hltv(id) && !is_user_bot(id))  // Verificamos que no sea hltv ni bot
        
LoadAp(id); // Si es un player cargamos los AP      
}

public 
client_disconnect(id)  // Cuando el player se deconecte
{
if(!
is_user_hltv(id) && !is_user_bot(id)) // Si no es hltv ni bot
    
SaveAp(id); // Se guardan los ap.
}

public 
logevent_round_end() // Al finalizar la ronda
{
    for (new 
id 1id <= g_iMaxPlayersid++)
        
SaveAp(id// Guardamos los AP
}

LoadAp(id// Funcion para cargar AP
{
    new 
name[32]; // Cramos variable 
    
get_user_name(idname31); // y obtenemos el nombre
    
    
new data[16]; 
    if(
fvault_get_data(g_vault_namenamedata15)) // Si se obtiene la data
    
{
        
zp_set_user_ammo_packs(idstr_to_num(data))
    }
}

SaveAp(id// Funcion para guardar AP
{
    
g_ammopacks[id] = zp_get_user_ammo_packs(id)
    
    new 
name[32]; // Obtenemos el
    
get_user_name(idname31); // nombre
    
    
new data[16]; // Obtenemos los 
    
num_to_str(g_ammopacks[id], data15); // ammo packs
    
    
fvault_set_data(g_vault_namenamedata); // y guardamos
}

public 
fw_svshutdown() // Si el servidor cae
{
    for (new 
id 1id <= g_iMaxPlayersid++) // Loop de todos los jugadores
    
if (is_user_connected(id)) // Fix By Kiske XD
        
SaveAp(id// Guardamos..

Si hay algo mal, desastroso, diganme..

Si quieren ver cada parametro de las funciones de fvault pasense por aca
https://forums.alliedmods.net/showthread.php?t=76453

Last edited by vazmar; 03-28-2010 at 22:44.
vazmar is offline
eXacT
Veteran Member
Join Date: Apr 2009
Location: Buenos Aires
Old 01-04-2010 , 22:59   Re: [ES][TUT] Guardado de AP, usando fvault
#2

podrias agregar

PHP Code:

register_forward
(FM_ChangeLevel"fw_svshutdown"
para qe cada vez qe se cambie de mapa se guarde, lo puse con el mismo nombre qe tu funcion ya qe, no lleva ID, sino qe hay qe crearlo tal cual lo hiciste ahi ;D
__________________

"There is no knowledge, that is not power"
eXacT is offline
Send a message via MSN to eXacT Send a message via Skype™ to eXacT
vazmar
Veteran Member
Join Date: Apr 2009
Old 01-04-2010 , 23:02   Re: [ES][TUT] Guardado de AP, usando fvault
#3

Quote:
Originally Posted by eXacT View Post
podrias agregar

PHP Code:

register_forward
(FM_ChangeLevel"fw_svshutdown"
para qe cada vez qe se cambie de mapa se guarde, lo puse con el mismo nombre qe tu funcion ya qe, no lleva ID, sino qe hay qe crearlo tal cual lo hiciste ahi ;D
Se guarda cada vez que termina la ronda, pero es util esa forward, ahi la agrego
vazmar is offline
Kiske
Veteran Member
Join Date: May 2009
Old 01-04-2010 , 23:13   Re: [ES][TUT] Guardado de AP, usando fvault
#4

Note aca que hay un pequeño error:

PHP Code:
public fw_svshutdown() // Si el servidor cae
{
    for (new 
id 1id <= g_iMaxPlayersid++) // Loop de todos los jugadores
        
SaveAp(id// Guardamos..

-->

PHP Code:
public fw_svshutdown() // Si el servidor cae
{
    for (new 
id 1id <= g_iMaxPlayersid++) // Loop de todos los jugadores
        
if ( is_user_connected(id) )
            
SaveAp(id// Guardamos..


Pq vos ahi estas haciendo un Loop de "MaxPlayers", ponele que el sv es de 32.
Y suponele que hay 4 Personas Jugando.

Entonces va a Guardarlo solamente 4 Veces y no 32 ...
__________________

Kiske is offline
Send a message via Skype™ to Kiske
vazmar
Veteran Member
Join Date: Apr 2009
Old 01-04-2010 , 23:21   Re: [ES][TUT] Guardado de AP, usando fvault
#5

Gracias
vazmar is offline
Javivi
AlliedModders Donor
Join Date: Dec 2008
Old 01-05-2010 , 04:42   Re: [ES][TUT] Guardado de AP, usando fvault
#6

Y al desconectarse se lo guardara a los bots y hltv creo.
__________________
Javivi is offline
eXacT
Veteran Member
Join Date: Apr 2009
Location: Buenos Aires
Old 01-05-2010 , 06:08   Re: [ES][TUT] Guardado de AP, usando fvault
#7

Quote:
Originally Posted by Javivi View Post
Y al desconectarse se lo guardara a los bots y hltv creo.
tenes razon, hay qe checkearlo de nuevo asi

PHP Code:

public client_disconnect(id)
{
         if (
is_user_bot(id) || is_user_hltv(id))
                     return;
       
         
SaveAp(id)

y aca

PHP Code:
public client_putinserver(id// Si se conectan
{
    if(!
is_user_hltv(id) && !is_user_bot(id))  // Verificamos que no sea hltv ni bot
        
LoadAp(id); // Si es un player cargamos los AP      

no te combiene poner &&, por qe sino dirias, si el usuario no es hltv Y el usuario no es bot, cargamos AP

cuando tendria qe decir si el usuario no es hltv O el usuario no es bot, cargamos los AP

xq nunca, entra un bot por el hltv we

asi qe pone asi

PHP Code:
public client_putinserver(id// Si se conectan
{
    if(
is_user_hltv(id) || is_user_bot(id))  // Verificamos que no sea hltv ni bot, si lo son Cancelamos
              
return;

        
LoadAp(id); // Si es un player cargamos los AP      




__________________

"There is no knowledge, that is not power"

Last edited by eXacT; 01-05-2010 at 06:11.
eXacT is offline
Send a message via MSN to eXacT Send a message via Skype™ to eXacT
Javivi
AlliedModders Donor
Join Date: Dec 2008
Old 01-05-2010 , 06:45   Re: [ES][TUT] Guardado de AP, usando fvault
#8

No hacen falta los return, con poner if(! vale
__________________
Javivi is offline
eXacT
Veteran Member
Join Date: Apr 2009
Location: Buenos Aires
Old 01-05-2010 , 07:46   Re: [ES][TUT] Guardado de AP, usando fvault
#9

Quote:
Originally Posted by Javivi View Post
No hacen falta los return, con poner if(! vale
okei, solo qe yo no use " ! "

:\
__________________

"There is no knowledge, that is not power"
eXacT is offline
Send a message via MSN to eXacT Send a message via Skype™ to eXacT
gladius
Veteran Member
Join Date: Jul 2008
Location: Santiago, Chile
Old 01-05-2010 , 10:42   Re: [ES][TUT] Guardado de AP, usando fvault
#10

muy bien, pero podrias hacer que sea con registro
__________________
Proyects
Kreedz Chile Mod [100%] (Fixing some details).

gladius is offline
Send a message via MSN to gladius Send a message via Skype™ to gladius
 



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 15:15.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode