Jump to content

Recommended Posts

Estou com um problema nessa spell, ela puxa os players ao redor pra preto do player. Eu usava um servidor 8.54 e ela funcionava, depois que mudei pro 8.6 ela não funciou mais. Não aparece nenhum erro no console, ela apenas não está puxando os players pra perto, como eu poderia resolver isto? 

 

Aqui está o script:

Spoiler

--- Edited by: MARK ----
local function doPushCreature(target, cid)
    if target > 0 then
   if not isNpc(target) then
   local position = getThingPosition(cid)
   local fromPosition = getThingPosition(target)
   local x = ((fromPosition.x - position.x) < 0 and -1 or ((fromPosition.x - position.x) == 0 and 0 or 1))
   local y = ((fromPosition.y - position.y) < 0 and -1 or ((fromPosition.y - position.y) == 0 and 0 or 1))
   local toPosition = {x = fromPosition.x - x, y = fromPosition.y - y, z = fromPosition.z}
   if doTileQueryAdd(target, toPosition) == 1 and getTileInfo(toPosition).house == false then
   doTeleportThing(target, toPosition, true)
   end
   end
    end
end
local spell = {}
spell.config = {
    [1] = {
   damageType = 1,
   areaEffect = 2,
   area = {
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},
{0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0},
{0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0},
{0, 0, 1, 0, 0, 2, 0, 0, 1, 0, 0},
{0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0},
{0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0},
{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
   }   
    },
    [2] = {
   damageType = 1,
   areaEffect = 2,
   area = {
   {0, 0, 0, 0, 0, 0, 0},
   {0, 0, 1, 1, 1, 0, 0},
   {0, 1, 0, 0, 0, 1, 0},
   {0, 1, 0, 2, 0, 1, 0},
   {0, 1, 0, 0, 0, 1, 0},
   {0, 0, 1, 1, 1, 0, 0},
   {0, 0, 0, 0, 0, 0, 0}
   }   
    },
    [3] = {
   damageType = 1,
   areaEffect = 2,
   area = {
   {0, 0, 0, 0, 0, 0, 0},
   {0, 0, 0, 0, 0, 0, 0},
   {0, 0, 1, 1, 1, 0, 0},
   {0, 0, 1, 2, 1, 0, 0},
   {0, 0, 1, 1, 1, 0, 0},
   {0, 0, 0, 0, 0, 0, 0},
   {0, 0, 0, 0, 0, 0, 0}
   }   
    }
}
  
spell.combats = {}
for _, config in ipairs(spell.config) do
    local combat = createCombatObject()
    setCombatParam(combat, COMBAT_PARAM_TYPE, config.damageType)
    setCombatParam(combat, COMBAT_PARAM_EFFECT, config.areaEffect)
    setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -4, 0, -4, 0)
    function onTargetCreature(cid, target)
   doPushCreature(target, cid)
    end
    setCombatCallback(combat, CALLBACK_PARAM_TARGETCREATURE, "onTargetCreature")
    setCombatArea(combat, createCombatArea(config.area))
    table.insert(spell.combats, combat)
end
function onCastSpell(cid, var)
    local position12 = {x=getPlayerPosition(cid).x+1, y=getPlayerPosition(cid).y, z=getPlayerPosition(cid).z}
    doSendMagicEffect(position12, 55)
    for n = 1, #spell.combats do
   addEvent(doCombat, (n * 120), cid, spell.combats[n], var)
    end
    return true
end

 

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Similar Content

    • By Nother
      Olá, gostaria de uma speel em área que puxasse o agro dos bixos para que eles parassem de focar outra pessoa e focassem quem agrou eles.
      A spell pode ser um quadrado de 4 sqm de distancia para todos os lados.
      Desde já agradeço
       
    • By Kanoshi
      Ent to tentando fazer com que o npc feche o shop assim que o player der bye porém ele continua com o shop aberto.
       
      Rep a quem ajudar!
    • By xBlackWolf
      .Qual servidor ou website você utiliza como base? 
      OTG 
       
      Qual o motivo deste tópico? 
      Estou tentando repassar para linguagem do OTG e não funciona o script, também não dá erros.
       
      Você tem o código disponível? Se tiver publique-o aqui: 
       function addOnlineBonus(player, minutos, bonus_contador, bonus_max) player:setStorageValue(bonus_contador, player:getStorageValue(bonus_contador) + 1) addEvent(addOnlineBonus, minutos * 60 * 1000, player, minutos, bonus_contador, bonus_max) end function MinutesToClock(minutes) local minutes = tonumber(minutes) if minutes <= 0 then return "00:00"; else if minutes >= 60 then hours = string.format("%02.f", math.floor(minutes/60)); mins = string.format("%02.f", math.floor(minutes - hours*60)); else hours = "00"; mins = minutes; end if hours ~= 1 then return hours.." Horas e "..mins.. " minutos." else return hours.." Hora e "..mins.. " minutos." end end end function showOnlineBonus(player,bonus_contador,minutos) local finaltime = 0 if(player:getStorageValue(bonus_contador) >= 60) then finaltime = MinutesToClock(player:getStorageValue(bonus_contador)) else finaltime = (player:getStorageValue(bonus_contador).." Minutos.") end player:SendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE,"Voce esta Online a: " ..finaltime) addEvent(showOnlineBonus, minutos * 600 * 1000, player, bonus_contador, minutos) end function onLogin(player) player:registerEvent("onlinebonus") local bonus_contador = 72702 -- Storage que vai guardar tempo online em minutos. local bonus_max = 99999 -- Quantidade de minutos máximo por dia. local minutos = 1 -- A cada quanto tempo vamos ganhar pontos. if player:getStorageValue(bonus_contador) > 0 then player:SendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE,"Tempo Online acumulado hoje: "..MinutesToClock(player:getStorageValue(cid,bonus_contador))) else player:setStorageValue(bonus_contador, 0) player:SendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE,"Fique Online e receba o TOP Online ! Alem de chances maiores na loteria ! Tenha um otimo jogo!") end addEvent(addOnlineBonus, minutos * 60 * 1000, player, minutos, bonus_contador, bonus_max) addEvent(showOnlineBonus, minutos * 600 * 1000, player, bonus_contador, minutos) return true end  
      Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui. 
       
      Não tem print de erros, simplesmente o processo não inicia de contar os minutos disponíveis... também não envia nada ao player.
       
      Segue script usado como base TFS 0.4 :
      function addOnlineBonus(cid, minutos, bonus_contador, bonus_max) if not isPlayer(cid) then return false end setPlayerStorageValue(cid, bonus_contador, getPlayerStorageValue(cid, bonus_contador) + 1) addEvent(addOnlineBonus, minutos * 60 * 1000, cid, minutos, bonus_contador, bonus_max) end function MinutesToClock(minutes) local minutes = tonumber(minutes) if minutes <= 0 then return "00:00"; else if minutes >= 60 then hours = string.format("%02.f", math.floor(minutes/60)); mins = string.format("%02.f", math.floor(minutes - hours*60)); else hours = "00"; mins = minutes; end if hours ~= 1 then return hours.." Horas e "..mins.. " minutos." else return hours.." Hora e "..mins.. " minutos." end end end function showOnlineBonus(cid,bonus_contador,minutos) local finaltime = 0 if not isPlayer(cid) then return false end if(getPlayerStorageValue(cid,bonus_contador) >= 60) then finaltime = MinutesToClock(getPlayerStorageValue(cid,bonus_contador)) else finaltime = (getPlayerStorageValue(cid,bonus_contador).." Minutos.") end doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE,"Voce esta Online a: " ..finaltime) addEvent(showOnlineBonus, minutos * 600 * 1000, cid, bonus_contador, minutos) end function onLogin(cid) local bonus_contador = 72702 -- Storage que vai guardar tempo online em minutos. local bonus_max = 99999 -- Quantidade de minutos máximo por dia. local minutos = 1 -- A cada quanto tempo vamos ganhar pontos. if getPlayerStorageValue(cid, bonus_contador) > 0 then doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE,"Tempo Online acumulado hoje: "..MinutesToClock(getPlayerStorageValue(cid,bonus_contador))) else setPlayerStorageValue(cid, bonus_contador, 0) doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE,"Fique Online e receba o TOP Online ! Alem de chances maiores na loteria ! Tenha um otimo jogo!") end addEvent(addOnlineBonus, minutos * 60 * 1000, cid, minutos, bonus_contador, bonus_max) addEvent(showOnlineBonus, minutos * 600 * 1000, cid, bonus_contador, minutos) return true end  
       
      Aguardo quem puder me ajudar rsrs
    • By ZeeroBR
      Não sei se é padrão do game ou coisa do tipo, mas os summons que eu spawno conseguem me atacar com spells em área, alguém sabe a solução? tentei utilizar um script mas não tive êxito. Utilizo tfs 0.4 rev 3884 8.60
    • By Nother
      AQUI ESTOU EU COM MAIS UM PEDIDO KKK, GOSTARIA DE SABER SE ALGUEM CONSEGUE FAZER ESSE MEU BUFF TROCA A VOCATION ATUAL PARA A VOCATION NUMERO 11 DURANTE 30 MIN. TENHO O BUFF QUE DESENVOLVI COM AJUDA DO PESSOAL AQUI QUE FUNCIONA LEGAL NO MEU SERVER. ELE JA TEM A FUNÇÃO DE TEMPO QUE EU CONSIGO ALTERAR, ELE JA TROCA A OUTFIT E TEM O EXAUST. ACHO QUE APENAS SERIA ADCIONAR MESMO A TROCA DE VOCATION.
      CASO ALGUEM QUEIRA ME AJUDAR A FAZER, FAÇA DA MANEIRA QUE ACHAR MAIS FACIL. NÃO TEM IMPORTANCIA DO PLAYER MORRER E CONTINUAR TRANSFORMADO. 
       
       
       local tempo = 30 local effect = {80} local effect1 = {80} local outfit = {lookType = 3} local points = 20 local combat = createCombatObject() local health = 0.05 setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, 0) local condition = createConditionObject(CONDITION_ATTRIBUTES) setConditionParam(condition, CONDITION_PARAM_TICKS, tempo*1000) setConditionParam(condition, CONDITION_PARAM_STAT_MAGICLEVEL, points) setConditionParam(condition, CONDITION_PARAM_SKILL_FIST, points) setConditionParam(condition, CONDITION_PARAM_SKILL_SWORD, points) setConditionParam(condition, CONDITION_PARAM_SKILL_AXE, points) setConditionParam(condition, CONDITION_PARAM_SKILL_CLUB, points) setConditionParam(condition, CONDITION_PARAM_SKILL_DISTANCE, points) setConditionParam(condition, CONDITION_PARAM_SKILL_SHIELD, points) setConditionParam(condition, CONDITION_PARAM_BUFF, TRUE) setCombatCondition(combat, condition) function doHealthSecond(cid, amount, delay) -- function by vodka if not isCreature(cid) then return LUA_ERROR end doCreatureAddHealth(cid, amount) if delay ~= 1 then addEvent(doHealthSecond, 1000, cid, amount, delay -1) end end local function Magica(tempo2,tempo3,cid) if isCreature(cid) then for i=1, #effect do local position = {x=getCreaturePosition(cid).x+1, y=getCreaturePosition(cid).y, z=getCreaturePosition(cid).z} local position1 = {x=getCreaturePosition(cid).x+1, y=getCreaturePosition(cid).y, z=getCreaturePosition(cid).z} doSendMagicEffect(position, effect[i]) doSendMagicEffect(position1, effect1[i]) end end end local function Outfitzinha(cid) doRemoveCondition(cid, CONDITION_OUTFIT) end function onCastSpell(cid, var) if exhaustion.check(cid, 102053) == FALSE then doCombat(cid, combat, var) tempo2 = 0 while (tempo2 ~= (tempo*1000)) do addEvent(Magica, tempo2, tempo2, tempo*1000, cid) addEvent(Outfitzinha, tempo*1000, cid) tempo2 = tempo2 + 1000 end local position = {x=getCreaturePosition(cid).x+1, y=getCreaturePosition(cid).y, z=getCreaturePosition(cid).z} exhaustion.set(cid, 102053, tempo) doCreatureSay(cid, "KAIOKEEEEEEEN", TALKTYPE_MONSTER) doSendMagicEffect(position, 80) doHealthSecond(cid, -getCreatureMaxHealth(cid) * health, tempo) doSetCreatureOutfit(cid, outfit) else doPlayerSendCancel(cid, "Desculpe, voce ja esta Transformado.") end end ESSE É O CODIGO DO BUFF.
      USO TFS 0.4 E TIBIA 8.60
       
       
  • Recently Browsing   0 members

    No registered users viewing this page.


×
×
  • Create New...

Important Information

Confirmação de Termo