Guest User

Untitled

a guest
May 3rd, 2013
141
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.10 KB | None | 0 0
  1.  
  2.  
  3. //*************************************************************************************************************//
  4. // Control the filterscript // Kontrolliere das FilterScript
  5. //*************************************************************************************************************//
  6.  
  7.  
  8. #define German //German or english? // Deutsch oder English?
  9. #define Color 0xFF6400FF //what is the Color? // Was für eine Farbe?
  10. #define VOTT 1 // how long is the "KickEnd" timer? (in minutes) // Wie lang ist der "KickEnd Timer? (in Minuten)
  11.  
  12.  
  13. //*************************************************************************************************************//
  14.  
  15. #include <a_samp> //Download: http://sa-mp.com/ (=
  16. #include <ocmd> //Download: http://forum.sa-mp.de/san-andreas-multiplayer/scripting-base/showroom/32461-include-ocmd/
  17. #include <sscanf> //Download: http://forum.sa-mp.com/showthread.php?t=120356
  18. #include <banfix> // Download: http://forum.sa-mp.de/san-andreas-multiplayer/scripting-base/showroom/159082-kick-ban-fix/
  19.  
  20. new VoteYes;
  21. new VoteNo;
  22. new KickID;
  23. new bool:VoteAktiv;
  24. new KickReason[128];
  25. forward KickEnd();
  26. new bool:Votet[MAX_PLAYERS];
  27.  
  28. new Text:VBox;
  29. new Text:VHeader;
  30. new Text:VPlayer;
  31. new Text:VLine1;
  32. new Text:VLine2;
  33. new Text:VReasonTD;
  34. new Text:VLine3;
  35. new Text:VYesTD;
  36. new Text:VNoTD;
  37. new Text:VYesVoteTD;
  38. new Text:VNoVoteTD;
  39.  
  40.  
  41. public OnFilterScriptInit()
  42. {
  43. VBox = TextDrawCreate(115.599998, 125.446670, "usebox");
  44. TextDrawLetterSize(VBox, 0.000000, 11.464073);
  45. TextDrawTextSize(VBox, -3.599998, 0.000000);
  46. TextDrawAlignment(VBox, 1);
  47. TextDrawColor(VBox, 0);
  48. TextDrawUseBox(VBox, true);
  49. TextDrawBoxColor(VBox, 102);
  50. TextDrawSetShadow(VBox, 0);
  51. TextDrawSetOutline(VBox, 0);
  52. TextDrawFont(VBox, 0);
  53.  
  54. VHeader = TextDrawCreate(18.400016, 114.986656, "Votekick");
  55. TextDrawLetterSize(VHeader, 0.449999, 1.600000);
  56. TextDrawAlignment(VHeader, 1);
  57. TextDrawColor(VHeader, -1);
  58. TextDrawSetShadow(VHeader, 0);
  59. TextDrawSetOutline(VHeader, 1);
  60. TextDrawBackgroundColor(VHeader, -2147483393);
  61. TextDrawFont(VHeader, 1);
  62. TextDrawSetProportional(VHeader, 1);
  63.  
  64. VPlayer = TextDrawCreate(51.200012, 141.120056, "Player");
  65. TextDrawLetterSize(VPlayer, 0.449999, 1.600000);
  66. TextDrawAlignment(VPlayer, 2);
  67. TextDrawColor(VPlayer, -1);
  68. TextDrawSetShadow(VPlayer, 0);
  69. TextDrawSetOutline(VPlayer, 1);
  70. TextDrawBackgroundColor(VPlayer, 255);
  71. TextDrawFont(VPlayer, 1);
  72. TextDrawSetProportional(VPlayer, 1);
  73.  
  74. VLine1 = TextDrawCreate(-6.400009, 126.186576, "-----------------");
  75. TextDrawLetterSize(VLine1, 0.449999, 1.600000);
  76. TextDrawAlignment(VLine1, 1);
  77. TextDrawColor(VLine1, -1);
  78. TextDrawSetShadow(VLine1, 0);
  79. TextDrawSetOutline(VLine1, 1);
  80. TextDrawBackgroundColor(VLine1, 51);
  81. TextDrawFont(VLine1, 1);
  82. TextDrawSetProportional(VLine1, 1);
  83.  
  84. VLine2 = TextDrawCreate(-6.400004, 153.066711, "-----------------");
  85. TextDrawLetterSize(VLine2, 0.449999, 1.600000);
  86. TextDrawAlignment(VLine2, 1);
  87. TextDrawColor(VLine2, -1);
  88. TextDrawSetShadow(VLine2, 0);
  89. TextDrawSetOutline(VLine2, 1);
  90. TextDrawBackgroundColor(VLine2, 51);
  91. TextDrawFont(VLine2, 1);
  92. TextDrawSetProportional(VLine2, 1);
  93.  
  94. VReasonTD = TextDrawCreate(51.199970, 165.013320, "Reason");
  95. TextDrawLetterSize(VReasonTD, 0.322798, 1.510398);
  96. TextDrawAlignment(VReasonTD, 2);
  97. TextDrawColor(VReasonTD, 255);
  98. TextDrawSetShadow(VReasonTD, 0);
  99. TextDrawSetOutline(VReasonTD, 1);
  100. TextDrawBackgroundColor(VReasonTD, -1);
  101. TextDrawFont(VReasonTD, 1);
  102. TextDrawSetProportional(VReasonTD, 1);
  103.  
  104. VLine3 = TextDrawCreate(-5.599973, 176.213272, "-----------------");
  105. TextDrawLetterSize(VLine3, 0.449999, 1.600000);
  106. TextDrawAlignment(VLine3, 1);
  107. TextDrawColor(VLine3, -1);
  108. TextDrawSetShadow(VLine3, 0);
  109. TextDrawSetOutline(VLine3, 1);
  110. TextDrawBackgroundColor(VLine3, 51);
  111. TextDrawFont(VLine3, 1);
  112. TextDrawSetProportional(VLine3, 1);
  113.  
  114. #if defined German
  115. VYesTD = TextDrawCreate(27.199989, 191.893325, "Ja(Z)");
  116. #else
  117. VYesTD = TextDrawCreate(27.199989, 191.893325, "Yes(Z)");
  118. #endif
  119. TextDrawLetterSize(VYesTD, 0.449999, 1.600000);
  120. TextDrawAlignment(VYesTD, 2);
  121. TextDrawColor(VYesTD, -1);
  122. TextDrawSetShadow(VYesTD, 0);
  123. TextDrawSetOutline(VYesTD, 1);
  124. TextDrawBackgroundColor(VYesTD, -2147483393);
  125. TextDrawFont(VYesTD, 1);
  126. TextDrawSetProportional(VYesTD, 1);
  127.  
  128. #if defined German
  129. VNoTD = TextDrawCreate(81.599975, 192.639984, "Nein(N)");
  130. #else
  131. VNoTD = TextDrawCreate(81.599975, 192.639984, "No(N)");
  132. #endif
  133. TextDrawLetterSize(VNoTD, 0.449999, 1.600000);
  134. TextDrawAlignment(VNoTD, 2);
  135. TextDrawColor(VNoTD, -1);
  136. TextDrawSetShadow(VNoTD, 0);
  137. TextDrawSetOutline(VNoTD, 1);
  138. TextDrawBackgroundColor(VNoTD, -2147483393);
  139. TextDrawFont(VNoTD, 1);
  140. TextDrawSetProportional(VNoTD, 1);
  141.  
  142. VYesVoteTD = TextDrawCreate(19.999998, 210.559936, "0");
  143. TextDrawLetterSize(VYesVoteTD, 0.449999, 1.600000);
  144. TextDrawAlignment(VYesVoteTD, 2);
  145. TextDrawColor(VYesVoteTD, -1);
  146. TextDrawSetShadow(VYesVoteTD, 2);
  147. TextDrawSetOutline(VYesVoteTD, 0);
  148. TextDrawBackgroundColor(VYesVoteTD, 255);
  149. TextDrawFont(VYesVoteTD, 1);
  150. TextDrawSetProportional(VYesVoteTD, 1);
  151.  
  152. VNoVoteTD = TextDrawCreate(69.599998, 210.559967, "0");
  153. TextDrawLetterSize(VNoVoteTD, 0.449999, 1.600000);
  154. TextDrawAlignment(VNoVoteTD, 1);
  155. TextDrawColor(VNoVoteTD, -1);
  156. TextDrawSetShadow(VNoVoteTD, 2);
  157. TextDrawSetOutline(VNoVoteTD, 0);
  158. TextDrawBackgroundColor(VNoVoteTD, 255);
  159. TextDrawFont(VNoVoteTD, 1);
  160. TextDrawSetProportional(VNoVoteTD, 1);
  161. #if defined German
  162. print(" Vote System von DialogHD wurde erfolgreich geladen.");
  163. #else
  164. print(" Vote system by DialogHD loaded successfully");
  165. #endif
  166. VoteAktiv = false;
  167. return 1;
  168. }
  169.  
  170. public OnFilterScriptExit()
  171. {
  172. if(VoteAktiv == true)
  173. {
  174. #if defined German
  175. SendClientMessageToAll(Color,"Server Restart - der Vote Kick wurde agebrochen.");
  176. #else
  177. SendClientMessageToAll(Color,"Server restart - the vote kick was canceled.");
  178. #endif
  179. VoteYes = 0;
  180. VoteNo = 0;
  181. KickID = 0;
  182. VoteAktiv = false;
  183. TextDrawHideForAll(VBox);
  184. TextDrawHideForAll(VHeader);
  185. TextDrawHideForAll(VPlayer);
  186. TextDrawHideForAll(VLine1);
  187. TextDrawHideForAll(VLine2);
  188. TextDrawHideForAll(VReasonTD);
  189. TextDrawHideForAll(VLine3);
  190. TextDrawHideForAll(VYesTD);
  191. TextDrawHideForAll(VNoTD);
  192. TextDrawHideForAll(VYesVoteTD);
  193. TextDrawHideForAll(VNoVoteTD);
  194. }
  195. return 1;
  196. }
  197. public OnPlayerDisconnect(playerid, reason)
  198. {
  199. if(VoteAktiv == true)
  200. {
  201. if(playerid == KickID && VoteAktiv == true)
  202. {
  203. #if defined German
  204. SendClientMessageToAll(Color,"Der Spieler hat den Server Verlassen, die Vote runde wurde abgebrochen.");
  205. #else
  206. SendClientMessageToAll(Color,"The VPlayer has disconnected from the server - the vote was canceled.");
  207. #endif
  208. VoteYes = 0;
  209. VoteNo = 0;
  210. KickID = 0;
  211. VoteAktiv = false;
  212. }
  213. }
  214. return 1;
  215. }
  216.  
  217. ocmd:votekick(playerid,params[])
  218. {
  219. if(!IsPlayerConnected(playerid)) return 1;
  220. new ID,Reason[128];
  221. #if defined German
  222. if(sscanf(params, "us",ID,Reason)) { return SendClientMessage(playerid, Color, "/votekick [ID] [Grund]"); }
  223. #else
  224. if(sscanf(params, "us",ID,Reason)) { return SendClientMessage(playerid, Color, "/votekick [ID] [Reason]"); }
  225. #endif
  226. if(VoteAktiv == true) { return 1; }
  227. if(strlen(Reason) > 15)
  228. {
  229. #if defined German
  230. SendClientMessage(playerid, Color, "Der Grund ist zu lang! [Maximal 15 Buchstaben]");
  231. #else
  232. SendClientMessage(playerid, Color, "The reason is too long [maximum 15 letters]");
  233. #endif
  234. return 1;
  235. }
  236. if(!IsPlayerConnected(ID))
  237. {
  238. #if defined German
  239. SendClientMessage(playerid, Color, "Der Spieler ist nicht Verbunden.");
  240. #else
  241. SendClientMessage(playerid, Color, "The VPlayer is not connected.");
  242. #endif
  243. return 1;
  244. }
  245. if(ID == playerid) return 1;
  246. for(new pID = 0; pID < MAX_PLAYERS; pID++) {if(IsPlayerConnected(pID)) { Votet[pID] = false; } }
  247. new TDM[16],name[MAX_PLAYER_NAME];
  248. GetPlayerName(ID,name,sizeof(name));
  249. format(TDM,sizeof(TDM),"%s",Reason);
  250. TextDrawSetString(VPlayer,name);
  251. TextDrawSetString(VReasonTD,TDM);
  252. VoteYes = 0;
  253. VoteNo = 0;
  254. KickID = ID;
  255. VoteAktiv = true;
  256. KickReason = Reason;
  257. format(TDM,sizeof(TDM),"%d",VoteNo);
  258. TextDrawSetString(VNoVoteTD,TDM);
  259. format(TDM,sizeof(TDM),"%d",VoteYes);
  260. TextDrawSetString(VYesVoteTD,TDM);
  261. TextDrawShowForAll(VBox);
  262. TextDrawShowForAll(VHeader);
  263. TextDrawShowForAll(VPlayer);
  264. TextDrawShowForAll(VLine1);
  265. TextDrawShowForAll(VLine2);
  266. TextDrawShowForAll(VReasonTD);
  267. TextDrawShowForAll(VLine3);
  268. TextDrawShowForAll(VYesTD);
  269. TextDrawShowForAll(VNoTD);
  270. SetTimer("KickEnd",60000*VOTT,false);
  271. return 1;
  272. }
  273.  
  274. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  275. {
  276. if(VoteAktiv == true)
  277. {
  278. if(playerid == KickID) return 1;
  279. if(Votet[playerid] == true) return 1;
  280. if(newkeys == KEY_YES)
  281. {
  282. if(Votet[playerid] == false)
  283. {
  284. VoteYes ++;
  285. #if defined German
  286. SendClientMessage(playerid,Color,"Du hast für Ja abgestimmt.");
  287. #else
  288. SendClientMessage(playerid,Color,"You have vote for yes.");
  289. #endif
  290. new TDM[3];
  291. format(TDM,sizeof(TDM),"%d",VoteYes);
  292. TextDrawSetString(VYesVoteTD,TDM);
  293. TextDrawShowForPlayer(playerid,VYesVoteTD);
  294. TextDrawShowForPlayer(playerid,VNoVoteTD);
  295. Votet[playerid] = true;
  296. return 1;
  297. }
  298. }
  299. if(newkeys == KEY_NO)
  300. {
  301. if(Votet[playerid] == false)
  302. {
  303. VoteNo ++;
  304. #if defined German
  305. SendClientMessage(playerid,Color,"Du hast für Nein abgestimmt.");
  306. #else
  307. SendClientMessage(playerid,Color,"You have vote for no.");
  308. #endif
  309. new TDM[3];
  310. format(TDM,sizeof(TDM),"%d",VoteNo);
  311. TextDrawSetString(VNoVoteTD,TDM);
  312. TextDrawShowForPlayer(playerid,VYesVoteTD);
  313. TextDrawShowForPlayer(playerid,VNoVoteTD);
  314. Votet[playerid] = true;
  315. return 1;
  316. }
  317. }
  318. }
  319. return 1;
  320. }
  321.  
  322. public KickEnd()
  323. {
  324. if(VoteYes > VoteNo && VoteAktiv == true)
  325. {
  326. new stringM[128];
  327. new KickName[MAX_PLAYER_NAME];
  328. GetPlayerName(KickID,KickName,sizeof(KickName));
  329. #if defined German
  330. format(stringM,sizeof(stringM),"[VOTEKICK] %s wurde gekickt [Grund: %s]",KickName,KickReason);
  331. #else
  332. format(stringM,sizeof(stringM),"[VOTEKICK] %s was kicked [reason: %s]",KickName,KickReason);
  333. #endif
  334. SendClientMessageToAll(Color,stringM);
  335. VoteAktiv = false;
  336. TextDrawHideForAll(VBox);
  337. TextDrawHideForAll(VHeader);
  338. TextDrawHideForAll(VPlayer);
  339. TextDrawHideForAll(VLine1);
  340. TextDrawHideForAll(VLine2);
  341. TextDrawHideForAll(VReasonTD);
  342. TextDrawHideForAll(VLine3);
  343. TextDrawHideForAll(VYesTD);
  344. TextDrawHideForAll(VNoTD);
  345. TextDrawHideForAll(VYesVoteTD);
  346. TextDrawHideForAll(VNoVoteTD);
  347. Kick(KickID);
  348. printf("Vote End");
  349. return 1;
  350. }
  351. else if(VoteNo >= VoteYes && VoteAktiv == true)
  352. {
  353. TextDrawHideForAll(VBox);
  354. TextDrawHideForAll(VHeader);
  355. TextDrawHideForAll(VPlayer);
  356. TextDrawHideForAll(VLine1);
  357. TextDrawHideForAll(VLine2);
  358. TextDrawHideForAll(VReasonTD);
  359. TextDrawHideForAll(VLine3);
  360. TextDrawHideForAll(VYesTD);
  361. TextDrawHideForAll(VNoTD);
  362. TextDrawHideForAll(VYesVoteTD);
  363. TextDrawHideForAll(VNoVoteTD);
  364. VoteAktiv = false;
  365. printf("Vote End");
  366. return 1;
  367. }
  368. return 1;
  369. }
Advertisement
Add Comment
Please, Sign In to add comment