Jump to content

Blackhat1264

Members
  • Posts

    4
  • Joined

  • Last visited

Everything posted by Blackhat1264

  1. Sir i tried using cheat and i got permanent banned from mta before 2 years ago or something i think but i realised my mistake please accept my humble request , i wont do this mistake again really sorry from my heart , give me atleast one chance sir . my serial 8D7AF6B4A04F1E67DC637A2B0156F903
  2. VIP SYSTEM BUGGED when i type /am nothing open
  3. after /gsave command gate is not moving idk why
  4. script not working when i do /addgate 980 it wont give any error or didnot show anything and not add the gate too no panel appears and nothing happends.. it is c_setting... --- GATE SYSTEM BY DARHAL --- moveSpeed = 0.1 -- HOW MUCH GATE SHOULD MOVE WHEN CONTROLING IT angleSpeed = 1 -- THE ROTATION SPEED WHEN ROTATING THE GATE mvtValue = 7 -- THE DISTANCE THAT THE GATE MOVE WHEN SOMEONE IS NEARBY IT it is s_Setting.... --- GATE SYSTEM BY DARHAL --- --RESOURCE SETTINGS --HERE CHANGE THE RESOURCE NAME TO THE GROUPS SYSTEM THAT YOU USE local GROUPS_RESOURCE_NAME = "group-system" -- CHANGE THAT LINE TO YOUR GROUP SYSTEM NAME miniDistance = 4 -- MINI DISTANCE WHEN U WANT TO DELETE THE GATE function GPG(plr) if plr and getACC(plr) then return exports[GROUPS_RESOURCE_NAME]:getAccountGang(getACC(plr)) -- CHANGE THE FUNCTION 'getAccountGang' TO YOUR GROUP RESOURCE FUNCTION THAT RETURN THE PLAYER GROUP FOR EG: getPlayerGroup end end -- GATE MANAGERS LIST (ACCOUNT NAME) managers = { --[[YOU CAN ADD ANY ACCOUNT BY SIMPLY ADDING THIS LINE : "account name", To the list above--]] "shashankrajput", } -- ALLOWED OBJECTS THAT MANAGERS CAN USE TO PLACE GATE allowedModels = { 980 , 967 , 16773 , 10829 , 10832, 2990 , 2933 , 971 , 9042 , 8957, 3089, 2955 , 2947 , 2924 , 2911 , 1491 , 1504 , 1505 , 1507 , 1523 , 1557 , } this is gate... ----Gate System By Omar(aka.Darhal)---- ---- All Right Reserved --- local currentEditingGate local controling local label = {} local movingDoor = {} local movingDoorAccess = {} local accGrpColumn function centerWindow (center_window) local screenW, screenH = guiGetScreenSize() local windowW, windowH = guiGetSize(center_window, false) local x, y = (screenW - windowW) /2,(screenH - windowH) /2 guiSetPosition(center_window, x, y, false) end function placeGate(model) local x, y, z = getElementPosition(localPlayer) local rx, ry, rz = getElementRotation(localPlayer) currentEditingGate = createObject(model, x+1, y+1, z, rx, ry, rz) addEventHandler("onClientKey", root, onClientKey) addEventHandler("onClientRender", root, controlGate) guiSetVisible(gateWindow, true) guiGridListClear(accessToOpenGrid) showCursor(true) end addEvent("CUPgates.placeGate", true) addEventHandler("CUPgates.placeGate", root, placeGate) function saveGateData() if currentEditingGate then local groups = movingDoorAccess[currentEditingGate] local mvtType = movingDoor[currentEditingGate] local x, y, z = getElementPosition(currentEditingGate) local rx, ry, rz = getElementRotation(currentEditingGate) triggerServerEvent("CUPgates.sendGateData", localPlayer, groups, mvtType, {x, y, z}, {rx, ry, rz}, getElementModel(currentEditingGate)) movingDoorAccess[currentEditingGate] = nil movingDoor[currentEditingGate] = nil destroyElement(currentEditingGate) currentEditingGate = nil end end addCommandHandler("gsave", saveGateData) function getPositionFromElementOffset(element,offX,offY,offZ) local m = getElementMatrix ( element ) -- Get the matrix local x = offX * m[1][1] + offY * m[2][1] + offZ * m[3][1] + m[4][1] -- Apply transform local y = offX * m[1][2] + offY * m[2][2] + offZ * m[3][2] + m[4][2] local z = offX * m[1][3] + offY * m[2][3] + offZ * m[3][3] + m[4][3] return x, y, z -- Return the transformed point end function onClientKey(button, press) if press then pressedButton = button else pressedButton = nil end end addEventHandler("onClientResourceStart", resourceRoot, function() gateWindow = guiCreateWindow(288, 53, 260, 464, "CUP - Doors/Gates Management", false) centerWindow (gateWindow) guiWindowSetSizable(gateWindow, false) hideGUI(gateWindow) saveGateData = guiCreateButton(149, 428, 100, 26, "Save/Close", false, gateWindow) mvtLeft = guiCreateRadioButton(10, 47, 251, 18, "Move to left", false, gateWindow) mvtRight = guiCreateRadioButton(10, 71, 250, 18, "Move to right", false, gateWindow) mvtUp = guiCreateRadioButton(9, 95, 251, 18, "Move upside", false, gateWindow) mvtDown = guiCreateRadioButton(9, 123, 251, 18, "Move down", false, gateWindow) label[1] = guiCreateLabel(10, 26, 268, 15, "Possible gate/door moves :", false, gateWindow) label[2] = guiCreateLabel(15, 145, 263, 18, "Door/Gate access management :", false, gateWindow) accessToOpenGrid = guiCreateGridList(10, 180, 238, 189, false, gateWindow) accGrpColumn = guiGridListAddColumn(accessToOpenGrid, "Group", 0.9) accGrpEdit = guiCreateEdit(10, 393, 135, 26, "", false, gateWindow) addToAccessListBtn = guiCreateButton(149, 392, 94, 26, "Add", false, gateWindow) removeFromAccessListBtn = guiCreateButton(10, 428, 129, 26, "Remove", false, gateWindow) label[3] = guiCreateLabel(10, 374, 233, 18, "GROUP NAME:", false, gateWindow) addEventHandler("onClientGUIClick", saveGateData, closeDoorGUI, false) addEventHandler("onClientGUIClick", addToAccessListBtn, addToAccessList, false) addEventHandler("onClientGUIClick", removeFromAccessListBtn, removeFromAccessList, false) end ) function addToAccessList() local accountOrGroup = guiGetText(accGrpEdit) local givenAccessType = "Group" if accGrpEdit and accGrpEdit ~= "" then if not movingDoorAccess[currentEditingGate] then movingDoorAccess[currentEditingGate] = {} end for i, v in pairs(movingDoorAccess[currentEditingGate]) do if v.accGrp == accountOrGroup then exports.CUPtexts:output("This "..givenAccessType.." name ("..accountOrGroup..") already exsit in the list !", 255, 0, 0) return end end table.insert(movingDoorAccess[currentEditingGate], {accGrp=accountOrGroup}) updateDoorAccessGrid() end end function hideGUI(wnd) guiSetVisible(wnd, false) end function closeDoorGUI() local mvtType if guiRadioButtonGetSelected(mvtLeft) then mvtType = "mvtLeft" elseif guiRadioButtonGetSelected(mvtRight) then mvtType = "mvtRight" elseif guiRadioButtonGetSelected(mvtUp) then mvtType = "mvtUp" elseif guiRadioButtonGetSelected(mvtDown) then mvtType = "mvtDown" end local x, y, z = getElementPosition(currentEditingGate) local radius mvtValue = 7 movingDoor[currentEditingGate] = mvtType hideGUI(gateWindow) showCursor(false) end function updateDoorAccessGrid() if movingDoorAccess[currentEditingGate] then guiGridListClear(accessToOpenGrid) for i, v in pairs(movingDoorAccess[currentEditingGate]) do local row = guiGridListAddRow ( accessToOpenGrid ) guiGridListSetItemText ( accessToOpenGrid, row, accGrpColumn, v.accGrp, false, false) end end end function removeFromAccessList(button) if button ~= "left" then return end local row = guiGridListGetSelectedItem(accessToOpenGrid) if (not row or row == -1) then return end local accGrp = guiGridListGetItemText(accessToOpenGrid, row, accGrpColumn) for i, v in pairs(movingDoorAccess[currentEditingGate]) do if v.accGrp == accGrp then table.remove(movingDoorAccess[currentEditingGate], i) updateDoorAccessGrid() return end end end function getGateCorrectMVT(mvtType, id, door) local nx, ny, nz if mvtType == "mvtRight" then nx, ny, nz = getPositionFromElementOffset(door,0-mvtValue,0,0) elseif mvtType == "mvtLeft" then nx, ny, nz = getPositionFromElementOffset(door,mvtValue,0,0) elseif mvtType == "mvtUp" then nx, ny, nz = getPositionFromElementOffset(door,0, 0, 0-mvtValue) elseif mvtType == "mvtDown" then nx, ny, nz = getPositionFromElementOffset(door,0,0,mvtValue) end moveObject(door, 1000, nx, ny, nz) end addEvent("CUPgates.moveGate", true) addEventHandler("CUPgates.moveGate", root, getGateCorrectMVT) function getGateCorrectMVT(pos, id, door) local nx, ny, nz = pos[1], pos[2], pos[3] moveObject(door, 1000, nx, ny, nz) setTimer(setElementData, 1000, 1, door, "gateIsMoving", false) end addEvent("CUPgates.moveGateBack", true) addEventHandler("CUPgates.moveGateBack", root, getGateCorrectMVT) function controlGate() for k, v in ipairs(getElementsByType("gui-window", resourceRoot)) do if (guiGetVisible(v)) then return end end if isChatBoxInputActive () or not isElement(currentEditingGate) then return end local camera = getCamera () if not currentEditingGate or not (camera) then return end local cameraX,cameraY,cameraZ = getElementPosition(camera) local objectX,objectY,objectZ = getElementPosition(currentEditingGate) local x,y,z if pressedButton == "num_8" then x,y,z = getPositionFromElementOffset(camera,0,moveSpeed,0) controling = true cameraZ = z elseif pressedButton == "num_2" then x,y,z = getPositionFromElementOffset(camera,0,0-moveSpeed,0) controling = true cameraZ = z elseif pressedButton == "num_6" then x,y,z = getPositionFromElementOffset(camera,moveSpeed,0,0) controling = true cameraZ = z elseif pressedButton == "num_4" then x,y,z = getPositionFromElementOffset(camera,0-moveSpeed,0,0) controling = true cameraZ = z elseif pressedButton == "pgup" then x,y,z = getPositionFromElementOffset(camera,0,0, moveSpeed) controling = true elseif pressedButton == "pgdn" then x,y,z = getPositionFromElementOffset(camera,0,0, 0-moveSpeed) controling = true elseif pressedButton == "num_add" then rx, ry, rz = getElementRotation(currentEditingGate) setElementRotation(currentEditingGate, rx, ry, rz+angleSpeed) controling = true elseif pressedButton == "num_sub" then rx, ry, rz = getElementRotation(currentEditingGate) setElementRotation(currentEditingGate, rx, ry, rz-angleSpeed) controling = true elseif pressedButton == "num_7" then rx, ry, rz = getElementRotation(currentEditingGate) setElementRotation(currentEditingGate, rx+angleSpeed, ry, rz) controling = true elseif pressedButton == "num_9" then rx, ry, rz = getElementRotation(currentEditingGate) setElementRotation(currentEditingGate, rx-angleSpeed, ry, rz) controling = true elseif pressedButton == "num_1" then rx, ry, rz = getElementRotation(currentEditingGate) setElementRotation(currentEditingGate, rx, ry+angleSpeed, rz) controling = true elseif pressedButton == "num_3" then rx, ry, rz = getElementRotation(currentEditingGate) setElementRotation(currentEditingGate, rx, ry-angleSpeed, rz) controling = true else controling = false end if x then setElementPosition(currentEditingGate, objectX+(x-cameraX),objectY+(y-cameraY),objectZ+(z-cameraZ)) end end this is s_gate... ----Gate System By Omar(aka.Darhal)---- ---- All Right Reserved --- --RESOURCE VARRIABLES local gates = {} local lastGatePos = {} -----SQL FUNCTIONS----- local DB_LOCATION = ":/gates.db" -- The location where the database file is stored default is ":/gates.db" (<MTA installation>/server/mods/deathmatch/databases/global) Just copy gates.db to there and it will work fine dbc = dbConnect("sqlite", DB_LOCATION) -- To use MySQL you'll only need to change just this line. dbExec(dbc, "CREATE TABLE IF NOT EXISTS gates (pos TEXT, rot TEXT, model INT, groups TEXT, mvt TEXT)") function onStop() dbExec(dbc, "DELETE FROM gates") for i, v in pairs(gates) do local x, y, z = v.pos[1], v.pos[2],v.pos[3] local rx, ry, rz = v.rot[1], v.rot[2],v.rot[3] local pos = x..", "..y..", "..z local rot = rx..", "..ry..", "..rz local groupsJSON = toJSON (v.groups) dbExec ( dbc, "INSERT INTO gates (pos, rot, model, groups, mvt) VALUES ( ?, ?, ?, ?, ?)", pos, rot, getElementModel(v.gate), groupsJSON, v.mvt) end end addEventHandler("onResourceStop", resourceRoot, onStop) function onStart() local mnew = dbQuery ( dbc, "SELECT * FROM gates") local mresult = dbPoll ( mnew, - 1 ) for i, v in pairs(mresult) do local x, y, z = unpack(split(v.pos, ",")) local rx, ry, rz = unpack(split(v.rot, ",")) local groups = fromJSON(v.groups) local cordTbl = {x, y, z} local rotTbl = {rx, ry, rz} createGate(cordTbl, rotTbl, groups, v.mvt, v.model) end end addEventHandler("onResourceStart", resourceRoot, onStart) --------CORE----------- ----------------------- -- MAIN SCRIPT -- function getACC(plr) if plr and isElement(plr) then return getAccountName(getPlayerAccount(plr)) or nil end end function reciveDataAndCreateGtae(groups, mvtType, pos, rot, model) createGate(pos, rot, groups,mvtType,model) end addEvent("CUPgates.sendGateData", true) addEventHandler("CUPgates.sendGateData", root, reciveDataAndCreateGtae) function createGate(cordTbl, rotTbl, groups, mvt, model) local gate = createObject(model, cordTbl[1], cordTbl[2], cordTbl[3], rotTbl[1], rotTbl[2], rotTbl[3]) local marker = createMarker (cordTbl[1], cordTbl[2], cordTbl[3] , "cylinder", 4.0, 0, 0, 0, 0) setElementData(gate, "gateIsMoving", false) table.insert(gates, {gate=gate, marker=marker, pos=cordTbl, rot=rotTbl, groups=groups, mvt=mvt}) addEventHandler("onMarkerHit", marker, openGate) addEventHandler("onMarkerLeave", marker, closeGate) end function closeGate(plr, sdim) if plr and getElementType(plr) == "player" and sdim then for i=1, #gates do if gates[i].marker == source and getElementData(gates[i].gate, "gateIsMoving") then triggerClientEvent("CUPgates.moveGateBack", plr, lastGatePos[gates[i].gate], i, gates[i].gate) break end end end end function openGate(plr, sdim) if plr and getElementType(plr) == "player" and sdim then for i=1, #gates do if gates[i].marker == source and not getElementData(gates[i].gate, "gateIsMoving") then for k, group in pairs( gates[i].groups) do if group.accGrp == GPG(plr) then setElementData(gates[i].gate, "gateIsMoving", true) local x, y, z = getElementPosition(gates[i].gate) lastGatePos[gates[i].gate] = {x, y, z} triggerClientEvent("CUPgates.moveGate", plr, gates[i].mvt, i, gates[i].gate) break end end break end end end end function toggleGateDelete(plr, cmd) if plr then local access = false for i=1, #managers do if managers[i] == getACC(plr) then access = true --triggerClientEvent(plr, "CUPgates.placeGate", plr) end end if access then for i, v in pairs(gates) do local gx, gy, gz = getElementPosition(v.gate) local x, y, z = getElementPosition(plr) if getDistanceBetweenPoints3D ( gx, gy, gz, x, y, z ) < miniDistance then destroyElement(v.gate) destroyElement(v.marker) table.remove(gates, i) break end end end end end addCommandHandler("delgate", toggleGateDelete) function toggleGateCreation(plr, cmd, model) if plr then local access = false for i=1, #managers do if managers[i] == getACC(plr) then access = true --triggerClientEvent(plr, "CUPgates.placeGate", plr) end end if access then bool = false for i=1, #allowedModels do if allowedModels[i] == tonumber(model) then bool = true end end if bool then triggerClientEvent(plr, "CUPgates.placeGate", plr, tonumber(model)) else outputChatBox("Invalid Gate ID ! ", plr, 255, 0, 0) end end end end addCommandHandler("addgate", toggleGateCreation)
×
×
  • Create New...