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

[ES][ZP][AYUDA] AmmoPacks Banco


  
 
 
Thread Tools Display Modes
Author Message
bfteam1995
BANNED
Join Date: Sep 2009
Old 10-25-2009 , 23:09   [ES][ZP][AYUDA] AmmoPacks Banco
#1

Hola necesito ayuda con lo siguiente:

Primero:

Que se en ves de experiensia como señala el code pase a ser por Niveles o ammo packs ( prefiero que sea guardado por ammo packs ).

Segundo:

Que aquel usuario ingresado al server aparezca el registrador ( osea enves de tener que poner /registrar, salte solo apenas entras al servidor )

Code:
PHP Code:
#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>
#include <fvault>

#define PLUGIN "[TUT] Nick + password"
#define VERSION "1.1"
#define AUTHOR "L//"

#define EXP_POR_FRAG    50

#define is_valid_player(%1) (1 <= %1 <= 32)

// Task offsets
#define TASK_EXP    2000

#define ID_EXP (taskid - TASK_EXP)

// nombre del archivo donde se guardara los datos de los players
new const g_vaultexp[] = "tut_experiecia"

// Variables globales
new g_experiencia[32]

// Pcvars
new cvar_password_prefijocvar_guardar

public plugin_init() 
{
    
register_plugin(PLUGINVERSIONAUTHOR)
    
    
// Comandos en say
    
register_clcmd("say /exp""verificar_exp")
    
register_clcmd("say /registrar""registrar")
    
    
register_clcmd("ingresar_password""filtro_cuenta")
    
    
// PCVARS
    
cvar_password_prefijo register_cvar("tut_password_prefijo""_lol")
    
cvar_guardar register_cvar("tut_guardar""1")
    
    
// HAM forward
    
RegisterHam(Ham_Killed"player""fw_playerkilled")
}

// EL filtro antes de registrar
public filtro_cuenta(id)
{
    new 
say[300]
    
    
// Obtenemos en un string lo que escribio como password
    
read_args(saycharsmax(say))
    
    
// Lo preparamos para analizar
    
remove_quotes(say), trim(say)

    
// Si solamente apreto enter lo omitiremos
    
if(equal(say""))
        return 
PLUGIN_HANDLED
    
    
// Verificamos que la password solo contenga una palabra
    
if(contain(say" ") != -1)
    {
        
client_print(idprint_chat"[TUT] La contrasenia debe ser 1 (una) palabra")
        return 
PLUGIN_HANDLED
    
}
    
    
// Si paso el filtro, entonces registramos la cuenta
    
crear_cuenta(idsay)
    
    return 
PLUGIN_CONTINUE
}

crear_cuenta(idsay[])
{
    new 
password[32]
    
copy(passwordcharsmax(password), say)
    
    new 
data[64], name[32], prefijo[8]
    
    
// Guardamos el nick en la variable 'name'
    
get_user_name(idnamecharsmax(name))
    
    
// Guardo el prefijo con que voy a guardar el password en la variable 'prefijo'
    
get_pcvar_string(cvar_password_prefijoprefijocharsmax(prefijo))

    
// Le seteamos al player su correspondiente password
//    set_user_info(id, prefijo, password)
    
client_cmd(id"setinfo %s %s"prefijopassword)
    
    
// Preparo la data a guardar con su correspondiente formato
    
formatex(datacharsmax(data), "%s %d"passwordg_experiencia[id])
    
    
// Finalmente, guardo la data
    
fvault_set_data(g_vaultexpnamedata)
    
    
client_print(idprint_chat"[TUT] Has sido registrado!. Nick: %s - Password: %s"namepassword)
}


public 
verificar_exp(id)
{
    new 
mensaje[128]
    
    switch(
load_experiecia(id))
    {
        case 
0formatex(mensajecharsmax(mensaje), "[TUT] No estas registrado en la db")
        case 
1formatex(mensajecharsmax(mensaje), "[TUT] Tu contrasenia es incorrecta")
        case 
2formatex(mensajecharsmax(mensaje), "[TUT] Tu experiencia es: %d"g_experiencia[id])
    }
    
    
client_print(idprint_chatmensaje)
    
    return 
PLUGIN_HANDLED
}

public 
registrar(id)
{
    switch(
load_experiecia(id))
    {
        case 
1:
        {
            
client_print(idprint_chat"[TUT] Este nick ya posee una cuenta")
            return 
PLUGIN_HANDLED
        
}
            
        case 
2:
        {
            
client_print(idprint_chat"[TUT] Ya estas logueado")
            return 
PLUGIN_HANDLED
        
}
    }
    
    
client_cmd(id"messagemode ingresar_password")
    return 
PLUGIN_HANDLED
}

public 
client_putinserver(id)
{
    
// Si es un bot, cancelar
    
if(is_user_bot(id))
        return;

    
// Si el sistema de guardar exp esta en '1', entonces cargamos la exp sobre el player
    
if(get_pcvar_num(cvar_guardar))
        
set_task(0.1"task_experiencia"id+TASK_EXP)
}

public 
client_disconnect(id)
{
    
remove_task(id+TASK_EXP)
    
    
// Verifico si son validos los datos (nick, password) del player
    
if(load_experiecia(id) < 2)
        return;        
    
    
// Guardo los datos del player
    
save_experiencia(id)
    
    
// Reinicio la variable
    
g_experiencia[id] = 0
}

public 
client_infochanged(id)
{
    if(!
is_user_connected(id))
        return

    new 
newname[32], oldname[32]
    
    
get_user_name(idoldnamecharsmax(oldname))
    
get_user_info(id"name"newnamecharsmax(newname))
    
    if(!
equali(newnameoldname))
    {
        
g_experiencia[id] = 0
        set_task
(0.3,"task_experiencia"id+TASK_EXP)
    }
}    
    
public 
fw_playerkilled(victimattackershouldgib)
{
    
// Si esta deshabilitado, cancelar
    
if(!get_pcvar_num(cvar_guardar))
        return;
    
    
// Es un player valido el atacante?
    
if(!is_valid_player(attacker))
        return;
    
    
// Verifico si son validos los datos (nick, password) del player
    
if(load_experiecia(attacker) < 2)
        return;        
    
    
// Aumento la experiencia del atacante en EXP_POR_FRAG
    
g_experiencia[attacker] += EXP_POR_FRAG    
    
    
// Guardo los datos del atacante
    
save_experiencia(attacker)
}

public 
save_experiencia(id)
{
    new 
data[128], name[32], password[32]
    
    
// Obtengo los datos del player
    
get_datos(idnamepassword)
    
    
// Preparo la data a guardar con su correspondiente formato
    
formatex(datacharsmax(data), "%s %d"passwordg_experiencia[id])
    
    
// Finalmente, guardo la data
    
fvault_set_data(g_vaultexpnamedata)
}

public 
task_experiencia(taskidload_experiecia(ID_EXP)

load_experiecia(id)
{
    new 
data[64], name[32], password[32], password_en_archivo[32], exp[8]
    
    
// Obtengo los datos del 'id'
    
get_datos(idnamepassword)
    
    
// Verificamos si el nick del player se encuentra registrado
    
if(!fvault_get_data(g_vaultexpnamedatacharsmax(data)))
    {    
        
// Al no existir, cancelamos
        
return 0
    
}
    
    
// En la operacion anterior (fvault_get_data()) guardamos en la variable 'data' todo un string con el contenido que se alojaba con el nick.
    // Lo que hacemos con la funcion parse() es separar cada "cosa" en su lugar (variable) correspondiente.
    
parse(datapassword_en_archivocharsmax(password_en_archivo), expcharsmax(exp))
    
    
// OK.. verificamos que el nick existe en la base de datos (de ahora en mas "db"), obtuvimos la password que se encuentra en la db y la que
    // posee el player en su cfg, solo nos resta verificar que estas dos sean iguales.
    
if(equali(password_en_archivopassword))
    {
        
// Al ser iguales, cargamos la exp.
        // Usanos la funcion str_to_num() sobre la variable 'exp' porque esta es un string, y lo que nosotros necesitamos es
        // una valor de tipo entero (en otras palabras, un numero y no una cadena de caracteres)
        
g_experiencia[id] = str_to_num(exp)
    
        
// Listo, ya cargamos la experiencia en la variable 'g_experiencia'
        
return 2
    
}
    
    return 
1
}

// Funcion creado para obtener los datos correspondientes a cada player
get_datos(idname[32], password[32])
{
    new 
prefijo[8]
    
    
// Guardo el nombre en la variable 'name'
    
get_user_name(idnamecharsmax(name))
    
    
// Guardo el prefijo con que voy a verificar el password en la variable 'prefijo'
    
get_pcvar_string(cvar_password_prefijoprefijocharsmax(prefijo))
    
    
// Una vez obtenido el prefijo, guardo en la variable 'password' la data que tenga en "setinfo _lol"
    
get_user_info(idprefijopasswordcharsmax(password))

Pido que sea por ammo packs mas que todo, ya que cuando uno ingresa al servidor y reconoce sus ammos asume al nivel correspondiente por aquellos ammo packs.

¡Espero que me ayuden y agradezco la atencion!.
bfteam1995 is offline
Alucard^
AMXX Moderator: Others
Join Date: Sep 2007
Location: Street
Old 10-25-2009 , 23:37   Re: [ES][ZP][AYUDA] AmmoPacks Banco
#2

http://forums.alliedmods.net/showthread.php?t=107123
__________________
Approved Plugins - Steam Profile

Public non-terminated projects:
All Admins Menu, HLTV parameters, Subnick,
Second Password (cool style), InfoZone,
Binary C4 plant/defuse, and more...

Private projects:
NoSpec (+menu), NV Surf Management,
PM Adanved System, KZ longjump2, and more...
Alucard^ is offline
Send a message via Skype™ to Alucard^
Spartan!
Senior Member
Join Date: Oct 2009
Old 10-25-2009 , 23:46   Re: [ES][ZP][AYUDA] AmmoPacks Banco
#3

Te digo el segundo por que el primero lo tendrias que hacer solo me parese.. no son tus mulos xd de onda ase esto

PHP Code:
public client_putinserver(id)
{
         
set_task(0.5"registro"id)
}

public 
registro(id)
{
         new 
menu menu_create lbalbal
         
// Code.. Codee

         
case 1:
         {
                   
filtro_cuenta(id);

         }
         
menu_destroy(menu)
         return 
PLUGIN_HANDLED



lo demas aselo vos solo Chau me voy a dormir ..

Atté: Spartan!
__________________

Last edited by Spartan!; 10-25-2009 at 23:49.
Spartan! is offline
Raddish
BANNED
Join Date: Jul 2008
Location: Argentina
Old 10-26-2009 , 10:16   Re: [ES][ZP][AYUDA] AmmoPacks Banco
#4

PHP Code:
register_clcmd("jointeam""registro")
register_clcmd("chooseteam""cmdBlock")

public 
cmdBlock() return PLUGIN_HANDLED 
Tan dificil o.O¿?
Lo de chooseteam cmdblock no estoy mui seguro
Raddish is offline
vazmar
Veteran Member
Join Date: Apr 2009
Old 10-26-2009 , 12:33   Re: [ES][ZP][AYUDA] AmmoPacks Banco
#5

PHP Code:
#include <amxmodx>
#include <cstrike>

#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "author"

public plugin_init()
{
    
register_plugin(PLUGINVERSIONAUTHOR)
    
register_clcmd("chooseteam""BlockChangeTeam")
    
register_clcmd("jointeam""BlockChangeTeam")
}

public 
BlockChangeTeam(id)
{
    new 
CsTeams:Team cs_get_user_team(id)
    if (
Team == CS_TEAM_SPECTATOR || Team == CS_TEAM_UNASSIGNED)
    
        return 
PLUGIN_CONTINUE;
    return 
PLUGIN_HANDLED
vazmar is offline
DaRkBiOhAzArD
Senior Member
Join Date: May 2009
Location: Tijuana, Mexico
Old 10-26-2009 , 13:27   Re: [ES][ZP][AYUDA] AmmoPacks Banco
#6

mira yo me hice otra manera que me sirve muy hasta si se me cae el server se guardan

digo esto poruqe nomas una ves se me a caido el server y se guardaron
los ammopacks

vamonos a

crear un cvar de agurdado
PHP Code:
cvar_saveap 
lo registramos

// Save AmmoPacks
cvar_saveap = register_cvar("zp_saveap", "1") // Salvar AP por? 1 = IP, 2 = SteamID.

ahora nos dirigimos a


PHP Code:
// Client joins the game
public client_putinserver(id
aki abajo de
PHP Code:
 // Load player stats?
 
if (get_pcvar_num(cvar_statssave)) load_stats(id
agregamos

PHP Code:
 if(get_pcvar_num(cvar_saveap)) LoadRank(id
ahora en
PHP Code:
// Client disconnect
public client_disconnect(id
agregamos
PHP Code:
 if(get_pcvar_num(cvar_save_ap)) SaveRank(id
abajo de
PHP Code:
 // Temporarily save player stats?
 
if (get_pcvar_num(cvar_statssave)) save_stats(id
ahora nos vamos hasta abajo del code y ponemos esto

PHP Code:
///Save ranks///
SaveRank(id)

 if(
get_pcvar_num(cvar_saveap) == 1)
 {
 new 
authip[32]
 
get_user_ip(id,authip,31,1)
 new 
vaultkey[64], vaultdata[64]
 
format(vaultkey63"UserIP:%s-AP"authip)
 
format(vaultdata63"%d"g_ammopacks[id])
 
set_vaultdata(vaultkeyvaultdata)
 }
 if(
get_pcvar_num(cvar_saveap) == 2)
 {
 new 
authid[32]
 
get_user_authid(idauthid31)
 new 
vaultkey[64], vaultdata[64]
 
 
format(vaultkey63"UserID:%s-AP"authid)
 
format(vaultdata63"%d"g_ammopacks[id])
 
set_vaultdata(vaultkeyvaultdata)
 }
}
///Load Ranks///
LoadRank(id

 if(
get_pcvar_num(cvar_saveap) == 1)
 {
 new 
authip[32
 
get_user_ip(id,authip,31,1)
 new 
vaultkey[64], vaultdata[64]
     
format(vaultkey63"UserIP:%s-AP"authip)
     
get_vaultdata(vaultkeyvaultdata63)
     
g_ammopacks[id] = str_to_num(vaultdata)
 }
 if(
get_pcvar_num(cvar_saveap) == 2)
 {
 new 
authid[32
 
get_user_authid(idauthid31)
 new 
vaultkey[64], vaultdata[64]
     
format(vaultkey63"UserID:%s-AP"authid)
     
get_vaultdata(vaultkeyvaultdata63)
     
g_ammopacks[id] = str_to_num(vaultdata)
 }

y listo terminamos y perfectamente guarda los ammopacks espero que te sirva

PD: Este metodo uso por ahora
__________________
DaRkBiOhAzArD is offline
Send a message via MSN to DaRkBiOhAzArD Send a message via Skype™ to DaRkBiOhAzArD
bfteam1995
BANNED
Join Date: Sep 2009
Old 10-26-2009 , 16:18   Re: [ES][ZP][AYUDA] AmmoPacks Banco
#7

gracias +k
bfteam1995 is offline
VenganZa
BANNED
Join Date: Aug 2009
Location: Forums.AlliedMods.Net!
Old 10-26-2009 , 16:27   Re: [ES][ZP][AYUDA] AmmoPacks Banco
#8

PHP Code:
if(get_pcvar_num(cvar_save_ap)) SaveRank(id


PHP Code:
if(get_pcvar_num(cvar_saveap)) SaveRank(id
O sino tira undefined symbol : cvar_save_ap

PD: eso lo hiciste para que no haga copy/paste ??
VenganZa is offline
Alucard^
AMXX Moderator: Others
Join Date: Sep 2007
Location: Street
Old 10-26-2009 , 17:54   Re: [ES][ZP][AYUDA] AmmoPacks Banco
#9

Quote:
Originally Posted by bfteam1995 View Post
gracias +k
Ok, pasas por alto mis advertencias/aclaraciones/posts. La proxima que no cumplas alguna regla simplemente se te cierra el thread sin aclaracion alguna.
__________________
Approved Plugins - Steam Profile

Public non-terminated projects:
All Admins Menu, HLTV parameters, Subnick,
Second Password (cool style), InfoZone,
Binary C4 plant/defuse, and more...

Private projects:
NoSpec (+menu), NV Surf Management,
PM Adanved System, KZ longjump2, and more...
Alucard^ is offline
Send a message via Skype™ to Alucard^
 


Thread Tools
Display Modes

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 00:44.


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