Advertisement
Samp-Pawn

ViP Proffesional System - SamP

May 23rd, 2012
1,482
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 14.88 KB | None | 0 0
  1. // VIP system //
  2.  
  3. // Commands //
  4.  
  5. Admin Commands :
  6. 1) VIP Set/
  7. 2) VIP Remove/
  8.  
  9. Vip Normal Player Commands :
  10. /VIP Commands
  11.  
  12. Normal Player Command :
  13.  
  14. 1) VIP List/ - Show All the Vip's That loggin
  15. 2) VIP TeleAccept/ Only if Vip Players Sended to u a message
  16.  
  17.  
  18. // Commands //
  19.  
  20. //>>>>>>>Enjoy<<<<<<<//
  21.  
  22.  
  23. #include "a_samp"
  24. #include "Double-O-Files 2"
  25. #pragma unused DOF2_Exit
  26. #define COLOR_WHITE 0xFFFFFFAA
  27. #define COLOR_RED 0xFB0000FF
  28.  
  29. new VChat = 1;
  30. enum VInfo
  31. {
  32. VLevel,
  33. Tag[30],
  34. bool:VHeal,
  35. bool:VArmour,
  36. VGoto,
  37. bool:VMute
  38. }
  39. new VIP[MAX_PLAYERS][VInfo];
  40. public OnPlayerConnect(playerid)
  41. {
  42. if(DOF2_FileExists(VIPFile(playerid))) VIP[playerid][VLevel] = DOF2_GetInt(VIPFile(playerid), "VIPLevel");
  43. else VIP[playerid][VLevel] = 0;
  44. return true;
  45. }
  46. public OnPlayerDisconnect(playerid, reason)
  47. {
  48. if(VIP[playerid][VLevel] != 0)
  49. {
  50. if(!DOF2_FileExists(VIPFile(playerid))) DOF2_CreateFile(VIPFile(playerid));
  51. DOF2_SetInt(VIPFile(playerid), "VIPLevel", VIP[playerid][VLevel]);
  52. DOF2_SaveFile();
  53. }
  54. if(DOF2_FileExists(VIPFile(playerid)) && !VIP[playerid][VLevel]) DOF2_RemoveFile(VIPFile(playerid));
  55. return true;
  56. }
  57. public OnPlayerSpawn(playerid)
  58. {
  59. VIP[playerid][VArmour] = false;
  60. VIP[playerid][VHeal] = false;
  61. return true;
  62. }
  63. public OnPlayerText(playerid, text[])
  64. {
  65. new string[128];
  66. if(text[0] == '@')
  67. {
  68. if(!VIP[playerid][VLevel]) return 1;
  69. if(VIP[playerid][VMute]) return SendClientMessage(playerid, COLOR_RED, "!àúä ðîöà áîéåè"), 0;
  70. if(!VChat && VIP[playerid][VLevel] <= 9) return SendClientMessage(playerid, COLOR_RED, "!ñâåø VIP öàè ä"), 0;
  71. format(string, 128, "%s (ID: %d || VIP Level: %d): %s", GetName(playerid), playerid, DOF2_GetInt(VIPFile(playerid), "VIPLevel"), text[1]);
  72. for(new i; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && DOF2_GetInt(VIPFile(i), "VIPLevel")) SendClientMessage(i, 0x00FF00FF, string);
  73. return 0;
  74. }
  75. return true;
  76. }
  77. public OnPlayerCommandText(playerid, cmdtext[])
  78. {
  79. new string[128], cmd[128], cmd2[128], idx;
  80. cmd = strtok(cmdtext, idx);
  81. if(!strcmp("/vip", cmd, true))
  82. {
  83. cmd = strtok(cmdtext, idx);
  84. if(!strcmp("set", cmd, true) && IsPlayerAdmin(playerid))
  85. {
  86. cmd = strtok(cmdtext, idx);
  87. if(!strlen(cmd)) return SendClientMessage(playerid, COLOR_WHITE, "/SetVIP [ID] [Level] :öåøú ùéîåù");
  88. cmd2 = strtok(cmdtext,idx);
  89. if(!strlen(cmd2)) return SendClientMessage(playerid, -1, "/VIP Set [ID] [Level] :öåøú ùéîåù");
  90. if(!IsPlayerConnected(strval(cmd))) return SendClientMessage(playerid, COLOR_RED, "!ùç÷ï æä ìà îçåáø ìùøú");
  91. VIP[strval(cmd)][VLevel] = strval(cmd2);
  92. format(string, 128, ".%d áøîä VIP %s ùîú ìùç÷ï", strval(cmd2), GetName(strval(cmd)));
  93. SendClientMessage(playerid, 0x00FF00FF, string);
  94. format(string, 128, ".%d áøîä VIP ùí àåúê %s äàãîéï", strval(cmd2), GetName(playerid));
  95. return SendClientMessage(strval(cmd), 0x00FF00FF, string);
  96. }
  97. if(!strcmp("remove", cmd, true) && IsPlayerAdmin(playerid))
  98. {
  99. cmd = strtok(cmdtext, idx);
  100. if(!strlen(cmd)) return SendClientMessage(playerid, COLOR_WHITE, "/VIP Remove [ID] :öåøú ùéîåù");
  101. if(!IsPlayerConnected(strval(cmd))) return SendClientMessage(playerid, COLOR_RED, "!ùç÷ï æä ìà îçåáø ìùøú");
  102. VIP[strval(cmd)][VLevel] = 0;
  103. format(string, 128, "VIP îîòøëú ä %s äåøãú àú äùç÷ï",GetName(strval(cmd)));
  104. SendClientMessage(playerid, 0xFB0000FF, string);
  105. format(string, 128, "VIP äåøéã àåúê îîòøëú ä %s äàãîéï",GetName(playerid));
  106. return SendClientMessage(strval(cmd), 0xFB0000FF, string);
  107. }
  108. if(!strcmp("list", cmd, true))
  109. {
  110. new VMembers = 0;
  111. SendClientMessage(playerid, 0x00FF00FF, ":äîçåáøéí ìùøú VIP äéðä ëì øùéîú äùç÷ðéí ùáîòøëú ä");
  112. for(new i; i < MAX_PLAYERS; i++)
  113. {
  114. if(!IsPlayerConnected(i)) continue;
  115. if(!VIP[i][VLevel]) continue;
  116. VMembers++;
  117. format(string, 128, "%d. %s [ID: %d | Level: %d]",VMembers, GetName(i), i, DOF2_GetInt(VIPFile(i), "VIPLevel"));
  118. SendClientMessage(playerid, 0x00FFFFFF, string);
  119. }
  120. return true;
  121. }
  122. if(!strcmp("tagon", cmd, true))
  123. {
  124. if(VIP[playerid][VLevel] < 8) return MessageError(playerid, 8);
  125. format(VIP[playerid][Tag], 30, "%s", ("V.I.P"));
  126. return SendClientMessage(playerid, 0x33CCFFAA, "V.I.P - ùîú ìòöîê úàâ äð÷øà");
  127. }
  128. if(!strcmp("tagoff", cmd, true))
  129. {
  130. if(VIP[playerid][VLevel] < 8) return MessageError(playerid, 8);
  131. format(VIP[playerid][Tag], 30, "%s", ("None"));
  132. return SendClientMessage(playerid, 0x33CCFFAA, ".VIP äåøãú ìòöîê àú äúàâ ùì ä");
  133. }
  134. if(!strcmp("quit", cmd, true))
  135. {
  136. if(!VIP[playerid][VLevel]) return SendClientMessage(playerid, COLOR_RED, "!Vip àúä ìà ùç÷ï áîòøëú ä");
  137. VIP[playerid][VLevel] = 0;
  138. return SendClientMessage(playerid, 0x008000FF, ".VIP éöàú îîòøëú ä");
  139. }
  140. if(!strcmp("fix", cmd, true))
  141. {
  142. if(VIP[playerid][VLevel] < 4) return MessageError(playerid, 4);
  143. if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, COLOR_RED, "!àúä öøéê ìäéåú áøëá áëãé ìáöò ô÷åãä æå");
  144. RepairVehicle(GetPlayerVehicleID(playerid));
  145. return SendClientMessage(playerid, 0x00FFFFFF, "!úé÷ðú àú øëáê");
  146. }
  147. if(!strcmp("carj", cmd, true))
  148. {
  149. if(VIP[playerid][VLevel] < 3) return MessageError(playerid, 3);
  150. new Float:Pos[3];
  151. GetVehicleVelocity(GetPlayerVehicleID(playerid), Pos[0], Pos[1], Pos[2]);
  152. return SetVehicleVelocity(GetPlayerVehicleID(playerid), Pos[0], Pos[1], Pos[2]+0.3);
  153. }
  154. if(!strcmp("commands", cmd, true))
  155. {
  156. if(!VIP[playerid][VLevel]) return SendClientMessage(playerid, COLOR_RED, "!Vip àúä ìà ùç÷ï áîòøëú ä");
  157. ShowPlayerDialog(playerid,1554 , DIALOG_STYLE_MSGBOX, "ëì äô÷åãåú ùì äîòøëú åéàéôé:", "{FF0000}1./VIP ChatClose Level:10-ñåâøú àú äöàè\n\n2./VIP ChatOpen Level:10-ôåúçú àú äöàè\n\n3./VIP Tagon Level:8-ùí úàâ åéàéôé\n\n4./VIP say Level:7-ìùìåç ìëì äùøú äåãòä\n\n5./VIP Fix Level:4-îú÷ï ìê àú äàåèå\n\n6./VIP CarJ Level:3-î÷ôéõ àåúê ëîä îèøéí áàååéø\n\n7./VIPon Level:1-îöá åéàéôé îåôòì", "Next", "Exit");
  158. return 1;
  159. }
  160. if(!strcmp("vipoff", cmd, true))
  161. {
  162. if(!VIP[playerid][VLevel]) return SendClientMessage(playerid, COLOR_RED, "!Vip àúä ìà ùç÷ï áîòøëú ä");
  163. switch(random(8))
  164. {
  165. case 0: SetPlayerColor(playerid, 0x4B00B0AA);
  166. case 1: SetPlayerColor(playerid, 0xADFF2FAA);
  167. case 2: SetPlayerColor(playerid, 0xF0F8FFAA);
  168. case 3: SetPlayerColor(playerid, 0xFF00FFFF);
  169. case 4: SetPlayerColor(playerid, 0xF0F8FFAA);
  170. case 5: SetPlayerColor(playerid, 0xFF00FFFF);
  171. case 6: SetPlayerColor(playerid, 0xDC143CAA);
  172. case 7: SetPlayerColor(playerid, 0xFF7F50AA);
  173. }
  174. return SendClientMessage(playerid, 0x00FFFFFF, "VIP éöàú îîöá ä");
  175. }
  176. if(!strcmp("vipon", cmd, true))
  177. {
  178. if(!VIP[playerid][VLevel]) return SendClientMessage(playerid, COLOR_RED, "!Vip àúä ìà ùç÷ï áîòøëú ä");
  179. SetPlayerColor(playerid, 0xFFFF00AA);
  180. return SendClientMessage(playerid, 0x00FF00FF, "VIP ðëñú ìîöá ä");
  181. }
  182. if(!strcmp("say", cmd, true))
  183. {
  184. if(VIP[playerid][VLevel] < 7) return MessageError(playerid, 7);
  185. new text[256];
  186. text = strrest(cmdtext,idx);
  187. if(!strlen(text)) return SendClientMessage(playerid, -1, "/Vsay [Text] :öåøú ùéîåù");
  188. format(string, 128, "VIP - %s: %s", GetName(playerid), text);
  189. return SendClientMessageToAll(0x007DFBFF, string);
  190. }
  191. if(!strcmp("jetpack", cmd, true))
  192. {
  193. if(VIP[playerid][VLevel] < 6) return MessageError(playerid, 6);
  194. SetPlayerSpecialAction(playerid,SPECIAL_ACTION_USEJETPACK);
  195. return SendClientMessage(playerid, 0xFBBB44FF, ".ìòöîê JetPack éöøú");
  196. }
  197. if (!strcmp("health", cmd, true))
  198. {
  199. if(VIP[playerid][VLevel] < 2) return MessageError(playerid, 2);
  200. if(VIP[playerid][VHeal])return SendClientMessage(playerid,COLOR_RED,"!àôùø ìäùúîù áô÷åãä æå ôòí áîååú");
  201. SendClientMessage(playerid,0xEEE8AAFF,".îéìàú ìòöîê àú äçééí");
  202. VIP[playerid][VHeal] = true;
  203. return SetPlayerHealth(playerid,100);
  204. }
  205. if(!strcmp("armour", cmd, true))
  206. {
  207. if(VIP[playerid][VLevel] < 2) return MessageError(playerid, 2);
  208. if(VIP[playerid][VArmour]) return SendClientMessage(playerid, COLOR_RED, "!àôùø ìäùúîù áô÷åãä æå ôòí áîååú");
  209. VIP[playerid][VArmour] = true;
  210. SetPlayerArmour(playerid, 100.0);
  211. return SendClientMessage(playerid, 0x00BF00FF, "!îéìàú ìòöîê àú äîâï");
  212. }
  213. if(!strcmp("tele", cmd, true))
  214. {
  215. if(VIP[playerid][VLevel] < 6) return MessageError(playerid, 6);
  216. cmd = strtok(cmdtext, idx);
  217. if(!strlen(cmd)) return SendClientMessage(playerid, COLOR_WHITE, "/VIP Tele [ID] :öåøú ùéîåù");
  218. if(!IsPlayerConnected(strval(cmd))) return SendClientMessage(playerid, COLOR_RED, "!ùç÷ï æä ìà îçåáø ìùøú");
  219. VIP[strval(cmd)][VGoto] = playerid;
  220. format(string, 128, ".á÷ùä ìäùúâøåú, àðà äîúï ìúùåáúå %s ùìçú ìùç÷ï", GetName(strval(cmd)));
  221. SendClientMessage(playerid, 0x00FF00FF, string);
  222. format(string, 128, "/TeleAccept - ùìç ìê á÷ùú äùúâøåú, áëãé ìàùø àú äá÷ùä ä÷ù %s äùç÷ï :VIP", GetName(playerid));
  223. return SendClientMessage(strval(cmd), 0x00FF00FF, string);
  224. }
  225. if(!strcmp("teleaccept", cmd, true))
  226. {
  227. if(VIP[playerid][VGoto] == -1) return SendClientMessage(playerid, COLOR_RED, "!ìà ùìçå ìê á÷ùú äùúâøåú");
  228. new Float:pos[3];
  229. VIP[playerid][VGoto] = -1;
  230. GetPlayerPos(playerid,pos[0],pos[1],pos[2]);
  231. return SetPlayerPos(VIP[playerid][VGoto],pos[0],pos[1],pos[2]);
  232. }
  233. if(!strcmp("chatclose", cmd, true))
  234. {
  235. if(VIP[playerid][VLevel] < 10) return MessageError(playerid, 10);
  236. if(!VChat) return SendClientMessage(playerid, COLOR_RED, "!ëáø ðòåì VIP öàè ä");
  237. VChat = 0;
  238. format(string, 128, "!VIP ðòì àú öàè ä %s äùç÷ï", GetName(playerid));
  239. return SendVIPMessage(string);
  240. }
  241. if(!strcmp("chatopen", cmd, true))
  242. {
  243. if(VIP[playerid][VLevel] < 10) return MessageError(playerid, 10);
  244. if(VChat) return SendClientMessage(playerid, COLOR_RED, ".ëáø ôúåç VIP öàè ä");
  245. format(string, 128, ".VIP ôúç àú öàè ä %s äùç÷ï", GetName(playerid));
  246. return SendVIPMessage(string);
  247. }
  248. if(!strcmp("message", cmd, true))
  249. {
  250. if(VIP[playerid][VLevel] < 5) return MessageError(playerid, 5);
  251. if(!VChat) return SendClientMessage(playerid, COLOR_RED, "!ñâåø VIP öàè ä");
  252. new text[256];
  253. text = strrest(cmdtext,idx);
  254. if(!strlen(text)) return SendClientMessage(playerid, -1, "/VMessage [Text] :öåøú ùéîåù");
  255. format(string, 128, "VIP - %s [ID: %d | Level: %d]: %s", GetName(playerid), playerid, DOF2_GetInt(VIPFile(playerid), "VIPLevel"), text);
  256. return SendVIPMessage(string);
  257. }
  258. if(!strcmp("mute", cmd, true))
  259. {
  260. if(VIP[playerid][VLevel] < 7) return MessageError(playerid, 7);
  261. cmd = strtok(cmdtext, idx);
  262. if(!strlen(cmd)) return SendClientMessage(playerid, COLOR_WHITE, "/VIP Mute [ID] [Reason] :öåøú ùéîåù");
  263. if(VIP[strval(cmd)][VMute]) return SendClientMessage(playerid, COLOR_RED, "!ùç÷ï æä ëáø ðîöà áîéåè");
  264. new text[256];
  265. text = strrest(cmdtext,idx);
  266. if(!strlen(text)) return SendClientMessage(playerid, -1, "/VMute [ID] [Reason] :öåøú ùéîåù");
  267. if(!IsPlayerConnected(strval(cmd))) return SendClientMessage(playerid, COLOR_RED, "!ùç÷ï æä ìà îçåáø ìùøú");
  268. if(strval(cmd) != playerid && VIP[strval(cmd)][VLevel] < VIP[playerid][VLevel]) return SendClientMessage(playerid, COLOR_RED, "!àúä ìà éëåì ìòùåú ô÷åãä æå òì òöîê");
  269. VIP[strval(cmd)][VMute] = true;
  270. format(string, 128, "VIP - [îéåè [ñéáä: %s %s ðúï ìùç÷ï %s :äùç÷ï", text, GetName(strval(cmd)), GetName(playerid));
  271. return SendVIPMessage(string);
  272. }
  273. if(!strcmp("unmute", cmd, true))
  274. {
  275. if(VIP[playerid][VLevel] < 7) return MessageError(playerid, 7);
  276. cmd = strtok(cmdtext, idx);
  277. if(!strlen(cmd)) return SendClientMessage(playerid, COLOR_WHITE, "/VIP UnMute [ID] :öåøú ùéîåù");
  278. if(!VIP[strval(cmd)][VMute]) return SendClientMessage(playerid, COLOR_RED, ".ùç÷ï æä ìà ðîöà áîéåè");
  279. VIP[strval(cmd)][VMute] = false;
  280. format(string, 128, "VIP - .àú äîéåè %s äåøéã ìùç÷ï %s :äùç÷ï", GetName(strval(cmd)), GetName(playerid));
  281. return SendVIPMessage(string);
  282. }
  283. return true;
  284. }
  285. return false;
  286. }
  287. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  288. {
  289. if(dialogid == 1554)
  290. {
  291. if(!response) return true;
  292. ShowPlayerDialog(playerid, 8037, DIALOG_STYLE_MSGBOX, "VIP Commands P.2", "{FF0000}1./VIP Health Level:2- îîìàú ìùç÷ï çééí\n\n2./VIP Armour Level:2- îîìàú ìùç÷ï çééí\n\n3./VIP Off Level:1 - ìà ôåòì VIP îöá\n\n4./VIP Quit Level:1 - VIP ìöàú îîòøëú ä\n\n5./VIP mute Level:7-îáéàä îéåè ìùç÷ï\n\n6./VIP unMute Level:7-îåøéã àú äîéåè\n\n7./VIP JetPack Level:6-îáéà ìê âàèôà÷\n\n8./VIP tele Level:6-îàôùøú ìäùúâø ìùç÷ï\n\n9./VIP message Level:5-ô÷åãú ìãáø áöàè åéàéôé","OK","");
  293. }
  294. return true;
  295. }
  296. stock VIPFile(playerid)
  297. {
  298. new stringFile[256];
  299. format(stringFile, sizeof stringFile, "VIP/%s.ini", GetName(playerid));
  300. return stringFile;
  301. }
  302. stock strrest(const string[], index)
  303. {
  304. new length = strlen(string);
  305. new offset = index;
  306. new result[256];
  307. while ((index < length) && ((index - offset) < (sizeof(result) - 1)) && (string[index] > '\r')) result[index - offset] = string[index], index++;
  308. result[index - offset] = EOS;
  309. return result;
  310. }
  311. stock GetName(playerid)
  312. {
  313. new name[MAX_PLAYER_NAME];
  314. GetPlayerName(playerid, name, sizeof(name));
  315. return name;
  316. }
  317. strtok(const string[], &index)
  318. {
  319. new length = strlen(string);
  320. while ((index < length) && (string[index] <= ' ')) index++;
  321. new offset = index, result[20];
  322. while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
  323. {
  324. result[index - offset] = string[index];
  325. index++;
  326. }
  327. result[index - offset] = EOS;
  328. return result;
  329. }
  330. stock SendVIPMessage(string[])
  331. {
  332. for(new i; i < MAX_PLAYERS; i++)
  333. {
  334. if(!IsPlayerConnected(i)) continue;
  335. if(!VIP[i][VLevel]) continue;
  336. SendClientMessageToAll(COLOR_RED, string);
  337. }
  338. return true;
  339. }
  340. stock MessageError(playerid, level)
  341. {
  342. new string[128];
  343. format(string, 128, "!îøîä %d åîòìä VIP ô÷åãä æå æîéðä àê åø÷ ì", level);
  344. return SendClientMessage(playerid, COLOR_RED, string);
  345. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement