Jump to content

Help me please


DzMG-LV

Recommended Posts

So i have problem, the trees spawn, everything is okey, but i can''t destroy them. No errors :(

client:

ae=addEvent 
aeh=addEventHandler 
tse=triggerServerEvent 
lp=localPlayer 
sendtick = getTickCount() 
  
local trees = {} 
local peds = {} 
local blips = {} 
  
  
addEvent("recTree",true) 
addEventHandler("recTree",localPlayer,function(tree) 
    table.insert(trees,tree) 
    if getElementData(localPlayer,"job") == 7 then 
        local x,y,z = getElementPosition(tree) 
        blips[tree] = createBlip(x,y,z,0) 
    end 
    --tse("desTree",lp,tree) 
end) 
  
addEvent("remTree",true) 
addEventHandler("remTree",lp,function(tree) 
    for k,v in pairs(trees) do if v == tree then table.remove(trees,k) destroyElement(blips[tree]) end end 
end) 
  
addEvent("treeFall",true) 
addEventHandler("treeFall",localPlayer,function( ... ) 
    local tree = createObject( ... ) 
    local x,y,z = getElementPosition(tree) 
    --[[setTimer(function() 
        local rx = getElementRotation(tree) 
        local x,y,z = getElementPosition(tree) 
  
        setElementPosition(tree,x,y,z-0.3) 
        setElementRotation(tree,rx-1,0,0) 
    end,50,111)--]] 
    setElementCollisionsEnabled(tree,false) 
    moveObject(tree,6000,x,y,z-10,0,90,90) 
    setTimer(function() 
        local x,y,z = getElementPosition(tree) 
        moveObject(tree,5000,x,y,z-5) 
        setTimer(destroyElement,5000,1,tree) 
        --if blips[tree] then destroyElement(blips[tree]) end 
    end,6000,1) 
end) 
  
addEventHandler("onClientPedDamage",root,function(atk,wep) 
    if getElementData(source,"l") and wep ~= 9 then cancelEvent() end 
end) 
  
  

server:

local treeE = {} 
local peds = {} 
local trees = {} 
local made = {} 
local treei={} 
local addX={ 
    [696]=0.5 
} 
local addY={ 
    [696]=0 
} 
  
  
addEventHandler("onPlayerWeaponSwitch",root,function(i) 
    if getElementData(source,"job") == 7 then 
        setTimer(function() if isElement(source) then giveWeapon(source,9,1,true) end end,500,1) 
    end 
end) 
  
local lumberRanks = { 
    {"Wood Collector",0}, 
    {"Seasonal Woodcutter",50}, 
    {"Constant Lumberjack",450}, 
    {"Forest Woodcutter",1000}, 
    {"Head Lumberjack",2000}, 
    {"Lumberjack at Charge",2500}, 
    {"Senior Woodcutter",3600}, 
    {"Lead Lumberjack",5000}, 
    {"Wooden King",7000}, 
} 
  
  
function pedWasted(killer) 
    if getElementData(killer,"job") == 7 then 
        exports.global:giveMoney(killer,400) 
    end 
    local deadCount=0 
    local tree = peds[source] 
    for k,v in pairs(peds) do 
        if v==tree then destroyElement(k) end 
    end 
    local x,y,z = getElementPosition(tree) 
    local model = getElementModel(tree) 
    made[treei[tree]]=false 
  
    triggerClientEvent("remTree", tree) 
    destroyElement(tree) 
    triggerClientEvent("treeFall", model, x,y,z) 
    makeTree(math.random(#trees)) 
end 
  
function circle(r,s,cx,cy) 
    xVals = {} 
    yVals = {} 
    for i=1,s-1 do 
        xVals[i] = (cx+r*math.cos(math.pi*i/s*2-math.pi/2)) 
        yVals[i] = (cy+r*math.sin(math.pi*i/s*2-math.pi/2)) 
    end 
end 
  
function makeTree(i) 
    if made[i] then return end 
    local x,y,z = unpack(trees[i]) 
    local model = 696 
    made[i]=true 
  
    x=x-3 
    local tree=createObject(model,x,y,z) 
    treei[tree]=i 
    local x,y,z = getElementPosition(tree) 
    x=x+addX[model] 
    y=y+addY[model] 
    circle(1.5,6,x,y) 
    for k,v in pairs(xVals) do 
        x,y=v,yVals[k] 
        local ped = createPed(0,x,y,z) 
        setElementAlpha(ped,0) 
        setElementFrozen(ped,true) 
        setElementData(ped,"l",true) 
        peds[ped]=tree 
        addEventHandler("onPedWasted", ped, pedWasted) 
    end 
    triggerClientEvent("recTree", tree) 
end 
addCommandHandler("mt",makeTree) 
  
addEvent("onServerPlayerLogin",true) 
addEventHandler("onServerPlayerLogin",root,function() 
    for k,v in pairs(treei) do 
        if isElement(k) then 
            triggerClientEvent(source, "recTree",source,k) 
        end 
    end 
end) 
  
function tc(nam, ... ) 
    for k,v in pairs(getElementsByType("player")) do 
        triggerClientEvent(v,nam,v, ... ) 
    end 
end 
  
--[[ 
addEvent("desTree",true) 
addEventHandler("desTree",root,function(e) destroyElement(e) end) 
--]] 
    --[[local file = xmlLoadFile("pos.xml") 
    if not file then file = xmlCreateFile("pos.xml",'positions') end 
  
    addCommandHandler('maptree', 
    function (pSource) 
    local x,y,z = getElementPosition(pSource) 
    local node = xmlCreateChild(file,'position') 
    xmlNodeSetAttribute(node,'x',x) 
    xmlNodeSetAttribute(node,'y',y) 
    xmlNodeSetAttribute(node,'z',z) 
    xmlSaveFile(file) 
    createMarker(x,y,z,"arrow",1) 
    end) 
--]] 
  
function loads() 
    local rootnode = xmlLoadFile("pos.xml") 
  
    for i,pos in ipairs(xmlNodeGetChildren(rootnode)) do 
        local x = xmlNodeGetAttribute(pos,"x") 
        local y = xmlNodeGetAttribute(pos,"y") 
        local z = xmlNodeGetAttribute(pos,"z") 
  
        trees[i]={x,y,z} 
    end 
  
    for i=1,40 do 
        makeTree(math.random(#trees)) 
    end 
end 
setTimer(function() 
loads() 
end,1000,1) 
  
  

Link to comment

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...