Witam
Tak jak w temacie chciałem zmienić zapis z klasy na nick dla złota oto public
Chodzi mi tylko aby zapisało się samo złoto na nicku a nie na klasie jednej
public SaveXP(id) {
if(g_boolsqlOK) {
if(!is_user_bot(id) && player_xp[id] != player_xp_old[id]) {
new name[48], ip[32], sid[32], q_command[512];
get_user_name(id, name, 47);
get_user_ip(id, ip, 31, 1);
get_user_authid(id, sid, 31);
replace_all(name, 47, "'", "\'");
switch(get_cvar_num("diablo_sql_save")) {
case 0:
{
formatex(q_command,511,"UPDATE `%s` SET `ip`='%s',`sid`='%s',`lvl`='%i',`exp`='%i',`str`='%i',`int`='%i',`dex`='%i',`agi`='%i',`reg`='%i',`obr`='%i',`gra`='%i',`men`='%i',`zlo`='%i' WHERE `nick`='%s' AND `klasa`='%i'",g_sqlTable,ip,sid,player_lvl[id],player_xp[id],player_strength[id],player_intelligence[id],player_dextery[id],player_agility[id],player_regeneracja[id],player_obrazenia[id],player_grawitacja[id],player_men[id],player_zloto[id],name,player_class[id]);
}
case 1:
{
formatex(q_command,511,"UPDATE `%s` SET `nick`='%s',`sid`='%s',`lvl`='%i',`exp`='%i',`str`='%i',`int`='%i',`dex`='%i',`agi`='%i',`reg`='%i',`obr`='%i',`gra`='%i',`men`='%i',`zlo`='%i' WHERE `ip`='%s' AND `klasa`='%i'",g_sqlTable,name,sid,player_lvl[id],player_xp[id],player_strength[id],player_intelligence[id],player_dextery[id],player_agility[id],player_regeneracja[id],player_obrazenia[id],player_grawitacja[id],player_men[id],player_zloto[id],ip,player_class[id])
}
case 2:
{
formatex(q_command,511,"UPDATE `%s` SET `nick`='%s',`ip`='%s',`lvl`='%i',`exp`='%i',`str`='%i',`int`='%i',`dex`='%i',`agi`='%i',`reg`='%i',`obr`='%i',`gra`='%i',`men`='%i',`zlo`='%i' WHERE `sid`='%s' AND `klasa`='%i'",g_sqlTable,name,ip,player_lvl[id],player_xp[id],player_strength[id],player_intelligence[id],player_dextery[id],player_agility[id],player_regeneracja[id],player_obrazenia[id],player_grawitacja[id],player_men[id],player_zloto[id],sid,player_class[id])
}
default:{
formatex(q_command,511,"UPDATE `%s` SET `ip`='%s',`sid`='%s',`lvl`='%i',`exp`='%i',`str`='%i',`int`='%i',`dex`='%i',`agi`='%i' WHERE `nick`='%s' AND `klasa`='%i'",g_sqlTable,ip,sid,player_lvl[id],player_xp[id],player_strength[id],player_intelligence[id],player_dextery[id],player_agility[id],name,player_class[id]);
}
}
SQL_ThreadQuery(g_SqlTuple, "Save_xp_handle", q_command);
player_xp_old[id] = player_xp[id];
}
}
else sql_start();
}
public Save_xp_handle(FailState, Handle:Query, Error[], Errcode, Data[], DataSize) {
if(FailState == TQUERY_CONNECT_FAILED) {
log_to_file("diablo.log", "Could not connect to SQL database.");
return PLUGIN_CONTINUE;
}
if(FailState == TQUERY_QUERY_FAILED) {
log_to_file("diablo.log", "Save_xp Query failed.");
return PLUGIN_CONTINUE;
}
if(Errcode) {
log_to_file("diablo.log", "Error on Save_xp query: %s", Error);
return PLUGIN_CONTINUE;
}
return PLUGIN_CONTINUE;
}
public LoadXP(id, klasa) {
if(is_user_bot(id) || asked_sql[id] || klasa == NONE)
return PLUGIN_HANDLED;
if(g_boolsqlOK) {
new data[2];
data[0] = id;
data[1] = klasa;
new name[48], q_command[512];
switch(get_cvar_num("diablo_sql_save")) {
case 0: {
get_user_name(id, name, 47);
replace_all(name, 47, "'", "\'");
formatex(q_command, 511, "SELECT * FROM `%s` WHERE `nick`='%s' AND `klasa`='%i'", g_sqlTable, name, klasa);
}
case 1: {
get_user_ip(id, name, 31, 1)
formatex(q_command, 511, "SELECT * FROM `%s` WHERE `ip`='%s' AND `klasa`='%i'", g_sqlTable, name, klasa);
}
case 2: {
get_user_authid(id, name, 31)
formatex(q_command, 511, "SELECT * FROM `%s` WHERE `sid`='%s' AND `klasa`='%i'", g_sqlTable, name, klasa);
}
default: {
get_user_name(id, name, 47);
replace_all(name, 47, "'", "\'");
formatex(q_command, 511, "SELECT * FROM `%s` WHERE `nick`='%s' AND `klasa`='%i'", g_sqlTable, name, klasa);
}
}
SQL_ThreadQuery(g_SqlTuple, "Load_xp_handle", q_command, data, 2);
asked_sql[id] = 1;
}
else sql_start();
return PLUGIN_HANDLED;
}
public Load_xp_handle(FailState, Handle:Query, Error[], Errcode, Data[], DataSize) {
new id = Data[0];
asked_sql[id] = 0;
if(FailState == TQUERY_CONNECT_FAILED) {
log_to_file("diablo.log", "Could not connect to SQL database.");
return PLUGIN_CONTINUE;
}
if(FailState == TQUERY_QUERY_FAILED) {
log_to_file("diablo.log", "Load_xp Query failed.");
return PLUGIN_CONTINUE;
}
if(Errcode) {
log_to_file("diablo.log", "Error on Load_xp query: %s", Error);
return PLUGIN_CONTINUE;
}
new klasa = Data[1];
if(SQL_MoreResults(Query)) {
player_class[id] = klasa;
player_lvl[id] = player_class_lvl[id][klasa];
player_xp[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "exp"));
player_xp_old[id] = player_xp[id];
player_intelligence[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "int"));
player_strength[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "str"));
player_agility[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "agi"));
player_regeneracja[id] = SQL_ReadResult(Query,SQL_FieldNameToNum(Query,"reg"));
player_obrazenia[id] = SQL_ReadResult(Query,SQL_FieldNameToNum(Query,"obr"));
player_grawitacja[id] = SQL_ReadResult(Query,SQL_FieldNameToNum(Query,"gra"));
player_men[id] = SQL_ReadResult(Query,SQL_FieldNameToNum(Query,"men"));
player_dextery[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "dex"));
player_zloto[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "zlo"));
player_point[id] = (player_lvl[id]-1)*2-player_intelligence[id]-player_strength[id]-player_dextery[id]-player_agility[id]-player_regeneracja[id]-player_obrazenia[id]-player_grawitacja[id]-player_men[id];
if(player_point[id] < 0) player_point[id] = 0;
player_damreduction[id] = (47.3057*(1.0-floatpower( 2.7182, -0.06798*float(player_agility[id])))/100);
}
else
create_klass(id, klasa);
return PLUGIN_CONTINUE;
}
public LoadAVG()
{
if(g_boolsqlOK)
{
new data[2]
data[0]= get_cvar_num("diablo_avg")
if(data[0])
{
for(new i=1;i<15;i++)
{
new q_command[512]
data[1]=i
//format(q_command,511,"SELECT AVG(`lvl`) FROM `%s` WHERE `lvl` > '%d' AND `klasa`='%d'", g_sqlTable, data[0]-1,i)
format(q_command,511,"SELECT `klasa`,AVG(`lvl`) AS `AVG` FROM `%s` WHERE `lvl` > '%d' GROUP BY `klasa`", g_sqlTable, data[0]-1)
SQL_ThreadQuery(g_SqlTuple,"Load_AVG_handle",q_command,data,2)
}
}
}
else sql_start()
return PLUGIN_HANDLED
}
public Load_AVG_handle(FailState,Handle:Query,Error[],Errcode,Data[],DataSize)
{
if(Errcode)
{
log_to_file("addons/amxmodx/logs/diablo.log","Error on Load_AVG query: %s",Error)
}
if(FailState == TQUERY_CONNECT_FAILED)
{
log_to_file("addons/amxmodx/logs/diablo.log","Could not connect to SQL database.")
return PLUGIN_CONTINUE
}
else if(FailState == TQUERY_QUERY_FAILED)
{
log_to_file("addons/amxmodx/logs/diablo.log","Load_AVG Query failed.")
return PLUGIN_CONTINUE
}
/*
if(SQL_MoreResults(Query))
{
new Float: avg
SQL_ReadResult(Query, 0, avg)
srv_avg[Data[1]]=floatround(avg)
//client_print(0,print_chat,"srednia: %f",srv_avg)
}*/
while(SQL_MoreResults(Query))
{
new i = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "klasa"))
srv_avg[i] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "AVG"))
SQL_NextRow(Query)
}
if(olny_one_time==0)
{
olny_one_time=1
look_for_none()
}
return PLUGIN_CONTINUE
}


Dodatki SourceMod



Temat jest zamknięty









