Guest User

rDuel-System

a guest
Mar 19th, 2013
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 13.08 KB | None | 0 0
  1. /*
  2. By RoW do not remove credits !!
  3. */
  4.  
  5. /*
  6. ________________________________________________________________________________
  7.  
  8. Include's
  9. ________________________________________________________________________________
  10. */
  11. #include " a_samp "
  12. #include " zcmd "
  13. #include " sscanf "
  14. #include " streamer "
  15. #include " foreach "
  16. /*
  17. ________________________________________________________________________________
  18.  
  19. Define's
  20. ________________________________________________________________________________
  21. */
  22.  
  23. #define SPD ShowPlayerDialog
  24. #define SCM SendClientMessage
  25. #define Input DIALOG_STYLE_INPUT
  26. #define List DIALOG_STYLE_LIST
  27. #define Box DIALOG_STYLE_MSGBOX
  28. #define IPI INVALID_PLAYER_ID
  29. #define Duel_Dialog 555
  30. #define R "{FF0000}"
  31. #define O "{FF8000}"
  32. #define W "{FFFFFF}"
  33. /*
  34. ________________________________________________________________________________
  35.  
  36. Enum's
  37. ________________________________________________________________________________
  38. */
  39.  
  40. new G_Ini = -1 , G_Oponent = -1 , G_BET , G_Weap1 , G_Weap2 , G_Weap3 , G_str[500] , IsDuel[MAX_PLAYERS] , InDuel[ MAX_PLAYERS ];
  41.  
  42. public OnFilterScriptInit()
  43. {
  44. print("\n____________________________________\n");
  45. print(" ! x ! RoW duel System ! x !");
  46. print("______________________________________\n");
  47. /*
  48. ________________________________________________________________________________
  49.  
  50. Map-Dm
  51. ________________________________________________________________________________
  52. */
  53. CreateDynamicObject(18783, 3256.39, -2852.61, 71.90, 0.00, 0.00, 0.00);
  54. CreateDynamicObject(18783, 3216.44, -2812.61, 71.90, 0.00, 0.00, 0.00);
  55. CreateDynamicObject(18783, 3216.40, -2852.56, 71.90, 0.00, 0.00, 0.00);
  56. CreateDynamicObject(18783, 3256.30, -2812.60, 71.90, 0.00, 0.00, 0.00);
  57. CreateDynamicObject(18783, 3236.39, -2852.57, 71.90, 0.00, 0.00, 0.00);
  58. CreateDynamicObject(18783, 3236.34, -2812.69, 71.90, 0.00, 0.00, 0.00);
  59. CreateDynamicObject(18783, 3256.29, -2832.60, 71.90, 0.00, 0.00, 0.00);
  60. CreateDynamicObject(18783, 3216.39, -2832.59, 71.90, 0.00, 0.00, 0.00);
  61. CreateDynamicObject(18783, 3236.38, -2832.55, 71.90, 0.00, 0.00, 0.00);
  62. CreateDynamicObject(8171, 3265.92, -2839.29, 90.37, 0.00, 90.00, 179.91);
  63. CreateDynamicObject(8171, 3210.51, -2802.54, 90.29, 0.00, 90.00, 269.69);
  64. CreateDynamicObject(8171, 3206.39, -2829.85, 90.37, 0.00, 90.00, 0.00);
  65. CreateDynamicObject(8171, 3222.43, -2862.78, 90.37, 0.00, 90.00, 90.05);
  66. CreateDynamicObject(8171, 3206.41, -2839.17, 108.91, 0.00, 0.00, 0.00);
  67. CreateDynamicObject(8171, 3246.36, -2839.31, 108.91, 0.00, 0.00, 0.00);
  68. CreateDynamicObject(944, 3258.22, -2837.41, 75.26, 0.00, 0.00, 0.00);
  69. CreateDynamicObject(944, 3212.61, -2816.46, 75.26, 0.00, 0.00, 0.00);
  70. CreateDynamicObject(944, 3234.08, -2850.64, 75.26, 0.00, 0.00, 0.00);
  71. CreateDynamicObject(944, 3231.38, -2841.40, 75.26, 0.00, 0.00, 0.00);
  72. CreateDynamicObject(944, 3252.87, -2820.16, 75.26, 0.00, 0.00, 0.00);
  73. CreateDynamicObject(944, 3230.65, -2821.35, 75.26, 0.00, 0.00, 0.00);
  74. CreateDynamicObject(19378, 3225.20, -2837.69, 75.96, 0.00, 0.00, 24.12);
  75. CreateDynamicObject(19378, 3237.31, -2837.34, 76.41, 0.00, 0.00, 335.22);
  76. CreateDynamicObject(944, 3217.69, -2832.38, 75.26, 0.00, 0.00, 0.00);
  77. CreateDynamicObject(19378, 3223.43, -2821.82, 74.97, 0.00, 0.00, 332.27);
  78. CreateDynamicObject(19378, 3238.42, -2823.03, 74.97, 0.00, 0.00, 32.23);
  79. CreateDynamicObject(944, 3245.11, -2843.43, 75.26, 0.00, 0.00, 0.00);
  80. return 1;
  81. }
  82.  
  83. public OnFilterScriptExit()
  84. {
  85. return 1;
  86. }
  87.  
  88. public OnPlayerConnect( playerid )
  89. {
  90. IsDuel[ playerid ] = 0;
  91. InDuel[ playerid ] = 0;
  92. return 1;
  93. }
  94.  
  95. public OnPlayerDisconnect(playerid, reason)
  96. {
  97. return 1;
  98. }
  99.  
  100. public OnPlayerSpawn(playerid)
  101. {
  102. return 1;
  103. }
  104.  
  105. public OnPlayerDeath( playerid , killerid , reason )
  106. {
  107. if( InDuel[ playerid ] == 1 )
  108. {
  109. GivePlayerMoney( playerid , -G_BET );
  110. GivePlayerMoney( playerid , G_BET );
  111. format( G_str , sizeof( G_str ) , "[ "R"Duel "W"]"O"%s "W"a castigat iar "O"%s "W"a pierdut "R"%d $" , GetName( killerid ) , GetName( playerid ) , G_BET );
  112. SendClientMessageToAll( -1 , G_str );
  113. G_Ini = -1;G_Oponent = -1;G_Weap1 = 0;
  114. G_Weap2 = 0;G_Weap3 = 0;G_BET = 0;
  115. InDuel[ playerid ] = 0;
  116. InDuel[ killerid ] = 0;
  117. }
  118. return 1;
  119. }
  120. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  121. {
  122. switch(dialogid)
  123. {
  124. case Duel_Dialog:
  125. {
  126. switch(listitem)
  127. {
  128. case 0:
  129. {
  130. if( response )return SPD(playerid,Duel_Dialog + 1 ,Input,""R"C"W"oins-"O"B"W"et",""O"S"W"crie mai jos bet pentru duel","Select","Back");
  131. }
  132. case 1:
  133. {
  134. if( response )return SPD(playerid,Duel_Dialog + 2 ,List,""O"W"W"eapon 1",""O"9"W"mm\n"O"D"W"eagle\n"O"S"W"iliced","Select","Back");
  135. }
  136. case 2:
  137. {
  138. if( response )return SPD(playerid,Duel_Dialog + 3 ,List,""O"W"W"eapon 2",""O"U"W"zi\n"O"M"W"p5\n"O"T"W"ec-9","Select","Back");
  139. }
  140. case 3:
  141. {
  142. if( response )return SPD(playerid,Duel_Dialog + 4 ,List,""O"W"W"eapon 3",""O"S"W"hotGun\n"O"C"W"ombat-"O"S"W"hotGun\n"O"S"W"awnoff-"O"S"W"hotgun","Select","Back");
  143. }
  144. case 4:
  145. {
  146. if( response )
  147. {
  148. format(G_str,sizeof(G_str),""O"T"W"rimiti cerea de duel catre "R"%s "W"?",GetName( G_Oponent ) );
  149. SPD(playerid,Duel_Dialog + 5 ,Box,""R"D"W"uel-"O"I"W"nvite",G_str,"Duel","Exit");
  150. }
  151. }
  152. }
  153. }
  154. case Duel_Dialog + 1 :
  155. {
  156. if( !response )return SPD(playerid,Duel_Dialog,DIALOG_STYLE_LIST,""R"D"W"uel-"O"O"W"ptions",""O"C"W"oins bet\n"O"W"W"eapon 1\n"O"W"W"eapon 2\n"O"W"W"eapon 3\n"O"S"W"tart-"O"D"W"uel","Duel","Exit");
  157. if( response )
  158. {
  159. if( !strval( inputtext ) )return SPD(playerid,Duel_Dialog + 1 ,Input,""R"C"W"oins-"O"B"W"et",""O"S"W"crie mai jos bet pentru duel( "R"T"W"rebuie sa scri un bet )","Select","Back");
  160. if( strval( inputtext ) > 9999 )return SPD(playerid,Duel_Dialog + 1 ,Input,""R"C"W"oins-"O"B"W"et",""O"S"W"crie mai jos bet pentru duel( "R"M"W"ax 9999 )","Select","Back");
  161. if( strval( inputtext ) > GetPlayerMoney( G_Ini ) )return SPD(playerid,Duel_Dialog + 1 ,Input,""R"C"W"oins-"O"B"W"et",""O"S"W"crie mai jos bet pentru duel( "R"N"W"u ai atatia bani )","Select","Back");
  162. G_BET = strval( inputtext );
  163. format(G_str,sizeof(G_str),""O"C"W"oins bet [ "R"%d "W"]\n"O"W"W"eapon 1\n"O"W"W"eapon 2\n"O"W"W"eapon 3\n"O"S"W"tart-"R"D"W"uel",G_BET);
  164. ShowPlayerDialog(playerid,Duel_Dialog,List,""R"D"W"uel-"O"O"W"ptions",G_str,"Duel","Exit");
  165. }
  166. }
  167. case Duel_Dialog + 2 :
  168. {
  169. if( !response )return SPD(playerid,Duel_Dialog,DIALOG_STYLE_LIST,""R"D"W"uel-"O"O"W"ptions",""O"C"W"oins bet\n"O"W"W"eapon 1\n"O"W"W"eapon 2\n"O"W"W"eapon 3\n"O"S"W"tart-"O"D"W"uel","Duel","Exit");
  170. switch( listitem )
  171. {
  172. case 0:
  173. {
  174. G_Weap1 = 22;
  175. format(G_str,sizeof(G_str),""O"C"W"oins bet [ "R"%d "W"]\n"O"W"W"eapon 1 [ "R"%d "W"]\n"O"W"W"eapon 2\n"O"W"W"eapon 3\n"O"S"W"tart-"R"D"W"uel",G_BET,G_Weap1);
  176. ShowPlayerDialog(playerid,Duel_Dialog,List,""R"D"W"uel-"O"O"W"ptions",G_str,"Duel","Exit");
  177. }
  178. case 1:
  179. {
  180. G_Weap1 = 24;
  181. format(G_str,sizeof(G_str),""O"C"W"oins bet [ "R"%d "W"]\n"O"W"W"eapon 1 [ "R"%d "W"]\n"O"W"W"eapon 2\n"O"W"W"eapon 3\n"O"S"W"tart-"R"D"W"uel",G_BET,G_Weap1);
  182. ShowPlayerDialog(playerid,Duel_Dialog,List,""R"D"W"uel-"O"O"W"ptions",G_str,"Duel","Exit");
  183. }
  184. case 2:
  185. {
  186. G_Weap1 = 23;
  187. format(G_str,sizeof(G_str),""O"C"W"oins bet [ "R"%d "W"]\n"O"W"W"eapon 1 [ "R"%d "W"]\n"O"W"W"eapon 2\n"O"W"W"eapon 3\n"O"S"W"tart-"R"D"W"uel",G_BET,G_Weap1);
  188. ShowPlayerDialog(playerid,Duel_Dialog,List,""R"D"W"uel-"O"O"W"ptions",G_str,"Duel","Exit");
  189. }
  190. }
  191. }
  192. case Duel_Dialog + 3 :
  193. {
  194. if( !response )return SPD(playerid,Duel_Dialog,DIALOG_STYLE_LIST,""R"D"W"uel-"O"O"W"ptions",""O"C"W"oins bet\n"O"W"W"eapon 1\n"O"W"W"eapon 2\n"O"W"W"eapon 3\n"O"S"W"tart-"O"D"W"uel","Duel","Exit");
  195. switch( listitem )
  196. {
  197. case 0:
  198. {
  199. G_Weap2 = 28;
  200. format(G_str,sizeof(G_str),""O"C"W"oins bet [ "R"%d "W"]\n"O"W"W"eapon 1 [ "R"%d "W"]\n"O"W"W"eapon 2 [ "R"%d "W"]\n"O"W"W"eapon 3\n"O"S"W"tart-"R"D"W"uel",G_BET,G_Weap1,G_Weap2);
  201. ShowPlayerDialog(playerid,Duel_Dialog,List,""R"D"W"uel-"O"O"W"ptions",G_str,"Duel","Exit");
  202. }
  203. case 1:
  204. {
  205. G_Weap2 = 29;
  206. format(G_str,sizeof(G_str),""O"C"W"oins bet [ "R"%d "W"]\n"O"W"W"eapon 1 [ "R"%d "W"]\n"O"W"W"eapon 2 [ "R"%d "W"]\n"O"W"W"eapon 3\n"O"S"W"tart-"R"D"W"uel",G_BET,G_Weap1,G_Weap2);
  207. ShowPlayerDialog(playerid,Duel_Dialog,List,""R"D"W"uel-"O"O"W"ptions",G_str,"Duel","Exit");
  208. }
  209. case 2:
  210. {
  211. G_Weap2 = 32;
  212. format(G_str,sizeof(G_str),""O"C"W"oins bet [ "R"%d "W"]\n"O"W"W"eapon 1 [ "R"%d "W"]\n"O"W"W"eapon 2 [ "R"%d "W"]\n"O"W"W"eapon 3\n"O"S"W"tart-"R"D"W"uel",G_BET,G_Weap1,G_Weap2);
  213. ShowPlayerDialog(playerid,Duel_Dialog,List,""R"D"W"uel-"O"O"W"ptions",G_str,"Duel","Exit");
  214. }
  215. }
  216. }
  217. case Duel_Dialog + 4 :
  218. {
  219. if( !response )return SPD(playerid,Duel_Dialog,DIALOG_STYLE_LIST,""R"D"W"uel-"O"O"W"ptions",""O"C"W"oins bet\n"O"W"W"eapon 1\n"O"W"W"eapon 2\n"O"W"W"eapon 3\n"O"S"W"tart-"O"D"W"uel","Duel","Exit");
  220. switch( listitem )
  221. {
  222. case 0:
  223. {
  224. G_Weap3 = 25;
  225. format(G_str,sizeof(G_str),""O"C"W"oins bet [ "R"%d "W"]\n"O"W"W"eapon 1 [ "R"%d "W"]\n"O"W"W"eapon 2 [ "R"%d "W"]\n"O"W"W"eapon 3 [ "R"%d "W"]\n"O"S"W"tart-"R"D"W"uel",G_BET,G_Weap1,G_Weap2,G_Weap3);
  226. ShowPlayerDialog(playerid,Duel_Dialog,List,""R"D"W"uel-"O"O"W"ptions",G_str,"Duel","Exit");
  227. }
  228. case 1:
  229. {
  230. G_Weap3 = 27;
  231. format(G_str,sizeof(G_str),""O"C"W"oins bet [ "R"%d "W"]\n"O"W"W"eapon 1 [ "R"%d "W"]\n"O"W"W"eapon 2 [ "R"%d "W"]\n"O"W"W"eapon 3 [ "R"%d "W"]\n"O"S"W"tart-"R"D"W"uel",G_BET,G_Weap1,G_Weap2,G_Weap3);
  232. ShowPlayerDialog(playerid,Duel_Dialog,List,""R"D"W"uel-"O"O"W"ptions",G_str,"Duel","Exit");
  233. }
  234. case 2:
  235. {
  236. G_Weap3 = 26;
  237. format(G_str,sizeof(G_str),""O"C"W"oins bet [ "R"%d "W"]\n"O"W"W"eapon 1 [ "R"%d "W"]\n"O"W"W"eapon 2 [ "R"%d "W"]\n"O"W"W"eapon 3 [ "R"%d "W"]\n"O"S"W"tart-"R"D"W"uel",G_BET,G_Weap1,G_Weap2,G_Weap3);
  238. ShowPlayerDialog(playerid,Duel_Dialog,List,""R"D"W"uel-"O"O"W"ptions",G_str,"Duel","Exit");
  239. }
  240. }
  241. }
  242. case Duel_Dialog + 5 :
  243. {
  244. if( !response )return SPD(playerid,Duel_Dialog,DIALOG_STYLE_LIST,""R"D"W"uel-"O"O"W"ptions",""O"C"W"oins bet\n"O"W"W"eapon 1\n"O"W"W"eapon 2\n"O"W"W"eapon 3\n"O"S"W"tart-"O"D"W"uel","Duel","Exit");
  245. if( response )
  246. {
  247. format( G_str , sizeof(G_str) , ""O"%s "W"doreste sa faca un duel cu tine cu armele ["R"%d"W"]["R"%d"W"]["R"%d"W"] si betul ["R"%d"W"]" , GetName( G_Ini ) , G_Weap1 , G_Weap2 , G_Weap3 , G_BET);
  248. SPD( G_Oponent , Duel_Dialog + 6 , Box , ""R"D"W"uel-"O"I"W"nvitation" , G_str , "Accept" , "Decline" );
  249.  
  250. }
  251. }
  252. case Duel_Dialog + 6 :
  253. {
  254. if( !response )
  255. {
  256. format( G_str , sizeof(G_str) , ""R"%s "W"a refuzat duelul" , GetName( G_Oponent ) );
  257. SCM( G_Ini , -1 , G_str );
  258. G_Ini = -1;G_Oponent = -1;G_Weap1 = 0;
  259. G_Weap2 = 0;G_Weap3 = 0;G_BET = 0;
  260. }
  261. if( response )
  262. {
  263. format( G_str , sizeof(G_str) , ""R"%s "W"a aceptat duelul" , GetName( G_Oponent ) );
  264. SCM( G_Ini , -1 , G_str );
  265. GivePlayerMoney(G_Ini,-G_BET);
  266. GivePlayerMoney(G_Oponent,-G_BET);
  267. ResetPlayerWeapons(G_Ini);
  268. ResetPlayerWeapons(G_Oponent);
  269. GivePlayerWeapon(G_Ini,G_Weap1,99999);
  270. GivePlayerWeapon(G_Ini,G_Weap2,99999);
  271. GivePlayerWeapon(G_Ini,G_Weap3,99999);
  272. GivePlayerWeapon(G_Oponent,G_Weap1,99999);
  273. GivePlayerWeapon(G_Oponent,G_Weap2,99999);
  274. GivePlayerWeapon(G_Oponent,G_Weap3,99999);
  275. SetPlayerPos(G_Ini,3234.0310,-2850.8220,76.8211);
  276. SetPlayerPos(G_Oponent,3230.7793,-2820.7405,76.8211);
  277. InDuel[ G_Ini ] = 1;
  278. InDuel[ G_Oponent ] = 1;
  279. foreach(new i: Player)IsDuel[ i ] = 1;
  280. }
  281. }
  282. }
  283. return 1;
  284. }
  285. CMD:duel( playerid , params [ ] )
  286. {
  287. new Oponenta;
  288. if( sscanf(params , "u" , Oponenta ) )return SCM(playerid,-1,""R"Use"W": "O"/duel "W"< "R"playerid "W">");
  289. G_Oponent = Oponenta;
  290. G_Ini = playerid;
  291. if( Oponenta == G_Ini )return SCM(playerid,-1,""R"N"W"u poti da duel cu tine");
  292. if( Oponenta == IPI )return SCM(playerid,-1,""R"Error"W": "O"P"W"layer neconectat !");
  293. if( IsDuel[ playerid ] != 0 )return SCM(playerid,-1,""R"Error"W":"O"E"W"sti deja intr-un duel !");
  294. SPD(playerid,Duel_Dialog,DIALOG_STYLE_LIST,""R"D"W"uel-"O"O"W"ptions",""O"C"W"oins bet\n"O"W"W"eapon 1\n"O"W"W"eapon 2\n"O"W"W"eapon 3","Duel","Exit");
  295. return 1;
  296. }
  297.  
  298. stock GetName(playerid)
  299. {
  300. new name[MAX_PLAYER_NAME];
  301. GetPlayerName(playerid,name,sizeof(name));
  302. return name;
  303. }
Advertisement
Add Comment
Please, Sign In to add comment