Advertisement
Guest User

Untitled

a guest
Sep 24th, 2016
315
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.81 KB | None | 0 0
  1. #include <a_samp>
  2. #include < a_objects >
  3. #include < core >
  4. #include < float >
  5. #include < time >
  6. #include < morphinc >
  7. #include < file >
  8. #include < dini >
  9. #include < foreach >
  10. #include < streamer >
  11. #include < YSI\y_ini >
  12. #include < OnPlayerPause >
  13. #include < YSI\y_commands >
  14. #include < sscanf2 >
  15. /////////////////////////////////////////////////////////////////////
  16. #undef MAX_PLAYERS
  17. #define MAX_PLAYERS 350
  18. #define KORISNICI "Users/%s.ini"
  19. #define SCM SendClientMessage
  20. #define SCMF SendClientMessage
  21. //////////////////////////////////////////////////////////////////
  22. #define BELA "{FFFFFF}"
  23. #define ZELENA "{6EF83C}"
  24. #define CRVENA "{F81414}"
  25. #define ZUTA "{F3FF02}"
  26. #define ORANGE "{FFAF00}"
  27. #define SPLAVA "{00C0FF}"
  28. #define ZPLAVA "{22C7F5}"
  29. #define PLAVA "{0049FF}"
  30. #define SVETLOPLAVA "{0049FF}"
  31. #define ROZA "{FF00EA}"
  32. #define CMDC "{B8FF02}"
  33. #define SERVER "{AFE7FF}"
  34. #define SZELENA "{C9FFAB}"
  35. #define LJUB "{EE11EE}"
  36. #define SIVA "{C0C0C0}"
  37. #define CRVENA2 "{FF6347}"
  38. #define PPLAVA "{0084e3}"
  39. #define SCRV2 "{FF6347}"
  40. #define BALLASC "{D1345B}"
  41. #define HZELENA "{04CC29}"
  42. #define GROVE 0x00D900C8
  43. #define AZUTA 0xFFC801C8
  44. #define BELA2 0xFFFFFFAA
  45. #define PROX 0xC2A2DAAA
  46. #define SCRVENA 0xFF6347AA
  47. #define COLOR_GRAD2 0xBFC0C2FF
  48. #define TEAM_HIT_COLOR 0xFFFFFF00
  49. #define COLOR_YELLOW 0xDABB3EAA
  50. #define MUTE 0xB5603CFF
  51. #define ACRNA 0x000000FF
  52. #define HZUTA 0xF5BB0AFF
  53. new UlogovanProvera[MAX_PLAYERS];
  54. new Float:X,Float:Y,Float:Z;
  55. enum pInfo
  56. {
  57. pAdmin,
  58. pPosedovanjeStana,
  59. pNovacDzep,
  60. }
  61. new PlayerInfo[MAX_PLAYERS][pInfo];
  62. ///////////////////////////////////////////////////
  63. #define STAN_FILE "Stanovi/%d.ini"
  64. #define MAX_STANOVA 350
  65. enum Stan
  66. {
  67. sProveraVlasnika,
  68. sVlasnik[45],
  69. Float:sUlazX,
  70. Float:sUlazY,
  71. Float:sUlazZ,
  72. Float:sIzlazX,
  73. Float:sIzlazY,
  74. Float:sIzlazZ,
  75. sLevel,
  76. sCena,
  77. sNovac,
  78. sInt,
  79. sZatvoreno,
  80. sVW,
  81. sOruzije,
  82. sMunicija
  83. };
  84. new StanInfo[MAX_STANOVA][Stan];
  85. new StanPickup[sizeof(StanInfo)];
  86. new Text3D:StanLabel[sizeof(StanInfo)];
  87. ////////////////////////////////////////////////
  88. public OnGameModeInit()
  89. {
  90. SetGameModeText("SRW 0.1");
  91. ////////////////////////STANOVI UCITAVANJE///////////////////////////////////////
  92. for(new s = 0; s < sizeof(StanInfo); s++)
  93. {
  94. new sFile[80],string[300];
  95. format(sFile, sizeof(sFile), STAN_FILE, s);
  96. if(fexist(sFile))
  97. {
  98. INI_ParseFile(sFile, "UcitajStanove", .bExtra = true, .extra = s);
  99. if(StanInfo[s][sProveraVlasnika] == 0)
  100. {
  101. format(string,sizeof(string),""ORANGE"Apartman na prodaju\nCijena: "BELA"%d$\n"ORANGE"Level: "BELA"%d\n"ORANGE"",StanInfo[s][sCena], StanInfo[s][sLevel]);
  102. StanLabel[s] = Create3DTextLabel(string ,0x33CCFFAA,StanInfo[s][sUlazX], StanInfo[s][sUlazY], StanInfo[s][sUlazZ],30.0,0,1);
  103. StanPickup[s] = CreateDynamicPickup(19606, 1, StanInfo[s][sUlazX], StanInfo[s][sUlazY], StanInfo[s][sUlazZ]);
  104. printf("Stan %d Ucitan od strane WrithAC",s , string);
  105. }
  106. else if(StanInfo[s][sProveraVlasnika] == 1)
  107. {
  108. format(string,sizeof(string),""ORANGE"Apartman Owner: "BELA"%s\n"ORANGE"Cijena: "BELA"%d$\n"ORANGE"Level: "BELA"%d",StanInfo[s][sVlasnik],StanInfo[s][sCena],StanInfo[s][sLevel]);
  109. StanLabel[s] = Create3DTextLabel(string ,0x33CCFFAA,StanInfo[s][sUlazX], StanInfo[s][sUlazY], StanInfo[s][sUlazZ],30.0,0,1);
  110. StanPickup[s] = CreateDynamicPickup(19605, 1, StanInfo[s][sUlazX], StanInfo[s][sUlazY], StanInfo[s][sUlazZ]);
  111. }
  112. }
  113. }
  114. return 1;
  115. }
  116. ////////////////////////////////////////////////
  117. stock SavePlayer(playerid)
  118. {
  119. if(UlogovanProvera[playerid] == 1)
  120. {
  121. new INI:File = INI_Open(Users(playerid));
  122. INI_SetTag(File,"data");
  123. INI_WriteInt(File,"Admin", PlayerInfo[playerid][pAdmin]);
  124. INI_WriteInt(File,"Stan", PlayerInfo[playerid][pPosedovanjeStana]);
  125. INI_WriteInt(File,"NovacDzep", PlayerInfo[playerid][pNovacDzep]);
  126. INI_Close(File);
  127. }
  128. return 1;
  129. }
  130. ////////////////////////////////////////////////////
  131. YCMD:kreirajstan(playerid, params[],help)
  132. {
  133. #pragma unused help
  134. /// if(UlogovanProvera[playerid] == 0) return SCM(playerid,-1,""ORANGE"[SERVER] | "CRVENA"Moras se ulogovati da bi koristio ovu komandu!");
  135. // if(PlayerInfo[playerid][pAdmin] < 6) return SCM(playerid,-1,""SPLAVA""ORANGE"[SERVER] "SIVA"Samo Vlasnik!");
  136. //if(AdminDuty[playerid] == 0) return SCM(playerid,-1,""CRVENA""ORANGE"[SERVER] "SIVA"Morate biti na admin duznosti!");
  137. new idstan,level,cena,sstan[80],string[500]; GetPlayerPos(playerid,X,Y,Z);
  138. if(sscanf(params, "iii",idstan,level,cena)) return SCM(playerid,-1,""CRVENA""ORANGE"[SERVER] Pomoc | "SIVA"/kreirajstan [ID] [Level] [Cena]");
  139. if(idstan >= MAX_STANOVA) return SCM(playerid,-1, ""CRVENA""ORANGE"[SERVER] | "SIVA"Maximum stanova je ogranicen ne mozes koristiti taj ID!");
  140. format(sstan, sizeof(sstan), STAN_FILE, idstan);
  141. if(fexist(sstan)) return SCM(playerid,-1, ""ORANGE"[SERVER] | "SPLAVA"ID tog stana vec postoji!");
  142. StanInfo[idstan][sIzlazX] = 244.1522; StanInfo[idstan][sIzlazY] = 305.0730; StanInfo[idstan][sIzlazZ] = 999.1484; StanInfo[idstan][sInt] = 1;
  143. StanInfo[idstan][sCena] = cena; StanInfo[idstan][sLevel] = level; StanInfo[idstan][sUlazX] = X;
  144. StanInfo[idstan][sUlazY] = Y; StanInfo[idstan][sUlazZ] = Z; StanInfo[idstan][sProveraVlasnika] = 0;
  145. StanInfo[idstan][sNovac] = 0; StanInfo[idstan][sZatvoreno] = 1; StanInfo[idstan][sVW] = idstan;
  146. StanInfo[idstan][sOruzije] = -1; StanInfo[idstan][sMunicija] = 0;
  147. strmid(StanInfo[idstan][sVlasnik],"Niko",0,strlen("Niko"),255);
  148. format(string,sizeof(string),""ORANGE"Stan na Prodaju!\nCena: "BELA"%d$\n"ZUTA"Level: "BELA"%d\n"ORANGE"Za kupovinu /kupistan",StanInfo[idstan][sCena], StanInfo[idstan][sLevel]);
  149. StanLabel[idstan] = Create3DTextLabel(string ,0x33CCFFAA,StanInfo[idstan][sUlazX], StanInfo[idstan][sUlazY], StanInfo[idstan][sUlazZ],25,0,1);
  150. StanPickup[idstan] = CreateDynamicPickup(19134, 1, StanInfo[idstan][sUlazX], StanInfo[idstan][sUlazY], StanInfo[idstan][sUlazZ]);
  151. // SCMF(playerid,-1,""CRVENA""ORANGE"[SERVER] "SIVA"Stan je uspesno kreiran (ID Stana: %d)!",idstan);
  152. SacuvajStan(idstan);
  153. return 1;
  154. }
  155. ////////////////////////////////////////////////////
  156. YCMD:kupistan(playerid, params[], help)
  157. {
  158. #pragma unused help
  159. #pragma unused params
  160. if(UlogovanProvera[playerid] == 0) return SCM(playerid,-1,""ORANGE"[SERVER] | "CRVENA"Moras se ulogovati da bi koristio ovu komandu!");
  161. for(new i; i < sizeof(StanInfo); i++)
  162. {
  163. if(IsPlayerInRangeOfPoint(playerid, 3.0, StanInfo[i][sUlazX], StanInfo[i][sUlazY], StanInfo[i][sUlazZ]))
  164. {
  165. if(!strcmp(StanInfo[i][sVlasnik], "Niko", true) && StanInfo[i][sProveraVlasnika] == 0)
  166. {
  167. if(PlayerInfo[playerid][pPosedovanjeStana] != 1) return SCM(playerid,-1, ""CRVENA""ORANGE"[SERVER] | "SIVA"Vec imas stan!");
  168. if(GetPlayerScore(playerid) < StanInfo[i][sLevel]) return SCM(playerid,-1,""ORANGE"[SERVER] | "CRVENA"Nemate dovoljan level za kupovinu stana!");
  169. if(PlayerInfo[playerid][pNovacDzep] < StanInfo[i][sCena]) return SCM(playerid,-1, ""ORANGE"[SERVER] | "CRVENA"Nemate dovoljno novca za kupovinu stana!");
  170. strmid(StanInfo[i][sVlasnik], GetName(playerid), 0, strlen(GetName(playerid)), 255);
  171. StanInfo[i][sProveraVlasnika] = 1; PlayerInfo[playerid][pPosedovanjeStana] = i;
  172. StanInfo[i][sZatvoreno] = 1; g_NovacMinus(playerid, StanInfo[i][sCena]); StanLP(i); SacuvajStan(i); SavePlayer(playerid);
  173. SCM(playerid,-1, ""ZUTA""ORANGE"[SERVER] "SIVA"Cestitamo, kupili ste stan!");
  174. SCM(playerid,-1, ""ZUTA""ORANGE"[SERVER] "SIVA"Za komande kuce koristite /stan!");
  175. SCM(playerid,-1, ""ZUTA""ORANGE"[SERVER] "SIVA"Za ulaz u stan koristi tipku F!");
  176. return 1;
  177. }
  178. else return SCM(playerid, -1, ""CRVENA""ORANGE"[SERVER] "SIVA"Taj stan se ne prodaje!");
  179. }
  180. }
  181. return 1;
  182. }
  183. /////////////////////////////////////////////////////////////////////
  184. stock StanLP(s)
  185. {
  186. new string[300];
  187. if(StanInfo[s][sProveraVlasnika] == 0)
  188. {
  189. Delete3DTextLabel(StanLabel[s]);
  190. DestroyDynamicPickup(StanPickup[s]);
  191. format(string,sizeof(string),""ZUTA"Stan na Prodaju!\nCena: "BELA"%d$\n"ZUTA"Level: "BELA"%d\n"ZUTA"Za kupovinu /kupistan",StanInfo[s][sCena], StanInfo[s][sLevel]);
  192. StanLabel[s] = Create3DTextLabel(string ,0x33CCFFAA,StanInfo[s][sUlazX], StanInfo[s][sUlazY], StanInfo[s][sUlazZ],30.0,0,1);
  193. StanPickup[s] = CreateDynamicPickup(19134, 1, StanInfo[s][sUlazX], StanInfo[s][sUlazY], StanInfo[s][sUlazZ]);
  194. }
  195. else if(StanInfo[s][sProveraVlasnika] == 1)
  196. {
  197. Delete3DTextLabel(StanLabel[s]);
  198. DestroyDynamicPickup(StanPickup[s]);
  199. format(string,sizeof(string),""ZUTA"Vlasnik stana: "BELA"%s\n"ZUTA"Cena: "BELA"%d$\n"ZUTA"Level: "BELA"%d",StanInfo[s][sVlasnik],StanInfo[s][sCena],StanInfo[s][sLevel]);
  200. StanLabel[s] = Create3DTextLabel(string ,0x33CCFFAA,StanInfo[s][sUlazX], StanInfo[s][sUlazY], StanInfo[s][sUlazZ],30.0,0,1);
  201. StanPickup[s] = CreateDynamicPickup(1239, 1, StanInfo[s][sUlazX], StanInfo[s][sUlazY], StanInfo[s][sUlazZ]);
  202. }
  203. return 1;
  204. }
  205. /////////////////////////////////////////////CUVANJA/CITANJA////////////////////////////////////////////////////
  206. //////////////////////////////////////////////////////////////////////
  207. stock SacuvajStan(idstan)
  208. {
  209. new sFile[128];
  210. format(sFile, sizeof(sFile), STAN_FILE, idstan);
  211. new INI:File = INI_Open(sFile);
  212. INI_WriteInt(File,"ProveraVlasnika",StanInfo[idstan][sProveraVlasnika]);
  213. INI_WriteString(File,"Vlasnik",StanInfo[idstan][sVlasnik]);
  214. INI_WriteFloat(File,"UlazX",StanInfo[idstan][sUlazX]);
  215. INI_WriteFloat(File,"UlazY",StanInfo[idstan][sUlazY]);
  216. INI_WriteFloat(File,"UlazZ",StanInfo[idstan][sUlazZ]);
  217. INI_WriteFloat(File,"IzlazX",StanInfo[idstan][sIzlazX]);
  218. INI_WriteFloat(File,"IzlazY",StanInfo[idstan][sIzlazY]);
  219. INI_WriteFloat(File,"IzlazZ",StanInfo[idstan][sIzlazZ]);
  220. INI_WriteInt(File,"Level",StanInfo[idstan][sLevel]);
  221. INI_WriteInt(File,"Cena",StanInfo[idstan][sCena]);
  222. INI_WriteInt(File,"Novac",StanInfo[idstan][sNovac]);
  223. INI_WriteInt(File,"Int",StanInfo[idstan][sInt]);
  224. INI_WriteInt(File,"Zatvoreno",StanInfo[idstan][sZatvoreno]);
  225. INI_WriteInt(File,"VW",StanInfo[idstan][sVW]);
  226. INI_WriteInt(File,"Oruzije",StanInfo[idstan][sOruzije]);
  227. INI_WriteInt(File,"Municija",StanInfo[idstan][sMunicija]);
  228. INI_Close(File);
  229. return 1;
  230. }
  231. //////////////////////////////////////////////////////////////////////
  232. forward UcitajStanove(idstan, name[], value[]);
  233. public UcitajStanove(idstan, name[], value[])
  234. {
  235. INI_Int("ProveraVlasnika",StanInfo[idstan][sProveraVlasnika]);
  236. INI_String("Vlasnik",StanInfo[idstan][sVlasnik],45);
  237. INI_Float("UlazX",StanInfo[idstan][sUlazX]);
  238. INI_Float("UlazY",StanInfo[idstan][sUlazY]);
  239. INI_Float("UlazZ",StanInfo[idstan][sUlazZ]);
  240. INI_Float("IzlazX",StanInfo[idstan][sIzlazX]);
  241. INI_Float("IzlazY",StanInfo[idstan][sIzlazY]);
  242. INI_Float("IzlazZ",StanInfo[idstan][sIzlazZ]);
  243. INI_Int("Level",StanInfo[idstan][sLevel]);
  244. INI_Int("Cena",StanInfo[idstan][sCena]);
  245. INI_Int("Novac",StanInfo[idstan][sNovac]);
  246. INI_Int("Int",StanInfo[idstan][sInt]);
  247. INI_Int("Zatvoreno",StanInfo[idstan][sZatvoreno]);
  248. INI_Int("VW",StanInfo[idstan][sVW]);
  249. INI_Int("Oruzije",StanInfo[idstan][sOruzije]);
  250. INI_Int("Municija",StanInfo[idstan][sMunicija]);
  251. return 1;
  252. }
  253. forward LoadUser_data(playerid,name[],value[]);
  254. public LoadUser_data(playerid,name[],value[])
  255. {
  256. INI_Int("Admin", PlayerInfo[playerid][pAdmin]);
  257. INI_Int("Stan",PlayerInfo[playerid][pPosedovanjeStana]);
  258. INI_Int("NovacDzep",PlayerInfo[playerid][pNovacDzep]);
  259. return 1;
  260. }
  261. ////////////////////////////////////////////////////////////
  262. public OnPlayerDisconnect(playerid, reason)
  263. {
  264. SavePlayer(playerid);
  265. return 1;
  266. }
  267. ////////////////////////////////////////////////////////////
  268. public OnPlayerConnect(playerid)
  269. {
  270. UlogovanProvera[playerid] = 1;
  271. return 1;
  272. }
  273. ///////////////////////////////////////////////////////////////////////////
  274. stock GetName(playerid)
  275. {
  276. new name[MAX_PLAYER_NAME];
  277. GetPlayerName(playerid, name, sizeof(name));
  278. return name;
  279. }
  280. ////////////////////////////////////////////////////////////////
  281. stock g_NovacPlus(id, iznos)
  282. {
  283. if(iznos < 0 || iznos > 99999999) return 1;
  284. GivePlayerMoney(id, iznos);
  285. PlayerInfo[id][pNovacDzep] += iznos;
  286. return 1;
  287. }
  288. ////////////////////////////////////////////////////////////////
  289. stock g_NovacMinus(id, iznos)
  290. {
  291. if(iznos < 0 || iznos > 99999999) return 1;
  292. GivePlayerMoney(id, -iznos);
  293. PlayerInfo[id][pNovacDzep] -= iznos;
  294. return 1;
  295. }
  296. stock Users(playerid)
  297. {
  298. new string[128];
  299. format(string,sizeof(string),KORISNICI,GetName(playerid));
  300. return string;
  301. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement