28/03/2015, 01:23 AM
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.
y bueno para que carguen aqui.
Código PHP:
public Guardar(id)
{
if (p_status[id] != STATUS_LOGED) return
static query[1024], data[1]; data[0] = id
formatex(query, charsmax(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", query, data, 1)
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_query, 0)
p_rango[id] = SQL_ReadResult(g_query, 1)
p_class[id] = SQL_ReadResult(g_query, 2)
p_points[id] = SQL_ReadResult(g_query, 3)
p_exp[id][EXP_NORMAL] = SQL_ReadResult(g_query, 4)
p_exp[id][EXP_LEVEL] = SQL_ReadResult(g_query, 5)
p_plata[id] = SQL_ReadResult(g_query, 6)
p_monedas[id] = SQL_ReadResult(g_query, 7)
make_Money(id, p_plata[id], 1)
SQL_ReadResult(g_query, 8, Clan[id], 41);
Membresia[id] = SQL_ReadResult(g_query, 9);
}
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(PLUGIN, VERSION, "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_prefix, prefix, 99)
return prefix;
}
/*=====Clanes=====*/
public CreateClan(id)
{
new menu, Caract[75];
formatex(Caract, charsmax(Caract), "\yClan: \r%s^n\yEstado Civil: \r%s", Membresia[id] > 1? Clan[id] : "Desconocido", Membresia[id] == 1? "Sin Clan" : Membresia[id] == 2? "Miembro" : "Fundador")
menu = menu_create(Caract, "handClan")
if ( Membresia[id] == 1 )
{
menu_additem(menu, "Crear Clan", "1");
menu_additem(menu, "Unirse a un Clan", "2");
}
else if ( Membresia[id] == 2 || Membresia[id] == 3 )
{
menu_additem(menu, "Enviar Frags/Puntos", "1");
menu_additem(menu, "\rSalir del Clan", "2");
}
menu_setprop(menu, MPROP_EXITNAME, "\rMenu Principal")
menu_display(id, menu, 0)
}
public handClan(id, menu, item)
{
if ( MENU_EXIT == item ) {
menu_destroy(menu)
MenuPrincipal(id)
return PLUGIN_HANDLED;
}
if ( Membresia[id] == 1 )
{
switch(item)
{
case 0: client_cmd(id, "messagemode CLAN");
case 1: MenuClanes(id);
}
}
else if ( Membresia[id] == 2 || Membresia[id] == 3 )
{
switch(item)
{
case 0:
{
new ClanPlayers[33], count;
for ( new i = 1;i <= gMaxPlayers;i++ )
{
if ( is_user_connected(i) && i != id && equal(Clan[i], Clan[id]) )
{
ClanPlayers[i] = 1;
count++
}
}
if ( count < 1 )
{
ColorChat(id, GREEN, "%s^x01 No hay ningun miembro de tu clan online.", get_prefix());
return PLUGIN_HANDLED;
}
InterMenu(id);
}
case 1:
{
if ( Membresia[id] == 3 )
{
//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] == 2 )
{
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))
//{
ColorChat( id, GREEN, "^x04%s^x01 Tu Clan ah sido creado correctamente.", get_prefix() );
set_hudmessage(200, 100, 0)
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 i = 1;i <= gMaxPlayers;i++ )
{
if ( Membresia[i] == 3 )
count++;
}
if ( count < 1 )
{
ColorChat(id, GREEN, "%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 i = 1;i < gMaxPlayers;i++ )
{
if (is_user_connected(i) && Membresia[i] == 3)
{
num_to_str(i, temp, 2)
formatex(Caract, charsmax(Caract), "%s \r|| Fundador\y: \w%s", Clan[i], g_Name[i]);
menu_additem(menu, Clan[i], temp)
}
}
menu_display(id, menu, 0)
return PLUGIN_HANDLED;
}
public handUnirse(id, menu, item)
{
if(item == MENU_EXIT) {
menu_destroy(menu)
return PLUGIN_HANDLED;
}
new iKey[6], iAccess, iCallback, id2;
menu_item_getinfo(menu, item, iAccess, iKey, charsmax(iKey), _, _, iCallback)
id2 = str_to_num(iKey);
if (is_user_connected(id2))
MenuSolicitud(id2, id)
else client_print(id, print_center, "El fundador no esta conectado.");
menu_destroy(menu)
return PLUGIN_HANDLED;
}
public MenuSolicitud(solicited, soliciter)
{
set_task(12.0, "taskSolicitud", soliciter+TASKID_SOLICITUD);
new Caract[50], szName[32], temp[2];
get_user_name(soliciter, szName, 31)
formatex(Caract, charsmax(Caract), "\rSolicitud de unirse al clan de \y%s", szName)
num_to_str(soliciter, temp, 2);
g_Solicitud = menu_create(Caract, "handSolicitud")
menu_additem(g_Solicitud, "Aceptar", temp);
menu_additem(g_Solicitud, "Rechazar", temp);
menu_setprop(g_Solicitud, MPROP_EXIT, MEXIT_NEVER)
menu_display(solicited, g_Solicitud, 0)
}
public taskSolicitud(id)
{
id -= TASKID_SOLICITUD;
menu_destroy(g_Solicitud)
ColorChat(id, GREEN, "%s^x01 Tu solisitud no fue respondida a tiempo.", get_prefix())
}
public handSolicitud(id, menu, item) {
new iKey[6], iAccess, iCallback, id2;
menu_item_getinfo(menu, item, iAccess, iKey, charsmax(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(0, NORMAL, "%s^x04 se unio al Clan^x01 %s^x04 fundador:^x01 %s", g_Name[id2], Clan[id], g_Name[id]);
}
case 1: ColorChat(id2, NORMAL, "%s^x04 rechazo tu peticion de clan.", g_Name[id]);
}
}
public InterMenu(id)
{
new Caract[70], menu = menu_create("\rEnviar:", "handEnvios");
formatex(Caract, charsmax(Caract), "Puntos: \r%i", g_TradePoints[id])
menu_additem(menu, Caract, "1");
formatex(Caract, charsmax(Caract), "Frags: \r%i^n^n", g_TradeFrags[id])
menu_additem(menu, Caract, "2");
menu_additem(menu, "\yEnviar", "3");
menu_setprop(menu, MPROP_EXITNAME, "\rClan Menu");
menu_display(id, menu, 0);
}
public handEnvios(id, menu, item)
{
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] < 1 && g_TradePoints[id] < 1 )
ColorChat(id, GREEN, "%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_args( cantidad, charsmax( cantidad ) );
remove_quotes( cantidad );
trim( cantidad );
g_TradePoints[id] = str_to_num(cantidad);
if ( g_TradePoints[id] > g_Puntos[id] ) {
ColorChat(id, GREEN, "%s No tienes los puntos suficientes para enviar.", get_prefix())
g_TradePoints[id] = 0;
}
InterMenu(id);
}
public addTradeFrags(id)
{
new cantidad[10];
read_args( cantidad, charsmax( cantidad ) );
remove_quotes( cantidad );
trim( cantidad );
g_TradeFrags[id] = str_to_num(cantidad);
if ( g_TradeFrags[id] > g_Frags[id] ) {
ColorChat(id, GREEN, "%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 i = 1;i <= gMaxPlayers;i++ )
{
if ( is_user_connected(i) && i != id && equal(Clan[i], Clan[id]) )
{
num_to_str(i, temp, 2)
menu_additem(menu, g_Name[i], temp)
}
}
menu_display(id, menu, 0)
return PLUGIN_HANDLED;
}
public handIntercambio(id, menu, item)
{
if (item == MENU_EXIT)
{
CreateClan(id);
menu_destroy(menu);
return PLUGIN_HANDLED;
}
new iKey[6], iAccess, iCallback, szName[32], id2;
menu_item_getinfo(menu, item, iAccess, iKey, charsmax(iKey), szName, 31, iCallback)
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;
}