Allied Modders en español

Versión completa: Ayuda guardado
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Adapte el plugin de clanes al hns de gonza y la verdad que no se como hacer que se guarden los clanes vi el tutorial de gonza de sqlite pero la verdad no entiendo mucho, hay dejare como guardo lo de los clanes y como cargan no se como ponerlo en el archivo cuentas.sq3 para que se guarden y carguen los datos de los clanes.

Código PHP:
public Guardar(id)
{
    if (
p_status[id] != STATUS_LOGED) return
    static 
query[1024], data[1]; data[0] = id

        formatex
(querycharsmax(query), "UPDATE datos SET nivel='%d', rango='%d', clase='%d', puntos='%d', xp_normal='%d', xp_level='%d', plata='%d', monedas='%d', Clan=^"%s^", EstadoCivil=^"%i^" WHERE nombre COLLATE NOCASE LIKE ^"%s^"",
    
p_level[id], p_rango[id], p_class[id], p_points[id], p_exp[id][EXP_NORMAL], p_exp[id][EXP_LEVEL], p_plata[id], p_monedas[id], Clan[id], Membresia[id], p_name[id])
    
    
SQL_ThreadQuery(g_hTupleThread"SQL_Guardar"querydata1

y bueno para que carguen aqui.

Código PHP:
    else if (!SQL_Execute(g_query))
    {
        
p_status[id] = STATUS_UNREGISTERED
        server_cmd
("kick #%d ^"Ocurrio un error al cargar tus datos^""get_user_userid(id))
        
SQL_FreeHandle(g_query)
        return
    }
    
    
g_query SQL_PrepareQuery(g_hTuple"SELECT nivel, rango, clase, puntos, xp_normal, xp_level, plata, monedas FROM datos WHERE nombre COLLATE NOCASE LIKE ^"%s^""p_name[id])
    
    if (
SQL_Execute(g_query))
    {
        
p_level[id] = SQL_ReadResult(g_query0)
        
p_rango[id] = SQL_ReadResult(g_query1)
        
p_class[id] = SQL_ReadResult(g_query2)
        
p_points[id] = SQL_ReadResult(g_query3)
        
p_exp[id][EXP_NORMAL] = SQL_ReadResult(g_query4)
        
p_exp[id][EXP_LEVEL] = SQL_ReadResult(g_query5)
        
p_plata[id] = SQL_ReadResult(g_query6)
        
p_monedas[id] = SQL_ReadResult(g_query7)
        
make_Money(idp_plata[id], 1)
        
SQL_ReadResult(g_query8Clan[id], 41);
        
Membresia[id] = SQL_ReadResult(g_query9);
    } 


Código PHP:
/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <ColorChat>
#include <cstrike>
#include <amxmisc>

#define PLUGIN "Plugin Nuevo"
#define VERSION "1.0.0"

new Clan[33][41]
new 
g_Name[33][33]
new 
Membresia[33]

new 
g_Puntos[33],g_Frags[33]

new 
cvar_prefix

new const TASKID_SOLICITUD    =    3000
new g_Solicitud

new g_TradePoints[33];
new 
g_TradeFrags[33];

new 
gMaxPlayers

public plugin_init() {
    
register_plugin(PLUGINVERSION"Anti")
    
    
register_clcmd("CLAN""RegisterClan")
    
    
register_clcmd("chooseteam","MenuPrincipal")
    
    
cvar_prefix register_cvar("Prefix","PG")
    
    
gMaxPlayers get_maxplayers()
}

public 
client_putinserver(id){
    
get_user_name(id,g_Name[id],charsmax(g_Name[]))
    
Membresia[id] = 1
}
public 
MenuPrincipal(id){
    new 
menu menu_create("Menu Principal","Handler")
    
    
menu_additem(menu,"Clanes")
    
    
menu_display(id,menu)
    return 
PLUGIN_HANDLED
}
public 
Handler(id,menu,item){
    if(
item == MENU_EXIT)
    return 
PLUGIN_HANDLED
    
    
switch(item){
        case 
0:CreateClan(id)
    }
    return 
PLUGIN_HANDLED
}

stock get_prefix()
{
    static 
prefix[100];
    
get_pcvar_string(cvar_prefixprefix99)
    return 
prefix;
}
/*=====Clanes=====*/
public CreateClan(id)
{
    new 
menuCaract[75];
    
formatex(Caractcharsmax(Caract), "\yClan: \r%s^n\yEstado Civil: \r%s"Membresia[id] > 1Clan[id] : "Desconocido"Membresia[id] == 1"Sin Clan" Membresia[id] == 2"Miembro" "Fundador")
    
menu menu_create(Caract"handClan")
    
    if ( 
Membresia[id] == )
    {
        
menu_additem(menu"Crear Clan""1");
        
menu_additem(menu"Unirse a un Clan""2");
    }
    else if ( 
Membresia[id] == || Membresia[id] == )
    {
        
menu_additem(menu"Enviar Frags/Puntos""1");
        
menu_additem(menu"\rSalir del Clan""2");
    }
    
menu_setprop(menuMPROP_EXITNAME"\rMenu Principal")
    
menu_display(idmenu0)
}
public 
handClan(idmenuitem)
{
    if ( 
MENU_EXIT == item )    {
        
menu_destroy(menu)
        
MenuPrincipal(id)
        return 
PLUGIN_HANDLED;
    }
    if ( 
Membresia[id] == )
    {
        switch(
item)
        {
            case 
0:    client_cmd(id"messagemode CLAN");
            case 
1:    MenuClanes(id);
        }
    }
    else if ( 
Membresia[id] == || Membresia[id] == )
    {
        switch(
item)
        {
            case 
0:    
            {
                new 
ClanPlayers[33], count;
                for ( new 
1;<= gMaxPlayers;i++ )
                {
                    if ( 
is_user_connected(i) && != id && equal(Clan[i], Clan[id]) )
                    {
                        
ClanPlayers[i] = 1;
                        
count++
                    }
                }
                if ( 
count )
                {
                    
ColorChat(idGREEN"%s^x01 No hay ningun miembro de tu clan online."get_prefix());
                    return 
PLUGIN_HANDLED;
                }
                
InterMenu(id);
            }
            case 
1:
            {
                if ( 
Membresia[id] == )
                {
                    
//new Handle:Query;
                    //Query = SQL_PrepareQuery( g_hTuple, "UPDATE %s SET Clan=^"^", EstadoCivil=^"1^" WHERE Clan=^"%s^"", TABLE, Clan[id] );
                    
                    /*if ( SQL_Execute(Query))
                        console_print(id, "Clan borrado correctamente.")
                    else if ( !SQL_Execute(Query) )
                    {
                        console_print(id, "Error al borrar el clan.")
                        check_error_query(Query, 1)
                    }
                    SQL_FreeHandle( Query );*/
                    
Membresia[id] = 1;
                    
Clan[id] = "";
                }
                else if ( 
Membresia[id] == )
                {
                    
Membresia[id] = 1;
                    
Clan[id] = "";
                }
            }
        }
    }
    return 
PLUGIN_HANDLED;
}
public 
RegisterClan(id)
{
    
///new Handle:Query;
    
read_args(Clan[id], charsmax(Clan[]))
    
trim(Clan[id])
    
remove_quotes(Clan[id])
    
    
//Query = SQL_PrepareQuery(g_hTuple, "UPDATE %s SET Clan=^"%s^", EstadoCivil=^"3^" WHERE Nombre=^"%s^"", TABLE, Clan[id], g_Name[id] );
    //if (SQL_Execute(Query))
    //{
    
ColorChatidGREEN"^x04%s^x01 Tu Clan ah sido creado correctamente."get_prefix() );
    
set_hudmessage(2001000)
    
show_hudmessage(id"Creaste el Clan: %s"Clan[id])
    
Membresia[id] = 3;
    
/*}
    else    {
        Clan[id] = "";
        ColorChat( id, GREEN, "^x04%s^x01 Ya hay un clan con ese nombre.", get_prefix() );
    }
    SQL_FreeHandle(Query);*/
}
public 
MenuClanes(id)
{
    new 
count;
    for ( new 
1;<= gMaxPlayers;i++ )
    {
        if ( 
Membresia[i] == )
            
count++;
    }
    if ( 
count )
    {
        
ColorChat(idGREEN"%s^x01 No hay ningun Fundador online."get_prefix())
        return 
PLUGIN_HANDLED;
    }
    new 
temp[2], Caract[100], menu menu_create("Clanes Online""handUnirse")
    
    for ( new 
1;gMaxPlayers;i++ )
    {
        if (
is_user_connected(i) && Membresia[i] == 3)
        {
            
num_to_str(itemp2)
            
formatex(Caractcharsmax(Caract), "%s \r|| Fundador\y: \w%s"Clan[i], g_Name[i]);
            
menu_additem(menuClan[i], temp)
        }
    }
    
menu_display(idmenu0)
    return 
PLUGIN_HANDLED;
}
public 
handUnirse(idmenuitem)
{
    if(
item == MENU_EXIT) {
        
menu_destroy(menu)
        return 
PLUGIN_HANDLED;
    }
    new 
iKey[6], iAccessiCallbackid2;
    
menu_item_getinfo(menuitemiAccessiKeycharsmax(iKey), __iCallback)
    
    
id2 str_to_num(iKey);
    
    if (
is_user_connected(id2))
        
MenuSolicitud(id2id)
    
    else 
client_print(idprint_center"El fundador no esta conectado.");
    
    
menu_destroy(menu)
    return 
PLUGIN_HANDLED;
}
public 
MenuSolicitud(solicitedsoliciter)
{
    
set_task(12.0"taskSolicitud"soliciter+TASKID_SOLICITUD);
    
    new 
Caract[50], szName[32], temp[2];
    
    
get_user_name(soliciterszName31)
    
formatex(Caractcharsmax(Caract), "\rSolicitud de unirse al clan de \y%s"szName)
    
num_to_str(solicitertemp2);
    
    
g_Solicitud menu_create(Caract"handSolicitud")
    
menu_additem(g_Solicitud"Aceptar"temp);
    
menu_additem(g_Solicitud"Rechazar"temp);
    
    
menu_setprop(g_SolicitudMPROP_EXITMEXIT_NEVER)
    
menu_display(solicitedg_Solicitud0)
}
public 
taskSolicitud(id)
{
    
id -= TASKID_SOLICITUD;
    
menu_destroy(g_Solicitud)
    
ColorChat(idGREEN"%s^x01 Tu solisitud no fue respondida a tiempo."get_prefix())
}
public 
handSolicitud(idmenuitem)    {
    new 
iKey[6], iAccessiCallbackid2;
    
menu_item_getinfo(menuitemiAccessiKeycharsmax(iKey), __iCallback)
    
id2 str_to_num(iKey[0]);
    
    
remove_task(id2+TASKID_SOLICITUD)
    
    switch(
item)
    {
        case 
0:
        {
            
Membresia[id2] = 2;
            
formatex(Clan[id2], charsmax(Clan[]), "%s"Clan[id]);
            
ColorChat(0NORMAL"%s^x04 se unio al Clan^x01 %s^x04 fundador:^x01 %s"g_Name[id2], Clan[id], g_Name[id]);
        }
        case 
1:    ColorChat(id2NORMAL"%s^x04 rechazo tu peticion de clan."g_Name[id]);
    }
}
public 
InterMenu(id)
{
    new 
Caract[70], menu menu_create("\rEnviar:""handEnvios");
    
formatex(Caractcharsmax(Caract), "Puntos: \r%i"g_TradePoints[id])
    
menu_additem(menuCaract"1");
    
formatex(Caractcharsmax(Caract), "Frags: \r%i^n^n"g_TradeFrags[id])
    
menu_additem(menuCaract"2");
    
menu_additem(menu"\yEnviar""3");
    
    
menu_setprop(menuMPROP_EXITNAME"\rClan Menu");
    
menu_display(idmenu0);
}
public 
handEnvios(idmenuitem)
{
    switch(
item)
    {
        case 
MENU_EXIT:
        {
            
CreateClan(id);
            
menu_destroy(menu);
            return 
PLUGIN_HANDLED;
        }
        case 
0:    client_cmd(id"messagemode ENVIAR_PUNTOS");
        case 
1:    client_cmd(id"messagemode ENVIAR_FRAGS");
        case 
2
        {
            if ( 
g_TradeFrags[id] < && g_TradePoints[id] < )
                
ColorChat(idGREEN"%s^x01 No incluistes ningun frags o punto para enviar."get_prefix());
            else    
PlayersClan(id);
        }
    }
    return 
PLUGIN_HANDLED;
}
public 
addTradePoints(id)
{
    new 
cantidad[10];
    
read_argscantidadcharsmaxcantidad ) );
    
remove_quotescantidad );
    
trimcantidad );
    
g_TradePoints[id] = str_to_num(cantidad);
    
    if ( 
g_TradePoints[id] > g_Puntos[id] )    {
        
ColorChat(idGREEN"%s No tienes los puntos suficientes para enviar."get_prefix())
        
g_TradePoints[id] = 0;
    }
    
InterMenu(id);
}
public 
addTradeFrags(id)
{
    new 
cantidad[10];
    
read_argscantidadcharsmaxcantidad ) );
    
remove_quotescantidad );
    
trimcantidad );
    
g_TradeFrags[id] = str_to_num(cantidad);
    
    if ( 
g_TradeFrags[id] > g_Frags[id] )    {
        
ColorChat(idGREEN"%s No tienes los Frags suficientes para enviar."get_prefix())
        
g_TradeFrags[id] = 0;
    }
    
InterMenu(id);
}
public 
PlayersClan(id)
{
    new 
temp[2], menu menu_create("\rPlayers del Clan:""handIntercambio")
    for ( new 
1;<= gMaxPlayers;i++ )
    {
        if ( 
is_user_connected(i) && != id && equal(Clan[i], Clan[id]) )
        {
            
num_to_str(itemp2)
            
menu_additem(menug_Name[i], temp)
        }
    }
    
menu_display(idmenu0)
    return 
PLUGIN_HANDLED;
}
public 
handIntercambio(idmenuitem)
{
    if (
item == MENU_EXIT)
    {
        
CreateClan(id);
        
menu_destroy(menu);
        return 
PLUGIN_HANDLED;
    }
    new 
iKey[6], iAccessiCallbackszName[32], id2;
    
menu_item_getinfo(menuitemiAccessiKeycharsmax(iKey), szName31iCallback)
    
id2 get_user_index(szName);
    
    
g_Frags[id2] += g_TradeFrags[id];
    
g_Puntos[id2] += g_TradePoints[id];
    
g_Frags[id] -= g_TradeFrags[id];
    
g_Puntos[id] -= g_TradePoints[id];
    
    
g_TradeFrags[id] = 0;
    
g_TradePoints[id] = 0;
    
    return 
PLUGIN_HANDLED;

perdon por bumpear pero alguien me puede ayudar?
Tenes que adaptar todo menos las funciones guardar y demás, es decir no la tenes que reemplazar sino agregar los datos que necesitas guardar/cargar. Desde el mod de gonza obviamente.