
Tudo que LeoTK postou
-
Sword batendo por level
@penisagudo sim perfeito agora só colocar o script detalhe atualizei a resposta acima com a tag do xml agora esta tudo ok no script ele vai puxar a skill no caso da arma que é o axe...
-
Sword batendo por level
@penisagudo Você vai configurar corretamente a arma no item.xml com os atributos se for axe etc... Depois de configurar tudo corretamente vai em weapons/scripts - Crie um arquivo.lua e cole isso dentro Obs: deixei também de uma forma que da para colocar dano em área caso quiser weapon.xml <melee id="ID DO ITEM" level="LVL PARA USAR" event="script" value="nome do arquivo.lua"/> local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_BLOCKARMOR, 1) setCombatParam(combat, COMBAT_PARAM_BLOCKSHIELD, 1) setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE) -- Tipo de Dano setCombatFormula(combat, COMBAT_FORMULA_SKILL, 1, 0, 1, 0) local area = createCombatArea({ {0, 0, 0}, {0, 3, 0}, {0, 0, 0} }) setCombatArea(combat, area) function onUseWeapon(cid, var) local target = getThingPosition(getCreatureTarget(cid)) local pos = {x=target.x+0, y=target.y+0, z=target.z+0} doSendMagicEffect(pos, 5) --efeito que vai aparecer no target ao dar dano return doCombat(cid, combat, var) end
-
Duvidas em como criar spell
@greeneyzer olha na minha assinatura a baixo eu publiquei uma formula para fazer dar dano por level e por alguma skill ou ate mais de uma [SPELL] Dano Por Skill
-
Configurar o site do wodbo wars
Este tópico foi movido para a área correta. Esta é uma mensagem automática! Pedimos que leia as regras do fórum!
-
(Resolvido)(Ajuda) Talk que reinicia servidor
@Juantibiano achei apenas esses parece estar bem explicado https://tibiaking.com/forums/topic/88793-auto-restart-linux/
-
(Resolvido)(Ajuda) Talk que reinicia servidor
@Juantibiano simples uso o auto-restarter se for windows caso for linux use o screen com autorestart irei deixar os dois auto-restart para download e depois use o comando shutdown para fechar o servidor e o auto-restarter vai abri-lo automaticamente Auto-restart = Windows AUTO RESTARTER.bat Auto-restart = Linux restart.sh
-
Existe um limite de itens?
@Zazeros teste usando esse programa já tive esse problema e resolvi usando esse programa ItemEditorSetup.exe
-
Alguem me ajuda com esse BUG (PLAYER A NIL VALUE)
Este tópico foi movido para a área correta. Esta é uma mensagem automática! Pedimos que leia as regras do fórum!
-
New Templo 8.6
Parabéns, seu tópico de conteúdo foi aprovado! Muito obrigado pela sua contribuição, nós do Tibia King agradecemos. Seu conteúdo com certeza ajudará à muitos outros, você recebeu +1 REP.
-
bug na spell
Este tópico foi movido para a área correta. Esta é uma mensagem automática! Pedimos que leia as regras do fórum!
-
AJUDA COM SCRIPT DE MORTE [DÚVIDA]
Este tópico foi movido para a área correta. Esta é uma mensagem automática! Pedimos que leia as regras do fórum!
-
Metin Stone Event
@tetheuscunha ue só editar ao seu gosto claro precisa saber um pouco de lua pra isso ...
-
DESENVOLVEDOR OTserver versões 8.0 /8.10
Este tópico foi movido para a área correta. Esta é uma mensagem automática! Pedimos que leia as regras do fórum!
-
Como configurar o Znote para Poketibia
Este tópico foi movido para a área correta. Esta é uma mensagem automática! Pedimos que leia as regras do fórum!
-
Metin Stone Event
@tetheuscunha Salve achei esse aparentemente é o melhor mod do evento <?xml version="1.0" encoding="UTF-8"?> <mod name="Metin Stone Event" version="1.1" author="Oskar" contact="http://tibia.net.pl/members/oskar.html" enabled="yes"> <config name="metinStone_conf"><![CDATA[ metinStoneStart = { pos_od = {x=1865,y=1123,z=13}, --lewy gorny rog pos_do = {x=1878,y=1131,z=13}, --prawy dolny rog time = 240, --pierwsze i kazde nastepne losowanie od momentu startu serwera, w minutach chance = 50 --szansa na wylosowanie kamulca } metinArea = createCombatArea{ {0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0}, {0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0}, {0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0}, {0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0}, {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, {0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0}, {0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0}, {0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0}, {0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0} } metinConfig = { ['fire stone'] = { [90] = {m = {'fire elemental','fire devil'}, n = {15, 20}}, [80] = {m = {'fire elemental','fire devil','massive fire elemental'}, n = {16, 21}}, [70] = {m = {'dragon','fire elemental'}, n = {17, 22}}, [60] = {m = {'dragon','massive fire elemental','fire elemental'}, n = {18, 23}}, [50] = {m = {'dragon','dragon lord','massive fire elemental'}, n = {19, 24}}, [40] = {m = {'dragon lord','massive fire elemental','diabolic imp'}, n = {20, 25}}, [30] = {m = {'diabolic imp','hellfire fighter','infernalist'}, n = {21, 26}}, [20] = {m = {'diabolic imp','hellfire fighter','demon','infernalist'}, n = {22, 27}}, [10] = {m = {'demon','hellfire fighter','infernalist','hellhound'}, n = {23, 28}}, [5] = {m = {'demon','arch devil','hellhound'}, n = {24, 29}}}, ['earth stone'] = { [90] = {m = {'slime','bonelord','earth elemental'}, n = {15, 20}}, [80] = {m = {'bonelord','elder bonelord','earth elemental'}, n = {16, 21}}, [70] = {m = {'massive earth elemental','bog raider','earth elemental'}, n = {17, 22}}, [60] = {m = {'bog raider','medusa','wyvern'}, n = {18, 23}}, [50] = {m = {'medusa','defiler','slime'}, n = {19, 24}}, [40] = {m = {'medusa','serpent spawn','slime'}, n = {20, 25}}, [30] = {m = {'serpent spawn','wyvern','defiler'}, n = {21, 26}}, [20] = {m = {'defiler','medusa','slime'}, n = {22, 27}}, [10] = {m = {'defiler','plaguesmith','phantasm'}, n = {23, 28}}, [5] = {m = {'plaguesmith','defiler','abomination creature'}, n = {24, 29}}}, ['ice stone'] = { [90] = {m = {'ice golem','crystal spider'}, n = {15, 20}}, [80] = {m = {'ice golem','crystal spider','ice witch'}, n = {16, 21}}, [70] = {m = {'crystal spider','ice witch','mammoth'}, n = {17, 22}}, [60] = {m = {'crystal spider','frost dragon'}, n = {18, 23}}, [50] = {m = {'crystal spider','frost dragon','ice witch'}, n = {19, 24}}, [40] = {m = {'frost dragon','warlock'}, n = {20, 25}}, [30] = {m = {'crystal spider','frost dragon','warlock'}, n = {21, 26}}, [20] = {m = {'crystal spider','frost dragon','warlock','ice witch'}, n = {22, 27}}, [10] = {m = {'frost dragon','warlock'}, n = {23, 28}}, [5] = {m = {'frost dragon','warlock'}, n = {24, 29}}}, } metinCombat = {['fire stone'] = {COMBAT_FIREDAMAGE, CONST_ME_FIREAREA}, ['earth stone'] = {COMBAT_EARTHDAMAGE, CONST_ME_SMALLPLANTS}, ['ice stone'] = {COMBAT_ICEDAMAGE, CONST_ME_ICEATTACK}} function getPercent(number, all) return (number / all) * 100 end function choose(arg) return arg[math.random(#arg)] end function isWalkable(pos, creature, proj, pz) if getTileThingByPos({x=pos.x,y=pos.y,z=pos.z,stackpos=0}).itemid == 0 then return false end if getTopCreature(pos).uid > 0 and creature then return false end if getTileInfo(pos).protection and pz then return false, true end local n = not proj and 3 or 2 for i = 0, 255 do pos.stackpos = i local tile = getTileThingByPos(pos) if tile.itemid ~= 0 and not isCreature(tile.uid) then if hasProperty(tile.uid, n) or hasProperty(tile.uid, 7) then return false end end end return true end function checkPositions(fromPos, toPos, nb) local pos = {x=math.random(fromPos.x,toPos.x), y=math.random(fromPos.y,toPos.y), z=math.random(fromPos.z,toPos.z)} if isWalkable(pos, true, true, true) then return pos end return (nb < 50 and checkPositions(fromPos, toPos, nb+1) or false) end function setMetinStone(metinStoneStart, metinConfig) local pos = checkPositions(metinStoneStart.pos_od, metinStoneStart.pos_do, 0) if pos and math.random(100) <= metinStoneStart.chance then local stones = {} for k, _ in pairs(metinConfig) do table.insert(stones, k) end local stone = choose(stones) doBroadcastMessage(stone .. ' is summoned!') local mon = doCreateMonster(stone, pos, false) registerCreatureEvent(mon, 'metinStoneCombat') end return addEvent(setMetinStone, metinStoneStart.time * 60 * 1000, metinStoneStart, metinConfig) end ]]></config> <event type="combat" name="metinStoneCombat" event="script"><![CDATA[ domodlib('metinStone_conf') function onCombat(cid, target) if isMonster(target) then registerCreatureEvent(target, 'metinStoneCombat') end local t, vw = getPercent(getCreatureHealth(target), getCreatureMaxHealth(target)), metinConfig[getCreatureName(target):lower()] if isMonster(target) and vw then if t > 90 then doCreatureSetStorage(target, 1000, 91) end for k, v in pairs(vw) do if k >= t and getCreatureStorage(target, 1000) > k then local pos = getThingPos(target) for i = 1, math.random(v.n[1], v.n[2]) do local s = {x=pos.x,y=pos.y,z=pos.z} s.x = pos.x + math.random(-3,3) s.y = pos.y + math.random(-3,3) doCreateMonster(choose(v.m), s, false) end doCombatAreaHealth(target, metinCombat[getCreatureName(target):lower()][1], pos, metinArea, -298, -917, metinCombat[getCreatureName(target):lower()][2]) return doCreatureSetStorage(target, 1000, k) end end end return true end ]]></event> <globalevent name="metinStoneStart" type="start" event="script"><![CDATA[ domodlib("metinStone_conf") function onStartup() return addEvent(setMetinStone, metinStoneStart.time * 60 * 1000, metinStoneStart, metinConfig) end ]]></globalevent> <event type="login" name="metinStoneLogin" event="buffer"><![CDATA[ registerCreatureEvent(cid, 'metinStoneCombat') ]]></event> </mod> Créditos(Otland) Oskar1121
-
AJuda Spells.cpp Sources
@mateusmoretti simples tira o exaust do spells.xml e coloca o exaust no script problema resolvido
-
Database invadida Linux Help
@victor4312 sim mas tem uma brecha no apache que da para derrubar por isso aconselho a usar nginx porque tive problemas com o apache mas vai de cada um estou aqui para aconselhar sempre o melhor
-
Item que dá Outfit
@gokulord esse erro que da é pelos caracteres especiais .... @gokulord procura na linha 9 caracteres invisiveis ou especiais e remove
-
error spell inferface
@sverkoa Testa assim estava puxando combat4 sendo que não tem ele no script então removi ele testa agora local combat1 = createCombatObject() setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat1, COMBAT_PARAM_EFFECT, 26) setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -3.0, -40, -3.2, 0) local condition = createConditionObject(CONDITION_STUN) setConditionParam(condition, CONDITION_PARAM_TICKS, 4000) setConditionFormula(condition, -0.7, -0, -0.7, -0) setCombatCondition(combat1, condition) local combat2 = createCombatObject() setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat2, COMBAT_PARAM_EFFECT, 26) setCombatFormula(combat2, COMBAT_FORMULA_LEVELMAGIC, -3.0, -40, -3.2, 0) local condition = createConditionObject(CONDITION_STUN) setConditionParam(condition, CONDITION_PARAM_TICKS, 4000) setConditionFormula(condition, -0.7, -0, -0.7, -0) setCombatCondition(combat2, condition) local combat3 = createCombatObject() setCombatParam(combat3, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat3, COMBAT_PARAM_EFFECT, 26) setCombatFormula(combat3, COMBAT_FORMULA_LEVELMAGIC, -3.0, -40, -3.2, 0) local condition = createConditionObject(CONDITION_STUN) setConditionParam(condition, CONDITION_PARAM_TICKS, 4000) setConditionFormula(condition, -0.7, -0, -0.7, -0) setCombatCondition(combat3, condition) arr1 = { {1, 1, 1}, {1, 2, 1}, {1, 1, 1} } arr2 = { {0, 1, 1, 1, 0}, {1, 1, 1, 1, 1}, {1, 1, 2, 1, 1}, {1, 1, 1, 1, 1}, {0, 1, 1, 1, 0}, } arr3 = { {1, 1, 1}, {1, 2, 1}, {1, 1, 1} } local area1 = createCombatArea(arr1) local area2 = createCombatArea(arr2) local area3 = createCombatArea(arr3) setCombatArea(combat1, area1) setCombatArea(combat2, area2) setCombatArea(combat3, area3) 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 function onTargetCreature(cid, target) local function sun1(cid) doPlayerSay(cid,"...",16) return TRUE end local rand = math.random(1,5) if isPlayer(target) == true and rand == 5 then doSendAnimatedText(getCreaturePosition(target), "Stun!", TEXTCOLOR_WHITE_EXP) ddEvent(sun1, 1*1000,cid) return TRUE elseif isPlayer(target) == true and rand == 4 then doSendAnimatedText(getCreaturePosition(target), "Stun!", TEXTCOLOR_WHITE_EXP) doSendMagicEffect(getCreaturePosition(target), 24) ddEvent(sun1, 1*1000,cid) return TRUE elseif isPlayer(target) == true and rand < 4 then doSendAnimatedText(getCreaturePosition(target), "Stun!", TEXTCOLOR_WHITE_EXP) return TRUE else doSendAnimatedText(getCreaturePosition(target), "Stun!", TEXTCOLOR_WHITE_EXP) return TRUE end end setCombatCallback(combat1, CALLBACK_PARAM_TARGETCREATURE, "onTargetCreature") function onTargetCreature(cid, target) local function sun1(cid) doPlayerSay(cid,"...",16) return TRUE end local rand = math.random(1,5) if isPlayer(target) == true and rand == 5 then doSendAnimatedText(getCreaturePosition(target), "Stun!", TEXTCOLOR_WHITE_EXP) ddEvent(sun1, 1*1000,cid) return TRUE elseif isPlayer(target) == true and rand == 4 then doSendAnimatedText(getCreaturePosition(target), "Stun!", TEXTCOLOR_WHITE_EXP) doSendMagicEffect(getCreaturePosition(target), 24) ddEvent(sun1, 1*1000,cid) return TRUE elseif isPlayer(target) == true and rand < 4 then doSendAnimatedText(getCreaturePosition(target), "Stun!", TEXTCOLOR_WHITE_EXP) return TRUE else doSendAnimatedText(getCreaturePosition(target), "Stun!", TEXTCOLOR_WHITE_EXP) return TRUE end end setCombatCallback(combat2, CALLBACK_PARAM_TARGETCREATURE, "onTargetCreature") function onTargetCreature(cid, target) local function sun1(cid) doPlayerSay(cid,"...",16) return TRUE end local rand = math.random(1,5) if isPlayer(target) == true and rand == 5 then doSendAnimatedText(getCreaturePosition(target), "Stun!", TEXTCOLOR_WHITE_EXP) ddEvent(sun1, 1*1000,cid) return TRUE elseif isPlayer(target) == true and rand == 4 then doSendAnimatedText(getCreaturePosition(target), "Stun!", TEXTCOLOR_WHITE_EXP) doSendMagicEffect(getCreaturePosition(target), 24) ddEvent(sun1, 1*1000,cid) return TRUE elseif isPlayer(target) == true and rand < 4 then doSendAnimatedText(getCreaturePosition(target), "Stun!", TEXTCOLOR_WHITE_EXP) return TRUE else doSendAnimatedText(getCreaturePosition(target), "Stun!", TEXTCOLOR_WHITE_EXP) return TRUE end end setCombatCallback(combat3, CALLBACK_PARAM_TARGETCREATURE, "onTargetCreature") function onTargetCreature(cid, target) local function sun1(cid) doPlayerSay(cid,"...",16) return TRUE end local rand = math.random(1,5) if isPlayer(target) == true and rand == 5 then doSendAnimatedText(getCreaturePosition(target), "Stun!", TEXTCOLOR_WHITE_EXP) ddEvent(sun1, 1*1000,cid) return TRUE elseif isPlayer(target) == true and rand == 4 then doSendAnimatedText(getCreaturePosition(target), "Stun!", TEXTCOLOR_WHITE_EXP) doSendMagicEffect(getCreaturePosition(target), 24) ddEvent(sun1, 1*1000,cid) return TRUE elseif isPlayer(target) == true and rand < 4 then doSendAnimatedText(getCreaturePosition(target), "Stun!", TEXTCOLOR_WHITE_EXP) return TRUE else doSendAnimatedText(getCreaturePosition(target), "Stun!", TEXTCOLOR_WHITE_EXP) return TRUE end end setCombatCallback(combat3, CALLBACK_PARAM_TARGETCREATURE, "onTargetCreature") local function Cooldown(cid) if isPlayer(cid) == TRUE then doPlayerSendTextMessage(cid,MESSAGE_STATUS_WARNING,'CD: Terremoto') end end local exhausted_seconds = 25 -- Segundos que o Player Poderá castar a spell novamente local exhausted_storagevalue = 63421457 -- Storage Value do Cool Down function onCastSpell(cid, var) if(os.time() < getPlayerStorageValue(cid, exhausted_storagevalue)) then doPlayerSendCancel(cid,'O Cooldown não está pronto.') return TRUE end local function spell2(cid) addEvent(spell3, 1 * 350, cid) return doCombat(cid, combat3, var) end local function spell1(cid) addEvent(spell2, 1 * 350, cid) return doCombat(cid, combat2, var) end addEvent(spell1, 1 * 350, cid) doCreatureSay(cid,"Exori Gran Tera!",16) addEvent(Cooldown, 1*25000,cid) setPlayerStorageValue(cid, exhausted_storagevalue, os.time() + exhausted_seconds) return doCombat(cid, combat1, var) end
-
Item que dá Outfit
@gokulord testa assim outfit.xml <outfit id="1" quest="9785"> <list gender="0" lookType="1288" name="Test"/> <list gender="1" lookType="1288" name="Test"/> </outfit> Looktype = Outfit Barbarian Name = Barbarian Quest = Storage = 12987 Script local configs = { {itemid = 2530, gender = 0, storage = 12987, value = 1, name = "barbarian"}; {itemid = 2530, gender = 1, storage = 12988, value = 1, name = "barbarian"} } function onUse(cid, item) for _, outfit in ipairs(configs) do if item.itemid == outfit.itemid then if getPlayerStorageValue(cid, outfit.storage) <= 0 then if getPlayerSex(cid) == outfit.gender then setPlayerStorageValue(cid, outfit.storage, outfit.value) doSendMagicEffect(getPlayerPosition(cid), 12) doPlayerSendTextMessage(cid, 22, "You gained the "..outfit.name.." outfit.") doRemoveItem(item.uid, 1) return true else doSendMagicEffect(getPlayerPosition(cid), 2) doPlayerSendTextMessage(cid, 22, "You arent of the correct gender.") return true end else doSendMagicEffect(getPlayerPosition(cid), 2) doPlayerSendTextMessage(cid, 22, "You already has the "..outfit.name.." outfit.") return true end end end return false end @floW acabei de postar eu cheguei a testar algo parecido então eu tinha de pronta mão
-
Item que dá Outfit
@floW mas o seu raciocinio de antes estava correto ele poderia setar uma necessidade de storage no outfit.xml e fazer o script apenas dar a storage para ele assim liberando a outfit
-
Item que dá Outfit
@gokulord esta faltando isso no meu caso uso 0.3.6 porém já da pra você tirar uma ideia de como teria que ser local outfit = {lookType = 989, lookHead = 0, lookBody = 0, lookLegs = 0, lookFeet = 0, lookTypeEx = 0, lookAddons = 3} doSetCreatureOutfit(cid, outfit)
-
Database invadida Linux Help
@Isac005 se usa apache muda pra nginx e coloca pra apenas um ip poder acessar o phpmyadmin
- [Modern Acc] Guild Dominante (Página)
- [Modern Acc] Guild Dominante (Página)