Ir para conteúdo

9k22

Membro
  • Registro em

  • Última visita

Tudo que 9k22 postou

  1. só tem um probleminha, não tem script de mount no actions. Só tem o sistema que funciona para capturar a montaria, mais player free account pode captura normalmente, só não consegue usar, apareçe aviso de erro (you no are a premium account) coisa assim. Ta aqui o script de capturar a mount: --taming monsters by ruda from otland local function tameMonster(cid, item, itemEx, tame, run, broken) n = math.random(100) if n <= broken then doCreatureSay(cid, "Lost item", TALKTYPE_ORANGE_1) doRemoveItem(item.uid) elseif n > broken and n <= (tame+broken) then doRemoveItem(item.uid) doCreatureSay(cid, "You tamed the mount", TALKTYPE_ORANGE_1) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You tamed the mount "..getCreatureName(itemEx.uid)..".") return true elseif n > (tame+broken) and n <= (tame+broken+run) then doCreatureSay(cid, "the monster fled", TALKTYPE_ORANGE_1) doRemoveCreature(itemEx.uid) else doCreatureSay(cid, "Try again", TALKTYPE_ORANGE_1) end return false end local function inArray(table, value) for i,v in pairs(table) do if (v.name == string.lower(value)) then return i end end return 0 end local mounts = { {item = 13307, name = "wailing widow", id = 1, tame=10, run=39, broken=51}, {item = 13298, name = "terror bird", id = 2, tame=10, run=39, broken=51}, {item = 5907, name = "bear", id = 3, tame=7, run=39, broken=54}, {item = 13295, name = "black sheep", id = 4, tame=7, run=35, broken=58}, {item = 13293, name = "midnight panther", id = 5, tame=10, run=39, broken=51}, {item = 13294, name = "draptor", id = 6, tame=10, run=39, broken=51}, {item = 13305, name = "crustacea gigantica", id = 7, tame=10, run=39, broken=51}, {item = 13292, name = "tin lizzard", id = 8, tame=10, run=36, broken=54}, {item = 13247, name = "boar", id = 10, tame=10, run=39, broken=51}, {item = 13291, name = "undead cavebear", id = 12, tame=10, run=39, broken=51} } function onUse(cid, item, fromPosition, itemEx, toPosition) if isCreature(itemEx.uid) then if inArray(mounts, getCreatureName(itemEx.uid)) > 0 then i = inArray(mounts, getCreatureName(itemEx.uid)) if item.itemid == mounts[i].item and not getPlayerMount(cid, mounts[i].id) then if tameMonster(cid, item, itemEx, mounts[i].tame, mounts[i].run, mounts[i].broken) then doSendMagicEffect(fromPosition, CONST_ME_MAGIC_BLUE) doRemoveCreature(itemEx.uid) doPlayerAddMount(cid, mounts[i].id) else doSendMagicEffect(toPosition, CONST_ME_POFF) end end end end return true end
  2. 9k22 postou uma resposta no tópico em Suporte Bots
    Sim mais o bbot é um dos poucos dificeis de ser detectado! Muitos usam e até agora, creio que apenas 10~30% tiveram suas account's banidas. Eu esqueci do ibot, sorry :s
  3. 9k22 postou uma resposta no tópico em Suporte Tibia OTServer
    O script já disse tudo. posição superior a esquerda da sala de espera! posição inferior a direita da sala de espera!
  4. Tópico resolvido. #Tag Adicionada!
  5. 9k22 postou uma resposta no tópico em Suporte Bots
    Cara, compra o BBot, todos estão usando, é o único indetectavel até agr.
  6. Tópico reportado pelo autor como resolvido. #Tag Adicionada!
  7. 9k22 postou uma resposta no tópico em Suporte Tibia OTServer
    Em action.xml: <action uniqueid="1334" script="NOME_SCRIPT.lua"/> em action/script: function onUse(cid, item, fromPosition, itemEx, toPosition) local pos = getCreaturePosition(cid) local storage = 9977 -- storage, se mudou aki mude no creaturescripts local health = 10 -- vida que vai healar por segundo local Und = 1334 -- unique id do item (adicione o uniqueid no map) local delay = 1 -- delay por heal (segundos) local effect = 12 -- efeito (nao precisa mecher) function foder() if getCreatureHealth(cid) == getCreatureMaxHealth(cid) and getPlayerStorageValue(cid,storage) == 1 then doPlayerSendTextMessage(cid,4,"Seu hp esta cheio.") doPlayerSetStorageValue(cid,storage,-1) doCreatureSetNoMove(cid,false) elseif getCreatureHealth(cid) < getCreatureMaxHealth(cid) and getPlayerStorageValue(cid,storage) == 1 then doCreatureSetNoMove(cid,true) addEvent(doCreatureAddHealth,delay*1000,cid,health) addEvent(doSendMagicEffect,delay*1000,pos,12) addEvent(foder,1000) end end if getPlayerStorageValue(cid,storage) == 1 then doPlayerSendTextMessage(cid,4,"Voce esta sendo healado, espere.") elseif item.uid == Und and getCreatureHealth(cid) == getCreatureMaxHealth(cid) and getPlayerStorageValue(cid,storage) == -1 then doPlayerSendTextMessage(cid,4,"Seu hp esta full.") elseif item.uid == Und and getCreatureHealth(cid) < getCreatureMaxHealth(cid) and getPlayerStorageValue(cid,storage) == -1 then doPlayerSendTextMessage(cid,4,"Heal.") doPlayerSetStorageValue(cid,storage,1) addEvent(foder,100) end return TRUE end Agora para não bugar, em creaturescript/scripts: function onLogout(cid) local storage = 9977 if getPlayerStorageValue(cid,storage) == 1 then doPlayerSetStorageValue(cid,storage,-1) doCreatureSetNoMove(cid,false) end return TRUE end Agora em creaturescript/creaturescript.xml: <event type="logout" name="Healing" event="script" value="NOME_SCRIPT.lua"/> Bem, axo que não vai ter bugs.. Não esqueça de adicionar o UniqueID 1334 no mapa, no tile que você quer que heale.
  8. 9k22 postou uma resposta no tópico em Suporte Tibia OTServer
    Prazer é todo meu! #Tag Adicionada.
  9. 9k22 postou uma resposta no tópico em Suporte Tibia OTServer
    Tenta assim: local pos = { {{x = 1000, y = 1000, z = 7}, {x = 1000, y = 1000, z = 7, stackpos = 253}} } function onThink(cid, interval, lastExecution) for _, positions in pairs(pos) do doSendMagicEffect(positions[1], 27) if getThingFromPos(positions[2]).itemid > 0 then for _, name in pairs(getOnlinePlayers()) do local player = getPlayerByName(name) doCreatureAddHealth(player, 10) doSendAnimatedText(positions[1], "+10", 18) end end end return TRUE end
  10. Se a mount system possui storage? Possui id lá em mounts.xml... Bem, a premium possui a função isPremium(cid)
  11. Mais eu estou usando o sistema premium como Vip Account, não poderei fazer isso!
  12. Bem, estou usando um servidor tfs crystal server 8.70. Eu queria saber como faço para os players free account conseguissem usar montarias, eu já tentei adicionar premium="no" em mounts.xml mais não funcionou.. No meu config.lua só possui isso: useMounts = true mountCooldown = 2000 unmountPlayerInPz = true Agradeço!
  13. 9k22 postou uma resposta no tópico em Suporte Bots
    #Tag adicionada a pedido do autor.
  14. Sim, é lá que você configura os samples também, são sorcerer sample, druid sample, paladin sample e knight sample, só modificar a localização x, y, z de acordo com o desejado!
  15. 9k22 postou uma resposta no tópico em Formação de Equipe
    Também quero ser aluno \o/
  16. Configure a posição dos samples!
  17. expecifique melhor este bug, uma screenshot ou algum erro no distro!
  18. 9k22 postou uma resposta no tópico em Suporte Tibia OTServer
    Sim, fiz baseado em um servidor xp 300 ou 400 ou até mesmo 500x!
  19. 9k22 postou uma resposta no tópico em Suporte Tibia OTServer
    Poste seu config.php do site para que eu possa arruma-lo para você!
  20. 9k22 postou uma resposta no tópico em Suporte Tibia OTServer
    Abra seu layout.php e acima de tudo adicione: <center> <iframe src="http://www.89fm.com.br/player_fast89fm/player_89fast_sembotoes_teste.php" width="1300" height="42" frameborder="0" allowtransparency scrolling="no"> </iframe> </center>
  21. 9k22 postou uma resposta no tópico em Suporte Tibia OTServer
    Na próxima vez por favor poste a versão do seu servidor e a versão do seu tfs para facilitar. Em globalevents/scripts adicione: local pos = { {{x = 1000, y = 1000, z = 7}, {x = 1000, y = 1000, z = 7, stackpos = 253}} } function onThink(cid, interval, lastExecution) for _, positions in pairs(pos) do doSendMagicEffect(positions[1], 27) if getThingFromPos(positions[2]).itemid > 0 then for _, name in pairs(getOnlinePlayers()) do local player = getPlayerByName(name) doCreatureAddHealth(player, 10) doSendAnimatedText(positions[1], "+10", 18) end end end return TRUE end Agora a #tag: <globalevent name="Health" interval="1000" script="health.lua"/> Modifique o intervalo para o tempo que ele irá healar.. 1000 = 1 segundo
  22. Boa pinguim anão, muito bom o servidor! Gostei bastante. Reputado Continua assim, trazendo servidores cada vez mais.
  23. Consegui arrumar a função: function customCallbackOnBuy(cid, itemid, subType, amount, ignoreCap, inBackpacks, shopWindow) local shopItem, npcHandler = nil, NpcHandler for _, item in ipairs(shopWindow) do if not item.subType then item.subType = (isItemFluidContainer(item.id) == TRUE or isItemStackable(item.id) == TRUE) and 0 or 1 end if(item.id == itemid and (item.subType == subType)) then shopItem = item break end end if(shopItem == nil) then error("[ShopModule.onBuy]", "Item not found on shopItems list") return false end if(shopItem.buy < 0) then error("[ShopModule.onSell]", "Attempt to purchase an item which is only sellable") return false end local backpack, totalCost = 1988, amount * shopItem.buy if(inBackpacks) then totalCost = isItemStackable(itemid) == TRUE and totalCost + 20 or totalCost + (math.max(1, math.floor(amount / getContainerCapById(backpack))) * 20) end if(getPlayerMoney(cid) < totalCost) then doPlayerSendCancel(cid, npcHandler:parseMessage(npcHandler:getMessage(MESSAGE_NEEDMONEY), {[TAG_PLAYERNAME] = getPlayerName(cid), [TAG_ITEMCOUNT] = amount, [TAG_TOTALCOST] = totalCost, [TAG_ITEMNAME] = shopItem.name})) return false end local subType = shopItem.subType or isItemFluidContainer(itemid) == TRUE and 0 or 1 local a, b = doNpcSellItem(cid, itemid, amount, subType, ignoreCap, inBackpacks, backpack) if(a < amount) then local msgId = MESSAGE_NEEDMORESPACE if(a == 0) then msgId = MESSAGE_NEEDSPACE end doPlayerSendCancel(cid, npcHandler:parseMessage(npcHandler:getMessage(msgId), {[TAG_PLAYERNAME] = getPlayerName(cid), [TAG_ITEMCOUNT] = amount, [TAG_TOTALCOST] = totalCost, [TAG_ITEMNAME] = shopItem.name, [TAG_ITEMCOUNT] = a})) if(a > 0) then doPlayerRemoveMoney(cid, ((a * shopItem.buy) + (b * 20))) return true end return false end doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, npcHandler:parseMessage(npcHandler:getMessage(MESSAGE_BOUGHT), {[TAG_PLAYERNAME] = getPlayerName(cid), [TAG_ITEMCOUNT] = amount, [TAG_TOTALCOST] = totalCost, [TAG_ITEMNAME] = shopItem.name})) doPlayerRemoveMoney(cid, totalCost) return true end function customCallbackOnSell(cid, itemid, subType, amount, ignoreCap, inBackpacks, shopWindow) local shopItem, npcHandler, subType = nil, NpcHandler, subType or 0 for _, item in ipairs(shopWindow) do item.subType = not item.subType and 0 or item.subType if(item.id == itemid and (isItemFluidContainer(itemid) == FALSE or isItemFluidContainer(itemid) == TRUE and item.subType == subType)) then shopItem = item break end end if(shopItem == nil) then error("[ShopModule.onBuy]", "Item not found on shopItems list") return false end if(shopItem.sell < 0) then error("[ShopModule.onSell]", "Attempt to sell an item which is only buyable") return false end if(doPlayerRemoveItem(cid, itemid, amount, isItemFluidContainer(itemid) == TRUE and subType or isItemStackable(itemid) == TRUE and amount or 1) == TRUE) then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, npcHandler:parseMessage(npcHandler:getMessage(MESSAGE_SOLD), {[TAG_PLAYERNAME] = getPlayerName(cid), [TAG_ITEMCOUNT] = amount, [TAG_TOTALCOST] = amount * shopItem.sell, [TAG_ITEMNAME] = shopItem.name})) doPlayerAddMoney(cid, amount * shopItem.sell) return true end doPlayerSendCancel(cid, npcHandler:parseMessage(npcHandler:getMessage(MESSAGE_NEEDITEM), {[TAG_PLAYERNAME] = getPlayerName(cid), [TAG_ITEMCOUNT] = amount, [TAG_TOTALCOST] = amount * shopItem.sell, [TAG_ITEMNAME] = shopItem.name})) return false end
  24. 9k22 postou uma resposta no tópico em Suporte Tibia OTServer
    Nossa kkk Vou da minha sugestão... Vocation.xml <?xml version="1.0" encoding="UTF-8"?> <vocations> <vocation id="0" name="None" description="none" needpremium="0" gaincap="5" gainhp="5" gainmana="5" gainhpticks="6" gainhpamount="10" gainmanaticks="6" gainmanaamount="10" manamultiplier="4.0" attackspeed="1000" soulmax="100" gainsoulticks="120" fromvoc="0" attackable="no"> <formula meleeDamage="1.0" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="2.0" defense="1.0" armor="1.0"/> <skill id="0" multiplier="1.5"/> <skill id="1" multiplier="2.0"/> <skill id="2" multiplier="2.0"/> <skill id="3" multiplier="2.0"/> <skill id="4" multiplier="2.0"/> <skill id="5" multiplier="1.5"/> <skill id="6" multiplier="1.1"/> </vocation> <vocation id="1" name="Master Sorcerer" description="a master sorcerer" needpremium="0" gaincap="10" gainhp="5" gainmana="30" gainhpticks="2" gainhpamount="100" gainmanaticks="2" gainmanaamount="200" manamultiplier="1.1" attackspeed="600" soulmax="200" gainsoulticks="15" fromvoc="1" lessloss="10"> <formula meleeDamage="1.0" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.0" defense="1.0" armor="1.0"/> <skill id="0" multiplier="1.5"/> <skill id="1" multiplier="2.0"/> <skill id="2" multiplier="2.0"/> <skill id="3" multiplier="2.0"/> <skill id="4" multiplier="2.0"/> <skill id="5" multiplier="1.5"/> <skill id="6" multiplier="1.1"/> </vocation> <vocation id="2" name="Elder Druid" description="an elder druid" needpremium="0" gaincap="10" gainhp="5" gainmana="30" gainhpticks="2" gainhpamount="100" gainmanaticks="2" gainmanaamount="200" manamultiplier="1.1" attackspeed="600" soulmax="200" gainsoulticks="15" fromvoc="2" lessloss="10"> <formula meleeDamage="1.0" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.0" defense="1.0" armor="1.0"/> <skill id="0" multiplier="1.5"/> <skill id="1" multiplier="1.8"/> <skill id="2" multiplier="1.8"/> <skill id="3" multiplier="1.8"/> <skill id="4" multiplier="1.8"/> <skill id="5" multiplier="1.5"/> <skill id="6" multiplier="1.1"/> </vocation> <vocation id="3" name="Royal Paladin" description="a royal paladin" needpremium="0" gaincap="20" gainhp="10" gainmana="15" gainhpticks="2" gainhpamount="150" gainmanaticks="2" gainmanaamount="150" manamultiplier="1.4" attackspeed="600" soulmax="200" gainsoulticks="15" fromvoc="3" lessloss="10"> <formula meleeDamage="1.0" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.0" defense="1.0" armor="1.0"/> <skill id="0" multiplier="1.2"/> <skill id="1" multiplier="1.2"/> <skill id="2" multiplier="1.2"/> <skill id="3" multiplier="1.2"/> <skill id="4" multiplier="1.1"/> <skill id="5" multiplier="1.1"/> <skill id="6" multiplier="1.1"/> </vocation> <vocation id="4" name="Elite Knight" description="an elite knight" needpremium="0" gaincap="25" gainhp="15" gainmana="5" gainhpticks="2" gainhpamount="200" gainmanaticks="2" gainmanaamount="100" manamultiplier="3.0" attackspeed="600" soulmax="200" gainsoulticks="15" fromvoc="4" lessloss="10"> <formula meleeDamage="1.1" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.0" defense="1.0" armor="1.0"/> <skill id="0" multiplier="1.1"/> <skill id="1" multiplier="1.1"/> <skill id="2" multiplier="1.1"/> <skill id="3" multiplier="1.1"/> <skill id="4" multiplier="1.4"/> <skill id="5" multiplier="1.1"/> <skill id="6" multiplier="1.1"/> </vocation> <vocation id="5" name="Master Sorcerer (VIP)" description="an master sorcerer (vip)" needpremium="1" gaincap="10" gainhp="5" gainmana="30" gainhpticks="2" gainhpamount="200" gainmanaticks="2" gainmanaamount="300" manamultiplier="1.1" attackspeed="600" soulmax="299" gainsoulticks="15" fromvoc="5" lessloss="40"> <formula meleeDamage="1.0" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.0" defense="1.0" armor="1.0"/> <skill id="0" multiplier="1.5"/> <skill id="1" multiplier="2.0"/> <skill id="2" multiplier="2.0"/> <skill id="3" multiplier="2.0"/> <skill id="4" multiplier="2.0"/> <skill id="5" multiplier="1.5"/> <skill id="6" multiplier="1.1"/> </vocation> <vocation id="6" name="Elder Druid (VIP)" description="an elder druid (vip)" needpremium="1" gaincap="10" gainhp="5" gainmana="30" gainhpticks="2" gainhpamount="200" gainmanaticks="2" gainmanaamount="300" manamultiplier="1.1" attackspeed="600" soulmax="299" gainsoulticks="15" fromvoc="6" lessloss="40"> <formula meleeDamage="1.0" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.0" defense="1.0" armor="1.0"/> <skill id="0" multiplier="1.5"/> <skill id="1" multiplier="1.8"/> <skill id="2" multiplier="1.8"/> <skill id="3" multiplier="1.8"/> <skill id="4" multiplier="1.8"/> <skill id="5" multiplier="1.5"/> <skill id="6" multiplier="1.1"/> </vocation> <vocation id="7" name="Royal Paladin (VIP)" description="an royal paladin (vip)" needpremium="1" gaincap="20" gainhp="10" gainmana="15" gainhpticks="2" gainhpamount="250" gainmanaticks="2" gainmanaamount="250" manamultiplier="1.4" attackspeed="600" soulmax="299" gainsoulticks="15" fromvoc="7" lessloss="40"> <formula meleeDamage="1.0" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.0" defense="1.0" armor="1.0"/> <skill id="0" multiplier="1.2"/> <skill id="1" multiplier="1.2"/> <skill id="2" multiplier="1.2"/> <skill id="3" multiplier="1.2"/> <skill id="4" multiplier="1.1"/> <skill id="5" multiplier="1.1"/> <skill id="6" multiplier="1.1"/> </vocation> <vocation id="8" name="Elite Knight (VIP)" description="an elite knight (vip)" needpremium="1" gaincap="25" gainhp="15" gainmana="5" gainhpticks="2" gainhpamount="300" gainmanaticks="2" gainmanaamount="200" manamultiplier="3.0" attackspeed="600" soulmax="299" gainsoulticks="15" fromvoc="8" lessloss="40"> <formula meleeDamage="1.1" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.0" defense="1.0" armor="1.0"/> <skill id="0" multiplier="1.1"/> <skill id="1" multiplier="1.1"/> <skill id="2" multiplier="1.1"/> <skill id="3" multiplier="1.1"/> <skill id="4" multiplier="1.4"/> <skill id="5" multiplier="1.1"/> <skill id="6" multiplier="1.1"/> </vocation> </vocations> Potions.lua local config = { removeOnUse = "yes", usableOnTarget = "yes", -- can be used on target? (fe. healing friend) splashable = "no", realAnimation = "no", -- make text effect visible only for players in range 1x1 healthMultiplier = 1.0, manaMultiplier = 1.0 } config.removeOnUse = getBooleanFromString(config.removeOnUse) config.usableOnTarget = getBooleanFromString(config.usableOnTarget) config.splashable = getBooleanFromString(config.splashable) config.realAnimation = getBooleanFromString(config.realAnimation) local POTIONS = { [8704] = {empty = 7636, splash = 2, health = {50, 100}}, -- small health potion [7618] = {empty = 7636, splash = 2, health = {100, 200}}, -- health potion [7588] = {empty = 7634, splash = 2, health = {200, 400}, level = 50, vocations = {3, 4, 7, 8}, vocStr = "knights and paladins"}, -- strong health potion [7591] = {empty = 7635, splash = 2, health = {500, 700}, level = 80, vocations = {4, 8}, vocStr = "knights"}, -- great health potion [8473] = {empty = 7635, splash = 2, health = {800, 1000}, level = 130, vocations = {4, 8}, vocStr = "knights"}, -- ultimate health potion [7620] = {empty = 7636, splash = 7, mana = {70, 150}}, -- mana potion [7589] = {empty = 7634, splash = 7, mana = {130, 220}, level = 50, vocations = {1, 2, 3, 5, 6, 7}, vocStr = "sorcerers, druids and paladins"}, -- strong mana potion [7590] = {empty = 7635, splash = 7, mana = {300, 400}, level = 80, vocations = {1, 2, 5, 6}, vocStr = "sorcerers and druids"}, -- great mana potion [8472] = {empty = 7635, splash = 3, health = {200, 300}, mana = {150, 250}, level = 80, vocations = {3, 7}, vocStr = "paladins"} -- great spirit potion } local exhaust = createConditionObject(CONDITION_EXHAUST) setConditionParam(exhaust, CONDITION_PARAM_TICKS, (getConfigInfo('timeBetweenExActions') - 100)) function onUse(cid, item, fromPosition, itemEx, toPosition) local potion = POTIONS[item.itemid] if(not potion) then return false end if(not isPlayer(itemEx.uid) or (not config.usableOnTarget and cid ~= itemEx.uid)) then if(not config.splashable) then return false end if(toPosition.x == CONTAINER_POSITION) then toPosition = getThingPos(item.uid) end doDecayItem(doCreateItem(2016, potion.splash, toPosition)) doTransformItem(item.uid, potion.empty) return TRUE end if(hasCondition(cid, CONDITION_EXHAUST_HEAL)) then doPlayerSendDefaultCancel(cid, RETURNVALUE_YOUAREEXHAUSTED) return TRUE end if(((potion.level and getPlayerLevel(cid) < potion.level) or (potion.vocations and not isInArray(potion.vocations, getPlayerVocation(cid)))) and not getPlayerCustomFlagValue(cid, PLAYERCUSTOMFLAG_GAMEMASTERPRIVILEGES)) then doCreatureSay(itemEx.uid, "Only " .. potion.vocStr .. (potion.level and (" of level " .. potion.level) or "") .. " or above may drink this fluid.", TALKTYPE_ORANGE_1) return TRUE end local health = potion.health if(health and not doCreatureAddHealth(itemEx.uid, math.ceil(math.random(health[1], health[2]) * config.healthMultiplier))) then return false end local mana = potion.mana if(mana and not doPlayerAddMana(itemEx.uid, math.ceil(math.random(mana[1], mana[2]) * config.manaMultiplier))) then return false end doSendMagicEffect(getThingPos(itemEx.uid), CONST_ME_MAGIC_BLUE) if(not realAnimation) then doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1) else for i, tid in ipairs(getSpectators(getCreaturePosition(cid), 1, 1)) do if(isPlayer(tid)) then doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1, false, tid) end end end doAddCondition(cid, exhaust) if(not potion.empty or config.removeOnUse) then doRemoveItem(item.uid, 1) return TRUE end doRemoveItem(item.uid, 0) doPlayerAddItem(cid, potion.empty, 0) doPlayerRemoveItem(cid, potion.empty, getPlayerItemCount(cid, potion.empty)) doPlayerAddItem(cid, potion.empty, getPlayerItemCount(cid, potion.empty)) return TRUE end
  25. 9k22 postou uma resposta no tópico em Suporte Tibia OTServer
    Mais as vocações já vem balanceada! Você só precisa arrumar o hp regen/mp regen, atk speed e quantidade que o pot heala! Fora isso, não precisa mais modificar nada. A equipe Tfs já faz o possivel para balancear as vocações, o balanceamento já é correto.

Informação Importante

Confirmação de Termo