Ir para conteúdo

.HuRRiKaNe

Membro
  • Registro em

  • Última visita

Tudo que .HuRRiKaNe postou

  1. Informações: Montarias 100%; Items 97%; Outfits 100%; Trainers Offline, Estatuas e Camas 100%; Zona VIP; Quest VIP; Set Premium; Hunts Melhoradas; Servidor 100 Estável; E mais! Imagens: Download Server: http://www.mediafire.com/?k7b2iq2u6bcu69r Scan Server; https://www.virustotal.com/file/950c8f5057a999e030045d89fbf045c15b6de3b3b59e4eb8b666b09f229a6eda/analysis/ Créditos: Thez BT Animal Pak ACC GOD: tibia/tibia
  2. Informações: Addons por bônus; Loteria; Novo sistema de trainers; Sistema de Boss; Salão da Fama; Rust Remover; Jail System; Vocações balanceadas; Novos Comandos; E mais! Imagens: Download Server: http://www.4shared.com/rar/VlWVEcSs/CrAzY_Evolution.html Scan Server: https://www.virustotal.com/file/d7c1e626a2a6bf46c9f29fe2e64134780c225a6a81bfeb48e68039cf968ac759/analysis/1331719180/ Créditos: CrAzY TiXa Zipto Animal Pak
  3. .HuRRiKaNe postou uma resposta no tópico em Tibia Global OTServer
    Informações: Mapa editado; Quests 100%; Tps 100%; 3 Zonas Train; Novos Items; Eventos; Servidor estável; Sistema Vip; E mais! Imagens: Download Server: http://www.mediafire.com/?0p0uqr7dtv2wqa9 OBS: Executável Retirado! Scan Server: https://www.virustot...sis/1357377005/ Créditos: Adm hoster guaymas Animal Pak
  4. Eu lhe recomendo o meu projeto Naruto Legend 8.54, que foi postado aqui pelo Bruno.. Link do tópico: Espero que ajude ;0
  5. Informações: Mapa Thais editado; Novas áreas de hunt adicionadas; Vip Set / Items Vip; Teleport's Vip; /war; /capture; /sobrevivi; !addon, !aol, !bless; Cassino; Servidor 100% estável; E +! Screen's: Download Server: http://www.4shared.com/zip/U5y0o6-o/lMonsterl.html Scan Server: https://www.virustotal.com/file/9a2ff85e428c7f86b38a43ac6e7f23fd1ce6a7079f5060af2a2626806f906951/analysis/1357267610/ Créditos: Kamek Animal Pak
  6. Informações: Mapa Evolutions editado; Magias balanceadas; Todas as quests funcionando; Novas zonas de hunt; Yalahar City para VIP; VIP City; Venore; Ankrahmun; VIP Quest - 3 Fases; Quests VIP; Items VIP; Servidor 100% estável; Screen's: Download Server: http://www.mediafire.com/?m0ocfiyerqh35hw Scan Server: https://www.virustotal.com/file/d0a78a52741b0dcf099ea65fd9bbf695beae1e411cc07cf9a0674e7e14b618af/analysis/ Créditos: DinoCRM BT Animal Pak
  7. Eu vou te recomendar esses dois: Espero que ajude
  8. POS Templo: X: 32957 Y: 32076 Z: 7 Preview: http://darknessfamily.com/venore9.81/slideshow.swf Download: http://www.mediafire.com/?10v48vx2sjgdlri Scan: https://www.virustotal.com/file/b4b6c0d1fe1198dd622b74c01c0de1861e0747785fc7d16b4b5220f843f00201/analysis/1357023247/ Créditos: NvSo Animal Pak
  9. .HuRRiKaNe postou uma resposta no tópico em Tibia Global OTServer
    Informações: Servidor Custom, baseado em servidores com cenário do Tibia Global. NPC'S próprios para o servidor. Servidor com grande possibilidade para vários estilos, "high exp" ou "low exp" Quests e mapa interagem com o jogador. Versão 8.60 Servidor capacitado para ser usado em MySQL Distro próprio baseado em TFS (open source) Screen's: Download Server: http://www.4shared.com/rar/NRdoOLCe/Tibia_Pan860.html Scan Server: https://www.virustotal.com/file/afe0c709a2b28f2630d0200c34c4b6d70750b45011f76b98ab49e6a528ee8775/analysis/1357231323/ Download .EXE: http://www.4shared.com/file/_V0VngGn/TibiaPan_2.html Scan .EXE: https://www.virustotal.com/file/b5597ed6649bf60f05f8d226d1e77f3505ab1c371c1451da0d08bed0e2fdfbfa/analysis/1357231466/ Créditos: Rodolfo Augusto Animal Pak
  10. Como nosso amigo leandro disse eu não editei nada no servidor eu só trouxe o conteúdo para cá
  11. .HuRRiKaNe postou uma resposta no tópico em Suporte Tibia OTServer
    Se não der certo o que o amigo acima falou, baixe essa versão do xampp 1.7.3 link: http://www.oldapps.com/xampp.php?app=3635a1c0baf15e8a019009e6c1225389
  12. Testado nas versões 8.60 - 9.43. Na pasta data/lib/pets.lua: --Circles AREA_CIRCLE2X2 = { {0, 1, 1, 1, 0}, {1, 1, 1, 1, 1}, {1, 1, 3, 1, 1}, {1, 1, 1, 1, 1}, {0, 1, 1, 1, 0} } AREA_CIRCLE3X3 = { {0, 0, 1, 1, 1, 0, 0}, {0, 1, 1, 1, 1, 1, 0}, {1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 3, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1}, {0, 1, 1, 1, 1, 1, 0}, {0, 0, 1, 1, 1, 0, 0} } -- Crosses AREA_CROSS1X1 = { {0, 1, 0}, {1, 3, 1}, {0, 1, 0} } AREA_CROSS5X5 = { {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0}, {0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0}, {0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0}, {0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0}, {1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1}, {0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0}, {0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0}, {0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0}, {0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0} } AREA_CROSS6X6 = { {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 1, 1, 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}, {1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1}, {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, 1, 1, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0} } --Squares AREA_SQUARE1X1 = { {1, 1, 1}, {1, 3, 1}, {1, 1, 1} } -- Walls AREA_WALLFIELD = { {1, 1, 3, 1, 1} } AREADIAGONAL_WALLFIELD = { {0, 0, 0, 0, 1}, {0, 0, 0, 1, 1}, {0, 1, 3, 1, 0}, {1, 1, 0, 0, 0}, {1, 0, 0, 0, 0}, } TYPE_NEAR = 1 TYPE_DISTANCE = 2 petExhaust = 3 --in seconds petSayExhaust = 3 --in seconds petGainTicks = { health = {func = doCreatureAddHealth, time = 3000, count = 1}, mana = {func = doCreatureAddMana, time = 3000, count = 2} } petGainHealth = 30 petGainMana = 30 petExpRate = 1.3 carryItems = 10 petItemsBase = 1250 petItems = {} blockedItems = {6132, 2195} for i = 1, carryItems do table.insert(petItems, petItemsBase + i) end petBase = 61200 petStorages = { pet = petBase + 1, level = petBase + 2, exp = petBase + 3, items = petBase + 4, isPet = petBase + 5, isDead = petBase + 6, exhaust = petBase + 7, sayExhaust = petBase + 8, moveExhaust = petBase + 9, health = petBase + 10, mana = petBase + 11 } reviveCost = 1000 pets = { [1] = { monster = "orc spearman", vocations = {1, 2, 3, 4}, level = 30, attacks = { [1] = {name = "", level = 30, petLevel = 30, mana = 50, type = TYPE_DISTANCE, range = 10, combat = COMBAT_PHYSICALDAMAGE, effect = CONST_ME_NONE, distEffect = CONST_ANI_SPEAR, damageMin = 0.7, damageMax = 1.0} } }, [2] = { monster = "fire devil", vocations = {1, 2}, level = 60, attacks = { [1] = {name = "Fire Strike", level = 60, petLevel = 60, mana = 100, type = TYPE_DISTANCE, combat = COMBAT_FIREDAMAGE, effect = CONST_ME_FIREDAMAGE, distEffect = CONST_ANI_FIRE, damageMin = 1.5, damageMax = 2.0} } }, [3] = { monster = "minotaur guard", vocations = {3, 4}, level = 60, attacks = { [1] = {name = "Punch", level = 60, petLevel = 60, mana = 55, type = TYPE_NEAR, combat = COMBAT_PHYSICALDAMAGE, effect = CONST_ME_BLOOD, distEffect = CONST_ANI_NONE, damageMin = 1.5, damageMax = 2.0} } }, [4] = { monster = "water elemental", vocations = {2}, level = 95, attacks = { [1] = {name = "Ice Bomb", level = 100, petLevel = 100, mana = 250, type = TYPE_DISTANCE, range = 3, combat = COMBAT_ICEDAMAGE, effect = CONST_ME_ICEAREA, distEffect = CONST_ANI_ICE, damageMin = 1.5, damageMax = 2.0, area = {{0, 0, 1, 0, 0}, {0, 1, 3, 1, 0}, {0, 0, 1, 0, 0}}}, [2] = {name = "Poison Strike", level = 95, petLevel = 95, mana = 80, type = TYPE_DISTANCE, range = 8, combat = COMBAT_EARTHDAMAGE, effect = CONST_ME_GREENRINGS, distEffect = CONST_ANI_POISON, damageMin = 1.2, damageMax = 1.8} } }, [5] = { monster = "fire elemental", vocations = {1}, level = 95, attacks = { [1] = {name = "Fire Bomb", level = 100, petLevel = 100, mana = 250, type = TYPE_DISTANCE, range = 3, combat = COMBAT_FIREDAMAGE, effect = CONST_ME_FIREDAMAGE, distEffect = CONST_ANI_FIRE, damageMin = 1.5, damageMax = 2.0, area = {{0, 0, 1, 0, 0}, {0, 1, 3, 1, 0}, {0, 0, 1, 0, 0}}}, [2] = {name = "Fire Strike", level = 95, petLevel = 95, mana = 80, type = TYPE_DISTANCE, range = 3, combat = COMBAT_FIREDAMAGE, effect = CONST_ME_FIREDAMAGE, distEffect = CONST_ANI_FIRE, damageMin = 1.2, damageMax = 1.8} } }, [6] = { monster = "orc warlord", vocations = {4}, level = 95, attacks = { [1] = {name = "Throw Knife", level = 95, petLevel = 95, mana = 80, type = TYPE_DISTANCE, combat = COMBAT_PHYSICALDAMAGE, effect = CONST_ME_BLOOD, distEffect = CONST_ANI_THROWINGKNIFE, damageMin = 1.5, damageMax = 2.0} } }, [7] = { monster = "golem", vocations = {3}, level = 95, attacks = { [1] = {name = "Throw Stone", level = 95, petLevel = 95, mana = 80, type = TYPE_DISTANCE, combat = COMBAT_PHYSICALDAMAGE, effect = CONST_ME_BLOOD, distEffect = CONST_ANI_LARGEROCK, damageMin = 1.5, damageMax = 2.0} } }, [8] = { monster = "wyrm", vocations = {1, 2, 3, 4}, level = 135 }, [9] = { monster = "dragon lord", vocations = {1, 2, 3, 4}, level = 200, attacks = { [1] = {name = "Fire Bomb", level = 200, petLevel = 200, mana = 300, type = TYPE_DISTANCE, range = 3, combat = COMBAT_FIREDAMAGE, effect = CONST_ME_FIREAREA, distEffect = CONST_ANI_FIRE, damageMin = 1.5, damageMax = 2.0, area = AREA_CROSS1X1}, [2] = {name = "Fire Storm", level = 205, petLevel = 220, mana = 700, type = TYPE_NEAR, range = 8, combat = COMBAT_FIREDAMAGE, effect = CONST_ME_FIREAREA, distEffect = CONST_ANI_FIRE, damageMin = 1.8, damageMax = 2.5, area = AREA_CROSS5X5}, [3] = {name = "Fire Explosion", level = 203, petLevel = 210, mana = 450, type = TYPE_DISTANCE, range = 6, combat = COMBAT_FIREDAMAGE, effect = CONST_ME_EXPLOSIONHIT, distEffect = CONST_ANI_FIRE, damageMin = 1.5, damageMax = 2.1, area = AREA_CIRCLE2X2}, [4] = {name = "Scratch", level = 201, petLevel = 205, mana = 150, type = TYPE_NEAR, range = 1, combat = COMBAT_PHYSICALDAMAGE, effect = CONST_ME_HITAREA, distEffect = CONST_ANI_FIRE, damageMin = 1.3, damageMax = 1.8}, [5] = {name = "Fire Strike", level = 203, petLevel = 210, mana = 100, type = TYPE_DISTANCE, range = 3, combat = COMBAT_FIREDAMAGE, effect = CONST_ME_EXPLOSIONAREA, distEffect = CONST_ANI_FIRE, damageMin = 1.8, damageMax = 1.9} } } } function gainStat(pid, stat) if pid and pid > 0 and isMonster(pid) then stat.func(pid, stat.count) end addEvent(gainStat, stat.time, pid, stat) end function getLevelByExp(exp) return math.floor((math.sqrt(3) * math.sqrt(243*(exp+1)^2-48600*(exp+1)+3680000)+27 * (exp+1)-2700)^(1/3)/30^(2/3)-(5*10^(2/3))/(3^(1/3)*(math.sqrt(3)*math.sqrt(243*(exp+1)^2-48600*(exp+1)+3680000)+27*(exp+1)-2700)^(1/3))+2) end function getPetInfo(pet) if isNumber(pet) then return pets[pet] or false else for _, v in pairs(pets) do if pet:lower() == v.monster then return v end end end return false end function getPetByLevel(cid) local level = getPlayerLevel(cid) local pet for i = 1, #pets do v = pets[i] if level >= v.level and isInArray(v.vocations, getPlayerVocation(cid)) then pet = v end end return (pet ~= nil and pet or false) end function getAttackFormula(pid, attack) return { min = ((getPetLevel(pid) * 2) * (1 + attack.damageMin) + getPetLevel(pid)) / 2.5, max = ((getPetLevel(pid) * 3) * (1 + attack.damageMax) + getPetLevel(pid)) / 2.5 } end function doAttack(pid, target, param) local pet = getPetInfo(getCreatureName(pid)) if pet then if pet.attacks and pet.attacks[param] then local attack = pet.attacks[param] if target > 0 and attack.type and attack.type == TYPE_DISTANCE and getDistanceBetween(getCreaturePosition(pid), getCreaturePosition(target)) > (attack.range or 3) or attack.type == TYPE_NEAR and target > 0 and getDistanceBetween(getCreaturePosition(pid), getCreaturePosition(target)) > attack.range then return doPlayerSendCancel(getCreatureMaster(pid), "Target is too far.") and doSendMagicEffect(getCreaturePosition(pid), CONST_ME_POFF) end if target > 0 and not isSightClear(getCreaturePosition(pid), getCreaturePosition(target), true) then return doPlayerSendCancel(getCreatureMaster(pid), "There is not enough room.") and doSendMagicEffect(getCreaturePosition(pid), CONST_ME_POFF) end if target == 0 then return doPlayerSendCancel(getCreatureMaster(pid), "Please select a target first.") and doSendMagicEffect(getCreaturePosition(pid), CONST_ME_POFF) end if getPlayerLevel(getCreatureMaster(pid)) < attack.level then return doPlayerSendCancel(getCreatureMaster(pid), "You need level " .. attack.level .. " or higher to use this attack.") and doSendMagicEffect(getCreaturePosition(pid), CONST_ME_POFF) end if getPetLevel(pid) < attack.petLevel then return doPlayerSendCancel(getCreatureMaster(pid), "Your pet needs level " .. attack.petLevel .. " or higher to use this attack.") and doSendMagicEffect(getCreaturePosition(pid), CONST_ME_POFF) end if attack.mana and getCreatureMana(pid) < attack.mana then return doPlayerSendCancel(getCreatureMaster(pid), "Your pet does not have enough mana.") and doSendMagicEffect(getCreaturePosition(pid), CONST_ME_POFF) end if attack.area then doCastAreaAttack(pid, target, attack.area, attack) else doTargetCombatHealth(pid, target, attack.combat, -getAttackFormula(pid, attack).min, -getAttackFormula(pid, attack).max, attack.effect) end doCreatureAddMana(pid, -attack.mana) return doSendDistanceShoot(getCreaturePosition(pid), (attack.type == TYPE_DISTANCE and getCreaturePosition(target) or getCreaturePosition(pid)), attack.distEffect) and doCreatureSay(pid, attack.name, TALKTYPE_MONSTER) else return doSendMagicEffect(getCreaturePosition(pid), CONST_ME_POFF) end else return doSendMagicEffect(getCreaturePosition(pid), CONST_ME_POFF) and doPlayerSendCancel(getCreatureMaster(pid), "There is a tecnical problem, please contact a gamemaster.") end end function callPet(cid) for i = 1, #petStorages do if getCreatureStorage(cid, petStorages[i]) < 0 then doCreatureSetStorage(cid, petStorages[i], 0) end end local pet = getPetByLevel(cid) if not pet then return doPlayerSendCancel(cid, "You do not have enough level to call a pet.") end local ret = doCreateMonster(pet.monster, getCreaturePosition(cid)) if getCreatureStorage(cid, petStorages.level) < 1 then doCreatureSetStorage(cid, petStorages.level, pet.level) end if getCreatureStorage(cid, petStorages.exp) < 1 then doCreatureSetStorage(cid, petStorages.exp, getExperienceForLevel(pet.level)) end if getCreatureStorage(cid, petStorages.level) < pet.level then doCreatureSetStorage(cid, petStorages.level, pet.level) elseif getPlayerLevel(cid) * 3 < getCreatureStorage(cid, petStorages.level) then doCreatureSetStorage(cid, petStorages.level, (getPetByLevel(cid).level or 0)) doCreatureSetStorage(cid, petStorages.exp, getExperienceForLevel((getPetByLevel(cid).level or 0))) end if getLevelByExp(getCreatureStorage(cid, petStorages.exp)) < getCreatureStorage(cid, petStorages.level) then doCreatureSetStorage(cid, petStorages.exp, getExperienceForLevel(getCreatureStorage(cid, petStorages.level))) end if getCreatureStorage(cid, petStorages.health) < 1 then doCreatureSetStorage(cid, petStorages.health, getCreatureStorage(cid, petStorages.level) * petGainHealth) end if getCreatureStorage(cid, petStorages.mana) < 1 then doCreatureSetStorage(cid, petStorages.mana, getCreatureStorage(cid, petStorages.level) * petGainMana) end doCreatureSetStorage(ret, petStorages.level, getCreatureStorage(cid, petStorages.level)) doCreatureSetStorage(ret, petStorages.exp, getCreatureStorage(cid, petStorages.exp)) doConvinceCreature(cid, ret) doCreatureSetStorage(ret, petStorages.isPet, 1) doSendMagicEffect(getCreaturePosition(ret), CONST_ME_TELEPORT) setCreatureMaxHealth(ret, getPetLevel(ret) * petGainHealth) doCreatureAddHealth(ret, -getCreatureHealth(ret) + getCreatureStorage(cid, petStorages.health)) setCreatureMaxMana(ret, getPetLevel(ret) * petGainMana) doCreatureAddMana(ret, -getCreatureMana(ret) + getCreatureStorage(cid, petStorages.mana)) for _, v in pairs(petGainTicks) do gainStat(ret, v) end return doCreatureSay(cid, "Go pet!", TALKTYPE_SAY) end function doCastAreaAttack(pid, target, area, attack) local center = {} local areaxx = {} center.y = math.floor(#area/2)+1 for y = 1, #area do for x = 1, #area[y] do local number = area[y][x] if number > 0 then center.x = math.floor(table.getn(area[y])/2)+1 if attack.type == TYPE_DISTANCE then table.insert(areaxx, {x = getCreaturePosition(target).x + x - center.x, y = getCreaturePosition(target).y + y - center.y, z = getCreaturePosition(target).z}) else table.insert(areaxx, {x = getCreaturePosition(pid).x + x - center.x, y = getCreaturePosition(pid).y + y - center.y, z = getCreaturePosition(pid).z}) end end end end for i = 1, #areaxx do doAreaCombatHealth(pid, attack.combat, areaxx[i], 0, -getAttackFormula(pid, attack).min, -getAttackFormula(pid, attack).max, attack.effect) end end function isPet(pid) return getCreatureStorage(pid, petStorages.isPet) > 0 and true or false end function doPetAddExperience(pid, exp) doCreatureSetStorage(pid, petStorages.exp, getCreatureStorage(pid, petStorages.exp) + exp) doCreatureSetStorage(getCreatureMaster(pid), petStorages.exp, getPetExperience(pid)) doSendAnimatedText(getCreaturePosition(pid), exp, getConfigValue("gainExperienceColor")) return true end function getPetExperience(pid) return getCreatureStorage(pid, petStorages.exp) end function getPetLevel(pid) return getCreatureStorage(pid, petStorages.level) end function doPetSetLevel(pid, level) doCreatureSetStorage(pid, petStorages.level, level) doCreatureSetStorage(getCreatureMaster(pid), petStorages.level, level) setCreatureMaxHealth(pid, getPetLevel(pid) * petGainHealth) setCreatureMaxMana(pid, getPetLevel(pid) * petGainMana) return true end function getPlayerPet(cid) local pet if #getCreatureSummons(cid) < 1 then pet = false end for _, it in ipairs(getCreatureSummons(cid)) do if isPet(it) then pet = it break end end return pet end function getTopItem(p) p.stackpos = 0 local v = getThingFromPos(p) repeat p.stackpos = p.stackpos + 1 v = getThingFromPos(p) until v.itemid == 0 p.stackpos = p.stackpos - 1 return getThingFromPos(p) end Pasta data/creaturescripts/scripts/petdeath.lua: function onDeath(cid, corpse, deathList) if not isMonster(cid) or not isPet(cid) then return true end doCreatureSetStorage(getCreatureMaster(cid), petStorages.isDead, 1) doPlayerSendTextMessage(getCreatureMaster(cid), MESSAGE_STATUS_CONSOLE_BLUE, "Your pet is dead.") return true end Pasta data/creaturescripts/scripts/petstats.lua: function onStatsChange(cid, attacker, type, combat, value) if getPlayerPet(cid) and getPlayerPet(cid) == attacker then return false end return true end Pasta data/creaturescripts/scripts/petkill.lua: function onKill(cid, target, lastHit) if not isMonster(target) or getConfigValue("rateExperience") < 0.1 or getMonsterInfo(getCreatureName(target)) and getMonsterInfo(getCreatureName(target)).experience < 1 then return true end local pet = getPlayerPet(cid) if pet then doPetAddExperience(pet, getMonsterInfo(getCreatureName(target)).experience * petExpRate) if getLevelByExp(getPetExperience(pet)) > getPetLevel(pet) then doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "Your pet advanced from level " .. getPetLevel(pet) .. " to level " .. getLevelByExp(getPetExperience(pet)) .. ".") doPetSetLevel(pet, getLevelByExp(getPetExperience(pet))) end end return true end Adicione no data/creaturescripts/scripts/login.lua: registerCreatureEvent(cid, "petKill") registerCreatureEvent(cid, "petDeath") registerCreatureEvent(cid, "petSta") Adicione na data/creaturescripts/creaturescripts.xml: <event type="kill" name="petKill" event="script" value="petkill.lua"/> <event type="death" name="petDeath" event="script" value="petdeath.lua"/> <event type="statschange" name="petStats" event="script" value="petstats.lua"/> Na pasta talkactions/scripts/pet.lua: local l = { ["north"] = NORTH, ["east"] = EAST, ["south"] = SOUTH, ["west"] = WEST, ["southwest"] = SOUTHWEST, ["southeast"] = SOUTHEAST, ["northwest"] = NORTHWEST, ["northeast"] = NORTHEAST } --fixed by falcon-- function onSay(cid, words, param, channel) if(param == '') then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command param required.") return true end if param:lower() == "call" then if getCreatureStorage(cid, petStorages.isDead) > 0 then return doPlayerSendCancel(cid, "You need to revive your pet first.") end if getTilePzInfo(getCreaturePosition(cid)) then return doPlayerSendCancel(cid, "You cannot call your pet in protection zone.") end local pet = getPlayerPet(cid) if not pet then return callPet(cid) else doCreatureSetStorage(cid, petStorages.health, getCreatureHealth(pet)) doCreatureSetStorage(cid, petStorages.mana, getCreatureMana(pet)) doSendMagicEffect(getCreaturePosition(pet), CONST_ME_POFF) doRemoveCreature(pet) return doCreatureSay(cid, "It's enough!", TALKTYPE_SAY) end elseif param:lower() == "info" then local pet = getPlayerPet(cid) if pet then local pet_ = getPetInfo(getCreatureName(pet)) local attacks = "" if pet_.attacks and #pet_.attacks > 0 then for i = 1, #pet_.attacks do attacks = attacks .. "Attack ID: " .. i .. "\n" .. (pet_.attacks[i].name ~= "" and " Name: " .. pet_.attacks[i].name .. "\n" or "") .. " Level: " .. pet_.attacks[i].level .. "\n Pet level: " .. pet_.attacks[i].petLevel .. "\n Pet mana: " .. pet_.attacks[i].mana .. "\n" end end return doShowTextDialog(cid, 1948, "Here is your pet info:\n" .. "\nName: " .. getCreatureName(pet) .. "\nHealth: " .. getCreatureHealth(pet) .. "-" .. getCreatureMaxHealth(pet) .. "\nMana: " .. getCreatureMana(pet) .. "-" .. getCreatureMaxMana(pet) .. "\nLevel: " .. getPetLevel(pet) .. "\nExperience: " .. getPetExperience(pet) .. "\n-----Attacks-----\n" .. (attacks ~= "" and attacks or "No attacks")) else return doPlayerSendCancel(cid, "Please call your pet first.") end elseif param:lower() == "take" then local pet = getPlayerPet(cid) if not pet then return doPlayerSendCancel(cid, "Please call your pet first.") end local slot = 0 for i = 1, carryItems do if getCreatureStorage(cid, petItems[i]) < 1 then slot = i break end end if slot == 0 then return doPlayerSendCancel(cid, "You only can carry " .. carryItems .. " items.") end local item = getTopItem(getCreaturePosition(pet)) if getItemWeightById(item.itemid, 1) and getItemWeightById(item.itemid, 1) < 1 then return doPlayerSendCancel(cid, "There is no item to carry.") end if isInArray(blockedItems, item.itemid) then return doPlayerSendCancel(cid, "You cannot carry this item.") end doCreatureSetStorage(cid, petItems[slot], item.itemid * 1000 + (item.type > 0 and item.type or 1)) doRemoveItem(item.uid) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You take an item.") return true elseif param:lower() == "items" then local list = "Here is the list of items:\n" for i = 1, carryItems do if getCreatureStorage(cid, petItems[i]) < 1 then list = list .. "\n" .. i .. ". Empty." else local thing = getCreatureStorage(cid, petItems[i]) local item = math.floor(thing / 1000) local count = thing - item * 1000 list = list .. "\n" .. i .. ". x" .. count .. " " .. getItemNameById(item) .. "." end end return doShowTextDialog(cid, 1948, list) else param = string.explode(param, ":") if param[1]:lower() == "attack" then local pet = getPlayerPet(cid) if not pet then return doPlayerSendCancel(cid, "Please call your pet first.") end if not param[2] or not isNumber(param[2]) or tonumber(param[2]) < 1 then return doPlayerSendCancel(cid, "No attack index specified.") end if exhaustion.get(cid, petStorages.exhaust) then return doPlayerSendCancel(cid, "You are exhausted.") and doSendMagicEffect(getCreaturePosition(getCreatureSummons(cid)[1]), CONST_ME_POFF) end doAttack(pet, getCreatureTarget(cid), tonumber(param[2])) exhaustion.set(cid, petStorages.exhaust, petExhaust) elseif param[1]:lower() == "give" then local pet = getPlayerPet(cid) if not pet then return doPlayerSendCancel(cid, "Please call your pet first.") end if not param[2] or not isNumber(param[2]) or tonumber(param[2]) < 1 then return doPlayerSendCancel(cid, "No slot specified.") end if getCreatureStorage(cid, petItems[tonumber(param[2])]) > 0 then local thing = getCreatureStorage(cid, petItems[tonumber(param[2])]) local item = math.floor(thing/1000) local count = thing-item*1000 doPlayerAddItem(cid, item, count) doCreatureSetStorage(cid, petItems[tonumber(param[2])], 0) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You get an item.") else return doPlayerSendCancel(cid, "This slot is empty.") end elseif param[1]:lower() == "say" then local pet = getPlayerPet(cid) if not pet then return doPlayerSendCancel(cid, "Please call your pet first.") end if not param[2] or param[2] == "" then return doPlayerSendCancel(cid, "Command param required.") end if exhaustion.get(cid, petStorages.sayExhaust) then return doPlayerSendCancel(cid, "You are exhausted.") and doSendMagicEffect(getCreaturePosition(getCreatureSummons(cid)[1]), CONST_ME_POFF) end doCreatureSay(pet, param[2], TALKTYPE_MONSTER) exhaustion.set(cid, petStorages.sayExhaust, petExhaust) elseif param[1]:lower() == "move" then local pet = getPlayerPet(cid) if not pet then return doPlayerSendCancel(cid, "Please call your pet first.") end if not param[2] or param[2] == "" then return doPlayerSendCancel(cid, "Command param required.") end if exhaustion.get(cid, petStorages.moveExhaust) then return doPlayerSendCancel(cid, "You are exhausted.") and doSendMagicEffect(getCreaturePosition(getCreatureSummons(cid)[1]), CONST_ME_POFF) end local dir if l[param[2]:lower()] then dir = l[param[2]:lower()] local toPos = getPosByDir(getCreaturePosition(pet), dir, 1) local ret = queryTileAddThing(pet, toPos) if ret == RETURNVALUE_NOERROR then doMoveCreature(pet, dir) exhaustion.set(cid, petStorages.moveExhaust, petExhaust) else return doPlayerSendCancel(cid, "There is not enough room.") and doSendMagicEffect(getCreaturePosition(pet), CONST_ME_POFF) end else return doPlayerSendCancel(cid, "No direction specified.") end elseif isInArray({"mana", "health"}, param[1]:lower()) then if getPlayerGroupId(cid) < 3 then return false end local pet = getPlayerPet(cid) if not pet then return doPlayerSendCancel(cid, "Please call your pet first.") end if not param[2] or not isNumber(param[2]) then return doPlayerSendCancel(cid, "Command param required.") end if param[1]:lower() == "health" then doCreatureAddHealth(pet, tonumber(param[2])) elseif param[1]:lower() == "mana" then doCreatureAddMana(pet, tonumber(param[2])) end return doSendMagicEffect(getCreaturePosition(pet), (param[1]:lower() == "health" and CONST_ME_MAGIC_RED or CONST_ME_MAGIC_BLUE)) end end return true end Talkactions.xml: <talkaction words="!pet" event="script" value="pet.lua"/> Screen's: Comandos: !pet call !pet take !pet items !pet attack !pet give !pet say !pet move !pet mana Créditos: Falcon
  13. Informações: Versão 8.60; 3 Cidades; 4 Respaws; 2 Quests; Novos Items; Vocações Balanceadas; 2 Teams, Red / Blue; Novas Magias; Novos Comandos; Servidor 100% estável; Screen's: Download: http://www.mediafire.com/?6wfsr7tn1o5je1u Scan: https://www.virustotal.com/file/246242c102648374850f21eebad754c0ed1852ef63912f3c778f85cead714321/analysis/1357204131/ Créditos: Aldruh Miisael Animal Pak
  14. .HuRRiKaNe postou uma resposta no tópico em Mapas de Tibia
    Screen's: Download: http://www.mediafire.com/?g84rydqijq6e200 Scan: https://www.virustotal.com/file/bdec7ce2d037cefd33b93c21292b2842839cd5805d45c56aa5b0857642e1d32f/analysis/1357202858/ Créditos: Luffy
  15. Tenho uma aqui blessbookuse.lua: local cfg = { bless = { 1, 2, 3, 4, 5 }, level = 8 } function onUse(cid, item, fromPosition, itemEx, toPosition) for i = 1, table.maxn(cfg.bless) do if(getPlayerBlessing(cid, cfg.bless[i])) then doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF) doCreatureSay(cid, "You have already been blessed.", TALKTYPE_ORANGE_1) return true end end if getPlayerLevel(cid) >= cfg.level then for i = 1, table.maxn(cfg.bless) do doPlayerAddBlessing(cid, cfg.bless[i]) end doSendMagicEffect(getCreaturePosition(cid), CONST_ME_HOLYAREA) doSendAnimatedText(getCreaturePosition(cid), "BLESSED!", TEXTCOLOR_RED) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "You have been blessed by the gods.") end return true end Actions.xml <action itemid="8977" event="script" value="blessbookuse.lua"/> Items.xml <item id="8977" article="a" name="book of blessings"> <attribute key="description" value="Book written by gods. Infinite power." /> <attribute key="weight" value="1337" />
  16. Informações: » Map RL 8.60, Com Novas Áreas; » Distro 100% - Sem Erros; » Magias Novas; » Monstros 100% RL; » Addons 100% RL; » NPC's 98% RL; » Addon Bonus 100%; » Items 95%; » War System 100%; » Quests RL 90%; » Servidor 100% Estável; Screen's: Download Server / Scan: » Download Server: http://www.mediafire.com/?9dw90td7e8bp955 » Scan Server: OBS: Não realizei o scan porque o arquivo ultrapassa o limite de 32MB no virustotal! Account GOD: tibia / tibia Créditos: NvSo Kaiser e The OTX Team TheForgotten Server Cipsoft Animal Pak
  17. OTX Server - Versão 2.44 (Chronodia) Descrição: Esta versão inclui um motor completamente atualizado com base no código da OTX 2.1 (com extras no sistema). Eles usam os mesmos arquivos excluindo apenas / / items.otb - items.xml / / libs/000-constant - 101 - compat.lua. Uma vez que apenas os arquivos ou ids mensagens são removidas na versão. A principal inovação é que já inclui suporte para 9.80/81. E inclui grandes reparações em seus antecessores 2.4/2.41/2.42/2.43! Ferramentas Necessárias: Necessário para evitar problemas com arquivos (dll) Microsoft Visual C + + 2010 - 32 bits Microsoft Visual C + + 2010 - 64Bits Download: http://www.mediafire...5#11y1a5ez1ea8p É Altamente recomendado que você use essa nova versão! Créditos: OTXTeam
  18. Pronto upei no mediafire link: http://www.mediafire.com/?nbii6fikrdkvrz8
  19. Aggrox OT - Edited by Fercho Informações: - Mapa Editado; - Templo Editado; - Novas Quests; - Novos Itens; - VIP System; - Novos Eventos; - Houses; - Teleport's; - Novos Monstros; - Servidor estável; - E mais! Screen's: Download Servidor & Scan: Download: http://www.mediafire...18uo8t08v37bdt4 Scan: https://www.virustot...sis/1355924889/ Créditos: Fercho Don Ramon Oscar Kiba SmoOkeR (Animal Pak)
  20. Exp Alta - Eu testei aqui pelo deposit files e deu cara ;s Tenta ae se não der eu faço upload no mediafire.
  21. [8.60] Red Dragon Server! Informações: Imagens: Download: http://www.multiupload.nl/R63UNO0EDK http://www.mediafire.com/?nbii6fikrdkvrz8 Scan: https://www.virustot...sis/1355150248/ Créditos: Enzo Legend AllisowSm SmoOkeR (EU Animal Pak)
  22. .HuRRiKaNe postou uma resposta no tópico em Scripts tfs 0.4 (OLD)
    Na pasta data/spells/scripts/healing crie um arquivo exura gran mana.lua e dentro cole: Na pasta data/spells/ adicione no spells.xml : <instant name="Mana Healing" words="exura gran mana" lvl="350" mana="500" aggressive="0" selftarget="1" exhaustion="800" needlearn="0" script="healing/exura gran mana.lua"> <vocation name="Sorcerer" /> <vocation name="Druid" /> <vocation name="Paladin" /> <vocation name="Knight" /> <vocation name="Master Sorcerer" /> <vocation name="Elder Druid" /> <vocation name="Royal Paladin" /> <vocation name="Elite Knight" /> </instant> Resultado: Créditos: Sokix
  23. .HuRRiKaNe postou uma resposta no tópico em Mapas de Tibia
    Screen's: Download: http://www.mediafire...wpxhfmemi7ua7mw Scan: https://www.virustot...sis/1339299983/ Créditos: Amsterdam
  24. .HuRRiKaNe postou uma resposta no tópico em Mapas de Tibia
    Screen's: Download: http://www.mediafire...shkg03bp2ums3vb Scan: https://www.virustot...sis/1337652720/ Créditos: Amsterdam
  25. .HuRRiKaNe postou uma resposta no tópico em Mapas de Tibia
    Screen's: Download: http://www.mediafire...6rbhvlo266g6t95 Scan: https://www.virustot...sis/1337094132/ Créditos: Amsterdam

Informação Importante

Confirmação de Termo