Jump to content

WRIST

Members
  • Posts

    37
  • Joined

  • Last visited

About WRIST

  • Birthday 04/03/1991

Details

  • Gang
    MTA - DayZ România
  • Location
    Romania
  • Occupation
    Scripting
  • Interests
    Nothing

Recent Profile Visitors

738 profile views

WRIST's Achievements

Rat

Rat (9/54)

0

Reputation

  1. better, please explain to me what this is, or some pictures, etc... radius_need_number - the collision sphere's radius
  2. radius_need_number - the collision sphere's radius where can I find this in the map editor or where?
  3. WARNING: [Systeme]\system-quest\server.lua:6: Bad argument @ 'createPed' [Expected number at argument 5, got boolean] WARNING: [Systeme]\system-quest\server.lua:7: Bad argument @ 'setElementFrozen' [Expected element at argument 1, got nil] WARNING: [Systeme]\system-quest\server.lua:10: Bad argument @ 'createColSphere' [Expected number at argument 4, got createPed("217", 413.712890625, 2537.95703125, 19.1484375, false) setElementFrozen(ped,true) createBlip(413.9287109375, 2536.9140625, 19.1484375) questCol = createColSphere (413.9287109375, 2536.9140625, 19.1484375 ) createMarker(422.484375, 2469.0400390625, 26.739305496216, "cylinder", 1.5, 0, 100, 100, 200) and it doesn't work, when I enter the marker I don't see the list of missions!
  4. What is this? Did you copy the script? But I said it must not be exports.integration!
  5. I want to explain one thing to you, in Roleplay gamemodes, in scripts there are those commands only with integration.exports, but in normal servers there are only clean commands like this: in Roleplay mode the commands are like this: function gotoPlayer(thePlayer, commandName, target) if exports.integration:isPlayerTrialAdmin(thePlayer) or exports.integration:isPlayerSupporter(thePlayer) or exports.integration:isPlayerScripter(thePlayer) or exports.integration:isPlayerVCTMember(thePlayer) and in other DayZ-type modes and other modes below, the commands are scripted like this: function teleport(thePlayer,cmd,target) local accName = getAccountName ( getPlayerAccount ( thePlayer ) ) if isObjectInACLGroup ("user."..accName, aclGetGroup ( "Admin" ) ) then if (target) then local targetPlayer = getPlayerFromName(target) if (targetPlayer) then x,y,z = getElementPosition (targetPlayer) setElementPosition (thePlayer, x,y,z) And that's why I want all commands for the admin system in DayZ mode to be like I gave an example in the DayZ server scripts and freeroam. I think you understand?! If I wanted to be good at scripting, then I would do it myself without asking for your help, and if I don't know the basics of scripting very well, I'm asking you to help me a lot!
  6. yes it is very easy for you to say, but I want to remove these functions to be only the normal system. " exports.integration" yes, I'm not that good at scripting and I don't know how, help me!
  7. [System]\system-quest\server.lua:6: Bad argument @ 'createPed' [Expected number at argument 4, got boolean] WARNING: [System]\system-quest\server.lua:7: Bad argument @ 'setElementFrozen' [Expected element at argument 1, got boolean] WARNING: [System]\system-quest\server.lua:10: Bad argument @ 'createColSphere' [Expected number at argument 4, got none]
  8. Hello, I want you to help me, please, with a problem related to the system. I wanted to change the coordinates to the market where you can enter and your quest will appear, and suddenly it doesn't work anymore?! Help me please nice!? I got you ? ! here is the problem that doesn't work! it's server.lua take it from the system. database = dbConnect( "sqlite", "database.db" ) dbExec(database, "CREATE TABLE IF NOT EXISTS players (playerl, maxq)") ped = createPed(413.712890625, 2537.95703125, 19.1484375,false) setElementFrozen(ped,true) createBlip(413.9287109375, 2536.9140625, 19.1484375) questCol = createColSphere (413.9287109375, 2536.9140625, 19.1484375 ) createMarker(2654.4,-2120,12.5, "cylinder", 1, 50, 255, 50, 200) function colHit(theElement) if source == questCol then triggerClientEvent(theElement, "onQuest", theElement,true) end end addEventHandler ( "onColShapeHit", getRootElement(), colHit) function addUserQuest() local result = dbPoll(dbQuery(database, "SELECT * FROM players WHERE playerl = ?",getAccountName(getPlayerAccount(source))),-1) if #result == 0 then if source then dbFree(dbQuery(database,"INSERT INTO players (playerl, maxq) VALUES (?,?)",getAccountName(getPlayerAccount(source)),0)) end end end addEvent("addUserQuest",true) addEventHandler("addUserQuest",getRootElement(),addUserQuest)
  9. ----------------------------[GO TO PLAYER]--------------------------------------- function gotoPlayer(thePlayer, commandName, target) if exports.integration:isPlayerTrialAdmin(thePlayer) or exports.integration:isPlayerSupporter(thePlayer) or exports.integration:isPlayerScripter(thePlayer) or exports.integration:isPlayerVCTMember(thePlayer) then if commandName:lower() == "goto" then if not (target) then outputChatBox("SYNTAX: /" .. commandName .. " [Partial Player Nick]", thePlayer, 255, 194, 14) else local username = getPlayerName(thePlayer) local targetPlayer, targetPlayerName = exports.global:findPlayerByPartialNick(thePlayer, target) if targetPlayer then local logged = getElementData(targetPlayer, "loggedin") if (logged==0) then outputChatBox("Player is not logged in.", thePlayer, 255, 0 , 0) else detachElements(thePlayer) local x, y, z = getElementPosition(targetPlayer) local interior = getElementInterior(targetPlayer) local dimension = getElementDimension(targetPlayer) local r = getPedRotation(targetPlayer) -- Maths calculations to stop the player being stuck in the target x = x + ( ( math.cos ( math.rad ( r ) ) ) * 2 ) y = y + ( ( math.sin ( math.rad ( r ) ) ) * 2 ) setCameraInterior(thePlayer, interior) if (isPedInVehicle(thePlayer)) then local veh = getPedOccupiedVehicle(thePlayer) setElementAngularVelocity(veh, 0, 0, 0) setElementInterior(thePlayer, interior) setElementDimension(thePlayer, dimension) setElementInterior(veh, interior) setElementDimension(veh, dimension) setElementPosition(veh, x, y, z + 1) warpPedIntoVehicle ( thePlayer, veh ) setTimer(setElementAngularVelocity, 50, 20, veh, 0, 0, 0) else setElementPosition(thePlayer, x, y, z) setElementInterior(thePlayer, interior) setElementDimension(thePlayer, dimension) end outputChatBox(" You have teleported to player " .. targetPlayerName .. ".", thePlayer) triggerEvent ( "frames:loadInteriorTextures", thePlayer, dimension ) -- Adams if exports.integration:isPlayerSupporter(thePlayer) then outputChatBox(" Supporter " .. username .. " has teleported to you. ", targetPlayer) else local hiddenAdmin = getElementData(thePlayer, "hiddenadmin") if hiddenAdmin == 0 then outputChatBox(" Admin " .. username .. " has teleported to you. ", targetPlayer) end end end end end else local username = getPlayerName(thePlayer) local logged = getElementData(target, "loggedin") if (logged==0) then outputChatBox("Player is not logged in.", thePlayer, 255, 0 , 0) else detachElements(thePlayer) local x, y, z = getElementPosition(target) local interior = getElementInterior(target) local dimension = getElementDimension(target) local r = getPedRotation(target) -- Maths calculations to stop the player being stuck in the target x = x + ( ( math.cos ( math.rad ( r ) ) ) * 2 ) y = y + ( ( math.sin ( math.rad ( r ) ) ) * 2 ) setCameraInterior(thePlayer, interior) if (isPedInVehicle(thePlayer)) then local veh = getPedOccupiedVehicle(thePlayer) setElementAngularVelocity(veh, 0, 0, 0) setElementInterior(thePlayer, interior) setElementDimension(thePlayer, dimension) setElementInterior(veh, interior) setElementDimension(veh, dimension) setElementPosition(veh, x, y, z + 1) warpPedIntoVehicle ( thePlayer, veh ) setTimer(setElementAngularVelocity, 50, 20, veh, 0, 0, 0) else setElementPosition(thePlayer, x, y, z) setElementInterior(thePlayer, interior) setElementDimension(thePlayer, dimension) end outputChatBox(" You have accepted teleport request from " .. getPlayerName(target):gsub("_", " ") .. ".", thePlayer) triggerEvent ( "frames:loadInteriorTextures", thePlayer, dimension ) -- Adams if exports.integration:isPlayerSupporter(thePlayer) then outputChatBox(" Supporter " .. username .. " has accepted your teleport request. ", target) else outputChatBox(" Admin " .. username .. " has accepted your teleport request.", target) end end end end end addCommandHandler("goto", gotoPlayer, false, false) function getPlayer(thePlayer, commandName, from, to) if exports.integration:isPlayerTrialAdmin(thePlayer) or exports.integration:isPlayerSupporter(thePlayer) or exports.integration:isPlayerScripter(thePlayer) or exports.integration:isPlayerVCTMember(thePlayer) then if(not from or not to) then outputChatBox("SYNTAX: /" .. commandName .. " [Sending Player] [To Player]", thePlayer, 255, 194, 14) else local admin = getPlayerName(thePlayer):gsub("_"," ") local fromplayer, targetPlayerName1 = exports.global:findPlayerByPartialNick(thePlayer, from) local toplayer, targetPlayerName2 = exports.global:findPlayerByPartialNick(thePlayer, to) if(fromplayer and toplayer) then local logged1 = getElementData(fromplayer, "loggedin") local logged2 = getElementData(toplayer, "loggedin") if(not logged1 or not logged2) then outputChatBox("At least one of the players is not logged in.", thePlayer, 255, 0 , 0) else detachElements(fromplayer) local x, y, z = getElementPosition(toplayer) local interior = getElementInterior(toplayer) local dimension = getElementDimension(toplayer) local r = getPedRotation(toplayer) -- Maths calculations to stop the target being stuck in the player x = x + ( ( math.cos ( math.rad ( r ) ) ) * 2 ) y = y + ( ( math.sin ( math.rad ( r ) ) ) * 2 ) if (isPedInVehicle(fromplayer)) then local veh = getPedOccupiedVehicle(fromplayer) setElementAngularVelocity(veh, 0, 0, 0) setElementPosition(veh, x, y, z + 1) setTimer(setElementAngularVelocity, 50, 20, veh, 0, 0, 0) setElementInterior(veh, interior) setElementDimension(veh, dimension) else setElementPosition(fromplayer, x, y, z) setElementInterior(fromplayer, interior) setElementDimension(fromplayer, dimension) end outputChatBox(" You have teleported player " .. targetPlayerName1:gsub("_"," ") .. " to " .. targetPlayerName2:gsub("_"," ") .. ".", thePlayer) triggerEvent ( "frames:loadInteriorTextures", fromplayer, dimension ) -- Adams local hiddenAdmin = getElementData(thePlayer, "hiddenadmin") if hiddenAdmin == 0 then outputChatBox(" An admin " .. admin .. " has teleported you to " .. targetPlayerName2:gsub("_"," ") .. ". ", fromplayer) outputChatBox(" An admin " .. admin .. " has teleported " .. targetPlayerName1:gsub("_"," ") .. " to you.", toplayer) else outputChatBox(" An hidden admin has teleported you to " .. targetPlayerName2:gsub("_"," ") .. ". ", fromplayer) outputChatBox(" An hidden admin has teleported " .. targetPlayerName1:gsub("_"," ") .. " to you.", toplayer) end end end end end end addCommandHandler("sendto", getPlayer, false, false) ----------------------------[GET PLAYER HERE]--------------------------------------- function getPlayer(thePlayer, commandName, target) if exports.integration:isPlayerTrialAdmin(thePlayer) or exports.integration:isPlayerSupporter(thePlayer) or exports.integration:isPlayerScripter(thePlayer) then if not target then outputChatBox("SYNTAX: /" .. commandName .. " /gethere [Partial Player Nick]", thePlayer, 255, 194, 14) else local username = getPlayerName(thePlayer) local targetPlayer, targetPlayerName = exports.global:findPlayerByPartialNick(thePlayer, target) if targetPlayer then local logged = getElementData(targetPlayer, "loggedin") if (logged==0) then outputChatBox("Player is not logged in.", thePlayer, 255, 0 , 0) else local playerAdmLvl = getElementData( thePlayer, "admin_level" ) or 0 local targetAdmLvl = getElementData( targetPlayer, "admin_level" ) or 0 if (playerAdmLvl < targetAdmLvl) then outputChatBox("Sending "..targetPlayerName.." teleporting request as they're higher rank than you.", thePlayer, 255, 194, 14) outputChatBox(getPlayerName(thePlayer):gsub("_", " ").." wants to teleport you to them. /atp to accept, /dtp to deny.", targetPlayer, 255, 194, 14) setElementData(targetPlayer, "teleport:targetPlayer", thePlayer) return end detachElements(targetPlayer) local x, y, z = getElementPosition(thePlayer) local interior = getElementInterior(thePlayer) local dimension = getElementDimension(thePlayer) local r = getPedRotation(thePlayer) setCameraInterior(targetPlayer, interior) -- Maths calculations to stop the target being stuck in the player x = x + ( ( math.cos ( math.rad ( r ) ) ) * 2 ) y = y + ( ( math.sin ( math.rad ( r ) ) ) * 2 ) if (isPedInVehicle(targetPlayer)) then local veh = getPedOccupiedVehicle(targetPlayer) setElementAngularVelocity(veh, 0, 0, 0) setElementPosition(veh, x, y, z + 1) setTimer(setElementAngularVelocity, 50, 20, veh, 0, 0, 0) setElementInterior(veh, interior) setElementDimension(veh, dimension) else setElementPosition(targetPlayer, x, y, z) setElementInterior(targetPlayer, interior) setElementDimension(targetPlayer, dimension) end outputChatBox(" You have teleported player " .. targetPlayerName .. " to you.", thePlayer) triggerEvent ( "frames:loadInteriorTextures", targetPlayer, dimension ) -- Adams if exports.integration:isPlayerSupporter(thePlayer) then outputChatBox(" Supporter " .. username .. " has teleported you to them. ", targetPlayer) else local hiddenAdmin = getElementData(thePlayer, "hiddenadmin") if hiddenAdmin == 0 then outputChatBox(" Admin " .. username .. " has teleported you to them. ", targetPlayer) end end end end end end end addCommandHandler("gethere", getPlayer, false, false) I have them but I want to remove integration, export and mysql, not for DayZ mode!?
  10. Hello Multi Theft Auto Community, I need your help with the DayZ:MTA server script, I mean some commands for Admin such as: goto, gethere, sendto, ban, kick, mute, akill, etc.... please help me because I'm not that good at scripting and I really need your help!
  11. Hi all ! Can you help me please with the elevator system, when I make the first position of the elevator in the second position it gives me this error! how can i solve [ADDELEVATOR] Source point saved. Please /addelevator once again at destination point. [ADDELEVATOR] There was an error while creating an elevator. Try again. s_elevator_system.lua local timerLoadAllElevators = 30000 mysql = exports.mysql addEvent("onPlayerInteriorChange", true) -- Defines INTERIOR_X = 1 INTERIOR_Y = 2 INTERIOR_Z = 3 INTERIOR_INT = 4 INTERIOR_DIM = 5 INTERIOR_ANGLE = 6 INTERIOR_FEE = 7 INTERIOR_TYPE = 1 INTERIOR_DISABLED = 2 INTERIOR_LOCKED = 3 INTERIOR_OWNER = 4 INTERIOR_COST = 5 INTERIOR_SUPPLIES = 6 -- Small hack function setElementDataEx(source, field, parameter, streamtoall, streamatall) exports.anticheat:changeProtectedElementDataEx( source, field, parameter, streamtoall, streamatall) end -- End small hack function SmallestElevatorID( ) -- finds the smallest ID in the SQL instead of auto increment local result = mysql:query_fetch_assoc("SELECT MIN(e1.id+1) AS nextID FROM elevators AS e1 LEFT JOIN elevators AS e2 ON e1.id +1 = e2.id WHERE e2.id IS NULL") if result then return tonumber(result["nextID"]) end return false end function createElevator(thePlayer, commandName, oneway) if (exports.integration:isPlayerTrialAdmin(thePlayer) or exports.integration:isPlayerScripter(thePlayer) or exports.integration:isPlayerSupporter(thePlayer)) then if not getElementData(thePlayer, "adm:addelevator") then local x, y, z = getElementPosition(thePlayer) local rx, ry, rz = getElementRotation(thePlayer) local dim = getElementDimension(thePlayer) local int = getElementInterior(thePlayer) setElementData(thePlayer, "adm:addelevator", {x, y , z, rz, int, dim}) outputChatBox("[ADDELEVATOR] Source point saved. Please /"..commandName.." once again at destination point.", thePlayer, 0, 255, 0) return false end local sourceP = getElementData(thePlayer, "adm:addelevator") local x1, y1, z1 = getElementPosition(thePlayer) local rx1, ry1, rz1 = getElementRotation(thePlayer) local interiorwithin = getElementInterior(thePlayer) local dimensionwithin = getElementDimension(thePlayer) local ix = tonumber(ix) local iy = tonumber(iy) local iz = tonumber(iz) local id = SmallestElevatorID() if id then if oneway then if(oneway == "1") then oneway = "1" else oneway = "0" end else oneway = "0" end local query = mysql:query_free("INSERT INTO elevators SET id='" .. mysql:escape_string(id) .. "', x='" .. mysql:escape_string(x1) .. "', y='" .. mysql:escape_string(y1) .. "', z='" .. mysql:escape_string(z1) .. "', tpx='" .. mysql:escape_string(sourceP[1]) .. "', tpy='" .. mysql:escape_string(sourceP[2]) .. "', tpz='" .. mysql:escape_string(sourceP[3]) .. "', dimensionwithin='" .. mysql:escape_string(dimensionwithin) .. "', interiorwithin='" .. mysql:escape_string(interiorwithin) .. "', dimension='" .. mysql:escape_string(sourceP[6]) .. "', interior='" .. mysql:escape_string(sourceP[5]) .. "', rot='" .. mysql:escape_string(rz1) .. "', tprot='" .. mysql:escape_string(sourceP[4]) .. "', oneway=" .. mysql:escape_string(oneway) .. " ") if (query) then --reloadOneElevator(id, true) loadOneElevator(id) outputChatBox("[ADDELEVATOR] Elevator and elevator remote created with ID #" .. id .. ". Check your inventory!", thePlayer, 0, 255, 0) exports.global:giveItem(thePlayer, 73, id) removeElementData(thePlayer, "adm:addelevator") end else outputChatBox("[ADDELEVATOR] There was an error while creating an elevator. Try again.", thePlayer, 255, 0, 0) end end end addCommandHandler("addelevator", createElevator, false, false) addCommandHandler("adde", createElevator, false, false) function createElevatorWithFriend(thePlayer, commandName, targetPlayer) if (exports.integration:isPlayerTrialAdmin(thePlayer) or exports.integration:isPlayerSupporter(thePlayer)) then if not (targetPlayer) then outputChatBox("SYNTAX: /" .. commandName .. " [Target Partial Nick or ID]", thePlayer, 255, 194, 14) else local targetPlayer, tragetPlayerName = exports.global:findPlayerByPartialNick(thePlayer, targetPlayer) local x, y, z = getElementPosition(thePlayer) local interiorwithin = getElementInterior(thePlayer) local dimensionwithin = getElementDimension(thePlayer) local ix, iy, iz = getElementPosition(targetPlayer) local interior = getElementInterior(targetPlayer) local dimension = getElementDimension(targetPlayer) local rx1, ry1, rz1 = getElementPosition(thePlayer) local rx2, ry2, rz2 = getElementPosition(targetPlayer) local id = SmallestElevatorID() if id then local query = mysql:query_free("INSERT INTO elevators SET id='" .. mysql:escape_string(id) .. "', x='" .. mysql:escape_string(x) .. "', y='" .. mysql:escape_string(y) .. "', z='" .. mysql:escape_string(z) .. "', tpx='" .. mysql:escape_string(ix) .. "', tpy='" .. mysql:escape_string(iy) .. "', tpz='" .. mysql:escape_string(iz) .. "', dimensionwithin='" .. mysql:escape_string(dimensionwithin) .. "', interiorwithin='" .. mysql:escape_string(interiorwithin) .. "', dimension='" .. mysql:escape_string(dimension) .. "', interior='" .. mysql:escape_string(interior) .. "', rot='" .. mysql:escape_string(rz1) .. "', tprot='" .. mysql:escape_string(rz2) .. "' ") if (query) then loadOneElevator(id) outputChatBox("Elevator created with ID #" .. id .. "!", thePlayer, 0, 255, 0) outputChatBox(getPlayerName(thePlayer):gsub("_"," ") .. " created an elevator with an ID of " .. id .. "!", targetPlayer, 0, 255, 0) end else outputChatBox("There was an error while creating an elevator. Try again.", thePlayer, 255, 0, 0) end end end end addCommandHandler("aelevator", createElevatorWithFriend, false, false) addCommandHandler("adde2", createElevatorWithFriend, false, false) function getOposite(rot) if not rot or not tonumber(rot) then return 0 end rot = tonumber(rot) if rot > 180 then return rot - 180 else return rot + 180 end end function findElevator(elevatorID) elevatorID = tonumber(elevatorID) if elevatorID > 0 then local possibleInteriors = getElementsByType("elevator") for _, elevator in ipairs(possibleInteriors) do local eleID = getElementData(elevator, "dbid") if eleID == elevatorID then local elevatorEntrance = getElementData(elevator, "entrance") local elevatorExit = getElementData(elevator, "exit") local elevatorStatus = getElementData(elevator, "status") return elevatorID, elevatorEntrance, elevatorExit, elevatorStatus, elevator end end end return 0 end function findElevatorElement(elevatorID) elevatorID = tonumber(elevatorID) if elevatorID > 0 then local possibleInteriors = getElementsByType("elevator") for _, elevator in ipairs(possibleInteriors) do local eleID = getElementData(elevator, "dbid") if eleID == elevatorID then return elevator end end end return false end function reloadOneElevator(elevatorID, skipcheck) local dbid, entrance, exit, status, elevatorElement = findElevator( elevatorID ) if (dbid > 0 or skipcheck)then local realElevatorElement = findElevatorElement(dbid) if not realElevatorElement then outputDebugString("[reloadOneElevator] Can't find element") end triggerClientEvent("deleteInteriorElement", realElevatorElement, tonumber(dbid)) destroyElement(realElevatorElement) loadOneElevator(tonumber(dbid), false) else --outputDebugString("You suckx2") outputDebugString("Tried to reload elevator without ID.") end end local loadedElevators = 0 local initializeSoFarDetector = 0 local stats_numberOfElevators = 0 local timerDelay = 0 function loadOneElevator(elevatorID, massLoad) local row = mysql:query_fetch_assoc("SELECT rot, tprot, id, x, y, z, tpx, tpy, tpz, dimensionwithin, interiorwithin, dimension, interior, car, disabled, oneway FROM `elevators` WHERE id = " .. elevatorID ) if row then if row then for k, v in pairs( row ) do if v == null then row[k] = nil else row[k] = tonumber(v) or v end end local elevatorElement = createElement("elevator", "ele"..tostring(row.id)) setElementDataEx(elevatorElement, "dbid", row.id, true) -- X Y Z Interior Dimension Angle Entree fee setElementDataEx(elevatorElement, "entrance", { row.x, row.y, row.z, row.interiorwithin, row.dimensionwithin, row.rot, 0 }, true ) setElementDataEx(elevatorElement, "exit", { row.tpx, row.tpy, row.tpz, row.interior, row.dimension, row.tprot, 0 }, true ) -- Type Is diabled? setElementDataEx(elevatorElement, "status", { row.car, row.disabled == 1 } , true ) setElementDataEx(elevatorElement, "name", row.name, true ) setElementDataEx(elevatorElement, "oneway", row.oneway == 1 or false, true) if massLoad then loadedElevators = loadedElevators + 1 local newInitializeSoFarDetector = math.ceil(loadedElevators/(stats_numberOfElevators/100)) if loadedElevators == 1 or loadedElevators == stats_numberOfElevators or initializeSoFarDetector ~= newInitializeSoFarDetector then triggerClientEvent("elevator:initializeSoFar", root, loadedElevators, stats_numberOfElevators) initializeSoFarDetector = newInitializeSoFarDetector end else triggerClientEvent("interior:schedulePickupLoading", getRootElement(), elevatorElement) end exports.pool:allocateElement(elevatorElement, tonumber(row.id), true) return true end end end function loadAllElevators(res) triggerClientEvent("interior:clearElevators", getRootElement()) local result = mysql:query("SELECT id FROM elevators") if (result) then while true do local row = mysql:fetch_assoc(result) if not row then break end timerDelay = timerDelay + 100 stats_numberOfElevators = stats_numberOfElevators + 1 setTimer(loadOneElevator, timerDelay, 1, row.id, true) end mysql:free_result(result) -- outputDebugString("[ELEVATOR] Spawning "..stats_numberOfElevators.." elevators will be finished in approx. "..math.ceil(timerDelay/1000).." seconds.") end end setTimer(loadAllElevators,timerLoadAllElevators, 1) --addEventHandler("onResourceStart", getResourceRootElement(), loadAllElevators) --[[function resumeCo() for _, value in ipairs(threads) do coroutine.resume(value) end end]] function isInteriorLocked(dimension) local result = mysql:query_fetch_assoc("SELECT type, locked FROM `interiors` WHERE id = " .. mysql:escape_string(dimension)) local locked = false if result then if tonumber(result["rype"]) ~= 2 and tonumber(result["locked"]) == 1 then locked = true end end return locked end --MAXIME'S NEW MELTHOD local elevatorTimer = {} function enterElevator(goingin) local pickup = source local player = client if getElementType(pickup) ~= "elevator" then return false end local elevatorStatus = getElementData(pickup, "status") if elevatorStatus[INTERIOR_TYPE] == 3 then outputChatBox("You try the door handle, but it seems to be locked.", player, 255, 0,0, true) return false end vehicle = getPedOccupiedVehicle( player ) if ( ( vehicle and elevatorStatus[INTERIOR_TYPE] ~= 0 and getVehicleOccupant( vehicle ) == player ) or not vehicle ) then if not vehicle and elevatorStatus[INTERIOR_TYPE] == 2 then outputChatBox( "This entrance is for vehicles only.", player, 255, 0, 0 ) return false end if elevatorStatus[INTERIOR_DISABLED] then outputChatBox( "This interior is currently disabled.", player, 255, 0, 0 ) return false end local currentCP = nil local otherCP = nil if goingin then currentCP = getElementData(pickup, "entrance") otherCP = getElementData(pickup, "exit") else currentCP = getElementData(pickup, "exit") otherCP = getElementData(pickup, "entrance") end local locked = false local movingInSameInt = false if currentCP[INTERIOR_DIM] == 0 and otherCP[INTERIOR_DIM] ~= 0 then -- entering a house locked = isInteriorLocked(otherCP[INTERIOR_DIM]) elseif currentCP[INTERIOR_DIM] ~= 0 and otherCP[INTERIOR_DIM] == 0 then -- leaving a house locked = isInteriorLocked(currentCP[INTERIOR_DIM]) elseif currentCP[INTERIOR_DIM] ~= 0 and otherCP[INTERIOR_DIM] ~= 0 and currentCP[INTERIOR_DIM] ~= otherCP[INTERIOR_DIM] then -- changing between two houses locked = isInteriorLocked(currentCP[INTERIOR_DIM]) or isInteriorLocked(otherCP[INTERIOR_DIM]) else -- Moving in the same dimension locked = false movingInSameInt = true end local oneway = getElementData(pickup, "oneway") if oneway then if goingin then outputChatBox("It seems as if this door can only be opened from the other side.", player, 255, 0,0, true) return false end end if locked then outputChatBox("You try the door handle, but it seems to be locked.", player, 255, 0,0, true) return false end local dbid, entrance, exit, interiorType, interiorElement = call( getResourceFromName( "interior-system" ), "findProperty", player, otherCP[INTERIOR_DIM] ) if dbid > 0 then else dbid, entrance, exit, interiorType, interiorElement = call( getResourceFromName( "interior-system" ), "findProperty", player, currentCP[INTERIOR_DIM] ) end if vehicle then setTimer(warpVehicleIntoInteriorfunction, 500, 1, vehicle, otherCP[INTERIOR_INT], otherCP[INTERIOR_DIM], 2, otherCP[INTERIOR_X],otherCP[INTERIOR_Y],otherCP[INTERIOR_Z],currentCP,otherCP, interiorElement,movingInSameInt) if interiorElement and isElement(interiorElement) and getElementType(interiorElement) == "interior" then exports.anticheat:changeProtectedElementDataEx(interiorElement, "lastused", exports.datetime:now(), true) mysql:query_free("UPDATE interiors SET lastused=NOW() WHERE id="..dbid) --Alright, it's time to give admins some clues of what just happened exports.logs:dbLog("SYSTEM", 31, { interiorElement, player, vehicle } , "ENTERED/EXITED") exports["interior-manager"]:addInteriorLogs(dbid, "ENTERED/EXITED", player) end elseif isElement(player) then if movingInSameInt then setElementPosition(player, otherCP[INTERIOR_X],otherCP[INTERIOR_Y],otherCP[INTERIOR_Z], true) else exports["interior-system"]:setPlayerInsideInterior(interiorElement, player, otherCP,movingInSameInt) end return true else outputChatBox("This elevator is locked.", player, 255, 0,0, true) return false end end --outputChatBox( "This elevator needs to be set mode using a remote.", player, 255, 0, 0 ) return false end addEvent("elevator:enter", true) addEventHandler("elevator:enter", getRootElement(), enterElevator) function warpVehicleIntoInteriorfunction(vehicle, interior, dimension, offset, x,y,z,pickup,other, interiorElement,movingInSameInt) if isElement(vehicle) then if elevatorTimer[vehicle] then return false end elevatorTimer[vehicle] = true setElementFrozen(vehicle, true) setElementVelocity(vehicle, 0, 0, 0) setVehicleTurnVelocity(vehicle, 0, 0, 0) local offset = getElementData(vehicle, "groundoffset") or 2 local rx, ry, rz = getVehicleRotation(vehicle) setVehicleRotation(vehicle, 0, 0, rz) setElementPosition(vehicle, x, y, z - 1 + offset) setElementInterior(vehicle, interior) setElementDimension(vehicle, dimension) setElementRotation(vehicle, 0, 0, getOposite(other[INTERIOR_ANGLE])) exports.anticheat:changeProtectedElementDataEx(vehicle, "health", getElementHealth(vehicle), false) for i = 0, getVehicleMaxPassengers( vehicle ) do local player = getVehicleOccupant( vehicle, i ) if player then --fadeToBlack(player) triggerClientEvent( player, "CantFallOffBike", player ) --exports["interior-system"]:setPlayerInsideInterior(interiorElement, player, other ) setElementDimension(player, dimension) setElementInterior(player, interior) setCameraInterior(player, interior) triggerClientEvent(player, "setPlayerInsideInterior", interiorElement, other, interiorElement) --fadeFromBlack(player) end end setTimer(function () setVehicleTurnVelocity(vehicle, 0, 0, 0) setElementHealth(vehicle, getElementData(vehicle, "health") or 1000) exports.anticheat:changeProtectedElementDataEx(vehicle, "health") setElementFrozen(vehicle, false) elevatorTimer[vehicle] = false end, 1000, 1) end end function fadeToBlack(player) fadeCamera ( player, true, 0, 0, 0, 0 ) fadeCamera ( player, false, 1, 0, 0, 0 ) end function fadeFromBlack(player) setTimer(fadeCamera, 2000, 1, player, true, 1, 0, 0, 0 ) end function deleteElevator(thePlayer, commandName, id) if (exports.integration:isPlayerTrialAdmin(thePlayer) or exports.integration:isPlayerSupporter(thePlayer) or exports.integration:isPlayerScripter(thePlayer)) or commandName == "PROPERTYCLEANUP" then if not (tonumber(id)) then outputChatBox("SYNTAX: /" .. commandName .. " [ID]", thePlayer, 255, 194, 14) else id = tonumber(id) local dbid, entrance, exit, status, elevatorElement = findElevator( id ) if elevatorElement then local query = mysql:query_free("DELETE FROM elevators WHERE id='" .. mysql:escape_string(dbid) .. "'") if query then reloadOneElevator(dbid) if commandName ~= "PROPERTYCLEANUP" then outputChatBox("Elevator #" .. id .. " Deleted!", thePlayer, 0, 255, 0) end else if commandName ~= "PROPERTYCLEANUP" then outputChatBox("ELE0015 Error, please report to a scripter.", thePlayer, 255, 0, 0) end end else if commandName ~= "PROPERTYCLEANUP" then outputChatBox("Elevator ID does not exist!", thePlayer, 255, 0, 0) end end end end end addCommandHandler("delelevator", deleteElevator, false, false) addCommandHandler("dele", deleteElevator, false, false) function getNearbyElevators(thePlayer, commandName) if (exports.integration:isPlayerTrialAdmin(thePlayer) or exports.integration:isPlayerSupporter(thePlayer) or exports.integration:isPlayerScripter(thePlayer)) then local posX, posY, posZ = getElementPosition(thePlayer) local dimension = getElementDimension(thePlayer) outputChatBox("Nearby Elevators:", thePlayer, 255, 126, 0) local found = false local possibleElevators = getElementsByType("elevator") for _, elevator in ipairs(possibleElevators) do local elevatorEntrance = getElementData(elevator, "entrance") local elevatorExit = getElementData(elevator, "exit") for _, point in ipairs( { elevatorEntrance, elevatorExit } ) do if (point[INTERIOR_DIM] == dimension) then local distance = getDistanceBetweenPoints3D(posX, posY, posZ, point[INTERIOR_X], point[INTERIOR_Y], point[INTERIOR_Z]) if (distance <= 11) then local dbid = getElementData(elevator, "dbid") if point == elevatorEntrance then outputChatBox(" ID " .. dbid ..", leading to dimension "..elevatorExit[INTERIOR_DIM], thePlayer, 255, 126, 0) else outputChatBox(" ID " .. dbid ..", leading to dimension "..elevatorEntrance[INTERIOR_DIM], thePlayer, 255, 126, 0) end found = true end end end end if not found then outputChatBox(" None.", thePlayer, 255, 126, 0) end end end addCommandHandler("nearbyelevators", getNearbyElevators, false, false) addCommandHandler("nearbye", getNearbyElevators, false, false) --TEMP FIX ELEVATOR FOR PLAYERS / MAXIME function fixNearbyElevator(thePlayer) local posX, posY, posZ = getElementPosition(thePlayer) local dimension = getElementDimension(thePlayer) outputChatBox("Fixing Nearby Elevators:", thePlayer, 255, 126, 0) local found = false local possibleElevators = getElementsByType("elevator") for _, elevator in ipairs(possibleElevators) do local elevatorEntrance = getElementData(elevator, "entrance") local elevatorExit = getElementData(elevator, "exit") elevator = elevator for _, point in ipairs( { elevatorEntrance, elevatorExit } ) do if (point[INTERIOR_DIM] == dimension) then local distance = getDistanceBetweenPoints3D(posX, posY, posZ, point[INTERIOR_X], point[INTERIOR_Y], point[INTERIOR_Z]) if (distance <= 11) then local dbid = getElementData(elevator, "dbid") if point == elevatorEntrance then reloadOneElevator(dbid) outputChatBox(" Fixed elevator ID " .. dbid ..", leading to int ID #"..elevatorExit[INTERIOR_DIM], thePlayer, 255, 126, 0) else reloadOneElevator(dbid) outputChatBox(" Fixed elevator ID " .. dbid ..", leading to intID #"..elevatorEntrance[INTERIOR_DIM], thePlayer, 255, 126, 0) end found = true end end end end if not found then outputChatBox(" There is no elevators around here, please get an admin to create a new one.", thePlayer, 255, 126, 0) end end addCommandHandler("fixnearbyelevators", fixNearbyElevator, false, false) addCommandHandler("fixnearbye", fixNearbyElevator, false, false) function delNearbyElevators(thePlayer, commandName) if (exports.integration:isPlayerTrialAdmin(thePlayer) or exports.integration:isPlayerSupporter(thePlayer)) then local posX, posY, posZ = getElementPosition(thePlayer) local dimension = getElementDimension(thePlayer) outputChatBox("Deleting Nearby Elevators:", thePlayer, 255, 126, 0) local found = false local possibleElevators = getElementsByType("elevator") for _, elevator in ipairs(possibleElevators) do local elevatorEntrance = getElementData(elevator, "entrance") local elevatorExit = getElementData(elevator, "exit") for _, point in ipairs( { elevatorEntrance, elevatorExit } ) do if (point[INTERIOR_DIM] == dimension) then local distance = getDistanceBetweenPoints3D(posX, posY, posZ, point[INTERIOR_X], point[INTERIOR_Y], point[INTERIOR_Z]) if (distance <= 11) then local dbid = getElementData(elevator, "dbid") if point == elevatorEntrance then if deleteElevator(thePlayer, "dele", dbid) then outputChatBox(" Elevator ID #" .. dbid .." was deleted.", thePlayer, 255, 126, 0) end else if deleteElevator(thePlayer, "dele", dbid) then outputChatBox(" Elevator ID #" .. dbid .." was deleted.", thePlayer, 255, 126, 0) end end found = true end end end end if not found then outputChatBox(" None was deleted.", thePlayer, 255, 126, 0) end end end addCommandHandler("delnearbyelevators", delNearbyElevators, false, false) addCommandHandler("delnearbye", delNearbyElevators, false, false) function delElevatorsFromInterior(thePlayer, commandName, intID) if (exports.integration:isPlayerTrialAdmin(thePlayer)) or commandName == "PROPERTYCLEANUP" then if (not tonumber(intID) or tonumber(intID)%1~= 0 ) and commandName ~= "PROPERTYCLEANUP" then outputChatBox("SYNTAX: /" .. commandName .. " [ID]", thePlayer, 255, 194, 14) outputChatBox("Deletes all elevators within an interior, Int 0 = World map.", thePlayer, 220, 170, 0) else if tonumber(intID) == 0 and not exports.integration:isPlayerSeniorAdmin(thePlayer) then outputChatBox("Only Head+ Admins can delete all elevators from world map.", thePlayer, 255,0,0) return false end if commandName ~= "PROPERTYCLEANUP" then outputChatBox("Deleting Elevators From Interior ID #"..intID..":", thePlayer, 255, 126, 0) end local found = false local query = exports.mysql:query( "SELECT `id` FROM `elevators` WHERE `dimensionwithin` = '" .. mysql:escape_string(intID).."' OR `dimension` = '" .. mysql:escape_string(intID).."'" ) if query then while true do local row = mysql:fetch_assoc(query) if not row then break end if deleteElevator(thePlayer, "PROPERTYCLEANUP", tonumber(row["id"])) then if commandName ~= "PROPERTYCLEANUP" then outputChatBox(" Elevator ID #" .. tonumber(row["id"]) .." was deleted.", thePlayer, 255, 126, 0) found = true end end end mysql:free_result(query) end if not found and commandName ~= "PROPERTYCLEANUP" then outputChatBox(" None was deleted.", thePlayer, 255, 126, 0) end end end end addCommandHandler("delefromint", delElevatorsFromInterior, false, false) addCommandHandler("delelevatorsfrominterior", delElevatorsFromInterior, false, false) addEvent( "toggleCarTeleportMode", false ) addEventHandler( "toggleCarTeleportMode", getRootElement(), function( player ) local elevatorStatus = getElementData(source, "status") local mode = ( elevatorStatus[INTERIOR_TYPE] + 1 ) % 4 local query = mysql:query_free("UPDATE elevators SET car = " .. mysql:escape_string(mode) .. " WHERE id = " .. mysql:escape_string(getElementData( source, "dbid" )) ) if query then elevatorStatus[INTERIOR_TYPE] = mode exports.anticheat:changeProtectedElementDataEx( source, "status", elevatorStatus, false ) if mode == 0 then outputChatBox( "You changed the mode to 'players only'.", player, 0, 255, 0 ) elseif mode == 1 then outputChatBox( "You changed the mode to 'players and vehicles'.", player, 0, 255, 0 ) elseif mode == 2 then outputChatBox( "You changed the mode to 'vehicles only'.", player, 0, 255, 0 ) else outputChatBox( "You changed the mode to 'no entrance'.", player, 0, 255, 0 ) end else outputChatBox( "Error 9019 - Report on Forums.", player, 255, 0, 0 ) end end ) function toggleElevator( thePlayer, commandName, id ) if exports.integration:isPlayerTrialAdmin( thePlayer ) or exports.integration:isPlayerSupporter(thePlayer) then id = tonumber( id ) if not id then outputChatBox( "SYNTAX: /" .. commandName .. " [ID]", thePlayer, 255, 194, 14 ) else local dbid, entrance, exit, status, elevatorElement = findElevator( id ) if elevatorElement then if status[INTERIOR_DISABLED] then mysql:query_free("UPDATE elevators SET disabled = 0 WHERE id = " .. mysql:escape_string(dbid) ) else mysql:query_free("UPDATE elevators SET disabled = 1 WHERE id = " .. mysql:escape_string(dbid) ) end reloadOneElevator(dbid) else outputChatBox( "Elevator not found.", thePlayer, 255, 194, 14 ) end end end end addCommandHandler( "toggleelevator", toggleElevator ) addCommandHandler( "togglee", toggleElevator ) c_elevator_system.lua addEventHandler( "onClientPlayerVehicleEnter", getLocalPlayer(), function( vehicle ) setElementData( vehicle, "groundoffset", 0.2 + getElementDistanceFromCentreOfMassToBaseOfModel( vehicle ) ) end ) addEvent( "CantFallOffBike", true ) addEventHandler( "CantFallOffBike", getLocalPlayer(), function( ) --outputDebugString("setPedCanBeKnockedOffBike") setPedCanBeKnockedOffBike( getLocalPlayer(), false ) setTimer( setPedCanBeKnockedOffBike, 5000, 1, getLocalPlayer(), true ) end )
  12. WRIST

    [HELP]BANS

    Hi all ! Can anyone help me with a problem please!?! It doesn't work to give / sban / pban / skick! show me the error in debugscript 3 below! how can i solve ?! https://imgur.com/ySzNMpZ ban_s.lua function offlineBanAPlayer(thePlayer, commandName, targetUsername, hours, ...) if exports.integration:isPlayerTrialAdmin(thePlayer) then if not (targetUsername) or not (hours) or not tonumber(hours) or (tonumber(hours)<0) or not (...) then outputChatBox("SYNTAX: /" .. commandName .. " [Player Username] [Time in Hours, 0 = Infinite] [Reason]", thePlayer, 255, 194, 14) else hours = tonumber(hours) or 0 if (hours>168) then outputChatBox("You cannot ban for more than 7 days (168 Hours).", thePlayer, 255, 194, 14) return false end mysql/connection.lua Error 101 on starting in if (mysql_ping(forumConnection) == false) then function forumPing() if (mysql_ping(forumConnection) == false) then -- FUU, NO MOAR CONNECTION destroyForumConnection() openForumDatabase(nil) if (mysql_ping(forumConnection) == false) then logForumSQLError() return false end return true end return true end HELP ME POR FAVOR !
  13. Hi all ! I also have a problem with debugscript 3 on the server and it's hosted! why does this error occur to me continuously? please help me I'm a Beginner-Medium! ERROR: Server triggered clientside event syncFuel, but event is not added clientside ! Thank you in advance ! https://imgur.com/GBtIL9j
  14. hello everyone again, who can explain or help me to the carshop resource that I don't have npcs or cars but no error in the console ?! how can it be solved?
×
×
  • Create New...