Advertisement
Guest User

Untitled

a guest
Nov 16th, 2017
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.42 KB | None | 0 0
  1. //=-=-=-=-=-=-=-=-=-= DINAMICNO KREIRANJE PICKUPA BY SHOMY =-=-=-=-=-=-=-=-=-=//
  2.  
  3. // = INCLUDE = //
  4.  
  5. #include < a_samp >
  6. #include < YSI\y_ini >
  7. #include < YSI\y_commands >
  8. #include < sscanf2 >
  9.  
  10. // = DEFINE = //
  11.  
  12. #undef MAX_PICKUPS
  13. #define MAX_PICKUPS 250
  14. #define PFile "/Pickups/%d.ini"
  15. #define SCM SendClientMessage
  16.  
  17. #define DIALOG_PRAVLJENJETXT 1
  18. #define DIALOG_PRAVLJENJE 2
  19.  
  20. // = ENUM = //
  21.  
  22. enum pInfo
  23. {
  24. Float:UlazX,
  25. Float:UlazY,
  26. Float:UlazZ,
  27. Float:IzlazX,
  28. Float:IzlazY,
  29. Float:IzlazZ,
  30. Model,
  31. pInterior,
  32. pText[80],
  33. BojaTexta,
  34. pVWU,
  35. pVWI
  36. }
  37.  
  38. // = NEW = //
  39.  
  40. new PickupInfo[MAX_PICKUPS][pInfo];
  41. new Text3D:label[sizeof(PickupInfo)];
  42. new ipickup,upickup,PravljeniPickupIzlaz,PravljeniPickup;
  43.  
  44. // = PUBLICS = //
  45.  
  46. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  47. {
  48. if(newkeys == KEY_SECONDARY_ATTACK )
  49. {
  50. for(new i; i < MAX_PICKUPS; i++)
  51. {
  52. if(IsPlayerInRangeOfPoint(playerid, 2.5, PickupInfo[i][UlazX], PickupInfo[i][UlazY], PickupInfo[i][UlazZ]))
  53. {
  54. SetPlayerPos(playerid, PickupInfo[i][IzlazX], PickupInfo[i][IzlazY], PickupInfo[i][IzlazZ]);
  55. SetPlayerInterior(playerid, PickupInfo[i][pInterior]);
  56. SetPlayerVirtualWorld(playerid, PickupInfo[i][pVWI]);
  57. }
  58. else if(IsPlayerInRangeOfPoint(playerid, 2.5, PickupInfo[i][IzlazX], PickupInfo[i][IzlazY], PickupInfo[i][IzlazZ]))
  59. {
  60. SetPlayerPos(playerid, PickupInfo[i][UlazX], PickupInfo[i][UlazY], PickupInfo[i][UlazZ]);
  61. SetPlayerInterior(playerid, 0);
  62. SetPlayerVirtualWorld(playerid, PickupInfo[i][pVWU]);
  63. }
  64. }
  65. }
  66. return 1;
  67. }
  68. public OnFilterScriptInit()
  69. {
  70. for(new id = 0; id < sizeof(PickupInfo); id++)
  71. {
  72. new pFile[50];
  73. format(pFile, sizeof(pFile), PFile, id);
  74. if(fexist(pFile))
  75. {
  76. INI_ParseFile(pFile, "UcitajPickups", .bExtra = true, .extra = id);
  77. upickup = CreatePickup(PickupInfo[id][Model], 1, PickupInfo[id][UlazX], PickupInfo[id][UlazY], PickupInfo[id][UlazZ], -1);
  78. ipickup = CreatePickup(PickupInfo[id][Model], 1, PickupInfo[id][IzlazX], PickupInfo[id][IzlazY], PickupInfo[id][IzlazZ], -1);
  79. new str[80];
  80. format(str,sizeof(str), "%s", PickupInfo[id][pText]);
  81. label[upickup] = Create3DTextLabel(str, PickupInfo[PravljeniPickup][BojaTexta], PickupInfo[id][UlazX], PickupInfo[id][UlazY], PickupInfo[id][UlazZ], 10.0, 0, 0);
  82. }
  83. }
  84. return 1;
  85. }
  86. public OnPlayerPickUpPickup(playerid, pickupid)
  87. {
  88. if(pickupid == upickup) return 0;
  89. if(pickupid == ipickup) return 0;
  90. if(pickupid == PravljeniPickupIzlaz) return 0;
  91. return 1;
  92. }
  93. forward UcitajPickups(id, name[], value[]);
  94. public UcitajPickups(id, name[], value[])
  95. {
  96. INI_Float("Ulaz X", PickupInfo[id][UlazX]);
  97. INI_Float("Ulaz Y", PickupInfo[id][UlazY]);
  98. INI_Float("Ulaz Z", PickupInfo[id][UlazZ]);
  99. INI_Float("Izlaz X", PickupInfo[id][IzlazX]);
  100. INI_Float("Izlaz Y", PickupInfo[id][IzlazY]);
  101. INI_Float("Izlaz Z", PickupInfo[id][IzlazZ]);
  102. INI_Int("Model", PickupInfo[id][Model]);
  103. INI_Int("Interior", PickupInfo[id][pInterior]);
  104. INI_Int("Text", PickupInfo[id][pText]);
  105. INI_Int("Boja Texta", PickupInfo[id][BojaTexta]);
  106. INI_Int("Virtual World Ulaz", PickupInfo[id][pVWU]);
  107. INI_Int("Virtual World Izlaz", PickupInfo[id][pVWI]);
  108. return 1;
  109. }
  110.  
  111. // = CMDS = //
  112.  
  113. YCMD:kreirajpickup(playerid, params[], help)
  114. {
  115. #pragma unused help
  116. if(IsPlayerAdmin(playerid))
  117. {
  118. new model,text[80],inte,Float:iX,Float:iY,Float:iZ,Float:X,Float:Y,Float:Z,bt,vw;
  119. if(sscanf(params, "ds[80]dfffdd", model, text, bt, iX, iY, iZ, inte, vw))
  120. {
  121. SCM(playerid, -1, "Koristite /kreirajpickup [Model] [Text] [Boja texta] [Izlaz X] [Izlaz Y] [Izlaz Z] [Interior] [Virtual World]");
  122. SCM(playerid, -1, "Boja 1 - Bela || Boja 2 - Crvena || Boja 3 - Plava || Boja 4 - Narandzasta || Boja 5 - Roza");
  123. SCM(playerid, -1, "Boja 6 - Crna || Boja 7 - Zelena || Boja 8 - Ljubicasta || Boja 9 - Tamno Plava || Boja 10 - Zuta");
  124. }
  125. else if(model > 19999 || model < 1) return SCM(playerid, -1, "Model ne moze biti manji od 1 ili veci od 19999");
  126. GetPlayerPos(playerid, X,Y,Z);
  127. PravljeniPickup = CreatePickup(model, 1, X,Y,Z, -1);
  128. new str[80];
  129. format(str,sizeof(str), "%s", text);
  130. if(bt < 1 || bt > 10) return SCM(playerid, -1, "Boja texta ne moze biti manji od 1 ili veci od 10 !");
  131. if(bt == 1) { label[PravljeniPickup] = Create3DTextLabel(str, 0xFFFFFFFF, X,Y,Z, 10.0, 0, 0); PickupInfo[PravljeniPickup][BojaTexta] = 0xFFFFFFFF; }
  132. if(bt == 2) { label[PravljeniPickup] = Create3DTextLabel(str, 0xFF1414FF, X,Y,Z, 10.0, 0, 0); PickupInfo[PravljeniPickup][BojaTexta] = 0xFF1414FF; }
  133. if(bt == 3) { label[PravljeniPickup] = Create3DTextLabel(str, 0x6EF0FFFF, X,Y,Z, 10.0, 0, 0); PickupInfo[PravljeniPickup][BojaTexta] = 0x6EF0FFFF; }
  134. if(bt == 4) { label[PravljeniPickup] = Create3DTextLabel(str, 0xFF8000FF, X,Y,Z, 10.0, 0, 0); PickupInfo[PravljeniPickup][BojaTexta] = 0xFF8000FF; }
  135. if(bt == 5) { label[PravljeniPickup] = Create3DTextLabel(str, 0xFF0090FF, X,Y,Z, 10.0, 0, 0); PickupInfo[PravljeniPickup][BojaTexta] = 0xFF0090FF; }
  136. if(bt == 6) { label[PravljeniPickup] = Create3DTextLabel(str, 0x000000FF, X,Y,Z, 10.0, 0, 0); PickupInfo[PravljeniPickup][BojaTexta] = 0x000000FF; }
  137. if(bt == 7) { label[PravljeniPickup] = Create3DTextLabel(str, 0x09FF00FF, X,Y,Z, 10.0, 0, 0); PickupInfo[PravljeniPickup][BojaTexta] = 0x09FF00FF; }
  138. if(bt == 8) { label[PravljeniPickup] = Create3DTextLabel(str, 0x9900FFFF, X,Y,Z, 10.0, 0, 0); PickupInfo[PravljeniPickup][BojaTexta] = 0x9900FFFF; }
  139. if(bt == 9) { label[PravljeniPickup] = Create3DTextLabel(str, 0x0008FFFF, X,Y,Z, 10.0, 0, 0); PickupInfo[PravljeniPickup][BojaTexta] = 0x0008FFFF; }
  140. if(bt == 10) { label[PravljeniPickup] = Create3DTextLabel(str, 0xF2FF00FF, X,Y,Z, 10.0, 0, 0); PickupInfo[PravljeniPickup][BojaTexta] = 0xF2FF00FF; }
  141. PravljeniPickupIzlaz = CreatePickup(model, 1, iX,iY,iZ, -1);
  142. PickupInfo[PravljeniPickup][UlazX] = X;
  143. PickupInfo[PravljeniPickup][UlazY] = Y;
  144. PickupInfo[PravljeniPickup][UlazZ] = Z;
  145. PickupInfo[PravljeniPickup][IzlazX] = iX;
  146. PickupInfo[PravljeniPickup][IzlazY] = iY;
  147. PickupInfo[PravljeniPickup][IzlazZ] = iZ;
  148. PickupInfo[PravljeniPickup][Model] = model;
  149. PickupInfo[PravljeniPickup][pInterior] = inte;
  150. PickupInfo[PravljeniPickup][pText] = text;
  151. PickupInfo[PravljeniPickup][pVWU] = GetPlayerVirtualWorld(playerid);
  152. PickupInfo[PravljeniPickup][pVWI] = vw;
  153. SavePickup(PravljeniPickup);
  154. }
  155. else return SCM(playerid, -1, "Niste RCON Admin !");
  156. return 1;
  157. }
  158. YCMD:movepickup(playerid, params[], help)
  159. {
  160. #pragma unused help
  161. if(IsPlayerAdmin(playerid))
  162. {
  163. new pFile[50], id, Float:iX,Float:iY,Float:iZ,Float:X,Float:Y,Float:Z, inte, vw;
  164. if(sscanf(params, "dfffdd", id, iX, iY, iZ, inte, vw)) return SCM(playerid, -1, "Koristite /movepickup [ID] [Izlaz X] [Izlaz Y] [Izlaz Z] [Interior] [Virtual World]");
  165. format(pFile,sizeof(pFile), PFile, id);
  166. if(fexist(pFile))
  167. {
  168. GetPlayerPos(playerid, X,Y,Z);
  169. DestroyPickup(id);
  170. Delete3DTextLabel(label[id]);
  171. PravljeniPickup = CreatePickup(PickupInfo[id][Model], 1, X,Y,Z, -1);
  172. new str[80];
  173. format(str,sizeof(str), "%s", PickupInfo[id][pText]);
  174. label[PravljeniPickup] = Create3DTextLabel(str, PickupInfo[PravljeniPickup][BojaTexta], X,Y,Z, 10.0, 0, 0);
  175. PravljeniPickupIzlaz = CreatePickup(PickupInfo[id][Model], 1, iX,iY,iZ, -1);
  176. PickupInfo[PravljeniPickup][UlazX] = X;
  177. PickupInfo[PravljeniPickup][UlazY] = Y;
  178. PickupInfo[PravljeniPickup][UlazZ] = Z;
  179. PickupInfo[PravljeniPickup][IzlazX] = iX;
  180. PickupInfo[PravljeniPickup][IzlazY] = iY;
  181. PickupInfo[PravljeniPickup][IzlazZ] = iZ;
  182. PickupInfo[PravljeniPickup][pInterior] = inte;
  183. PickupInfo[PravljeniPickup][pVWU] = GetPlayerVirtualWorld(playerid);
  184. PickupInfo[PravljeniPickup][pVWI] = vw;
  185. SavePickup(PravljeniPickup);
  186. }
  187. else return SCM(playerid, -1, "Taj ID Pickupa ne postoji !");
  188. }
  189. else return SCM(playerid, -1, "Niste RCON Admin !");
  190. return 1;
  191. }
  192. YCMD:unistipickup(playerid, params[], help)
  193. {
  194. #pragma unused help
  195. if(IsPlayerAdmin(playerid))
  196. {
  197. new pFile[50], id, str[20];
  198. if(sscanf(params, "d", id)) return SCM(playerid, -1, "Koristite /unistipickup [ID]");
  199. format(pFile,sizeof(pFile), PFile, id);
  200. if(fexist(pFile))
  201. {
  202. fremove(pFile);
  203. DestroyPickup(id);
  204. Delete3DTextLabel(label[id]);
  205. format(str,sizeof(str), "Unistili ste pickup ID %d.", id);
  206. SCM(playerid, -1, str);
  207. }
  208. else return SCM(playerid, -1, "Taj ID Pickupa ne postoji !");
  209. }
  210. else return SCM(playerid, -1, "Niste RCON Admin !");
  211. return 1;
  212. }
  213.  
  214. // = STOCK = //
  215.  
  216. stock SavePickup(id)
  217. {
  218. new pFile[100];
  219. format(pFile,sizeof(pFile), PFile, id);
  220. new INI:File = INI_Open(pFile);
  221. INI_WriteFloat(File, "Ulaz X", PickupInfo[id][UlazX]);
  222. INI_WriteFloat(File, "Ulaz Y", PickupInfo[id][UlazY]);
  223. INI_WriteFloat(File, "Ulaz Z", PickupInfo[id][UlazZ]);
  224. INI_WriteFloat(File, "Izlaz X", PickupInfo[id][IzlazX]);
  225. INI_WriteFloat(File, "Izlaz Y", PickupInfo[id][IzlazY]);
  226. INI_WriteFloat(File, "Izlaz Z", PickupInfo[id][IzlazZ]);
  227. INI_WriteInt(File, "Model", PickupInfo[id][Model]);
  228. INI_WriteInt(File, "Interior", PickupInfo[id][pInterior]);
  229. INI_WriteInt(File, "Text", PickupInfo[id][pText]);
  230. INI_WriteInt(File, "Boja Texta", PickupInfo[id][BojaTexta]);
  231. INI_WriteInt(File, "Virtual World Ulaz", PickupInfo[id][pVWU]);
  232. INI_WriteInt(File, "Virtual World Izlaz", PickupInfo[id][pVWI]);
  233. INI_Close(File);
  234. return 1;
  235. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement