quindo Posted October 13, 2016 Share Posted October 13, 2016 Hello everyone, I'm coming here with what is probably super easy question, but I can't figure it out for the whole day. I want to basically clone an element(checkpoint) that is already used in map editor, exactly the same way i would do it using "c" hotkey. The problem is that i don't want to use the hotkey, I have the element i want to clone, but can't clone it properly(assign next ID). i tried using newElement = exports.edf:edfCloneElement(element,true) but that gives me exactly the same object, with the same id and everything. I need it to have next free id. i also tried using newElement = exports.editor_main:import(createElement("checkpoint")) but that didn't work properly either, i couldn't modify element properties after creating the object. Link to comment
quindo Posted October 15, 2016 Author Share Posted October 15, 2016 I managed to do it in some improvised way, so if anyone is looking for this, here's some probably bad but working code: CLIENT: function addCheckpoint(posX,posY,posZ,size) exports.editor_main:suspend() triggerServerEvent("onCheckpointRequest",resourceRoot, track) end function setTemp(tempServer) if tempServer then exports.editor_main:doCloneElement(tempServer,2) setTimer(function() clone = exports.editor_main:getSelectedElement() triggerServerEvent("afterClone", resourceRoot, clone, posX, posY, posZ, size, track, tempServer) end,500,1) else outputChatBox("Couldn't detect last checkpoint") setTimer(function()exports.editor_main:resume()end,200,1) end end addEvent("receiveCheckpoint", true) addEventHandler("receiveCheckpoint", getRootElement(), setTemp) function resetProgress() exports.editor_main:resume() end addEvent("progressOver", true) addEventHandler("progressOver", getRootElement(), resetProgress) SERVER: function getCheckpoint(track) checkpoints = getElementsByType("checkpoint") for i,checkpoint in ipairs(checkpoints) do if <condition> then triggerClientEvent("receiveCheckpoint", getRootElement(),checkpoint,1) return end end triggerClientEvent("progressOver",getRootElement()) end addEvent("onCheckpointRequest", true) addEventHandler("onCheckpointRequest", resourceRoot, getCheckpoint) function manageClone(elem, posX, posY, posZ, size, track, orginal) exports.edf:edfSetElementProperty(elem,"something", 'something') exports.edf:edfSetElementProperty(elem,"somethingelse", 'somethingelse') exports.edf:edfSetElementPosition(elem,posX,posY,posZ) exports.edf:edfSetElementProperty(elem, "size", size*1.25) --SOME OTHER VARIABLES THAT YOU WANT, ETC, ETC triggerClientEvent("progressOver",getRootElement()) end addEvent("afterClone", true) addEventHandler("afterClone", resourceRoot, manageClone) Link to comment
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now