Advertisement
Guest User

Untitled

a guest
Aug 1st, 2014
221
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.44 KB | None | 0 0
  1. #include <a_samp>
  2.  
  3. #define DINI_MAX_STRING 255
  4. #define SendPlayerCommand OnPlayerCommandText
  5.  
  6. new Menu:licensemenu;
  7. new playerfile[256];
  8. new pname[MAX_PLAYER_NAME];
  9.  
  10. enum cInfo{Car}; new LicenseInfo[MAX_PLAYERS][cInfo];
  11.  
  12. public OnFilterScriptInit()
  13. {
  14. licensemenu = CreateMenu("Select an option", 1, 50.0, 180.0, 200.0, 200.0);
  15.  
  16. AddMenuItem(licensemenu, 0, "Patent per makin- $50");
  17.  
  18. AddStaticPickup(1239, 23, 361.8299,173.6111,1008.3828, 0);
  19. Create3DTextLabel("Patentat\nShkruaj /blejpatent per te blere patentin.",0x33CCFFAA,361.8299,173.6111,1008.3828,40.0,0);
  20. return 1;
  21. }
  22.  
  23. public OnFilterScriptExit()
  24. {
  25. return 1;
  26. }
  27.  
  28. public OnPlayerCommandText(playerid, cmdtext[])
  29. {
  30. if (strcmp("/patentat", cmdtext, true, 10) == 0)
  31. {
  32. SendClientMessage(playerid,-1, "{FF0000}Per te blere patent shko ne {0000FF}City Hall {00FFFF}( /cityhall ) {FF00FF}dhe mandej shko bleje patentin {FFFFFF}/blejpatent");
  33. return 1;
  34. }
  35. if (strcmp("/blejpatent", cmdtext, true, 10) == 0) {
  36. if(!IsPlayerInRangeOfPoint(playerid, 3.0, 361.8299,173.6111,1008.3828)){SendClientMessage(playerid, 0xAA3333AA, "Ti duhet te jesh ne City Hall per te bler 1 patent!"); return 1;}
  37. ShowMenuForPlayer(licensemenu, playerid);
  38. return 1;} return 0;
  39. }
  40.  
  41. public OnPlayerDisconnect(playerid, reason)
  42. {
  43. GetPlayerName(playerid, pname, sizeof(pname));
  44. format(playerfile, sizeof(playerfile), "Licenses/%s.ini",pname);
  45. dini_IntSet(playerfile, "Car License", LicenseInfo[playerid][Car]);
  46. return 1;
  47. }
  48.  
  49. public OnPlayerConnect(playerid)
  50. {
  51. GetPlayerName(playerid, pname, sizeof(pname));
  52. format(playerfile, sizeof(playerfile), "Licenses/%s.ini",pname);
  53. return 1;
  54. }
  55.  
  56. public OnPlayerRequestSpawn(playerid)
  57. {
  58. GetPlayerName(playerid, pname, sizeof(pname));
  59. format(playerfile, sizeof(playerfile), "Licenses/%s.ini",pname);
  60. LicenseInfo[playerid][Car] = dini_Int(playerfile, "Car License");
  61. return 1;
  62. }
  63. // Method 2
  64. public OnPlayerStateChange(playerid, newstate, oldstate)
  65. {
  66. if(newstate == PLAYER_STATE_DRIVER)
  67. {
  68. if(LicenseInfo[playerid][Car] < 1)
  69. {
  70. SendClientMessage(playerid, 0xFF6347AA, "Ti nuk ke patent , lexo /patentat per me shum !!");
  71. RemovePlayerFromVehicle(playerid);
  72. TogglePlayerControllable(playerid, true);
  73. // Syncing purpose
  74. new Float: rPos[4], rPosEx[2];
  75. GetPlayerPos(playerid, rPos[0], rPos[1], rPos[2]);
  76. GetPlayerFacingAngle(playerid, rPos[3]);
  77. rPosEx[0] = GetPlayerInterior(playerid);
  78. rPosEx[1] = GetPlayerVirtualWorld(playerid);
  79. PutPlayerInVehicle(playerid, 0, 0);
  80. SetPlayerPos(playerid, rPos[0], rPos[1], rPos[2]);
  81. SetPlayerFacingAngle(playerid, rPos[3]);
  82. SetPlayerInterior(playerid, rPosEx[0]);
  83. SetPlayerVirtualWorld(playerid, rPosEx[1]);
  84. return 1;
  85. }
  86. }
  87. return 1;
  88. }
  89.  
  90. public OnPlayerSelectedMenuRow(playerid, row)
  91. {
  92. HideMenuForPlayer(licensemenu, playerid);
  93. new Menu:current;
  94. current = GetPlayerMenu(playerid);
  95. if(current == licensemenu) {
  96. switch(row) {
  97. case 0:
  98. {
  99. if(GetPlayerMoney(playerid) < 50)
  100. {
  101. SendClientMessage(playerid, 0xFF6347AA, "Ti nuk mundesh ta perballosh patentin!");
  102. return 1;
  103. }
  104. LicenseInfo[playerid][Car] = 1;
  105. GivePlayerMoney(playerid, - 50);
  106. SendClientMessage(playerid, 0x33CCFFAA, "Ti bleve nje patent!");
  107. LicenseInfo[playerid][Car] = 1;
  108. GetPlayerName(playerid, pname, sizeof(pname));
  109. format(playerfile, sizeof(playerfile), "Licenses/%s.ini",pname);
  110. dini_Set(playerfile, "Car License", LicenseInfo[playerid][Car]);
  111. }
  112. //case 1:
  113. //{
  114. //}
  115. }
  116. return 1;
  117. }
  118. return 1;
  119. }
  120.  
  121. public OnPlayerExitedMenu(playerid)
  122. {
  123. TogglePlayerControllable(playerid, 1);
  124. return 1;
  125. }
  126.  
  127. /*
  128.  
  129. * DINI BY DRACOBLUE *
  130.  
  131. */
  132.  
  133. stock dini_Exists(filename[]) {
  134. return fexist(filename);
  135. }
  136.  
  137. stock dini_Remove(filename[]) {
  138. return fremove(filename);
  139. }
  140.  
  141. stock dini_Create(filename[]) {
  142. if (fexist(filename)) return false;
  143. new File:fhnd;
  144. fhnd=fopen(filename,io_write);
  145. if (fhnd) {
  146. fclose(fhnd);
  147. return true;
  148. }
  149. return false;
  150. }
  151.  
  152. stock dini_Set(filename[],key[],value[]) {
  153. new key_length = strlen(key);
  154. new value_length = strlen(value);
  155. if (key_length==0 || key_length+value_length+2>DINI_MAX_STRING) return false;
  156.  
  157. new File:fohnd, File:fwhnd;
  158. new tmpres[DINI_MAX_STRING];
  159. new bool:wasset=false;
  160.  
  161. format(tmpres,sizeof(tmpres),"%s.part",filename);
  162. fremove(tmpres);
  163. fohnd=fopen(filename,io_read);
  164. if (!fohnd) return false;
  165.  
  166. fwhnd=fopen(tmpres,io_write);
  167. if (!fwhnd) {
  168. fclose(fohnd);
  169. return false;
  170. }
  171.  
  172. while (fread(fohnd,tmpres)) {
  173. if (
  174. !wasset
  175. && tmpres[key_length]=='='
  176. && !strcmp(tmpres, key, true, key_length)
  177. ) {
  178. format(tmpres,sizeof(tmpres),"%s=%s",key,value);
  179. wasset=true;
  180. } else {
  181. DINI_StripNewLine(tmpres);
  182. }
  183. fwrite(fwhnd,tmpres);
  184. fwrite(fwhnd,"\r\n");
  185. }
  186.  
  187. if (!wasset) {
  188. format(tmpres,sizeof(tmpres),"%s=%s",key,value);
  189. fwrite(fwhnd,tmpres);
  190. fwrite(fwhnd,"\r\n");
  191. }
  192.  
  193. fclose(fohnd);
  194. fclose(fwhnd);
  195.  
  196. format(tmpres,sizeof(tmpres),"%s.part",filename);
  197. if (DINI_fcopytextfile(tmpres,filename)) {
  198. return fremove(tmpres);
  199. }
  200. return false;
  201. }
  202.  
  203.  
  204. stock dini_IntSet(filename[],key[],value) {
  205. new valuestring[DINI_MAX_STRING];
  206. format(valuestring,DINI_MAX_STRING,"%d",value);
  207. return dini_Set(filename,key,valuestring);
  208. }
  209.  
  210. stock dini_Int(filename[],key[]) {
  211. return strval(dini_Get(filename,key));
  212. }
  213.  
  214.  
  215. stock dini_FloatSet(filename[],key[],Float:value) {
  216. new valuestring[DINI_MAX_STRING];
  217. format(valuestring,DINI_MAX_STRING,"%f",value);
  218. return dini_Set(filename,key,valuestring);
  219. }
  220.  
  221. stock Float:dini_Float(filename[],key[]) {
  222. return floatstr(dini_Get(filename,key));
  223. }
  224.  
  225. stock dini_Bool(filename[],key[]) {
  226. return strval(dini_Get(filename,key));
  227. }
  228.  
  229. stock dini_BoolSet(filename[],key[],value) {
  230. if (value) {
  231. return dini_Set(filename,key,"1");
  232. }
  233. return dini_Set(filename,key,"0");
  234. }
  235.  
  236. stock dini_Unset(filename[],key[]) {
  237. new key_length = strlen(key);
  238. if (key_length==0 || key_length+2>DINI_MAX_STRING) return false;
  239.  
  240. new File:fohnd, File:fwhnd;
  241. new tmpres[DINI_MAX_STRING];
  242.  
  243. format(tmpres,DINI_MAX_STRING,"%s.part",filename);
  244. fremove(tmpres);
  245.  
  246. fohnd=fopen(filename,io_read);
  247. if (!fohnd) return false;
  248.  
  249. fwhnd=fopen(tmpres,io_write);
  250. if (!fwhnd) {
  251. fclose(fohnd);
  252. return false;
  253. }
  254.  
  255. while (fread(fohnd,tmpres)) {
  256. if (
  257. tmpres[key_length]=='='
  258. && !strcmp(tmpres, key, true, key_length)
  259. ) {
  260. } else {
  261. DINI_StripNewLine(tmpres);
  262. fwrite(fwhnd,tmpres);
  263. fwrite(fwhnd,"\r\n");
  264. }
  265. }
  266.  
  267. fclose(fohnd);
  268. fclose(fwhnd);
  269.  
  270. format(tmpres,DINI_MAX_STRING,"%s.part",filename);
  271. if (DINI_fcopytextfile(tmpres,filename)) {
  272. return fremove(tmpres);
  273. }
  274. return false;
  275. }
  276.  
  277. stock dini_Get(filename[],key[]) {
  278. new tmpres[DINI_MAX_STRING];
  279.  
  280. new key_length = strlen(key);
  281. if (key_length==0 || key_length+2>DINI_MAX_STRING) return tmpres;
  282.  
  283. new File:fohnd;
  284. fohnd=fopen(filename,io_read);
  285. if (!fohnd) return tmpres;
  286.  
  287. while (fread(fohnd,tmpres)) {
  288. if (
  289. tmpres[key_length]=='='
  290. && !strcmp(tmpres, key, true, key_length)
  291. ) {
  292. DINI_StripNewLine(tmpres);
  293. strmid(tmpres, tmpres, key_length + 1, strlen(tmpres), DINI_MAX_STRING);
  294. fclose(fohnd);
  295. return tmpres;
  296. }
  297. }
  298. fclose(fohnd);
  299. return tmpres;
  300. }
  301.  
  302.  
  303. stock dini_Isset(filename[],key[]) {
  304. new key_length = strlen(key);
  305. if (key_length==0 || key_length+2>DINI_MAX_STRING) return false;
  306.  
  307. new File:fohnd;
  308. fohnd=fopen(filename,io_read);
  309. if (!fohnd) return false;
  310.  
  311. new tmpres[DINI_MAX_STRING];
  312. while (fread(fohnd,tmpres)) {
  313. if (
  314. tmpres[key_length]=='='
  315. && !strcmp(tmpres, key, true, key_length)
  316. ) {
  317. fclose(fohnd);
  318. return true;
  319. }
  320. }
  321. fclose(fohnd);
  322. return false;
  323. }
  324.  
  325.  
  326.  
  327. stock DINI_StripNewLine(string[]) {
  328. new len = strlen(string);
  329. if (string[0]==0) return ;
  330. if ((string[len - 1] == '\n') || (string[len - 1] == '\r')) {
  331. string[len - 1] = 0;
  332. if (string[0]==0) return ;
  333. if ((string[len - 2] == '\n') || (string[len - 2] == '\r')) string[len - 2] = 0;
  334. }
  335. }
  336.  
  337. stock DINI_fcopytextfile(oldname[],newname[]) {
  338. new File:ohnd,File:nhnd;
  339. if (!fexist(oldname)) return false;
  340. ohnd=fopen(oldname,io_read);
  341. if (!ohnd) return false;
  342. nhnd=fopen(newname,io_write);
  343. if (!nhnd) {
  344. fclose(ohnd);
  345. return false;
  346. }
  347. new tmpres[DINI_MAX_STRING];
  348. while (fread(ohnd,tmpres)) {
  349. DINI_StripNewLine(tmpres);
  350. format(tmpres,sizeof(tmpres),"%s\r\n",tmpres);
  351. fwrite(nhnd,tmpres);
  352. }
  353. fclose(ohnd);
  354. fclose(nhnd);
  355. return true;
  356. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement