· 9 years ago · Feb 20, 2017, 02:20 AM
1script options:
2 $ db url jdbc:mysql://vps.cyburgh.net:3306/testserver
3 $ db username pvpserver
4 $ db password 20PvpServerCyburgh17
5
6options:
7 table_prefix: Stats_
8 refresh: 300
9
10On load:
11 if {Stats-Reloader} is set:
12 set {_period} to difference between {Stats-Reload-sec} and now
13 send "&9SkStats >> &7The skript have been reload in &a%{_period}%" to {Stats-Reloader}
14 clear {Stats-Reloader}
15command /stats [<text=help>] [<text>]:
16 permission: SkStats.commands.player
17 trigger:
18 if arg-1 is "help":
19 send "&9&lâ•”&3&lâ•&9&lâ•&3&lâ•&9&lâ•&3&lâ•&9&lâ•&3&lâ•&9&lâ•&3&lâ•&9&lâ•&3&lâ•&9&lâ•&9&l[ &6&lStats &9&l]&9&lâ•&3&lâ•&9&lâ•&3&lâ•&9&lâ•&3&lâ•&9&lâ•&3&lâ•&9&lâ•&3&lâ•&9&lâ•&3&lâ•&9&lâ•—"
20 send " &bPlayer commands:"
21 send " &9/Stats Check &7Check your stats"
22 send " &9/Stats Player <Player> &7Check stats of player"
23 send " &9/Stats top <Type>&7 Check the top player"
24 if player have permission "SkStats.commands.admin":
25 send " &cAdmin commands:"
26 send " &9/Stats Purge &7Purge the mysql and variable stats"
27 send " &9/Stats Sync &7Sync the stats with the database"
28 send " &9/Stats Reload &7Reload the skript"
29 if arg-1 is "check":
30 send "&9&lâ•”&3&lâ•&9&lâ•&3&lâ•&9&lâ•&3&lâ•&9&lâ•&3&lâ•&9&lâ•&3&lâ•&9&lâ•&3&lâ•&9&lâ•&9&l[ &6&lStats &9&l]&9&lâ•&3&lâ•&9&lâ•&3&lâ•&9&lâ•&3&lâ•&9&lâ•&3&lâ•&9&lâ•&3&lâ•&9&lâ•&3&lâ•&9&lâ•—"
31 send " &bYour stats:"
32 send " &3First join: &7%{newfirstjoin-%player%}%"
33 send " &3Kills: &7%{newkills-%player%}%"
34 send " &3Deaths: &7%{newdeaths-%player%}%"
35 send " &3Projectile shoot: &7%{newshoot-%player%}%"
36 send " &3Kills with bow: &7%{newkillsbow-%player%}%"
37 send " &3Block destroyed: &7%{newbreak-%player%}%"
38 send " &3Block placed: &7%{newplace-%player%}%"
39 send " &3Messages: &7%{newmessages-%player%}%"
40 send " &3Commands: &7%{newcommands-%player%}%"
41 send " &3Meter walk: &7%{newwalk-%player%}%"
42 if arg 1 is "reload":
43 set {Stats-Reload-sec} to now
44 set {Stats-Reloader} to player
45 make console execute command "/skript reload SkStats"
46 if arg-1 is "player":
47 if arg-2 is not set:
48 send "&9SkStats >> &cYou don't have specified the username of player !"
49 else:
50 if {firstjoin-%arg-2%} is not set:
51 send "&9SkStats >> &cThe player has never join the server !"
52 else:
53 send "&9&lâ•”&3&lâ•&9&lâ•&3&lâ•&9&lâ•&3&lâ•&9&lâ•&3&lâ•&9&lâ•&3&lâ•&9&lâ•&3&lâ•&9&lâ•&9&l[ &6&lStats &9&l]&9&lâ•&3&lâ•&9&lâ•&3&lâ•&9&lâ•&3&lâ•&9&lâ•&3&lâ•&9&lâ•&3&lâ•&9&lâ•&3&lâ•&9&lâ•—"
54 send " &bPlayer: &7%arg-2%"
55 send " &3First join: &7%{firstjoin-%arg-2%}%"
56 send " &3Kills: &7%{kills-%arg-2%}%"
57 send " &3Deaths: &7%{deaths-%arg-2%}%"
58 send " &3Projectile shoot: &7%{shoot-%arg-2%}%"
59 send " &3Kills with bow:&7 %{killsbow-%arg-2%}%"
60 send " &3Block destroyed: &7%{break-%arg-2%}%"
61 send " &3Block placed:&7 %{place-%arg-2%}%"
62 send " &3Messages: &7%{messages-%arg-2%}%"
63 send " &3Commands: &7%{commands-%arg-2%}%"
64 send " &3Meter walk: &7%{walk-%arg-2%}%"
65 if arg-1 is "purge":
66 if player have permission "SkStats.commands.purge":
67 loop {statslistplayer::*}:
68 set {deaths-%loop-value%} to 0
69 set {kills-%loop-value%} to 0
70 set {break-%loop-value%} to 0
71 set {place-%loop-value%} to 0
72 set {killsbow-%loop-value%} to 0
73 set {shoot-%loop-value%} to 0
74 set {walk-%loop-value%} to 0
75 set {messages-%loop-value%} to 0
76 set {commands-%loop-value%} to 0
77 set {newdeaths-%loop-value%} to 0
78 set {newkills-%loop-value%} to 0
79 set {newbreak-%loop-value%} to 0
80 set {newplace-%loop-value%} to 0
81 set {newkillsbow-%loop-value%} to 0
82 set {newshoot-%loop-value%} to 0
83 set {newwalk-%loop-value%} to 0
84 set {newmessages-%loop-value%} to 0
85 set {newcommands-%loop-value%} to 0
86 update "TRUNCATE TABLE `{@table_prefix}Player`"
87 if arg-1 is "sync":
88 if player have permission "SkStats.commands.sync":
89 loop all players:
90 update "UPDATE `{@table_prefix}Player` SET `{@table_prefix}Player`.`Deaths` = `Deaths`+%{deaths-%loop-player%}% WHERE `{@table_prefix}Player`.`Player` = '%loop-player%'"
91 update "UPDATE `{@table_prefix}Player` SET `{@table_prefix}Player`.`Kills` = `Kills`+%{kills-%loop-player%}% WHERE `Player`.`{@table_prefix}Player` = '%loop-player%'"
92 update "UPDATE `{@table_prefix}Player` SET `{@table_prefix}Player`.`Breaks` = `Breaks`+%{break-%loop-player%}% WHERE `{@table_prefix}Player`.`Player` = '%loop-player%'"
93 update "UPDATE `{@table_prefix}Player` SET `{@table_prefix}Player`.`Placed` = `Placed`+%{place-%loop-player%}% WHERE `{@table_prefix}Player`.`Player` = '%loop-player%'"
94 update "UPDATE `{@table_prefix}Player` SET `{@table_prefix}Player`.`BowKills` = `BowKills`+%{killsbow-%loop-player%}% WHERE `{@table_prefix}Player`.`Player` = '%loop-player%'"
95 update "UPDATE `{@table_prefix}Player` SET `{@table_prefix}Player`.`Shoot` = `Shoot`+%{shoot-%loop-player%}% WHERE `{@table_prefix}Player`.`Player` = '%loop-player%'"
96 update "UPDATE `{@table_prefix}Player` SET `{@table_prefix}Player`.`Walk` = `Walk`+%{walk-%loop-player%}% WHERE `{@table_prefix}Player`.`Player` = '%loop-player%'"
97 update "UPDATE `{@table_prefix}Player` SET `{@table_prefix}Player`.`Messages` = `Messages`+%{messages-%loop-player%}% WHERE `{@table_prefix}Player`.`Player` = '%loop-player%'"
98 update "UPDATE `{@table_prefix}Player` SET `{@table_prefix}Player`.`Commands` = `Commands`+%{commands-%loop-player%}% WHERE `{@table_prefix}Player`.`Player` = '%loop-player%'"
99 set {newdeaths-%loop-player%} to {newdeaths-%loop-player%} + {deaths-%loop-player%}
100 set {newkills-%loop-player%} to {newkills-%loop-player%} + {kills-%loop-player%}
101 set {newbreak-%loop-player%} to {newbreak-%loop-player%} + {break-%loop-player%}
102 set {newplace-%loop-player%} to {newplace-%loop-player%} + {place-%loop-player%}
103 set {newkillsbow-%loop-player%} to {newkillsbow-%loop-player%} + {killsbow-%loop-player%}
104 set {newshoot-%loop-player%} to {newshoot-%loop-player%} + {shoot-%loop-player%}
105 set {newwalk-%loop-player%} to {newwalk-%loop-player%} + {walk-%loop-player%}
106 set {newmessages-%loop-player%} to {newmessages-%loop-player%} + {messages-%loop-player%}
107 set {newcommands-%loop-player%} to {newcommands-%loop-player%} + {commands-%loop-player%}
108 set {deaths-%loop-player%} to 0
109 set {kills-%loop-player%} to 0
110 set {break-%loop-player%} to 0
111 set {place-%loop-player%} to 0
112 set {killsbow-%loop-player%} to 0
113 set {shoot-%loop-player%} to 0
114 set {walk-%loop-player%} to 0
115 set {messages-%loop-player%} to 0
116 set {commands-%loop-player%} to 0
117 send "&9SkStats >> &aThe stats have been synced with the mysql database"
118 if arg-1 is "top":
119 if arg-2 is not set:
120 send "&9SkStats >> &cYou don't have selected the top type &7(&eKills&7,&eDeaths&7,&eBreaks&7,&ePlaced&7,&eBowKills&7,&eShoot&7,&eWalk&7,&eMessages&7,&eCommands&7)"
121 else if arg-2 is not "kills" or "deaths" or "breaks" or "placed" or "bowkills" or "shoot" or "walk" or "messages" or "commands":
122 send "&9SkStats >> &cYou don't have selected the good top type &7(&eKills&7,&eDeaths&7,&eBreaks&7,&ePlaced&7,&eBowKills&7,&eShoot&7,&eWalk&7,&eMessages&7,&eCommands&7)"
123 else:
124 set {_stats0::*} to objects in column "Player" from result of query "SELECT * FROM `{@table_prefix}Player` ORDER BY `%arg-2%` DESC LIMIT 1 OFFSET 0"
125 set {_stats1::*} to objects in column "Player" from result of query "SELECT * FROM `{@table_prefix}Player` ORDER BY `%arg-2%` DESC LIMIT 1 OFFSET 1"
126 set {_stats2::*} to objects in column "Player" from result of query "SELECT * FROM `{@table_prefix}Player` ORDER BY `%arg-2%` DESC LIMIT 1 OFFSET 2"
127 set {_stats3::*} to objects in column "Player" from result of query "SELECT * FROM `{@table_prefix}Player` ORDER BY `%arg-2%` DESC LIMIT 1 OFFSET 3"
128 set {_stats4::*} to objects in column "Player" from result of query "SELECT * FROM `{@table_prefix}Player` ORDER BY `%arg-2%` DESC LIMIT 1 OFFSET 4"
129 set {_stats5::*} to objects in column "Player" from result of query "SELECT * FROM `{@table_prefix}Player` ORDER BY `%arg-2%` DESC LIMIT 1 OFFSET 5"
130 set {_stats6::*} to objects in column "Player" from result of query "SELECT * FROM `{@table_prefix}Player` ORDER BY `%arg-2%` DESC LIMIT 1 OFFSET 6"
131 set {_stats7::*} to objects in column "Player" from result of query "SELECT * FROM `{@table_prefix}Player` ORDER BY `%arg-2%` DESC LIMIT 1 OFFSET 7"
132 set {_stats8::*} to objects in column "Player" from result of query "SELECT * FROM `{@table_prefix}Player` ORDER BY `%arg-2%` DESC LIMIT 1 OFFSET 8"
133 set {_stats9::*} to objects in column "Player" from result of query "SELECT * FROM `{@table_prefix}Player` ORDER BY `%arg-2%` DESC LIMIT 1 OFFSET 9"
134 set {_statsn0::*} to objects in column "%arg-2%" from result of query "SELECT * FROM `{@table_prefix}Player` ORDER BY `%arg-2%` DESC LIMIT 1 OFFSET 0"
135 set {_statsn1::*} to objects in column "%arg-2%" from result of query "SELECT * FROM `{@table_prefix}Player` ORDER BY `%arg-2%` DESC LIMIT 1 OFFSET 1"
136 set {_statsn2::*} to objects in column "%arg-2%" from result of query "SELECT * FROM `{@table_prefix}Player` ORDER BY `%arg-2%` DESC LIMIT 1 OFFSET 2"
137 set {_statsn3::*} to objects in column "%arg-2%" from result of query "SELECT * FROM `{@table_prefix}Player` ORDER BY `%arg-2%` DESC LIMIT 1 OFFSET 3"
138 set {_statsn4::*} to objects in column "%arg-2%" from result of query "SELECT * FROM `{@table_prefix}Player` ORDER BY `%arg-2%` DESC LIMIT 1 OFFSET 4"
139 set {_statsn5::*} to objects in column "%arg-2%" from result of query "SELECT * FROM `{@table_prefix}Player` ORDER BY `%arg-2%` DESC LIMIT 1 OFFSET 5"
140 set {_statsn6::*} to objects in column "%arg-2%" from result of query "SELECT * FROM `{@table_prefix}Player` ORDER BY `%arg-2%` DESC LIMIT 1 OFFSET 6"
141 set {_statsn7::*} to objects in column "%arg-2%" from result of query "SELECT * FROM `{@table_prefix}Player` ORDER BY `%arg-2%` DESC LIMIT 1 OFFSET 7"
142 set {_statsn8::*} to objects in column "%arg-2%" from result of query "SELECT * FROM `{@table_prefix}Player` ORDER BY `%arg-2%` DESC LIMIT 1 OFFSET 8"
143 set {_statsn9::*} to objects in column "%arg-2%" from result of query "SELECT * FROM `{@table_prefix}Player` ORDER BY `%arg-2%` DESC LIMIT 1 OFFSET 9"
144 send "&9&lâ•”&3&lâ•&9&lâ•&3&lâ•&9&lâ•&3&lâ•&9&lâ•&3&lâ•&9&lâ•&3&lâ•&9&lâ•&3&lâ•&9&l[ &6&lTop %arg-2% &9&l]&3&lâ•&9&lâ•&3&lâ•&9&lâ•&3&lâ•&9&lâ•&3&lâ•&9&lâ•&3&lâ•&9&lâ•&3&lâ•&9&lâ•—"
145 send "&b Rank &8&m|&r &bPlayer &8&m|&r &bStats"
146 Send "&e 1er &8&m-&r &7%{_stats0::*}% &c%{_statsn0::*}%"
147 Send "&7 2nd &8&m-&r &7%{_stats1::*}% &c%{_statsn1::*}%"
148 Send "&6 3eme &8&m-&r &7%{_stats2::*}% &c%{_statsn2::*}%"
149 Send "&3 4 &8&m-&r &7%{_stats3::*}% &c%{_statsn3::*}%"
150 Send "&3 5 &8&m-&r &7%{_stats4::*}% &c%{_statsn4::*}%"
151 Send "&3 6 &8&m-&r &7%{_stats5::*}%&c %{_statsn5::*}%"
152 Send "&3 7 &8&m-&r &7%{_stats6::*}% &c%{_statsn6::*}%"
153 Send "&3 8 &8&m-&r &7%{_stats7::*}% &c%{_statsn7::*}%"
154 Send "&3 9 &8&m-&r &7%{_stats8::*}% &c%{_statsn8::*}%"
155 Send "&3 10 &8&m-&r &7%{_stats9::*}%&c %{_statsn9::*}%"
156 send "&b Rank &9&m|&r &bPlayer &9&m|&r &bStats"
157On script load:
158 update "CREATE TABLE IF NOT EXISTS `{@table_prefix}Player` (`Player` varchar(255),`Kills` varchar(255),`Deaths` varchar(255),`Breaks` varchar(255),`Placed` varchar(255),`FirstJoin` varchar(255),`BowKills` varchar(255),`Shoot` varchar(255),`Walk` varchar(255),`Messages` varchar(255),`Commands` varchar(255))"
159On join:
160 if {firstjoin-%player%} is not set:
161 set {deaths-%player%} to 0
162 set {kills-%player%} to 0
163 set {break-%player%} to 0
164 set {place-%player%} to 0
165 set {killsbow-%player%} to 0
166 set {shoot-%player%} to 0
167 set {walk-%player%} to 0
168 set {messages-%player%} to 0
169 set {commands-%player%} to 0
170 set {newdeaths-%player%} to 0
171 set {newkills-%player%} to 0
172 set {newbreak-%player%} to 0
173 set {newplace-%player%} to 0
174 set {newkillsbow-%player%} to 0
175 set {newshoot-%player%} to 0
176 set {newwalk-%player%} to 0
177 set {newmessages-%player%} to 0
178 set {newcommands-%player%} to 0
179 add player to {statslistplayer::*}
180 set {firstjoin-%player%} to "%now%"
181 update "INSERT INTO `{@table_prefix}Player` (`Player`, `Kills`, `Deaths`, `Breaks`, `Placed`, `FirstJoin`, `BowKills`, `Shoot`, `Walk`, `Messages`, `Commands`) VALUES ('%player%', '0', '0', '0', '0', '%now%', '0', '0', '0', '0', '0')"
182On death:
183 attacker is player
184 victim is player
185 add 1 to {deaths-%victim%}
186 add 1 to {kills-%attacker%}
187On death:
188 attacker is shooter
189 attacker is player
190 add 1 to {killsbow-%attacker%}
191On break:
192 add 1 to {break-%player%}
193On place:
194 add 1 to {place-%player%}
195On chat:
196 add 1 to {messages-%player%}
197On command:
198 add 1 to {commands-%player%}
199every 5 ticks:
200 loop all players:
201 if {walk-%loop-player%-loc} is not set:
202 set {walk-%loop-player%-loc} to location of block below loop-player
203 add 1 to {walk-%loop-player%}
204 else if {walk-%loop-player%-loc} is not location of block below loop-player:
205 set {walk-%loop-player%-loc} to location of block below loop-player
206 add 1 to {walk-%loop-player%}
207every {@refresh} seconds:
208 loop all players:
209 update "UPDATE `{@table_prefix}Player` SET `{@table_prefix}Player`.`Deaths` = `Deaths`+%{deaths-%loop-player%}% WHERE `{@table_prefix}Player`.`Player` = '%loop-player%'"
210 update "UPDATE `{@table_prefix}Player` SET `{@table_prefix}Player`.`Kills` = `Kills`+%{kills-%loop-player%}% WHERE `{@table_prefix}Player`.`Player` = '%loop-player%'"
211 update "UPDATE `{@table_prefix}Player` SET `{@table_prefix}Player`.`Breaks` = `Breaks`+%{break-%loop-player%}% WHERE `{@table_prefix}Player`.`Player` = '%loop-player%'"
212 update "UPDATE `{@table_prefix}Player` SET `{@table_prefix}Player`.`Placed` = `Placed`+%{place-%loop-player%}% WHERE `{@table_prefix}Player`.`Player` = '%loop-player%'"
213 update "UPDATE `{@table_prefix}Player` SET `{@table_prefix}Player`.`BowKills` = `BowKills`+%{killsbow-%loop-player%}% WHERE `{@table_prefix}Player`.`Player` = '%loop-player%'"
214 update "UPDATE `{@table_prefix}Player` SET `{@table_prefix}Player`.`Shoot` = `Shoot`+%{shoot-%loop-player%}% WHERE `{@table_prefix}Player`.`Player` = '%loop-player%'"
215 update "UPDATE `{@table_prefix}Player` SET `{@table_prefix}Player`.`Walk` = `Walk`+%{walk-%loop-player%}% WHERE `{@table_prefix}Player`.`Player` = '%loop-player%'"
216 update "UPDATE `{@table_prefix}Player` SET `{@table_prefix}Player`.`Messages` = `Messages`+%{messages-%loop-player%}% WHERE `{@table_prefix}Player`.`Player` = '%loop-player%'"
217 update "UPDATE `{@table_prefix}Player` SET `{@table_prefix}Player`.`Commands` = `Commands`+%{commands-%loop-player%}% WHERE `{@table_prefix}Player`.`Player` = '%loop-player%'"
218 set {newdeaths-%loop-player%} to {newdeaths-%loop-player%} + {deaths-%loop-player%}
219 set {newkills-%loop-player%} to {newkills-%loop-player%} + {kills-%loop-player%}
220 set {newbreak-%loop-player%} to {newbreak-%loop-player%} + {break-%loop-player%}
221 set {newplace-%loop-player%} to {newplace-%loop-player%} + {place-%loop-player%}
222 set {newkillsbow-%loop-player%} to {newkillsbow-%loop-player%} + {killsbow-%loop-player%}
223 set {newshoot-%loop-player%} to {newshoot-%loop-player%} + {shoot-%loop-player%}
224 set {newwalk-%loop-player%} to {newwalk-%loop-player%} + {walk-%loop-player%}
225 set {newmessages-%loop-player%} to {newmessages-%loop-player%} + {messages-%loop-player%}
226 set {newcommands-%loop-player%} to {newcommands-%loop-player%} + {commands-%loop-player%}
227 set {deaths-%loop-player%} to 0
228 set {kills-%loop-player%} to 0
229 set {break-%loop-player%} to 0
230 set {place-%loop-player%} to 0
231 set {killsbow-%loop-player%} to 0
232 set {shoot-%loop-player%} to 0
233 set {walk-%loop-player%} to 0
234 set {messages-%loop-player%} to 0
235 set {commands-%loop-player%} to 0
236On quit:
237 update "UPDATE `{@table_prefix}Player` SET `{@table_prefix}Player`.`Deaths` = `Deaths`+%{deaths-%player%}% WHERE `{@table_prefix}Player`.`Player` = '%player%'"
238 update "UPDATE `{@table_prefix}Player` SET `{@table_prefix}Player`.`Kills` = `Kills`+%{kills-%player%}% WHERE `{@table_prefix}Player`.`Player` = '%player%'"
239 update "UPDATE `{@table_prefix}Player` SET `{@table_prefix}Player`.`Breaks` = `Breaks`+%{break-%player%}% WHERE `{@table_prefix}Player`.`Player` = '%player%'"
240 update "UPDATE `{@table_prefix}Player` SET `{@table_prefix}Player`.`Placed` = `Placed`+%{place-%player%}% WHERE `{@table_prefix}Player`.`Player` = '%player%'"
241 update "UPDATE `{@table_prefix}Player` SET `{@table_prefix}Player`.`BowKills` = `BowKills`+%{killsbow-%player%}% WHERE `{@table_prefix}Player`.`Player` = '%player%'"
242 update "UPDATE `{@table_prefix}Player` SET `{@table_prefix}Player`.`Shoot` = `Shoot`+%{shoot-%player%}% WHERE `{@table_prefix}Player`.`Player` = '%player%'"
243 update "UPDATE `{@table_prefix}Player` SET `{@table_prefix}Player`.`Walk` = `Walk`+%{walk-%player%}% WHERE `{@table_prefix}Player`.`Player` = '%player%'"
244 update "UPDATE `{@table_prefix}Player` SET `{@table_prefix}Player`.`Messages` = `Messages`+%{messages-%player%}% WHERE `{@table_prefix}Player`.`Player` = '%player%'"
245 update "UPDATE `{@table_prefix}Player` SET `{@table_prefix}Player`.`Commands` = `Commands`+%{commands-%player%}% WHERE `{@table_prefix}Player`.`Player` = '%player%'"
246 set {newdeaths-%player%} to {newdeaths-%player%} + {deaths-%player%}
247 set {newkills-%player%} to {newkills-%player%} + {kills-%player%}
248 set {newbreak-%player%} to {newbreak-%player%} + {break-%player%}
249 set {newplace-%player%} to {newplace-%player%} + {place-%player%}
250 set {newkillsbow-%player%} to {newkillsbow-%player%} + {killsbow-%player%}
251 set {newshoot-%player%} to {newshoot-%player%} + {shoot-%player%}
252 set {newwalk-%player%} to {newwalk-%player%} + {walk-%player%}
253 set {newmessages-%player%} to {newmessages-%player%} + {messages-%player%}
254 set {newcommands-%player%} to {newcommands-%player%} + {commands-%player%}
255 set {deaths-%player%} to 0
256 set {kills-%player%} to 0
257 set {break-%player%} to 0
258 set {place-%player%} to 0
259 set {killsbow-%player%} to 0
260 set {shoot-%player%} to 0
261 set {walk-%player%} to 0
262 set {messages-%player%} to 0
263 set {commands-%player%} to 0