
Tudo que Mask Ghoul postou
-
TFS para OTX
E melhor o TFS OTs derivados como poketibia, narutibia , DBZ tibia , GLA , Avata e outros que utilizam gráficos próprios, Se você quiser usar otx e rodar no seu servidor e corrigir tudo os scripts e lua , função e outros etc..
-
ubuntu-16.04-x86_64 Morden Acc
então, vá tentar, se nao consegue me avise, eu possa ajudar apenas instalação pra comando basta.
-
ubuntu-16.04-x86_64 Morden Acc
Entendi, não funciona php 7.0 com modern acc só deve o funciona versão 5.6 php, pode alterar o php sem problemas.
-
ubuntu-16.04-x86_64 Morden Acc
vc tá usando php versão 7.0 ou 7.1? comando linux php -v
-
Distância de lure
Após investigação, descobri que isso acontece porque o elseif no método de limpeza no arquivo spawn.cpp está "removendo" a criatura de sua zona de spawn se ela não estiver lá Citarei aqui algum código de spawn.cpp loadFromXml () tenta carregar o raio para cada spawn, se não for definido, então -1 é definido. Codigo C++ Spawn.cpp: int32_t radius; pugi::xml_attribute radiusAttribute = spawnNode.attribute("radius"); if (radiusAttribute) { radius = pugi::cast<int32_t>(radiusAttribute.value()); } else { radius = -1; } Durante spawnCheck(), cleanup() método é executado e se o monstro estiver vivo e saiu de seu spawner (o raio de spawn é importante, não antiLureRadius) e depois no mapa gerado the monster is detached from its spawn (now it is attached to spawn of id = 0) and server thinks that there is no monster spawned yet in this spawn (so it is going to be respawn soon). void Spawn::checkSpawn() { checkSpawnEvent = 0; cleanup(); // o resto do método checkSpawn[ ... ] } void Spawn::cleanup() { // [...] } else if (!isInSpawnZone(monster->getPosition()) && spawnId != 0) { spawnedMap.insert(spawned_pair(0, monster)); it = spawnedMap.erase(it); } // [...] } Uma coisa importante é que o método isInZone () pense que o monstro está em spawn se spawnRadius for definido como -1 bool Spawn::isInSpawnZone(const Position& pos) { return Spawns::isInZone(centerPos, radius, pos); } bool Spawns::isInZone(const Position& centerPos, int32_t radius, const Position& pos) { if (radius == -1) { return true; } return ((pos.getX() >= centerPos.getX() - radius) && (pos.getX() <= centerPos.getX() + radius) && (pos.getY() >= centerPos.getY() - radius) && (pos.getY() <= centerPos.getY() + radius)); Não tenho certeza de qual é a ideia por trás desse recurso, mas provavelmente removendo as seguintes linhas no método void Spawn :: cleanup () Veja spawn.cpp deve ajudar } else if (!isInSpawnZone(monster->getPosition()) && spawnId != 0) { spawnedMap.insert(spawned_pair(0, monster)); it = spawnedMap.erase(it); } Esteja ciente de que se o antilure estiver desligado por algum motivo e o monstro se afastar de seu spawn, ele não irá reaparecer até que alguém o mate
-
(Resolvido)[C]: in function 'doSendMagicEffect'
tenta ae local voc = {716, 717, 718, 719, 720, 721, 722, 723, 724, 725} -- ID das vocações que poderão usar o Pergaminho. local corpse = {3058} local id = 26683 -- Id do edo pergaminho local edo = { ["[EDO TENSEI] Anbu"] = {hp = 50000, maxhp = 50000, corpse = 3058, chance = 100}, -- Nome do Edo, HP do Edo quando summoned, max hp do edo , corpo do edo, chance de falhar. } function onUse(cid, item, frompos, item2, topos) if(not(isInArray(voc, getPlayerVocation(cid)))) then return doPlayerSendTextMessage(cid, 25, "Voce nao tem a vocacao nescessaria") end if(not(isInArray(corpse, item2.itemid))) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_DEFAULT, "voce precisa usar o pergaminho em um corpse") doSendMagicEffect(toPosition, CONST_ME_POFF) return true end local perga = doPlayerAddItem(cid, id, 1) for edo_tensei, v in pairs(edo) do if item2.itemid == v.corpse then if math.random(0,100) <= v.chance then doSendMagicEffect(toPosition, CONST_ME_POFF) doPlayerSendTextMessage(cid, 27, "".. edo_tensei .. " foi selado nesse pergaminho.") doRemoveItem(item.uid, 1) doRemoveItem(item2.uid, 1) doItemSetAttribute(perga, "namepet", edo_tensei) doItemSetAttribute(perga, "description", "Neste pergaminho foi selado um ".. edo_tensei ..".") doItemSetAttribute(perga, "lifepet", v.hp) doItemSetAttribute(perga, "maxlifepet", v.maxhp) else doPlayerSendTextMessage(cid, 27, "O pergaminho falhou") end end end return true end
-
trocar mensagem You advanced to magic level, axe, distance, sword e etc.
Poste a seu codigo em source player.cpp e tools.cpp "skills"
-
(Resolvido)Alguém poderia colocar position x y z nessa spell?
Um momento...
-
(Resolvido)Alguém poderia colocar position x y z nessa spell?
ótimo, esse parece script otx né?
-
(Resolvido)Alguém poderia colocar position x y z nessa spell?
testa ae local combat1 = createCombatObject() setCombatParam(combat1, COMBAT_PARAM_TARGETCASTERORTOPMOST, true) setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat1, COMBAT_PARAM_EFFECT, 136) setCombatParam(combat1, COMBAT_PARAM_DISTANCEEFFECT, 141) function tsubi(cid, level, maglevel) local min = -(level * 2.0+ maglevel * 4 +50) local max = -(level * 2.0+ maglevel * 4.5 +50) return min, max end setCombatCallback(combat1, CALLBACK_PARAM_LEVELMAGICVALUE, "tsubi") local combat2 = createCombatObject() setCombatParam(combat2, COMBAT_PARAM_TARGETCASTERORTOPMOST, true) setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat2, COMBAT_PARAM_EFFECT, 136) setCombatParam(combat2, COMBAT_PARAM_DISTANCEEFFECT, 141) function tsubi1(cid, level, maglevel) local min = -(level * 2.0+ maglevel * 4 +50) local max = -(level * 2.0+ maglevel * 4.5 +50) return min, max end setCombatCallback(combat2, CALLBACK_PARAM_LEVELMAGICVALUE, "tsubi1") local combat3 = createCombatObject() setCombatParam(combat3, COMBAT_PARAM_TARGETCASTERORTOPMOST, true) setCombatParam(combat3, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat3, COMBAT_PARAM_EFFECT, 136) setCombatParam(combat3, COMBAT_PARAM_DISTANCEEFFECT, 141) function tsubi1(cid, level, maglevel) local min = -(level * 2.0+ maglevel * 4 +50) local max = -(level * 2.0+ maglevel * 4.5 +50) return min, max end setCombatCallback(combat3, CALLBACK_PARAM_LEVELMAGICVALUE, "tsubi1") local combat4 = createCombatObject() setCombatParam(combat3, COMBAT_PARAM_TARGETCASTERORTOPMOST, true) setCombatParam(combat3, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat3, COMBAT_PARAM_EFFECT, 136) setCombatParam(combat3, COMBAT_PARAM_DISTANCEEFFECT, 141) function tsubi1(cid, level, maglevel) local min = -(level * 2.0+ maglevel * 4 +50) local max = -(level * 2.0+ maglevel * 4.5 +50) return min, max end setCombatCallback(combat3, CALLBACK_PARAM_LEVELMAGICVALUE, "tsubi1") local combat5 = createCombatObject() setCombatParam(combat3, COMBAT_PARAM_TARGETCASTERORTOPMOST, true) setCombatParam(combat3, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat3, COMBAT_PARAM_EFFECT, 136) setCombatParam(combat3, COMBAT_PARAM_DISTANCEEFFECT, 141) function tsubi1(cid, level, maglevel) local min = -(level * 2.0+ maglevel * 4 +50) local max = -(level * 2.0+ maglevel * 4.5 +50) return min, max end setCombatCallback(combat3, CALLBACK_PARAM_LEVELMAGICVALUE, "tsubi1") local function onCastSpell1(parameters) doCombat(parameters.cid, parameters.combat1, parameters.var) end local function onCastSpell2(parameters) doCombat(parameters.cid, parameters.combat2, parameters.var) end local function onCastSpell3(parameters) doCombat(parameters.cid, parameters.combat3, parameters.var) end local function onCastSpell4(parameters) doCombat(parameters.cid, parameters.combat4, parameters.var) end local function onCastSpell5(parameters) doCombat(parameters.cid, parameters.combat5, parameters.var) end function onCastSpell(cid, var) local parameters = { cid = cid, var = var, combat1 = combat1, combat2 = combat2, combat3 = combat3, combat4 = combat4, combat5 = combat5 } local position1 = {x=getThingPosition(getCreatureTarget(cid)).x+2, y=getThingPosition(getCreatureTarget(cid)).y+0, z=getThingPosition(getCreatureTarget(cid)).z} doSendMagicEffect(position1, 136) addEvent(onCastSpell1, 0, parameters) addEvent(onCastSpell2, 200, parameters) addEvent(onCastSpell3, 400, parameters) addEvent(onCastSpell3, 500, parameters) addEvent(onCastSpell3, 600, parameters) return true end
-
Object Builder Erro Imagen
Qual é o sua versão em object builder? quero saber
-
Erro ao compilar
Você ja instalou o openssl no dev c++, ou se nao continua erro..
-
Como fazer buff que troca effecto do um Spells?
testa assim spell storage + attk nao tenho certeza. vou consertar dps local combat1 = createCombatObject() setCombatParam(combat1, COMBAT_PARAM_HITCOLOR, 180) setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat1, COMBAT_PARAM_DISTANCEEFFECT, 64) setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -1.0, -36500, -1.0, -44600) local function onCastSpell1(parameters) doCombat(parameters.cid, parameters.combat1, parameters.var) end function BijuRasengan(cid) if isCreature(cid) and isCreature(getCreatureTarget(cid)) then local position = {x=getThingPosition(getCreatureTarget(cid)).x+2, y=getThingPosition(getCreatureTarget(cid)).y, z=getThingPosition(getCreatureTarget(cid)).z} doSendMagicEffect(position, 289) end end local storageLoadEffect = 3 function onCastSpell(creature, variant) if combat:execute(creature, variant) then local loadEffect = math.max(1, creature:getStorageValue(storageLoadEffect)) Position(creature:getPosition() + Position(1, 0, 0)):sendMagicEffect(loadEffect) return true end return false end function onCastSpell(cid, var) local waittime = 1 -- Tempo de exhaustion local storage = 3 -- não mecha if exhaustion.check(cid, storage) then doPlayerSendCancel(cid, "Usted esta cansado.") doSendMagicEffect(getCreaturePosition(cid), 2) return false end local parameters = {cid = cid, var = var, combat1 = combat1 , combat2 = combat2} for i = 1, 1 do addEvent(function() if isCreature(cid) then addEvent(onCastSpell1, 100, parameters) addEvent(BijuRasengan,100,cid) end end, 1 + ((i-1) * 650)) end exhaustion.set(cid, storage, waittime) return true end
-
System Elo
em breve, eu irei postar o sistema elo os dois tfs e otx 0.4. sem prometo
-
Procuro Otserv Evo Versao 10+
E TFS ou OTX?
-
System Elo
Uhum, Eu tenho interessante , Vou criar o sistema elo instalação OTX e TFS 0.4. Me apoie :D
-
Programação Magic e Shoot Effects TFS E OTX 1.3 [Versão 8.60]
Opa muito obrigado amigo estarei arrumando o tópico vlw
-
Programação Magic e Shoot Effects TFS E OTX 1.3 [Versão 8.60]
Olá Tibiaking Hoje vim trazer como aumentar Efeitos / Missile na source TFS e OTX 1.3 Utilize 8.60 OLDCLIENT estendida unit16 então resolvi eu mesmo mexer e consegui achar e estou trazendo para vocês! Esse Tópico é especifico para TFS E OTX 1.3, para que assim você possa aumentar o limite de efeitos no Client, e usar mais de 2k efeitos, e mais de 500 efeitos em Distância. Vale lembra também que você não é obrigado a mudar em ambos, se você quiser apenas aumentar o Limite de Efeitos para mais de 2k, então mude apenas ele, caso queria aumentar apenas os Efeitos que são lançados a distância(ShootEffects ou DistanceEffect), caso queria os dois, use ambos. Vamos começar em Magic Effects e DistanceShoot: Boa sorte vcs ? Recompila Source LINUX / Windows TFS E OTX 1.3 Então é isso ae, qualquer erro só comentar para que eu possar tentar ajudar. Tópico exclusivo do Tibaking, proibido posta em outro site, blog ou fórum!
-
{WoDBO Explorer] Descompilado Client
Olá Tibiaking Hoje Trago pra vocês um pack de Client Wodbo Explorer Descompilado atual ano 2019 ( Não tenho certeza disso, eu nao lembro mais. deixei que minha notebook guardava mais o clientes.) Espero que vocês gostam. https://www.mediafire.com/file/zqnt30azbuvi1wc/WODBOExplorer.zip/file Imagens Pack Client Wodbo Explorer Creditos: Mask Ghost ( Descompilador Client's Pack ) Scan: https://www.virustotal.com/gui/file/d6fa20a70c9e6578d55f0cccbda9888f6846fcf1faa4f8744d7d2089ed022cda/detection Não postem em outros fórum sem a minha permissão. é isto bom aprveito a todos. 2020 - Bom Dia.
-
Regen Stamina nos Trainers
tente com este, e lembre-se de registrar o id da ação no remere data/movements/movemnts.xml edite <movevent event="StepIn" actionid="25000" script="others/stamina_tile.lua" /> <movevent event="StepOut" actionid="25000" script="others/stamina_tile.lua" /> data/movements/scripts/sistema_tile.lua Code LUA staminaEvents = {} local config = { timeToAdd = 5, addTime = 1, } local function addStamina(cid) local player = Player(cid) if not player then stopEvent(staminaEvents[cid]) staminaEvents[cid] = nil return true end player:setStamina(player:getStamina() + config.addTime) player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "You received "..config.addTime.." minutes of stamina.") staminaEvents[cid] = addEvent(addStamina, config.timeToAdd * 60 * 1000, cid) end function onStepIn(creature) if creature:isPlayer() then creature:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "You will receive "..config.addTime.." minute of stamina every "..config.timeToAdd.." minutes.") staminaEvents[creature:getId()] = addEvent(addStamina, config.timeToAdd * 60 * 1000, creature:getId()) end return true end function onStepOut(creature) if creature:isPlayer() then stopEvent(staminaEvents[creature:getId()]) staminaEvents[creature:getId()] = nil end return true end
-
Spell de Paralyze
local tempo = 5 -- tempo do paralyze em segundos local effect = 226 -- efeito que vai sair ao redor do player local exausted = 8 -- exhausted em segundos local storage = 1000700 -- storage do exausted local condition = createConditionObject(CONDITION_PARALYZE) setConditionParam(condition, CONDITION_PARAM_TICKS, tempo*1000) setConditionParam(condition, CONDITION_PARAM_SPEED, -5000) function onCastSpell(cid, var) local target = getCreatureTarget(cid) local function Efect() if not isCreature(target) then return true end local positions = { [1] = {x=getCreaturePosition(target).x+1, y=getCreaturePosition(target).y+0, z=getCreaturePosition(target).z}, } for i=1, #positions do if isWalkable(positions[i]) then doSendMagicEffect(positions[i], effect) end end end local function No_Move_Target() if isCreature(target) then doCreatureSetNoMove(target, 0) end return TRUE end if isPlayer(cid) and exhaustion.check(cid, storage) == TRUE then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Aguarde " .. exhaustion.get(cid, storage) .. " segundos para usar novamente.") return false end exhaustion.set(cid, storage, exausted) doCreatureSetNoMove(target, 1) doAddCondition(target, condition) addEvent(No_Move_Target, tempo*1000) local t = 0 while t <= tempo*1000 do addEvent(Efect, t) t = t+300 end return true end Testa ae