· 8 years ago · May 01, 2018, 05:50 PM
1#if defined _0_A_d_m_i_n_
2
3 =======================================================================
4/* 0Admin - Administration filterscript.
5 Created over a period of 2 months.
6 With the most unique features ever. */
7
8
9 - 0Admin was planned to be the most unique admin script ever, beating the
10 existing one on performance and realiability.
11 The goal was achieved, I've used the best ways to build this script.
12 It uses SQLite, and Y_Ini in the same time for performance.
13 The command processor is ZCMD and I've used SSCANF to gain the best
14 performance you could get at the moment.
15 Using Regular Expresions(RegEx) for a better search. Examples are the:
16 Anti-Advertising functions.
17
18 **************
19 ** You may not sell this script under any circumstances.
20 For personal use only.
21 ** You may edit this script on your like. But don't claim it as yours.
22 ** Do whatever YOU LIKE. But don't sell or change credits.
23 ** Respect these rules.
24 **************
25
26 ..::Changelog::..
27 [V1.0]
28 - Initial Release.
29
30 [V1.1]
31 - Repaired Anti-IP Advertising.
32 - Added a define for the security question.
33 - Removed "Start Event" from /PCP.
34 - Added new commands:
35 "/ann /ann2 /cpass /time /aka"
36 - Added stats stabilizer. Player won't get wrong information whe his stats
37 will be changed from the include, trough the gamemode.
38 - Repaired 0Admin_F.inc include, found errors and mistakes.
39 - 0Admin_F.inc now saves the stats directly into the database.
40 - Added commands "/report" and "/respect" because it was requested.
41 - Fixed crashing while setting player kills trough "/setstats"
42 - Fixed a mistype in "/vips".
43
44
45 Upcoming:
46 [V1.2]
47 - Temporary Ban(tempban)
48 - Anti-Swear system.
49 - Security upgrade to SQLite database.
50 - Forbidden weapons list.
51
52 =======================================================================
53
54------------------------------(Level 0 [Member])--------------------------------/*
55 - The member, is just a player playing on the server without any
56 superior abilities. */
57
58 [V1.0]
59 /register - Register an account in the database.
60 /login - Login into account.
61 /stats - View your stats.
62 /pm - Send a personal message.
63 /admins - View online Administrators.
64 /vips - View online VIP Members.
65 /top - View the top. Best kills, deaths, most hours online etc.
66 /cookies - Show your current cookies amount.
67 /buycookies - Buy some cookies.
68 /eatcookie - Eat cookie, gain health.
69 /buycookiesjar - Buy a jar of 20 cookies.
70 /giftcookie - Gift a cookie to a player.
71 /cookieshelp - More information about the cookies system.
72
73 [V1.1]
74 /time - View current time,
75 /cpass - Change password
76
77----------------------------(Level 1 [Helper])----------------------------------/*
78 - The Helper has the role to maintain PLEASURE on server.
79 - To ensure players got what they need, as time, weather. */
80
81 [V1.0]
82 /goto - Go to someone's position.
83 /gotopos - Go to the position set, x, y, z.
84 /getip - Get someone's IP Adress.
85 /settime - Set someone's time.
86 /spawn - Spawn a player.
87 /acar - Spawn your personal Admin car.
88 /accp - Tune your admin car. Components, colors, nitro.
89 Save coponents, load components, discard components.
90 /jailed - View jailed players and the jail time.
91 /frozen - View frozem players.
92 /muted - View muted players and the mute time.
93
94 [V1.1]
95 - Nothing.
96------------------------(Level 2 [Mini Moderator])------------------------------/*
97 - The mini moderator serves as help when the superiors are offline.
98 - His job is to keep the server quiet if there's a fight.
99 - To keep away hackers by disarming them or removing money. */
100
101 [V1.0]
102 /disarm - Remove someone's weapons.
103 /bankrupt - Remove someone's money.
104 /tplayer - Teleport a player to another player.
105 /eject - Eject a player from the vehicle.
106 /heal - Heal yourself.
107 /spec - Spectate a player.
108 /specoff - Stop spectating a player.
109 /show - Send a game text to the specified player.
110 /setskin - Set someone's skin.
111 /[un]freeze - Freeze or unfreeze the specified player.
112 /[un]mute - Mute or unmute a player with specified time.
113 /aweapons - Give yourself the best weapons.
114 /healcar - Heal someone's car.
115 /setvhealth - Set someone's vehicle health.
116 /carcolor - Change someone's vehicle colors.
117
118 [V1.1]
119 /aka - View the aka list of a player.
120 /ann - Send an announcement to the server.
121 /ann2 - Send an announcement with style and custom time.
122----------------------------(Level 3 [Moderator])-------------------------------/*
123 - The Moderator has the role to keep the server clean. Clean from idiots and
124 spammers, make sure the chat is CLEAR when someone fights.
125 - The moderator can warn a player for bad behaviour.
126 - He can jail or Unjail a specified player.
127 - He can manipulate players data, cookies, score, money, skin etc.. */
128
129 [V1.0]
130 /giveweapon - Give someone a weapon with specified ammo.
131 /warn - Warn a player, at 3 warns player will be kicked.
132 /healall - Heall all players on the server.
133 /heal - Heal a specified player.
134 /aweapons - Give yourself some weapons.
135 /givecar - Give someone a car.
136 /write - Write something in the chat, without name in front.
137 /destroyv - Destroy a vehicle ID.
138 /[un]jail - Jail or Unjail a specified player.
139 /slap - Slap a player make him loose -25 health.
140 /clearchat - Clear the chat.
141 /akill - Kill a player.
142 /explode - Explode a player.
143 /setalltime - Set everyone's time.
144 /setallweather - Set everyone's weather.
145
146 - The below commands are self explanatory.
147 /set(cookies|health|armour|score|cash|skin|time|weather|world|interior|drunk|respect|wanted)
148
149 [V1.1]
150 - Nothing
151--------------------------(Level 4 [Administrator])-----------------------------/*
152 - Doesn't have a specified role, he can pretty much do whatever he likes.
153 - His actions may not be judged.
154 - Can manipulate everyone's data. */
155
156 [V1.0]
157 - Set everyone's x .
158 /setall(health|armour|score|cash|skin|world|interior|drunk|cookies|respect|wanted)
159
160 - Give everyone x.
161 /giveall(health|armour|score|cash|cookies|wanted|weapon)
162
163 /kick - Kick a player from the server.
164 /wcheck - Check a player's weapons.
165 /setdeaths - Set someone's deaths.
166 /setkills - Set someone's kills.
167 /2012 - Fuck up someone's game, 0 money, 0 score, 0 everything.
168 /resetallrespect- Change everyone's respect. Negatie and Positive.
169 /killall - Kill everyone on the server.
170 /[un]muteall - Mute/Unmute everyone, this mute won't save.
171 /[un]freezeall - Freeze/Unfreeze all, this freeze won't save.
172 /spawnall - Spawn all players.
173 /2012all - Fuck up everyone's game.
174 /chat - You can manipulate the chat. Spam it, clear it, [un]block it.
175 /slapall - Slap everyone.
176 /disarmall - Disarm everyone in the server.
177 /explodeall - Explode everone.
178
179 [V1.1]
180 - Nothing
181-------------------------------(Level 5 [Owner])--------------------------------/*
182 - He is the boss, the boss of everyone, he can do whatever he likes...
183 - He can ban you, LIKE A BOSS.
184 - He can change you, LIKE A BOSS.
185 - He can delete you, LIKE A BOSS. */
186
187 [V1.0]
188 /setlevel - Change someone's level.
189 /settemplevel - Set someone's temporary level, on disconnect, level will be reseted.
190 /ban - Ban a player.
191 /unban - Unban a player, remove his name from the banlist in the database.
192 /acp - Open a dialog where you can manipulate server features. Such as, antispam, anti-ad etc.
193 /respawncars - Respawn all unoccupied vehicles in the server.
194 /removeacc - Delete a player's account from the database.
195 /setonline - Change someone's online time.
196 /setstat - Open a dialog where you can manipulate a specified ID.
197 /fake - Show the fake list commands.
198 /fakechat - Send a fake chat of a certain user.
199 /fakecmd - Send a fake command, or make him execute a command.
200 /fakecon - Send a face connection to the server.
201 /fakedisc - Send a fake disconnection from the server.
202 /fakedeath - Send a fake death.
203 /kickall - Kick everyone from the server.
204 /banall - Ban everyone from the server.
205
206 [V1.1]
207 - Nothing
208
209#endif
210//Main Include
211#include <a_samp>
212
213
214 /*-----------------------------------------------
215 Don't change this otherwise whirlpool won't work.*/
216 #define MAX_INI_ENTRY_TEXT 130
217 #undef MAX_PLAYER_NAME
218 #define MAX_PLAYER_NAME 24
219 /*-----------------------------------------------*/
220
221//Includes
222#include < YSI/Y_ini >
223#include < sscanf2 >
224#include < zcmd >
225#include < foreach >
226#include < regex >
227//#include YSI/y_scripting
228
229//Version of the script.
230#define Version "1.1"
231
232#pragma dynamic 46500
233//Colors:
234#define ORAN "{FF5500}"
235#define GREE "{94ED40}"
236#define BLUE "{4097ED}"
237#define W "{FFFFFF}"
238#define GREY "{C3C3C3}"
239
240
241//Tags:
242#define Dialog: _:DIALOG_
243#define Color: _:COL_
244
245
246//Shortcuts
247#define D: = 906 //If you have Dialog Problems, please change here, the higher, the better.
248#define PARAMS playerid, params[]
249#define SPD ShowPlayerDialog
250#define LIST DIALOG_STYLE_LIST
251#define INPUT DIALOG_STYLE_INPUT
252#define BOX DIALOG_STYLE_MSGBOX
253#define CaseDialog<%0> case(Dialog:%0):
254#define iDialog<%0> if(dialogid == Dialog:%0)
255#define GetVehicleName(%0) vNames[(%0) - 400]
256#define Freeze(%0) TogglePlayerControllable((%0), false)
257#define UnFreeze(%0) TogglePlayerControllable((%0), true)
258#define Col(%0,%1) ChangeVehicleColor(GetPlayerVehicleID(playerid), (%0), ((%0) & (zC = %1)))
259#define db_GetField DB::get_field_assoc
260#define db_Query DB::query
261#define db_Free DB::free_result
262#define db_Valid DB::num_rows
263#define DB:: db_
264
265/*
266=======================================
267==| Bellow choose your own settings |==
268=======================================
269*/
270
271//----------------------------------------
272#define SECURITY_QUESTION false /*true - Will enable the security question so user can retrieve their password.
273 false - Won't.*/
274//----------------------------------------
275#define STATS_STABILIZER false /*true - Stats will be stabilized, uses OnPlayerUpdate, unchek in case of lag...
276 false - Won't.*/
277//----------------------------------------
278#define SAVE_IN_LOGS true /*true - It will save on file when player gets kicked/banned/muted etc..
279 false - It won't save.*/
280//----------------------------------------
281#define SAVE_MUTE true /*true - Mute with mute time will be saved and on connect it will be re-applied.
282 false - Mute won't be saved and it will be disabled on connect/disconnect*/
283//----------------------------------------
284#define SAVE_FREEZE true /*true - Player will be frozen after re-connect
285 false - Player will be able to move after reconnection.*/
286//----------------------------------------
287#define SAVE_JAIL true /*true - Player after reconection will be jailed for the amount of time set
288 false - Player after reconnection won't go to jail.*/
289//----------------------------------------
290#define USE_RANKS true /*true - Tell player when reaching x kills his new rank.
291 false - Don't use ransk at all.*/
292//----------------------------------------
293#define PRINT_RANKS false /* true - Will print the created rank names in the console.
294 false - Will do the opposite. Won't show them in console.*/
295//----------------------------------------
296#define UPDATE_TOP_ALWAYS true /*true - The top x players file will be update once a kill/death or whatever stat is, has occured.
297 false - It will update only on disconnect.*/
298//----------------------------------------
299#define TRACK_ACCOUNTS true /*true - Each time a player disconnects from the server and he has an account a file of his stats will be created with the stats on date x
300 false - Not gonna happen. Only when admin uses .stats <id> in console or /rcon .stats id in game.*/
301
302//ATTENTION: KEEP THE SYMBOM INSIDE ' '.
303#define ADMIN_CHAT_SYMBOL '@' //Choose symbol1 to let vip members talk among them. Use same symbol on both for 1 usage.
304#define ADMIN_CHAT_SYMBOL2 '#' //Choose symbol2 to let vip members talk among them. Use same symbol on both for 1 usage.
305#define VIP_CHAT_SYMBOL '*' //Choose symbol1 to let Admins talk among them. Use same symbol on both for 1 usage.
306#define VIP_CHAT_SYMBOL2 '$' //Choose symbol2 to let Admins talk among them. Use same symbol on both for 1 usage.
307
308//Start defining here the way you like.
309#define MIN_PASS_LEN (4) //Minimum characters a password must have. (On register)
310#define MAX_PASS_LEN (20) //Maximum characters a password must have. (On register)
311#define MAX_PASS_FAIL (4) //Define how many tries a player has to login.
312#define MAX_RCON_ATTEMPTS 3 //Define how many tries a player must have to enter the right RCON Password.
313#define MIN_PING_LIMIT 100 //Minimum ping an admin must enter on the cPanel, category, "Ping Kicker"
314#define MAX_PING_LIMIT 3000 //Maximum ping an admin must enter on the cPanel, category, "Ping Kicker"
315#define IPGKICK 1 //Minimun level for admin to not be kicked by the Ping Kicker.
316#define LOW_SPAM_RATE (1300) //Each how many seconds the spam rate drops
317#define GOD_TICK_RATE (500) //Once every x ms/seconds the god will update. (If causes lag increase number)
318#define MINIMUM_SPAM (3) //Minimum spam message for the anti-spam to be triggered.
319#define MEDIUM_SPAM (10) //Medium spam messages for the player to be kicked for spamming.
320#define MAXIMUM_SPAM (16) //Maximum spam messages for the player to be BANNED for spamming.
321#define MIN_CMD_SPAM (7) //Minimun commands spam for the player to be kicked for commands spamming.
322#define MAX_CMD_SPAM (16) //Maximum commands spam for the player to be BANNED for commands spamming
323#define MAX_COOKIE_COST 95 //How much a cookie costs.
324#define MAX_P_WARNS 3 //Max warns for the player to achieve to get kicked.
325#define MAX_TOP_LIMIT 15 //Max how many players will be shown in the top x players.
326#define MAX_SHOW_PER_ROW 6 //Define here how many players should be shoed on /vips /admins /muted etc per row.
327#define MAX_RANK_LEN (50) //Define here the max rank name lenght.
328#define EXTRA_MINUTES 15 /*Define how many +minutes of mute or jail the player will receive
329 after evading with a different IP but same name, or same IP but different name*/
330//Files
331#define LOGS_LOC "0Admin/Logs/" //The location where the server will print a log of a ban/kick
332#define KICK_LOG "0Admin/Logs/KickLog.ini" //Naming the Kick Log
333#define BAN_LOG "0Admin/Logs/BanLog.ini" //Naming the Ban Log
334#define RCON_LOG "0Admin/Logs/RCONFails.ini" //Printing in the log what IP tried to break the RCON and with what password.
335#define REPORT_LOG "0Admin/Logs/Reports.ini" //Where the report logs will be saved
336#define SETRANK_LOG "0Admin/Logs/SetRank.ini" //A log where it will store the player that has changed rank etc..
337#define SETLEVEL_LOG "0Admin/Logs/SetLevel.ini" //A log where it will store the player that has changed level etc..
338#define SETVIP_LOG "0Admin/Logs/SetVip.ini" //A log where it will store the player that has changed vip etc..
339#define PMS_LOG "0Admin/Logs/PMs.ini" //Where all Personal Messages will be stored.
340#define WARNS_LOG "0Admin/Logs/Warns.ini" //Where the warns will be stored.
341#define VIPCHAT_LOG "0Admin/Logs/VIP Chat.ini" //Here saves everything admins chat trough the Admin Chat.
342#define ADMINCHAT_LOG "0Admin/Logs/Admin Chat.ini" //Here stores all the messages sent by VIP members
343#define USER_ID "0Admin/Account_ID.ini" //Saving how many accounts have been created and which was the last one
344#define AKA_FILE "0Admin/AKA.ini" //Sacing the AKA(Also Known As) of a player.
345#define SERVER_FILE "0Admin/SVSettings.ini" //The server data, where Autologin Antispam anti whatever will asve.
346#define DATABASE_LOC "0Admin/Database.db" //Define here where the database with the top x players and muted/jaled/frozen
347#define STATS_LOC "0Admin/Stats/" //Where the file of the player creates when admins uses .stats <id> in console.
348
349//For the /SETSTAT command
350#define NAME 0
351#define MONEY 1
352#define SCORE 2
353#define COOKIES 3
354#define RESPECT 4
355#define KILLS 5
356#define DEATHS 6
357#define MESSAGES 7
358#define COMMANDS 8
359#define FCOMMANDS 9
360#define ONLINE 10
361#define LEVEL 11
362#define VLEVEL 12
363#define CPASS 13
364#define BACCOUNT 14
365#define DACCOUNT 15
366
367#define ADMIN_SPEC_TYPE_NONE 0
368#define ADMIN_SPEC_TYPE_PLAYER 1
369#define ADMIN_SPEC_TYPE_VEHICLE 2
370
371
372//Shortcuts
373
374#define CreateTable(%0,%1,%2)\
375 DB::Query((%0), "CREATE TABLE IF NOT EXISTS " "`"%1"`" %2)
376
377
378//----------------------------------------
379#define Public:%0(%1) forward %0(%1);\
380 public %0(%1)
381
382//----------------------------------------
383#define FormatMSG(%0,%1,%2,%3)\
384 do{\
385 format(_S_T_R_, sizeof (_S_T_R_), (%2), %3);\
386 SendClientMessage((%0),(%1), _S_T_R_);\
387 }\
388 while (False)
389
390//----------------------------------------
391#define SendAdminCMD(%0,%1,%2)\
392 do{\
393 foreach(Player, zI){\
394 if(P_DATA[zI][Level]> 1){\
395 if(zI .= (%0)){\
396 format(_S_T_R_, sizeof (_S_T_R_), (%1), %2);\
397 SendClientMessage(zI,Color:GREY, _S_T_R_);\
398 }\
399 }\
400 }\
401 }\
402 while (False)
403
404//----------------------------------------
405#define LevelCheck(%0,%1)\
406 do{\
407 if(P_DATA[(%0)][Level] < (%1) && .IsPlayerAdmin((%0))){\
408 if(S_DATA[TellPlayer]){\
409 new Str[256];\
410 format(Str, 256, "INSUFFICIENT PRIVILEGES:"W" Sorry, but you must be a staff member of at least level %d"W" to use this command.", (%1));\
411 return SendClientMessage((%0), Color:ORAN, Str);\
412 }else return 0;\
413 }\
414 }\
415 while(False)
416
417//----------------------------------------
418#define LoginCheck(%0) \
419 do{\
420 if(.P_DATA[(%0)][Logged])\
421 {\
422 if(S_DATA[TellPlayer])\
423 {\
424 return SendClientMessage((%0), Color:ORAN, "INSUFFICIENT PRIVILEGES:"W" Sorry, but you must be logged in to use this command.");\
425 }else return 0;\
426 }\
427 }\
428 while(False)
429
430//----------------------------------------
431#define SaveInLog(%0,%1,%2) \
432 do\
433 {\
434 new File:_File = fopen((%0), io_append);\
435 format(_S_T_R_, sizeof (_S_T_R_), %1 "\r\n", %2);\
436 if((_File))\
437 {\
438 fwrite((_File), _S_T_R_);\
439 fclose((_File));\
440 }\
441 }\
442 while(False)
443
444//----------------------------------------
445#define FileExist(%0);\
446 if(.fexist(%0))\
447 {\
448 printf("MISSING FILE: \"%s\" doesn't exist, created by the system", %0);\
449 new File:uFile = fopen(%0, io_write); fclose(uFile);\
450 Fail = true;\
451 }
452
453//----------------------------------------
454#define CheckImune(%0,%1); \
455 if(P_DATA[(%0)][Level] < P_DATA[(%1)][Level]) \
456 return SendError(%0, "Sorry, but you're not allowed to use this command on this staff member.");
457
458//----------------------------------------
459#define VipCheck(%0, %1); \
460 if(P_DATA[(%0)][Vip] < %1 && .IsPlayerAdmin(%0)) \
461 return format(_S_T_R_, 256, "INSUFFICIENT PRIVILEGES:"W" Sorry, but you must be V.I.P player of level "ORAN"%d"W" to use this command", %0),\
462 SendClientMessage((%0), Color:ORAN, _S_T_R_);
463
464//----------------------------------------
465#define CheckComponents(%0,%1)\
466 if(.strcmp(GPVSEx((%0), "Type"), "None") && .P_DATA[(%0)][A_Component1] &&\
467 .P_DATA[(%0)][A_Component2] && .P_DATA[(%0)][A_Component3] &&\
468 .P_DATA[(%0)][A_Component4] && .P_DATA[(%0)][A_Wheels] &&\
469 .P_DATA[(%0)][A_Color])\
470 return SendError((%0), %1),cmd_accp((%0), "")
471
472//----------------------------------------
473#define PRESSED(%0) \
474 (((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) .= (%0)))
475
476//----------------------------------------
477#define RELEASED(%0) \
478 (((newkeys & (%0)) .= (%0)) && ((oldkeys & (%0)) == (%0)))
479
480//----------------------------------------
481#define OpenWriteClose(%0,%1,%2,%3);\
482 {\
483 new INI:%1 = INI_Open((%0));\
484 INI_WriteInt((%1), %2, (%3));\
485 INI_Close((%1));\
486 }
487//----------------------------------------
488#define _0CMD(%0) \
489 if(.strcmp(cmd, ".0" %0, true))
490
491//----------------------------------------
492#define Triadic(%0)\
493 (%0) ? ("Enabled") : ("Disabled")
494
495//----------------------------------------
496#define CONSOLE(%0) \
497 if(.strcmp(cmd, (%0), true, .length = strlen((%0))))
498
499//----------------------------------------
500#define PrintError(%0) \
501 print("\n----------------\n" %0 "\n----------------\n")
502
503//----------------------------------------
504#define PrintErrorEx(%0,%1) \
505 printf("\n----------------\n" %0 "\n----------------\n", %1)
506
507//----------------------------------------
508#define loop(%0,%1) \
509 for(new _%0; (_%0) .= (%1); (_%0)++)
510
511//----------------------------------------
512#define _GetField<%0>Store<%1>\
513 DB::GetField(Result, %0, (Field), sizeof((Field)));\
514 P_DATA[playerid][%1] = strval(Field);
515
516//----------------------------------------
517#define Show(%0) \
518 ShowPlayerDialog(playerid, Dialog:Empty, BOX, ""W"Your Commands:", (%0), "Close", "")
519
520//----------------------------------------
521#define Detour<%0,%1> \
522 CMD:%0(PARAMS) return cmd_%1(playerid, "");
523
524native WP_Hash(buffer[], len, const str[]);
525
526stock
527 bool:False = false,
528 _S_T_R_[256];
529
530enum
531 Colors
532 {
533 COL_ORAN = 0xFF5500FF,
534 COL_GREY = 0xC3C3C3FF,
535 COL_GREE = 0xADEB50FF,
536 COL_FUNC = 0xFFA640FF,
537 COL_BLUE = 0x4097EDFF,
538 COL_WHITE = -1
539 };
540
541enum
542 Dialogs
543 {
544 Dialog:Register D:+1, Dialog:Register1 D:+2,
545 Dialog:Login D:+3, Dialog:Login2 D:+4,
546 Dialog:Login3 D:+5, Dialog:Stats D:+6,
547 Dialog:cPanel D:+7, Dialog:cPanel_Back D:+8,
548 Dialog:cPanel_Ping D:+9, Dialog:cPanel2 D:+10,
549 Dialog:Empty D:+11, Dialog:ACCP D:+12,
550 Dialog:ACCP_NOS D:+13, Dialog:ACCP_COLORS D:+14,
551 Dialog:ACCP_C_C D:+15, Dialog:ACCP_WHEELS D:+16,
552 Dialog:ACCP_COMPS D:+17, Dialog:ACCP_SAVE D:+18,
553 Dialog:ACCP_LOAD D:+19, Dialog:ACCP_DISCARD D:+20,
554 Dialog:SetStatsSure D:+21, Dialog:SetStatsTrue D:+22,
555 Dialog:TOP D:+23, Dialog:TOP_SELECT D:+24,
556 Dialog:TOP_RESPECT D:+25, Dialog:CLICK D:+26,
557 Dialog:CLICK_PM D:+27, Dialog:CLICK_RP D:+28,
558 Dialog:CLICK_MONEY D:+29, Dialog:CLICK_REPORT D:+30,
559 Dialog:PCP D:+31, Dialog:NAME D:+32,
560 Dialog:MONEY D:+33, Dialog:SCORE D:+34,
561 Dialog:COOKIES D:+35, Dialog:R