Ir para conteúdo

[Encerrado] Erro no look


bilaux

Posts Recomendados

boa tarde, meu ot está dando esse erro, quando eu dou look em certas pessoas, como resolver ??

 

[14:3:49.427] [Error - CreatureScript Interface] 
[14:3:49.427] domodlib("ranks")
[14:3:49.427]             function onLook(cid, thing, position, lookDistance)
[14:3:49.427]                 if(isPlayer(thing.uid)) then
[14:3:49.427]                     local rank = {rank = "Private", frags = 0}
[14:3:49.427]                     for k, v in pairs(titles) do
[14:3:49.427]                         if(math.max(0, getPlayerStorageValue(thing.uid, fragsStorage)) > k - 1) then
[14:3:49.427]                             if(k - 1 > rank.frags) then
[14:3:49.427]                                 rank.rank, rank.frags = v, k - 1
[14:3:49.427]                             end
[14:3:49.427]                         end
[14:3:49.427]                     end
[14:3:49.427]                     doPlayerSetSpecialDescription(thing.uid, "\n Military rank: " .. rank.rank)
[14:3:49.427]                 end
[14:3:49.427]                 return true
[14:3:49.427]             end
[14:3:49.427] :onLook
[14:3:49.427] Description: 
[14:3:49.427] [string "LuaInterface::loadBuffer"]:6: bad argument #2 to 'max' (number expected, got string)
[14:3:49.427] stack traceback:
[14:3:49.427]     [C]: in function 'max'
[14:3:49.427]     [string "LuaInterface::loadBuffer"]:6: in function <[string "LuaInterface::loadBuffer"]:2>

Link para o comentário
Compartilhar em outros sites

  • Diretor
13 minutos atrás, bilaux disse:
Versão do Servidor: TFS - 0.4
Tipo de Script: creaturescript

boa tarde, meu ot está dando esse erro, quando eu dou look em certas pessoas, como resolver ??

 

[14:3:49.427] [Error - CreatureScript Interface] 
[14:3:49.427] domodlib("ranks")
[14:3:49.427]             function onLook(cid, thing, position, lookDistance)
[14:3:49.427]                 if(isPlayer(thing.uid)) then
[14:3:49.427]                     local rank = {rank = "Private", frags = 0}
[14:3:49.427]                     for k, v in pairs(titles) do
[14:3:49.427]                         if(math.max(0, getPlayerStorageValue(thing.uid, fragsStorage)) > k - 1) then
[14:3:49.427]                             if(k - 1 > rank.frags) then
[14:3:49.427]                                 rank.rank, rank.frags = v, k - 1
[14:3:49.427]                             end
[14:3:49.427]                         end
[14:3:49.427]                     end
[14:3:49.427]                     doPlayerSetSpecialDescription(thing.uid, "\n Military rank: " .. rank.rank)
[14:3:49.427]                 end
[14:3:49.427]                 return true
[14:3:49.427]             end
[14:3:49.427] :onLook
[14:3:49.427] Description: 
[14:3:49.427] [string "LuaInterface::loadBuffer"]:6: bad argument #2 to 'max' (number expected, got string)
[14:3:49.427] stack traceback:
[14:3:49.427]     [C]: in function 'max'
[14:3:49.427]     [string "LuaInterface::loadBuffer"]:6: in function <[string "LuaInterface::loadBuffer"]:2>

 

Me manda o script de look do seu creaturescript.

Link para o comentário
Compartilhar em outros sites

boa tarde, único arquivo de look q tem lá, q eu vi pelo creaturescripts.xml é o do kills and death 

 

function getDeaths(cid)
   local query, d = db.getResult("SELECT `player_id` FROM `player_killers` WHERE `player_id` = " ..getPlayerGUID(cid)), 0
   if (query:getID() ~= -1) then
      repeat
         d = d+1
      until not query:next()
      query:free()
   end
   return d
end

function getPlayerFrags(cid)
    local time = os.time()
    local times = {today = (time - 86400), week = (time - (7 * 86400))}
    local contents, result = {day = {}, week = {}, month = {}}, db.getResult("SELECT `pd`.`date`, `pd`.`level`, `p`.`name` FROM `player_killers` pk LEFT JOIN `killers` k ON `pk`.`kill_id` = `k`.`id` LEFT JOIN `player_deaths` pd ON `k`.`death_id` = `pd`.`id` LEFT JOIN `players` p ON `pd`.`player_id` = `p`.`id` WHERE `pk`.`player_id` = " .. getPlayerGUID(cid) .. " AND `k`.`unjustified` = 1 AND `pd`.`date` >= " .. (time - (30 * 86400)) .. " ORDER BY `pd`.`date` DESC")
    if(result:getID() ~= -1) then
        repeat
            local content = {date = result:getDataInt("date")}
            if(content.date > times.today) then
                table.insert(contents.day, content)
            elseif(content.date > times.week) then
                table.insert(contents.week, content)
            else
                table.insert(contents.month, content)
            end
        until not result:next()
        result:free()
    end
    local size = {
        day = table.maxn(contents.day),
        week = table.maxn(contents.week),
        month = table.maxn(contents.month)
    }
    return size.day + size.week + size.month
end

function onLook(cid, thing, position, lookDistance)
   if isPlayer(thing.uid) and thing.uid ~= cid then
      return doPlayerSetSpecialDescription(thing.uid, '\n'.. '[Frags: ' .. getPlayerFrags(thing.uid) .. ' - Frags Totais: ' .. getDeaths(thing.uid) .. ']')
   elseif thing.uid == cid then   
      local string = 'You see yourself.'
      if getPlayerFlagValue(cid, PLAYERFLAG_SHOWGROUPINSTEADOFVOCATION) then
         string = string..' You are '.. getPlayerGroupName(cid) ..'.'
      elseif getPlayerVocation(cid) ~= 0 then
         string = string..' You are '.. getPlayerVocationName(cid) ..'.'
      else
         string = string..' You have no vocation.'
      end
             

      if getPlayerGuildId(cid) > 0 then
         string = string..' You are ' .. (getPlayerGuildRank(cid) == '' and 'a member' or getPlayerGuildRank(cid)) ..' of the '.. getPlayerGuildName(cid)
         string = getPlayerGuildNick(cid) ~= '' and string..' ('.. getPlayerGuildNick(cid) ..').' or string..'.'
      end
    
      string = string..'\n'.. '[Matou: ' .. getPlayerFrags(cid) .. ' - Morreu: ' .. getDeaths(cid) .. ']'

      if getPlayerFlagValue(cid, PLAYERCUSTOMFLAG_CANSEECREATUREDETAILS) then
         string = string..'\nHealth: ['.. getCreatureHealth(cid) ..' / '.. getCreatureMaxHealth(cid) ..'], Mana: ['.. getCreatureMana(cid) ..' / '.. getCreatureMaxMana(cid) ..'].'
         string = string..'\nIP: '.. doConvertIntegerToIp(getPlayerIp(cid)) ..'.'
      end

      if getPlayerFlagValue(cid, PLAYERCUSTOMFLAG_CANSEEPOSITION) then
         string = string..'\nPosition: [X:'.. position.x..'] [Y:'.. position.y..'] [Z:'.. position.z..'].'
      end
      return false, doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, string)
   end
   return 1
end

 

Editado por bilaux
Link para o comentário
Compartilhar em outros sites

  • Diretor

Então amigo verifiquei aqui e não tem nenhum problema com esse script. Talvez você esteja usando mais um script de Look e por conta disso deve estar dando conflito. Da uma olhada na sua pasta mods

Editado por nedroesdoksdja
Link para o comentário
Compartilhar em outros sites

boa tarde, tem o military rank lá e o rankx

 

Spoiler

<?xml version="1.0" encoding="UTF-8"?>  
<mod name="other ranks" version="1.0" author="Vodkart" contact="xtibia.com" enabled="yes">  
<config name="rankf_func"><![CDATA[
function getPlayerFrags(cid)
        local time = os.time()
        local times = {today = (time - 86400), week = (time - (7 * 86400))}
        local contents, result = {day = {}, week = {}, month = {}}, db.getResult("SELECT `pd`.`date`, `pd`.`level`, `p`.`name` FROM `player_killers` pk LEFT JOIN `killers` k ON `pk`.`kill_id` = `k`.`id` LEFT JOIN `player_deaths` pd ON `k`.`death_id` = `pd`.`id` LEFT JOIN `players` p ON `pd`.`player_id` = `p`.`id` WHERE `pk`.`player_id` = " .. getPlayerGUID(cid) .. " AND `k`.`unjustified` = 1 AND `pd`.`date` >= " .. (time - (30 * 86400)) .. " ORDER BY `pd`.`date` DESC")
        if(result:getID() ~= -1) then
                repeat
                        local content = {date = result:getDataInt("date")}
                        if(content.date > times.today) then
                                table.insert(contents.day, content)
                        elseif(content.date > times.week) then
                                table.insert(contents.week, content)
                        else
                                table.insert(contents.month, content)
                        end
                until not result:next()
                result:free()
        end
        local size = {day = table.maxn(contents.day),week = table.maxn(contents.week),month = table.maxn(contents.month)}
        return size.day + size.week + size.month
end
function setFrags(cid)
return db.executeQuery("UPDATE `players` SET `frags` = "..getPlayerFrags(cid).." WHERE `id` = "..getPlayerGUID(cid))
end
]]></config>
<event type="login" name="RankfLogin" event="script"><![CDATA[
function onLogin(cid)
registerCreatureEvent(cid, "RankfKill")
registerCreatureEvent(cid, "RankfLogin")
setFrags(cid)
return true
end]]></event>    
<event type="kill" name="RankfKill" event="script"><![CDATA[
domodlib('rankf_func')
function onKill(cid, target, lastHit)
if isPlayer(cid) and isPlayer(target) then
addEvent(setFrags, 50, cid)
end
return true
end]]></event>
</mod>

 

Spoiler

<?xml version = "1.0" encoding = "UTF-8"?>
    <mod name = "Military Ranks" version = "1.0" author = "Teckman" enabled = "yes">
        <config name = "ranks"><![CDATA[
            titles = {
                [5] = "Private First Class",
                [10] = "Specialist",
                [15] = "Corporal",
                [20] = "Sergeant",
                [25] = "Staff Sergeant",
                [30] = "Sergeant First Class",
                [35] = "Master Sergeant",
                [40] = "First Sergeant",
                [45] = "Sergeant Major",
                [50] = "Command Sergeant Major",
                [55] = "Sergeant Major of the Army",
                [60] = "Second Lieutenant",
                [65] = "First Lieutenant",
                [70] = "Captain",
                [75] = "Major",
                [80] = "Lieutenant Colonel",
                [90] = "Colonel",
                [100] = "Brigadier General",
                [110] = "Major General",
                [120] = "Lieutenant General",
                [140] = "General",
                [170] = "General of the Army"
            }
            fragsStorage = 600
        ]]></config>
        <event type = "look" name = "ranksLook" event = "script"><![CDATA[
            domodlib("ranks")
            function onLook(cid, thing, position, lookDistance)
                if(isPlayer(thing.uid)) then
                    local rank = {rank = "Private", frags = 0}
                    for k, v in pairs(titles) do
                        if(math.max(0, getPlayerStorageValue(thing.uid, fragsStorage)) > k - 1) then
                            if(k - 1 > rank.frags) then
                                rank.rank, rank.frags = v, k - 1
                            end
                        end
                    end
                    doPlayerSetSpecialDescription(thing.uid, "\n Military rank: " .. rank.rank)
                end
                return true
            end
        ]]></event>
        <event type = "kill" name = "ranksKill" event = "script"><![CDATA[
            domodlib("ranks")
            function onKill(cid, target)
                if(isPlayer(target)) then
                    setPlayerStorageValue(cid, fragsStorage, math.max(0, getPlayerStorageValue(cid, fragsStorage) + 1))
                    if(titles[getPlayerStorageValue(cid, fragsStorage)]) then
                        doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You advanced to military rank: " .. titles[getPlayerStorageValue(cid, fragsStorage)] .. ". Congratulations " .. titles[getPlayerStorageValue(cid, fragsStorage)] .. "!")
                    end
                end
                return true
            end
        ]]></event>
        <event type = "login" name = "ranksLogin" event = "script"><![CDATA[
            function onLogin(cid)
                registerCreatureEvent(cid, "ranksKill")
                registerCreatureEvent(cid, "ranksLook")
                return true
            end
        ]]></event>
    </mod>

 

Link para o comentário
Compartilhar em outros sites

  • Diretor

Qual a REV da sua TFS 0.4? Bom... Talvez o mods não funcione com a versão da sua TFS, não sei dizer o que está ocorrendo exatamente.

 

Reparei em um pequeno problema. Em seu mods de rankx está assim:

db.executeQuery

E na TFS 0.4 essa função muda para:

db.query

 

Talvez o problema não seja este, mas ao tentar executar a query na database não dará certo, então seria bom corrigir isso ai rsrs. A não ser que sua TFS 0.4 esteja com executeQuery mesmo...

 

Tente remover um desses dois mods ai e testa. Creio que o problema esteja no mods Miltar mesmo

Editado por nedroesdoksdja
Link para o comentário
Compartilhar em outros sites

  • 1 month later...
A questão neste suporte foi encerrada por falta de respostas. Este tópico está fechado e foi movido para Suporte - Tópicos Sem Resposta.

+ Caso a dúvida não tenha sido resolvida você poderá criar outro tópico solicitando ajuda.
* Lembre-se que é permitido dar UP no tópico a cada 24 horas para assim o destacar e manter movimentado.
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...