Jump to content

f8upd8

Members
  • Posts

    36
  • Joined

  • Last visited

Details

  • Location
    Russia
  • Occupation
    Developer
  • Interests
    Coding

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

f8upd8's Achievements

Rat

Rat (9/54)

1

Reputation

  1. It is very specific situation, very-very based on my directDraw system. It will be hard to describe it and no one will encounter it (if they will not use my backups).
  2. *SOLVED* Problem was more untrivial than i thought.
  3. dxDrawImageOnElement was edited not just for lols. Reverting it to wiki state is worst thing that i can do. It is very funny, but i even adden check "if not element outputChatBox("FAILURE", 255, 0, 0)". And i never seen "FAILURE" in the chat box. To disable logs i adden check before isLineOfSightClear. This is only place when check works properly in this function.
  4. I using onClientPreRender to draw images above players like this: --Clientside function dxDrawImageOnElement(element,Image,distance,relX,relY,relZ,alpha,checkBuildings,checkVehicles,checkPeds,checkObjects,checkDummies,seeThroughStuff,ignoreSomeObjectsForCamera,ignoredElement) if type(element) == "userdata" then local x2, y2, z2 = getElementPosition(localPlayer) local x, y, z = getElementPosition(element) if not x then outputChatBox("Failed.", 255, 0, 0) else outputChatBox(relX..relY..relZ, 0, 255, 0) end local distance = distance or 20 local relX = relX or 1 local relY = relY or 1 local relZ = relZ or 1 local width = width or 1 local checkBuildings = checkBuildings or true local checkVehicles = checkVehicles or false local checkPeds = checkPeds or false local checkObjects = checkObjects or true local checkDummies = checkDummies or true local seeThroughStuff = seeThroughStuff or false local ignoreSomeObjectsForCamera = ignoreSomeObjectsForCamera or false local ignoredElement = ignoredElement or nil if (isLineOfSightClear(x, y, z, x2, y2, z2, checkBuildings, checkVehicles, checkPeds , checkObjects,checkDummies,seeThroughStuff,ignoreSomeObjectsForCamera,ignoredElement)) then local sx, sy = getScreenFromWorldPosition(x, y, z+relZ) if(sx) and (sy) then local distanceBetweenPoints = getDistanceBetweenPoints3D(x, y, z, x2, y2, z2) if(distanceBetweenPoints < distance) then dxDrawMaterialLine3D(x+relX, y+relY, z+1+relZ-(distanceBetweenPoints/distance), x+relX, y+relY, z+relZ, Image, width-(distanceBetweenPoints/distance), tocolor(R or 255, G or 255, B or 255, alpha or 255)) end end end end end addEventHandler("onClientPreRender", getRootElement(), function () dxDrawImageOnElement(element,image,distance,relX,relY,relZ,alpha,checkBuildings,checkVehicles,checkPeds,checkObjects,checkDummies,seeThroughStuff,ignoreSomeObjectsForCamera,ignoredElement) end) This working well! Images is apearing. But look at client logs: [2017-07-24 23:12:57] WARNING: ddessentials\client.lua:3: Bad argument @ 'getElementPosition' [Expected element at argument 1, got boolean] [DUP x215] [2017-07-24 23:12:57] WARNING: ddessentials\client.lua:16: Bad argument @ 'isLineOfSightClear' [Expected vector3 at argument 1, got boolean] [DUP x215] [2017-07-24 23:12:57] WARNING: ddessentials\client.lua:3: Bad argument @ 'getElementPosition' [Expected element at argument 1, got boolean] [2017-07-24 23:12:57] WARNING: ddessentials\client.lua:16: Bad argument @ 'isLineOfSightClear' [Expected vector3 at argument 1, got boolean] [2017-07-24 23:13:03] WARNING: ddessentials\client.lua:3: Bad argument @ 'getElementPosition' [Expected element at argument 1, got boolean] [DUP x215] [2017-07-24 23:13:03] WARNING: ddessentials\client.lua:16: Bad argument @ 'isLineOfSightClear' [Expected vector3 at argument 1, got boolean] [DUP x215] [2017-07-24 23:13:03] WARNING: ddessentials\client.lua:3: Bad argument @ 'getElementPosition' [Expected element at argument 1, got boolean] [2017-07-24 23:13:03] WARNING: ddessentials\client.lua:16: Bad argument @ 'isLineOfSightClear' [Expected vector3 at argument 1, got boolean] And i really hate this. This generating continuosly and i can't read client logs anymore. How can i avoid this crap?
  5. Если нужно что-то серьёзное, что будут видеть все, всегда и при любых условиях - пиши API для отрисовки, который будет её хранить. Лично я потратил на такой два дня, потому что долго не мог придумать способ хранения, который бы поддерживал динамическую изменяемость и возможность удаления.
  6. Ты полезную функцию dxDrawTextOnElement() добавил? Это не стандартная функция.
  7. You said "and I must restart de resource to see pickups back". So this happening unpredictable? Or i misunderstood? If it just moving to another interior, then... If script is really clear, there is definitely some bug and you should report
  8. Problem is serverside. If you see MTA GUI then you should see server scripts gui.
  9. LOL. I found error. "int" can't be used as variable.
  10. How did you come back? Via warp? There are a number of bugs that linked with warping. If it so, try another way. Setting your interior and dimension through standart admin panel causes some issues sometimes. Sounds strange, but it's true.
  11. Я уже всё исправил и даже добавил хендлеров, который позволят всегда и всем видеть эту надпись.
  12. Используй полезную функцию для отображения текста. А машину передай клиенту через евент. dxDrawTextOnElement() Вставляем полезную функцию (обязательно на клиентскую сторону) --ПОЛЕЗНАЯ ФУНКЦИЯ СО СТРАНИЦЫ-- function dxDrawTextOnElement(TheElement,text,height,distance,R,G,B,alpha,size,font,checkBuildings,checkVehicles,checkPeds,checkDummies,seeThroughStuff,ignoreSomeObjectsForCamera,ignoredElement) local x, y, z = getElementPosition(TheElement) local x2, y2, z2 = getElementPosition(localPlayer) local distance = distance or 20 local height = height or 1 local checkBuildings = checkBuildings or true local checkVehicles = checkVehicles or false local checkPeds = checkPeds or false local checkObjects = checkObjects or true local checkDummies = checkDummies or true local seeThroughStuff = seeThroughStuff or false local ignoreSomeObjectsForCamera = ignoreSomeObjectsForCamera or false local ignoredElement = ignoredElement or nil if (isLineOfSightClear(x, y, z, x2, y2, z2, checkBuildings, checkVehicles, checkPeds , checkObjects,checkDummies,seeThroughStuff,ignoreSomeObjectsForCamera,ignoredElement)) then local sx, sy = getScreenFromWorldPosition(x, y, z+height) if(sx) and (sy) then local distanceBetweenPoints = getDistanceBetweenPoints3D(x, y, z, x2, y2, z2) if(distanceBetweenPoints < distance) then dxDrawText(text, sx+2, sy+2, sx, sy, tocolor(R or 255, G or 255, B or 255, alpha or 255), (size or 1)-(distanceBetweenPoints / distance), font or "arial", "center", "center") end end end end Серверная часть: Cargobob=createVehicle(548,mas[3][1],mas[3][2],mas[3][3],0,0,90) addEventHandler("onPlayerJoin", getRootElement(), function () triggerClientEvent(source, "onVehicleTextDraw", Cargobob) end) addEventHandler("onResourceStart", getResourceRootElement(getThisResource()), function () triggerClientEvent(getRootElement(), "onVehicleTextDraw", Cargobob) end) Клиентская часть: addEvent("onVehicleTextDraw") addEventHandler("onVehicleTextDraw", getRootElement(), function () local drawElement = source addEventHandler("onClientRender", getRootElement(), function () dxDrawTextOnElement(drawElement,"Your Text",1,20,0,0,255,255,1,"arial") end) end)
  13. charecterModelsToReplace = {--ARMY Skins- "army/16.txd", "army/16.dff", 16, "army/20.txd", "army/20.dff", 20, "army/23.txd", "army/23.dff", 23, "army/30.txd", "army/30.dff", 30, "army/46.txd", "army/46.dff", 46, "army/48.txd", "army/48.dff", 48, "army/60.txd", "army/60.dff", 60, "army/66.txd", "army/66.dff", 66, "army/67.txd", "army/67.dff", 67, "army/71.txd", "army/71.dff", 71, "army/73.txd", "army/73.dff", 73, "army/95.txd", "army/95.dff", 95, "army/97.txd", "army/97.dff", 97, "army/98.txd", "army/98.dff", 98, "army/144.txd", "army/144.dff", 144, "army/152.txd", "army/152.dff", 152, "army/250.txd", "army/250.dff", 250, --ANIME Skins-- "anime/yagami.txd", "anime/yagami.dff", 202, "anime/nierautomata.txd", "anime/nierautomata.dff", 9, "anime/PENIA.txd", "anime/PENIA.dff", 10, "anime/Yuko Hello Kitty.txd", "anime/Yuko Hello Kitty.dff", 11, "anime/Kimono.txd", "anime/Kimono.dff", 12, "anime/Girl with pink sharp things.txd", "anime/Girl with pink sharp things.dff", 13, "anime/Cayote.txd", "anime/Cayote.dff", 31, "anime/Miku.txd", "anime/Miku.dff", 38, "anime/Kurisu.txd", "anime/Kurisu.dff", 39, "anime/Miku2.txd", "anime/Miku2.dff", 40, "anime/PinkHair unknown braslette.txd", "anime/PinkHair unknown braslette.dff", 53, "anime/berret.txd", "anime/berret.dff", 54, "anime/Miku3.txd", "anime/Miku3.dff", 55, "anime/Ghost Shell.txd", "anime/Ghost Shell.dff", 56, "anime/Yellow Hair girl.txd", "anime/Yellow Hair girl.dff", 63, "anime/Beret 2.txd", "anime/Beret 2.dff", 64, "anime/Pacan.txd", "anime/Pacan.dff", 14, "anime/chibi with electrotail.txd", "anime/chibi with electrotail.dff", 75, "anime/hatsune-miku-vocal-star-remade.txd", "anime/hatsune-miku-vocal-star-remade.dff", 76, "anime/yowane-haku.txd", "anime/yowane-haku.dff", 77, "anime/moxi-purple.txd", "anime/moxi-purple.dff", 85, "anime/owari-no-seraph.txd", "anime/owari-no-seraph.dff", 87, "anime/hoodie-haku-yowane.txd", "anime/hoodie-haku-yowane.dff", 89, "anime/yuezheng-ling.txd", "anime/yuezheng-ling.dff", 90, "anime/mikusweetdevil.txd", "anime/mikusweetdevil.dff", 91, --ZOMBIE Skins- "misc/zombie1.txd", "misc/zombie1.dff", 181, --NPC-- "misc/sidorovich.txd", "misc/sidorovich.dff", 259} techModelsToReplace = {"vehicles/barracks.txd", "vehicles/barracks.dff", 433, "vehicles/swatvan.txd", "vehicles/swatvan.dff", 601, "vehicles/androm.txd", "vehicles/androm.dff", 592, "vehicles/raindanc.txd", "vehicles/raindanc.dff", 563, "vehicles/cargobob.txd", "vehicles/cargobob.dff", 548, "vehicles/hunter.txd", "vehicles/hunter.dff", 425, "vehicles/hydra.txd", "vehicles/hydra.dff", 520, "vehicles/patriot.txd", "vehicles/patriot.dff", 470, "vehicles/seasparrow.txd", "vehicles/seasparrow.dff", 447, "vehicles/maverick.txd", "vehicles/maverick.dff", 487, "vehicles/huntley.txd", "vehicles/huntley.dff", 579, "vehicles/enforcer.txd", "vehicles/enforcer.dff", 427, "vehicles/FBITruck.txd", "vehicles/FBITruck.dff", 528, "vehicles/rhino.txd", "vehicles/rhino.dff", 432} worldObjectsToReplace = {"world/tent.txd", "world/tent.dff", "world/tent.col", 11453, "world/Plane.txd", "world/Plane.dff", "world/Plane.col", 11611, "world/des_ghotfenc06.txd", "world/des_ghotfenc06.dff", "world/des_ghotfenc06.col", 16632, "world/a2_t72.txd", "world/a2_t72.dff", "world/a2_t72.col", 11455} addEvent("readyToLoad", true) addEventHandler("readyToLoad", getLocalPlayer(), function () local skinCount = 1 local techCount = 1 local objCount = 1 repeat skinTXD = engineLoadTXD (charecterModelsToReplace[skinCount]) engineImportTXD (skinTXD, charecterModelsToReplace[skinCount+2]) skinDFF = engineLoadDFF (charecterModelsToReplace[skinCount+1]) engineReplaceModel (skinDFF, charecterModelsToReplace[skinCount+2]) skinCount = skinCount + 3 until (skinCount >= #charecterModelsToReplace) repeat techTXD = engineLoadTXD (techModelsToReplace[techCount]) engineImportTXD (techTXD, techModelsToReplace[techCount+2]) techDFF = engineLoadDFF (techModelsToReplace[techCount+1]) engineReplaceModel (techDFF, techModelsToReplace[techCount+2]) techCount = techCount + 3 until (techCount >= #techModelsToReplace) repeat objTXD = engineLoadTXD (worldObjectsToReplace[objCount]) engineImportTXD (objTXD, worldObjectsToReplace[objCount+3]) objDFF = engineLoadDFF (worldObjectsToReplace[objCount+1]) engineReplaceModel (objDFF, worldObjectsToReplace[objCount+3]) objCOL = engineLoadCOL (worldObjectsToReplace[objCount+2]) engineReplaceCOL (objCOL, worldObjectsToReplace[objCount+3]) objCount = objCount + 4 until (objCount >= #worldObjectsToReplace) end) Looks very weird, but loads fast and good. I guess.. I could just use for if.. If I knew about for. My second script, heh. About the problem, check your script file coding. Once i encoded my script to UTF-8-BOM by accident. And that was.. A big perfomance problem. And check models. It is high chance that one of models has a bug.
  14. Oh thank you! Your solution of function deanonymization fits perfectly!
  15. Wow. I did not known that. Sorry for my dumbness. But repeat until spawnPlayer(source,x+1, y+1,z, 0, math.random(1,1) ) Is only thing that can cause server freeze due to error. Because of invalid argument passed. I said while true and that is wrong. I should say "until false" But even if i dumb, i had same problem and will be helpful. Try to create local variable that contains source element, i thing source don't getting through timer function. addEventHandler("onPlayerWasted",root,function() local thePlayer = source if isElement(thePlayer) then exports["rc_core"]:takeMoney(thePlayer,5000) skin = getElementModel(thePlayer) or 0 setTimer(respawn,3000, 1, thePlayer) setTimer(setElementModel,3000,1,thePlayer,skin) end end) I hope that will be just one helpful post i left here.
×
×
  • Create New...