-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmonic.sma
More file actions
126 lines (116 loc) · 3.83 KB
/
monic.sma
File metadata and controls
126 lines (116 loc) · 3.83 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
#include <amxmodx>
#include <sqlx>
#define PLUGIN "monic"
#define VERSION "1.2"
#define AUTHOR "lee"
//Database Handles
new Handle:g_dbt
//pcvar
new g_monic_host,g_monic_login,g_monic_pass,g_monic_bdname,g_monic_table,g_monic_noround
//g_var
new table[32]
new map[32]
new global_query[5600]
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_event("SendAudio","main_exec","a","2=%!MRAD_terwin","2=%!MRAD_ctwin","2=%!MRAD_rounddraw")
g_monic_noround=register_cvar("monic_noround", "0")
g_monic_host=register_cvar("monic_host", "")
g_monic_login=register_cvar("monic_login", "")
g_monic_pass=register_cvar("monic_pass", "")
g_monic_bdname=register_cvar("monic_bdname", "")
g_monic_table=register_cvar("monic_table", "")
set_task(3.0,"init_db")
}
public init_db()
{
new host[32],login[32],pass[32],bdname[32]
new noround;
noround = get_pcvar_num(g_monic_noround);
get_pcvar_string(g_monic_host,host,31)
get_pcvar_string(g_monic_login,login,31)
get_pcvar_string(g_monic_pass,pass,31)
get_pcvar_string(g_monic_bdname,bdname,31)
get_pcvar_string(g_monic_table,table,31)
g_dbt = SQL_MakeDbTuple(host, login, pass, bdname)
set_task(20.0,"main_exec");
if(noround == 1)
{
set_task(180.0,"main_exec",_,_,_,"b");
log_amx("[MONIC] noround detected =>> %d",noround);
}
return PLUGIN_CONTINUE
//set_task ( Float:time, const function[], id = 0, parameter[]="", len = 0, flags[]="", repeat = 0 )
}
public main_exec()
{
get_mapname(map,31)
formatex( global_query, charsmax( global_query ), "TRUNCATE TABLE `%s`;INSERT INTO `%s` (`map`) VALUES ('%s')",table,table,map)
new online=get_playersnum()
//log_amx("online = %d",online)
if (online == 0 )
{
SQL_ThreadQuery(g_dbt,"QueryHandler",global_query)
return PLUGIN_HANDLED
}
new add_temp[256]
formatex( add_temp, charsmax( add_temp ), ";INSERT INTO `%s` (`name`,`sid`,`frag`, `team`) VALUES ",table)
add(global_query,charsmax( global_query ),add_temp)
new Players[32]
new Count, i
new name[32][40],sid[32][40],frag[32],tm[32]
get_players(Players, Count, "h")
if( Count == 1 ) //åñëè îäèí èãðîê
{
get_user_name(Players[0],name[0],36)
trim(name[0])
replace_all(name[0],40,"'","ap1")
replace_all(name[0],40,"`","ap2")
frag[0]=get_user_frags(Players[0])
get_user_authid(Players[i],sid[0],36)
tm[0]=get_user_team(Players[0])
new buffer[256]
formatex( buffer, charsmax( buffer ), "('%s','%s',%d, %d)",name[0],sid[0],frag[0], tm[0])
add(global_query,charsmax( global_query ),buffer)
SQL_ThreadQuery(g_dbt,"QueryHandler",global_query)
return PLUGIN_HANDLED
}
else //åñëè áîëüøå îäíîãî
{
for (i=0; i<Count; i++)
{
//log_amx("global_query number %d -> %s",i, global_query)
new buffer[256]
get_user_name(Players[i],name[i],36)
trim(name[i])
replace_all(name[i],40,"'","ap1")
replace_all(name[i],40,"`","ap2")
frag[i]=get_user_frags(Players[i])
get_user_authid(Players[i],sid[i],36)
tm[i]=get_user_team(Players[i])
formatex( buffer, charsmax( buffer ), "('%s','%s',%d, %d)",name[i],sid[i],frag[i], tm[i])
//log_amx("buffer number %d -> %s",i,buffer)
if ((i+1)!=Count) add(buffer,charsmax( buffer ),",")
add(global_query,charsmax( global_query ),buffer)
}
SQL_ThreadQuery(g_dbt,"QueryHandler",global_query)
//log_amx("global_query in the end -> %s", global_query)
}
return PLUGIN_HANDLED
}
public QueryHandler(failstate, Handle:query, error[], errnum, data[], size, Float:queuetime)
{
log_amx(" -->query seconds %f",queuetime)
if (failstate)
{
log_amx(" --> Error code: %d (Message: ^"%s^")", errnum, error)
new querystring[1024]
SQL_GetQueryString(query, querystring, 1023)
log_amx(" --> Original query: %s", querystring)
}
}
public plugin_end()
{
SQL_FreeHandle(g_dbt)
}