Advertisement
Guest User

Untitled

a guest
Dec 5th, 2019
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 18.22 KB | None | 0 0
  1. --[[
  2. Recurso : MJ-Loader
  3. Creador : SAXI
  4. Proposito : Cargar de manera individual los mapas para el jugador
  5.  
  6. Agradecimientos TheCrazy por ayudarme con el recurso bƔsico.
  7. ]]--
  8.  
  9. mapmanager_data = {}
  10.  
  11. addEvent('onGamemodeMapStart')
  12. addEvent('onGamemodeMapStop')
  13. addEvent('MJ-Loader:downloadFinshed',true)
  14.  
  15.  
  16. function cargarRecurso(var,jugador)
  17.  
  18. local n_mapa = type(var) == 'string' and var or var.name
  19. local recurso = type(recurso) == 'string' and Resource.getFromName(var) or var
  20.  
  21. local MapMeta = xmlLoadFile(':'..n_mapa..'/meta.xml')
  22. local Childrens = xmlNodeGetChildren(MapMeta)
  23. local Archivos = {}
  24. local Scripts = {}
  25. local t_mapa = {}
  26.  
  27. local sp = {{},{},{},{}}
  28.  
  29. t_mapa.data = {}
  30. t_mapa.data.objects = {}
  31. t_mapa.data.marker = {}
  32. t_mapa.data.pickup = {}
  33.  
  34. t_mapa.data.Jumps = {}
  35. t_mapa.data.Freeze = {}
  36. t_mapa.data.SpeedUp = {}
  37. t_mapa.data.Flip = {}
  38. t_mapa.data.Reverse = {}
  39. t_mapa.data.Rotate = {}
  40. t_mapa.data.vehicles = {}
  41. t_mapa.data.checkpoints = {}
  42. t_mapa.data.removeWorldObjects = {}
  43. t_mapa.data.DMpickup = {}
  44. t_mapa.data.name = nil
  45. t_mapa.data.author = nil
  46. t_mapa.data.settings = {}
  47.  
  48. mapmanager_data[n_mapa] = {}
  49. mapmanager_data[n_mapa].spawnpoints = {}
  50. mapmanager_data[n_mapa].checkpoints = {}
  51. mapmanager_data[n_mapa].pickups = {}
  52. mapmanager_data[n_mapa].isRaceMap = false
  53.  
  54. for i,Node in ipairs(Childrens) do
  55.  
  56. local nType = xmlNodeGetName(Node)
  57. local Info = xmlNodeGetAttributes(Node)
  58.  
  59. if nType == 'map' then
  60. local mapPath = xmlNodeGetAttribute(Node,'src')
  61. if not mapPath then return false end
  62. local mapFile = xmlLoadFile(':'..n_mapa..'/'..mapPath)
  63. if not mapFile then return false end
  64. local defType = xmlNodeGetAttribute(mapFile,'edf:definitions')
  65.  
  66. for r,p in ipairs(xmlNodeGetChildren(mapFile)) do
  67. local objectType = xmlNodeGetName(p)
  68. -- EDF / SPAWN MINIJUEGOS
  69. -- Race
  70. if objectType == 'spawnpoint' then
  71. table.insert(mapmanager_data[n_mapa].spawnpoints,{
  72. modelID = tonumber(xmlNodeGetAttribute(p,'vehicle')),
  73. interiorID = tonumber(xmlNodeGetAttribute(p,'interior')),
  74. posX = tonumber(xmlNodeGetAttribute(p,'posX')),
  75. posY = tonumber(xmlNodeGetAttribute(p,'posY')),
  76. posZ = tonumber(xmlNodeGetAttribute(p,'posZ')),
  77. rotX = tonumber(xmlNodeGetAttribute(p,'rotX')) or 0,
  78. rotY = tonumber(xmlNodeGetAttribute(p,'rotY')) or 0,
  79. rotZ = tonumber(xmlNodeGetAttribute(p,'rotZ')) or tonumber(xmlNodeGetAttribute(p,'rotation')) or 0,
  80. skin = tonumber(xmlNodeGetAttribute(p,'skin')) or 1,
  81. })
  82. -- Stealth
  83. elseif objectType == 'Team1' or objectType == 'Team2' or objectType == 'team1' or objectType == 'team2' then
  84. if objectType == 'Team1' then
  85. table.insert(sp[1],
  86. {interiorID = tonumber(xmlNodeGetAttribute(p,'interior')),
  87. posX = tonumber(xmlNodeGetAttribute(p,'posX')),
  88. posY = tonumber(xmlNodeGetAttribute(p,'posY')),
  89. posZ = tonumber(xmlNodeGetAttribute(p,'posZ')),
  90. rotX = tonumber(xmlNodeGetAttribute(p,'rotX')) or 0,
  91. rotY = tonumber(xmlNodeGetAttribute(p,'rotY')) or 0,
  92. rotZ = tonumber(xmlNodeGetAttribute(p,'rotZ')) or tonumber(xmlNodeGetAttribute(p,'rotation')) or 0
  93. })
  94. elseif objectType == 'Team2' then
  95. table.insert(sp[2],
  96. {interiorID = tonumber(xmlNodeGetAttribute(p,'interior')),
  97. posX = tonumber(xmlNodeGetAttribute(p,'posX')),
  98. posY = tonumber(xmlNodeGetAttribute(p,'posY')),
  99. posZ = tonumber(xmlNodeGetAttribute(p,'posZ')),
  100. rotX = tonumber(xmlNodeGetAttribute(p,'rotX')) or 0,
  101. rotY = tonumber(xmlNodeGetAttribute(p,'rotY')) or 0,
  102. rotZ = tonumber(xmlNodeGetAttribute(p,'rotZ')) or tonumber(xmlNodeGetAttribute(p,'rotation')) or 0
  103. })
  104. elseif objectType == 'team1' then
  105. for q,w in ipairs(xmlNodeGetChildren(objectType)) do
  106. local c_spawn = xmlNodeGetName(w)
  107. if c_spawn == 'spawnpoint' then
  108. table.insert(sp[1],
  109. {interiorID = tonumber(xmlNodeGetAttribute(p,'interior')),
  110. posX = tonumber(xmlNodeGetAttribute(p,'posX')),
  111. posY = tonumber(xmlNodeGetAttribute(p,'posY')),
  112. posZ = tonumber(xmlNodeGetAttribute(p,'posZ')),
  113. rotX = tonumber(xmlNodeGetAttribute(p,'rotX')) or 0,
  114. rotY = tonumber(xmlNodeGetAttribute(p,'rotY')) or 0,
  115. rotZ = tonumber(xmlNodeGetAttribute(p,'rotZ')) or tonumber(xmlNodeGetAttribute(p,'rotation')) or 0
  116. })
  117. end
  118. end
  119. elseif objectType == 'team2' then
  120. for q,w in ipairs(xmlNodeGetChildren(objectType)) do
  121. local c_spawn = xmlNodeGetName(w)
  122. local c_spawn = xmlNodeGetName(w)
  123. if c_spawn == 'spawnpoint' then
  124. table.insert(sp[2],
  125. {interiorID = tonumber(xmlNodeGetAttribute(p,'interior')),
  126. posX = tonumber(xmlNodeGetAttribute(p,'posX')),
  127. posY = tonumber(xmlNodeGetAttribute(p,'posY')),
  128. posZ = tonumber(xmlNodeGetAttribute(p,'posZ')),
  129. rotX = tonumber(xmlNodeGetAttribute(p,'rotX')) or 0,
  130. rotY = tonumber(xmlNodeGetAttribute(p,'rotY')) or 0,
  131. rotZ = tonumber(xmlNodeGetAttribute(p,'rotZ')) or tonumber(xmlNodeGetAttribute(p,'rotation')) or 0
  132. })
  133. end
  134. end
  135. end
  136. -- Barriles
  137. elseif objectType == 'aper' then
  138. table.insert(mapmanager_data[n_mapa].spawnpoints,{
  139. interiorID = tonumber(xmlNodeGetAttribute(p,'interior')),
  140. posX = tonumber(xmlNodeGetAttribute(p,'posX')),
  141. posY = tonumber(xmlNodeGetAttribute(p,'posY')),
  142. posZ = tonumber(xmlNodeGetAttribute(p,'posZ')),
  143. rotX = tonumber(xmlNodeGetAttribute(p,'rotX')) or 0,
  144. rotY = tonumber(xmlNodeGetAttribute(p,'rotY')) or 0,
  145. rotZ = tonumber(xmlNodeGetAttribute(p,'rotZ')) or tonumber(xmlNodeGetAttribute(p,'rotation')) or 0
  146. })
  147. -- Protect The President
  148. elseif objectType == 'asesino' then
  149. table.insert(sp[1],
  150. {interiorID = tonumber(xmlNodeGetAttribute(p,'interior')),
  151. posX = tonumber(xmlNodeGetAttribute(p,'posX')),
  152. posY = tonumber(xmlNodeGetAttribute(p,'posY')),
  153. posZ = tonumber(xmlNodeGetAttribute(p,'posZ')),
  154. rotX = tonumber(xmlNodeGetAttribute(p,'rotX')) or 0,
  155. rotY = tonumber(xmlNodeGetAttribute(p,'rotY')) or 0,
  156. rotZ = tonumber(xmlNodeGetAttribute(p,'rotZ')) or tonumber(xmlNodeGetAttribute(p,'rotation')) or 0
  157. })
  158. elseif objectType == 'policia' then
  159. table.insert(sp[2],
  160. {interiorID = tonumber(xmlNodeGetAttribute(p,'interior')),
  161. posX = tonumber(xmlNodeGetAttribute(p,'posX')),
  162. posY = tonumber(xmlNodeGetAttribute(p,'posY')),
  163. posZ = tonumber(xmlNodeGetAttribute(p,'posZ')),
  164. rotX = tonumber(xmlNodeGetAttribute(p,'rotX')) or 0,
  165. rotY = tonumber(xmlNodeGetAttribute(p,'rotY')) or 0,
  166. rotZ = tonumber(xmlNodeGetAttribute(p,'rotZ')) or tonumber(xmlNodeGetAttribute(p,'rotation')) or 0
  167. })
  168. elseif objectType == 'presidente' then
  169. table.insert(sp[3],
  170. {interiorID = tonumber(xmlNodeGetAttribute(p,'interior')),
  171. posX = tonumber(xmlNodeGetAttribute(p,'posX')),
  172. posY = tonumber(xmlNodeGetAttribute(p,'posY')),
  173. posZ = tonumber(xmlNodeGetAttribute(p,'posZ')),
  174. rotX = tonumber(xmlNodeGetAttribute(p,'rotX')) or 0,
  175. rotY = tonumber(xmlNodeGetAttribute(p,'rotY')) or 0,
  176. rotZ = tonumber(xmlNodeGetAttribute(p,'rotZ')) or tonumber(xmlNodeGetAttribute(p,'rotation')) or 0
  177. })
  178. end
  179. if objectType == 'object' then
  180. table.insert(t_mapa.data.objects,{
  181. modelId = tonumber(xmlNodeGetAttribute(p,'model')),
  182. interiorID = tonumber(xmlNodeGetAttribute(p,'interior')) or 0,
  183. posX = tonumber(xmlNodeGetAttribute(p,'posX')),
  184. posY = tonumber(xmlNodeGetAttribute(p,'posY')),
  185. posZ = tonumber(xmlNodeGetAttribute(p,'posZ')),
  186. rotX = tonumber(xmlNodeGetAttribute(p,'rotX')) or 0,
  187. rotY = tonumber(xmlNodeGetAttribute(p,'rotY')) or 0,
  188. rotZ = tonumber(xmlNodeGetAttribute(p,'rotZ')) or 0,
  189. doublesided = xmlNodeGetAttribute(p,'doublesided') or 'false',
  190. collisions = xmlNodeGetAttribute(p,'collisions') or 'true',
  191. breakable = xmlNodeGetAttribute(p,'breakable') or 'true',
  192. alpha = xmlNodeGetAttribute(p,'alpha') or 255,
  193. scale = xmlNodeGetAttribute(p,'scale') or 1
  194. })
  195. elseif objectType == 'vehicle' then
  196. table.insert(t_mapa.data.vehicles,{
  197. modelId = tonumber(xmlNodeGetAttribute(p,'model')),
  198. interiorID = tonumber(xmlNodeGetAttribute(p,'interior')) or 0,
  199. posX = tonumber(xmlNodeGetAttribute(p,'posX')),
  200. posY = tonumber(xmlNodeGetAttribute(p,'posY')),
  201. posZ = tonumber(xmlNodeGetAttribute(p,'posZ')),
  202. rotX = tonumber(xmlNodeGetAttribute(p,'rotX')) or 0,
  203. rotY = tonumber(xmlNodeGetAttribute(p,'rotY')) or 0,
  204. rotZ = tonumber(xmlNodeGetAttribute(p,'rotZ')) or 0,
  205. frozen = xmlNodeGetAttribute(p,'frozen') or 'false'
  206. })
  207. elseif objectType == 'marker' then
  208. table.insert(t_mapa.data.marker,{
  209. theType = xmlNodeGetAttribute(p,'type'),
  210. interiorID = tonumber(xmlNodeGetAttribute(p,'interior')) or 0,
  211. posX = tonumber(xmlNodeGetAttribute(p,'posX')),
  212. posY = tonumber(xmlNodeGetAttribute(p,'posY')),
  213. posZ = tonumber(xmlNodeGetAttribute(p,'posZ')),
  214. size = tonumber(xmlNodeGetAttribute(p,'size')),
  215. color = xmlNodeGetAttribute(p,'color')
  216. })
  217. elseif objectType == 'racepickup' then
  218. table.insert(t_mapa.data.pickup,{
  219. pickupType = xmlNodeGetAttribute(p,'type'),
  220. posX = tonumber(xmlNodeGetAttribute(p,'posX')),
  221. posY = tonumber(xmlNodeGetAttribute(p,'posY')),
  222. posZ = tonumber(xmlNodeGetAttribute(p,'posZ')),
  223. interiorID = tonumber(xmlNodeGetAttribute(p,'interior')),
  224. vehicle = tonumber(xmlNodeGetAttribute(p,'vehicle'))
  225. })
  226. table.insert(mapmanager_data[n_mapa].pickups,{
  227. pickupType = xmlNodeGetAttribute(p,'type'),
  228. posX = tonumber(xmlNodeGetAttribute(p,'posX')),
  229. posY = tonumber(xmlNodeGetAttribute(p,'posY')),
  230. posZ = tonumber(xmlNodeGetAttribute(p,'posZ')),
  231. interiorID = tonumber(xmlNodeGetAttribute(p,'interior')),
  232. vehicle = tonumber(xmlNodeGetAttribute(p,'vehicle'))
  233. })
  234. elseif objectType == 'checkpoint' then
  235. local size
  236. if not defType then
  237. size = (tonumber(xmlNodeGetAttribute(p,'size')) or 1) * 4
  238. else
  239. size = tonumber(xmlNodeGetAttribute(p,'size')) or 4
  240. end
  241. table.insert(t_mapa.data.checkpoints,{
  242. posX = tonumber(xmlNodeGetAttribute(p,'posX')),
  243. posY = tonumber(xmlNodeGetAttribute(p,'posY')),
  244. posZ = tonumber(xmlNodeGetAttribute(p,'posZ')),
  245. size = size,
  246. color = xmlNodeGetAttribute(p,'color') or '#0000ff',
  247. type = xmlNodeGetAttribute(p,'type') or 'checkpoint',
  248. id = xmlNodeGetAttribute(p,'id'),
  249. nextid = xmlNodeGetAttribute(p,'nextid'),
  250. vehicle = xmlNodeGetAttribute(p,'vehicle')
  251. })
  252. table.insert(mapmanager_data[n_mapa].checkpoints,{
  253. posX = tonumber(xmlNodeGetAttribute(p,'posX')),
  254. posY = tonumber(xmlNodeGetAttribute(p,'posY')),
  255. posZ = tonumber(xmlNodeGetAttribute(p,'posZ')),
  256. size = size,
  257. color = xmlNodeGetAttribute(p,'color') or '#0000ff',
  258. type = xmlNodeGetAttribute(p,'type') or 'checkpoint',
  259. id = xmlNodeGetAttribute(p,'id'),
  260. nextid = xmlNodeGetAttribute(p,'nextid'),
  261. vehicle = xmlNodeGetAttribute(p,'vehicle')
  262. })
  263. mapmanager_data[n_mapa].isRaceMap = true
  264. elseif objectType == 'removeWorldObject' then
  265. table.insert(t_mapa.data.removeWorldObjects,{
  266. radius = xmlNodeGetAttribute(p,'radius'),
  267. interior = tonumber(xmlNodeGetAttribute(p,'interior')) or 0,
  268. model = tonumber(xmlNodeGetAttribute(p,'model')),
  269. lodModel = tonumber(xmlNodeGetAttribute(p,'lodModel')),
  270. posX = tonumber(xmlNodeGetAttribute(p,'posX')),
  271. posY = tonumber(xmlNodeGetAttribute(p,'posY')),
  272. posZ = tonumber(xmlNodeGetAttribute(p,'posZ'))
  273. })
  274. elseif objectType == 'pickup' then
  275. table.insert(t_mapa.data.DMpickup,{
  276. amount = tonumber(xmlNodeGetAttribute(p,'amount')) or 50,
  277. interior = tonumber(xmlNodeGetAttribute(p,'interior')) or 0,
  278. respawn = tonumber(xmlNodeGetAttribute(p,'respawn')) or 0,
  279. typ = xmlNodeGetAttribute(p,'type'),
  280. posX = tonumber(xmlNodeGetAttribute(p,'posX')),
  281. posY = tonumber(xmlNodeGetAttribute(p,'posY')),
  282. posZ = tonumber(xmlNodeGetAttribute(p,'posZ'))
  283. })
  284. elseif objectType == 'Jump' then
  285. table.insert(t_mapa.data.Jumps,{
  286. id = xmlNodeGetAttribute(p,'id'),
  287. type = xmlNodeGetAttribute(p,'type'),
  288. color = xmlNodeGetAttribute(p,'color') or '#ffffffff',
  289. power = xmlNodeGetAttribute(p,'power'),
  290. size = xmlNodeGetAttribute(p,'size'),
  291. posX = tonumber(xmlNodeGetAttribute(p,'posX')),
  292. posY = tonumber(xmlNodeGetAttribute(p,'posY')),
  293. posZ = tonumber(xmlNodeGetAttribute(p,'posZ'))
  294. })
  295. elseif objectType == 'SpeedUp' then
  296. table.insert(t_mapa.data.SpeedUp,{
  297. id = xmlNodeGetAttribute(p,'id'),
  298. type = xmlNodeGetAttribute(p,'type'),
  299. color = xmlNodeGetAttribute(p,'color') or '#ffffffff',
  300. power = xmlNodeGetAttribute(p,'power'),
  301. size = xmlNodeGetAttribute(p,'size'),
  302. posX = tonumber(xmlNodeGetAttribute(p,'posX')),
  303. posY = tonumber(xmlNodeGetAttribute(p,'posY')),
  304. posZ = tonumber(xmlNodeGetAttribute(p,'posZ'))
  305. })
  306. elseif objectType == 'Freeze' then
  307. table.insert(t_mapa.data.Freeze,{
  308. id = xmlNodeGetAttribute(p,'id'),
  309. type = xmlNodeGetAttribute(p,'type'),
  310. color = xmlNodeGetAttribute(p,'color') or '#ffffffff',
  311. time = xmlNodeGetAttribute(p,'time'),
  312. size = xmlNodeGetAttribute(p,'size'),
  313. posX = tonumber(xmlNodeGetAttribute(p,'posX')),
  314. posY = tonumber(xmlNodeGetAttribute(p,'posY')),
  315. posZ = tonumber(xmlNodeGetAttribute(p,'posZ'))
  316. })
  317. elseif objectType == 'Flip' then
  318. table.insert(t_mapa.data.Flip,{
  319. id = xmlNodeGetAttribute(p,'id'),
  320. type = xmlNodeGetAttribute(p,'type'),
  321. color = xmlNodeGetAttribute(p,'color') or '#ffffffff',
  322. size = xmlNodeGetAttribute(p,'size'),
  323. posX = tonumber(xmlNodeGetAttribute(p,'posX')),
  324. posY = tonumber(xmlNodeGetAttribute(p,'posY')),
  325. posZ = tonumber(xmlNodeGetAttribute(p,'posZ'))
  326. })
  327. elseif objectType == 'Reverse' then
  328. table.insert(t_mapa.data.Reverse,{
  329. id = xmlNodeGetAttribute(p,'id'),
  330. type = xmlNodeGetAttribute(p,'type'),
  331. color = xmlNodeGetAttribute(p,'color') or '#ffffffff',
  332. size = xmlNodeGetAttribute(p,'size'),
  333. posX = tonumber(xmlNodeGetAttribute(p,'posX')),
  334. posY = tonumber(xmlNodeGetAttribute(p,'posY')),
  335. posZ = tonumber(xmlNodeGetAttribute(p,'posZ'))
  336. })
  337. elseif objectType == 'Rotate' then
  338. table.insert(t_mapa.data.Rotate,{
  339. id = xmlNodeGetAttribute(p,'id'),
  340. type = xmlNodeGetAttribute(p,'type'),
  341. color = xmlNodeGetAttribute(p,'color') or '#ffffffff',
  342. size = xmlNodeGetAttribute(p,'size'),
  343. posX = tonumber(xmlNodeGetAttribute(p,'posX')),
  344. posY = tonumber(xmlNodeGetAttribute(p,'posY')),
  345. posZ = tonumber(xmlNodeGetAttribute(p,'posZ'))
  346. })
  347. else
  348. for r,q in ipairs(xmlNodeGetChildren(p)) do
  349. local objectType = xmlNodeGetName(q)
  350. if objectType == 'object' then
  351. table.insert(t_mapa.data.objects,{
  352. modelId = tonumber(xmlNodeGetAttribute(q,'model')),
  353. interiorID = tonumber(xmlNodeGetAttribute(q,'interior')) or 0,
  354. posX = tonumber(xmlNodeGetAttribute(q,'posX')),
  355. posY = tonumber(xmlNodeGetAttribute(q,'posY')),
  356. posZ = tonumber(xmlNodeGetAttribute(q,'posZ')),
  357. rotX = tonumber(xmlNodeGetAttribute(q,'rotX')) or 0,
  358. rotY = tonumber(xmlNodeGetAttribute(q,'rotY')) or 0,
  359. rotZ = tonumber(xmlNodeGetAttribute(q,'rotZ')) or 0,
  360. doublesided = xmlNodeGetAttribute(q,'doublesided') or 'false',
  361. collisions = xmlNodeGetAttribute(q,'collisions') or 'true',
  362. breakable = xmlNodeGetAttribute(q,'breakable') or 'true',
  363. alpha = xmlNodeGetAttribute(q,'alpha') or 255,
  364. scale = xmlNodeGetAttribute(q,'scale') or 1
  365. })
  366. end
  367. end
  368. end
  369. end
  370. if #mapmanager_data[n_mapa].spawnpoints == 0 then
  371. if #sp[1] > 0 and #sp[2] > 0 then
  372. mapmanager_data[n_mapa].spawnpoints = sp
  373. end
  374. end
  375. xmlUnloadFile(mapFile)
  376. elseif nType == 'file' then
  377. mFile = fileOpen(':'..n_mapa..'/'..Info['src'])
  378. fileSize = fileGetSize(mFile)
  379. table.insert(Archivos,{
  380. n_mapa..'/'..Info['src'],
  381. fileSize
  382. })
  383. fileClose(mFile)
  384. elseif nType == 'script' then
  385. if Info['type'] and Info['type'] == 'client' then
  386. local mScript = fileOpen(':'..n_mapa..'/'..Info['src'])
  387. local mSData = fileRead(mScript,fileGetSize(mScript))
  388. table.insert(Scripts,mSData)
  389. fileClose(mScript)
  390. end
  391. elseif nType == 'settings' then
  392. for i,node in ipairs(xmlNodeGetChildren(Node)) do
  393. t_mapa.data.settings[xmlNodeGetAttribute(node,'name')] = xmlNodeGetAttribute(node,'value')
  394. end
  395. elseif nType == 'info' then
  396. t_mapa.data.name = Node:getAttribute('name') or 'Desconocido'
  397. t_mapa.data.author = Node:getAttribute('author') or 'Desconocido'
  398. end
  399. end
  400. if jugador then
  401. jugador:setData('downloaded',false)
  402. triggerClientEvent(jugador,'MJ-Loader:onClientLoadMap',jugador,n_mapa,t_mapa.data)
  403. triggerClientEvent(jugador,'MJ-Loader:onClientCheckFiles',jugador,n_mapa,Archivos,Scripts)
  404. end
  405.  
  406.  
  407.  
  408.  
  409. end
  410. addEvent('MJ-Loader:LoadMap',true)
  411. addEventHandler('MJ-Loader:LoadMap',root,cargarRecurso)
  412.  
  413. function getMapInfo(var)
  414. local n_mapa = type(var) == 'string' and var or var.name
  415. return mapmanager_data[n_mapa]
  416. end
  417.  
  418.  
  419. function SendCFiles(FilesPath)
  420. for k,v in ipairs(FilesPath) do
  421. local File = fileOpen(':'..v)
  422. local FileData = fileRead(File,fileGetSize(File))
  423.  
  424. triggerLatentClientEvent (source,'MJ-Loader:SendCFiles',950000,false,source,FileData,v)
  425.  
  426. fileClose(File)
  427. end
  428. end
  429. addEvent('MJ-Loader:CRequestFiles',true)
  430. addEventHandler('MJ-Loader:CRequestFiles',getRootElement(),SendCFiles)
  431.  
  432. addEventHandler('MJ-Loader:downloadFinshed',root,function()
  433. source:setData('downloaded',true)
  434. end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement