• 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 0.3.6 Znote ACC] Random temple spawn for new characters

jeffaklumpen

Member
Joined
Jan 20, 2022
Messages
77
Solutions
2
Reaction score
15
GitHub
jeffaklumpen
I'm having a issue where newly created characters spawn at random locations around the temple. It's always inside the temple but never in the middle where the spawn should be. Sometimes a character spawns a few squares to the left inside a wall and sometimes just 2 blocks south of the middle. I've searched the forums but couldn't find a solution.

It only happens with newly created characters on the first login.

Why is this happening? :/
 
Solution
X
Here's my login.lua

LUA:
local config = {
    loginMessage = getConfigValue('loginMessage'),
    useFragHandler = getBooleanFromString(getConfigValue('useFragHandler'))
}

function onLogin(cid)

    local loss = getConfigValue('deathLostPercent')
    if(loss ~= nil) then
        doPlayerSetLossPercent(cid, PLAYERLOSS_EXPERIENCE, loss * 10)
    end

    local accountManager = getPlayerAccountManager(cid)
    if(accountManager == MANAGER_NONE) then
        local lastLogin, str = getPlayerLastLoginSaved(cid), config.loginMessage
        if(lastLogin > 0) then
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_DEFAULT, str)
            str = "Your last visit was on " .. os.date("%a %b %d %X %Y", lastLogin) .. "."
        else...
I'm having a issue where newly created characters spawn at random locations around the temple. It's always inside the temple but never in the middle where the spawn should be. Sometimes a character spawns a few squares to the left inside a wall and sometimes just 2 blocks south of the middle. I've searched the forums but couldn't find a solution.

It only happens with newly created characters on the first login.

Why is this happening? :/
Never heard of this before either.

Can you post your login.lua file for us?

data/creaturescripts/scripts/login.lua

Maybe there's something forcing the players to spawn randomly in there.
 
Here's my login.lua

LUA:
local config = {
    loginMessage = getConfigValue('loginMessage'),
    useFragHandler = getBooleanFromString(getConfigValue('useFragHandler'))
}

function onLogin(cid)

    local loss = getConfigValue('deathLostPercent')
    if(loss ~= nil) then
        doPlayerSetLossPercent(cid, PLAYERLOSS_EXPERIENCE, loss * 10)
    end

    local accountManager = getPlayerAccountManager(cid)
    if(accountManager == MANAGER_NONE) then
        local lastLogin, str = getPlayerLastLoginSaved(cid), config.loginMessage
        if(lastLogin > 0) then
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_DEFAULT, str)
            str = "Your last visit was on " .. os.date("%a %b %d %X %Y", lastLogin) .. "."
        else
            str = str .. " Please choose your outfit."
            doPlayerSendOutfitWindow(cid)
        end

        doPlayerSendTextMessage(cid, MESSAGE_STATUS_DEFAULT, str)
    elseif(accountManager == MANAGER_NAMELOCK) then
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Hello, it appears that your character has been namelocked, what would you like as your new name?")
    elseif(accountManager == MANAGER_ACCOUNT) then
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Hello, type 'account' to manage your account and if you want to start over then type 'cancel'.")
    else
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Hello, type 'account' to create an account or type 'recover' to recover an account.")
    end

    if(not isPlayerGhost(cid)) then
        doSendMagicEffect(getCreaturePosition(cid), CONST_ME_TELEPORT)
    end

    registerCreatureEvent(cid, "Mail")
    registerCreatureEvent(cid, "GuildMotd")

    registerCreatureEvent(cid, "Idle")
    if(config.useFragHandler) then
        registerCreatureEvent(cid, "SkullCheck")
    end

    registerCreatureEvent(cid, "SaveReportBug")
    registerCreatureEvent(cid, "AdvanceSave")
    registerCreatureEvent(cid, "PlayerAdvance")
    
        registerCreatureEvent(cid, "KillingInTheNameOf")
        registerCreatureEvent(cid, "znote_syncoutfits")   
        registerCreatureEvent(cid, "Zalzabane")
        registerCreatureEvent(cid, "inquisitionPortals")
        registerCreatureEvent(cid, "demonOakLogout")
        registerCreatureEvent(cid, "antylogspam")
        registerCreatureEvent(cid, "templebug")
        registerCreatureEvent(cid, "hplogin")
        registerCreatureEvent(cid, "KillingInTheNameOf")
        registerCreatureEvent(cid, "ArenaKill")
        registerCreatureEvent(cid, "AdvancePoints")
        registerCreatureEvent(cid, "EventRecord")
        registerCreatureEvent(cid, "AdvancePoints1")
        registerCreatureEvent(cid, "AdvancePoints2")
        registerCreatureEvent(cid, "demonOakDeath")
-- if he did not make full arena 1 he must start from zero
    if getPlayerStorageValue(cid, 42309) < 1 then
        for i = 42300, 42309 do
            setPlayerStorageValue(cid, i, 0)
        end
    end
    -- if he did not make full arena 2 he must start from zero
    if getPlayerStorageValue(cid, 42319) < 1 then
        for i = 42310, 42319 do
            setPlayerStorageValue(cid, i, 0)
        end
    end
    -- if he did not make full arena 3 he must start from zero
    if getPlayerStorageValue(cid, 42329) < 1 then
        for i = 42320, 42329 do
            setPlayerStorageValue(cid, i, 0)
        end
    end
    if getPlayerStorageValue(cid, 42355) == -1 then
        setPlayerStorageValue(cid, 42355, 0) -- did not arena level
    end
    setPlayerStorageValue(cid, 42350, 0) -- time to kick 0
    setPlayerStorageValue(cid, 42352, 0) -- is not in arena 
    return true
end
Post automatically merged:

Never heard of this before either.

Can you post your login.lua file for us?

data/creaturescripts/scripts/login.lua

Maybe there's something forcing the players to spawn randomly in there.
 
Here's my login.lua

LUA:
local config = {
    loginMessage = getConfigValue('loginMessage'),
    useFragHandler = getBooleanFromString(getConfigValue('useFragHandler'))
}

function onLogin(cid)

    local loss = getConfigValue('deathLostPercent')
    if(loss ~= nil) then
        doPlayerSetLossPercent(cid, PLAYERLOSS_EXPERIENCE, loss * 10)
    end

    local accountManager = getPlayerAccountManager(cid)
    if(accountManager == MANAGER_NONE) then
        local lastLogin, str = getPlayerLastLoginSaved(cid), config.loginMessage
        if(lastLogin > 0) then
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_DEFAULT, str)
            str = "Your last visit was on " .. os.date("%a %b %d %X %Y", lastLogin) .. "."
        else
            str = str .. " Please choose your outfit."
            doPlayerSendOutfitWindow(cid)
        end

        doPlayerSendTextMessage(cid, MESSAGE_STATUS_DEFAULT, str)
    elseif(accountManager == MANAGER_NAMELOCK) then
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Hello, it appears that your character has been namelocked, what would you like as your new name?")
    elseif(accountManager == MANAGER_ACCOUNT) then
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Hello, type 'account' to manage your account and if you want to start over then type 'cancel'.")
    else
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Hello, type 'account' to create an account or type 'recover' to recover an account.")
    end

    if(not isPlayerGhost(cid)) then
        doSendMagicEffect(getCreaturePosition(cid), CONST_ME_TELEPORT)
    end

    registerCreatureEvent(cid, "Mail")
    registerCreatureEvent(cid, "GuildMotd")

    registerCreatureEvent(cid, "Idle")
    if(config.useFragHandler) then
        registerCreatureEvent(cid, "SkullCheck")
    end

    registerCreatureEvent(cid, "SaveReportBug")
    registerCreatureEvent(cid, "AdvanceSave")
    registerCreatureEvent(cid, "PlayerAdvance")
   
        registerCreatureEvent(cid, "KillingInTheNameOf")
        registerCreatureEvent(cid, "znote_syncoutfits")  
        registerCreatureEvent(cid, "Zalzabane")
        registerCreatureEvent(cid, "inquisitionPortals")
        registerCreatureEvent(cid, "demonOakLogout")
        registerCreatureEvent(cid, "antylogspam")
        registerCreatureEvent(cid, "templebug")
        registerCreatureEvent(cid, "hplogin")
        registerCreatureEvent(cid, "KillingInTheNameOf")
        registerCreatureEvent(cid, "ArenaKill")
        registerCreatureEvent(cid, "AdvancePoints")
        registerCreatureEvent(cid, "EventRecord")
        registerCreatureEvent(cid, "AdvancePoints1")
        registerCreatureEvent(cid, "AdvancePoints2")
        registerCreatureEvent(cid, "demonOakDeath")
-- if he did not make full arena 1 he must start from zero
    if getPlayerStorageValue(cid, 42309) < 1 then
        for i = 42300, 42309 do
            setPlayerStorageValue(cid, i, 0)
        end
    end
    -- if he did not make full arena 2 he must start from zero
    if getPlayerStorageValue(cid, 42319) < 1 then
        for i = 42310, 42319 do
            setPlayerStorageValue(cid, i, 0)
        end
    end
    -- if he did not make full arena 3 he must start from zero
    if getPlayerStorageValue(cid, 42329) < 1 then
        for i = 42320, 42329 do
            setPlayerStorageValue(cid, i, 0)
        end
    end
    if getPlayerStorageValue(cid, 42355) == -1 then
        setPlayerStorageValue(cid, 42355, 0) -- did not arena level
    end
    setPlayerStorageValue(cid, 42350, 0) -- time to kick 0
    setPlayerStorageValue(cid, 42352, 0) -- is not in arena
    return true
end
Post automatically merged:

I'd check both of these files, they seem likely culprits. (:
LUA:
        registerCreatureEvent(cid, "antylogspam")
        registerCreatureEvent(cid, "templebug")
 
Solution
I'd check both of these files, they seem likely culprits. :)
LUA:
        registerCreatureEvent(cid, "antylogspam")
        registerCreatureEvent(cid, "templebug")
Thank you so much!! I deleted this code from templebug.lua

I have no idea why it even exists but the spawn is back to normal now, thanks again! :)

LUA:
function onLogin(cid)
    if getPlayerLastLoginSaved(cid) == 0 then
        local p = getArea(getTownTemplePosition(getPlayerTown(cid)), 5, 5)
        doTeleportThing(cid, p[math.random(#p)])
    end
    return true
end
 
Back
Top