Jump to content

DayZ help


Gabriele01

Recommended Posts

Posted

Hello guys again I have a idiot error in my server :))

Error:

[2016-12-28 18:53:03] ERROR: DayZ\login.lua:284: bad argument #1 to 'ipairs' (table expected, got nil)

 

Code : 


local spawnPositions = {
{-278.6669921875,-2882.1572265625,32.104232788086},
{-958.5595703125,-2887.9912109375,64.82421875},
{-1816.9375,-2748.18359375,1.7327127456665},
{-2816.166015625,-2439.0546875,2.4004096984863},
{-2941.5673828125,-1206.2373046875,2.7848854064941},
{-2911.51171875,-895.22265625,2.4013109207153},
{-2185.6669921875,2957.380859375,11.474840164185},
{272.2265625,2928.505859375,1.3713493347168},
{2803.943359375,595.9365234375,7.7612648010254},
{2883.7509765625,-178.4658203125,3.2714653015137},
{-233.46484375,-1735.8173828125,1.5520644187927},
{-1056.8720703125,2939.068359375,42.311294555664},
}

local playerDataTable = {
{"alivetime"},
{"skin"},
{"MAX_Slots"},
{"bandit"},
{"blood"},
{"food"},
{"thirst"},
{"temperature"},
{"currentweapon_1"},
{"currentweapon_2"},
{"currentweapon_3"},
{"bleeding"},
{"brokenbone"},
{"pain"},
{"cold"},
{"infection"},
{"humanity"},
{"zombieskilled"},
{"headshots"},
{"murders"},
{"banditskilled"},
{"Wood Pile"},
{"Bandage"},
{"Water Bottle"},
{"Pasta Can"},
{"Beans Can"},
{"Burger"},
{"Box of Matches"},
{"M1911 Mag"},
{"M9 SD Mag"},
{"Desert Eagle Mag"},
{"M1911"},
{"M9 SD"},
{"Winchester 1866"},
{"PDW"},
{"Hunting Knife"},
{"Hatchet"},
{"Pizza"},
{"Morphine"},
{"Soda Bottle"},
{"Empty Gas Canister"},
{"Full Gas Canister"},
{"Roadflare"},
{"Milk"},
{"PDW Mag"},
{"MP5A5 Mag"},
{"AK Mag"},
{"M4 Mag"},
{"Tear Gas"},
{"Grenade"},
{"Desert Eagle"},
{"Sawn-Off Shotgun"},
{"SPAZ-12 Combat Shotgun"},
{"MP5A5"},
{"Watch"},
{"Medic Kit"},
{"Heat Pack"},
{"Lee Enfield"},
{"PDW"},
--{"TEC-9"},
{"AK-47"},
--{"M136 Rocket Launcher"},
{"Blood Bag"},
{"GPS"},
{"Map"},
{"Toolbox"},
{"Wire Fence"},
{"Tire"},
{"Engine"},
{"Tank Parts"},
{"M136 Rocket"},
{"CZ 550 Mag"},
{"Lee Enfield Mag"},
{"M4"},
{"CZ 550"},
--{"Heat-Seeking RPG"},
{"Satchel"},
{"Infrared Goggles"},
{"Night Vision Goggles"},
{"Tent"},
{"Raw Meat"},
{"Cooked Meat"},
{"Camouflage Clothing"},
{"Ghillie Suit"},
{"Civilian Clothing"},
{"Survivor Clothing"},
{"Painkiller"},
{"Binoculars"},
{"Empty Water Bottle"},
{"Empty Soda Cans"},
{"Scruffy Burgers"},
{"1866 Slug"},
{"2Rnd. Slug"},
{"SPAZ-12 Pellet"},
{"Radio Device"},
{"Baseball Bat"},
{"Shovel"},
{"Golf Club"},
{"Radio Device"},
{"Parachute"},
}


function playerLogin(username, pass, player)
    local playerID = getAccountData(getPlayerAccount(player),"playerID")
    account = getPlayerAccount(player)
    local x,y,z =  getAccountData(account,"last_x"),getAccountData(account,"last_y"),getAccountData(account,"last_z")
    local skin = getAccountData(account,"skin")
    createZombieTable (player)
    if getAccountData(account,"isDead") then
        spawnDayZPlayer(player)
        return
    end
    spawnPlayer (player, x,y,z+0.5, math.random(0,360), skin, 0, 0)
    setElementFrozen(player, true)
    fadeCamera (player, true)
    setCameraTarget (player, player)
    setTimer( function(player)
        if isElement(player) then
            setElementFrozen(player, false)
        end
    end,500,1,player)
    playerCol = createColSphere(x,y,z,1.5)
    setElementData(player,"playerCol",playerCol)
    attachElements ( playerCol, player, 0, 0, 0 )
    setElementData(playerCol,"parent",player)
    setElementData(playerCol,"player",true)
    for i, v in ipairs ( clothSlots ) do
        local elementData = getAccountData(account,v)
        setElementData(player,v,elementData)
        if type(elementData) == "string" then
            local objData = clothesObjects[elementData]
            if objData then
                local helmet = createObject(objData[1], x, y, z)
                setElementData ( source, v.."Object", helmet )
                attachElementToBone(helmet, source, objData[2], objData[3], objData[4], objData[5], objData[6], objData[7], objData[8])
            end
        end
    end
    for i,data in ipairs(playerDataTable) do
        local elementData = getAccountData(account,data[1])
        if not elementData then
            if data[1] == "brokenbone" or data[1] == "pain" or data[1] == "cold" or data[1] == "infection" or data[1] == "currentweapon_1" or data[1] == "currentweapon_2" or data[1] == "currentweapon_3" or data[1] == "bandit" then
                elementData = elementData
            else
                elementData = 0
            end
        end
        setElementData(player,data[1],elementData)
    end
    setElementData(player,"logedin",true)
    --Weapons
    --Old Weapons
    local weapon = getElementData(player,"currentweapon_1")
    if weapon then
        local ammoData,weapID = getWeaponAmmoType (weapon)
        giveWeapon(player,weapID,getElementData(player,ammoData), true )
    end
    local weapon = getElementData(player,"currentweapon_2")
    if weapon then
        local ammoData,weapID = getWeaponAmmoType (weapon)
        giveWeapon(player,weapID,getElementData(player,ammoData), false )
    end
    local weapon = getElementData(player,"currentweapon_3")
    if weapon then
        local ammoData,weapID = getWeaponAmmoType (weapon)
        giveWeapon(player,weapID,getElementData(player,ammoData), false )
    end
    setElementModel(player, getElementData(player,"skin"))

    setElementData(player,"admin",getAccountData(account,"admin") or false)
    setElementData(player,"supporter",getAccountData(account,"supporter") or false)
    triggerClientEvent(player, "onClientPlayerDayZLogin", player)
    
end
addEvent("onPlayerDayZLogin", true)
addEventHandler("onPlayerDayZLogin", getRootElement(), playerLogin)


function playerRegister(username, pass, player)
    local number = math.random(table.size(spawnPositions))
    local x,y,z = spawnPositions[number][1],spawnPositions[number][2],spawnPositions[number][3]
    spawnPlayer (player, x,y,z, math.random(0,360), 281, 0, 0)
    fadeCamera (player, true)
    setCameraTarget (player, player)
    playerCol = createColSphere(x,y,z,1.5)
    attachElements ( playerCol, player, 0, 0, 0 )
    setElementData(playerCol,"parent",player)
    setElementData(playerCol,"player",true)
    ----------------------------------
    --Player Items on Start
    for i,data in ipairs(playerDataTable) do
        if data[1] =="Bandaj" then
            setElementData(player,data[1],2)
        elseif data[1] =="Ağrı Kesici" then
            setElementData(player,data[1],1)
        elseif data[1] =="MAX_Slots" then
            setElementData(player,data[1],8)
        elseif data[1] =="skin" then
            setElementData(player,data[1],281)
        elseif data[1] =="blood" then
            setElementData(player,data[1],12000)
        elseif data[1] =="temperature" then
            setElementData(player,data[1],37)
        elseif data[1] =="brokenbone" then
            setElementData(player,data[1],false)    
        elseif data[1] =="pain" then
            setElementData(player,data[1],false)
        elseif data[1] =="cold" then
            setElementData(player,data[1],false)
        elseif data[1] =="infection" then
            setElementData(player,data[1],false)
        elseif data[1] =="food" then
            setElementData(player,data[1],100)          
        elseif data[1] =="thirst" then
            setElementData(player,data[1],100)
        elseif data[1] =="currentweapon_1" then
            setElementData(player,data[1],false)
        elseif data[1] =="currentweapon_2" then
            setElementData(player,data[1],false)    
        elseif data[1] =="currentweapon_3" then
            setElementData(player,data[1],false)    
        elseif data[1] =="bandit" then
            setElementData(player,data[1],false)    
        elseif data[1] =="humanity" then
            setElementData(player,data[1],2500)     
        else
            setElementData(player,data[1],0)
        end 
    end
    account = getAccount(username)
    local value = getAccounts()
    local value = #value
    setElementData(player,"playerID",value+1)
    setAccountData(account,"playerID",value+1)
    setElementData(player,"logedin",true)
    createZombieTable (player)
end
addEvent("onPlayerDayZRegister", true)
addEventHandler("onPlayerDayZRegister", getRootElement(), playerRegister)

function saveAccounts () -- Save in the database
    local account = getPlayerAccount(source)
    if account then
        for i,data in ipairs(playerDataTable) do
            setAccountData(account,data[1],getElementData(source,data[1]))
        end
        for i, v in ipairs ( clothSlots ) do
            setAccountData(account,v,getElementData(source,v))
        end
        local x,y,z =  getElementPosition(source)
        setAccountData(account,"last_x",x)
        setAccountData(account,"last_y",y)
        setAccountData(account,"last_z",z)
        destroyElement(getElementData(source,"playerCol"))
    end 
    setElementData(source,"logedin",false)
end
addEventHandler ( "onPlayerQuit", getRootElement(), saveAccounts )

function saveAccounts2 () -- Save in the database
for i, player in ipairs(getElementsByType("player")) do
    local account = getPlayerAccount(player)
    if account then
        for i,data in ipairs(playerDataTable) do
            setAccountData(account,data[1],getElementData(player,data[1]))
        end
        for i, v in ipairs ( clothSlots ) do
            setAccountData(account,v,getElementData(source,v))
        end
        local x,y,z =  getElementPosition(player)
        setAccountData(account,"last_x",x)
        setAccountData(account,"last_y",y)
        setAccountData(account,"last_z",z)
    end 
    --setElementData(player,"logedin",false)
end 
end
addEventHandler ( "onResourceStop", getRootElement(), saveAccounts2 )

--------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------
local vehicleDataTable = {
{"MAX_Slots"},
{"Tire_inVehicle"},
{"Engine_inVehicle"},
{"Parts_inVehicle"},
{"fuel"},
{"Wood Pile"},
{"Bandage"},
{"Water Bottle"},
{"Pasta Can"},
{"Beans Can"},
{"Burger"},
{"Box of Matches"},
{"M1911 Mag"},
{"M1911"},
{"M9 SD"},
{"Desert Eagle Mag"},
{"Winchester 1866"},
{"PDW"},
{"Hunting Knife"},
{"Morphine"},
{"Hatchet"},
{"Pizza"},
{"Soda Bottle"},
{"Empty Gas Canister"},
{"Full Gas Canister"},
{"Roadflare"},
{"Milk"},
{"PDW Mag"},
{"MP5A5 Mag"},
{"AK Mag"},
{"M4 Mag"},
{"Tear Gas"},
{"Grenade"},
{"Desert Eagle"},
{"Sawn-Off Shotgun"},
{"SPAZ-12 Combat Shotgun"},
{"MP5A5"},
{"Watch"},
{"Medic Kit"},
{"Heat Pack"},
{"Lee Enfield"},
--{"TEC-9"},
{"AK-47"},
--{"M136 Rocket Launcher"},
{"Blood Bag"},
{"GPS"},
{"Map"},
{"Toolbox"},
{"Wire Fence"},
{"Tire"},
{"Engine"},
{"Tank Parts"},
{"M136 Rocket"},
{"CZ 550 Mag"},
{"Lee Enfield Mag"},
{"M4"},
{"CZ 550"},
--{"Heat-Seeking RPG"},
{"Satchel"},
{"Infrared Goggles"},
{"Night Vision Goggles"},
{"Tent"},
{"Raw Meat"},
{"Cooked Meat"},
{"Camouflage Clothing"},
{"Ghillie Suit"},
{"Civilian Clothing"},
{"Survivor Clothing"},
{"Painkiller"},
{"Binoculars"},
{"Empty Water Bottle"},
{"Empty Soda Cans"},
{"Scruffy Burgers"},
{"1866 Slug"},
{"2Rnd. Slug"},
{"SPAZ-12 Pellet"},
{"Assault Pack (ACU)"},
{"Alice Pack"},
{"Czech Backpack"},
{"Coyote Backpack"},
{"Radio Device"},
{"Baseball Bat"},
{"Shovel"},
{"Golf Club"},
{"Parachute"},
}
--local vehicleManager = getAccount("vehicleManager","ds4f9$")
    --if not vehicleManager then
    --addAccount("vehicleManager","ds4f9$")
    --end

function saveallvehicles(ps,command)
    counter = 0
    counterTent = 0
    --counterSafe = 0
    local vehicleManager = getAccount("vehicleManager","Lfybkxbybxrby112")
    --local vehicleManager = getAccount("vehicleManager")
    for i, col in ipairs (getElementsByType("colshape")) do
        local veh = getElementData(col,"vehicle")
        local helicrash = getElementData(col,"helicrash")
        local hospitalbox = getElementData(col,"hospitalbox")
        --local ammobox = getElementData(col,"ammobox")
        local tent = getElementData(col,"tent")
    --  local safe = getElementData ( col,"safe")
        if veh and not helicrash or veh and not hospitalbox then
            if tent then
                counterTent = counterTent +1
                account = getAccount("tent_number_"..counterTent,"Lfybkxbybxrby112") or false
                if not account then
                    account = addAccount("tent_number_"..counterTent,"Lfybkxbybxrby112")
                end 
                local tent = getElementData(col,"parent")
                local x,y,z = getElementPosition(tent)
                local rx,ry,rz = getElementRotation(tent)
                setAccountData(account,"last_x",x)
                setAccountData(account,"last_y",y)
                setAccountData(account,"last_z",z)
                setAccountData(account,"last_rx",rx)
                setAccountData(account,"last_ry",ry)
                setAccountData(account,"last_rz",rz)
                for i, data in ipairs(vehicleDataTable) do 
                    setAccountData(account,data[1],getElementData(col,data[1]))
                end
            else 
                counter = counter +1
                account = getAccount("vehicle_number_"..counter,"ds4f9$") or false
                if not account then
                    account = addAccount("vehicle_number_"..counter,"ds4f9$")
                end 
                setAccountData(account,"spawn_x",getElementData(col,"spawn")[2])
                setAccountData(account,"spawn_y",getElementData(col,"spawn")[3])
                setAccountData(account,"spawn_z",getElementData(col,"spawn")[4])
                for i, data in ipairs(vehicleDataTable) do 
                    setAccountData(account,data[1],getElementData(col,data[1]))
                end
                local vehicle = getElementData(col,"parent")
                local model = getElementModel(vehicle)
                local x,y,z = getElementPosition(vehicle)
                local rx,ry,rz = getElementRotation(vehicle)
                local health = getElementHealth(vehicle)
                setAccountData(account,"last_x",x)
                setAccountData(account,"last_y",y)
                setAccountData(account,"last_z",z)
                setAccountData(account,"last_rx",rx)
                setAccountData(account,"last_ry",ry)
                setAccountData(account,"last_rz",rz)
                setAccountData(account,"health",health)
                setAccountData(account,"model",model)
                setAccountData(account,"isExploded",getElementData(vehicle,"isExploded") or false)
            end
        end
    end
        setAccountData(vehicleManager,"vehicleamount",counter)
        setAccountData(vehicleManager,"tentamount",counterTent)
end
addEventHandler("onResourceStop", getResourceRootElement(getThisResource()), saveallvehicles)

function doBackup ()
    --outputChatBox ("Резервное копирование сервера. Просим не выходить с сервера во Yaşam Süresi NETWORK.",getRootElement(),27, 89, 224,true)
    saveallvehicles()
    --outputChatBox ("Продолжайте!",getRootElement(),27, 89, 224,true)
end
function checkDoBackup ()
    if gameplayVariables["backupenabled"] then
        setTimer(doBackup,gameplayVariables["backupinterval"],0)
    end
end
checkDoBackup()

function createVehicleOnServerStart()
    local vehicleManager = getAccount("vehicleManager","ds4f9$")
    for i = 1, (getAccountData(vehicleManager,"vehicleamount") or 0) do
        wastedVehicle = false
        vehicle = getAccount("vehicle_number_"..i,"ds4f9$")
        if not vehicle then break end
        if getAccountData(vehicle,"isExploded") == true then
            setAccountData(vehicle,"health",1000)
            wastedVehicle = true
        end
        local veh = createVehicle(getAccountData(vehicle,"model"),getAccountData(vehicle,"last_x"),getAccountData(vehicle,"last_y"),getAccountData(vehicle,"last_z"),getAccountData(vehicle,"last_rx"),getAccountData(vehicle,"last_ry"),getAccountData(vehicle,"last_rz"))
        vehCol = createColSphere(getAccountData(vehicle,"last_x"),getAccountData(vehicle,"last_y"),getAccountData(vehicle,"last_z"),4)
        attachElements ( vehCol, veh, 0, 0, 0 )
        setElementData(vehCol,"parent",veh)
        setElementData(veh,"parent",vehCol)
        setElementData(vehCol,"vehicle",true)
        setElementData(vehCol,"MAX_Slots",getAccountData(vehicle,"MAX_Slots"))
        xxx,yyy,zzz = getAccountData(vehicle,"spawn_x"),getAccountData(vehicle,"spawn_y"),getAccountData(vehicle,"spawn_z")
        setElementData(vehCol,"spawn",{getAccountData(vehicle,"model"),xxx,yyy,zzz})
        if wastedVehicle then
            if getAccountData(vehicle,"model") == 497 then
                item_id = math.random(table.size(hunterSpawns))
                xxx,yyy,zzz = hunterSpawns[item_id][1],hunterSpawns[item_id][2],hunterSpawns[item_id][3]
            end
            if getAccountData(vehicle,"model") == 487 then
                local item_id = math.random(table.size(maverikSpawns))
                x,y,z = maverikSpawns[item_id][1],maverikSpawns[item_id][2],maverikSpawns[item_id][3]
            end
            setElementPosition(veh,xxx,yyy,zzz+1)
            setElementRotation(veh,0,0,0)
            --Motor + Tekerlek + Yakıt Deposu
            local tires,engine,parts = getVehicleAddonInfos (getElementModel(veh))
            setElementData(vehCol,"Tekerlek_inVehicle",math.random(0,tires))
            setElementData(vehCol,"Motor_inVehicle",math.random(0,engine))
            setElementData(vehCol,"Parts_inVehicle",math.random(0,parts))
        end
        --others
        setElementData(vehCol,"fuel",getAccountData(vehicle,"fuel"))
        if not wastedVehicle then
            for i, data in ipairs(vehicleDataTable) do 
                setElementData(vehCol,data[1],getAccountData(vehicle,data[1]))
            end
        else
            if getElementModel(veh) == 433 or getElementModel(veh) == 470 then
                for i,items in ipairs(lootItems["helicrashsides"]) do
                    local randomNumber = math.random(1,10)
                    if randomNumber == 5 then
                        setElementData(vehCol,items[1],math.random(1,2))
                    end
                end
            end 
            setElementData(vehCol,"fuel",10)
        end
    end
    for i = 1, (getAccountData(vehicleManager,"tentamount") or 0) do
        tentData = getAccount("tent_number_"..i,"ds4f9$")
        if not tentData then break end
        tent = createObject(3243,getAccountData(tentData,"last_x"),getAccountData(tentData,"last_y"),getAccountData(tentData,"last_z"),0,0,(getAccountData(tentData,"last_rz") or 0))
        setObjectScale(tent,1.3)
        tentCol = createColSphere(getAccountData(tentData,"last_x"),getAccountData(tentData,"last_y"),getAccountData(tentData,"last_z"),4)
        attachElements ( tentCol, tent, 0, 0, 0 )
        setElementData(tentCol,"parent",tent)
        setElementData(tent,"parent",tentCol)
        setElementData(tentCol,"tent",true)
        setElementData(tentCol,"vehicle",true)
        setElementData(tentCol,"MAX_Slots",100)
        for i, data in ipairs(vehicleDataTable) do 
            setElementData(tentCol,data[1],getAccountData(tentData,data[1]))
        end
    end
end
addEventHandler("onResourceStart", getResourceRootElement(getThisResource()), createVehicleOnServerStart)

 

Posted

As far as I can see, there is no table for clothSlots, which means the for loop will cause an error. I don't know if it's relevant (probably is, or at least was), but as a temporary fix, you can just comment out that for loop.

Posted (edited)
1 minute ago, Gabriele01 said:

How to fix? @myonlake

Well, I don't have a fix for you. What I do have is a temporary solution to keep the script rolling.

        --[[for i, v in ipairs ( clothSlots ) do
            setAccountData(account,v,getElementData(source,v))
        end]]

Just comment out that part like so (and any other parts which use clothSlots).

Edited by myonlake

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...