Guest User

Untitled

a guest
Jul 20th, 2021
642
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 30.28 KB | None | 0 0
  1. #include <a_samp>
  2. #include <a_objects>
  3. #include <sscanf2>
  4. #include <foreach>
  5. #include <streamer>
  6. #include <YSI\y_ini>
  7. #include <zcmd>
  8.  
  9. #define DIALOG_REGISTER 1
  10. #define DIALOG_LOGIN 2
  11. #define DIALOG_USPESNO_1 3
  12. #define DIALOG_USPESNO_2 4
  13.  
  14. //////////////////////////
  15. #define PATH "/Korisnici/%s.ini" // Kada ste ovo napisali odite u vas folder od moda i samo u scriptfiles dodate folder Korisnici
  16. //////////////////////////////////////
  17.  
  18. #define IME_SERVERA "Story Life Copy"
  19. #define VERZIJA_MODA "0.1"
  20. #define SKRIPTER "Ivo"
  21.  
  22. #define COLOR_GREY 0xAFAFAFAA
  23. #define COLOR_GREEN 0x33AA33AA
  24. #define COLOR_RED 0xAA3333AA
  25. #define COLOR_YELLOW 0xFFFF00AA
  26. #define COLOR_WHITE 0xFFFFFFAA
  27. #define COLOR_BLUE 0x0000BBAA
  28. #define COLOR_LIGHTBLUE 0x33CCFFAA
  29. #define COLOR_ORANGE 0xFF9900AA
  30. #define COLOR_RED 0xAA3333AA
  31. #define COLOR_LIME 0x10F441AA
  32. #define COLOR_MAGENTA 0xFF00FFFF
  33. #define COLOR_NAVY 0x000080AA
  34. #define COLOR_AQUA 0xF0F8FFAA
  35. #define COLOR_CRIMSON 0xDC143CAA
  36. #define COLOR_FLBLUE 0x6495EDAA
  37. #define COLOR_BISQUE 0xFFE4C4AA
  38. #define COLOR_BLACK 0x000000AA
  39. #define COLOR_CHARTREUSE 0x7FFF00AA
  40. #define COLOR_BROWN 0XA52A2AAA
  41. #define COLOR_CORAL 0xFF7F50AA
  42. #define COLOR_GOLD 0xB8860BAA
  43. #define COLOR_GREENYELLOW 0xADFF2FAA
  44. #define COLOR_INDIGO 0x4B00B0AA
  45. #define COLOR_IVORY 0xFFFF82AA
  46. #define COLOR_LAWNGREEN 0x7CFC00AA
  47. #define COLOR_SEAGREEN 0x20B2AAAA
  48. #define COLOR_LIMEGREEN 0x32CD32AA //<--- Dark lime
  49. #define COLOR_MIDNIGHTBLUE 0X191970AA
  50. #define COLOR_MAROON 0x800000AA
  51. #define COLOR_OLIVE 0x808000AA
  52. #define COLOR_ORANGERED 0xFF4500AA
  53. #define COLOR_PINK 0xFFC0CBAA // - Light light pink
  54. #define COLOR_SPRINGGREEN 0x00FF7FAA
  55. #define COLOR_TOMATO 0xFF6347AA // - Tomato >:/ sounds wrong lol... well... :P
  56. #define COLOR_YELLOWGREEN 0x9ACD32AA //- like military green
  57. #define COLOR_MEDIUMAQUA 0x83BFBFAA
  58. #define COLOR_MEDIUMMAGENTA 0x8B008BAA // dark magenta ^^
  59. #define COL_WHITE "{FFFFFF}"
  60. #define COL_RED "{F81414}"
  61. #define COL_GREEN "{00FF22}"
  62. #define COL_LIGHTBLUE "{00CED1}"
  63. /////////////////////////////////
  64. #define SCM SendClientMessage
  65. #define SPD ShowPlayerDialog
  66. ////////////////////////////////
  67. #define STAN_FILE "Stanovi/%d.ini"
  68. #define IGRAC_FILE "Korisnici/%s.ini"
  69. #define DIALOG_STAN 321
  70. #define DIALOG_OSNOVAC 323
  71. #define DIALOG_USNOVAC 325
  72. #define DIALOG_ISTAN 327
  73. #define MAX_STAN 50
  74. ////////////////////////////////
  75.  
  76. enum pInfo
  77. {
  78. pSifra,
  79. pNovac,
  80. pAdmin,
  81. pUbistava,
  82. pSmrti,
  83. pPosjedovanjeStan,
  84. pProvjeraSpawna
  85. }
  86. enum Stan
  87. {
  88. sProvjeraVlasnika,
  89. sVlasnik[45],
  90. Float:sUlazX,
  91. Float:sUlazY,
  92. Float:sUlazZ,
  93. Float:sIzlazX,
  94. Float:sIzlazY,
  95. Float:sIzlazZ,
  96. sLevel,
  97. sCijena,
  98. sNovac,
  99. sInt,
  100. sZatvoreno,
  101. sVW,
  102. sOruzje,
  103. sMunicija,
  104. sZvono
  105. };
  106. new PlayerInfo[MAX_PLAYERS][pInfo];
  107. new StanInfo[MAX_STAN][Stan];
  108. new StanPickup[sizeof(StanInfo)];
  109. new Text3D:StanLabel[sizeof(StanInfo)];
  110. /////////////////////////////////////
  111. forward LoadUser_data(playerid,name[],value[]);
  112. public LoadUser_data(playerid,name[],value[])
  113. {
  114. INI_Int("Sifra",PlayerInfo[playerid][pSifra]);
  115. INI_Int("Novac",PlayerInfo[playerid][pNovac]);
  116. INI_Int("Admin",PlayerInfo[playerid][pAdmin]);
  117. INI_Int("Ubistava",PlayerInfo[playerid][pUbistava]);
  118. INI_Int("Smrti",PlayerInfo[playerid][pSmrti]);
  119. return 1;
  120. }
  121. forward UcitajStan(idstana, name[], value[]);
  122. public UcitajStan(idstana, name[], value[])
  123. {
  124. INI_Int("ProvjeraVlasnika",StanInfo[idstana][sProvjeraVlasnika]);
  125. INI_String("Vlasnik",StanInfo[idstana][sVlasnik],45);
  126. INI_Float("UlazX",StanInfo[idstana][sUlazX]);
  127. INI_Float("UlazY",StanInfo[idstana][sUlazY]);
  128. INI_Float("UlazZ",StanInfo[idstana][sUlazZ]);
  129. INI_Float("IzlazX",StanInfo[idstana][sIzlazX]);
  130. INI_Float("IzlazY",StanInfo[idstana][sIzlazY]);
  131. INI_Float("IzlazZ",StanInfo[idstana][sIzlazZ]);
  132. INI_Int("Level",StanInfo[idstana][sLevel]);
  133. INI_Int("Cijena",StanInfo[idstana][sCijena]);
  134. INI_Int("Novac",StanInfo[idstana][sNovac]);
  135. INI_Int("Interior",StanInfo[idstana][sInt]);
  136. INI_Int("Zatvoreno",StanInfo[idstana][sZatvoreno]);
  137. INI_Int("VW",StanInfo[idstana][sVW]);
  138. INI_Int("Oruzije",StanInfo[idstana][sOruzje]);
  139. INI_Int("Municija",StanInfo[idstana][sMunicija]);
  140. INI_Int("Zvono",StanInfo[idstana][sZvono]);
  141. return 1;
  142. }
  143. forward UcitavanjeIgraca(playerid, name[], value[]);
  144. public UcitavanjeIgraca(playerid, name[], value[])
  145. {
  146. INI_Int("PosjedovanjeStan",PlayerInfo[playerid][pPosjedovanjeStan]);
  147. INI_Int("ProvjeraSpawna",PlayerInfo[playerid][pProvjeraSpawna]);
  148. return 1;
  149. }
  150.  
  151. //////////////////////////
  152. ////////////////////////////////////////////////////////////
  153. stock SacuvajStan(idstana)
  154. {
  155. new kFile[128];
  156. format(kFile, sizeof(kFile), STAN_FILE, idstana);
  157. new INI:File = INI_Open(kFile);
  158. INI_WriteInt(File,"ProvjeraVlasnika",StanInfo[idstana][sProvjeraVlasnika]);
  159. INI_WriteString(File,"Vlasnik",StanInfo[idstana][sVlasnik]);
  160. INI_WriteFloat(File,"UlazX",StanInfo[idstana][sUlazX]);
  161. INI_WriteFloat(File,"UlazY",StanInfo[idstana][sUlazY]);
  162. INI_WriteFloat(File,"UlazZ",StanInfo[idstana][sUlazZ]);
  163. INI_WriteFloat(File,"IzlazX",StanInfo[idstana][sIzlazX]);
  164. INI_WriteFloat(File,"IzlazY",StanInfo[idstana][sIzlazY]);
  165. INI_WriteFloat(File,"IzlazZ",StanInfo[idstana][sIzlazZ]);
  166. INI_WriteInt(File,"Level",StanInfo[idstana][sLevel]);
  167. INI_WriteInt(File,"Cijena",StanInfo[idstana][sCijena]);
  168. INI_WriteInt(File,"Novac",StanInfo[idstana][sNovac]);
  169. INI_WriteInt(File,"Interior",StanInfo[idstana][sInt]);
  170. INI_WriteInt(File,"Zatvoreno",StanInfo[idstana][sZatvoreno]);
  171. INI_WriteInt(File,"VW",StanInfo[idstana][sVW]);
  172. INI_WriteInt(File,"Oruzije",StanInfo[idstana][sOruzje]);
  173. INI_WriteInt(File,"Municija",StanInfo[idstana][sMunicija]);
  174. INI_WriteInt(File,"Zvono",StanInfo[idstana][sZvono]);
  175. INI_Close(File);
  176. return 1;
  177. }
  178.  
  179. stock StanLP(idstana)
  180. {
  181. new string[400];
  182. if(StanInfo[idstana][sProvjeraVlasnika] == 0)
  183. {
  184. Delete3DTextLabel(StanLabel[idstana]);
  185. DestroyPickup(StanPickup[idstana]);
  186. format(string,sizeof(string),""COLOR_BLUE"Stan na Prodaju!\n"COLOR_BLUE"Cijena: "COLOR_WHITE"%d\n"COLOR_BLUE"Level: "COLOR_WHITE"%d\n"COLOR_BLUE"ID: "COLOR_WHITE"%d\n"COLOR_BLUE"Za kupovinu /kupistan",StanInfo[idstana][sCijena],StanInfo[idstana][sLevel],idstana);
  187. StanLabel[idstana] = Create3DTextLabel(string ,0x33CCFFAA,StanInfo[idstana][sUlazX],StanInfo[idstana][sUlazY],StanInfo[idstana][sUlazZ],25,0,1);
  188. StanPickup[idstana] = CreatePickup(1273, 1, StanInfo[idstana][sUlazX], StanInfo[idstana][sUlazY], StanInfo[idstana][sUlazZ]);
  189. }
  190. else if(StanInfo[idstana][sProvjeraVlasnika] == 1)
  191. {
  192. Delete3DTextLabel(StanLabel[idstana]);
  193. DestroyPickup(StanPickup[idstana]);
  194. format(string,sizeof(string),""COLOR_BLUE"Vlasnik: "COLOR_WHITE"%s\n"COLOR_BLUE"Level: "COLOR_WHITE"%d\n"COLOR_BLUE"Cijena: "COLOR_WHITE"%d\n"COLOR_BLUE"ID: "COLOR_WHITE"%d\n"COLOR_BLUE"'F' za ulaz u stan",StanInfo[idstana][sVlasnik],StanInfo[idstana][sLevel],StanInfo[idstana][sCijena],idstana);
  195. StanLabel[idstana] = Create3DTextLabel(string ,0x33CCFFAA,StanInfo[idstana][sUlazX],StanInfo[idstana][sUlazY],StanInfo[idstana][sUlazZ],25,0,1);
  196. StanPickup[idstana] = CreatePickup(1239, 1, StanInfo[idstana][sUlazX], StanInfo[idstana][sUlazY], StanInfo[idstana][sUlazZ]);
  197. }
  198. return 1;
  199. }
  200.  
  201. stock SacuvajIgraca(playerid)
  202. {
  203. new igraci[50]; format(igraci, sizeof(igraci), IGRAC_FILE, ImeIgraca(playerid));
  204. new INI:File = INI_Open(igraci);
  205. INI_WriteInt(File,"PosjedovanjeStan",PlayerInfo[playerid][pPosjedovanjeStan]);
  206. INI_WriteInt(File,"ProvjeraSpawna",PlayerInfo[playerid][pProvjeraSpawna]);
  207. INI_Close(File);
  208. return 1;
  209. }
  210.  
  211. stock ImeIgraca(playerid)
  212. {
  213. new name[MAX_PLAYER_NAME];
  214. GetPlayerName(playerid, name, sizeof(name));
  215. return name;
  216. }
  217.  
  218. stock MiniRegis(playerid)
  219. {
  220. new igraci[50]; format(igraci, sizeof(igraci), IGRAC_FILE, ImeIgraca(playerid));
  221. new INI:File = INI_Open(igraci);
  222. INI_WriteInt(File,"PosjedovanjeStan",-1);
  223. INI_WriteInt(File,"ProvjeraSpawna",0);
  224. INI_Close(File);
  225. return 1;
  226. }
  227.  
  228. stock UserPath(playerid)
  229. {
  230. new string[128],playername[MAX_PLAYER_NAME];
  231. GetPlayerName(playerid,playername,sizeof(playername));
  232. format(string,sizeof(string),PATH,playername);
  233. return string;
  234. }
  235. ///////////////////////////////////////////////
  236. stock GetName(playerid)
  237. {
  238. new szName[MAX_PLAYER_NAME];
  239. GetPlayerName(playerid, szName, sizeof(szName));
  240. return szName;
  241. }
  242. ///////////////////////////////////////////////
  243. stock udb_hash(buf[])
  244. {
  245. new length=strlen(buf);
  246. new s1 = 1;
  247. new s2 = 0;
  248. new n;
  249. for (n=0; n<length; n++)
  250. {
  251. s1 = (s1 + buf[n]) % 65521;
  252. s2 = (s2 + s1) % 65521;
  253. }
  254. return (s2 << 16) + s1;
  255. }
  256. //////////////////////////////////
  257.  
  258. main()
  259. {
  260. print("\n----------------------------------");
  261. print("Ucitavanje servera...");
  262. printf("Ime Servera: %s", IME_SERVERA );
  263. printf("Verzija Moda: %s", VERZIJA_MODA );
  264. printf("Skripter: %s", SKRIPTER );
  265. print("----------------------------------\n");
  266. }
  267.  
  268. public OnFilterScriptInit()
  269. {
  270. for(new idstana = 0; idstana < sizeof(StanInfo); idstana++)
  271. {
  272. new kFile[50], string[400];
  273. format(kFile, sizeof(kFile), STAN_FILE, idstana);
  274. if(fexist(kFile))
  275. {
  276. INI_ParseFile(kFile, "UcitajStan", .bExtra = true, .extra = idstana);
  277. if(StanInfo[idstana][sProvjeraVlasnika] == 0)
  278. {
  279. format(string,sizeof(string),""COLOR_BLUE"Stan na Prodaju!\n"COLOR_BLUE"Cijena: "BELA"%d\n"COLOR_BLUE"Level: "COLOR_WHITE"%d\n"COLOR_BLUE"ID: "COLOR_WHITE"%d\n"COLOR_BLUE"Za kupovinu /kupistan",StanInfo[idstana][sCijena],StanInfo[idstana][sLevel],idstana);
  280. StanLabel[idstana] = Create3DTextLabel(string ,0x33CCFFAA,StanInfo[idstana][sUlazX],StanInfo[idstana][sUlazY],StanInfo[idstana][sUlazZ],25,0,1);
  281. StanPickup[idstana] = CreatePickup(1273, 1, StanInfo[idstana][sUlazX], StanInfo[idstana][sUlazY], StanInfo[idstana][sUlazZ]);
  282. }
  283. else if(StanInfo[idstana][sProvjeraVlasnika] == 1)
  284. {
  285. format(string,sizeof(string),""SPLAVA"Vlasnik: "BELA"%s\n"SPLAVA"Level: "BELA"%d\n"SPLAVA"Cijena: "BELA"%d\n"SPLAVA"ID: "BELA"%d\n"SPLAVA"'F' za ulaz u stan",StanInfo[idstana][sVlasnik],StanInfo[idstana][sLevel],StanInfo[idstana][sCijena],idstana);
  286. StanLabel[idstana] = Create3DTextLabel(string ,0x33CCFFAA,StanInfo[idstana][sUlazX],StanInfo[idstana][sUlazY],StanInfo[idstana][sUlazZ],25,0,1);
  287. StanPickup[idstana] = CreatePickup(1239, 1, StanInfo[idstana][sUlazX], StanInfo[idstana][sUlazY], StanInfo[idstana][sUlazZ]);
  288. }
  289. }
  290. }
  291. DisableInteriorEnterExits(); print("Stan sistem by Victor Nicchi");
  292. return 1;
  293. }
  294.  
  295. public OnFilterScriptExit()
  296. {
  297. for(new k = 0; k <= MAX_STAN; k++) { SacuvajStan(k); }
  298. return 1;
  299. }
  300.  
  301. public OnGameModeInit()
  302. {
  303. SetGameModeText("SL:RP by Ivo");
  304. AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
  305. return 1;
  306. }
  307.  
  308. public OnGameModeExit()
  309. {
  310. return 1;
  311. }
  312.  
  313. public OnPlayerRequestClass(playerid, classid)
  314. {
  315. SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
  316. SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
  317. SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
  318. return 1;
  319. }
  320.  
  321. public OnPlayerConnect(playerid)
  322. {
  323. SendClientMessage(playerid, COLOR_RED,"Dobrodosao na SL:RP by Ivo!");
  324. if(fexist(UserPath(playerid)))
  325. {
  326. INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
  327. ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT,""COL_WHITE"Login",""COL_WHITE"Ukucajte sifru dabi se ulogovali.","Login","Izadji");
  328. }
  329. else
  330. {
  331. ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT,""COL_WHITE"Registracija...",""COL_WHITE"Ukucajte sifru kako bi se registrovali","Register","Izadji");
  332. }
  333. PlayerInfo[playerid][pProvjeraSpawna] = 0; PlayerInfo[playerid][pPosjedovanjeStan] = -1;
  334. new igraci[50]; format(igraci, sizeof(igraci), IGRAC_FILE, ImeIgraca(playerid));
  335. if(!fexist(igraci))
  336. {
  337. MiniRegis(playerid);
  338. }
  339. else
  340. {
  341. INI_ParseFile(igraci, "UcitavanjeIgraca", .bExtra = true, .extra = playerid);
  342. SCM(playerid,-1,"Ucitavanje...");
  343. }
  344. return 1;
  345. }
  346.  
  347. public OnPlayerDisconnect(playerid, reason)
  348. {
  349. SacuvajIgraca(playerid);
  350. new INI:File = INI_Open(UserPath(playerid));
  351. INI_SetTag(File,"data");
  352. INI_WriteInt(File,"Novac",PlayerInfo[playerid][pNovac]);
  353. INI_WriteInt(File,"Admin",PlayerInfo[playerid][pAdmin]);
  354. INI_WriteInt(File,"Ubistava",PlayerInfo[playerid][pUbistava]);
  355. INI_WriteInt(File,"Smrti",PlayerInfo[playerid][pSmrti]);
  356. INI_Close(File);
  357. return 1;
  358. }
  359.  
  360. public OnPlayerSpawn(playerid)
  361. {
  362. return 1;
  363. }
  364.  
  365. public OnPlayerDeath(playerid, killerid, reason)
  366. {
  367. return 1;
  368. }
  369.  
  370. public OnVehicleSpawn(vehicleid)
  371. {
  372. if(PlayerInfo[playerid][pProvjeraSpawna] == 1 && PlayerInfo[playerid][pPosjedovanjeStan] != -1)
  373. {
  374. new i = PlayerInfo[playerid][pPosjedovanjeStan];
  375. SetPlayerInterior(playerid, 0); SetPlayerVirtualWorld(playerid, 0);
  376. SetPlayerPos(playerid, StanInfo[i][sUlazX], StanInfo[i][sUlazY], StanInfo[i][sUlazZ]);
  377. }
  378. return 1;
  379. }
  380.  
  381. public OnVehicleDeath(vehicleid, killerid)
  382. {
  383. return 1;
  384. }
  385.  
  386. public OnPlayerText(playerid, text[])
  387. {
  388. return 1;
  389. }
  390.  
  391. public OnPlayerCommandText(playerid, cmdtext[])
  392. {
  393. if (strcmp("/mycommand", cmdtext, true, 10) == 0)
  394. {
  395. // Do something here
  396. return 1;
  397. }
  398. return 0;
  399. }
  400.  
  401. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  402. {
  403. return 1;
  404. }
  405.  
  406. public OnPlayerExitVehicle(playerid, vehicleid)
  407. {
  408. return 1;
  409. }
  410.  
  411. public OnPlayerStateChange(playerid, newstate, oldstate)
  412. {
  413. return 1;
  414. }
  415.  
  416. public OnPlayerEnterCheckpoint(playerid)
  417. {
  418. return 1;
  419. }
  420.  
  421. public OnPlayerLeaveCheckpoint(playerid)
  422. {
  423. return 1;
  424. }
  425.  
  426. public OnPlayerEnterRaceCheckpoint(playerid)
  427. {
  428. return 1;
  429. }
  430.  
  431. public OnPlayerLeaveRaceCheckpoint(playerid)
  432. {
  433. return 1;
  434. }
  435.  
  436. public OnRconCommand(cmd[])
  437. {
  438. return 1;
  439. }
  440.  
  441. public OnPlayerRequestSpawn(playerid)
  442. {
  443. return 1;
  444. }
  445.  
  446. public OnObjectMoved(objectid)
  447. {
  448. return 1;
  449. }
  450.  
  451. public OnPlayerObjectMoved(playerid, objectid)
  452. {
  453. return 1;
  454. }
  455.  
  456. public OnPlayerPickUpPickup(playerid, pickupid)
  457. {
  458. return 1;
  459. }
  460.  
  461. public OnVehicleMod(playerid, vehicleid, componentid)
  462. {
  463. return 1;
  464. }
  465.  
  466. public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
  467. {
  468. return 1;
  469. }
  470.  
  471. public OnVehicleRespray(playerid, vehicleid, color1, color2)
  472. {
  473. return 1;
  474. }
  475.  
  476. public OnPlayerSelectedMenuRow(playerid, row)
  477. {
  478. return 1;
  479. }
  480.  
  481. public OnPlayerExitedMenu(playerid)
  482. {
  483. return 1;
  484. }
  485.  
  486. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
  487. {
  488. return 1;
  489. }
  490.  
  491. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  492. {
  493. if( newkeys == KEY_SECONDARY_ATTACK )
  494. {
  495. for(new i; i < MAX_STAN; i++)
  496. {
  497. if(IsPlayerInRangeOfPoint(playerid, 3.0, StanInfo[i][sUlazX], StanInfo[i][sUlazY], StanInfo[i][sUlazZ]))
  498. {
  499. if(StanInfo[i][sZatvoreno] == 1) return SCM(playerid,-1,""COLOR_BLUE"[Stan] "COLOR_GREY"Zakljucan!");
  500. SetPlayerVirtualWorld(playerid, StanInfo[i][sVW]);
  501. SetPlayerInterior(playerid, StanInfo[i][sInt]);
  502. SetPlayerPos(playerid, StanInfo[i][sIzlazX], StanInfo[i][sIzlazY], StanInfo[i][sIzlazZ]);
  503. return 1;
  504. }
  505. if(IsPlayerInRangeOfPoint(playerid, 3.0, StanInfo[i][sIzlazX], StanInfo[i][sIzlazY], StanInfo[i][sIzlazZ]) && GetPlayerVirtualWorld(playerid) == StanInfo[i][sVW])
  506. {
  507. SetPlayerInterior(playerid, 0);
  508. SetPlayerVirtualWorld(playerid, 0);
  509. SetPlayerPos(playerid, StanInfo[i][sUlazX], StanInfo[i][sUlazY], StanInfo[i][sUlazZ]);
  510. return 1;
  511. }
  512. }
  513. }
  514. return 1;
  515. }
  516.  
  517. public OnRconLoginAttempt(ip[], password[], success)
  518. {
  519. return 1;
  520. }
  521.  
  522. public OnPlayerUpdate(playerid)
  523. {
  524. return 1;
  525. }
  526.  
  527. public OnPlayerStreamIn(playerid, forplayerid)
  528. {
  529. return 1;
  530. }
  531.  
  532. public OnPlayerStreamOut(playerid, forplayerid)
  533. {
  534. return 1;
  535. }
  536.  
  537. public OnVehicleStreamIn(vehicleid, forplayerid)
  538. {
  539. return 1;
  540. }
  541.  
  542. public OnVehicleStreamOut(vehicleid, forplayerid)
  543. {
  544. return 1;
  545. }
  546.  
  547. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  548. {
  549. switch( dialogid )
  550. {
  551. case DIALOG_REGISTER:
  552. {
  553. if(!response) return Kick(playerid);
  554. if(response)
  555. {
  556. if(!strlen(inputtext)) return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, ""COL_WHITE"Registracija...",""COL_RED"Ukucali ste pogresnu lozinku.\n"COL_WHITE"Ukucajta sifru kako bi registrovali nalog","Register","Izadji");
  557. new INI:File = INI_Open(UserPath(playerid));
  558. INI_SetTag(File,"data");
  559. INI_WriteInt(File,"Sifra",udb_hash(inputtext));
  560. INI_WriteInt(File,"Novac",0);
  561. INI_WriteInt(File,"Admin",0);
  562. INI_WriteInt(File,"Ubistava",0);
  563. INI_WriteInt(File,"Smrti",0);
  564. INI_Close(File);
  565. SetSpawnInfo(playerid, 0, 0, 1958.33, 1343.12, 15.36, 269.15, 0, 0, 0, 0, 0, 0);
  566. SpawnPlayer(playerid);
  567. ShowPlayerDialog(playerid, DIALOG_USPESNO_1, DIALOG_STYLE_MSGBOX,""COL_WHITE"Dobrodosli!",""COL_GREEN"Uspesno ste se registrovali!","Ok","");
  568.  
  569. }
  570. }
  571. case DIALOG_LOGIN:
  572. {
  573. if( !response ) return Kick( playerid );
  574. if( response )
  575. {
  576. if(udb_hash(inputtext) == PlayerInfo[playerid][pSifra])
  577. {
  578. INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
  579. GivePlayerMoney(playerid, PlayerInfo[playerid][pNovac]);
  580. ShowPlayerDialog(playerid, DIALOG_USPESNO_2, DIALOG_STYLE_MSGBOX,""COL_WHITE"Dobrodosli!",""COL_GREEN"Uspesno ste se ulogovali!","Ok","");
  581. }
  582. else
  583. {
  584. ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT,""COL_WHITE"Login",""COL_RED"Ukucali ste pogresnu sifru.\n"COL_WHITE"Ukucajte sifru kako bi se ulogovali.","Login","Izadji");
  585. }
  586. return 1;
  587. }
  588. }
  589. }
  590. if(dialogid == DIALOG_STAN)
  591. {
  592. if(!response) return 1;
  593. if(PlayerInfo[playerid][pPosjedovanjeStan] == -1) return SCM(playerid,-1, "("COLOR_RED"Greska{FFFFFF}!) Nemate stan!");
  594. new i = PlayerInfo[playerid][pPosjedovanjeStan];
  595. switch(listitem)
  596. {
  597. case 0:
  598. {
  599. new string[256];
  600. SCM(playerid,-1,"""|---------------------------------------------------------------------------------------------------|");
  601. format(string,sizeof(string),""COLOR_GREY"| Vlasnik: %s | Level: %d ",StanInfo[i][sVlasnik],StanInfo[i][sLevel]);
  602. SCM(playerid,-1,string);
  603. format(string,sizeof(string),""COLOR_GREY"Cijena: %d | ID: %d | Novac: %d | Oruzje: %d | Municija: %d",StanInfo[i][sCijena],i,StanInfo[i][sNovac],StanInfo[i][sOruzje],StanInfo[i][sMunicija]);
  604. SCM(playerid,-1,string);
  605. SCM(playerid,-1,""SPLAVA"|---------------------------------------------------------------------------------------------------|");
  606. }
  607. case 1:
  608. {
  609. if(StanInfo[i][sZatvoreno] == 0) return SCM(playerid,-1,"("COLOR_RED"Greska{FFFFFF}!) Vec je otkljucan!");
  610. StanInfo[i][sZatvoreno] = 0; SacuvajStan(i);
  611. SCM(playerid,-1, ""COLOR_BLUE"[Stan] "COLOR_WHITE"Stan otkljucan!");
  612. }
  613. case 2:
  614. {
  615. if(StanInfo[i][sZatvoreno] == 1) return SCM(playerid,-1,"("COLOR_RED"Greska{FFFFFF}!) Vec je zakljucan!");
  616. StanInfo[i][sZatvoreno] = 1; SacuvajStan(i);
  617. SCM(playerid,-1, ""COLOR_BLUE"[Stan] "COLOR_WHITE"Stan zakljucan!");
  618. }
  619. case 3:
  620. {
  621. SPD(playerid,DIALOG_OSNOVAC,DIALOG_STYLE_INPUT, ""COLOR_BLUE"Ostavljanje Novca", ""COLOR_WHITE"Unesite kolicinu novca koju zelite ostaviti", "Ostavi", "Izlaz");
  622. }
  623. case 4:
  624. {
  625. SPD(playerid,DIALOG_USNOVAC,DIALOG_STYLE_INPUT, ""COLOR_BLUE"Uzimanje Novca", ""COLOR_WHITE"Unesite kolicinu novca koju zelite uzeti", "Uzmi", "Izlaz");
  626. }
  627. case 5:
  628. {
  629. if(StanInfo[i][sOruzje] != -1) return SCM(playerid,-1,"("COLOR_RED"Greska{FFFFFF}!) Vec imas oruzje u stanu!");
  630. if(GetPlayerWeapon(playerid) <= 0) return SCM(playerid,-1,"("COLOR_RED"Greska{FFFFFF}!) Nemas oruzje u ruci!");
  631. StanInfo[i][sOruzje] = GetPlayerWeapon(playerid); StanInfo[i][sMunicija] = GetPlayerAmmo(playerid);
  632. SCM(playerid,-1,""COLOR_YELLOW"Ostavili ste oruzje u stanu!"); SacuvajStan(i); SetPlayerAmmo(playerid, GetPlayerWeapon(playerid), 0);
  633. }
  634. case 6:
  635. {
  636. if(StanInfo[i][sOruzje] == -1) return SCM(playerid,-1,"("COLOR_RED"Greska{FFFFFF}!) Nemas oruzje u stanu!");
  637. GivePlayerWeapon(playerid,StanInfo[i][sOruzje],StanInfo[i][sMunicija]); StanInfo[i][sOruzje] = -1; StanInfo[i][sMunicija] = -1;
  638. SacuvajStan(i); SCM(playerid,-1,""COLOR_YELLOW"Uzeli ste oruzje iz vaseg stana!");
  639. }
  640. case 7:
  641. {
  642. new string[60]; GivePlayerMoney(playerid,StanInfo[i][sCijena]);
  643. StanInfo[i][sProvjeraVlasnika] = 0; StanInfo[i][sNovac] = 0; StanInfo[i][sOruzje] = -1; StanInfo[i][sMunicija] = 0;
  644. strmid(StanInfo[i][sVlasnik], "Niko", 0, strlen("Niko"), 255); PlayerInfo[playerid][pPosjedovanjeStan] = -1;
  645. SacuvajStan(i); StanLP(i); SacuvajIgraca(playerid);
  646. format(string,sizeof(string),""COLOR_YELLOW"Prodali ste stan za {FFFFFF}%d!",StanInfo[i][sCijena]);
  647. SCM(playerid,-1,string);
  648. }
  649. /* case 8:
  650. {
  651. PlayerInfo[playerid][pProvjeraSpawna] = 1;
  652. SCM(playerid,-1,""COLOR_YELLOW"Od sada cete se spawnati u stanu!");
  653. }*/
  654. case 8:
  655. {
  656. if(StanInfo[i][sZvono] == 1) return SCM(playerid,-1,"("COLOR_RED"Greska{FFFFFF}!) Vec imas zvono na stanu!");
  657. if(GetPlayerMoney(playerid) < 5000) return SCM(playerid,-1,"("COLOR_RED"Greska{FFFFFF}!) Nemas dovoljno novca!");
  658. StanInfo[i][sZvono] = 1; GivePlayerMoney(playerid,-5000); SCM(playerid,-1,""COLOR_YELLOW"Ugradili ste zvono u vas stan!");
  659. }
  660. }
  661. }
  662. ///////////////////////////////////////////////////
  663. ///////////////////////////////////////////////////
  664. if(dialogid == DIALOG_OSNOVAC)
  665. {
  666. if(PlayerInfo[playerid][pPosjedovanjeStan] == -1) return SCM(playerid,-1, "("COL_RED"Greska{FFFFFF}!) Nemate stan!");
  667. new i = PlayerInfo[playerid][pPosjedovanjeStan];
  668. if(response)
  669. {
  670. new iznos,string[256];
  671. if(sscanf(inputtext, "i", iznos)) return SPD(playerid,DIALOG_OSNOVAC,DIALOG_STYLE_INPUT, ""COLOR_BLUE"Ostavljanje Novca", ""COLOR_WHITE"Unesite kolicinu novca koju zelite ostaviti", "Ostavi", "Izlaz");
  672. if(iznos > GetPlayerMoney(playerid)) return SCM(playerid,-1,"("COLOR_RED"Greska{FFFFFF}!) Nemate toliko novca!");
  673. if(iznos < 1 || iznos > 100000) return SCM(playerid,-1,"("COLOR_RED"Greska{FFFFFF}!) Suma ne mozete biti manja od 1 i veca od 100000!");
  674. StanInfo[i][sNovac] += iznos; GivePlayerMoney(playerid, -iznos); SacuvajStan(i);
  675. format(string,sizeof(string),"{F3FF02}Ostavili ste u stanu {FFFFFF} %d$!",iznos);
  676. SCM(playerid,-1,string);
  677. }
  678. }
  679. //////////////////////////////////////////////////
  680. if(dialogid == DIALOG_USNOVAC)
  681. {
  682. if(PlayerInfo[playerid][pPosjedovanjeStan] == -1) return SCM(playerid,-1, "("COLOR_RED"Greska{FFFFFF}!) Nemate stan!");
  683. new i = PlayerInfo[playerid][pPosjedovanjeStan];
  684. if(response)
  685. {
  686. new iznos,string[256];
  687. if(sscanf(inputtext, "i", iznos)) return SPD(playerid,DIALOG_USNOVAC,DIALOG_STYLE_INPUT, ""COLOR_BLUE"Uzimanje Novca", ""COLOR_BLUE"Unesite kolicinu novca koju zelite da uzmete", "Uzmi", "Izlaz");
  688. if(iznos > StanInfo[i][sNovac]) return SCM(playerid,-1,"("COLOR_RED"Greska{FFFFFF}!) Nemate toliko novca u stanu!");
  689. if(iznos < 1 || iznos > 100000) return SCM(playerid,-1,"("COLOR_RED"Greska{FFFFFF}!) Suma ne mozete biti manja od 1 i veca od 100000!");
  690. StanInfo[i][sNovac] -= iznos; GivePlayerMoney(playerid, iznos); SacuvajStan(i);
  691. format(string,sizeof(string),"{F3FF02}Uzeli ste iz stana {FFFFFF}%d$!",iznos);
  692. SCM(playerid,-1,string);
  693. }
  694. return 1;
  695. }
  696.  
  697. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  698. {
  699. return 1;
  700. }
  701.  
  702. //== KOMANDE ==//
  703. CMD:kreirajstan(playerid, params[],help)
  704. {
  705. if(!IsPlayerAdmin(playerid)) return SCM(playerid,-1,"("COLOR_RED"Greska{FFFFFF}!) {C0C0C0}Niste ovlasteni!");
  706. new idstana,level,cijena,Float:X,Float:Y,Float:Z,fstana[80],string[400]; GetPlayerPos(playerid,X,Y,Z);
  707. if(sscanf(params, "iiii",idstana,level,cijena)) return SCM(playerid,-1,"{C0C0C0}Koristi: /kreirajstan [ID] [Level] [Cijena]");
  708. if(idstana >= MAX_STAN) return SCM(playerid,-1, "("COLOR_RED"Greska{FFFFFF}!) {FFFFFF}Maximum stanova je ogranicen, ne mozes koristiti taj ID!");
  709. format(fstana, sizeof(fstana), STAN_FILE, idstana);
  710. if(fexist(fstana)) return SCM(playerid,-1, "("COLOR_RED"Greska{FFFFFF}!) ID tog stana vec postoji!");
  711. StanInfo[idstana][sCijena] = cijena; StanInfo[idstana][sLevel] = level; StanInfo[idstana][sUlazX] = X;
  712. StanInfo[idstana][sUlazY] = Y; StanInfo[idstana][sUlazZ] = Z; StanInfo[idstana][sProvjeraVlasnika] = 0;
  713. StanInfo[idstana][sNovac] = 0; StanInfo[idstana][sZatvoreno] = 1; StanInfo[idstana][sVW] = idstana; StanInfo[idstana][sZvono] = 0;
  714. StanInfo[idstana][sOruzje] = -1; StanInfo[idstana][sMunicija] = 0;
  715.  
  716. StanInfo[idstana][sIzlazX] = 1698.0801;
  717. StanInfo[idstana][sIzlazY] = -1386.5389;
  718. StanInfo[idstana][sIzlazZ] = 37.2989;
  719.  
  720. strmid(StanInfo[idstana][sVlasnik],"Niko",0,strlen("Niko"),255);
  721. format(string,sizeof(string),""COLOR_BLUE"Stan na Prodaju!\n"COLOR_GREEN"Cijena: "COLOR_WHITE"%d\n"COLOR_BLUE"Level: "COLOR_WHITE"%d\n"COLOR_BLUE"ID: "COLOR_WHITE"%d\n"COLOR_BLUE"Za kupovinu /kupistan",StanInfo[idstana][sCijena],StanInfo[idstana][sLevel],idstana);
  722. StanLabel[idstana] = Create3DTextLabel(string ,0x33CCFFAA,X,Y,Z,25,0,1);
  723. StanPickup[idstana] = CreatePickup(1273, 1, StanInfo[idstana][sUlazX], StanInfo[idstana][sUlazY], StanInfo[idstana][sUlazZ]);
  724. SCM(playerid,-1,""COLOR_GREY"Stan je uspjesno kreiran!"); SacuvajStan(idstana);
  725. return 1;
  726. }
  727. CMD:kupistan(playerid, params[], help)
  728. {
  729. for(new i; i < sizeof(StanInfo); i++)
  730. {
  731. if(IsPlayerInRangeOfPoint(playerid, 3.0, StanInfo[i][sUlazX], StanInfo[i][sUlazY], StanInfo[i][sUlazZ]))
  732. {
  733. if(!strcmp(StanInfo[i][sVlasnik], "Niko", true) && StanInfo[i][sProvjeraVlasnika] == 0)
  734. {
  735. if(PlayerInfo[playerid][pPosjedovanjeStan] != -1) return SCM(playerid,-1, "("COLOR_RED"Greska{FFFFFF}!) Vec imas stan!");
  736. if(GetPlayerScore(playerid) < StanInfo[i][sLevel]) return SCM(playerid,-1,"("COLOR_RED"Greska{FFFFFF}!) Nemas level za kupnju stana!");
  737. if(GetPlayerMoney(playerid) < StanInfo[i][sCijena]) return SCM(playerid,-1, "("COLOR_RED"Greska{FFFFFF}!) Nemas dovoljno novca za kupovinu stana!");
  738. strmid(StanInfo[i][sVlasnik], ImeIgraca(playerid), 0, strlen(ImeIgraca(playerid)), 255);
  739. StanInfo[i][sProvjeraVlasnika] = 1; SetPlayerInterior(playerid, StanInfo[i][sInt]); PlayerInfo[playerid][pPosjedovanjeStan] = i;
  740. SetPlayerVirtualWorld(playerid, StanInfo[i][sVW]); SetPlayerPos(playerid, StanInfo[i][sIzlazX], StanInfo[i][sIzlazY], StanInfo[i][sIzlazZ]);
  741. StanInfo[i][sZatvoreno] = 0; GivePlayerMoney(playerid, -StanInfo[i][sCijena]); StanLP(i); SacuvajStan(i);
  742. SCM(playerid,-1, ""SPLAVA"Stan | "COLOR_GREY"Cestitamo, kupili ste stan!");
  743. SCM(playerid,-1, ""SPLAVA"Stan | "COLOR_GREY"Za komande stana koristite /stan!");
  744. SCM(playerid,-1, ""SPLAVA"Stan | "COLOR_GREY"Za ulaz u stan koristi tipku F!");
  745. return 1;
  746. }
  747. else return SCM(playerid, -1, "("COLOR_RED"Greska{FFFFFF}!) Taj stan se ne prodaje!");
  748. }
  749. }
  750. return 1;
  751. }
  752. CMD:stan(playerid, params[], help)
  753. {
  754. if(PlayerInfo[playerid][pPosjedovanjeStan] == -1) return SCM(playerid,-1,"("COLOR_RED"Greska{FFFFFF}!) Nemate stan!");
  755. if(strcmp(StanInfo[PlayerInfo[playerid][pPosjedovanjeStan]][sVlasnik], ImeIgraca(playerid), true)) return SCM(playerid,-1, "("COLOR_RED"Greska{FFFFFF}!) Niste vlasnik tog stana!");
  756. new string[256];
  757. format(string,sizeof(string),""COLOR_BLUE"Informacije\nOtkljucaj\nZakljucaj\nOstavi novac\nUzmi novac\nOstavi gun\nUzmi gun\nProdaj stan\nZvono (5000$)");
  758. SPD(playerid, DIALOG_STAN, DIALOG_STYLE_LIST, ""COLOR_BLUE"Stan Opcije", string, "Odaberi", "Izlaz");
  759. return 1;
  760. }
  761. CMD:zvoni(playerid, params[], help)
  762. {
  763. for(new i = 0; i < sizeof(StanInfo); i++)
  764. {
  765. if(IsPlayerInRangeOfPoint(playerid, 3.0, StanInfo[i][sUlazX], StanInfo[i][sUlazY], StanInfo[i][sUlazZ]))
  766. {
  767. if(StanInfo[i][sZvono] == 0) return SCM(playerid,-1,"("COLOR_RED"Greska{FFFFFF}!) Taj stan nema zvono!");
  768. SCM(playerid,-1,""COLOR_YELLOW"Zvonite na vrata!");
  769. foreach(Player, k)
  770. {
  771. if (IsPlayerInRangeOfPoint(k,3.0,StanInfo[i][sIzlazX], StanInfo[i][sIzlazY], StanInfo[i][sIzlazZ]))
  772. {
  773. SCM(k,-1, ""COLRO_YELLOW"Netko zvoni na vasa vrata.");
  774. }
  775. }
  776. return 1;
  777. }
  778. CMD:izbrisistan(playerid, params[], help)
  779. {
  780. if(!IsPlayerAdmin(playerid)) return SCM(playerid,-1,"("COLOR_RED"Greska{FFFFFF}!) {C0C0C0}Niste ovlasteni!");
  781. new kFile[50],id;
  782. if(sscanf(params,"i",id)) return SCM(playerid,-1,"{C0C0C0}Koristi: /izbrisistan [ID]");
  783. format(kFile, sizeof(kFile), STAN_FILE, id);
  784. if(fexist(kFile)){ fremove(kFile); Delete3DTextLabel(StanLabel[id]); DestroyPickup(StanPickup[id]); }
  785. else { SCM(playerid,-1,"Taj id stana ne postoji!"); }
  786. return 1;
  787. }
  788. CMD:portstan(playerid, params[], help)
  789. {
  790. if(!IsPlayerAdmin(playerid)) return SCM(playerid,-1,"("COLOR_RED"Greska{FFFFFF}!) {C0C0C0}Niste ovlasteni!");
  791. new id,kFile[50];
  792. if(sscanf(params,"i",id)) return SCM(playerid,-1,"{C0C0C0}Koristi: /portstan [ID]");
  793. format(kFile, sizeof(kFile), STAN_FILE, id);
  794. SetPlayerPos(playerid,StanInfo[id][sUlazX], StanInfo[id][sUlazY], StanInfo[id][sUlazZ]);
  795. SetPlayerInterior(playerid,0); SetPlayerVirtualWorld(playerid,0);
  796. return 1;
  797. }
  798.  
Advertisement
Add Comment
Please, Sign In to add comment