
Tudo que Bodak Reborn postou
-
(Resolvido)Usar item só se tiver tal storage.
local stor = {30023, 4} local storage = 657489 function onUse(cid, item, fromPos, toPos) if getPlayerStorageValue(cid, stor[1]) ~= stor[2] then return doPlayerSendCancel(cid, 'You can\'t use this item.') and false end if getPlayerStorageValue (cid, storage) == 1 then return true end doRemoveItem(item.uid, 2415) doPlayerSetVocation(cid, 525) doCreatureChangeOutfit(cid, {lookType = 462}) doSendMagicEffect(toPos, 32) doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, 'Agora voce foi promovido.') setPlayerStorageValue (cid, storage, 1) doRemoveItem(item.uid) return true end
-
Addon System (Fly, ride, surf, look e evolution)
Yo boyz, cá estou novamente. Eu estava procurando um Addon System funcional e vi que todos tinham bugs, então eu peguei um aqui no fórum mesmo, corrigi os bugs e fiz para que o sistema funcione com fly, ride, surf, look e que o addon suma quando o pokémon evoluir. Também é possível substituir um addon por outro, sem que o pokémon fique com o addon antigo. São muitos arquivos envolvidos, então, se eu esquecer algo e o sistema não esteja 100%, por favor, me fale. Deixei alguns exemplos no código para caso você esteja com preguiça e queira testar, além de comentar como adicionar novos addons. OBS: Eu testei apenas em PDA PokexCyan (TFS 1.0). actions/scripts nome_arquivo.lua local addons = { [14876] = {pokemon = "Shiny Charizard" , looktype = 1950}, [12344] = {pokemon = "Pidgeot" , looktype = 205}, [13990] = {pokemon = "Pidgeot" , looktype = 201}, --[ID do item] = {nome do pokémon, looktype}, } local function getOldAddon (looktype) for index, value in pairs (addons) do if value.looktype == looktype then return index end end end function onUse(cid, item, fromPosition, itemEx, toPosition) local numero = addons[item.itemid].looktype local pb = itemEx.uid local pk = addons[item.itemid].pokemon if not isPokeball(itemEx.itemid) then doPlayerSendCancel(cid, "Você só poder usar este item em uma poke ball.") return true end if getPlayerSlotItem (cid, 8).uid == pb and (getPlayerStorageValue(cid, 17000) >= 1 or getPlayerStorageValue(cid, 63215) >= 1) then doPlayerSendCancel (cid, "Desmonte do seu pokémon e volte-o para a poke ball.") return true end if getItemAttribute(pb, "addon") and getItemAttribute(pb, "addon") == numero then doPlayerSendCancel(cid, "Seu pokémon já está com este addon.") return true end if #getCreatureSummons(cid) > 0 then doPlayerSendCancel(cid, "Por favor, volte o seu pokémon para a poke ball.") return true end if getItemAttribute(pb, "poke") ~= pk then doPlayerSendCancel(cid, "Desculpe, você não pode adicionar este addon neste pokémon.") return true end if getItemAttribute (pb, "addon") and getItemAttribute (pb, "addon") > 1 then doPlayerSendTextMessage(cid, 27, "Você substituiu um "..getItemNameById (getOldAddon (getItemAttribute (pb, "addon"))).." por um "..getItemNameById (item.itemid).."!") else doPlayerSendTextMessage(cid, 27, "Agora seu pokémon usará este "..getItemNameById (item.itemid).."!") end doRemoveItem(item.uid, 1) doSetItemAttribute(pb, "addon", numero) return true end actions.xml: <action itemid="13989;12344;13990;ID do item; ID do item;" event="script" value="nome_arquivo.lua"/> em actions/order.lua, abaixo de: if not isCreature(pk) then pk = doCreateMonster(pokemon, backupPos) if not isCreature(pk) then doPlayerSendCancel(cid, "You can't stop flying/riding here.") return true end doConvinceCreature(cid, pk) end adicione: local pb = getPlayerSlotItem(cid, 8).uid local flyAdd = flysAddon[getItemAttribute (pb, "addon")] local rideAdd = ridesAddon[getItemAttribute (pb, "addon")] if flyAdd then if getItemAttribute(pb, "addon") > 1 then doSetCreatureOutfit(pk, {lookType = getItemAttribute (pb, "addon")}, -1) end elseif rideAdd then if getItemAttribute(pb, "addon") > 1 then doSetCreatureOutfit(pk, {lookType = getItemAttribute (pb, "addon")}, -1) end end em lib/configuration.lua, será necessário adicionar três tabelas, uma para fly, outra para ride e outra para surf. Nesta tabela, o nome do pokémon não é requirido, o que talvez faça você se perder. Se você achar necessário, comente com "--" o nome do pokémon. Exemplo: [205] = {540, 1200}, -- Pidgeot [850] = {210, 800}, -- Dragonair procure por: flys e acima disso adicione: flysAddon = { [205] = {540, 1200}, [201] = {541, 1200}, --[número do looktype normal] = {looktype voando, número da tabela abaixo.} } procure por: rides e acima disso adicione: ridesAddon = { [556] = {555, 30}, --[número do looktype] = {looktype montado, número da tabela abaixo.} } procure por: rides e acima disso adicione: surfsAddon = { [201] = {541, 10}, [552] = {553, 10}, --[número do looktype] = {looktype nadando, speed da tabela abaixo.} } em lib/order.lua, procure por: elseif skill == "fly" then e abaixo adicione: local pb = getPlayerSlotItem(cid, 8).uid if getItemAttribute(pb, "addon") < 1 then doSetCreatureOutfit(cid, {lookType = flys[getPokemonName(getCreatureSummons(cid)[1])][1] + 351}, -1) else doSetCreatureOutfit(cid, {lookType = flysAddon[getItemAttribute (pb, "addon")][1]}, -1) end depois, no mesmo arquivo, procure por: elseif skill == "ride" then e abaixo adicione: local pb = getPlayerSlotItem(cid, 8).uid if getItemAttribute(pb, "addon") < 1 then doSetCreatureOutfit(cid, {lookType = rides[getPokemonName(getCreatureSummons(cid)[1])][1] + 351}, -1) else doSetCreatureOutfit(cid, {lookType = ridesAddon[getItemAttribute (pb, "addon")][1]}, -1) end em movements/surf.lua, procure por: if getPlayerStorageValue(cid, 6598754) == 1 or getPlayerStorageValue(cid, 6598755) == 1 then doPlayerSendCancel(cid, "You can't do it while in the PVP Zone!") --alterado v1.7 doTeleportThing(cid, fromPosition, false) return true end e abaixo adicione: local pb = getPlayerSlotItem(cid, 8).uid if getItemAttribute(pb, "addon") < 1 then doSetCreatureOutfit(cid, {lookType = surfs[getPokemonName(getCreatureSummons(cid)[1])].lookType}, -1) else doSetCreatureOutfit(cid, {lookType = surfsAddon[getItemAttribute(pb, "addon")][1]}, -1) end logo abaixo disso, vocês vão encontrar: (isso não envolve o funcionamento do sistema de addon, mas é um bug que eu achei no meu surf. Todos os pokémon tinham velocidade fixa de 1500.) local speed = 75 + PlayerSpeed + getSpeed(getCreatureSummons(cid)[1]) * 8 * speedRate substitua por: local speed = 75 + PlayerSpeed + surfs[getPokemonName(getCreatureSummons(cid)[1])].speed * 8 * speedRate no mesmo arquivo, procure por: if getItemAttribute(item.uid, "nick") then doCreatureSay(cid, getItemAttribute(item.uid, "nick")..", I'm tired of surfing!", 1) else doCreatureSay(cid, getItemAttribute(item.uid, "poke")..", I'm tired of surfing!", 1) end doSummonMonster(cid, pokemon) local pk = getCreatureSummons(cid)[1] e abaixo adicione: local pb = getPlayerSlotItem(cid, 8).uid if surfsAddon[getItemAttribute(pb, "addon")] then if getItemAttribute(pb, "addon") > 1 then doSetCreatureOutfit(pk, {lookType = getItemAttribute(pb, "addon")}, -1) end end em actions/goback.lua, procure por: doSendMagicEffect(getCreaturePosition(pk), effect) abaixo adicione: local pk = getCreatureSummons(cid)[1] local pb = getPlayerSlotItem(cid, 8).uid local look = getItemAttribute(pb, "addon") if not look then doSetItemAttribute(pb, "addon", 0) end if look and look > 0 then doSetCreatureOutfit(pk, {lookType = look}, -1) end em actions/evolution.lua, procure por: local ball = getPlayerSlotItem(cid, 8).uid há 12 linhas iguais a essa nesse arquivo e embaixo de TODAS elas, adicione: doItemSetAttribute (ball, "addon", 0) em creaturescripts/look.lua, procure por: if getItemAttribute(thing.uid, "gender") == SEX_MALE then table.insert(str, "It is male.") elseif getItemAttribute(thing.uid, "gender") == SEX_FEMALE then table.insert(str, "It is female.") else table.insert(str, "It is genderless.") end se novamente, esse código aparece duas vezes no arquivo. E também, novamente, embaixo dos dois, adicione: if getItemAttribute(thing.uid, "addon") then if flysAddon[getItemAttribute (thing.uid, "addon")] or ridesAddon[getItemAttribute (thing.uid, "addon")] or surfsAddon[getItemAttribute (thing.uid, "addon")] then if getItemAttribute(thing.uid, "addon") > 1 then table.insert(str, " Has the addon "..getItemNameById (getAddonId (getItemAttribute (thing.uid, "addon")))..".") end end end E no começo desse arquivo, adicione: local addons = { [14876] = {pokemon = "Shiny Charizard" , looktype = 1950}, [12344] = {pokemon = "Pidgeot" , looktype = 205}, [13990] = {pokemon = "Pidgeot" , looktype = 201}, --[ID do item] = {nome do pokémon, looktype}, } local function getAddonId (looktype) for index, value in pairs (addons) do if value.looktype == looktype then return index end end end a tabela "addons" deve ser a mesma que a do actions/addon.lua. Então, quando você adicionar algo no addon.lua, deverá adicionar também no look.lua. em login.lua, procure por: doSetCreatureOutfit(cid, {lookType = flys[poke][1] + 351}, -1) e substitua por: if getItemAttribute(item.uid, "addon") < 1 then doSetCreatureOutfit(cid, {lookType = flys[poke][1] + 351}, -1) else doSetCreatureOutfit(cid, {lookType = flysAddon[getItemAttribute (item.uid, "addon")][1]}, -1) end procure por: doSetCreatureOutfit(cid, {lookType = surfs[poke].lookType + 351}, -1 substitua por: if getItemAttribute(item.uid, "addon") < 1 then doSetCreatureOutfit(cid, {lookType = surfs[poke].looktype + 351}, -1) else doSetCreatureOutfit(cid, {lookType = surfsAddon[getItemAttribute (item.uid, "addon")][1]}, -1) end procure por: doSetCreatureOutfit(cid, {lookType = rides[poke][1] + 351}, -1) substitua por: if getItemAttribute(item.uid, "addon") < 1 then doSetCreatureOutfit(cid, {lookType = rides[poke][1] + 351}, -1) else doSetCreatureOutfit(cid, {lookType = ridesAddon[getItemAttribute (item.uid, "addon")][1]}, -1) end
-
(Resolvido)broadcast apenas pra quem tem storage
@pablobion, qual arquivo que seta o storage "COH_PREPARE"? Eu pensei que fosse uma palavra, mas aparentemente é um número... poderia ver esse arquivo?
-
Ajuda em scripts
Bom, eu não sei como é adicionado skills, visto que tenho experiência apenas com poketibia. Eu suponho que seja por storage. Lembrando que não testei nenhum código. Primeiro pedido: actions/scripts nome_arquivo.lua local voc = { [1] = {name = "Thief", vocationID = 7, item = { [1] = {id = 3210, qnt = 1}, [2] = {id = 8923, qnt = 15}, }, skills = { [1] = {sto = 16503}, [2] = {sto = 16504}, } }, [2] = {name = "Bárbaro", vocationID = 2, item = { [1] = {id = 3210, qnt = 1}, [2] = {id = 8923, qnt = 15}, }, skills = { [1] = {sto = 16503}, [2] = {sto = 16504}, } }, [3] = {name = "Arqueiro", vocationID = 3, item = { [1] = {id = 3210, qnt = 1}, [2] = {id = 8923, qnt = 15}, }, skills = { [1] = {storage = 16503}, [2] = {storage = 16504}, } }, -- "Um número maior que o outro] = {name = "Nome da vocation", vocationID = ID da vocation, -- item = { -- [Um número maior que o outro] = {id = ID do item, qnt = quantidade}, -- } -- skills = { -- [Um número maior que o outro] = {storage = storage da skill}, -- } } function onUse(cid, item, frompos, item2, topos) local vocRandom = math.random (1, #voc) doPlayerSetVocation (cid, voc[vocRandom].vocationID) for i = 1, #voc[vocRandom].item do doPlayerAddItem (cid, voc[vocRandom].item[i].id, voc[vocRandom].item[i].qnt) end doPlayerSendTextMessage (cid, 19, "You received your "..voc[vocRandom].name.." kit!") for i = 1, #voc[vocRandom].skills do setPlayerStorageValue (cid, voc[vocRandom].skills[i].storage, 1) end doRemoveItem(item.uid, 1) return true end XML: <action itemid="ID do item" event="script" value="nome_arquivo.lua"/> Segundo pedido: creaturescripts/scripts nome_arquivo.lua local set = { [1] = {1328, "CONST_SLOT_HEAD"}, [2] = {6742, "CONST_SLOT_ARMOR"}, [3] = {4567, "CONST_SLOT_RIGHT"}, -- Bow/Sword/... [4] = {9874, "CONST_SLOT_LEFT"}, -- Shield/Book/... [5] = {6455, "CONST_SLOT_LEGS"}, [6] = {7894, "CONST_SLOT_FEET"}, -- [Um número maior que o outro] = {item ID, slot}, } local outfit = {lookType = 30 , lookHead = 0, lookBody = 0, lookLegs = 0, lookFeet = 0, lookAddons = 0} -- looktype que ele vai transformar. local function countSlotItem (cid) local countSlot = 0 for i = 1, #set do if (getPlayerSlotItem (cid, set[i][2]).itemid == set[i][1]) or (set[i][2] == "CONST_SLOT_LEFT" and getPlayerSlotItem (cid, CONST_SLOT_RIGHT).itemid == set[i][1]) or (set[i][2] == "CONST_SLOT_RIGHT" and getPlayerSlotItem (cid, CONST_SLOT_LEFT).itemid == set[i][1]) then countSlot = countSlot + 1 end end return countSlot end function onThink(creature, interval) if isPlayer (cid) then if getPlayerSlotItem (cid, CONST_SLOT_HEAD) == set[1][1] then local count = countSlotItem (cid) if count == #set then doSetCreatureOutfit (cid, outfit, -1) elseif getCreatureOutfit (cid).looktype == outfit.looktype then doRemoveCondition (cid, CONDITION_OUTFIT) end end end return true end XML: <event type="think" name="itemOutfit" event="script" value="nome_arquivo.lua"/> em login.lua, adicione: registerCreatureEvent(cid, "itemOutfit")
-
(Resolvido)broadcast apenas pra quem tem storage
Peguei uma função que o Vodkart criou e modifiquei. Não testei, espero que funcione. local function getGuildLeaderId(name) local leader = db.getResult("SELECT `ownerid` FROM `guilds` WHERE `name` = ".. db.escapeString(name) .. ")") if(leader:getID() ~= -1) then return leader:getDataInt("id") end return nil end function onStepIn(cid, item, pos, fromPosition) local pos = getThingPos(cid) if item.actionid == 16203 then if not isPlayer(cid) then return true end if getGlobalStorageValue(COH_STATUS) == getPlayerGuildName(cid) then doSendMagicEffect(getThingPos(cid), 14) doSendAnimatedText(pos, "[CoH]", math.random(1, 255)) else doSendMagicEffect(getThingPos(cid), 2) doTeleportThing(cid, fromPosition, false) doPlayerSendCancel(cid, "[CoH] Você nao pertence a guild "..getGlobalStorageValue(COH_STATUS)..".") end return true end if item.actionid == 16202 then if not isPlayer(cid) then return true end if getPlayerGuildId(cid) > 0 then if (getGlobalStorageValue(COH_STATUS) ~= getPlayerGuildName(cid)) then doPlayerSendTextMessage(cid, 20, "[Castle of Honor] Você e sua guild estão no comando, os antigos donos ["..tostring(getGlobalStorageValue(COH_STATUS)).."] podem se vingar!") setGlobalStorageValue(COH_PREPARE1, -1) setGlobalStorageValue(COH_PREPARE2, -1) setGlobalStorageValue(COH_STATUS, getPlayerGuildName(cid)) doCastleRemoveEnemies() doBroadcastMessage("[Castle of Honor] O jogador ["..getCreatureName(cid).."] e sua guild ["..getPlayerGuildName(cid).."] estao no comando do castelo, va dominar e impedir isso!") end else doSendMagicEffect(pos, 2) doTeleportThing(cid, fromPosition, false) doPlayerSendCancel(cid, "[Castle of Honor] Voce nao possui uma guild.") end return true end if item.actionid == 16200 then if not isPlayer(cid) then return true end if getPlayerGuildId(cid) > 0 then doSendAnimatedText(pos, "[CoH]", math.random(1, 255)) if (getGlobalStorageValue(COH_PREPARE1) ~= getPlayerGuildName(cid)) and ((getGlobalStorageValue(COH_PREPARE2) ~= getPlayerGuildName(cid))) then setGlobalStorageValue(COH_PREPARE1, getPlayerGuildName(cid)) doPlayerSendTextMessage(getGuildLeaderId (COH_PREPARE1), 21, "[Castle of Honor] Atencao! A guild "..getPlayerGuildName(cid).." esta tentando dominar o castelo, preparem-se!") end else doSendMagicEffect(pos, 2) doTeleportThing(cid, fromPosition, false) doPlayerSendCancel(cid, "[Castle of Honor] Voce nao possui uma guild.") return true end end if item.actionid == 16201 then if not isPlayer(cid) then return true end doSendAnimatedText(pos, "[CoH]", math.random(1, 255)) if (getGlobalStorageValue(COH_PREPARE2) ~= getPlayerGuildName(cid)) then setGlobalStorageValue(COH_PREPARE2, getPlayerGuildName(cid)) doPlayerSendTextMessage(getGuildLeaderId (COH_PREPARE2), 21, "[Castle of Honor] Atencao! A guild "..getPlayerGuildName(cid).." esta tentando dominar o castelo, preparem-se!") end end return true end
-
Arena dos Deuses
Eu ando um pouco ocupado com o meu servidor, se ninguém ter feito até eu desocupar, eu faço e posto aqui. Não é difícil, provavelmente irão te ajudar antes de mim. Boa sorte.
-
Spell de tirar summon e ganhar newtype
Eu falei que atualizei o código e... esqueci de atualizar OIAJSDIOASFJASF Agora sim tá atualizado, perdão, erro meu.
-
Spell de tirar summon e ganhar newtype
Acho que achei o erro, eu atualizei o código da spell lá em cima, troque aquele pelo seu e testa.
-
Spell de tirar summon e ganhar newtype
Hmm, eu utilizei como base as funções que tem no meu servidor, que é de pokémon. No seu servidor aparentemente não tem essas funções, por isso não funciona. Veja na pasta do seu servidor se não tem um arquivo de texto com o nome de "Your Server Function List" ou algo do gênero. Se tiver, abra-o, aperte CTRL + F, digite "Outfit" e veja se não tem nenhuma função com as palavras "set" e "Outfit". Se tiver, troque essa função por a que está no código. Se não tiver, pesquise para saber qual é a função de setar outfit no seu servidor.
-
Spell de tirar summon e ganhar newtype
Sim, troque por isso: doCreatureSetOutfit (cid, config.outfit, config.timeOutfit * 60 * 1000)
-
Spell de tirar summon e ganhar newtype
No seu servidor não tem essa função, tente trocá-la por esta: doCreatureSetOutfit (cid, config.outfit, config.timeOutfit * 60 * 1000)
-
Spell de tirar summon e ganhar newtype
Atualizei o código da spell com a correção. " Atualizei o código da spell com a correção. " Sobre o código, fale pelo post que ele criou...
-
Spell de tirar summon e ganhar newtype
@zPerseu o creaturescript é o mesmo nome. Juubi.lua nos dois. Apenas o primeiro código é spell. Eu não sei muito bem criar spell para tibia, eu criei como se fosse uma talkaction... Fiz como spell por causa da vocation e tal. Suponho que seja dessa forma.
-
Spell de tirar summon e ganhar out
Respondi no tópico que o @zPerseu citou.
-
Spell de tirar summon e ganhar newtype
Eu não testei. O script apenas exige que o player esteja com um summon de nome Juubi, mas ele não summona um. Spell: local config = { summonName = "Juubi", message = "Mensagem ao morrer", pos = {x = 1500, y = 1323, z = 7}, -- pos do templo. timeOutfit = 5, -- quantos minutos vai ficar com a outfit. outfit = {lookType = 30 , lookHead = 0, lookBody = 0, lookLegs = 0, lookFeet = 0, lookAddons = 0}, health = 300000, -- quanto vai curar. timeInterval = 5, -- segundos entre uma cura e outra. Tem que ser divisível por 60. storageTime = 513269, exhaust = 513270, cooldown = 10, -- cooldown em minutos. color = 30, -- cor do texto que vai sair quando o player for curado. effectInYou = 29, effectInSummon = 18, } local times = 0 local function doHealPlayer (cid, minutesHealing, interval, storageTime, health, color) if times == minutesHealing then setPlayerStorageValue (cid, storageTime, 0) setPlayerStorageValue (cid, 513271, -1) times = 0 doRemoveCondition (cid, CONDITION_OUTFIT) doTeleportThing (cid, config.pos) doPlayerPopupFYI (cid, config.message) doCreatureSetNoMove (cid, true) addEvent (doRemoveCreature, 1000, cid) return true end if getPlayerStorageValue (cid, storageTime) >= 0 then setPlayerStorageValue (cid, storageTime, getPlayerStorageValue (cid, storageTime) + interval) doCreatureAddHealth (cid, health) addEvent (doHealPlayer, interval * 1000, cid, minutesHealing, interval, storageTime, health, color) doSendAnimatedText (getThingPos (cid), "+ "..health, color) if getPlayerStorageValue (cid, storageTime) == 60 then times = times + 1 setPlayerStorageValue (cid, storageTime, 0) end end return true end function onCastSpell(cid, var) if getCreatureSummons (cid)[1] and getCreatureName (getCreatureSummons (cid)[1]) == config.summonName and isPlayer (cid) then if getPlayerStorageValue (cid, config.exhaust) < os.time() then doSendMagicEffect (getThingPos(cid), config.effectInYou) doSendMagicEffect (getThingPos(getCreatureSummons(cid)[1]), config.effectInSummon) doRemoveCreature (getCreatureSummons (cid)[1]) doSetCreatureOutfit (cid, config.outfit, config.timeOutfit * 60 * 1000) doHealPlayer(cid, config.timeOutfit, config.timeInterval, config.storageTime, config.health, config.color) setPlayerStorageValue (cid, config.exhaust, config.cooldown * 60 + os.time()) doCreatureSay (cid, "AAAHHHHHHHHHHHHHHHH!!!!!!", 19) else doPlayerSendCancel (cid, "You're exhausted.") end else doPlayerSendCancel (cid, "Você precisa ter um summon com o nome de "..config.summonName..".") end return true end creaturescripts/scripts nome_arquivo.lua function onLogin(cid) setPlayerStorageValue (cid, 513269, 0) if getPlayerStorageValue (cid, 513269) >= 0 and getPlayerStorageValue (cid, 513271) == 1 then doRemoveCondition (cid, CONDITION_OUTFIT) setPlayerStorageValue (cid, 513269, -1) setPlayerStorageValue (cid, 513271, -1) end return true end function onLogout (cid) setPlayerStorageValue (cid, 513271, 1) return true end XML: <event type="login" name="eventName" event="script" value="nome_arquivo.lua"/> <event type="logout" name="eventName" event="script" value="nome_arquivo.lua"/> login.lua registerCreatureEvent(cid, "eventName")
-
Spell de tirar summon e ganhar out
"Não perde set nem nada"... basicamente, ele só vai ir pro templo e deslogar? Não vai perder exp, skill, ...?
-
Arena dos Deuses
A moeda é um storage ou item? Os times vão fazer o que? PVP normal?
-
Spell de tirar summon e ganhar out
Eu ajudaria se eu entendesse algo que você disse. Quando for postar, organize o seu pedido, há poucos scripters/programadores que se dão o trabalho de ajudar. Quando você não é específico no seu pedido ou deixa dúvidas, acontece o que aconteceu agora. Ter que esperar 6 dias por uma resposta. Quem ajuda, ajuda por gostar, ninguém é pago aqui. Então, o mínimo que você pode fazer é arrumar o post para que faça sentido.
-
Tile que arranca Hp
Ué, no xml StepIn... movements boy
-
Tile que arranca Hp
Tu colocou a tag?
-
Tile que arranca Hp
Eu respondi a pergunta do luan, o código tá mais em cima cara...
-
[Urgente] bug vocaçoes virando outras vocaçoes
Se cada vocação tem um lugar específico para nascer, pode ser isso. @frank007
-
[TFS 1.2] Bloquar palavra pelo talkaction?
Suponho que seja isso. local forbiddenWords = {"Blabla"} function onSay(cid, words, param) if isInArray (forbiddenWords, words) then return true end return false end
-
Ajuda Scripts
Vê se no goback.lua não tem nenhuma verificação para caso o tile que o pokémon sair seja protection. A linha que summona o pokémon deve ser essa: doSummonMonster(cid, pokemon)
-
[Urgente] bug vocaçoes virando outras vocaçoes
Pode ter um tile com actionid em algum lugar que quando o player passa, ele pega x vocation.