Guest User

O_o

a guest
Feb 25th, 2012
185
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.59 KB | None | 0 0
  1. #include <a_samp>
  2. #include <mxINI05>
  3. #include <zcmd>
  4.  
  5. new ebanuca[112];
  6. new CountGarages;
  7. new ChooseGarage[MAX_PLAYERS];
  8. enum GI
  9. {
  10. Float:StartX,
  11. Float:StartY,
  12. Float:StartZ,
  13. Float:StartRX,
  14. Float:StartRY,
  15. Float:StartRZ,
  16. [Àãà, òàê è äàë ñêðèïò],
  17. Owner[MAX_PLAYER_NAME],
  18. Cost,
  19. GaragePickup,
  20. StatusGate,
  21. Text3D:GarageText,
  22. };
  23.  
  24. new [Àãà, òàê è äàë ñêðèïò][600][GI];
  25. new PlayerName[MAX_PLAYERS][MAX_PLAYER_NAME];
  26.  
  27. forward split(const strsrc[], strdest[][], delimiter);
  28. forward LoadGarages();
  29. forward UpdateGarages();
  30.  
  31. public OnFilterScriptInit()
  32. {
  33. LoadGarages();
  34. print("\n--------------------------------------");
  35. print(" Ãàðàæèêè âêëþ÷åíû");
  36. print("--------------------------------------\n");
  37. return 1;
  38. }
  39.  
  40. public OnPlayerDisconnect(playerid, reason)
  41. {
  42. for(new i; i<CountGarages; i++)
  43. {
  44. if (!strcmp([Àãà, òàê è äàë ñêðèïò][i][Owner], PlayerName[playerid]))
  45. {
  46. ????????????[i][StatusGate] = 0;
  47. ***********([Àãà, òàê è äàë ñêðèïò][i][[Àãà, òàê è äàë ñêðèïò]], [Àãà, òàê è äàë ñêðèïò][i][StartX], [Àãà, òàê è äàë ñêðèïò][i][StartY], [Àãà, òàê è äàë ñêðèïò][i][StartZ], 1.00, [Àãà, òàê è äàë ñêðèïò][i][StartRX], [Àãà, òàê è äàë ñêðèïò][i][StartRY], [Àãà, òàê è äàë ñêðèïò][i][StartRZ]);
  48. }
  49. }
  50. return 1;
  51. }
  52.  
  53. public OnPlayerPickUpPickup(playerid, pickupid)
  54. {
  55. new gcount;
  56. for(new i; i< CountGarages; i++)
  57. {
  58. if(pickupid == [Àãà, òàê è äàë ñêðèïò][i][GaragePickup])
  59. {
  60. if (!strcmp("The State", [Àãà, òàê è äàë ñêðèïò][i][Owner]))
  61. {
  62. for(new j; j<CountGarages; j++)
  63. {
  64. if (!strcmp([Àãà, òàê è äàë ñêðèïò][j][Owner], PlayerName[playerid])) gcount++;
  65. }
  66. if(gcount == 3) return SendClientMessage(playerid,-1,"{00CCFF}Âû èìååòå óæå 3 ãàðàæà!");
  67. ChooseGarage[playerid] = i;
  68. new s[128];
  69. format(s,sizeof(s),"{FFFFFF}Âû õîòèòå êóïèòü ãàðàæ çà $%d?",[Àãà, òàê è äàë ñêðèïò][i][Cost]);
  70. ShowPlayerDialog(playerid, 100, DIALOG_STYLE_MSGBOX, "{ffff00}Ïîêóïêà ãàðàæà",s, "Îê", "Îòìåíà");
  71. }
  72. }
  73. }
  74. return 1;
  75. }
  76.  
  77. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  78. {
  79. if(newkeys & KEY_CROUCH && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  80. {
  81. for(new i; i<CountGarages; i++)
  82. {
  83. if (!strcmp([Àãà, òàê è äàë ñêðèïò][i][Owner], PlayerName[playerid]) && IsPlayerInRangeOfPoint(playerid, 10.0, [Àãà, òàê è äàë ñêðèïò][i][StartX], [Àãà, òàê è äàë ñêðèïò][i][StartY], [Àãà, òàê è äàë ñêðèïò][i][StartZ]))
  84. {
  85. if([Àãà, òàê è äàë ñêðèïò][i][StatusGate] == 0)
  86. {
  87. MoveObject([Àãà, òàê è äàë ñêðèïò][i][[Àãà, òàê è äàë ñêðèïò]], [Àãà, òàê è äàë ñêðèïò][i][StartX], [Àãà, òàê è äàë ñêðèïò][i][StartY], [Àãà, òàê è äàë ñêðèïò][i][StartZ]+4, 1.00, [Àãà, òàê è äàë ñêðèïò][i][StartRX], [Àãà, òàê è äàë ñêðèïò][i][StartRY], [Àãà, òàê è äàë ñêðèïò][i][StartRZ]);
  88. [Àãà, òàê è äàë ñêðèïò][i][StatusGate] = 1;
  89. }
  90. else
  91. {
  92. [Àãà, òàê è äàë ñêðèïò][i][StatusGate] = 0;
  93. MoveObject([Àãà, òàê è äàë ñêðèïò][i][[Àãà, òàê è äàë ñêðèïò]], [Àãà, òàê è äàë ñêðèïò][i][StartX], [Àãà, òàê è äàë ñêðèïò][i][StartY], [Àãà, òàê è äàë ñêðèïò][i][StartZ], 1.00, [Àãà, òàê è äàë ñêðèïò][i][StartRX], [Àãà, òàê è äàë ñêðèïò][i][StartRY], [Àãà, òàê è äàë ñêðèïò][i][StartRZ]);
  94. }
  95. return 1;
  96. }
  97. }
  98. }
  99. if(newkeys & KEY_YES && GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
  100. {
  101. for(new i; i<CountGarages; i++)
  102. {
  103. if (!strcmp([Àãà, òàê è äàë ñêðèïò][i][Owner], PlayerName[playerid]) && IsPlayerInRangeOfPoint(playerid, 10.0, [Àãà, òàê è äàë ñêðèïò][i][StartX], [Àãà, òàê è äàë ñêðèïò][i][StartY], [Àãà, òàê è äàë ñêðèïò][i][StartZ]))
  104. {
  105. if([Àãà, òàê è äàë ñêðèïò][i][StatusGate] == 0)
  106. {
  107. MoveObject([Àãà, òàê è äàë ñêðèïò][i][[Àãà, òàê è äàë ñêðèïò]], [Àãà, òàê è äàë ñêðèïò][i][StartX], [Àãà, òàê è äàë ñêðèïò][i][StartY], [Àãà, òàê è äàë ñêðèïò][i][StartZ]+4, 1.00, [Àãà, òàê è äàë ñêðèïò][i][StartRX], [Àãà, òàê è äàë ñêðèïò][i][StartRY], [Àãà, òàê è äàë ñêðèïò][i][StartRZ]);
  108. [Àãà, òàê è äàë ñêðèïò][i][StatusGate] = 1;
  109. }
  110. else
  111. {
  112. [Àãà, òàê è äàë ñêðèïò][i][StatusGate] = 0;
  113. MoveObject([Àãà, òàê è äàë ñêðèïò][i][[Àãà, òàê è äàë ñêðèïò]], [Àãà, òàê è äàë ñêðèïò][i][StartX], [Àãà, òàê è äàë ñêðèïò][i][StartY], [Àãà, òàê è äàë ñêðèïò][i][StartZ], 1.00, [Àãà, òàê è äàë ñêðèïò][i][StartRX], [Àãà, òàê è äàë ñêðèïò][i][StartRY], [Àãà, òàê è äàë ñêðèïò][i][StartRZ]);
  114. }
  115. return 1;
  116. }
  117. }
  118. }
  119. return 1;
  120. }
  121.  
  122. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  123. {
  124. if(dialogid == 100 && response)
  125. {
  126. if (!strcmp("The State", [Àãà, òàê è äàë ñêðèïò][ChooseGarage[playerid]][Owner]))
  127. {
  128. if(GetPlayerMoney(playerid) <[Àãà, òàê è äàë ñêðèïò][ChooseGarage[playerid]][Cost])
  129. {
  130. SendClientMessage(playerid,-1,"{0011FF}[DriftCity]{FFFFFF}:Ó âàñ íåò íåîáõîäèìîé ñóììû!");
  131. return 1;
  132. }
  133. GivePlayerMoney(playerid,-[Àãà, òàê è äàë ñêðèïò][ChooseGarage[playerid]][Cost]);
  134. SendClientMessage(playerid,-1,"{0011FF}[DriftCity]{FFFFFF}:Ïîçäðàâëÿåì ñ óñïåøíîé ïîêóïêîé ãàðàæà!");
  135. strmid([Àãà, òàê è äàë ñêðèïò][ChooseGarage[playerid]][Owner], PlayerName[playerid], 0, strlen(PlayerName[playerid]), 112);
  136. new s[112];
  137. format(s,sizeof(s),"{00CCFF}Ãàðàæ êóïèë %s",[Àãà, òàê è äàë ñêðèïò][ChooseGarage[playerid]][Owner]);
  138. Update3DTextLabelText([Àãà, òàê è äàë ñêðèïò][ChooseGarage[playerid]][GarageText], 0xCCFFDDFF, s);
  139. UpdateGarages();
  140. }
  141. }
  142. return 1;
  143. }
  144.  
  145. public split(const strsrc[], strdest[][], delimiter)
  146. {
  147. new i, li;
  148. new aNum;
  149. new len;
  150.  
  151. while(i <= strlen(strsrc)){
  152. if(strsrc[i]==delimiter || i==strlen(strsrc)){
  153. len = strmid(strdest[aNum], strsrc, li, i, 128);
  154. strdest[aNum][len] = 0;
  155. li = i+1;
  156. aNum++;
  157. }
  158. i++;
  159. }
  160. return 1;
  161. }
  162.  
  163. public LoadGarages()
  164. {
  165. new Pos2[19][50];
  166. new s[128];
  167. new File: file = fopen("Garages.cfg", io_read);
  168. if (file)
  169. {
  170. fread(file, ebanuca);
  171. split(ebanuca, Pos2, ',');
  172. CountGarages = strval(Pos2[0]);
  173. printf("garages- %d",CountGarages);
  174. for(new i; i<CountGarages; i++)
  175. {
  176. fread(file, ebanuca);
  177. split(ebanuca, Pos2, ',');
  178. [Àãà, òàê è äàë ñêðèïò][i][StartX] = floatstr(Pos2[0]);
  179. [Àãà, òàê è äàë ñêðèïò][i][StartY] = floatstr(Pos2[1]);
  180. [Àãà, òàê è äàë ñêðèïò][i][StartZ] = floatstr(Pos2[2]);
  181. [Àãà, òàê è äàë ñêðèïò][i][StartRX] = floatstr(Pos2[3]);
  182. [Àãà, òàê è äàë ñêðèïò][i][StartRY] = floatstr(Pos2[4]);
  183. [Àãà, òàê è äàë ñêðèïò][i][StartRZ] = floatstr(Pos2[5]);
  184. strmid([Àãà, òàê è äàë ñêðèïò][i][Owner], Pos2[6], 0, strlen(Pos2[6]), 255);
  185. [Àãà, òàê è äàë ñêðèïò][i][Cost] = strval(Pos2[7]);
  186. [Àãà, òàê è äàë ñêðèïò][i][[Àãà, òàê è äàë ñêðèïò]] = CreateObject(7891,[Àãà, òàê è äàë ñêðèïò][i][StartX],[Àãà, òàê è äàë ñêðèïò][i][StartY],[Àãà, òàê è äàë ñêðèïò][i][StartZ],[Àãà, òàê è äàë ñêðèïò][i][StartRX],[Àãà, òàê è äàë ñêðèïò][i][StartRY],[Àãà, òàê è äàë ñêðèïò][i][StartRZ]);
  187. [Àãà, òàê è äàë ñêðèïò][i][GaragePickup] = CreatePickup(0, 1, [Àãà, òàê è äàë ñêðèïò][i][StartX],[Àãà, òàê è äàë ñêðèïò][i][StartY],[Àãà, òàê è äàë ñêðèïò][i][StartZ]-0.5, -1);
  188. if (!strcmp("The State", [Àãà, òàê è äàë ñêðèïò][i][Owner])) format(s,256,"{00CCFF}Ãàðàæ ïðîäàåòñÿ!\nÖåíà:$%d{AA22EE}",[Àãà, òàê è äàë ñêðèïò][i][Cost]);
  189. else format(s,256,"{00CCFF}Ãàðàæ êóïèë %s",[Àãà, òàê è äàë ñêðèïò][i][Owner]);
  190. [Àãà, òàê è äàë ñêðèïò][i][GarageText] = Create3DTextLabel(s,1,[Àãà, òàê è äàë ñêðèïò][i][StartX],[Àãà, òàê è äàë ñêðèïò][i][StartY],[Àãà, òàê è äàë ñêðèïò][i][StartZ],50.00,0);
  191. }
  192. }
  193. fclose(file);
  194. return 1;
  195. }
  196.  
  197. public UpdateGarages()
  198. {
  199. new File: file;
  200. for(new i; i<CountGarages; i++)
  201. {
  202. new Pos2[100];
  203. format(Pos2, sizeof(Pos2), "%f,%f,%f,%f,%f,%f,%s,%d\n",
  204. [Àãà, òàê è äàë ñêðèïò][i][StartX],[Àãà, òàê è äàë ñêðèïò][i][StartY],[Àãà, òàê è äàë ñêðèïò][i][StartZ],[Àãà, òàê è äàë ñêðèïò][i][StartRX],
  205. [Àãà, òàê è äàë ñêðèïò][i][StartRY],[Àãà, òàê è äàë ñêðèïò][i][StartRZ],[Àãà, òàê è äàë ñêðèïò][i][Owner],[Àãà, òàê è äàë ñêðèïò][i][Cost]);
  206. if(i == 0)
  207. {
  208. file = fopen("Garages.cfg", io_write);
  209. new s[512];
  210. format(s,1024,"%d\n%s",CountGarages,Pos2);
  211. fwrite(file, s);
  212. fclose(file);
  213. }
  214. else
  215. {
  216. file = fopen("Garages.cfg", io_append);
  217. fwrite(file, Pos2);
  218. fclose(file);
  219. }
  220. }
  221. return 1;
  222. }
  223.  
  224. COMMAND:sellgarage(playerid)
  225. {
  226. for(new i; i<CountGarages; i++)
  227. {
  228. if (!strcmp([Àãà, òàê è äàë ñêðèïò][i][Owner], PlayerName[playerid]) && IsPlayerInRangeOfPoint(playerid, 5.0, [Àãà, òàê è äàë ñêðèïò][i][StartX], [Àãà, òàê è äàë ñêðèïò][i][StartY], [Àãà, òàê è äàë ñêðèïò][i][StartZ]))
  229. {
  230. strmid([Àãà, òàê è äàë ñêðèïò][i][Owner], "The State", 0, strlen("The State"), 255);
  231. SendClientMessage(playerid,-1,"{0011FF}[DriftCity]{FFFFFF}:Ïîçäðàâëÿåì ñ óñïåøíîé ïðîäàæåé ãàðàæà!");
  232. new s[124];
  233. format(s,124,"{00CCFF}Ãàðàæ ïðîäàåòñÿ!\nÖåíà:$%d{AA22EE}",[Àãà, òàê è äàë ñêðèïò][i][Cost]);
  234. GivePlayerMoney(playerid,[Àãà, òàê è äàë ñêðèïò][i][Cost]);
  235. Update3DTextLabelText([Àãà, òàê è äàë ñêðèïò][i][GarageText], 0xCCFFDDFF, s);
  236. [Àãà, òàê è äàë ñêðèïò][i][StatusGate] = 0;
  237. MoveObject([Àãà, òàê è äàë ñêðèïò][i][[Àãà, òàê è äàë ñêðèïò]], [Àãà, òàê è äàë ñêðèïò][i][StartX], [Àãà, òàê è äàë ñêðèïò][i][StartY], [Àãà, òàê è äàë ñêðèïò][i][StartZ], 1.00, [Àãà, òàê è äàë ñêðèïò][i][StartRX], [Àãà, òàê è äàë ñêðèïò][i][StartRY], [Àãà, òàê è äàë ñêðèïò][i][StartRZ]);
  238. UpdateGarages();
  239. return 1;
  240. }
  241. }
  242. SendClientMessage(playerid,-1,"{0011FF}[DriftCity]{FFFFFF}:Âû ñëèøêîì äàëåêî îò ãàðàæà èëè åãî ó âàñ íåò!");
  243. return 1;
  244. }
Advertisement
Add Comment
Please, Sign In to add comment