• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

TFS 1.X+ Missing name for a globalevent

MaR0

Banned User
Joined
Apr 16, 2018
Messages
272
Solutions
3
Reaction score
29
Hello i'm trying to add this script to my server it's globalevent with think type "lottery system"
while i try to launch my server this error comes.. i'm using tfs 1.2 ninja sources 8.00
Code:
[Error - GlobalEvent::configureEvent] Missing name for a globalevent
[Warning - BaseEvents::loadFromXml] Failed to configure event
here is the script
Lua:
local rewards = {
   {itemid = 2160, count = 100},
    {itemid = 24774, count = 5}
}

function onThink(interval, lastExecution)
    local players = Game.getPlayers()
    if #players > 0 then
        while true do
            local player = players[math.random(#players)]
            if not player:hasAccess() and player:getAccountType() == ACCOUNT_TYPE_NORMAL then
                local reward = rewards[#rewards]
                local item = player:addItem(reward.itemid, math.random(reward.count))
                local itemName = item:getCount() > 1 and item:getPluralName() or item:getName()
                Game.broadcastMessage(('[LOTTERY] %s has won %d %s, next lottery in 30 minutes'):format(player:getName(), item:getCount(), itemName), MESSAGE_STATUS_CONSOLE_ORANGE)
                break
            end
        end
    end
    return true
end
XML:
   <globalevent type="think" interval="3500000" script="lottery.lua"/>
 
add a name to it in the xml file
type="think" name="something event"
Code:
[Error - GlobalEvent::configureEvent] No valid type "think" for globalevent with name thinking event
[Warning - BaseEvents::loadFromXml] Failed to configure event
Code:
<globalevent type="think" name="thinking event" interval="3500" name="lottery" script="lottery.lua"/>
 
if you have an interval it's already a think event
XML:
<globalevent interval="3500" name="lottery" script="lottery.lua"/>
 
if you have an interval it's already a think event
XML:
<globalevent interval="3500" name="lottery" script="lottery.lua"/>
Code:
Lua Script Error: [GlobalEvent Interface]
data/globalevents/scripts/lottery.lua:onThink
data/globalevents/scripts/lottery.lua:11: attempt to call method 'hasAccess' (a nil value)
stack traceback:
        [C]: in function 'hasAccess'
        data/globalevents/scripts/lottery.lua:11: in function <data/globalevents/scripts/lottery.lua:6>
[Error - GlobalEvents::think] Failed to execute event: lottery
 
change player:hasAccess() to player:getGroup():hasAccess()
same error here
Code:
Lua Script Error: [GlobalEvent Interface]
data/globalevents/scripts/lottery.lua:onThink
data/globalevents/scripts/lottery.lua:11: attempt to call method 'hasAccess' (a nil value)
stack traceback:
        [C]: in function 'hasAccess'
        data/globalevents/scripts/lottery.lua:11: in function <data/globalevents/scripts/lottery.lua:6>
[Error - GlobalEvents::think] Failed to execute event: lottery
 
swap hasAccess to getAccess
the client freezes then i take kick then while i try to connect this message come
Capture.png


and there's no errors
>> forgotten Server Online!
Player has logged in.
 
try this
Lua:
local rewards = {
    {itemid = 2160, count = 100},
    {itemid = 24774, count = 5}
}

function onThink(interval, lastExecution)
    local players = {}
    for _, player in ipairs(Game.getPlayers()) do
        if not player:getGroup():getAccess() and player:getAccountType() == ACCOUNT_TYPE_NORMAL then
            players[#players + 1] = player
        end
    end
    if #players > 0 then
        local player = players[math.random(#players)]
        local reward = rewards[#rewards]
        local item = player:addItem(reward.itemid, math.random(reward.count))
        local itemName = item:getCount() > 1 and item:getPluralName() or item:getName()
        Game.broadcastMessage(('[LOTTERY] %s has won %d %s, next lottery in 30 minutes'):format(player:getName(), item:getCount(), itemName), MESSAGE_STATUS_CONSOLE_ORANGE)
    else
        print("No player to give lottery reward to.")
    end
    return true
end
 
Last edited:
try this
Lua:
local rewards = {
    {itemid = 2160, count = 100},
    {itemid = 24774, count = 5}
}

function onThink(interval, lastExecution)
    local players = {}
    for _, player in ipairs(Game.getPlayers())
        if not player:getGroup():getAccess() and player:getAccountType() == ACCOUNT_TYPE_NORMAL then
            players[#players + 1] = player
        end
    end
    if #players > 0 then
        local player = players[math.random(#players)]
        local reward = rewards[#rewards]
        local item = player:addItem(reward.itemid, math.random(reward.count))
        local itemName = item:getCount() > 1 and item:getPluralName() or item:getName()
        Game.broadcastMessage(('[LOTTERY] %s has won %d %s, next lottery in 30 minutes'):format(player:getName(), item:getCount(), itemName), MESSAGE_STATUS_CONSOLE_ORANGE)
    else
        print("No player to give lottery reward to.")
    end
    return true
end
Code:
[Warning - Event::checkScript] Can not load script: scripts/lottery.lua
data/globalevents/scripts/lottery.lua:9: 'do' expected near 'if'
 
edited my last post
yes it worked but it's gives nothing for player
Code:
No player to give lottery reward to.
No player to give lottery reward to.
No player to give lottery reward to.
No player to give lottery reward to.
No player to give lottery reward to.
No player to give lottery reward to.
No player to give lottery reward to.
No player to give lottery reward to.
No player to give lottery reward to.
No player to give lottery reward to.
No player to give lottery reward to.
No player to give lottery reward to.
No player to give lottery reward to.
edit* i was using account with type 5
 
Last edited:
edit** when i open normal account this comes
Code:
Lua Script Error: [GlobalEvent Interface]
data/globalevents/scripts/lottery.lua:onThink
data/globalevents/scripts/lottery.lua:17: attempt to call method 'getCount' (a nil value)
stack traceback:
        [C]: in function 'getCount'
        data/globalevents/scripts/lottery.lua:17: in function <data/globalevents/scripts/lottery.lua:6>
[Error - GlobalEvents::think] Failed to execute event: lottery
 
put it inside of a bag incase the player cant hold it
Lua:
local rewards = {
    {itemid = 2160, count = 100},
    {itemid = 24774, count = 5}
}

function onThink(interval, lastExecution)
    local players = {}
    for _, player in ipairs(Game.getPlayers()) do
        if not player:getGroup():getAccess() and player:getAccountType() == ACCOUNT_TYPE_NORMAL then
            players[#players + 1] = player
        end
    end
    if #players > 0 then
        local player = players[math.random(#players)]
        local reward = rewards[#rewards]
        local bag = player:addItem(1987)
        local item = bag:addItem(reward.itemid, math.random(reward.count))
        local itemName = reward.count > 1 and item:getPluralName() or item:getName()
        Game.broadcastMessage(('[LOTTERY] %s has won %d %s, next lottery in 30 minutes'):format(player:getName(), item:getCount(), itemName), MESSAGE_STATUS_CONSOLE_ORANGE)
    else
        print("No player to give lottery reward to.")
    end
    return true
end
 
put it inside of a bag incase the player cant hold it
Lua:
local rewards = {
    {itemid = 2160, count = 100},
    {itemid = 24774, count = 5}
}

function onThink(interval, lastExecution)
    local players = {}
    for _, player in ipairs(Game.getPlayers()) do
        if not player:getGroup():getAccess() and player:getAccountType() == ACCOUNT_TYPE_NORMAL then
            players[#players + 1] = player
        end
    end
    if #players > 0 then
        local player = players[math.random(#players)]
        local reward = rewards[#rewards]
        local bag = player:addItem(1987)
        local item = bag:addItem(reward.itemid, math.random(reward.count))
        local itemName = reward.count > 1 and item:getPluralName() or item:getName()
        Game.broadcastMessage(('[LOTTERY] %s has won %d %s, next lottery in 30 minutes'):format(player:getName(), item:getCount(), itemName), MESSAGE_STATUS_CONSOLE_ORANGE)
    else
        print("No player to give lottery reward to.")
    end
    return true
end
Code:
Lua Script Error: [GlobalEvent Interface]
data/globalevents/scripts/lottery.lua:onThink
data/globalevents/scripts/lottery.lua:18: attempt to index local 'item' (a nil value)
stack traceback:
        [C]: in function '__index'
        data/globalevents/scripts/lottery.lua:18: in function <data/globalevents/scripts/lottery.lua:6>
[Error - GlobalEvents::think] Failed to execute event: lottery
 
do you not have any space on your character whatsoever that's preventing you from getting the item?
try adding print(reward.itemid) after the local item line to see if it even has a number printing out
 
do you not have any space on your character whatsoever that's preventing you from getting the item?
try adding print(reward.itemid) after the local item line to see if it even has a number printing out
Code:
[Error - GlobalEvents::think] Failed to execute event: lottery
24774

Lua Script Error: [GlobalEvent Interface]
data/globalevents/scripts/lottery.lua:onThink
data/globalevents/scripts/lottery.lua:19: attempt to index local 'item' (a nil value)
stack traceback:
        [C]: in function '__index'
        data/globalevents/scripts/lottery.lua:19: in function <data/globalevents/scripts/lottery.lua:6>
[Error - GlobalEvents::think] Failed to execute event: lottery
Screen capture - 85788903ca7488e3beb7777da3939ba6 - Gyazo
 
Back
Top