Talavander

T-Banka Sistem

Dec 29th, 2011
419
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 15.28 KB | None | 0 0
  1. #include <a_samp>
  2. #include <Dini>
  3. #define PlayerFile "Banka/%s.ini"
  4. #define COLOR_RED 0xAA3333AA
  5. #define COLOR_YELLOW 0xFFFF00AA
  6. #define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1
  7. enum PLAYER_MAIN {
  8. Polaganje,
  9. };
  10. new pInformacije[MAX_PLAYERS][PLAYER_MAIN];
  11. new UlazBanka;
  12. new IzlazBanka;
  13. new igracid;
  14. public OnFilterScriptInit()
  15. {
  16. UlazBanka = CreatePickup(1272, 1, 1459.3008,-1010.8625,26.8438, 0);
  17. IzlazBanka = CreatePickup(1239, 1, 2304.7285,-16.0333,26.7422, 0);
  18. Create3DTextLabel("{ADD6FF}INTESA SANPAOLO BANKA",0x0000FFFF,1459.3008,-1010.8625,26.8438,40.0, 0);
  19. SetTimer("CallConnect",1,0);
  20. return 1;
  21. }
  22. forward CallConnect(playerid);
  23. public CallConnect(playerid)
  24. {
  25. for(new i = 0; i < MAX_PLAYERS; i++)
  26. {
  27. OnPlayerConnect(i);
  28. }
  29. return 1;
  30. }
  31. public OnPlayerConnect(playerid)
  32. {
  33. new file[100],Name[MAX_PLAYER_NAME]; GetPlayerName(playerid,Name,sizeof(Name)); format(file,sizeof(file),PlayerFile,Name);
  34. if(!dini_Exists(file)) {
  35. dini_Create(file);
  36. dini_IntSet(file,"Polaganje novca na raèun",pInformacije[playerid][Polaganje]);
  37. }
  38. else if(dini_Exists(file))
  39. {
  40. pInformacije[playerid][Polaganje] = dini_Int(file,"Polaganje novca na raèun");
  41. }
  42. return 1;
  43. }
  44.  
  45. public OnPlayerSpawn(playerid)
  46. {
  47. return 1;
  48. }
  49. public OnPlayerPickUpPickup(playerid,pickupid)
  50. {
  51. if(pickupid == UlazBanka)
  52. {
  53. SetPlayerPos(playerid,2313,-4, 27);
  54. SendClientMessage(playerid,COLOR_YELLOW,"Da vidite opcije kucajte /bank");
  55. SetCameraBehindPlayer(playerid);
  56. return 0;
  57. }
  58. if(pickupid == IzlazBanka)
  59. {
  60. SetPlayerPos(playerid,1465.1335,-1010.9656,26.8438);
  61. SetPlayerFacingAngle(playerid,0.0);
  62. SetCameraBehindPlayer(playerid);
  63. return 0;
  64. }
  65. return 1;
  66. }
  67. public OnPlayerDisconnect(playerid, reason)
  68. {
  69. new file[100],Name[MAX_PLAYER_NAME]; GetPlayerName(playerid,Name,sizeof(Name)); format(file,sizeof(file),PlayerFile,Name);
  70. dini_IntSet(file,"Polaganje novca na raèun",pInformacije[playerid][Polaganje]);
  71. return 1;
  72. }
  73. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  74. {
  75. if(dialogid == 5)
  76. {
  77. new file[100],Name[MAX_PLAYER_NAME]; GetPlayerName(playerid,Name,sizeof(Name)); format(file,sizeof(file),PlayerFile,Name);
  78. if(!response) return ShowPlayerDialog(playerid,4,DIALOG_STYLE_LIST,"{3BB6F7}Banka","Polaganje novca na raèun\nPodizanje novca\nStanje na raèunu\nTransfer novca","Odabir","Izlaz");
  79. else if(strval(inputtext) > GetPlayerMoney(playerid)) return SendClientMessage(playerid,COLOR_RED,"Nemate toliko novca!");
  80. else if(!IsNumeric(inputtext))
  81. {
  82. new string[128];
  83. format(string,sizeof(string),"Trenutno stanje na vašem raèunu je: %d\nUkucajte iznos koji želite da položite na raèun :",pInformacije[playerid][Polaganje]);
  84. ShowPlayerDialog(playerid,5,DIALOG_STYLE_INPUT,"Polaganje novca na raèun",string,"Položi","Nazad");
  85. SendClientMessage(playerid,COLOR_RED,"Koristite samo brojeve");
  86. }
  87. else
  88. {
  89. GivePlayerMoney(playerid,-strval(inputtext));
  90. pInformacije[playerid][Polaganje] += strval(inputtext);
  91. new string[128];
  92. format(string,sizeof(string),"Položio si na svoj raèun : %d$",strval(inputtext));
  93. SendClientMessage(playerid,COLOR_YELLOW,string);
  94. dini_IntSet(file,"Polaganje novca na raèun",pInformacije[playerid][Polaganje]);
  95. new string2[128]; format(string2,128,"Novo stanje na Vašem raèunu raèunu je : %d$",pInformacije[playerid][Polaganje]);
  96. SendClientMessage(playerid,COLOR_YELLOW,string2);
  97. ShowPlayerDialog(playerid,4,DIALOG_STYLE_LIST,"{3BB6F7}Banka","Polaganje novca na raèun\nPodizanje novca\nStanje na raèunu\nTransfer novca","Odabir","Izlaz");
  98. }
  99. return 1;
  100. }
  101. if(dialogid == 1123)
  102. {
  103. new file[100],Name[MAX_PLAYER_NAME]; GetPlayerName(playerid,Name,sizeof(Name)); format(file,sizeof(file),PlayerFile,Name);
  104. if(!response) return ShowPlayerDialog(playerid,4,DIALOG_STYLE_LIST,"{3BB6F7}Banka","Polaganje novca na raèun\nPodizanje novca\nStanje na raèunu\nTransfer novca","Odabir","Izlaz");
  105. else if(strval(inputtext) > pInformacije[playerid][Polaganje]) return SendClientMessage(playerid,COLOR_RED,"Nemate dovoljno novca!");
  106. else if(!IsNumeric(inputtext))
  107. {
  108. new string[128];
  109. format(string,sizeof(string),"Stanje na tvome raèunu je: %d\nUkucajte iznos koji želite da podignete :",pInformacije[playerid][Polaganje]);
  110. ShowPlayerDialog(playerid,1123,DIALOG_STYLE_INPUT,"Podizanje novca",string,"Podigni","Nazad");
  111. SendClientMessage(playerid,COLOR_RED,"Koristite samo brojeve");
  112. }
  113. else
  114. {
  115. GivePlayerMoney(playerid,strval(inputtext));
  116. pInformacije[playerid][Polaganje] -= strval(inputtext);
  117. new string[128];
  118. format(string,sizeof(string),"Podigli ste %d$ sa raèuna",strval(inputtext));
  119. SendClientMessage(playerid,COLOR_YELLOW,string);
  120. dini_IntSet(file,"Polaganje novca na raèun",pInformacije[playerid][Polaganje]);
  121. new string2[128]; format(string2,128,"Novo stanje na Vašem raèunu je: %d$",pInformacije[playerid][Polaganje]);
  122. SendClientMessage(playerid,COLOR_YELLOW,string2);
  123. ShowPlayerDialog(playerid,4,DIALOG_STYLE_LIST,"{3BB6F7}Banka","Polaganje novca na raèun\nPodizanje novca\nStanje na raèunu\nTransfer novca","Odabir","Izlaz");
  124. }
  125. return 1;
  126. }
  127. if(dialogid == 1)
  128. {
  129. if(!response) return ShowPlayerDialog(playerid,4,DIALOG_STYLE_LIST,"{3BB6F7}Banka","Polaganje novca na raèun\nPodizanje novca\nStanje na raèuna\nTransfer novca","Odabir","Izlaz");
  130. else
  131. {
  132. ShowPlayerDialog(playerid,4,DIALOG_STYLE_LIST,"{3BB6F7}Banka","Plaganje novca na raèun\nPodizanje novca\nStanje na raèunu\nTransfer novca","Odabir","Izlaz");
  133. }
  134. return 1;
  135. }
  136. if(dialogid == 2)
  137. {
  138. if(!response) return ShowPlayerDialog(playerid,4,DIALOG_STYLE_LIST,"{3BB6F7}Banka","Polaganje novca\nPodizanje novca\nStanje na raèunu\nTransfer novca","Odabir","Izlaz");
  139. else if(strval(inputtext) == INVALID_PLAYER_ID) return SendClientMessage(playerid,COLOR_RED,"Igrac je offline");
  140. else if(!IsNumeric(inputtext))
  141. {
  142. new string[128];
  143. format(string,sizeof(string),"Stanje na tvome raèunu je: %d$\nUkucaj ID igraèa kojem zeliš da prebaciš novac:",pInformacije[playerid][Polaganje]);
  144. ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT,"Transfer",string,"Dalje","Nazad");
  145. SendClientMessage(playerid,COLOR_RED,"Koristi brojeve (ID)");
  146. }
  147. else
  148. {
  149. igracid = strval(inputtext);
  150. new string[128];
  151. format(string,sizeof(string),"Stanje na raèunu : %d\n ID : %d\nUkucajte kolièinu novca koju želite da prebacite",pInformacije[playerid][Polaganje],igracid);
  152. ShowPlayerDialog(playerid,3,DIALOG_STYLE_INPUT,"Transfer",string,"Transfer","Nazad");
  153. }
  154. return 1;
  155. }
  156. if(dialogid == 3)
  157. {
  158. new file[100],Name[MAX_PLAYER_NAME]; GetPlayerName(playerid,Name,sizeof(Name)); format(file,sizeof(file),PlayerFile,Name);
  159. if(!response) return ShowPlayerDialog(playerid,4,DIALOG_STYLE_LIST,"{3BB6F7}Banka","Polaganje novca na raèun\npodizanje novca\nStanje na raèunu\nTransfer novca","Odaberi","Izlaz");
  160. else if(strval(inputtext) > pInformacije[playerid][Polaganje]) return SendClientMessage(playerid,COLOR_RED,"Nemaš dovoljnu kolièinu novca na raèunu!");
  161. else if(!IsNumeric(inputtext))
  162. {
  163. new string[128];
  164. format(string,sizeof(string),"Izaberi ID igraca : %d\nSada ukucaj iznos novca koji zeliš da prebaciš",igracid);
  165. ShowPlayerDialog(playerid,3,DIALOG_STYLE_INPUT,"Transfer",string,"Transfer","Nazad");
  166. SendClientMessage(playerid,COLOR_RED,"Koristi brojeve (ID)");
  167. }
  168. else
  169. {
  170. pInformacije[playerid][Polaganje] -= strval(inputtext);
  171. pInformacije[igracid][Polaganje] += strval(inputtext);
  172. new string[128];
  173. format(string,sizeof(string),"Prebacio si %d$ na raèun ID %d .",strval(inputtext),igracid);
  174. SendClientMessage(playerid,COLOR_YELLOW,string);
  175. dini_IntSet(file,"Polaganje novca na raèun",pInformacije[playerid][Polaganje]);
  176. new string2[128]; format(string2,128,"Stanje na tvome raèunu je: %d$",pInformacije[playerid][Polaganje]);
  177. SendClientMessage(playerid,COLOR_YELLOW,string2);
  178. new string3[128]; format(string3,128,"ID: %d ti je prebacio %d$ na tvoj raèun.",playerid,strval(inputtext));
  179. SendClientMessage(igracid,COLOR_YELLOW,string3);
  180. new string4[128]; format(string4,128,"Stanje na tvome raèunu je: %d$",pInformacije[igracid][Polaganje]);
  181. SendClientMessage(igracid,COLOR_YELLOW,string4);
  182. ShowPlayerDialog(playerid,4,DIALOG_STYLE_LIST,"{3BB6F7}Banka","Polaganje novca na raèun\nPodizanje novca sa raèuna\nStanje na raèunu\nTransfer novca","Odabir","Izlaz");
  183. }
  184. return 1;
  185. }
  186. if(dialogid == 4 && response)
  187. {
  188. switch(listitem)
  189. {
  190. case 0:
  191. {
  192. new string[128];
  193. format(string,sizeof(string),"Stanje na tvome raèunu je: %d$\nUkucaj iznos novca koji želiš da položiš na raèun. :",pInformacije[playerid][Polaganje]);
  194. ShowPlayerDialog(playerid,5,DIALOG_STYLE_INPUT,"Polaganje novca na raèun",string,"Položi","Nazad");
  195.  
  196. }
  197. case 1:
  198. {
  199. new string[128];
  200. format(string,sizeof(string),"Stanje na tvome raèunu je: %d\nUkucaj iznos novca koji želiš da podigneš sa raèuna:",pInformacije[playerid][Polaganje]);
  201. ShowPlayerDialog(playerid,1123,DIALOG_STYLE_INPUT,"Podizanje novca",string,"Podizanje","Nazad");
  202. }
  203. case 2:
  204. {
  205. new string[128];
  206. format(string,sizeof(string),"Stanje na tvome raèunu je: %d$",pInformacije[playerid][Polaganje]);
  207. ShowPlayerDialog(playerid,1,DIALOG_STYLE_MSGBOX,"Stanje na raèunu",string,"Ok","Nazad");
  208. }
  209. case 3:
  210. {
  211. new string[128];
  212. format(string,sizeof(string),"Stanje na tvome raèunu je: %d$\nUkucaj ID igraèa kojem zeliš da prebaciš novac:",pInformacije[playerid][Polaganje]);
  213. ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT,"Transfer",string,"Dalje","Nazad");
  214. }
  215. }
  216. }
  217. return 0;
  218. }
  219. public OnPlayerCommandText(playerid, cmdtext[])
  220. {
  221. dcmd(bank,4,cmdtext);
  222. return 0;
  223. }
  224. dcmd_bank(playerid,params[])
  225. {
  226. #pragma unused params
  227. if(!IsPlayerInRangeOfPoint(playerid,15.0,2313,-4, 27)) return SendClientMessage(playerid,COLOR_RED,"[GREŠKA]: Moraš biti u banci.");
  228. else
  229. {
  230. ShowPlayerDialog(playerid,4,DIALOG_STYLE_LIST,"{3BB6F7}Banka","Polaganje novca na raèun\nPodizanje novca sa raèuna\nStanje na raèunu\nTransfer novca","Odabir","Izlaz");
  231. }
  232. return 1;
  233. }
  234.  
  235. stock sscanf(string[], format[], {Float,_}:...)
  236. {
  237. #if defined isnull
  238. if (isnull(string))
  239. #else
  240. if (string[0] == 0 || (string[0] == 1 && string[1] == 0))
  241. #endif
  242. {
  243. return format[0];
  244. }
  245. #pragma tabsize 4
  246. new
  247. formatPos = 0,
  248. stringPos = 0,
  249. paramPos = 2,
  250. paramCount = numargs(),
  251. delim = ' ';
  252. while (string[stringPos] && string[stringPos] <= ' ')
  253. {
  254. stringPos++;
  255. }
  256. while (paramPos < paramCount && string[stringPos])
  257. {
  258. switch (format[formatPos++])
  259. {
  260. case '\0':
  261. {
  262. return 0;
  263. }
  264. case 'i', 'd':
  265. {
  266. new
  267. neg = 1,
  268. num = 0,
  269. ch = string[stringPos];
  270. if (ch == '-')
  271. {
  272. neg = -1;
  273. ch = string[++stringPos];
  274. }
  275. do
  276. {
  277. stringPos++;
  278. if ('0' <= ch <= '9')
  279. {
  280. num = (num * 10) + (ch - '0');
  281. }
  282. else
  283. {
  284. return -1;
  285. }
  286. }
  287. while ((ch = string[stringPos]) > ' ' && ch != delim);
  288. setarg(paramPos, 0, num * neg);
  289. }
  290. case 'h', 'x':
  291. {
  292. new
  293. num = 0,
  294. ch = string[stringPos];
  295. do
  296. {
  297. stringPos++;
  298. switch (ch)
  299. {
  300. case 'x', 'X':
  301. {
  302. num = 0;
  303. continue;
  304. }
  305. case '0' .. '9':
  306. {
  307. num = (num << 4) | (ch - '0');
  308. }
  309. case 'a' .. 'f':
  310. {
  311. num = (num << 4) | (ch - ('a' - 10));
  312. }
  313. case 'A' .. 'F':
  314. {
  315. num = (num << 4) | (ch - ('A' - 10));
  316. }
  317. default:
  318. {
  319. return -1;
  320. }
  321. }
  322. }
  323. while ((ch = string[stringPos]) > ' ' && ch != delim);
  324. setarg(paramPos, 0, num);
  325. }
  326. case 'c':
  327. {
  328. setarg(paramPos, 0, string[stringPos++]);
  329. }
  330. case 'f':
  331. {
  332.  
  333. new changestr[16], changepos = 0, strpos = stringPos;
  334. while(changepos < 16 && string[strpos] && string[strpos] != delim)
  335. {
  336. changestr[changepos++] = string[strpos++];
  337. }
  338. changestr[changepos] = '\0';
  339. setarg(paramPos,0,_:floatstr(changestr));
  340. }
  341. case 'p':
  342. {
  343. delim = format[formatPos++];
  344. continue;
  345. }
  346. case '\'':
  347. {
  348. new
  349. end = formatPos - 1,
  350. ch;
  351. while ((ch = format[++end]) && ch != '\'') {}
  352. if (!ch)
  353. {
  354. return -1;
  355. }
  356. format[end] = '\0';
  357. if ((ch = strfind(string, format[formatPos], false, stringPos)) == -1)
  358. {
  359. if (format[end + 1])
  360. {
  361. return -1;
  362. }
  363. return 0;
  364. }
  365. format[end] = '\'';
  366. stringPos = ch + (end - formatPos);
  367. formatPos = end + 1;
  368. }
  369. case 'u':
  370. {
  371. new
  372. end = stringPos - 1,
  373. id = 0,
  374. bool:num = true,
  375. ch;
  376. while ((ch = string[++end]) && ch != delim)
  377. {
  378. if (num)
  379. {
  380. if ('0' <= ch <= '9')
  381. {
  382. id = (id * 10) + (ch - '0');
  383. }
  384. else
  385. {
  386. num = false;
  387. }
  388. }
  389. }
  390. if (num && IsPlayerConnected(id))
  391. {
  392. setarg(paramPos, 0, id);
  393. }
  394. else
  395. {
  396. #if !defined foreach
  397. #define foreach(%1,%2) for (new %2 = 0; %2 < MAX_PLAYERS; %2++) if (IsPlayerConnected(%2))
  398. #define __SSCANF_FOREACH__
  399. #endif
  400. string[end] = '\0';
  401. num = false;
  402. new
  403. name[MAX_PLAYER_NAME];
  404. id = end - stringPos;
  405. foreach (Player, playerid)
  406. {
  407. GetPlayerName(playerid, name, sizeof (name));
  408. if (!strcmp(name, string[stringPos], true, id))
  409. {
  410. setarg(paramPos, 0, playerid);
  411. num = true;
  412. break;
  413. }
  414. }
  415. if (!num)
  416. {
  417. setarg(paramPos, 0, INVALID_PLAYER_ID);
  418. }
  419. string[end] = ch;
  420. #if defined __SSCANF_FOREACH__
  421. #undef foreach
  422. #undef __SSCANF_FOREACH__
  423. #endif
  424. }
  425. stringPos = end;
  426. }
  427. case 's', 'z':
  428. {
  429. new
  430. i = 0,
  431. ch;
  432. if (format[formatPos])
  433. {
  434. while ((ch = string[stringPos++]) && ch != delim)
  435. {
  436. setarg(paramPos, i++, ch);
  437. }
  438. if (!i)
  439. {
  440. return -1;
  441. }
  442. }
  443. else
  444. {
  445. while ((ch = string[stringPos++]))
  446. {
  447. setarg(paramPos, i++, ch);
  448. }
  449. }
  450. stringPos--;
  451. setarg(paramPos, i, '\0');
  452. }
  453. default:
  454. {
  455. continue;
  456. }
  457. }
  458. while (string[stringPos] && string[stringPos] != delim && string[stringPos] > ' ')
  459. {
  460. stringPos++;
  461. }
  462. while (string[stringPos] && (string[stringPos] == delim || string[stringPos] <= ' '))
  463. {
  464. stringPos++;
  465. }
  466. paramPos++;
  467. }
  468. do
  469. {
  470. if ((delim = format[formatPos++]) > ' ')
  471. {
  472. if (delim == '\'')
  473. {
  474. while ((delim = format[formatPos++]) && delim != '\'') {}
  475. }
  476. else if (delim != 'z')
  477. {
  478. return delim;
  479. }
  480. }
  481. }
  482. while (delim > ' ');
  483. return 0;
  484. }
  485. stock IsNumeric(string[])
  486. {
  487. for (new i = 0, j = strlen(string); i < j; i++)
  488. {
  489. if (string[i] > '9' || string[i] < '0') return 0;
  490. }
  491. return 1;
  492. }
Add Comment
Please, Sign In to add comment