Guest User

Untitled

a guest
Feb 15th, 2014
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 14.59 KB | None | 0 0
  1. // This is a comment
  2. // uncomment the line below if you want to write a filterscript
  3. //#define FILTERSCRIPT
  4.  
  5. #include <a_samp>
  6. #include <a_samp>
  7. #include <core>
  8. #include <float>
  9. #include <time>
  10. #include <file>
  11. #include <zcmd>
  12. #include <sscanf2>
  13. #include <Dini>
  14. #include <streamer>
  15. #include <utils>
  16. #include <GetVehicleColor>
  17. #include <morphinc>
  18. #include <foreach>
  19. //////////////////////////////////////
  20. forward OnPlayerRegister(playerid, password[]);
  21. forward OnPlayerLogins(playerid,password[]);
  22.  
  23. #if defined FILTERSCRIPT
  24. #define FIRME_FILE "Firme/%d.ini"
  25. #define MAX_Firme 400
  26. #define DIALOG_FIRMA2 58
  27. #define ZArabotka_FIRMA 59
  28. #define SCM SendClientMessage
  29. #define SPD ShowPlayerDialog
  30. #define SPC SetPlayerCheckpoint
  31. #define SCMA SendClientMessageToAll
  32. #define BELA 0xFFFFFFAA
  33. ///////////////////////////////////////////
  34. enum firInfo
  35. {
  36. fProveraVlasnika,
  37. fVlasnik[45],
  38. fVrsta,
  39. fVrstaIme[45],
  40. fIme[128],
  41. Float:fUlazX,
  42. Float:fUlazY,
  43. Float:fUlazZ,
  44. fLevel,
  45. fCena,
  46. fKasa,
  47. fInt,
  48. fZatvoreno,
  49. fVw,
  50. fProizvodi,
  51. fMaxProizvodi,
  52. fAdresa[64],
  53. fZarabotka,
  54. }
  55. new FirmaInfo[MAX_Firme][firInfo];
  56. new FirmaPickup[sizeof(FirmaInfo)];
  57. new FirmaMapIcon[sizeof(FirmaInfo)];
  58. new Text3D:FirmaLabel[sizeof(FirmaInfo)];
  59.  
  60. enum pInfo
  61. {
  62. pPosedovanjeFirme2
  63.  
  64. };
  65. new PlayerInfo[MAX_PLAYERS][pInfo];
  66.  
  67.  
  68. public OnFilterScriptInit()
  69. {
  70. print("\n--------------------------------------");
  71. print(" Blank Filterscript by your name here");
  72. print("--------------------------------------\n");
  73. return 1;
  74. }
  75.  
  76. public OnFilterScriptExit()
  77. {
  78. return 1;
  79. }
  80.  
  81. #else
  82.  
  83. main()
  84. {
  85. print("\n----------------------------------");
  86. print(" Blank Gamemode by your name here");
  87. print("----------------------------------\n");
  88. }
  89.  
  90. #endif
  91.  
  92. public OnGameModeInit()
  93. {
  94. // Don't use these lines if it's a filterscript
  95. SetGameModeText("Blank Script");
  96. AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
  97. return 1;
  98. }
  99.  
  100. public OnGameModeExit()
  101. {
  102. return 1;
  103. }
  104.  
  105. public OnPlayerRequestClass(playerid, classid)
  106. {
  107. SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
  108. SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
  109. SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
  110. return 1;
  111. }
  112.  
  113. public OnPlayerConnect(playerid)
  114. {
  115.  
  116. PlayerInfo[playerid][pPosedovanjeFirme2] = 0;
  117.  
  118. return 1;
  119. }
  120.  
  121. public OnPlayerDisconnect(playerid, reason)
  122. {
  123. return 1;
  124. }
  125.  
  126. public OnPlayerSpawn(playerid)
  127. {
  128. return 1;
  129. }
  130.  
  131. public OnPlayerDeath(playerid, killerid, reason)
  132. {
  133. return 1;
  134. }
  135.  
  136. public OnVehicleSpawn(vehicleid)
  137. {
  138. return 1;
  139. }
  140.  
  141. public OnVehicleDeath(vehicleid, killerid)
  142. {
  143. return 1;
  144. }
  145.  
  146. public OnPlayerText(playerid, text[])
  147. {
  148. return 1;
  149. }
  150.  
  151. public OnPlayerCommandText(playerid, cmdtext[])
  152. {
  153.  
  154. CMD:napravifirmu(playerid, params[])
  155. {
  156. new id,level,cena,ime[128],zarabotka,Float:X,Float:Y,Float:Z,string[400],ffirme1[80];
  157. GetPlayerPos(playerid,X,Y,Z);
  158. if(sscanf(params, "s[128]iiii", ime,id , level, cena, zarabotka)) return SCM(playerid,COLOR_RED,"/napravifirmu [ime] [id] [level] [cena] [zarabotka]");
  159. {
  160. if(IsPlayerAdmin(playerid) || PlayerInfo[playerid][pAdmin] >= 1338)
  161. {
  162. if(id >= MAX_Firme) return SCM(playerid,BELA, "{FF0000}[Greska!]{BFC0C2} Maksimalni limit vikendica je dostignut obavesti skriptera o ovome!");
  163. format(ffirme1, sizeof(ffirme1), FIRME_FILE, id);
  164. if(fexist(ffirme1)) return SCM(playerid,BELA, "{FF0000}[Greska!]{BFC0C2} Vikendica sa tim IDom postoji!");
  165. FirmaInfo[id][fIme] = ime;
  166. FirmaInfo[id][fCena] = cena;
  167. FirmaInfo[id][fLevel] = level;
  168. FirmaInfo[id][fUlazX] = X;
  169. FirmaInfo[id][fUlazY] = Y;
  170. FirmaInfo[id][fUlazZ] = Z;
  171. FirmaInfo[id][fZarabotka] = zarabotka;
  172. FirmaInfo[id][fProveraVlasnika] = 0;
  173. FirmaInfo[id][fZatvoreno] = 1;
  174. strmid(FirmaInfo[id][fAdresa],UlicaFirme(id),0,strlen(UlicaFirme(id)),255);
  175. strmid(FirmaInfo[id][fVlasnik],"Niko",0,strlen("Niko"),255);
  176. format(string,sizeof(string),"{3375F0}Firmata se Prodava!\n{FAE805}Ime: {FF0909}%s\n{FAE805}Zarabotka: {FF0909}$%d\n{FAE805}Cena: {FF0909}$%d\n{FAE805}Level: {FF0909}%d\n{FAE805}Adresa: {FF0909}%s {FAE805}Br: {FF0909}%d",FirmaInfo[id][fIme],FirmaInfo[id][fZarabotka],FirmaInfo[id][fCena],FirmaInfo[id][fLevel],FirmaInfo[id][fAdresa],id);
  177. //VikendicaLabel[id] = Create3DTextLabel(string ,0x33CCFFAA,X,Y,Z,25,0,1);
  178. FirmaLabel[id] = CreateDynamic3DTextLabel(string, 0x33CCFFAA, X,Y,Z, 25.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, -1, -1, -1, 6.0);
  179. FirmaPickup[id] = CreatePickup(1274, 1, FirmaInfo[id][fUlazX], FirmaInfo[id][fUlazY], FirmaInfo[id][fUlazZ]);
  180. FirmaMapIcon[id] = CreateDynamicMapIcon(FirmaInfo[id][fUlazX], FirmaInfo[id][fUlazY], FirmaInfo[id][fUlazZ], 52, -1, -1, -1, -1, 100);
  181. SCMF(playerid,BELA,"{FFFFFF}[GLD]:{00C0FF} Vikendica ID {FFFFFF}%d{00C0FF} je uspesno kreirana!",id); SacuvajFirme(id);
  182. } else return SCM(playerid,BELA,"{FF0000}[Greska!]{BFC0C2} Samo Admini!");
  183.  
  184. }
  185. return 1;
  186. }
  187. CMD:kupifirma(playerid, params[])
  188. {
  189.  
  190. #pragma unused params
  191. for(new i; i < sizeof(FirmaInfo); i++)
  192. {
  193. if(IsPlayerInRangeOfPoint(playerid, 3.0, FirmaInfo[i][fUlazX], FirmaInfo[i][fUlazY], FirmaInfo[i][fUlazZ]))
  194. {
  195. if(!strcmp(FirmaInfo[i][fVlasnik], "Niko", true) && FirmaInfo[i][fProveraVlasnika] == 0)
  196. {
  197. if(PlayerInfo[playerid][pPosedovanjeFirme2] != 0) return SCM(playerid,BELA, "{FF0000}[Greska!]{BFC0C2} Veke imate Firma!");
  198. if(GetPlayerScore(playerid) < FirmaInfo[i][fLevel]) return SCM(playerid,BELA,"{FF0000}[Greska!]{BFC0C2} Nemate dovoljan level za kupovinu firme!");
  199. if(GetPlayerMoney(playerid) < FirmaInfo[i][fCena]) return SCM(playerid,BELA, "{FF0000}[Greska!]{BFC0C2} Nemate dovoljno novca za kupovinu firme!");
  200. strmid(FirmaInfo[i][fVlasnik], ImeIgraca(playerid), 0, strlen(ImeIgraca(playerid)), 255);
  201. FirmaInfo[i][fProveraVlasnika] = 1; PlayerInfo[playerid][pPosedovanjeFirme2] = i;
  202. FirmaInfo[i][fZatvoreno] = 0; GivePlayerMoney(playerid, -FirmaInfo[i][fCena]); FirmaLP(i); SacuvajFirme(i); OnPlayerUpdate(playerid);
  203. SCM(playerid,BELA, "{FFFFFF}[GLD]:{00C0FF} Cestito Kupivte!");
  204. SCM(playerid,BELA, "{FFFFFF}[GLD]:{00C0FF} Za komande na firma koristi /firma!");
  205. return 1;
  206. }
  207. else return SCM(playerid, BELA, "{FF0000}[Greska!]{BFC0C2} Taa firma ne e na prodaja!");
  208. }
  209. }
  210. return 1;
  211. }
  212. CMD:firma(playerid, params[])
  213. {
  214. #pragma unused params
  215. new string[256],i = PlayerInfo[playerid][pPosedovanjeFirme2];
  216. if(i == 0) return SCM(playerid,BELA,"{FF0000}[Greska!]{BFC0C2} Nemate firmu!");
  217. if(strcmp(FirmaInfo[PlayerInfo[playerid][pPosedovanjeFirme2]][fVlasnik], ImeIgraca(playerid), true)) return SCM(playerid,BELA, "{FF0000}[Greska!]{BFC0C2} Ne ste vlasnik na firma!");
  218. if(IsPlayerInRangeOfPoint(playerid, 3.0, FirmaInfo[i][fUlazX], FirmaInfo[i][fUlazY], FirmaInfo[i][fUlazZ]))
  219. {
  220. format(string,sizeof(string),"Prodadi\nVidi kolku imas pari vo kasa\nPodigni pari od kasa");
  221. SPD(playerid, DIALOG_FIRMA2, DIALOG_STYLE_LIST, "Firma Opcije", string, "Izberi", "Izlezi");
  222. return 1;
  223. }else return SCM(playerid,BELA,"{FF0000}[Greska!]{BFC0C2} Ne ste pred vasata firma!");
  224. return 1;
  225. }
  226.  
  227.  
  228. if (strcmp("/mycommand", cmdtext, true, 10) == 0)
  229. {
  230. // Do something here
  231. return 1;
  232. }
  233. return 0;
  234. }
  235.  
  236. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  237. {
  238. return 1;
  239. }
  240.  
  241. public OnPlayerExitVehicle(playerid, vehicleid)
  242. {
  243. return 1;
  244. }
  245.  
  246. public OnPlayerStateChange(playerid, newstate, oldstate)
  247. {
  248. return 1;
  249. }
  250.  
  251. public OnPlayerEnterCheckpoint(playerid)
  252. {
  253. return 1;
  254. }
  255.  
  256. public OnPlayerLeaveCheckpoint(playerid)
  257. {
  258. return 1;
  259. }
  260.  
  261. public OnPlayerEnterRaceCheckpoint(playerid)
  262. {
  263. return 1;
  264. }
  265.  
  266. public OnPlayerLeaveRaceCheckpoint(playerid)
  267. {
  268. return 1;
  269. }
  270.  
  271. public OnRconCommand(cmd[])
  272. {
  273. return 1;
  274. }
  275.  
  276. public OnPlayerRequestSpawn(playerid)
  277. {
  278. return 1;
  279. }
  280.  
  281. public OnObjectMoved(objectid)
  282. {
  283. return 1;
  284. }
  285.  
  286. public OnPlayerObjectMoved(playerid, objectid)
  287. {
  288. return 1;
  289. }
  290.  
  291. public OnPlayerPickUpPickup(playerid, pickupid)
  292. {
  293. return 1;
  294. }
  295.  
  296. public OnVehicleMod(playerid, vehicleid, componentid)
  297. {
  298. return 1;
  299. }
  300.  
  301. public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
  302. {
  303. return 1;
  304. }
  305.  
  306. public OnVehicleRespray(playerid, vehicleid, color1, color2)
  307. {
  308. return 1;
  309. }
  310.  
  311. public OnPlayerSelectedMenuRow(playerid, row)
  312. {
  313. return 1;
  314. }
  315.  
  316. public OnPlayerExitedMenu(playerid)
  317. {
  318. return 1;
  319. }
  320.  
  321. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
  322. {
  323. return 1;
  324. }
  325.  
  326. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  327. {
  328. return 1;
  329. }
  330.  
  331. public OnRconLoginAttempt(ip[], password[], success)
  332. {
  333. return 1;
  334. }
  335.  
  336. public OnPlayerUpdate(playerid)
  337. {
  338. format(var, 32, "Firma=%d\n",PlayerInfo[playerid][pPosedovanjeFirme2]);fwrite(hFile, var);
  339. return 1;
  340. }
  341.  
  342. public OnPlayerStreamIn(playerid, forplayerid)
  343. {
  344. return 1;
  345. }
  346.  
  347. public OnPlayerStreamOut(playerid, forplayerid)
  348. {
  349. return 1;
  350. }
  351.  
  352. public OnVehicleStreamIn(vehicleid, forplayerid)
  353. {
  354. return 1;
  355. }
  356.  
  357. public OnVehicleStreamOut(vehicleid, forplayerid)
  358. {
  359. return 1;
  360. }
  361.  
  362. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  363. {
  364. if(dialogid == DIALOG_FIRMA2)
  365. {
  366. if(!response) return 1;
  367. if(PlayerInfo[playerid][pPosedovanjeFirme2] == 0) return SCM(playerid,BELA, "{FF0000}[Greska!]{BFC0C2} Nemate Biznis!");
  368. new i = PlayerInfo[playerid][pPosedovanjeFirme2];
  369. switch(listitem)
  370. {
  371. case 0:
  372. {
  373. if(!IsPlayerInRangeOfPoint(playerid, 15.0, FirmaInfo[i][fUlazX], FirmaInfo[i][fUlazY], FirmaInfo[i][fUlazZ])) return SCM(playerid,BELA,"{FF0000}[Greska!]{BFC0C2} Ne ste kaj vasta Firma!");
  374. GivePlayerMoney(playerid,FirmaInfo[i][fCena]/2);
  375. FirmaInfo[i][fProveraVlasnika] = 0; FirmaInfo[i][fKasa] = 0;
  376. strmid(FirmaInfo[i][bVlasnik], "Niko", 0, strlen("Niko"), 255); PlayerInfo[playerid][pPosedovanjeFirme2] = 0;
  377. SacuvajFirme(i); FirmaLP(i); OnPlayerUpdate(playerid);
  378. format(string,sizeof(string),"{FFFFFF}[GLD]:{00C0FF}Ja prodadovte Firmata za{FFFFFF}$%d {00C0FF}!",FirmaInfo[i][fCena]);
  379. SCM(playerid,BELA,string);
  380. }
  381. case 1:
  382. {
  383. format(string,sizeof(string),"Kasa: %d ",FirmaInfo[i][fKasa]);
  384. SCM(playerid,BELA,string);
  385. }
  386. case 2:
  387. {
  388. SPD(playerid,ZArabotka_FIRMA,DIALOG_STYLE_INPUT, "Podigni Pari", "Vnesite Suma na pari \nkoja sakate da ja podignete od vasata firma", "Podigni", "Izlezi");
  389.  
  390. }
  391. }
  392. }
  393. if(dialogid == ZArabotka_FIRMA)
  394. {
  395. if(PlayerInfo[playerid][pPosedovanjeFirme2] == 0) return SCM(playerid,BELA, "{FF0000}[Greska!]{BFC0C2} Nemate Firma!");
  396. new i = PlayerInfo[playerid][pPosedovanjeFirme2];
  397. if(response)
  398. {
  399. new iznos;
  400. if(sscanf(inputtext, "i", iznos)) return SPD(playerid,ZArabotka_FIRMA,DIALOG_STYLE_INPUT, "Podigni Pari", "Vnesite Suma na pari \nkoja sakate da ja podignete od vasata firma", "Podigni", "Izlezi");
  401. if(iznos > FirmaInfo[i][fKasa]) return SCM(playerid,BELA,"{FF0000}[Greska!]{BFC0C2} Nemate Tolku pari vo Firmata!");
  402. FirmaInfo[i][fKasa] -= iznos; GivePlayerMoney(playerid,iznos); SacuvajFirme(i);
  403. format(string,sizeof(string),"{FFFFFF}[GLD]:{00C0FF} Izvadivte $%d od vasata firma",iznos);
  404. SCM(playerid,BELA,string);
  405. }
  406. }
  407.  
  408. return 1;
  409. }
  410.  
  411. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  412. {
  413. return 1;
  414. }
  415. public OnPlayerRegister(playerid, password[])
  416. {
  417. format(var, 32, "Firma=%d\n",PlayerInfo[playerid][pPosedovanjeFirme2]);fwrite(hFile, var);
  418. return 1;
  419. }
  420. public OnPlayerLogins(playerid,password[])
  421. {
  422. if( strcmp( key , "Firma" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pPosedovanjeFirme2] = strval( val ); }
  423. return 1;
  424. }
  425. stock FirmaLP(idfirme)
  426. {
  427. new string[400];
  428. if(FirmaInfo[idfirme][fProveraVlasnika] == 0)
  429. {
  430. DestroyPickup(FirmaPickup[idfirme]);
  431. format(string,sizeof(string),"{3375F0}Firmata se Prodava!\n{FAE805}Ime: {FF0909}%s\n{FAE805}Zarabotka: {FF0909}$%d\n{FAE805}Cena: {FF0909}$%d\n{FAE805}Level: {FF0909}%d\n{FAE805}Adresa: {FF0909}%s {FAE805}Br: {FF0909}%d",FirmaInfo[idfirme][fIme],FirmaInfo[idfirme][fZarabotka],FirmaInfo[idfirme][fCena],FirmaInfo[idfirme][fLevel],FirmaInfo[idfirme][fAdresa],idfirme);
  432. UpdateDynamic3DTextLabelText(FirmaLabel[idfirme], 0x33CCFFAA, string);
  433. FirmaPickup[idfirme] = CreatePickup(1274, 1, FirmaInfo[idfirme][fUlazX], FirmaInfo[idfirme][fUlazY], FirmaInfo[idfirme][fUlazZ]);
  434. FirmaMapIcon[idfirme] = CreateDynamicMapIcon( FirmaInfo[idfirme][fUlazX], FirmaInfo[idfirme][fUlazY], FirmaInfo[idfirme][fUlazZ], 52, -1, -1, -1, -1, 100);
  435. }
  436. else if(FirmaInfo[idfirme][fProveraVlasnika] == 1)
  437. {
  438. DestroyPickup(FirmaPickup[idfirme]);
  439. format(string,sizeof(string),"{00C0FF}[ {F3FF02}%s{00C0FF} ]\n{FAE805}Gazda: {FF0909}%s\n{FAE805}Zarabotka: {FF0909}$%d\n{FAE805}Adresa: {FF0909}%s {FAE805}Br: {FF0909}%d",FirmaInfo[idfirme][fIme],FirmaInfo[idfirme][fVlasnik],FirmaInfo[idfirme][fZarabotka],FirmaInfo[idfirme][fAdresa],idfirme);
  440. UpdateDynamic3DTextLabelText(FirmaLabel[idfirme], 0x33CCFFAA, string);
  441. FirmaPickup[idfirme] = CreatePickup(1274, 1, FirmaInfo[idfirme][fUlazX], FirmaInfo[idfirme][fUlazY], FirmaInfo[idfirme][fUlazZ]);
  442. FirmaMapIcon[idfirme] = CreateDynamicMapIcon( FirmaInfo[idfirme][fUlazX], FirmaInfo[idfirme][fUlazY], FirmaInfo[idfirme][fUlazZ], 52, -1, -1, -1, -1, 100);
  443. }
  444. return 1;
  445. }
  446. stock SacuvajFirme(idfirme)
  447. {
  448. new fFile[128];
  449. format(fFile, sizeof(fFile), FIRME_FILE, idfirme);
  450. new INI:File = INI_Open(fFile);
  451. INI_WriteInt(File,"ProveraVlasnika",FirmaInfo[idfirme][fProveraVlasnika]);
  452. INI_WriteString(File,"Vlasnik",FirmaInfo[idfirme][fVlasnik]);
  453. INI_WriteInt(File,"Vrsta",FirmaInfo[idfirme][fVrsta]);
  454. INI_WriteString(File,"VrstaIme",FirmaInfo[idfirme][fVrstaIme]);
  455. INI_WriteString(File,"Ime",FirmaInfo[idfirme][fIme]);
  456. INI_WriteFloat(File,"UlazX",FirmaInfo[idfirme][fUlazX]);
  457. INI_WriteFloat(File,"UlazY",FirmaInfo[idfirme][fUlazY]);
  458. INI_WriteFloat(File,"UlazZ",FirmaInfo[idfirme][fUlazZ]);
  459. INI_WriteInt(File,"Level",FirmaInfo[idfirme][fLevel]);
  460. INI_WriteInt(File,"Cena",FirmaInfo[idfirme][fCena]);
  461. INI_WriteInt(File,"Kasa",FirmaInfo[idfirme][fKasa]);
  462. INI_WriteInt(File,"Interior",FirmaInfo[idfirme][fInt]);
  463. INI_WriteInt(File,"Zatvoreno",FirmaInfo[idfirme][fZatvoreno]);
  464. INI_WriteInt(File,"VW",FirmaInfo[idfirme][fVw]);
  465. INI_WriteInt(File,"Proizvodi",FirmaInfo[idfirme][fProizvodi]);
  466. INI_WriteInt(File,"MaxProizvodi",FirmaInfo[idfirme][fMaxProizvodi]);
  467. INI_WriteString(File,"Adresa",FirmaInfo[idfirme][fAdresa]);
  468. INI_WriteInt(File,"Zarabotka",FirmaInfo[idfirme][fZarabotka]);
  469. INI_Close(File);
  470. return 1;
  471. }
Advertisement
Add Comment
Please, Sign In to add comment