Guest User

Untitled

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