Żeby to miało jakiś sens proponuję dorobić do tego sklep
Kod w "znajdź" oparty jest na czystej wersji bez dodatków
Zapis MySQL
Dodanie zmiennej:
Spoiler
znajdź:
dodaj pod:
new player_class[33]
dodaj pod:
new player_pkt[33]
Tworzenie komórek w tabeli:
Spoiler
znajdź:
zamień na:
format(q_command,511,"CREATE TABLE IF NOT EXISTS `%s` ( `nick` VARCHAR( 64 ),`ip` VARCHAR( 64 ),`sid` VARCHAR( 64 ), `klasa` integer( 2 ) , `lvl` integer( 3 ) DEFAULT 1, `exp` integer( 9 ) DEFAULT 0, `str` integer( 3 ) DEFAULT 0, `int` integer( 3 ) DEFAULT 0, `dex` integer( 3 ) DEFAULT 0, `agi` integer( 3 ) DEFAULT 0 ) ",g_sqlTable)
zamień na:
format(q_command,511,"CREATE TABLE IF NOT EXISTS `%s` ( `nick` VARCHAR( 64 ),`ip` VARCHAR( 64 ),`sid` VARCHAR( 64 ), `klasa` integer( 2 ) , `lvl` integer( 3 ) DEFAULT 1, `exp` integer( 9 ) DEFAULT 0, `str` integer( 3 ) DEFAULT 0, `int` integer( 3 ) DEFAULT 0, `dex` integer( 3 ) DEFAULT 0, `agi` integer( 3 ) DEFAULT 0, `pkt` integer( 4 ) DEFAULT 0 ) ",g_sqlTable)
Zapis:
Spoiler
znajdź:
zmień na:
public SaveXP(id)
{
if(g_boolsqlOK)
{
if(!is_user_bot(id) && player_xp[id]!=player_xp_old[id])
{
new name[64]
new ip[64]
new sid[64]
get_user_name(id,name,63)
replace_all ( name, 63, "'", "Q" )
replace_all ( name, 63, "`", "Q" )
get_user_ip(id, ip ,63,1)
get_user_authid(id, sid ,63)
if(get_cvar_num("diablo_sql_save")==0)
{
new q_command[512]
format(q_command,511,"UPDATE `%s` SET `ip`='%s',`sid`='%s',`lvl`='%i',`exp`='%i',`str`='%i',`int`='%i',`dex`='%i',`agi`='%i' WHERE `sid`='%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)
}
else if(get_cvar_num("diablo_sql_save")==1)
{
new q_command[512]
format(q_command,511,"UPDATE `%s` SET `nick`='%s',`sid`='%s',`lvl`='%i',`exp`='%i',`str`='%i',`int`='%i',`dex`='%i',`agi`='%i' WHERE `sid`='%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],ip,player_class[id])
SQL_ThreadQuery(g_SqlTuple,"Save_xp_handle",q_command)
}
else if(get_cvar_num("diablo_sql_save")==2)
{
new q_command[512]
format(q_command,511,"UPDATE `%s` SET `nick`='%s',`ip`='%s',`lvl`='%i',`exp`='%i',`str`='%i',`int`='%i',`dex`='%i',`agi`='%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],sid,player_class[id])
SQL_ThreadQuery(g_SqlTuple,"Save_xp_handle",q_command)
}
player_xp_old[id]=player_xp[id]
}
}
else sql_start()
return PLUGIN_HANDLED
}
zmień na:
public SaveXP(id)
{
if(g_boolsqlOK)
{
if(!is_user_bot(id) && player_xp[id]!=player_xp_old[id])
{
new name[64]
new ip[64]
new sid[64]
get_user_name(id,name,63)
replace_all ( name, 63, "'", "Q" )
replace_all ( name, 63, "`", "Q" )
get_user_ip(id, ip ,63,1)
get_user_authid(id, sid ,63)
if(get_cvar_num("diablo_sql_save")==0)
{
new q_command[512]
format(q_command,511,"UPDATE `%s` SET `ip`='%s',`sid`='%s',`lvl`='%i',`exp`='%i',`str`='%i',`int`='%i',`dex`='%i',`agi`='%i',`pkt`='%i' WHERE `sid`='%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_pkt[id],name,player_class[id])
SQL_ThreadQuery(g_SqlTuple,"Save_xp_handle",q_command)
}
else if(get_cvar_num("diablo_sql_save")==1)
{
new q_command[512]
format(q_command,511,"UPDATE `%s` SET `nick`='%s',`sid`='%s',`lvl`='%i',`exp`='%i',`str`='%i',`int`='%i',`dex`='%i',`agi`='%i',`pkt`='%i' WHERE `sid`='%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_pkt[id],ip,player_class[id])
SQL_ThreadQuery(g_SqlTuple,"Save_xp_handle",q_command)
}
else if(get_cvar_num("diablo_sql_save")==2)
{
new q_command[512]
format(q_command,511,"UPDATE `%s` SET `nick`='%s',`ip`='%s',`lvl`='%i',`exp`='%i',`str`='%i',`int`='%i',`dex`='%i',`agi`='%i',`pkt`='%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_pkt[id],sid,player_class[id])
SQL_ThreadQuery(g_SqlTuple,"Save_xp_handle",q_command)
}
player_xp_old[id]=player_xp[id]
}
}
else sql_start()
return PLUGIN_HANDLED
}
Odczyt z tabeli:
Spoiler
Znajdź:
dodaj pod:
player_dextery[id] = SQL_ReadResult(Query,SQL_FieldNameToNum(Query,"dex"))
dodaj pod:
player_pkt[id] = SQL_ReadResult(Query,SQL_FieldNameToNum(Query,"pkt"))
Dodanie 1 pkt po zabiciu:
Spoiler
public DeathMsg(id)
Znajdź:
Zamień na:
Znajdź:
[if (is_user_connected(kid) && is_user_connected(vid) && get_user_team(kid) != get_user_team(vid))
{
show_deadmessage(kid,vid,headshot,weaponname)
award_item(kid,0)
award_kill(kid,vid)
add_respawn_bonus(vid)
add_bonus_explode(vid)
add_barbarian_bonus(kid)
if (player_class[kid] == Barbarzynca)
refill_ammo(kid)
set_renderchange(kid)
savexpcom(vid)
}
Zamień na:
if (is_user_connected(kid) && is_user_connected(vid) && get_user_team(kid) != get_user_team(vid))
{
show_deadmessage(kid,vid,headshot,weaponname)
award_item(kid,0)
award_kill(kid,vid)
add_respawn_bonus(vid)
add_bonus_explode(vid)
add_barbarian_bonus(kid)
if (player_class[kid] == Barbarzynca)
refill_ammo(kid)
set_renderchange(kid)
player_pkt[kid]+=1
savexpcom(vid)
}
Hud z ilością PKT:
Spoiler
Znajdź:
Nad ostatnią klamrą wklej:
public write_hud(id)
Nad ostatnią klamrą wklej:
new Msg123[512]
set_hudmessage(255, 255, 255, -1.0, 0.85, 0, 6.0, 3.0)
format(Msg123,511,"Punkty: %i", player_pkt[id])
show_hudmessage(id, Msg123)
Możliwe że o czymś zapomniałem, bo jest późno i chce mi się spać -.-
Jako że Wy na początku pomagaliście mi, to ja postanowiłem zrobić coś dla Was
Sklep by KariiO:
Kliknij , aby podziękować KariiO
Spoiler
Standardowy sklep używa funkcji od pobierania takiej:
Nowy sklep za np. punkty:
I zamiast tego w norm. sklepie:
Dajemy to:
Standardowy sklep używa funkcji od pobierania takiej:
public bool:UTIL_Buyformoney(id,amount)
{
if (cs_get_user_money(id) >= amount)
{
cs_set_user_money(id,cs_get_user_money(id)-amount)
return true
}
else
{
hudmsg(id,2.0,"Nie masz tyle zlota !")
return false
}
return false
}
Nowy sklep za np. punkty:
public UTIL_Buyforpkt(id,amount)
{
if (player_pkt[id] >= amount)
{
player_pkt[id]-=amount
return true
}
else
{
hudmsg(id,2.0,"Nie masz tyle zlota !")
return false
}
return false
}
I zamiast tego w norm. sklepie:
if (!UTIL_Buyformoney(id,9000))
Dajemy to:
if (!UTIL_Buyforpkt(id,ilosc))
Użytkownik G[o]Q edytował ten post 22.04.2011 00:01