• 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!

RevScripts (a nil value)

alcapone

Member
Joined
Jan 13, 2021
Messages
246
Reaction score
19
spell
Lua:
function wall(creature, tile)
   local pos =  creature:getPosition()
 
      local playerGuild = creature:getGuild()   
    local playerGuildName = playerGuild:getName()
  
if guildIsInWar(playerGuildName)  then 

print(ok)
    else
prin(nook)
    end
 
end
the problem I'm having is when the player is out of guild he can't use the spell

lib function
Lua:
function guildIsInWar(guildName)
    local resultId = db.storeQuery(string.format('SELECT `status`, `guild1`, `guild2` FROM `guild_wars` WHERE `name1` = %s or `name2` = %s AND `status` = 1', db.escapeString(guildName), db.escapeString(guildName)))
    if resultId then
        result.free(resultId)
        return true
    end

    return false
end
 
Solution
Try
Lua:
function onCreateMagicWall(creature, tile)
    local guild = creature:getGuild()
    if guild then
        local guildName = guild:getName()
        if guildIsInWar(guildName) then
            print("guild " + guildName + " in war...")
        else
            print("not war")
        end
        return
    end

    print("player without guild")
end

or
Lua:
function onCreateMagicWall(creature, tile)
    local guild = creature:getGuild()
    if not guild then
        print("player without guild")
        return
    end

    local guildName = guild:getName()
    if guildIsInWar(guildName) then
        print("guild " + guildName + " in war...")
    else
        print("not war")
    end
end
Lua:
local playerGuild = creature:getGuild()
If player doesn't have a guild, it returns null

See
Lua:
function wall(player, tile)
    local guild = player:getGuild()
    if not guild then
        return
    end

    local guildName = guild:getName()
    if guildIsInWar(guildName) then
        print(ok)
    else
        prin(nook)
    end
end

or
Lua:
function wall(player, tile)
    local guild = player:getGuild()
    if guild then
        local guildName = guild:getName()
        if guildIsInWar(guildName) then
            print(ok)
        else
            prin(nook)
        end
    end
end
 
Lua:
local playerGuild = creature:getGuild()
If player doesn't have a guild, it returns null

See
Lua:
function wall(player, tile)
    local guild = player:getGuild()
    if not guild then
        return
    end

    local guildName = guild:getName()
    if guildIsInWar(guildName) then
        print(ok)
    else
        prin(nook)
    end
end

or
Lua:
function wall(player, tile)
    local guild = player:getGuild()
    if guild then
        local guildName = guild:getName()
        if guildIsInWar(guildName) then
            print(ok)
        else
            prin(nook)
        end
    end
end
Lua:
function onCreateMagicWall(creature, tile)
   local pos =  creature:getPosition()
 
    local guild = creature:getGuild()
    if not guild then
        return
    end

    local guildName = guild:getName()
      
      if guildIsInWar(guildName)  then 

        print('com guild')
    else
    print('sem guild')

    end
    
end

ok, there was no more error in the console however being the player is with guildIsInWar working if the player has a guild it works now the player who has no guild doesn't work I don't remember if I commented I think it needs 3 checks =c
 
Try
Lua:
function onCreateMagicWall(creature, tile)
    local guild = creature:getGuild()
    if guild then
        local guildName = guild:getName()
        if guildIsInWar(guildName) then
            print("guild " + guildName + " in war...")
        else
            print("not war")
        end
        return
    end

    print("player without guild")
end

or
Lua:
function onCreateMagicWall(creature, tile)
    local guild = creature:getGuild()
    if not guild then
        print("player without guild")
        return
    end

    local guildName = guild:getName()
    if guildIsInWar(guildName) then
        print("guild " + guildName + " in war...")
    else
        print("not war")
    end
end
 
Last edited:
Solution
Try
Lua:
function onCreateMagicWall(creature, tile)
    local guild = creature:getGuild()
    if guild then
        local guildName = guild:getName()
        if guildIsInWar(guildName) then
            print("guild " + guildName + " in war...")
        else
            print("not war")
        end
        return
    end

    print("player without guild")
end

or
Lua:
function onCreateMagicWall(creature, tile)
    local guild = creature:getGuild()
    if not guild then
        print("player without guild")
        return
    end

    local guildName = guild:getName()
    if guildIsInWar(guildName) then
        print("guild " + guildName + " in war...")
    else
        print("not war")
    end
end
Good night, would be possible an addition in this script if the status is above 3 is moved to 'print no war'

BD - guild_wars status = '4'
 
Back
Top