Guest User

[FS] Calculator || Dialog

a guest
Dec 12th, 2011
286
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 13.72 KB | None | 0 0
  1. /*
  2. |------------------------------|
  3. | [FS] Calculator by TiNcH010 |
  4. |------------------------------|
  5. */
  6.  
  7.  
  8. #include <a_samp>
  9.  
  10. #pragma tabsize 0 // We avoid the warning "Loose identiation".
  11.  
  12. #define Calculator_Menu 9357 // Dialog ID - Calculator menu. (change if desired)
  13.  
  14. enum PCalculation
  15. {
  16. Add,
  17. AddedBy,
  18. Subtract,
  19. BySubtraction,
  20. Multiply,
  21. MultiplyBy,
  22. Divide,
  23. DivideBy,
  24. Root
  25. }
  26. new PCalculate[MAX_PLAYERS][PCalculation];
  27.  
  28. #define FILTERSCRIPT
  29. #if defined FILTERSCRIPT
  30.  
  31. public OnFilterScriptInit()
  32. {
  33. print("\n--------------------------------------");
  34. print("====Dialog Calculator By TiNcH010====");
  35. print("--------------------------------------\n");
  36. return 1;
  37. }
  38.  
  39. #endif
  40.  
  41. public OnPlayerConnect(playerid)
  42. {
  43. PCalculate[playerid][Add] = 0;
  44. PCalculate[playerid][AddedBy] = 0;
  45. PCalculate[playerid][Subtract] = 0;
  46. PCalculate[playerid][BySubtraction] = 0;
  47. PCalculate[playerid][Multiply] = 0;
  48. PCalculate[playerid][MultiplyBy] = 0;
  49. PCalculate[playerid][Divide] = 0;
  50. PCalculate[playerid][DivideBy] = 0;
  51. PCalculate[playerid][Root] = 0;
  52. return 1;
  53. }
  54.  
  55. public OnPlayerDisconnect(playerid)
  56. {
  57. PCalculate[playerid][Add] = 0;
  58. PCalculate[playerid][AddedBy] = 0;
  59. PCalculate[playerid][Subtract] = 0;
  60. PCalculate[playerid][BySubtraction] = 0;
  61. PCalculate[playerid][Multiply] = 0;
  62. PCalculate[playerid][MultiplyBy] = 0;
  63. PCalculate[playerid][Divide] = 0;
  64. PCalculate[playerid][DivideBy] = 0;
  65. PCalculate[playerid][Root] = 0;
  66. return 1;
  67. }
  68.  
  69. public OnPlayerCommandText(playerid, cmdtext[])
  70. {
  71. new cmd[256], idx;
  72. cmd = strtok(cmdtext, idx);
  73.  
  74. if(strcmp(cmd, "/calculator", true) == 0) {
  75. ShowPlayerDialog(playerid, Calculator_Menu, DIALOG_STYLE_LIST, "{33CCFF}Calculator Menu {FFFFFF}| {33CCFF}Choose one item","{FF0066}Add {FFFFFF}(+)\n{FF0066}Subtract {FFFFFF}(-)\n{FF0066}Multiply {FFFFFF}(*)\n{FF0066}Divide {FFFFFF}(/)\n{FF0066}Square Root",">>>","Cancel");
  76. return 1; }
  77. return 0;
  78. }
  79.  
  80. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  81. {
  82. if(dialogid == Calculator_Menu)
  83. {
  84.  
  85. if(response)
  86. {
  87. if(listitem == 0)
  88. {
  89. new Calculator[128+1];
  90. format(Calculator,128,"{33FFFF}Calculator: Put the number you want to add.\n\n\n\t1\t2\t3\n\t4\t5\t6\n\t7\t8\t9\n\t#\t0\t*");
  91. ShowPlayerDialog(playerid, Calculator_Menu+1, DIALOG_STYLE_INPUT, "{EE7777}Calculate. [Add]",Calculator,"+","Go Back");
  92. }
  93. if(listitem == 1)
  94. {
  95. new Calculator[128+1];
  96. format(Calculator,128,"{33FFFF}Calculator: Put the number you want to subtract.\n\n\n\t1\t2\t3\n\t4\t5\t6\n\t7\t8\t9\n\t#\t0\t*");
  97. ShowPlayerDialog(playerid, Calculator_Menu+3, DIALOG_STYLE_INPUT, "{EE7777}Calculate. [Subtract]",Calculator,"-","Go Back");
  98. }
  99. if(listitem == 2)
  100. {
  101. new Calculator[128+1];
  102. format(Calculator,128,"{33FFFF}Calculator: Put the number you want to multiply.\n\n\n\t1\t2\t3\n\t4\t5\t6\n\t7\t8\t9\n\t#\t0\t*");
  103. ShowPlayerDialog(playerid, Calculator_Menu+5, DIALOG_STYLE_INPUT, "{EE7777}Calculate. [Multiplication]",Calculator,"*","Go Back");
  104. }
  105. if(listitem == 3)
  106. {
  107. new Calculator[128+1];
  108. format(Calculator,128,"{33FFFF}Calculator: Put the number you want to divide.\n\n\n\t1\t2\t3\n\t4\t5\t6\n\t7\t8\t9\n\t#\t0\t*");
  109. ShowPlayerDialog(playerid, Calculator_Menu+7, DIALOG_STYLE_INPUT, "{EE7777}Calculate. [Division]",Calculator,"/","Go Back");
  110. }
  111. if(listitem == 4)
  112. {
  113. new Calculator[128+1];
  114. format(Calculator,128,"{33FFFF}Calculator: Put the number you want to get the root.\n\n\n\t1\t2\t3\n\t4\t5\t6\n\t7\t8\t9\n\t#\t0\t*");
  115. ShowPlayerDialog(playerid, Calculator_Menu+9, DIALOG_STYLE_INPUT, "{EE7777}Calculate. [Square Root]",Calculator,"Root","Go Back");
  116. }
  117. }
  118. return 1;
  119. }
  120.  
  121. if(dialogid == Calculator_Menu+1)
  122. {
  123.  
  124. if(response)
  125. {
  126.  
  127. if(!strlen(inputtext)) return ShowPlayerDialog(playerid, Calculator_Menu+1, DIALOG_STYLE_INPUT, "{FF0000}Invalid Spaces","{FFFFFF}Please enter a number you'll earn after","+","Go Back");
  128.  
  129. new MResult = strval(inputtext);
  130. PCalculate[playerid][Add] = MResult;
  131. new Calculator[128+1];
  132. format(Calculator,128,"{33FFFF}Calculator: Put the number you want to add.\n\n\n\t1\t2\t3\n\t4\t5\t6\n\t7\t8\t9\n\t#\t0\t*");
  133. ShowPlayerDialog(playerid,Calculator_Menu+2,DIALOG_STYLE_INPUT,"{EE7777}Calculate. [Add]",Calculator,"=","Go Back");
  134. }
  135. if(!response)
  136. {
  137. PCalculate[playerid][Add] = 0;
  138. ShowPlayerDialog(playerid, Calculator_Menu, DIALOG_STYLE_LIST, "{33CCFF}Calculator Menu {FFFFFF}| {33CCFF}Choose one item","{FF0066}Add {FFFFFF}(+)\n{FF0066}Subtract {FFFFFF}(-)\n{FF0066}Multiply {FFFFFF}(*)\n{FF0066}Divide {FFFFFF}(/)\n{FF0066}Square Root",">>>","Cancel");
  139. }
  140. return 1;
  141. }
  142.  
  143. if(dialogid == Calculator_Menu+2)
  144. {
  145.  
  146. if(response)
  147. {
  148.  
  149. if(!strlen(inputtext)) return ShowPlayerDialog(playerid, Calculator_Menu+1, DIALOG_STYLE_INPUT, "{FF0000}Invalid Spaces","{FFFFFF}Please enter a number you'll earn after","+","Go Back");
  150.  
  151. new MResult2 = strval(inputtext);
  152. PCalculate[playerid][AddedBy] = MResult2;
  153. new result[128];
  154. format(result, sizeof(result), "{FF9966}The result of: {FFFFFF}%d + %d {FF9966}is: {33FF66}%d", PCalculate[playerid][Add], PCalculate[playerid][AddedBy], PCalculate[playerid][Add]+PCalculate[playerid][AddedBy]);
  155. ShowPlayerDialog(playerid, Calculator_Menu, DIALOG_STYLE_MSGBOX, "Result:", result, "Ok", "Exit");
  156. }
  157. if(!response)
  158. {
  159. PCalculate[playerid][AddedBy] = 0;
  160. new Calculator[128+1];
  161. format(Calculator,128,"{33FFFF}Calculator: Put the number you want to add.\n\n\n\t1\t2\t3\n\t4\t5\t6\n\t7\t8\t9\n\t#\t0\t*");
  162. ShowPlayerDialog(playerid,Calculator_Menu+1,DIALOG_STYLE_INPUT,"{EE7777}Calculate. [Add]",Calculator,"+","Go Back");
  163. }
  164. return 1;
  165. }
  166.  
  167. if(dialogid == Calculator_Menu+3)
  168. {
  169.  
  170. if(response)
  171. {
  172.  
  173. if(!strlen(inputtext)) return ShowPlayerDialog(playerid, Calculator_Menu+3, DIALOG_STYLE_INPUT, "{FF0000}Invalid Spaces","{FFFFFF}Please enter a number you then subtract","-","Go Back");
  174.  
  175. new MResult = strval(inputtext);
  176. PCalculate[playerid][Subtract] = MResult;
  177. new Calculator[128+1];
  178. format(Calculator,128,"{33FFFF}Calculator: Put the number you want to subtract.\n\n\n\t1\t2\t3\n\t4\t5\t6\n\t7\t8\t9\n\t#\t0\t*");
  179. ShowPlayerDialog(playerid,Calculator_Menu+4,DIALOG_STYLE_INPUT,"{EE7777}Calculate. [Subtract]",Calculator,"=","Go Back");
  180. }
  181. if(!response)
  182. {
  183. PCalculate[playerid][Subtract] = 0;
  184. ShowPlayerDialog(playerid, Calculator_Menu, DIALOG_STYLE_LIST, "{33CCFF}Calculator Menu {FFFFFF}| {33CCFF}Choose one item","{FF0066}Add {FFFFFF}(+)\n{FF0066}Subtract {FFFFFF}(-)\n{FF0066}Multiply {FFFFFF}(*)\n{FF0066}Divide {FFFFFF}(/)\n{FF0066}Square Root",">>>","Cancel");
  185. }
  186. return 1;
  187. }
  188.  
  189. if(dialogid == Calculator_Menu+4)
  190. {
  191.  
  192. if(response)
  193. {
  194.  
  195. if(!strlen(inputtext)) return ShowPlayerDialog(playerid, Calculator_Menu+3, DIALOG_STYLE_INPUT, "{FF0000}Invalid Spaces","{FFFFFF}Please enter a number you then subtract","-","Atras");
  196.  
  197. new MResult2 = strval(inputtext);
  198. PCalculate[playerid][BySubtraction] = MResult2;
  199. new result[128];
  200. format(result, sizeof(result), "{FF9966}The result of: {FFFFFF}%d - %d {FF9966}is: {33FF66}%d", PCalculate[playerid][Subtract], PCalculate[playerid][BySubtraction], PCalculate[playerid][Subtract]-PCalculate[playerid][BySubtraction]);
  201. ShowPlayerDialog(playerid, Calculator_Menu, DIALOG_STYLE_MSGBOX, "Result:", result, "Ok", "Exit");
  202. }
  203. if(!response)
  204. {
  205. PCalculate[playerid][BySubtraction] = 0;
  206. new Calculator[128+1];
  207. format(Calculator,128,"{33FFFF}Calculator: Put the number you want to subtract.\n\n\n\t1\t2\t3\n\t4\t5\t6\n\t7\t8\t9\n\t#\t0\t*");
  208. ShowPlayerDialog(playerid,Calculator_Menu+3,DIALOG_STYLE_INPUT,"{EE7777}Calculate. [Subtract]",Calculator,"-","Go Back");
  209. }
  210. return 1;
  211. }
  212.  
  213. if(dialogid == Calculator_Menu+5)
  214. {
  215.  
  216. if(response)
  217. {
  218.  
  219. if(!strlen(inputtext)) return ShowPlayerDialog(playerid, Calculator_Menu+5, DIALOG_STYLE_INPUT, "{FF0000}Invalid Spaces","{FFFFFF}Please enter a number you are then multiplied","*","Atras");
  220.  
  221. new MResult = strval(inputtext);
  222. PCalculate[playerid][Multiply] = MResult;
  223. new Calculator[128+1];
  224. format(Calculator,128,"{33FFFF}Calculator: Put the number you want to multiply.\n\n\n\t1\t2\t3\n\t4\t5\t6\n\t7\t8\t9\n\t#\t0\t*");
  225. ShowPlayerDialog(playerid,Calculator_Menu+6,DIALOG_STYLE_INPUT,"{EE7777}Calculate. [Multiplication]",Calculator,"=","Go Back");
  226. }
  227. if(!response)
  228. {
  229. PCalculate[playerid][Multiply] = 0;
  230. ShowPlayerDialog(playerid, Calculator_Menu, DIALOG_STYLE_LIST, "{33CCFF}Calculator Menu {FFFFFF}| {33CCFF}Choose one item","{FF0066}Add {FFFFFF}(+)\n{FF0066}Subtract {FFFFFF}(-)\n{FF0066}Multiply {FFFFFF}(*)\n{FF0066}Divide {FFFFFF}(/)\n{FF0066}Square Root",">>>","Cancel");
  231. }
  232. return 1;
  233. }
  234.  
  235. if(dialogid == Calculator_Menu+6)
  236. {
  237.  
  238. if(response)
  239. {
  240.  
  241. if(!strlen(inputtext)) return ShowPlayerDialog(playerid, Calculator_Menu+5, DIALOG_STYLE_INPUT, "{FF0000}Invalid Spaces","{FFFFFF}Please enter a number you are then multiplied","*","Atras");
  242.  
  243. new MResult2 = strval(inputtext);
  244. PCalculate[playerid][MultiplyBy] = MResult2;
  245. new result[128];
  246. format(result, sizeof(result), "{FF9966}The result of: {FFFFFF}%d * %d {FF9966}is: {33FF66}%0.6f", PCalculate[playerid][Multiply], PCalculate[playerid][MultiplyBy], floatmul(PCalculate[playerid][Multiply],PCalculate[playerid][MultiplyBy]));
  247. ShowPlayerDialog(playerid, Calculator_Menu, DIALOG_STYLE_MSGBOX, "Result:", result, "Ok", "Exit");
  248. }
  249. if(!response)
  250. {
  251. PCalculate[playerid][MultiplyBy] = 0;
  252. new Calculator[128+1];
  253. format(Calculator,128,"{33FFFF}Calculator: Put the number you want to multiply.\n\n\n\t1\t2\t3\n\t4\t5\t6\n\t7\t8\t9\n\t#\t0\t*");
  254. ShowPlayerDialog(playerid,Calculator_Menu+5,DIALOG_STYLE_INPUT,"{EE7777}Calculate. [Multiplication]",Calculator,"*","Go Back");
  255. }
  256. return 1;
  257. }
  258.  
  259. if(dialogid == Calculator_Menu+7)
  260. {
  261.  
  262. if(response)
  263. {
  264.  
  265. if(!strlen(inputtext)) return ShowPlayerDialog(playerid, Calculator_Menu+7, DIALOG_STYLE_INPUT, "{FF0000}Invalid Spaces","{FFFFFF}Please enter a number that will divide after","/","Go Back");
  266.  
  267. new MResult = strval(inputtext);
  268. PCalculate[playerid][Divide] = MResult;
  269. new Calculator[128+1];
  270. format(Calculator,128,"{33FFFF}Calculator: Put the number you want to divide.\n\n\n\t1\t2\t3\n\t4\t5\t6\n\t7\t8\t9\n\t#\t0\t*");
  271. ShowPlayerDialog(playerid,Calculator_Menu+8,DIALOG_STYLE_INPUT,"{EE7777}Calculate. [Division]",Calculator,"=","Go Back");
  272. }
  273. if(!response)
  274. {
  275. PCalculate[playerid][Divide] = 0;
  276. ShowPlayerDialog(playerid, Calculator_Menu, DIALOG_STYLE_LIST, "{33CCFF}Calculator Menu {FFFFFF}| {33CCFF}Choose one item","{FF0066}Add {FFFFFF}(+)\n{FF0066}Subtract {FFFFFF}(-)\n{FF0066}Multiply {FFFFFF}(*)\n{FF0066}Divide {FFFFFF}(/)\n{FF0066}Square Root",">>>","Cancel");
  277. }
  278. return 1;
  279. }
  280.  
  281. if(dialogid == Calculator_Menu+8)
  282. {
  283.  
  284. if(response)
  285. {
  286.  
  287. if(!strlen(inputtext)) return ShowPlayerDialog(playerid, Calculator_Menu+7, DIALOG_STYLE_INPUT, "{FF0000}Invalid Spaces","{FFFFFF}Please enter a number that will divide after","/","Go Back");
  288.  
  289. new MResult2 = strval(inputtext);
  290. PCalculate[playerid][DivideBy] = MResult2;
  291. new result[128];
  292. format(result, sizeof(result), "{FF9966}The result of: {FFFFFF}%d / %d {FF9966}is: {33FF66}%0.6f", PCalculate[playerid][Divide], PCalculate[playerid][DivideBy], floatdiv(PCalculate[playerid][Divide],PCalculate[playerid][DivideBy]));
  293. ShowPlayerDialog(playerid, Calculator_Menu, DIALOG_STYLE_MSGBOX, "Result:", result, "Ok", "Exit");
  294. }
  295. if(!response)
  296. {
  297. PCalculate[playerid][DivideBy] = 0;
  298. new Calculator[128+1];
  299. format(Calculator,128,"{33FFFF}Calculator: Put the number you want to divide.\n\n\n\t1\t2\t3\n\t4\t5\t6\n\t7\t8\t9\n\t#\t0\t*");
  300. ShowPlayerDialog(playerid,Calculator_Menu+7,DIALOG_STYLE_INPUT,"{EE7777}Calcular. [Division]",Calculator,"/","Go Back");
  301. }
  302. return 1;
  303. }
  304. if(dialogid == Calculator_Menu+9)
  305. {
  306.  
  307. if(response)
  308. {
  309.  
  310. if(!strlen(inputtext)) return ShowPlayerDialog(playerid, Calculator_Menu+9, DIALOG_STYLE_INPUT, "{FF0000}Invalid Spaces","{FFFFFF}Please enter a number to obtain a consistent square root","Root","Go Back");
  311.  
  312. new MResult = strval(inputtext);
  313. PCalculate[playerid][Root] = MResult;
  314. new result[128];
  315. format(result, sizeof(result), "{FF9966}The result of: {FFFFFF}Root of %d{FF9966}is: {33FF66}%0.6f", PCalculate[playerid][Root], floatsqroot(PCalculate[playerid][Root]));
  316. ShowPlayerDialog(playerid, Calculator_Menu, DIALOG_STYLE_MSGBOX, "Result:", result, "Ok", "Exit");
  317. }
  318. if(!response)
  319. {
  320. PCalculate[playerid][Root] = 0;
  321. ShowPlayerDialog(playerid, Calculator_Menu, DIALOG_STYLE_LIST, "{33CCFF}Calculator Menu {FFFFFF}| {33CCFF}Choose one item","{FF0066}Add {FFFFFF}(+)\n{FF0066}Subtract {FFFFFF}(-)\n{FF0066}Multiply {FFFFFF}(*)\n{FF0066}Divide {FFFFFF}(/)\n{FF0066}Square Root",">>>","Cancel");
  322. }
  323. return 1;
  324. }
  325. return 1;
  326. }
  327.  
  328. strtok(const string[], &index)
  329. {
  330. new length = strlen(string);
  331. while ((index < length) && (string[index] <= ' ')) {
  332. index++;
  333. }
  334. new offset = index;
  335. new result[20];
  336. while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1))) {
  337. result[index - offset] = string[index];
  338. index++;
  339. }
  340. result[index - offset] = EOS;
  341. return result;
  342. }
  343.  
  344. /*
  345. **********************
  346. * End FS Calculator *
  347. **********************
  348. */
  349.  
  350. // To www.forum.sa-mp.com
  351.  
Advertisement
Add Comment
Please, Sign In to add comment