Ir para conteúdo
  • 0

(resolvido) (Bug) Login


BrunooMaciell

Pergunta

Estou com um bugzinho chato na hora de criar account so.

 

Bug

Spoiler

1.png

 

Script do Login.lua

Spoiler

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

function onLogin(cid)

    if getPlayerLevel(cid) >= 1 and getPlayerLevel(cid) <= 10 then   --alterado v1.8
       doPlayerSetLossPercent(cid, PLAYERLOSS_EXPERIENCE, 0)
    else     
       doPlayerSetLossPercent(cid, PLAYERLOSS_EXPERIENCE, (getPlayerLevel(cid) >= 200 and 100 or math.floor(getPlayerLevel(cid)/2)) )
    end
    doCreatureSetDropLoot(cid, false)

    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
        end
                
        sendMsgToPlayer(cid, 20, "Bem Vindo Ao Pokemon Venetta Server")
        
        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 getCreatureName(cid) == "Account Manager" then
        local outfit = {}
        if accountManagerRandomPokemonOutfit then
            outfit = {lookType = getPokemonXMLOutfit(oldpokedex[math.random(151)][1])}
        else
            outfit = accountManagerOutfit
        end
    
        doSetCreatureOutfit(cid, outfit, -1)
    return true
    end

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

    local outfit = {}

    if getPlayerVocation(cid) == 0 then
        doPlayerSetMaxCapacity(cid, 0)
        doPlayerSetVocation(cid, 1)
        setCreatureMaxMana(cid, 6)
        doPlayerAddSoul(cid, -getPlayerSoul(cid))
        setPlayerStorageValue(cid, 19898, 0)
            if getCreatureOutfit(cid).lookType == 128 then
                outfit = {lookType = 510, lookHead = math.random(0, 132), lookBody = math.random(0, 132), lookLegs = math.random(0, 132), lookFeet = math.random(0, 132)}
            elseif getCreatureOutfit(cid).lookType == 136 then
                outfit = {lookType = 511, lookHead = math.random(0, 132), lookBody = math.random(0, 132), lookLegs = math.random(0, 132), lookFeet = math.random(0, 132)}
            end
        doCreatureChangeOutfit(cid, outfit)
    end
        
        registerCreatureEvent(cid, "dropStone")  
        registerCreatureEvent(cid, "ShowPokedex") 
        registerCreatureEvent(cid, "ClosePokedex") 
    registerCreatureEvent(cid, "WatchTv")
    registerCreatureEvent(cid, "StopWatchingTv")
    registerCreatureEvent(cid, "WalkTv")
    registerCreatureEvent(cid, "RecordTv")
    registerCreatureEvent(cid, "PlayerLogout")
    registerCreatureEvent(cid, "WildAttack")
    registerCreatureEvent(cid, "Idle")
    registerCreatureEvent(cid, "EffectOnAdvance")
    registerCreatureEvent(cid, "GeneralConfiguration")
    registerCreatureEvent(cid, "SaveReportBug")   
    registerCreatureEvent(cid, "LookSystem")
    registerCreatureEvent(cid, "T1")
    registerCreatureEvent(cid, "T2")
    registerCreatureEvent(cid, "task_count")
        registerCreatureEvent(cid, "teacher")
        registerCreatureEvent(cid, "OnAdvanced")
        registerCreatureEvent(cid, "ExpVip")

    if getPlayerStorageValue(cid, 99284) == 1 then
        setPlayerStorageValue(cid, 99284, -1)
    end

    if getPlayerStorageValue(cid, 6598754) >= 1 or getPlayerStorageValue(cid, 6598755) >= 1 then
       setPlayerStorageValue(cid, 6598754, -1)
       setPlayerStorageValue(cid, 6598755, -1)
       doRemoveCondition(cid, CONDITION_OUTFIT)             --alterado v1.9 \/
       doTeleportThing(cid, posBackPVP, false)
       doCreatureAddHealth(cid, getCreatureMaxHealth(cid))
    end
    
    doChangeSpeed(cid, -(getCreatureSpeed(cid)))
    
    --///////////////////////////////////////////////////////////////////////////--
    local storages = {17000, 63215, 17001, 13008, 5700}
    for s = 1, #storages do
        if not tonumber(getPlayerStorageValue(cid, storages)) then
           if s == 3 then
              setPlayerStorageValue(cid, storages, 1)
           elseif s == 4 then
              setPlayerStorageValue(cid, storages, -1)
           else   
              if isBeingUsed(getPlayerSlotItem(cid, 8).itemid) then
                 setPlayerStorageValue(cid, storages, 1)                 
              else
                 setPlayerStorageValue(cid, storages, -1) 
              end
           end
           doPlayerSendTextMessage(cid, 27, "Sorry, but a problem occurred on the server, but now it's alright")
        end
    end
    --/////////////////////////////////////////////////////////////////////////--
    if getPlayerStorageValue(cid, 17000) >= 1 then -- fly
        
        local item = getPlayerSlotItem(cid, 8):
        local poke = getItemAttribute(item.uid, "poke")
        doChangeSpeed(cid, getPlayerStorageValue(cid, 54844))
        doRemoveCondition(cid, CONDITION_OUTFIT)
        doSetCreatureOutfit(cid, {lookType = flys[poke][1] + 351}, -1)

    local apos = getFlyingMarkedPos(cid)
    apos.stackpos = 0
        
            if getTileThingByPos(apos).itemid <= 2 then
                doCombatAreaHealth(cid, FIREDAMAGE, getFlyingMarkedPos(cid), 0, 0, 0, CONST_ME_NONE)
                doCreateItem(460, 1, getFlyingMarkedPos(cid))
            end 

    doTeleportThing(cid, apos, false)
    if getItemAttribute(item.uid, "boost") and getItemAttribute(item.uid, "boost") >= 50 and getPlayerStorageValue(cid, 42368) >= 1 then   
       sendAuraEffect(cid, auraSyst[getItemAttribute(item.uid, "aura")])                     --alterado v1.8
    end  
 
    local posicao = getTownTemplePosition(getPlayerTown(cid))
    markFlyingPos(cid, posicao)
    
    elseif getPlayerStorageValue(cid, 63215) >= 1 then -- surf

        local item = getPlayerSlotItem(cid, 8):
        local poke = getItemAttribute(item.uid, "poke")
        doSetCreatureOutfit(cid, {lookType = surfs[poke].lookType + 351}, -1) --alterado v1.6
        doChangeSpeed(cid, getPlayerStorageValue(cid, 54844))
        if getItemAttribute(item.uid, "boost") and getItemAttribute(item.uid, "boost") >= 50 and getPlayerStorageValue(cid, 42368) >= 1 then   
           sendAuraEffect(cid, auraSyst[getItemAttribute(item.uid, "aura")])                     --alterado v1.8
        end 

    elseif getPlayerStorageValue(cid, 17001) >= 1 then -- ride
        
        local item = getPlayerSlotItem(cid, 8):
        local poke = getItemAttribute(item.uid, "poke")
        
        
        if rides[poke] then
           doChangeSpeed(cid, getPlayerStorageValue(cid, 54844))
           doRemoveCondition(cid, CONDITION_OUTFIT)
           doSetCreatureOutfit(cid, {lookType = rides[poke][1] + 351}, -1)
           if getItemAttribute(item.uid, "boost") and getItemAttribute(item.uid, "boost") >= 50 and getPlayerStorageValue(cid, 42368) >= 1 then   
              sendAuraEffect(cid, auraSyst[getItemAttribute(item.uid, "aura")])                     --alterado v1.8
           end 
        else
           setPlayerStorageValue(cid, 17001, -1)
           doRegainSpeed(cid)   
        end
    
        local posicao2 = getTownTemplePosition(getPlayerTown(cid))
        markFlyingPos(cid, posicao2)
        
    elseif getPlayerStorageValue(cid, 13008) >= 1 then -- dive
       if not isInArray({5405, 5406, 5407, 5408, 5409, 5410}, getTileInfo(getThingPos(cid)).itemid) then
            setPlayerStorageValue(cid, 13008, 0)
            doRegainSpeed(cid)              
            doRemoveCondition(cid, CONDITION_OUTFIT)
        return true
        end   
          
       if getPlayerSex(cid) == 1 then
          doSetCreatureOutfit(cid, {lookType = 1034, lookHead = getCreatureOutfit(cid).lookHead, lookBody = getCreatureOutfit(cid).lookBody, lookLegs = getCreatureOutfit(cid).lookLegs, lookFeet = getCreatureOutfit(cid).lookFeet}, -1)
       else
          doSetCreatureOutfit(cid, {lookType = 1035, lookHead = getCreatureOutfit(cid).lookHead, lookBody = getCreatureOutfit(cid).lookBody, lookLegs = getCreatureOutfit(cid).lookLegs, lookFeet = getCreatureOutfit(cid).lookFeet}, -1)
       end
       doChangeSpeed(cid, 800)

     elseif getPlayerStorageValue(cid, 5700) > 0 then   --bike
        doChangeSpeed(cid, -getCreatureSpeed(cid))
        doChangeSpeed(cid, getPlayerStorageValue(cid, 5700))  --alterado v1.8
        if getPlayerSex(cid) == 1 then
           doSetCreatureOutfit(cid, {lookType = 1394}, -1)
        else
           doSetCreatureOutfit(cid, {lookType = 1393}, -1)
        end
     
     elseif getPlayerStorageValue(cid, 75846) >= 1 then     --alterado v1.9 \/
        doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)), false)  
        setPlayerStorageValue(cid, 75846, -1)
        sendMsgToPlayer(cid, 20, "You have been moved to your town!")
     else
        doRegainSpeed(cid)  
     end
    
    if getPlayerStorageValue(cid, 22545) >= 1 then
       setPlayerStorageValue(cid, 22545, -1)              
       doTeleportThing(cid, getClosestFreeTile(cid, posBackGolden), false)
       setPlayerRecordWaves(cid)     
    end
    
    if useKpdoDlls then
        doUpdateMoves(cid)
        doUpdatePokemonsBar(cid)
    end
    return true
end

OBS: eu dei uma olhada na script e nao sei oque pode esta afetando se alguem puder me ajuda.

 

Rep+++

1.thumb.png.c3753aef169220fc1c4aebd895241371.png

Link para o comentário
Compartilhar em outros sites

13 respostass a esta questão

Posts Recomendados

  • 0

Normalmente seu cliente deve tá dizendo um getSto quando loga tenta logar em um char já criado player, ve se ta aparecendo mensagens ao logar provavelmente pode ser aqui o erro

 

     doPlayerSendTextMessage(cid, MESSAGE_STATUS_DEFAULT, str)

Link para o comentário
Compartilhar em outros sites

  • 0
Agora, Deadpool disse:

vai no seu cliente e me manda o game_skill.lua :D

Spoiler

skillsWindow = nil

skillsButton = nil

local gyms = {

   ["Brock0"] = "/images/game/pokemon/clan/8",

   ["Brock1"] = "/images/game/pokemon/clan/16",

   ["Misty0"] = "/images/game/pokemon/clan/7",

   ["Misty1"] = "/images/game/pokemon/clan/15",

   ["Surge0"] = "/images/game/pokemon/clan/6",

   ["Surge1"] = "/images/game/pokemon/clan/14",

   ["Erika0"] = "/images/game/pokemon/clan/5",

   ["Erika1"] = "/images/game/pokemon/clan/13",

   ["Sabrina0"] = "/images/game/pokemon/clan/4",

   ["Sabrina1"] = "/images/game/pokemon/clan/12",

   ["Koga0"] = "/images/game/pokemon/clan/3",

   ["Koga1"] = "/images/game/pokemon/clan/11",

   ["Blaine0"] = "/images/game/pokemon/clan/2",

   ["Blaine1"] = "/images/game/pokemon/clan/10",

   ["Kira0"] = "/images/game/pokemon/clan/1",

   ["Kira1"] = "/images/game/pokemon/clan/9",

}

local imgs = {

   [-1] = "/modules/game_skills/img/sem promotion", -- -1 quer dizer esta sem clan...

   [1] = "/modules/game_skills/img/volcanic img",

   [2] = "/modules/game_skills/img/seavell img",

   [3] = "/modules/game_skills/img/orebound img",

   [4] = "/modules/game_skills/img/wingeon img",

   [5] = "/modules/game_skills/img/malefic img",

   [6] = "/modules/game_skills/img/gardestrike img",

   [7] = "/modules/game_skills/img/psycraft img",

   [8] = "/modules/game_skills/img/naturia img",

   [9] = "/modules/game_skills/img/raibolt img",

}

function init()

  connect(LocalPlayer, {

    onExperienceChange = onExperienceChange,

    onLevelChange = onLevelChange,

    onHealthChange = onHealthChange,

    onManaChange = onManaChange,

    onSoulChange = onSoulChange,

    onFreeCapacityChange = onFreeCapacityChange,

    onTotalCapacityChange = onTotalCapacityChange,

    onStaminaChange = onStaminaChange,

    onOfflineTrainingChange = onOfflineTrainingChange,

    onRegenerationChange = onRegenerationChange,

    onSpeedChange = onSpeedChange,

    onBaseSpeedChange = onBaseSpeedChange,

    onMagicLevelChange = onMagicLevelChange,

    onBaseMagicLevelChange = onBaseMagicLevelChange,

    onSkillChange = onSkillChange,

    onBaseSkillChange = onBaseSkillChange

 })

 connect(g_game, {

    onGameStart = refresh,

    onGameEnd = offline

  })

  connect(g_game, 'onTextMessage', getGym)

  connect(g_game, 'onTextMessage', getParams)

  connect(g_game, {onGameStart = changeImg})

  skillsButton = modules.client_topmenu.addRightGameToggleButton('skillsButton', tr('skills') .. ' (Ctrl+S)', '/modules/game_skills/img/perfil_icon', toggle)

  skillsButton:setOn(true)

  skillsWindow = g_ui.loadUI('skills', modules.game_interface.getRightPanel()) -- skills

  g_keyboard.bindKeyDown('Ctrl+S', toggle)

  refresh()

  skillsWindow:setup()

end

function init()

  connect(LocalPlayer, {

    onExperienceChange = onExperienceChange,

    onLevelChange = onLevelChange,

    onHealthChange = onHealthChange,

    onManaChange = onManaChange,

    onSoulChange = onSoulChange,

    onFreeCapacityChange = onFreeCapacityChange,

    onTotalCapacityChange = onTotalCapacityChange,

    onStaminaChange = onStaminaChange,

    onOfflineTrainingChange = onOfflineTrainingChange,

    onRegenerationChange = onRegenerationChange,

    onSpeedChange = onSpeedChange,

    onBaseSpeedChange = onBaseSpeedChange,

    onMagicLevelChange = onMagicLevelChange,

    onBaseMagicLevelChange = onBaseMagicLevelChange,

    onSkillChange = onSkillChange,

    onBaseSkillChange = onBaseSkillChange

  })

 connect(g_game, {

    onGameStart = refresh,

    onGameEnd = offline

  })

  connect(g_game, 'onTextMessage', getGym)

  connect(g_game, 'onTextMessage', getParams)

  connect(g_game, {onGameStart = changeImg})

  skillsButton = modules.client_topmenu.addRightGameToggleButton('skillsButton', tr('skills') .. ' (Ctrl+S)', '/modules/game_skills/img/perfil_icon', toggle)

  skillsButton:setOn(true)

  skillsWindow = g_ui.loadUI('skills', modules.game_interface.getRightPanel()) -- skills

  g_keyboard.bindKeyDown('Ctrl+S', toggle)

  refresh()

  skillsWindow:setup()

end

function autoUpdateTalks()

  local player = g_game.getLocalPlayer()

  if not player then return end

----------

  g_game.talk("#getGym# Brock")

  g_game.talk("#getGym# Misty")

  g_game.talk("#getGym# Surge")

  g_game.talk("#getGym# Erika")

  g_game.talk("#getGym# Sabrina")

  g_game.talk("#getGym# Koga")

  g_game.talk("#getGym# Blaine")

  g_game.talk("#getGym# Kira")

----------

end

function getGym(mode, text)

  if not g_game.isOnline() then return end

  if mode == MessageModes.Failure then

     if text:find("#getBadges#") then

local t = string.explode(text, " ")

local badges = skillsWindow:recursiveGetChildById("gym"..t[2])

badges:setImageSource(gyms[t[2]..""..tonumber(t[3])])

end

end

end

function changeImg()

  local player = g_game.getLocalPlayer()

  if not player then return end

  g_game.talk("#getSto# 86228")

end

function getParams(mode, text)

if not g_game.isOnline() then return end

   if mode == MessageModes.Failure then 

      if text:find("#getSto#") then

         local icon = skillsWindow:recursiveGetChildById("clanicon")

         if icon then

            local t = string.explode(text, " ")

            icon:setImageSource(imgs[tonumber(t[2])])

         end

      end

   end

end

function expForLevel(level)

  return math.floor((50*level*level*level)/3 - 100*level*level + (850*level)/3 - 200)

end

function expToAdvance(currentLevel, currentExp)

  return expForLevel(currentLevel+1) - currentExp

end

function resetSkillColor(id)

  local skill = skillsWindow:recursiveGetChildById(id)

  local widget = skill:getChildById('value')

  widget:setColor('#bbbbbb')

end

function setSkillBase(id, value, baseValue)

  if baseValue <= 0 or value < 0 then

    return

  end

  local skill = skillsWindow:recursiveGetChildById(id)

  local widget = skill:getChildById('value')

  if value > baseValue then

    widget:setColor('#008b00') -- green

    skill:setTooltip(baseValue .. ' +' .. (value - baseValue))

  elseif value < baseValue then

    widget:setColor('#b22222') -- red

    skill:setTooltip(baseValue .. ' ' .. (value - baseValue))

  else

    widget:setColor('#bbbbbb') -- default

    skill:removeTooltip()

  end

end

function setSkillValue(id, value)

  local skill = skillsWindow:recursiveGetChildById(id)

  local widget = skill:getChildById('value')

  widget:setText(value)

end

function setSkillColor(id, value)

  local skill = skillsWindow:recursiveGetChildById(id)

  local widget = skill:getChildById('value')

  widget:setColor(value)

end

function setSkillTooltip(id, value)

  local skill = skillsWindow:recursiveGetChildById(id)

  local widget = skill:getChildById('value')

  widget:setTooltip(value)

end

function setSkillPercent(id, percent, tooltip)

  local skill = skillsWindow:recursiveGetChildById(id)

  local widget = skill:getChildById('percent')

  widget:setPercent(math.floor(percent))

  if tooltip then

    widget:setTooltip(tooltip)

  end

end

function checkAlert(id, value, maxValue, threshold, greaterThan)

  if greaterThan == nil then greaterThan = false end

  local alert = false

  -- maxValue can be set to false to check value and threshold

  -- used for regeneration checking

  if type(maxValue) == 'boolean' then

    if maxValue then

      return

    end

    if greaterThan then

      if value > threshold then

        alert = true

      end

    else

      if value < threshold then

        alert = true

      end

    end

  elseif type(maxValue) == 'number' then

    if maxValue < 0 then

      return

    end

    local percent = math.floor((value / maxValue) * 100)

    if greaterThan then

      if percent > threshold then

        alert = true

      end

    else

      if percent < threshold then

        alert = true

      end

    end

  end

  if alert then

    setSkillColor(id, '#b22222') -- red

  else

    resetSkillColor(id)

  end

end

function update()

  local offlineTraining = skillsWindow:recursiveGetChildById('offlineTraining')

  if not g_game.getFeature(GameOfflineTrainingTime) then

    offlineTraining:hide()

  else

    offlineTraining:show()

  end

  local regenerationTime = skillsWindow:recursiveGetChildById('regenerationTime')

  if not g_game.getFeature(GamePlayerRegenerationTime) then

    regenerationTime:hide()

  else

    regenerationTime:show()

  end

end

function refresh()

  local player = g_game.getLocalPlayer()

  if not player then return end

  autoUpdateTalks()

  

  if expSpeedEvent then expSpeedEvent:cancel() end

  expSpeedEvent = cycleEvent(checkExpSpeed, 30*1000)

  onExperienceChange(player, player:getExperience())

  onLevelChange(player, player:getLevel(), player:getLevelPercent())

  onHealthChange(player, player:getHealth(), player:getMaxHealth())

  onManaChange(player, player:getMana(), player:getMaxMana())

  onSoulChange(player, player:getSoul())

  onFreeCapacityChange(player, player:getFreeCapacity())

  onStaminaChange(player, player:getStamina())

  onMagicLevelChange(player, player:getMagicLevel(), player:getMagicLevelPercent())

  onOfflineTrainingChange(player, player:getOfflineTrainingTime())

  onRegenerationChange(player, player:getRegenerationTime())

  onSpeedChange(player, player:getSpeed())

  for i=0,6 do

    onSkillChange(player, i, player:getSkillLevel(i), player:getSkillLevelPercent(i))

    onBaseSkillChange(player, i, player:getSkillBaseLevel(i))

  end

  update()

  local contentsPanel = skillsWindow:getChildById('contentsPanel')

  skillsWindow:setContentMinimumHeight(110)

  skillsWindow:setContentMaximumHeight(292)

end

function offline()

  if expSpeedEvent then expSpeedEvent:cancel() expSpeedEvent = nil end

end

function toggle()

  if skillsButton:isOn() then

    skillsWindow:close()

    skillsButton:setOn(false)

  else

    skillsWindow:open()

    skillsButton:setOn(true)

    skillsButton:setOpacity(1.0)

    autoUpdateTalks()

  end

end

function checkExpSpeed()

  local player = g_game.getLocalPlayer()

  if not player then return end

  

  local currentExp = player:getExperience()

  local currentTime = g_clock.seconds()

  if player.lastExps ~= nil then

    player.expSpeed = (currentExp - player.lastExps[1][1])/(currentTime - player.lastExps[1][2])

    onLevelChange(player, player:getLevel(), player:getLevelPercent())

  else

    player.lastExps = {}

  end

  table.insert(player.lastExps, {currentExp, currentTime})

  if #player.lastExps > 30 then

    table.remove(player.lastExps, 1)

  end

end

function onMiniWindowClose()

  skillsButton:setOn(false)

  skillsButton:setOpacity(0.5)

end

function onSkillButtonClick(button)

  local percentBar = button:getChildById('percent')

  if percentBar then

    percentBar:setVisible(not percentBar:isVisible())

    if percentBar:isVisible() then

      button:setHeight(21)

    else

      button:setHeight(21 - 6)

    end

  end

end

function onExperienceChange(localPlayer, value)

  setSkillValue('level', value)

end

function onLevelChange(localPlayer, value, percent)

  setSkillValue('experience', localPlayer:getName())

  setSkillValue('experiencee', value)

  local text = tr('You have %s percent to go', 100 - percent) .. '\n' ..

               tr('%s of experience left', expToAdvance(localPlayer:getLevel(), localPlayer:getExperience()))

  if localPlayer.expSpeed ~= nil then

     local expPerHour = math.floor(localPlayer.expSpeed * 3600)

     if expPerHour > 0 then

        local nextLevelExp = expForLevel(localPlayer:getLevel()+1)

        local hoursLeft = (nextLevelExp - localPlayer:getExperience()) / expPerHour

        local minutesLeft = math.floor((hoursLeft - math.floor(hoursLeft))*60)

        hoursLeft = math.floor(hoursLeft)

        text = text .. '\n' .. tr('%d of experience per hour', expPerHour)

        text = text .. '\n' .. tr('Next level in %d hours and %d minutes', hoursLeft, minutesLeft)

     end

  end

  setSkillPercent('level', percent, text)

end

function onHealthChange(localPlayer, health, maxHealth)

  setSkillValue('health', health)

  checkAlert('health', health, maxHealth, 30)

end

function onManaChange(localPlayer, mana, maxMana)

  setSkillValue('mana', mana)

  checkAlert('mana', mana, maxMana, 30)

end

function onSoulChange(localPlayer, soul)

  setSkillValue('soul', soul)

end

function onFreeCapacityChange(localPlayer, freeCapacity)

  setSkillValue('capacity', freeCapacity)

  checkAlert('capacity', freeCapacity, localPlayer:getTotalCapacity(), 20)

end

function onTotalCapacityChange(localPlayer, totalCapacity)

  checkAlert('capacity', localPlayer:getFreeCapacity(), totalCapacity, 20)

end

function onStaminaChange(localPlayer, stamina)

  local hours = math.floor(stamina / 60)

  local minutes = stamina % 60

  if minutes < 10 then

    minutes = '0' .. minutes

  end

  setSkillValue('stamina', hours .. ":" .. minutes)

end

function onOfflineTrainingChange(localPlayer, offlineTrainingTime)

  if not g_game.getFeature(GameOfflineTrainingTime) then

    return

  end

  local hours = math.floor(offlineTrainingTime / 60)

  local minutes = offlineTrainingTime % 60

  if minutes < 10 then

    minutes = '0' .. minutes

  end

  local percent = 100 * offlineTrainingTime / (12 * 60) -- max is 12 hours

  setSkillValue('offlineTraining', hours .. ":" .. minutes)

  setSkillPercent('offlineTraining', percent, tr('You have %s percent', percent))

end

function onRegenerationChange(localPlayer, regenerationTime)

  if not g_game.getFeature(GamePlayerRegenerationTime) or regenerationTime < 0 then

    return

  end

  local minutes = math.floor(regenerationTime / 60)

  local seconds = regenerationTime % 60

  if seconds < 10 then

    seconds = '0' .. seconds

  end

  setSkillValue('regenerationTime', minutes .. ":" .. seconds)

  checkAlert('regenerationTime', regenerationTime, false, 300)

end

function onSpeedChange(localPlayer, speed)

  setSkillValue('speed', speed)

  onBaseSpeedChange(localPlayer, localPlayer:getBaseSpeed())

end

function onBaseSpeedChange(localPlayer, baseSpeed)

  setSkillBase('speed', localPlayer:getSpeed(), baseSpeed)

end

function onMagicLevelChange(localPlayer, magiclevel, percent)

  setSkillValue('magiclevel', magiclevel)

  setSkillPercent('magiclevel', percent, tr('You have %s percent to go', 100 - percent))

  onBaseMagicLevelChange(localPlayer, localPlayer:getBaseMagicLevel())

end

function onBaseMagicLevelChange(localPlayer, baseMagicLevel)

  setSkillBase('magiclevel', localPlayer:getMagicLevel(), baseMagicLevel)

end

function onSkillChange(localPlayer, id, level, percent)

  setSkillValue('skillId' .. id, level)

  setSkillPercent('skillId2', percent, tr('You have %s percent to go', 100 - percent))

  setSkillPercent('skillId3', percent, tr('You have %s percent to go', 100 - percent))

  setSkillPercent('skillId4', percent, tr('You have %s percent to go', 100 - percent))

  setSkillPercent('skillId5', percent, tr('You have %s percent to go', 100 - percent))

  setSkillPercent('skillId6', percent, tr('You have %s percent to go', 100 - percent))

  onBaseSkillChange(localPlayer, id, localPlayer:getSkillBaseLevel(id))

end

function onBaseSkillChange(localPlayer, id, baseLevel)

  setSkillBase('skillId'..id, localPlayer:getSkillLevel(id), baseLevel)

end

 

Agora, KarlKalvin disse:

Normalmente seu cliente deve tá dizendo um getSto quando loga tenta logar em um char já criado player, ve se ta aparecendo mensagens ao logar provavelmente pode ser aqui o erro

 

     doPlayerSendTextMessage(cid, MESSAGE_STATUS_DEFAULT, str)

e vo ve se o deadpool consegui ajuda mais em si vo da uma olhada nisso tbem preciso muito de ajuda nisso.

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

  • 0

usa:

Spoiler
skillsWindow = nilskillsButton = nillocal gyms = {   ["Brock0"] = "/images/game/pokemon/clan/8",   ["Brock1"] = "/images/game/pokemon/clan/16",   ["Misty0"] = "/images/game/pokemon/clan/7",   ["Misty1"] = "/images/game/pokemon/clan/15",   ["Surge0"] = "/images/game/pokemon/clan/6",   ["Surge1"] = "/images/game/pokemon/clan/14",   ["Erika0"] = "/images/game/pokemon/clan/5",   ["Erika1"] = "/images/game/pokemon/clan/13",   ["Sabrina0"] = "/images/game/pokemon/clan/4",   ["Sabrina1"] = "/images/game/pokemon/clan/12",   ["Koga0"] = "/images/game/pokemon/clan/3",   ["Koga1"] = "/images/game/pokemon/clan/11",   ["Blaine0"] = "/images/game/pokemon/clan/2",   ["Blaine1"] = "/images/game/pokemon/clan/10",   ["Kira0"] = "/images/game/pokemon/clan/1",   ["Kira1"] = "/images/game/pokemon/clan/9",}local imgs = {   [-1] = "/modules/game_skills/img/sem promotion", -- -1 quer dizer esta sem clan...   [1] = "/modules/game_skills/img/volcanic img",   [2] = "/modules/game_skills/img/seavell img",   [3] = "/modules/game_skills/img/orebound img",   [4] = "/modules/game_skills/img/wingeon img",   [5] = "/modules/game_skills/img/malefic img",   [6] = "/modules/game_skills/img/gardestrike img",   [7] = "/modules/game_skills/img/psycraft img",   [8] = "/modules/game_skills/img/naturia img",   [9] = "/modules/game_skills/img/raibolt img",}function init()  connect(LocalPlayer, {    onExperienceChange = onExperienceChange,    onLevelChange = onLevelChange,    onHealthChange = onHealthChange,    onManaChange = onManaChange,    onSoulChange = onSoulChange,    onFreeCapacityChange = onFreeCapacityChange,    onTotalCapacityChange = onTotalCapacityChange,    onStaminaChange = onStaminaChange,    onOfflineTrainingChange = onOfflineTrainingChange,    onRegenerationChange = onRegenerationChange,    onSpeedChange = onSpeedChange,    onBaseSpeedChange = onBaseSpeedChange,    onMagicLevelChange = onMagicLevelChange,    onBaseMagicLevelChange = onBaseMagicLevelChange,    onSkillChange = onSkillChange,    onBaseSkillChange = onBaseSkillChange }) connect(g_game, {    onGameStart = refresh,    onGameEnd = offline  })  connect(g_game, 'onTextMessage', getGym)  connect(g_game, 'onTextMessage', getParams)  connect(g_game, {onGameStart = changeImg})  skillsButton = modules.client_topmenu.addRightGameToggleButton('skillsButton', tr('skills') .. ' (Ctrl+S)', '/modules/game_skills/img/perfil_icon', toggle)  skillsButton:setOn(true)  skillsWindow = g_ui.loadUI('skills', modules.game_interface.getRightPanel()) -- skills  g_keyboard.bindKeyDown('Ctrl+S', toggle)  refresh()  skillsWindow:setup()endfunction init()  connect(LocalPlayer, {    onExperienceChange = onExperienceChange,    onLevelChange = onLevelChange,    onHealthChange = onHealthChange,    onManaChange = onManaChange,    onSoulChange = onSoulChange,    onFreeCapacityChange = onFreeCapacityChange,    onTotalCapacityChange = onTotalCapacityChange,    onStaminaChange = onStaminaChange,    onOfflineTrainingChange = onOfflineTrainingChange,    onRegenerationChange = onRegenerationChange,    onSpeedChange = onSpeedChange,    onBaseSpeedChange = onBaseSpeedChange,    onMagicLevelChange = onMagicLevelChange,    onBaseMagicLevelChange = onBaseMagicLevelChange,    onSkillChange = onSkillChange,    onBaseSkillChange = onBaseSkillChange  }) connect(g_game, {    onGameStart = refresh,    onGameEnd = offline  })  connect(g_game, 'onTextMessage', getGym)  connect(g_game, 'onTextMessage', getParams)  connect(g_game, {onGameStart = changeImg})  skillsButton = modules.client_topmenu.addRightGameToggleButton('skillsButton', tr('skills') .. ' (Ctrl+S)', '/modules/game_skills/img/perfil_icon', toggle)  skillsButton:setOn(true)  skillsWindow = g_ui.loadUI('skills', modules.game_interface.getRightPanel()) -- skills  g_keyboard.bindKeyDown('Ctrl+S', toggle)  refresh()  skillsWindow:setup()endfunction autoUpdateTalks()  local player = g_game.getLocalPlayer()  if not player then return end----------  -- g_game.talk("#getGym# Brock")  -- g_game.talk("#getGym# Misty")  -- g_game.talk("#getGym# Surge")  -- g_game.talk("#getGym# Erika")  -- g_game.talk("#getGym# Sabrina")  -- g_game.talk("#getGym# Koga")  -- g_game.talk("#getGym# Blaine")  -- g_game.talk("#getGym# Kira")----------endfunction getGym(mode, text)  if not g_game.isOnline() then return end  if mode == MessageModes.Failure then     if text:find("#getBadges#") thenlocal t = string.explode(text, " ")local badges = skillsWindow:recursiveGetChildById("gym"..t[2])badges:setImageSource(gyms[t[2]..""..tonumber(t[3])])endendendfunction changeImg()  local player = g_game.getLocalPlayer()  if not player then return end  g_game.talk("#getSto# 86228")endfunction getParams(mode, text)if not g_game.isOnline() then return end   if mode == MessageModes.Failure then       if text:find("#getSto#") then         local icon = skillsWindow:recursiveGetChildById("clanicon")         if icon then            local t = string.explode(text, " ")            icon:setImageSource(imgs[tonumber(t[2])])         end      end   endendfunction expForLevel(level)  return math.floor((50*level*level*level)/3 - 100*level*level + (850*level)/3 - 200)endfunction expToAdvance(currentLevel, currentExp)  return expForLevel(currentLevel+1) - currentExpendfunction resetSkillColor(id)  local skill = skillsWindow:recursiveGetChildById(id)  local widget = skill:getChildById('value')  widget:setColor('#bbbbbb')endfunction setSkillBase(id, value, baseValue)  if baseValue <= 0 or value < 0 then    return  end  local skill = skillsWindow:recursiveGetChildById(id)  local widget = skill:getChildById('value')  if value > baseValue then    widget:setColor('#008b00') -- green    skill:setTooltip(baseValue .. ' +' .. (value - baseValue))  elseif value < baseValue then    widget:setColor('#b22222') -- red    skill:setTooltip(baseValue .. ' ' .. (value - baseValue))  else    widget:setColor('#bbbbbb') -- default    skill:removeTooltip()  endendfunction setSkillValue(id, value)  local skill = skillsWindow:recursiveGetChildById(id)  local widget = skill:getChildById('value')  widget:setText(value)endfunction setSkillColor(id, value)  local skill = skillsWindow:recursiveGetChildById(id)  local widget = skill:getChildById('value')  widget:setColor(value)endfunction setSkillTooltip(id, value)  local skill = skillsWindow:recursiveGetChildById(id)  local widget = skill:getChildById('value')  widget:setTooltip(value)endfunction setSkillPercent(id, percent, tooltip)  local skill = skillsWindow:recursiveGetChildById(id)  local widget = skill:getChildById('percent')  widget:setPercent(math.floor(percent))  if tooltip then    widget:setTooltip(tooltip)  endendfunction checkAlert(id, value, maxValue, threshold, greaterThan)  if greaterThan == nil then greaterThan = false end  local alert = false  -- maxValue can be set to false to check value and threshold  -- used for regeneration checking  if type(maxValue) == 'boolean' then    if maxValue then      return    end    if greaterThan then      if value > threshold then        alert = true      end    else      if value < threshold then        alert = true      end    end  elseif type(maxValue) == 'number' then    if maxValue < 0 then      return    end    local percent = math.floor((value / maxValue) * 100)    if greaterThan then      if percent > threshold then        alert = true      end    else      if percent < threshold then        alert = true      end    end  end  if alert then    setSkillColor(id, '#b22222') -- red  else    resetSkillColor(id)  endendfunction update()  local offlineTraining = skillsWindow:recursiveGetChildById('offlineTraining')  if not g_game.getFeature(GameOfflineTrainingTime) then    offlineTraining:hide()  else    offlineTraining:show()  end  local regenerationTime = skillsWindow:recursiveGetChildById('regenerationTime')  if not g_game.getFeature(GamePlayerRegenerationTime) then    regenerationTime:hide()  else    regenerationTime:show()  endendfunction refresh()  local player = g_game.getLocalPlayer()  if not player then return end  autoUpdateTalks()    if expSpeedEvent then expSpeedEvent:cancel() end  expSpeedEvent = cycleEvent(checkExpSpeed, 30*1000)  onExperienceChange(player, player:getExperience())  onLevelChange(player, player:getLevel(), player:getLevelPercent())  onHealthChange(player, player:getHealth(), player:getMaxHealth())  onManaChange(player, player:getMana(), player:getMaxMana())  onSoulChange(player, player:getSoul())  onFreeCapacityChange(player, player:getFreeCapacity())  onStaminaChange(player, player:getStamina())  onMagicLevelChange(player, player:getMagicLevel(), player:getMagicLevelPercent())  onOfflineTrainingChange(player, player:getOfflineTrainingTime())  onRegenerationChange(player, player:getRegenerationTime())  onSpeedChange(player, player:getSpeed())  for i=0,6 do    onSkillChange(player, i, player:getSkillLevel(i), player:getSkillLevelPercent(i))    onBaseSkillChange(player, i, player:getSkillBaseLevel(i))  end  update()  local contentsPanel = skillsWindow:getChildById('contentsPanel')  skillsWindow:setContentMinimumHeight(110)  skillsWindow:setContentMaximumHeight(292)endfunction offline()  if expSpeedEvent then expSpeedEvent:cancel() expSpeedEvent = nil endendfunction toggle()  if skillsButton:isOn() then    skillsWindow:close()    skillsButton:setOn(false)  else    skillsWindow:open()    skillsButton:setOn(true)    skillsButton:setOpacity(1.0)    autoUpdateTalks()  endendfunction checkExpSpeed()  local player = g_game.getLocalPlayer()  if not player then return end    local currentExp = player:getExperience()  local currentTime = g_clock.seconds()  if player.lastExps ~= nil then    player.expSpeed = (currentExp - player.lastExps[1][1])/(currentTime - player.lastExps[1][2])    onLevelChange(player, player:getLevel(), player:getLevelPercent())  else    player.lastExps = {}  end  table.insert(player.lastExps, {currentExp, currentTime})  if #player.lastExps > 30 then    table.remove(player.lastExps, 1)  endendfunction onMiniWindowClose()  skillsButton:setOn(false)  skillsButton:setOpacity(0.5)endfunction onSkillButtonClick(button)  local percentBar = button:getChildById('percent')  if percentBar then    percentBar:setVisible(not percentBar:isVisible())    if percentBar:isVisible() then      button:setHeight(21)    else      button:setHeight(21 - 6)    end  endendfunction onExperienceChange(localPlayer, value)  setSkillValue('level', value)endfunction onLevelChange(localPlayer, value, percent)  setSkillValue('experience', localPlayer:getName())  setSkillValue('experiencee', value)  local text = tr('You have %s percent to go', 100 - percent) .. '\n' ..               tr('%s of experience left', expToAdvance(localPlayer:getLevel(), localPlayer:getExperience()))  if localPlayer.expSpeed ~= nil then     local expPerHour = math.floor(localPlayer.expSpeed * 3600)     if expPerHour > 0 then        local nextLevelExp = expForLevel(localPlayer:getLevel()+1)        local hoursLeft = (nextLevelExp - localPlayer:getExperience()) / expPerHour        local minutesLeft = math.floor((hoursLeft - math.floor(hoursLeft))*60)        hoursLeft = math.floor(hoursLeft)        text = text .. '\n' .. tr('%d of experience per hour', expPerHour)        text = text .. '\n' .. tr('Next level in %d hours and %d minutes', hoursLeft, minutesLeft)     end  end  setSkillPercent('level', percent, text)endfunction onHealthChange(localPlayer, health, maxHealth)  setSkillValue('health', health)  checkAlert('health', health, maxHealth, 30)endfunction onManaChange(localPlayer, mana, maxMana)  setSkillValue('mana', mana)  checkAlert('mana', mana, maxMana, 30)endfunction onSoulChange(localPlayer, soul)  setSkillValue('soul', soul)endfunction onFreeCapacityChange(localPlayer, freeCapacity)  setSkillValue('capacity', freeCapacity)  checkAlert('capacity', freeCapacity, localPlayer:getTotalCapacity(), 20)endfunction onTotalCapacityChange(localPlayer, totalCapacity)  checkAlert('capacity', localPlayer:getFreeCapacity(), totalCapacity, 20)endfunction onStaminaChange(localPlayer, stamina)  local hours = math.floor(stamina / 60)  local minutes = stamina % 60  if minutes < 10 then    minutes = '0' .. minutes  end  setSkillValue('stamina', hours .. ":" .. minutes)endfunction onOfflineTrainingChange(localPlayer, offlineTrainingTime)  if not g_game.getFeature(GameOfflineTrainingTime) then    return  end  local hours = math.floor(offlineTrainingTime / 60)  local minutes = offlineTrainingTime % 60  if minutes < 10 then    minutes = '0' .. minutes  end  local percent = 100 * offlineTrainingTime / (12 * 60) -- max is 12 hours  setSkillValue('offlineTraining', hours .. ":" .. minutes)  setSkillPercent('offlineTraining', percent, tr('You have %s percent', percent))endfunction onRegenerationChange(localPlayer, regenerationTime)  if not g_game.getFeature(GamePlayerRegenerationTime) or regenerationTime < 0 then    return  end  local minutes = math.floor(regenerationTime / 60)  local seconds = regenerationTime % 60  if seconds < 10 then    seconds = '0' .. seconds  end  setSkillValue('regenerationTime', minutes .. ":" .. seconds)  checkAlert('regenerationTime', regenerationTime, false, 300)endfunction onSpeedChange(localPlayer, speed)  setSkillValue('speed', speed)  onBaseSpeedChange(localPlayer, localPlayer:getBaseSpeed())endfunction onBaseSpeedChange(localPlayer, baseSpeed)  setSkillBase('speed', localPlayer:getSpeed(), baseSpeed)endfunction onMagicLevelChange(localPlayer, magiclevel, percent)  setSkillValue('magiclevel', magiclevel)  setSkillPercent('magiclevel', percent, tr('You have %s percent to go', 100 - percent))  onBaseMagicLevelChange(localPlayer, localPlayer:getBaseMagicLevel())endfunction onBaseMagicLevelChange(localPlayer, baseMagicLevel)  setSkillBase('magiclevel', localPlayer:getMagicLevel(), baseMagicLevel)endfunction onSkillChange(localPlayer, id, level, percent)  setSkillValue('skillId' .. id, level)  setSkillPercent('skillId2', percent, tr('You have %s percent to go', 100 - percent))  setSkillPercent('skillId3', percent, tr('You have %s percent to go', 100 - percent))  setSkillPercent('skillId4', percent, tr('You have %s percent to go', 100 - percent))  setSkillPercent('skillId5', percent, tr('You have %s percent to go', 100 - percent))  setSkillPercent('skillId6', percent, tr('You have %s percent to go', 100 - percent))  onBaseSkillChange(localPlayer, id, localPlayer:getSkillBaseLevel(id))endfunction onBaseSkillChange(localPlayer, id, baseLevel)  setSkillBase('skillId'..id, localPlayer:getSkillLevel(id), baseLevel)end

 

 

Link para o comentário
Compartilhar em outros sites

  • 0
Agora, Deadpool disse:

usa:

  Ocultar conteúdo
skillsWindow = nilskillsButton = nillocal gyms = {   ["Brock0"] = "/images/game/pokemon/clan/8",   ["Brock1"] = "/images/game/pokemon/clan/16",   ["Misty0"] = "/images/game/pokemon/clan/7",   ["Misty1"] = "/images/game/pokemon/clan/15",   ["Surge0"] = "/images/game/pokemon/clan/6",   ["Surge1"] = "/images/game/pokemon/clan/14",   ["Erika0"] = "/images/game/pokemon/clan/5",   ["Erika1"] = "/images/game/pokemon/clan/13",   ["Sabrina0"] = "/images/game/pokemon/clan/4",   ["Sabrina1"] = "/images/game/pokemon/clan/12",   ["Koga0"] = "/images/game/pokemon/clan/3",   ["Koga1"] = "/images/game/pokemon/clan/11",   ["Blaine0"] = "/images/game/pokemon/clan/2",   ["Blaine1"] = "/images/game/pokemon/clan/10",   ["Kira0"] = "/images/game/pokemon/clan/1",   ["Kira1"] = "/images/game/pokemon/clan/9",}local imgs = {   [-1] = "/modules/game_skills/img/sem promotion", -- -1 quer dizer esta sem clan...   [1] = "/modules/game_skills/img/volcanic img",   [2] = "/modules/game_skills/img/seavell img",   [3] = "/modules/game_skills/img/orebound img",   [4] = "/modules/game_skills/img/wingeon img",   [5] = "/modules/game_skills/img/malefic img",   [6] = "/modules/game_skills/img/gardestrike img",   [7] = "/modules/game_skills/img/psycraft img",   [8] = "/modules/game_skills/img/naturia img",   [9] = "/modules/game_skills/img/raibolt img",}function init()  connect(LocalPlayer, {    onExperienceChange = onExperienceChange,    onLevelChange = onLevelChange,    onHealthChange = onHealthChange,    onManaChange = onManaChange,    onSoulChange = onSoulChange,    onFreeCapacityChange = onFreeCapacityChange,    onTotalCapacityChange = onTotalCapacityChange,    onStaminaChange = onStaminaChange,    onOfflineTrainingChange = onOfflineTrainingChange,    onRegenerationChange = onRegenerationChange,    onSpeedChange = onSpeedChange,    onBaseSpeedChange = onBaseSpeedChange,    onMagicLevelChange = onMagicLevelChange,    onBaseMagicLevelChange = onBaseMagicLevelChange,    onSkillChange = onSkillChange,    onBaseSkillChange = onBaseSkillChange }) connect(g_game, {    onGameStart = refresh,    onGameEnd = offline  })  connect(g_game, 'onTextMessage', getGym)  connect(g_game, 'onTextMessage', getParams)  connect(g_game, {onGameStart = changeImg})  skillsButton = modules.client_topmenu.addRightGameToggleButton('skillsButton', tr('skills') .. ' (Ctrl+S)', '/modules/game_skills/img/perfil_icon', toggle)  skillsButton:setOn(true)  skillsWindow = g_ui.loadUI('skills', modules.game_interface.getRightPanel()) -- skills  g_keyboard.bindKeyDown('Ctrl+S', toggle)  refresh()  skillsWindow:setup()endfunction init()  connect(LocalPlayer, {    onExperienceChange = onExperienceChange,    onLevelChange = onLevelChange,    onHealthChange = onHealthChange,    onManaChange = onManaChange,    onSoulChange = onSoulChange,    onFreeCapacityChange = onFreeCapacityChange,    onTotalCapacityChange = onTotalCapacityChange,    onStaminaChange = onStaminaChange,    onOfflineTrainingChange = onOfflineTrainingChange,    onRegenerationChange = onRegenerationChange,    onSpeedChange = onSpeedChange,    onBaseSpeedChange = onBaseSpeedChange,    onMagicLevelChange = onMagicLevelChange,    onBaseMagicLevelChange = onBaseMagicLevelChange,    onSkillChange = onSkillChange,    onBaseSkillChange = onBaseSkillChange  }) connect(g_game, {    onGameStart = refresh,    onGameEnd = offline  })  connect(g_game, 'onTextMessage', getGym)  connect(g_game, 'onTextMessage', getParams)  connect(g_game, {onGameStart = changeImg})  skillsButton = modules.client_topmenu.addRightGameToggleButton('skillsButton', tr('skills') .. ' (Ctrl+S)', '/modules/game_skills/img/perfil_icon', toggle)  skillsButton:setOn(true)  skillsWindow = g_ui.loadUI('skills', modules.game_interface.getRightPanel()) -- skills  g_keyboard.bindKeyDown('Ctrl+S', toggle)  refresh()  skillsWindow:setup()endfunction autoUpdateTalks()  local player = g_game.getLocalPlayer()  if not player then return end----------  -- g_game.talk("#getGym# Brock")  -- g_game.talk("#getGym# Misty")  -- g_game.talk("#getGym# Surge")  -- g_game.talk("#getGym# Erika")  -- g_game.talk("#getGym# Sabrina")  -- g_game.talk("#getGym# Koga")  -- g_game.talk("#getGym# Blaine")  -- g_game.talk("#getGym# Kira")----------endfunction getGym(mode, text)  if not g_game.isOnline() then return end  if mode == MessageModes.Failure then     if text:find("#getBadges#") thenlocal t = string.explode(text, " ")local badges = skillsWindow:recursiveGetChildById("gym"..t[2])badges:setImageSource(gyms[t[2]..""..tonumber(t[3])])endendendfunction changeImg()  local player = g_game.getLocalPlayer()  if not player then return end  g_game.talk("#getSto# 86228")endfunction getParams(mode, text)if not g_game.isOnline() then return end   if mode == MessageModes.Failure then       if text:find("#getSto#") then         local icon = skillsWindow:recursiveGetChildById("clanicon")         if icon then            local t = string.explode(text, " ")            icon:setImageSource(imgs[tonumber(t[2])])         end      end   endendfunction expForLevel(level)  return math.floor((50*level*level*level)/3 - 100*level*level + (850*level)/3 - 200)endfunction expToAdvance(currentLevel, currentExp)  return expForLevel(currentLevel+1) - currentExpendfunction resetSkillColor(id)  local skill = skillsWindow:recursiveGetChildById(id)  local widget = skill:getChildById('value')  widget:setColor('#bbbbbb')endfunction setSkillBase(id, value, baseValue)  if baseValue <= 0 or value < 0 then    return  end  local skill = skillsWindow:recursiveGetChildById(id)  local widget = skill:getChildById('value')  if value > baseValue then    widget:setColor('#008b00') -- green    skill:setTooltip(baseValue .. ' +' .. (value - baseValue))  elseif value < baseValue then    widget:setColor('#b22222') -- red    skill:setTooltip(baseValue .. ' ' .. (value - baseValue))  else    widget:setColor('#bbbbbb') -- default    skill:removeTooltip()  endendfunction setSkillValue(id, value)  local skill = skillsWindow:recursiveGetChildById(id)  local widget = skill:getChildById('value')  widget:setText(value)endfunction setSkillColor(id, value)  local skill = skillsWindow:recursiveGetChildById(id)  local widget = skill:getChildById('value')  widget:setColor(value)endfunction setSkillTooltip(id, value)  local skill = skillsWindow:recursiveGetChildById(id)  local widget = skill:getChildById('value')  widget:setTooltip(value)endfunction setSkillPercent(id, percent, tooltip)  local skill = skillsWindow:recursiveGetChildById(id)  local widget = skill:getChildById('percent')  widget:setPercent(math.floor(percent))  if tooltip then    widget:setTooltip(tooltip)  endendfunction checkAlert(id, value, maxValue, threshold, greaterThan)  if greaterThan == nil then greaterThan = false end  local alert = false  -- maxValue can be set to false to check value and threshold  -- used for regeneration checking  if type(maxValue) == 'boolean' then    if maxValue then      return    end    if greaterThan then      if value > threshold then        alert = true      end    else      if value < threshold then        alert = true      end    end  elseif type(maxValue) == 'number' then    if maxValue < 0 then      return    end    local percent = math.floor((value / maxValue) * 100)    if greaterThan then      if percent > threshold then        alert = true      end    else      if percent < threshold then        alert = true      end    end  end  if alert then    setSkillColor(id, '#b22222') -- red  else    resetSkillColor(id)  endendfunction update()  local offlineTraining = skillsWindow:recursiveGetChildById('offlineTraining')  if not g_game.getFeature(GameOfflineTrainingTime) then    offlineTraining:hide()  else    offlineTraining:show()  end  local regenerationTime = skillsWindow:recursiveGetChildById('regenerationTime')  if not g_game.getFeature(GamePlayerRegenerationTime) then    regenerationTime:hide()  else    regenerationTime:show()  endendfunction refresh()  local player = g_game.getLocalPlayer()  if not player then return end  autoUpdateTalks()    if expSpeedEvent then expSpeedEvent:cancel() end  expSpeedEvent = cycleEvent(checkExpSpeed, 30*1000)  onExperienceChange(player, player:getExperience())  onLevelChange(player, player:getLevel(), player:getLevelPercent())  onHealthChange(player, player:getHealth(), player:getMaxHealth())  onManaChange(player, player:getMana(), player:getMaxMana())  onSoulChange(player, player:getSoul())  onFreeCapacityChange(player, player:getFreeCapacity())  onStaminaChange(player, player:getStamina())  onMagicLevelChange(player, player:getMagicLevel(), player:getMagicLevelPercent())  onOfflineTrainingChange(player, player:getOfflineTrainingTime())  onRegenerationChange(player, player:getRegenerationTime())  onSpeedChange(player, player:getSpeed())  for i=0,6 do    onSkillChange(player, i, player:getSkillLevel(i), player:getSkillLevelPercent(i))    onBaseSkillChange(player, i, player:getSkillBaseLevel(i))  end  update()  local contentsPanel = skillsWindow:getChildById('contentsPanel')  skillsWindow:setContentMinimumHeight(110)  skillsWindow:setContentMaximumHeight(292)endfunction offline()  if expSpeedEvent then expSpeedEvent:cancel() expSpeedEvent = nil endendfunction toggle()  if skillsButton:isOn() then    skillsWindow:close()    skillsButton:setOn(false)  else    skillsWindow:open()    skillsButton:setOn(true)    skillsButton:setOpacity(1.0)    autoUpdateTalks()  endendfunction checkExpSpeed()  local player = g_game.getLocalPlayer()  if not player then return end    local currentExp = player:getExperience()  local currentTime = g_clock.seconds()  if player.lastExps ~= nil then    player.expSpeed = (currentExp - player.lastExps[1][1])/(currentTime - player.lastExps[1][2])    onLevelChange(player, player:getLevel(), player:getLevelPercent())  else    player.lastExps = {}  end  table.insert(player.lastExps, {currentExp, currentTime})  if #player.lastExps > 30 then    table.remove(player.lastExps, 1)  endendfunction onMiniWindowClose()  skillsButton:setOn(false)  skillsButton:setOpacity(0.5)endfunction onSkillButtonClick(button)  local percentBar = button:getChildById('percent')  if percentBar then    percentBar:setVisible(not percentBar:isVisible())    if percentBar:isVisible() then      button:setHeight(21)    else      button:setHeight(21 - 6)    end  endendfunction onExperienceChange(localPlayer, value)  setSkillValue('level', value)endfunction onLevelChange(localPlayer, value, percent)  setSkillValue('experience', localPlayer:getName())  setSkillValue('experiencee', value)  local text = tr('You have %s percent to go', 100 - percent) .. '\n' ..               tr('%s of experience left', expToAdvance(localPlayer:getLevel(), localPlayer:getExperience()))  if localPlayer.expSpeed ~= nil then     local expPerHour = math.floor(localPlayer.expSpeed * 3600)     if expPerHour > 0 then        local nextLevelExp = expForLevel(localPlayer:getLevel()+1)        local hoursLeft = (nextLevelExp - localPlayer:getExperience()) / expPerHour        local minutesLeft = math.floor((hoursLeft - math.floor(hoursLeft))*60)        hoursLeft = math.floor(hoursLeft)        text = text .. '\n' .. tr('%d of experience per hour', expPerHour)        text = text .. '\n' .. tr('Next level in %d hours and %d minutes', hoursLeft, minutesLeft)     end  end  setSkillPercent('level', percent, text)endfunction onHealthChange(localPlayer, health, maxHealth)  setSkillValue('health', health)  checkAlert('health', health, maxHealth, 30)endfunction onManaChange(localPlayer, mana, maxMana)  setSkillValue('mana', mana)  checkAlert('mana', mana, maxMana, 30)endfunction onSoulChange(localPlayer, soul)  setSkillValue('soul', soul)endfunction onFreeCapacityChange(localPlayer, freeCapacity)  setSkillValue('capacity', freeCapacity)  checkAlert('capacity', freeCapacity, localPlayer:getTotalCapacity(), 20)endfunction onTotalCapacityChange(localPlayer, totalCapacity)  checkAlert('capacity', localPlayer:getFreeCapacity(), totalCapacity, 20)endfunction onStaminaChange(localPlayer, stamina)  local hours = math.floor(stamina / 60)  local minutes = stamina % 60  if minutes < 10 then    minutes = '0' .. minutes  end  setSkillValue('stamina', hours .. ":" .. minutes)endfunction onOfflineTrainingChange(localPlayer, offlineTrainingTime)  if not g_game.getFeature(GameOfflineTrainingTime) then    return  end  local hours = math.floor(offlineTrainingTime / 60)  local minutes = offlineTrainingTime % 60  if minutes < 10 then    minutes = '0' .. minutes  end  local percent = 100 * offlineTrainingTime / (12 * 60) -- max is 12 hours  setSkillValue('offlineTraining', hours .. ":" .. minutes)  setSkillPercent('offlineTraining', percent, tr('You have %s percent', percent))endfunction onRegenerationChange(localPlayer, regenerationTime)  if not g_game.getFeature(GamePlayerRegenerationTime) or regenerationTime < 0 then    return  end  local minutes = math.floor(regenerationTime / 60)  local seconds = regenerationTime % 60  if seconds < 10 then    seconds = '0' .. seconds  end  setSkillValue('regenerationTime', minutes .. ":" .. seconds)  checkAlert('regenerationTime', regenerationTime, false, 300)endfunction onSpeedChange(localPlayer, speed)  setSkillValue('speed', speed)  onBaseSpeedChange(localPlayer, localPlayer:getBaseSpeed())endfunction onBaseSpeedChange(localPlayer, baseSpeed)  setSkillBase('speed', localPlayer:getSpeed(), baseSpeed)endfunction onMagicLevelChange(localPlayer, magiclevel, percent)  setSkillValue('magiclevel', magiclevel)  setSkillPercent('magiclevel', percent, tr('You have %s percent to go', 100 - percent))  onBaseMagicLevelChange(localPlayer, localPlayer:getBaseMagicLevel())endfunction onBaseMagicLevelChange(localPlayer, baseMagicLevel)  setSkillBase('magiclevel', localPlayer:getMagicLevel(), baseMagicLevel)endfunction onSkillChange(localPlayer, id, level, percent)  setSkillValue('skillId' .. id, level)  setSkillPercent('skillId2', percent, tr('You have %s percent to go', 100 - percent))  setSkillPercent('skillId3', percent, tr('You have %s percent to go', 100 - percent))  setSkillPercent('skillId4', percent, tr('You have %s percent to go', 100 - percent))  setSkillPercent('skillId5', percent, tr('You have %s percent to go', 100 - percent))  setSkillPercent('skillId6', percent, tr('You have %s percent to go', 100 - percent))  onBaseSkillChange(localPlayer, id, localPlayer:getSkillBaseLevel(id))endfunction onBaseSkillChange(localPlayer, id, baseLevel)  setSkillBase('skillId'..id, localPlayer:getSkillLevel(id), baseLevel)end

 

 

Bom na quele bug se conseguil arruma ^.^

 

porem aparece esta mensagem agora. \/

 

01:26 Account Manager: Please read the latest message that I have specified, I don't understand the current requested action.

Link para o comentário
Compartilhar em outros sites

  • 0

desculpa, esqueci de mais um..

Spoiler
skillsWindow = nilskillsButton = nillocal gyms = {   ["Brock0"] = "/images/game/pokemon/clan/8",   ["Brock1"] = "/images/game/pokemon/clan/16",   ["Misty0"] = "/images/game/pokemon/clan/7",   ["Misty1"] = "/images/game/pokemon/clan/15",   ["Surge0"] = "/images/game/pokemon/clan/6",   ["Surge1"] = "/images/game/pokemon/clan/14",   ["Erika0"] = "/images/game/pokemon/clan/5",   ["Erika1"] = "/images/game/pokemon/clan/13",   ["Sabrina0"] = "/images/game/pokemon/clan/4",   ["Sabrina1"] = "/images/game/pokemon/clan/12",   ["Koga0"] = "/images/game/pokemon/clan/3",   ["Koga1"] = "/images/game/pokemon/clan/11",   ["Blaine0"] = "/images/game/pokemon/clan/2",   ["Blaine1"] = "/images/game/pokemon/clan/10",   ["Kira0"] = "/images/game/pokemon/clan/1",   ["Kira1"] = "/images/game/pokemon/clan/9",}local imgs = {   [-1] = "/modules/game_skills/img/sem promotion", -- -1 quer dizer esta sem clan...   [1] = "/modules/game_skills/img/volcanic img",   [2] = "/modules/game_skills/img/seavell img",   [3] = "/modules/game_skills/img/orebound img",   [4] = "/modules/game_skills/img/wingeon img",   [5] = "/modules/game_skills/img/malefic img",   [6] = "/modules/game_skills/img/gardestrike img",   [7] = "/modules/game_skills/img/psycraft img",   [8] = "/modules/game_skills/img/naturia img",   [9] = "/modules/game_skills/img/raibolt img",}function init()  connect(LocalPlayer, {    onExperienceChange = onExperienceChange,    onLevelChange = onLevelChange,    onHealthChange = onHealthChange,    onManaChange = onManaChange,    onSoulChange = onSoulChange,    onFreeCapacityChange = onFreeCapacityChange,    onTotalCapacityChange = onTotalCapacityChange,    onStaminaChange = onStaminaChange,    onOfflineTrainingChange = onOfflineTrainingChange,    onRegenerationChange = onRegenerationChange,    onSpeedChange = onSpeedChange,    onBaseSpeedChange = onBaseSpeedChange,    onMagicLevelChange = onMagicLevelChange,    onBaseMagicLevelChange = onBaseMagicLevelChange,    onSkillChange = onSkillChange,    onBaseSkillChange = onBaseSkillChange }) connect(g_game, {    onGameStart = refresh,    onGameEnd = offline  })  connect(g_game, 'onTextMessage', getGym)  connect(g_game, 'onTextMessage', getParams)  connect(g_game, {onGameStart = changeImg})  skillsButton = modules.client_topmenu.addRightGameToggleButton('skillsButton', tr('skills') .. ' (Ctrl+S)', '/modules/game_skills/img/perfil_icon', toggle)  skillsButton:setOn(true)  skillsWindow = g_ui.loadUI('skills', modules.game_interface.getRightPanel()) -- skills  g_keyboard.bindKeyDown('Ctrl+S', toggle)  refresh()  skillsWindow:setup()endfunction init()  connect(LocalPlayer, {    onExperienceChange = onExperienceChange,    onLevelChange = onLevelChange,    onHealthChange = onHealthChange,    onManaChange = onManaChange,    onSoulChange = onSoulChange,    onFreeCapacityChange = onFreeCapacityChange,    onTotalCapacityChange = onTotalCapacityChange,    onStaminaChange = onStaminaChange,    onOfflineTrainingChange = onOfflineTrainingChange,    onRegenerationChange = onRegenerationChange,    onSpeedChange = onSpeedChange,    onBaseSpeedChange = onBaseSpeedChange,    onMagicLevelChange = onMagicLevelChange,    onBaseMagicLevelChange = onBaseMagicLevelChange,    onSkillChange = onSkillChange,    onBaseSkillChange = onBaseSkillChange  }) connect(g_game, {    onGameStart = refresh,    onGameEnd = offline  })  connect(g_game, 'onTextMessage', getGym)  connect(g_game, 'onTextMessage', getParams)  connect(g_game, {onGameStart = changeImg})  skillsButton = modules.client_topmenu.addRightGameToggleButton('skillsButton', tr('skills') .. ' (Ctrl+S)', '/modules/game_skills/img/perfil_icon', toggle)  skillsButton:setOn(true)  skillsWindow = g_ui.loadUI('skills', modules.game_interface.getRightPanel()) -- skills  g_keyboard.bindKeyDown('Ctrl+S', toggle)  refresh()  skillsWindow:setup()endfunction autoUpdateTalks()  local player = g_game.getLocalPlayer()  if not player then return end----------  -- g_game.talk("#getGym# Brock")  -- g_game.talk("#getGym# Misty")  -- g_game.talk("#getGym# Surge")  -- g_game.talk("#getGym# Erika")  -- g_game.talk("#getGym# Sabrina")  -- g_game.talk("#getGym# Koga")  -- g_game.talk("#getGym# Blaine")  -- g_game.talk("#getGym# Kira")----------endfunction getGym(mode, text)  if not g_game.isOnline() then return end  if mode == MessageModes.Failure then     if text:find("#getBadges#") thenlocal t = string.explode(text, " ")local badges = skillsWindow:recursiveGetChildById("gym"..t[2])badges:setImageSource(gyms[t[2]..""..tonumber(t[3])])endendendfunction changeImg()  local player = g_game.getLocalPlayer()  if not player then return end--  g_game.talk("#getSto# 86228")endfunction getParams(mode, text)if not g_game.isOnline() then return end   if mode == MessageModes.Failure then       if text:find("#getSto#") then         local icon = skillsWindow:recursiveGetChildById("clanicon")         if icon then            local t = string.explode(text, " ")            icon:setImageSource(imgs[tonumber(t[2])])         end      end   endendfunction expForLevel(level)  return math.floor((50*level*level*level)/3 - 100*level*level + (850*level)/3 - 200)endfunction expToAdvance(currentLevel, currentExp)  return expForLevel(currentLevel+1) - currentExpendfunction resetSkillColor(id)  local skill = skillsWindow:recursiveGetChildById(id)  local widget = skill:getChildById('value')  widget:setColor('#bbbbbb')endfunction setSkillBase(id, value, baseValue)  if baseValue <= 0 or value < 0 then    return  end  local skill = skillsWindow:recursiveGetChildById(id)  local widget = skill:getChildById('value')  if value > baseValue then    widget:setColor('#008b00') -- green    skill:setTooltip(baseValue .. ' +' .. (value - baseValue))  elseif value < baseValue then    widget:setColor('#b22222') -- red    skill:setTooltip(baseValue .. ' ' .. (value - baseValue))  else    widget:setColor('#bbbbbb') -- default    skill:removeTooltip()  endendfunction setSkillValue(id, value)  local skill = skillsWindow:recursiveGetChildById(id)  local widget = skill:getChildById('value')  widget:setText(value)endfunction setSkillColor(id, value)  local skill = skillsWindow:recursiveGetChildById(id)  local widget = skill:getChildById('value')  widget:setColor(value)endfunction setSkillTooltip(id, value)  local skill = skillsWindow:recursiveGetChildById(id)  local widget = skill:getChildById('value')  widget:setTooltip(value)endfunction setSkillPercent(id, percent, tooltip)  local skill = skillsWindow:recursiveGetChildById(id)  local widget = skill:getChildById('percent')  widget:setPercent(math.floor(percent))  if tooltip then    widget:setTooltip(tooltip)  endendfunction checkAlert(id, value, maxValue, threshold, greaterThan)  if greaterThan == nil then greaterThan = false end  local alert = false  -- maxValue can be set to false to check value and threshold  -- used for regeneration checking  if type(maxValue) == 'boolean' then    if maxValue then      return    end    if greaterThan then      if value > threshold then        alert = true      end    else      if value < threshold then        alert = true      end    end  elseif type(maxValue) == 'number' then    if maxValue < 0 then      return    end    local percent = math.floor((value / maxValue) * 100)    if greaterThan then      if percent > threshold then        alert = true      end    else      if percent < threshold then        alert = true      end    end  end  if alert then    setSkillColor(id, '#b22222') -- red  else    resetSkillColor(id)  endendfunction update()  local offlineTraining = skillsWindow:recursiveGetChildById('offlineTraining')  if not g_game.getFeature(GameOfflineTrainingTime) then    offlineTraining:hide()  else    offlineTraining:show()  end  local regenerationTime = skillsWindow:recursiveGetChildById('regenerationTime')  if not g_game.getFeature(GamePlayerRegenerationTime) then    regenerationTime:hide()  else    regenerationTime:show()  endendfunction refresh()  local player = g_game.getLocalPlayer()  if not player then return end  autoUpdateTalks()    if expSpeedEvent then expSpeedEvent:cancel() end  expSpeedEvent = cycleEvent(checkExpSpeed, 30*1000)  onExperienceChange(player, player:getExperience())  onLevelChange(player, player:getLevel(), player:getLevelPercent())  onHealthChange(player, player:getHealth(), player:getMaxHealth())  onManaChange(player, player:getMana(), player:getMaxMana())  onSoulChange(player, player:getSoul())  onFreeCapacityChange(player, player:getFreeCapacity())  onStaminaChange(player, player:getStamina())  onMagicLevelChange(player, player:getMagicLevel(), player:getMagicLevelPercent())  onOfflineTrainingChange(player, player:getOfflineTrainingTime())  onRegenerationChange(player, player:getRegenerationTime())  onSpeedChange(player, player:getSpeed())  for i=0,6 do    onSkillChange(player, i, player:getSkillLevel(i), player:getSkillLevelPercent(i))    onBaseSkillChange(player, i, player:getSkillBaseLevel(i))  end  update()  local contentsPanel = skillsWindow:getChildById('contentsPanel')  skillsWindow:setContentMinimumHeight(110)  skillsWindow:setContentMaximumHeight(292)endfunction offline()  if expSpeedEvent then expSpeedEvent:cancel() expSpeedEvent = nil endendfunction toggle()  if skillsButton:isOn() then    skillsWindow:close()    skillsButton:setOn(false)  else    skillsWindow:open()    skillsButton:setOn(true)    skillsButton:setOpacity(1.0)    autoUpdateTalks()  endendfunction checkExpSpeed()  local player = g_game.getLocalPlayer()  if not player then return end    local currentExp = player:getExperience()  local currentTime = g_clock.seconds()  if player.lastExps ~= nil then    player.expSpeed = (currentExp - player.lastExps[1][1])/(currentTime - player.lastExps[1][2])    onLevelChange(player, player:getLevel(), player:getLevelPercent())  else    player.lastExps = {}  end  table.insert(player.lastExps, {currentExp, currentTime})  if #player.lastExps > 30 then    table.remove(player.lastExps, 1)  endendfunction onMiniWindowClose()  skillsButton:setOn(false)  skillsButton:setOpacity(0.5)endfunction onSkillButtonClick(button)  local percentBar = button:getChildById('percent')  if percentBar then    percentBar:setVisible(not percentBar:isVisible())    if percentBar:isVisible() then      button:setHeight(21)    else      button:setHeight(21 - 6)    end  endendfunction onExperienceChange(localPlayer, value)  setSkillValue('level', value)endfunction onLevelChange(localPlayer, value, percent)  setSkillValue('experience', localPlayer:getName())  setSkillValue('experiencee', value)  local text = tr('You have %s percent to go', 100 - percent) .. '\n' ..               tr('%s of experience left', expToAdvance(localPlayer:getLevel(), localPlayer:getExperience()))  if localPlayer.expSpeed ~= nil then     local expPerHour = math.floor(localPlayer.expSpeed * 3600)     if expPerHour > 0 then        local nextLevelExp = expForLevel(localPlayer:getLevel()+1)        local hoursLeft = (nextLevelExp - localPlayer:getExperience()) / expPerHour        local minutesLeft = math.floor((hoursLeft - math.floor(hoursLeft))*60)        hoursLeft = math.floor(hoursLeft)        text = text .. '\n' .. tr('%d of experience per hour', expPerHour)        text = text .. '\n' .. tr('Next level in %d hours and %d minutes', hoursLeft, minutesLeft)     end  end  setSkillPercent('level', percent, text)endfunction onHealthChange(localPlayer, health, maxHealth)  setSkillValue('health', health)  checkAlert('health', health, maxHealth, 30)endfunction onManaChange(localPlayer, mana, maxMana)  setSkillValue('mana', mana)  checkAlert('mana', mana, maxMana, 30)endfunction onSoulChange(localPlayer, soul)  setSkillValue('soul', soul)endfunction onFreeCapacityChange(localPlayer, freeCapacity)  setSkillValue('capacity', freeCapacity)  checkAlert('capacity', freeCapacity, localPlayer:getTotalCapacity(), 20)endfunction onTotalCapacityChange(localPlayer, totalCapacity)  checkAlert('capacity', localPlayer:getFreeCapacity(), totalCapacity, 20)endfunction onStaminaChange(localPlayer, stamina)  local hours = math.floor(stamina / 60)  local minutes = stamina % 60  if minutes < 10 then    minutes = '0' .. minutes  end  setSkillValue('stamina', hours .. ":" .. minutes)endfunction onOfflineTrainingChange(localPlayer, offlineTrainingTime)  if not g_game.getFeature(GameOfflineTrainingTime) then    return  end  local hours = math.floor(offlineTrainingTime / 60)  local minutes = offlineTrainingTime % 60  if minutes < 10 then    minutes = '0' .. minutes  end  local percent = 100 * offlineTrainingTime / (12 * 60) -- max is 12 hours  setSkillValue('offlineTraining', hours .. ":" .. minutes)  setSkillPercent('offlineTraining', percent, tr('You have %s percent', percent))endfunction onRegenerationChange(localPlayer, regenerationTime)  if not g_game.getFeature(GamePlayerRegenerationTime) or regenerationTime < 0 then    return  end  local minutes = math.floor(regenerationTime / 60)  local seconds = regenerationTime % 60  if seconds < 10 then    seconds = '0' .. seconds  end  setSkillValue('regenerationTime', minutes .. ":" .. seconds)  checkAlert('regenerationTime', regenerationTime, false, 300)endfunction onSpeedChange(localPlayer, speed)  setSkillValue('speed', speed)  onBaseSpeedChange(localPlayer, localPlayer:getBaseSpeed())endfunction onBaseSpeedChange(localPlayer, baseSpeed)  setSkillBase('speed', localPlayer:getSpeed(), baseSpeed)endfunction onMagicLevelChange(localPlayer, magiclevel, percent)  setSkillValue('magiclevel', magiclevel)  setSkillPercent('magiclevel', percent, tr('You have %s percent to go', 100 - percent))  onBaseMagicLevelChange(localPlayer, localPlayer:getBaseMagicLevel())endfunction onBaseMagicLevelChange(localPlayer, baseMagicLevel)  setSkillBase('magiclevel', localPlayer:getMagicLevel(), baseMagicLevel)endfunction onSkillChange(localPlayer, id, level, percent)  setSkillValue('skillId' .. id, level)  setSkillPercent('skillId2', percent, tr('You have %s percent to go', 100 - percent))  setSkillPercent('skillId3', percent, tr('You have %s percent to go', 100 - percent))  setSkillPercent('skillId4', percent, tr('You have %s percent to go', 100 - percent))  setSkillPercent('skillId5', percent, tr('You have %s percent to go', 100 - percent))  setSkillPercent('skillId6', percent, tr('You have %s percent to go', 100 - percent))  onBaseSkillChange(localPlayer, id, localPlayer:getSkillBaseLevel(id))endfunction onBaseSkillChange(localPlayer, id, baseLevel)  setSkillBase('skillId'..id, localPlayer:getSkillLevel(id), baseLevel)end

 

 

Link para o comentário
Compartilhar em outros sites

  • 0
Agora, Deadpool disse:

desculpa, esqueci de mais um..

  Mostrar conteúdo oculto
skillsWindow = nilskillsButton = nillocal gyms = {   ["Brock0"] = "/images/game/pokemon/clan/8",   ["Brock1"] = "/images/game/pokemon/clan/16",   ["Misty0"] = "/images/game/pokemon/clan/7",   ["Misty1"] = "/images/game/pokemon/clan/15",   ["Surge0"] = "/images/game/pokemon/clan/6",   ["Surge1"] = "/images/game/pokemon/clan/14",   ["Erika0"] = "/images/game/pokemon/clan/5",   ["Erika1"] = "/images/game/pokemon/clan/13",   ["Sabrina0"] = "/images/game/pokemon/clan/4",   ["Sabrina1"] = "/images/game/pokemon/clan/12",   ["Koga0"] = "/images/game/pokemon/clan/3",   ["Koga1"] = "/images/game/pokemon/clan/11",   ["Blaine0"] = "/images/game/pokemon/clan/2",   ["Blaine1"] = "/images/game/pokemon/clan/10",   ["Kira0"] = "/images/game/pokemon/clan/1",   ["Kira1"] = "/images/game/pokemon/clan/9",}local imgs = {   [-1] = "/modules/game_skills/img/sem promotion", -- -1 quer dizer esta sem clan...   [1] = "/modules/game_skills/img/volcanic img",   [2] = "/modules/game_skills/img/seavell img",   [3] = "/modules/game_skills/img/orebound img",   [4] = "/modules/game_skills/img/wingeon img",   [5] = "/modules/game_skills/img/malefic img",   [6] = "/modules/game_skills/img/gardestrike img",   [7] = "/modules/game_skills/img/psycraft img",   [8] = "/modules/game_skills/img/naturia img",   [9] = "/modules/game_skills/img/raibolt img",}function init()  connect(LocalPlayer, {    onExperienceChange = onExperienceChange,    onLevelChange = onLevelChange,    onHealthChange = onHealthChange,    onManaChange = onManaChange,    onSoulChange = onSoulChange,    onFreeCapacityChange = onFreeCapacityChange,    onTotalCapacityChange = onTotalCapacityChange,    onStaminaChange = onStaminaChange,    onOfflineTrainingChange = onOfflineTrainingChange,    onRegenerationChange = onRegenerationChange,    onSpeedChange = onSpeedChange,    onBaseSpeedChange = onBaseSpeedChange,    onMagicLevelChange = onMagicLevelChange,    onBaseMagicLevelChange = onBaseMagicLevelChange,    onSkillChange = onSkillChange,    onBaseSkillChange = onBaseSkillChange }) connect(g_game, {    onGameStart = refresh,    onGameEnd = offline  })  connect(g_game, 'onTextMessage', getGym)  connect(g_game, 'onTextMessage', getParams)  connect(g_game, {onGameStart = changeImg})  skillsButton = modules.client_topmenu.addRightGameToggleButton('skillsButton', tr('skills') .. ' (Ctrl+S)', '/modules/game_skills/img/perfil_icon', toggle)  skillsButton:setOn(true)  skillsWindow = g_ui.loadUI('skills', modules.game_interface.getRightPanel()) -- skills  g_keyboard.bindKeyDown('Ctrl+S', toggle)  refresh()  skillsWindow:setup()endfunction init()  connect(LocalPlayer, {    onExperienceChange = onExperienceChange,    onLevelChange = onLevelChange,    onHealthChange = onHealthChange,    onManaChange = onManaChange,    onSoulChange = onSoulChange,    onFreeCapacityChange = onFreeCapacityChange,    onTotalCapacityChange = onTotalCapacityChange,    onStaminaChange = onStaminaChange,    onOfflineTrainingChange = onOfflineTrainingChange,    onRegenerationChange = onRegenerationChange,    onSpeedChange = onSpeedChange,    onBaseSpeedChange = onBaseSpeedChange,    onMagicLevelChange = onMagicLevelChange,    onBaseMagicLevelChange = onBaseMagicLevelChange,    onSkillChange = onSkillChange,    onBaseSkillChange = onBaseSkillChange  }) connect(g_game, {    onGameStart = refresh,    onGameEnd = offline  })  connect(g_game, 'onTextMessage', getGym)  connect(g_game, 'onTextMessage', getParams)  connect(g_game, {onGameStart = changeImg})  skillsButton = modules.client_topmenu.addRightGameToggleButton('skillsButton', tr('skills') .. ' (Ctrl+S)', '/modules/game_skills/img/perfil_icon', toggle)  skillsButton:setOn(true)  skillsWindow = g_ui.loadUI('skills', modules.game_interface.getRightPanel()) -- skills  g_keyboard.bindKeyDown('Ctrl+S', toggle)  refresh()  skillsWindow:setup()endfunction autoUpdateTalks()  local player = g_game.getLocalPlayer()  if not player then return end----------  -- g_game.talk("#getGym# Brock")  -- g_game.talk("#getGym# Misty")  -- g_game.talk("#getGym# Surge")  -- g_game.talk("#getGym# Erika")  -- g_game.talk("#getGym# Sabrina")  -- g_game.talk("#getGym# Koga")  -- g_game.talk("#getGym# Blaine")  -- g_game.talk("#getGym# Kira")----------endfunction getGym(mode, text)  if not g_game.isOnline() then return end  if mode == MessageModes.Failure then     if text:find("#getBadges#") thenlocal t = string.explode(text, " ")local badges = skillsWindow:recursiveGetChildById("gym"..t[2])badges:setImageSource(gyms[t[2]..""..tonumber(t[3])])endendendfunction changeImg()  local player = g_game.getLocalPlayer()  if not player then return end--  g_game.talk("#getSto# 86228")endfunction getParams(mode, text)if not g_game.isOnline() then return end   if mode == MessageModes.Failure then       if text:find("#getSto#") then         local icon = skillsWindow:recursiveGetChildById("clanicon")         if icon then            local t = string.explode(text, " ")            icon:setImageSource(imgs[tonumber(t[2])])         end      end   endendfunction expForLevel(level)  return math.floor((50*level*level*level)/3 - 100*level*level + (850*level)/3 - 200)endfunction expToAdvance(currentLevel, currentExp)  return expForLevel(currentLevel+1) - currentExpendfunction resetSkillColor(id)  local skill = skillsWindow:recursiveGetChildById(id)  local widget = skill:getChildById('value')  widget:setColor('#bbbbbb')endfunction setSkillBase(id, value, baseValue)  if baseValue <= 0 or value < 0 then    return  end  local skill = skillsWindow:recursiveGetChildById(id)  local widget = skill:getChildById('value')  if value > baseValue then    widget:setColor('#008b00') -- green    skill:setTooltip(baseValue .. ' +' .. (value - baseValue))  elseif value < baseValue then    widget:setColor('#b22222') -- red    skill:setTooltip(baseValue .. ' ' .. (value - baseValue))  else    widget:setColor('#bbbbbb') -- default    skill:removeTooltip()  endendfunction setSkillValue(id, value)  local skill = skillsWindow:recursiveGetChildById(id)  local widget = skill:getChildById('value')  widget:setText(value)endfunction setSkillColor(id, value)  local skill = skillsWindow:recursiveGetChildById(id)  local widget = skill:getChildById('value')  widget:setColor(value)endfunction setSkillTooltip(id, value)  local skill = skillsWindow:recursiveGetChildById(id)  local widget = skill:getChildById('value')  widget:setTooltip(value)endfunction setSkillPercent(id, percent, tooltip)  local skill = skillsWindow:recursiveGetChildById(id)  local widget = skill:getChildById('percent')  widget:setPercent(math.floor(percent))  if tooltip then    widget:setTooltip(tooltip)  endendfunction checkAlert(id, value, maxValue, threshold, greaterThan)  if greaterThan == nil then greaterThan = false end  local alert = false  -- maxValue can be set to false to check value and threshold  -- used for regeneration checking  if type(maxValue) == 'boolean' then    if maxValue then      return    end    if greaterThan then      if value > threshold then        alert = true      end    else      if value < threshold then        alert = true      end    end  elseif type(maxValue) == 'number' then    if maxValue < 0 then      return    end    local percent = math.floor((value / maxValue) * 100)    if greaterThan then      if percent > threshold then        alert = true      end    else      if percent < threshold then        alert = true      end    end  end  if alert then    setSkillColor(id, '#b22222') -- red  else    resetSkillColor(id)  endendfunction update()  local offlineTraining = skillsWindow:recursiveGetChildById('offlineTraining')  if not g_game.getFeature(GameOfflineTrainingTime) then    offlineTraining:hide()  else    offlineTraining:show()  end  local regenerationTime = skillsWindow:recursiveGetChildById('regenerationTime')  if not g_game.getFeature(GamePlayerRegenerationTime) then    regenerationTime:hide()  else    regenerationTime:show()  endendfunction refresh()  local player = g_game.getLocalPlayer()  if not player then return end  autoUpdateTalks()    if expSpeedEvent then expSpeedEvent:cancel() end  expSpeedEvent = cycleEvent(checkExpSpeed, 30*1000)  onExperienceChange(player, player:getExperience())  onLevelChange(player, player:getLevel(), player:getLevelPercent())  onHealthChange(player, player:getHealth(), player:getMaxHealth())  onManaChange(player, player:getMana(), player:getMaxMana())  onSoulChange(player, player:getSoul())  onFreeCapacityChange(player, player:getFreeCapacity())  onStaminaChange(player, player:getStamina())  onMagicLevelChange(player, player:getMagicLevel(), player:getMagicLevelPercent())  onOfflineTrainingChange(player, player:getOfflineTrainingTime())  onRegenerationChange(player, player:getRegenerationTime())  onSpeedChange(player, player:getSpeed())  for i=0,6 do    onSkillChange(player, i, player:getSkillLevel(i), player:getSkillLevelPercent(i))    onBaseSkillChange(player, i, player:getSkillBaseLevel(i))  end  update()  local contentsPanel = skillsWindow:getChildById('contentsPanel')  skillsWindow:setContentMinimumHeight(110)  skillsWindow:setContentMaximumHeight(292)endfunction offline()  if expSpeedEvent then expSpeedEvent:cancel() expSpeedEvent = nil endendfunction toggle()  if skillsButton:isOn() then    skillsWindow:close()    skillsButton:setOn(false)  else    skillsWindow:open()    skillsButton:setOn(true)    skillsButton:setOpacity(1.0)    autoUpdateTalks()  endendfunction checkExpSpeed()  local player = g_game.getLocalPlayer()  if not player then return end    local currentExp = player:getExperience()  local currentTime = g_clock.seconds()  if player.lastExps ~= nil then    player.expSpeed = (currentExp - player.lastExps[1][1])/(currentTime - player.lastExps[1][2])    onLevelChange(player, player:getLevel(), player:getLevelPercent())  else    player.lastExps = {}  end  table.insert(player.lastExps, {currentExp, currentTime})  if #player.lastExps > 30 then    table.remove(player.lastExps, 1)  endendfunction onMiniWindowClose()  skillsButton:setOn(false)  skillsButton:setOpacity(0.5)endfunction onSkillButtonClick(button)  local percentBar = button:getChildById('percent')  if percentBar then    percentBar:setVisible(not percentBar:isVisible())    if percentBar:isVisible() then      button:setHeight(21)    else      button:setHeight(21 - 6)    end  endendfunction onExperienceChange(localPlayer, value)  setSkillValue('level', value)endfunction onLevelChange(localPlayer, value, percent)  setSkillValue('experience', localPlayer:getName())  setSkillValue('experiencee', value)  local text = tr('You have %s percent to go', 100 - percent) .. '\n' ..               tr('%s of experience left', expToAdvance(localPlayer:getLevel(), localPlayer:getExperience()))  if localPlayer.expSpeed ~= nil then     local expPerHour = math.floor(localPlayer.expSpeed * 3600)     if expPerHour > 0 then        local nextLevelExp = expForLevel(localPlayer:getLevel()+1)        local hoursLeft = (nextLevelExp - localPlayer:getExperience()) / expPerHour        local minutesLeft = math.floor((hoursLeft - math.floor(hoursLeft))*60)        hoursLeft = math.floor(hoursLeft)        text = text .. '\n' .. tr('%d of experience per hour', expPerHour)        text = text .. '\n' .. tr('Next level in %d hours and %d minutes', hoursLeft, minutesLeft)     end  end  setSkillPercent('level', percent, text)endfunction onHealthChange(localPlayer, health, maxHealth)  setSkillValue('health', health)  checkAlert('health', health, maxHealth, 30)endfunction onManaChange(localPlayer, mana, maxMana)  setSkillValue('mana', mana)  checkAlert('mana', mana, maxMana, 30)endfunction onSoulChange(localPlayer, soul)  setSkillValue('soul', soul)endfunction onFreeCapacityChange(localPlayer, freeCapacity)  setSkillValue('capacity', freeCapacity)  checkAlert('capacity', freeCapacity, localPlayer:getTotalCapacity(), 20)endfunction onTotalCapacityChange(localPlayer, totalCapacity)  checkAlert('capacity', localPlayer:getFreeCapacity(), totalCapacity, 20)endfunction onStaminaChange(localPlayer, stamina)  local hours = math.floor(stamina / 60)  local minutes = stamina % 60  if minutes < 10 then    minutes = '0' .. minutes  end  setSkillValue('stamina', hours .. ":" .. minutes)endfunction onOfflineTrainingChange(localPlayer, offlineTrainingTime)  if not g_game.getFeature(GameOfflineTrainingTime) then    return  end  local hours = math.floor(offlineTrainingTime / 60)  local minutes = offlineTrainingTime % 60  if minutes < 10 then    minutes = '0' .. minutes  end  local percent = 100 * offlineTrainingTime / (12 * 60) -- max is 12 hours  setSkillValue('offlineTraining', hours .. ":" .. minutes)  setSkillPercent('offlineTraining', percent, tr('You have %s percent', percent))endfunction onRegenerationChange(localPlayer, regenerationTime)  if not g_game.getFeature(GamePlayerRegenerationTime) or regenerationTime < 0 then    return  end  local minutes = math.floor(regenerationTime / 60)  local seconds = regenerationTime % 60  if seconds < 10 then    seconds = '0' .. seconds  end  setSkillValue('regenerationTime', minutes .. ":" .. seconds)  checkAlert('regenerationTime', regenerationTime, false, 300)endfunction onSpeedChange(localPlayer, speed)  setSkillValue('speed', speed)  onBaseSpeedChange(localPlayer, localPlayer:getBaseSpeed())endfunction onBaseSpeedChange(localPlayer, baseSpeed)  setSkillBase('speed', localPlayer:getSpeed(), baseSpeed)endfunction onMagicLevelChange(localPlayer, magiclevel, percent)  setSkillValue('magiclevel', magiclevel)  setSkillPercent('magiclevel', percent, tr('You have %s percent to go', 100 - percent))  onBaseMagicLevelChange(localPlayer, localPlayer:getBaseMagicLevel())endfunction onBaseMagicLevelChange(localPlayer, baseMagicLevel)  setSkillBase('magiclevel', localPlayer:getMagicLevel(), baseMagicLevel)endfunction onSkillChange(localPlayer, id, level, percent)  setSkillValue('skillId' .. id, level)  setSkillPercent('skillId2', percent, tr('You have %s percent to go', 100 - percent))  setSkillPercent('skillId3', percent, tr('You have %s percent to go', 100 - percent))  setSkillPercent('skillId4', percent, tr('You have %s percent to go', 100 - percent))  setSkillPercent('skillId5', percent, tr('You have %s percent to go', 100 - percent))  setSkillPercent('skillId6', percent, tr('You have %s percent to go', 100 - percent))  onBaseSkillChange(localPlayer, id, localPlayer:getSkillBaseLevel(id))endfunction onBaseSkillChange(localPlayer, id, baseLevel)  setSkillBase('skillId'..id, localPlayer:getSkillLevel(id), baseLevel)end

 

 

Bom testei esse deu o mesmo erro.

 

Account Manager: Please read the latest message that I have specified, I don't understand the current requested action.

Link para o comentário
Compartilhar em outros sites

  • 0
Spoiler
skillsWindow = nilskillsButton = nillocal gyms = {   ["Brock0"] = "/images/game/pokemon/clan/8",   ["Brock1"] = "/images/game/pokemon/clan/16",   ["Misty0"] = "/images/game/pokemon/clan/7",   ["Misty1"] = "/images/game/pokemon/clan/15",   ["Surge0"] = "/images/game/pokemon/clan/6",   ["Surge1"] = "/images/game/pokemon/clan/14",   ["Erika0"] = "/images/game/pokemon/clan/5",   ["Erika1"] = "/images/game/pokemon/clan/13",   ["Sabrina0"] = "/images/game/pokemon/clan/4",   ["Sabrina1"] = "/images/game/pokemon/clan/12",   ["Koga0"] = "/images/game/pokemon/clan/3",   ["Koga1"] = "/images/game/pokemon/clan/11",   ["Blaine0"] = "/images/game/pokemon/clan/2",   ["Blaine1"] = "/images/game/pokemon/clan/10",   ["Kira0"] = "/images/game/pokemon/clan/1",   ["Kira1"] = "/images/game/pokemon/clan/9",}local imgs = {   [-1] = "/modules/game_skills/img/sem promotion", -- -1 quer dizer esta sem clan...   [1] = "/modules/game_skills/img/volcanic img",   [2] = "/modules/game_skills/img/seavell img",   [3] = "/modules/game_skills/img/orebound img",   [4] = "/modules/game_skills/img/wingeon img",   [5] = "/modules/game_skills/img/malefic img",   [6] = "/modules/game_skills/img/gardestrike img",   [7] = "/modules/game_skills/img/psycraft img",   [8] = "/modules/game_skills/img/naturia img",   [9] = "/modules/game_skills/img/raibolt img",}function init()  connect(LocalPlayer, {    onExperienceChange = onExperienceChange,    onLevelChange = onLevelChange,    onHealthChange = onHealthChange,    onManaChange = onManaChange,    onSoulChange = onSoulChange,    onFreeCapacityChange = onFreeCapacityChange,    onTotalCapacityChange = onTotalCapacityChange,    onStaminaChange = onStaminaChange,    onOfflineTrainingChange = onOfflineTrainingChange,    onRegenerationChange = onRegenerationChange,    onSpeedChange = onSpeedChange,    onBaseSpeedChange = onBaseSpeedChange,    onMagicLevelChange = onMagicLevelChange,    onBaseMagicLevelChange = onBaseMagicLevelChange,    onSkillChange = onSkillChange,    onBaseSkillChange = onBaseSkillChange }) connect(g_game, {    onGameStart = refresh,    onGameEnd = offline  })  connect(g_game, 'onTextMessage', getGym)  connect(g_game, 'onTextMessage', getParams)  connect(g_game, {onGameStart = changeImg})  skillsButton = modules.client_topmenu.addRightGameToggleButton('skillsButton', tr('skills') .. ' (Ctrl+S)', '/modules/game_skills/img/perfil_icon', toggle)  skillsButton:setOn(true)  skillsWindow = g_ui.loadUI('skills', modules.game_interface.getRightPanel()) -- skills  g_keyboard.bindKeyDown('Ctrl+S', toggle)  refresh()  skillsWindow:setup()endfunction init()  connect(LocalPlayer, {    onExperienceChange = onExperienceChange,    onLevelChange = onLevelChange,    onHealthChange = onHealthChange,    onManaChange = onManaChange,    onSoulChange = onSoulChange,    onFreeCapacityChange = onFreeCapacityChange,    onTotalCapacityChange = onTotalCapacityChange,    onStaminaChange = onStaminaChange,    onOfflineTrainingChange = onOfflineTrainingChange,    onRegenerationChange = onRegenerationChange,    onSpeedChange = onSpeedChange,    onBaseSpeedChange = onBaseSpeedChange,    onMagicLevelChange = onMagicLevelChange,    onBaseMagicLevelChange = onBaseMagicLevelChange,    onSkillChange = onSkillChange,    onBaseSkillChange = onBaseSkillChange  }) connect(g_game, {    onGameStart = refresh,    onGameEnd = offline  })  connect(g_game, 'onTextMessage', getGym)  connect(g_game, 'onTextMessage', getParams)  connect(g_game, {onGameStart = changeImg})  skillsButton = modules.client_topmenu.addRightGameToggleButton('skillsButton', tr('skills') .. ' (Ctrl+S)', '/modules/game_skills/img/perfil_icon', toggle)  skillsButton:setOn(true)  skillsWindow = g_ui.loadUI('skills', modules.game_interface.getRightPanel()) -- skills  g_keyboard.bindKeyDown('Ctrl+S', toggle)  refresh()  skillsWindow:setup()endfunction autoUpdateTalks()  local player = g_game.getLocalPlayer()  if not player then return end----------  -- g_game.talk("#getGym# Brock")  -- g_game.talk("#getGym# Misty")  -- g_game.talk("#getGym# Surge")  -- g_game.talk("#getGym# Erika")  -- g_game.talk("#getGym# Sabrina")  -- g_game.talk("#getGym# Koga")  -- g_game.talk("#getGym# Blaine")  -- g_game.talk("#getGym# Kira")----------endfunction getGym(mode, text)  if not g_game.isOnline() then return end  if mode == MessageModes.Failure then     if text:find("#getBadges#") thenlocal t = string.explode(text, " ")local badges = skillsWindow:recursiveGetChildById("gym"..t[2])badges:setImageSource(gyms[t[2]..""..tonumber(t[3])])endendendfunction changeImg()  local player = g_game.getLocalPlayer()  if not player then return end--  g_game.talk("#getSto# 86228")endfunction getParams(mode, text)if not g_game.isOnline() then return end   if mode == MessageModes.Failure then       if text:find("#getSto#") then         local icon = skillsWindow:recursiveGetChildById("clanicon")         if icon then            local t = string.explode(text, " ")            icon:setImageSource(imgs[tonumber(t[2])])         end      end   endendfunction expForLevel(level)  return math.floor((50*level*level*level)/3 - 100*level*level + (850*level)/3 - 200)endfunction expToAdvance(currentLevel, currentExp)  return expForLevel(currentLevel+1) - currentExpendfunction resetSkillColor(id)  local skill = skillsWindow:recursiveGetChildById(id)  local widget = skill:getChildById('value')  widget:setColor('#bbbbbb')endfunction setSkillBase(id, value, baseValue)  if baseValue <= 0 or value < 0 then    return  end  local skill = skillsWindow:recursiveGetChildById(id)  local widget = skill:getChildById('value')  if value > baseValue then    widget:setColor('#008b00') -- green    skill:setTooltip(baseValue .. ' +' .. (value - baseValue))  elseif value < baseValue then    widget:setColor('#b22222') -- red    skill:setTooltip(baseValue .. ' ' .. (value - baseValue))  else    widget:setColor('#bbbbbb') -- default    skill:removeTooltip()  endendfunction setSkillValue(id, value)  local skill = skillsWindow:recursiveGetChildById(id)  local widget = skill:getChildById('value')  widget:setText(value)endfunction setSkillColor(id, value)  local skill = skillsWindow:recursiveGetChildById(id)  local widget = skill:getChildById('value')  widget:setColor(value)endfunction setSkillTooltip(id, value)  local skill = skillsWindow:recursiveGetChildById(id)  local widget = skill:getChildById('value')  widget:setTooltip(value)endfunction setSkillPercent(id, percent, tooltip)  local skill = skillsWindow:recursiveGetChildById(id)  local widget = skill:getChildById('percent')  widget:setPercent(math.floor(percent))  if tooltip then    widget:setTooltip(tooltip)  endendfunction checkAlert(id, value, maxValue, threshold, greaterThan)  if greaterThan == nil then greaterThan = false end  local alert = false  -- maxValue can be set to false to check value and threshold  -- used for regeneration checking  if type(maxValue) == 'boolean' then    if maxValue then      return    end    if greaterThan then      if value > threshold then        alert = true      end    else      if value < threshold then        alert = true      end    end  elseif type(maxValue) == 'number' then    if maxValue < 0 then      return    end    local percent = math.floor((value / maxValue) * 100)    if greaterThan then      if percent > threshold then        alert = true      end    else      if percent < threshold then        alert = true      end    end  end  if alert then    setSkillColor(id, '#b22222') -- red  else    resetSkillColor(id)  endendfunction update()  local offlineTraining = skillsWindow:recursiveGetChildById('offlineTraining')  if not g_game.getFeature(GameOfflineTrainingTime) then    offlineTraining:hide()  else    offlineTraining:show()  end  local regenerationTime = skillsWindow:recursiveGetChildById('regenerationTime')  if not g_game.getFeature(GamePlayerRegenerationTime) then    regenerationTime:hide()  else    regenerationTime:show()  endendfunction refresh()  local player = g_game.getLocalPlayer()  if not player then return end    if expSpeedEvent then expSpeedEvent:cancel() end  expSpeedEvent = cycleEvent(checkExpSpeed, 30*1000)  onExperienceChange(player, player:getExperience())  onLevelChange(player, player:getLevel(), player:getLevelPercent())  onHealthChange(player, player:getHealth(), player:getMaxHealth())  onManaChange(player, player:getMana(), player:getMaxMana())  onSoulChange(player, player:getSoul())  onFreeCapacityChange(player, player:getFreeCapacity())  onStaminaChange(player, player:getStamina())  onMagicLevelChange(player, player:getMagicLevel(), player:getMagicLevelPercent())  onOfflineTrainingChange(player, player:getOfflineTrainingTime())  onRegenerationChange(player, player:getRegenerationTime())  onSpeedChange(player, player:getSpeed())  for i=0,6 do    onSkillChange(player, i, player:getSkillLevel(i), player:getSkillLevelPercent(i))    onBaseSkillChange(player, i, player:getSkillBaseLevel(i))  end  update()  local contentsPanel = skillsWindow:getChildById('contentsPanel')  skillsWindow:setContentMinimumHeight(110)  skillsWindow:setContentMaximumHeight(292)endfunction offline()  if expSpeedEvent then expSpeedEvent:cancel() expSpeedEvent = nil endendfunction toggle()  if skillsButton:isOn() then    skillsWindow:close()    skillsButton:setOn(false)  else    skillsWindow:open()    skillsButton:setOn(true)    skillsButton:setOpacity(1.0)  endendfunction checkExpSpeed()  local player = g_game.getLocalPlayer()  if not player then return end    local currentExp = player:getExperience()  local currentTime = g_clock.seconds()  if player.lastExps ~= nil then    player.expSpeed = (currentExp - player.lastExps[1][1])/(currentTime - player.lastExps[1][2])    onLevelChange(player, player:getLevel(), player:getLevelPercent())  else    player.lastExps = {}  end  table.insert(player.lastExps, {currentExp, currentTime})  if #player.lastExps > 30 then    table.remove(player.lastExps, 1)  endendfunction onMiniWindowClose()  skillsButton:setOn(false)  skillsButton:setOpacity(0.5)endfunction onSkillButtonClick(button)  local percentBar = button:getChildById('percent')  if percentBar then    percentBar:setVisible(not percentBar:isVisible())    if percentBar:isVisible() then      button:setHeight(21)    else      button:setHeight(21 - 6)    end  endendfunction onExperienceChange(localPlayer, value)  setSkillValue('level', value)endfunction onLevelChange(localPlayer, value, percent)  setSkillValue('experience', localPlayer:getName())  setSkillValue('experiencee', value)  local text = tr('You have %s percent to go', 100 - percent) .. '\n' ..               tr('%s of experience left', expToAdvance(localPlayer:getLevel(), localPlayer:getExperience()))  if localPlayer.expSpeed ~= nil then     local expPerHour = math.floor(localPlayer.expSpeed * 3600)     if expPerHour > 0 then        local nextLevelExp = expForLevel(localPlayer:getLevel()+1)        local hoursLeft = (nextLevelExp - localPlayer:getExperience()) / expPerHour        local minutesLeft = math.floor((hoursLeft - math.floor(hoursLeft))*60)        hoursLeft = math.floor(hoursLeft)        text = text .. '\n' .. tr('%d of experience per hour', expPerHour)        text = text .. '\n' .. tr('Next level in %d hours and %d minutes', hoursLeft, minutesLeft)     end  end  setSkillPercent('level', percent, text)endfunction onHealthChange(localPlayer, health, maxHealth)  setSkillValue('health', health)  checkAlert('health', health, maxHealth, 30)endfunction onManaChange(localPlayer, mana, maxMana)  setSkillValue('mana', mana)  checkAlert('mana', mana, maxMana, 30)endfunction onSoulChange(localPlayer, soul)  setSkillValue('soul', soul)endfunction onFreeCapacityChange(localPlayer, freeCapacity)  setSkillValue('capacity', freeCapacity)  checkAlert('capacity', freeCapacity, localPlayer:getTotalCapacity(), 20)endfunction onTotalCapacityChange(localPlayer, totalCapacity)  checkAlert('capacity', localPlayer:getFreeCapacity(), totalCapacity, 20)endfunction onStaminaChange(localPlayer, stamina)  local hours = math.floor(stamina / 60)  local minutes = stamina % 60  if minutes < 10 then    minutes = '0' .. minutes  end  setSkillValue('stamina', hours .. ":" .. minutes)endfunction onOfflineTrainingChange(localPlayer, offlineTrainingTime)  if not g_game.getFeature(GameOfflineTrainingTime) then    return  end  local hours = math.floor(offlineTrainingTime / 60)  local minutes = offlineTrainingTime % 60  if minutes < 10 then    minutes = '0' .. minutes  end  local percent = 100 * offlineTrainingTime / (12 * 60) -- max is 12 hours  setSkillValue('offlineTraining', hours .. ":" .. minutes)  setSkillPercent('offlineTraining', percent, tr('You have %s percent', percent))endfunction onRegenerationChange(localPlayer, regenerationTime)  if not g_game.getFeature(GamePlayerRegenerationTime) or regenerationTime < 0 then    return  end  local minutes = math.floor(regenerationTime / 60)  local seconds = regenerationTime % 60  if seconds < 10 then    seconds = '0' .. seconds  end  setSkillValue('regenerationTime', minutes .. ":" .. seconds)  checkAlert('regenerationTime', regenerationTime, false, 300)endfunction onSpeedChange(localPlayer, speed)  setSkillValue('speed', speed)  onBaseSpeedChange(localPlayer, localPlayer:getBaseSpeed())endfunction onBaseSpeedChange(localPlayer, baseSpeed)  setSkillBase('speed', localPlayer:getSpeed(), baseSpeed)endfunction onMagicLevelChange(localPlayer, magiclevel, percent)  setSkillValue('magiclevel', magiclevel)  setSkillPercent('magiclevel', percent, tr('You have %s percent to go', 100 - percent))  onBaseMagicLevelChange(localPlayer, localPlayer:getBaseMagicLevel())endfunction onBaseMagicLevelChange(localPlayer, baseMagicLevel)  setSkillBase('magiclevel', localPlayer:getMagicLevel(), baseMagicLevel)endfunction onSkillChange(localPlayer, id, level, percent)  setSkillValue('skillId' .. id, level)  setSkillPercent('skillId2', percent, tr('You have %s percent to go', 100 - percent))  setSkillPercent('skillId3', percent, tr('You have %s percent to go', 100 - percent))  setSkillPercent('skillId4', percent, tr('You have %s percent to go', 100 - percent))  setSkillPercent('skillId5', percent, tr('You have %s percent to go', 100 - percent))  setSkillPercent('skillId6', percent, tr('You have %s percent to go', 100 - percent))  onBaseSkillChange(localPlayer, id, localPlayer:getSkillBaseLevel(id))endfunction onBaseSkillChange(localPlayer, id, baseLevel)  setSkillBase('skillId'..id, localPlayer:getSkillLevel(id), baseLevel)end

 

 

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...