Milan_c0x

evo_ti_FS

Dec 3rd, 2017
211
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.95 KB | None | 0 0
  1. //-===---===---=== SANEL - SNEG I KAPA SY
  2. /*
  3. UPDATES
  4. 1.1
  5. Dodane jelke komanda /kreirajjelku potrebno u scriptfile folder Jelke
  6. dodani pokloni /napravipoklon-samo rcon admin
  7. /otvoripoklon-samo ako admin postavi
  8. na svakih 10 minuta ce pisati
  9. Ukljucen je snow sistem komande su
  10. /kapa-Da stavite kapu na glavu
  11. /sneg-Da ukljucite snijeg
  12. /napravipoklon-Samo za admine
  13. /otvoripoklon-Samo ako admin postavi poklon mozete otvoriti
  14. /kreirajjelku-samo za admine
  15.  
  16. 1.0 R2
  17. Dodan timer svakih 10 minuta pise ukljucen je snow mod komande /sneg /kapa
  18. Napravljena boja Plava 0xBBBBAA
  19. Napravljena komanda /jelka na sledecem update 1.1 ce biti zavrsena
  20. Popravljen bug kod komande /sneg
  21. */
  22.  
  23. #include < a_samp >
  24. #include < a_objects >
  25. #include < core >
  26. #include < float >
  27. #include < time >
  28. #include < morphinc >
  29. #include < file >
  30. #include < foreach >
  31. #include < streamer >
  32. #include < YSI\y_ini >
  33. #include < YSI\y_commands >
  34. #include < sscanf2 >
  35. #include <YSI\y_timers>
  36.  
  37. #define SendInfoMessage(%0,%1) \
  38. SendClientMessageEx(%0, -1, "{2e9cd1}[INFO] {FFFFFF} "%1)
  39. #define GRESKA(%0,%1) \
  40. SendClientMessageEx(%0, -1, "{F5052D}[GRESKA] {FFFFFF} "%1)
  41. #define OBJECT_SLOT_WINTERCAP 9
  42. #define SCM SendClientMessage
  43. #define SCMTA SendClientMessageToAll
  44. //////////////////////////////////OSTALO///////////
  45. #undef MAX_PLAYERS
  46. #define MAX_PLAYERS 1000
  47. #define MAX_POKLONI 150
  48. #define PFile "/Pokloni/%d.ini"
  49. #define MAX_JELKI 100
  50. #define JFile "/Jelke/%d.ini"
  51. //////////////////////////////////////BOJE////////////////////////////////////
  52. #define COLOR_BLUE 0xBBBBAA
  53. #define COL_SERVER "{FF1414}"
  54. #define BELA "{FFFFFF}"
  55. //////////////////////////////////////////////////////////////////////////////
  56. new SnowObject[ MAX_PLAYERS ];
  57. new bool:Snow[ MAX_PLAYERS ];
  58.  
  59. enum jInfo
  60. {
  61. Float:PosX,
  62. Float:PosY,
  63. Float:PosZ,
  64. Float:PosA
  65. }
  66. new JelkaInfo[MAX_JELKI][jInfo];
  67. new Text3D:label[sizeof(JelkaInfo)];
  68. new PravljeniObj;
  69.  
  70. YCMD:sneg(playerid, params[], help)
  71. {
  72. if( IsPlayerConnected( playerid ) ) {
  73.  
  74. if( GetPlayerInterior( playerid ) != 0 || GetPlayerVirtualWorld( playerid ) != 0 ) {
  75.  
  76. GRESKA( playerid, "Ne mozes u interijeru!" );
  77. return true;
  78. }
  79. if( !Snow[ playerid ] ) {
  80.  
  81. new Float:Pos[ 3 ];
  82. Snow[ playerid ] = true;
  83. GetPlayerCameraPos( playerid, Pos[ 0 ], Pos[ 1 ], Pos[ 2 ] );
  84. SnowObject[ playerid ] = CreatePlayerObject( playerid, 18864, Pos[ 0 ], Pos[ 1 ], Pos[ 2 ]-5, 0.0, 0.0, 0.0, 300.0 );
  85. SendInfoMessage(playerid, "Ukljucio si sneg! Ako zelis da stavis/skines kapu - /kapa.");
  86.  
  87. }
  88. else if( Snow[ playerid ] ) {
  89.  
  90. Snow[ playerid ] = false;
  91. DestroyPlayerObject( playerid, SnowObject[ playerid ] );
  92. SendInfoMessage( playerid, "Iskljucio si sneg! Ako zelis da stavis/skines kapu - /kapa." );
  93. }
  94. }
  95. return true;
  96. }
  97. YCMD:kapa(playerid, params[], help)
  98. {
  99. if( IsPlayerConnected( playerid ) )
  100. {
  101.  
  102. if( !IsPlayerAttachedObjectSlotUsed( playerid, OBJECT_SLOT_WINTERCAP ) ) {
  103.  
  104. SetPlayerAttachedObject(playerid, OBJECT_SLOT_WINTERCAP, 19065, 2, 0.120000, 0.040000, -0.003500, 0, 100, 100, 1.4, 1.4, 1.4);
  105. SendInfoMessage( playerid, "Stavili ste novogodisnju kapicu na glavu.");
  106. return true;
  107. }
  108. else if( IsPlayerAttachedObjectSlotUsed( playerid, OBJECT_SLOT_WINTERCAP ) ) {
  109.  
  110. RemovePlayerAttachedObject( playerid, OBJECT_SLOT_WINTERCAP );
  111. SendInfoMessage( playerid, "Skinuli ste novogodisnju kapicu sa glave.");
  112. }
  113. }
  114. return true;
  115. }
  116. stock SendClientMessageEx(playerid, color, const str[], {Float,_}:...) {
  117. static
  118. args,
  119. start,
  120. end,
  121. string[144]
  122. ;
  123. #emit LOAD.S.pri 8
  124. #emit STOR.pri args
  125.  
  126. if(args > 12)
  127. {
  128. #emit ADDR.pri str
  129. #emit STOR.pri start
  130.  
  131. for (end = start + (args - 12); end > start; end -= 4)
  132. {
  133. #emit LREF.pri end
  134. #emit PUSH.pri
  135. }
  136. #emit PUSH.S str
  137. #emit PUSH.C 144
  138. #emit PUSH.C string
  139. #emit PUSH.C args
  140. #emit SYSREQ.C format
  141.  
  142. SendClientMessage(playerid, color, string);
  143.  
  144. #emit LCTRL 5
  145. #emit SCTRL 4
  146. #emit RETN
  147. }
  148. return SendClientMessage(playerid, color, str);
  149. }
  150. public OnGameModeInit()
  151. {
  152. SetTimer("SnegKapica",100000,true);
  153. return 1;
  154. }
  155. forward SnegKapica();
  156. public SnegKapica()
  157. {
  158. new ID;
  159. SendClientMessage(ID,0xBBBBAA,"Ukljucen je snow sistem komande su");
  160. SendClientMessage(ID,0xBBBBAA,"/kapa-Da stavite kapu na glavu");
  161. SendClientMessage(ID,0xBBBBAA,"/sneg-Da ukljucite snijeg");
  162. SendClientMessage(ID,0xBBBBAA,"/napravipoklon-Samo za admine");
  163. SendClientMessage(ID,0xBBBBAA,"/otvoripoklon-Samo ako admin postavi poklon mozete otvoriti");
  164. return 1;
  165. }
  166. YCMD:jelka(playerid, params[], help)
  167. {
  168. SendClientMessage(playerid,0xBBBBAA,"USKORO");
  169. }
  170. //=-= • NEW • =-=//
  171.  
  172. new Text3D:poklonlabel;
  173. new PravljeniPoklon;
  174. new RandomDobijanje[][6] =
  175. {
  176. { 5000 },
  177. { 3000 },
  178. { 4000 },
  179. { 3500 },
  180. { 2500 }
  181. };
  182. /////////////ENUM
  183. enum pInfo
  184. {
  185. Float:PosX,
  186. Float:PosY,
  187. Float:PosZ,
  188. Model,
  189. pID
  190. }
  191. new PoklonInfo[MAX_PLAYERS][pInfo];
  192. //=-= • PUBLICS • =-=//
  193.  
  194. public OnFilterScriptInit()
  195. {
  196. for(new i = 0; i < sizeof(JelkaInfo); i++)
  197. {
  198. new fajl[100];
  199. format(fajl,sizeof(fajl), JFile, i);
  200. if(fexist(fajl))
  201. {
  202. INI_ParseFile(fajl, "UcitajJelke", .bExtra = true, .extra = i);
  203. PravljeniObj = CreateObject(19076, JelkaInfo[i][PosX],JelkaInfo[i][PosY],JelkaInfo[i][PosZ], 0.0, 0.0, JelkaInfo[i][PosA], 300.0);
  204. LoadPoklon();
  205. }
  206. }
  207. return 1;
  208. }
  209. forward PoklonOcitavanje(id, name[], value[]);
  210. public PoklonOcitavanje(id, name[], value[])
  211. {
  212. INI_Float("Pozicija X", PoklonInfo[id][PosX]);
  213. INI_Float("Pozicija Y", PoklonInfo[id][PosY]);
  214. INI_Float("Pozicija Z", PoklonInfo[id][PosZ]);
  215. INI_Int("Model", PoklonInfo[id][Model]);
  216. INI_Int("ID", PoklonInfo[id][pID]);
  217. return 1;
  218. }
  219.  
  220. //=-= • STOCK • =-=//
  221.  
  222. stock SacuvajPoklon(id)
  223. {
  224. new pFile[60];
  225. format(pFile, sizeof(pFile ), PFile,id);
  226. new INI:File = INI_Open(pFile);
  227. INI_WriteFloat(File, "Pozicija X", PoklonInfo[id][PosX]);
  228. INI_WriteFloat(File, "Pozicija Y", PoklonInfo[id][PosY]);
  229. INI_WriteFloat(File, "Pozicija Z", PoklonInfo[id][PosZ]);
  230. INI_WriteInt(File, "Model", PoklonInfo[id][Model]);
  231. INI_WriteInt(File, "ID", PoklonInfo[id][pID]);
  232. INI_Close(File);
  233. return 1;
  234. }
  235. stock LoadPoklon()
  236. {
  237. for(new i = 1; i < MAX_POKLONI; i++)
  238. {
  239. new pFile[50];
  240. format(pFile, sizeof(pFile), PFile, i);
  241. if(fexist(pFile))
  242. {
  243. INI_ParseFile(pFile, "PoklonOcitavanje", .bExtra = true, .extra = i);
  244. PravljeniPoklon = CreateObject(PoklonInfo[i][Model], PoklonInfo[i][PosX],PoklonInfo[i][PosY],PoklonInfo[i][PosZ], 0.0, 0.0, 0.0, 300.0);
  245. poklonlabel = Create3DTextLabel(""COL_SERVER"(( POKLON ))\n"BELA"Da ga otvorite kucajte\n/otvoripoklon", 0x008080FF, PoklonInfo[i][PosX],PoklonInfo[i][PosY],PoklonInfo[i][PosZ], 5.0, 0, 0);
  246. }
  247. }
  248. }
  249.  
  250. //=-= • CMD • =-=//
  251.  
  252. YCMD:napravipoklon(playerid, params[], help)
  253. {
  254. #pragma unused help
  255. if(IsPlayerAdmin(playerid))
  256. {
  257. new boja, Float:X,Float:Y,Float:Z;
  258. if(sscanf(params, "d", boja)) { SCM(playerid, -1, ""COL_SERVER"[GRESKA] "BELA"Koristite /napravipoklon [Boja]"); SCM(playerid, -1, ""COL_SERVER"[GRESKA] "BELA"Boja 1 - Crvena || Boja 2 - Narandzasta || Boja 3 - Crna || Boja 4 - Sarena"); }
  259. if(boja < 1 || boja > 4) return SCM(playerid, -1, ""COL_SERVER"[GRESKA] "BELA"ID Boje ne moze biti manji od 1 ili veci od 4 !");
  260. SCM(playerid, -1, ""COL_SERVER"[INFO] "BELA"Stvorili ste poklon !");
  261. GetPlayerPos(playerid, X,Y,Z);
  262. if(boja == 1) { PravljeniPoklon = CreateObject(19057, X,Y,Z, 0.0, 0.0, 0.0, 300.0); }
  263. if(boja == 2) { PravljeniPoklon = CreateObject(19055, X,Y,Z, 0.0, 0.0, 0.0, 300.0); }
  264. if(boja == 3) { PravljeniPoklon = CreateObject(19058, X,Y,Z, 0.0, 0.0, 0.0, 300.0); }
  265. if(boja == 4) { PravljeniPoklon = CreateObject(19056, X,Y,Z, 0.0, 0.0, 0.0, 300.0); }
  266. SetPlayerPos(playerid, X,Y,Z+3);
  267. PoklonInfo[PravljeniPoklon][PosX] = X;
  268. PoklonInfo[PravljeniPoklon][PosY] = Y;
  269. PoklonInfo[PravljeniPoklon][PosZ] = Z;
  270. if(boja == 1) { PoklonInfo[PravljeniPoklon][Model] = 19057; }
  271. else if(boja == 2) { PoklonInfo[PravljeniPoklon][Model] = 19055; }
  272. else if(boja == 3) { PoklonInfo[PravljeniPoklon][Model] = 19058; }
  273. else if(boja == 4) { PoklonInfo[PravljeniPoklon][Model] = 19056; }
  274. poklonlabel = Create3DTextLabel(""COL_SERVER"(( POKLON ))\n"BELA"Da ga otvorite kucajte\n/otvoripoklon", 0x008080FF, X,Y,Z, 5.0, 0, 0);
  275. SacuvajPoklon(PravljeniPoklon);
  276. }
  277. return 1;
  278. }
  279. YCMD:otvoripoklon(playerid, params[], help)
  280. {
  281. for(new i = 1; i < MAX_POKLONI; i++)
  282. {
  283. if(IsPlayerInRangeOfPoint(playerid, 1.0, PoklonInfo[i][PosX], PoklonInfo[i][PosY], PoklonInfo[i][PosZ]))
  284. {
  285. DestroyObject(PravljeniPoklon);
  286. Delete3DTextLabel(poklonlabel);
  287. new rand = random(sizeof(RandomDobijanje));
  288. GivePlayerMoney(playerid, RandomDobijanje[rand][0]);
  289. SCM(playerid, -1, ""COL_SERVER"[INFO] "BELA"Otvorili ste poklon !");
  290. new poklonfile[64];
  291. format(poklonfile,sizeof(poklonfile), PFile, i);
  292. fremove(poklonfile);
  293. }
  294. }
  295. return 1;
  296. }
  297. //=-= NEW =-=//
  298. forward UcitajJelke(id, name[], value[]);
  299. public UcitajJelke(id, name[], value[])
  300. {
  301. INI_Float("X", JelkaInfo[id][PosX]);
  302. INI_Float("Y", JelkaInfo[id][PosY]);
  303. INI_Float("Z", JelkaInfo[id][PosZ]);
  304. INI_Float("A", JelkaInfo[id][PosA]);
  305. return 1;
  306. }
  307.  
  308. //=-= CMD =-=//
  309.  
  310. YCMD:kreirajjelku(playerid, params[], help)
  311. {
  312. #pragma unused help
  313. if(IsPlayerAdmin(playerid))
  314. {
  315. new Float:X,Float:Y,Float:Z,Float:A;
  316. GetPlayerPos(playerid, X,Y,Z);
  317. GetPlayerFacingAngle(playerid, A);
  318. PravljeniObj = CreateObject(19076, X-1,Y,Z-1.5, 0.0, 0.0, A, 300.0);
  319. label[PravljeniObj] = Create3DTextLabel("{FF1414}(( {FFFFFF}JELKA {FF1414}))\n{FF1414}S{FFFFFF}recna nova godina\ni novogodisnji praznici !\n{FF1414}** {FFFFFF}2018. {FF1414}**", 0xFFFFFFFF, X,Y,Z+1, 10.0, 0, 0);
  320. JelkaInfo[PravljeniObj][PosX] = X;
  321. JelkaInfo[PravljeniObj][PosY] = Y;
  322. JelkaInfo[PravljeniObj][PosZ] = Z-1.5;
  323. JelkaInfo[PravljeniObj][PosA] = A;
  324. SaveJelka(PravljeniObj);
  325. }
  326. else return SendClientMessage(playerid, -1, "Niste RCON Admin !");
  327. return 1;
  328. }
  329.  
  330. //=-= STOCK =-=//
  331.  
  332. stock SaveJelka(id)
  333. {
  334. new jFile[100];
  335. format(jFile,sizeof(jFile), JFile, id);
  336. new INI:File = INI_Open(jFile);
  337. INI_WriteFloat(File, "X", JelkaInfo[id][PosX]);
  338. INI_WriteFloat(File, "Y", JelkaInfo[id][PosY]);
  339. INI_WriteFloat(File, "Z", JelkaInfo[id][PosZ]);
  340. INI_WriteFloat(File, "A", JelkaInfo[id][PosA]);
  341. INI_Close(File);
  342. return 1;
  343. }
Advertisement
Add Comment
Please, Sign In to add comment