tessék írtam bele 1 sql mentést viszont fontos tudni, hogy ez így semmit nem ér egy regrendszer nélkül.
#include <amxmodx>
#include <amxmisc>
#include <sqlx>
#define PLUGIN "HLMOD.Hus Rangok"
#define VERSION "1.0"
#define AUTHOR "ExTraaaa and qKKKJ;>"
new message[192]
new nev[32]
new Temp[192]
static color[10]
new Handle:g_SqlTuple
new Host[] = "mysql host"
new User[] = "mysql felhasznev"
new Pass[] = "mysql jelszo"
new Db[] = "mysql adatbazis neve"
new olesek[33]
new szint[33]
#define ASD 15
//Ha az ASD értéke 15 akkor a szamoknal 15 szám a rangoknál 16 szöveg
new const szamok[ASD] = {
15,
20,
30,
45,
55,
65,
75,
85,
90,
105,
115,
120,
125,
135,
140
}
new const rangok[ASD+1][] = {
"Ăšjonc",
"Lelkes",
"Tag",
"Beavatott",
"Tud valamit",
"Fanatikus",
"Senior Tag",
"Jómunkásember",
"NagyĂşr",
"FĂ©listen",
"Ă–stag",
"Veterán",
"ĹskövĂĽlet",
"Minden6Ăł",
"ISTEN",
"Mindent TudĂł"
}
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("say /rang", "hud")
register_clcmd("say", "sayhook")
register_clcmd("say_team", "tshook")
register_event("DeathMsg", "halal", "a")
makeTuple()
createTable()
}
public hud(id)
{
if(szint[id] != ASD+1)
{
client_print(id, print_chat, "Prefix: %s^nÖlések: %d^nKell még: %d",rangok[szint[id]], olesek[id],szamok[szint[id]]-olesek[id] )
}
else {
client_print(id, print_chat, "Prefix: %s^nÖlések: %d^nKell még: 0",rangok[szint[id]], olesek[id])
}
}
public sayhook(id)
{
read_args (message, 191)
remove_quotes (message)
if (message[0] == '@' || message[0] == '/' || message[0] == '!' || equal (message, ""))
{
return PLUGIN_CONTINUE
}
get_user_name(id, nev, 31)
if(is_user_alive(id)) {
get_user_team(id, color, 9)
formatex(Temp, 191, "^x04[%s] ^x03%s^x01: %s", rangok[szint[id]], nev, message)
}
else {
get_user_team(id, color, 9)
formatex(Temp, 191, "^x04*Halott* [%s] ^x03%s^x01: %s", rangok[szint[id]], nev, message)
}
sendmessage(color)
return PLUGIN_HANDLED
}
public tshook(id)
{
read_args (message, 191)
remove_quotes (message)
if (message[0] == '@' || message[0] == '/' || message[0] == '!' || equal (message, ""))
{
return PLUGIN_CONTINUE
}
get_user_name(id, nev, 31)
new playerTeam = get_user_team(id)
new playerTeamName[19]
switch (playerTeam)
{
case 1: {
copy (playerTeamName, 11, "*Terrorista*")
}
case 2: {
copy (playerTeamName, 18, "*Anti-Terrorista*")
}
default:
copy (playerTeamName, 9, "*Néző*")
}
if(is_user_alive(id))
{
get_user_team(id, color, 9)
formatex(Temp, 191, "^x03(%s) ^x04[%s] ^x03%s^x01: %s",playerTeamName, rangok[szint[id]], nev, message)
}
else
{
get_user_team(id, color, 9)
formatex(Temp, 191, "^x04*Halott* ^x03(%s) ^x04[%s] ^x03%s^x01: %s",playerTeamName, rangok[szint[id]], nev, message)
}
sendtmessage(color, playerTeam)
return PLUGIN_HANDLED
}
public sendmessage(color[])
{
new teamName[10]
for(new player = 1; player < get_maxplayers(); player++)
{
get_user_team (player, teamName, 9)
teamf (player, color)
elkuldes(player, Temp)
teamf(player, teamName)
}
}
public sendtmessage(color[], playerTeam)
{
new teamName[10]
for (new player = 1; player < get_maxplayers(); player++)
{
if(get_user_team(player) == playerTeam)
{
get_user_team (player, teamName, 9)
elkuldes(player, Temp)
teamf (player, teamName)
teamf (player, color)
}
}
}
public teamf(player, team[])
{
message_begin(MSG_ONE, get_user_msgid("TeamInfo"), _, player)
write_byte(player)
write_string(team)
message_end()
}
public elkuldes(player, Temp[])
{
message_begin( MSG_ONE, get_user_msgid( "SayText" ), _, player)
write_byte( player )
write_string( Temp )
message_end()
}
public client_connect(id)
{
LoadData(id)
}
public client_disconnect(id) SaveData(id)
public plugin_end()
{
SQL_FreeHandle(g_SqlTuple)
}
public makeTuple()
{
g_SqlTuple = SQL_MakeDbTuple(Host,User,Pass,Db)
}
public createTable()
{
SQL_ThreadQuery(g_SqlTuple,"createTableThread", "CREATE TABLE IF NOT EXISTS tablaneve (`username` varchar(32), `oles` INT(255), `szint` INT(255))")
}
public createTableThread(FailState,Handle:Query,Error[],Errcode,Data[],DataSize)
{
if(FailState == TQUERY_CONNECT_FAILED)
return set_fail_state("Nem tudtam csatlakozni az adatbazishoz.")
else if(FailState == TQUERY_QUERY_FAILED)
return set_fail_state("query hiba")
if(Errcode)
return log_amx("Hibat dobtam: %s",Error)
return PLUGIN_CONTINUE
}
public SaveData(id)
{
new szTemp[512]
new nev[32]
get_user_name(id, nev, 31)
format(szTemp,charsmax(szTemp),"UPDATE `tablaneve` SET `oles` = '%i', `szint` = '%i WHERE `tablaneve`.`username` = '%s';", olesek[id], szint[id], nev)
SQL_ThreadQuery(g_SqlTuple,"updateTableThread", szTemp)
}
public updateTableThread(FailState,Handle:Query,Error[],Errcode,Data[],DataSize)
{
if(FailState == TQUERY_CONNECT_FAILED)
return set_fail_state("Nem tudtam csatlakozni az adatbazishoz.")
else if(FailState == TQUERY_QUERY_FAILED)
return set_fail_state("query hiba")
if(Errcode)
return log_amx("Hibat dobtam: %s",Error)
return PLUGIN_CONTINUE
}
public updateTableStatsThread(FailState,Handle:Query,Error[],Errcode,Data[],DataSize)
{
if(FailState == TQUERY_CONNECT_FAILED)
return set_fail_state("Nem tudtam letrehozni az adatbazist.")
else if(FailState == TQUERY_QUERY_FAILED)
return set_fail_state("query hiba")
if(Errcode)
return log_amx("Hibat dobtam: %s",Error)
return PLUGIN_CONTINUE
}
public LoadData(id)
{
new name[32]
get_user_name(id, name, 31)
new ErrorCode
new Error[512]
new Handle:SqlConnection = SQL_Connect(g_SqlTuple, ErrorCode, Error, 511)
if(SqlConnection == Empty_Handle)
{
set_fail_state(Error)
}
new Handle:Query = SQL_PrepareQuery(SqlConnection, "SELECT * FROM tablaneve WHERE username='%s'", name)
if(!SQL_Execute(Query))
{
SQL_QueryError(Query, Error, 511)
set_fail_state(Error)
}
new iRowsFound = SQL_NumRows(Query)
if(iRowsFound < 1)
{
olesek[id] = 0;
szint[id] = 0
}
else
{
new oles = SQL_FieldNameToNum(Query, "oles")
new uszint = SQL_FieldNameToNum(Query, "szint")
olesek[id] = SQL_ReadResult(Query, oles)
szint[id] = SQL_ReadResult(Query, uszint)
}
SQL_FreeHandle(Query)
SQL_FreeHandle(SqlConnection)
}
public halal()
{
new killer = read_data(1)
new victim = read_data(2)
if(killer != victim)
olesek[killer]++
while(olesek[killer] >= szamok[szint[killer]])
{
szint[killer]++
}
}