Dragnus 0 Postado Maio 15, 2008 Share Postado Maio 15, 2008 (editado) Pessoal antes de começar peguei esse tuto num fórum americano. Créditos não são meus são de FedeVI Não encontrei em nenhum fórum brasileiro algo do tipo então vim aqui postar. Se algum scripter puder dar uma força por que para mim deu alguns erros, consigo invocar o pet mas ao fazer !pet denovo ele não some. Ai vai Coloque no Talkaction: <talkaction words="!petinfo" script="pets/!petinfo.lua"/><talkaction words="!petsay" script="pets/!petsay.lua"/> <talkaction words="!petcarry" script="pets/!petcarry.lua"/> <talkaction words="!pet" script="pets/!pet.lua"/> <talkaction words="!petattack" script="pets/!petattack.lua"/> <talkaction words="!petgetitem" script="pets/!petgetitem.lua"/> Adicione na memsa pasta do config.lua o arquivo petConfig.lua no petConfig ponha: --// \\-- --( made by FedeVI ) -- --____________ //-- petSystemExhaustion = 1 --in secods, 0 = no exhausted. frases = {"Men, im still exhausted!", "Ok, in one momment", "afff, again?!", "meh, one second"} lenght = 39 -- maximun lenght the !petsay can have... manaGainTicks = 3000 -- --how fast the pet gains mana manaGainAmmount = 10 --// manaGainPerLevel = 20 -- mana that gains the pet for each level the player gain magicLevelRate = 4 -- how faster the pet will gain mlvl compared to real tibia,, base = 2000 --base storage. All storages will depend of this number storages = { petMag = base, petUid = base+1, petExha = base+2, petDamage = base+3, petManaSpent = base+4, petIsOnline = base+5, petMana = base+6, petIsHealing = base+7, petCap = base+8, petSystemExhaustion = base+9 } petItems = {} maxItems = 10 --Max items the pet can carry --lol V x = 0 y = function() x = x + 1 end table.foreach(storages, y) for i = 1, maxItems do petItems[i] = base+x+i end --Pets, dependiong on the level pets = { {vocations = {1, 5}, pets = {{level = 100, name = "demon"}, {level = 60, name = "Dragons"}, {level = 50, name = "Dwarf Gegmancers"}, {level = 40, name = "Demon Skeleton"}, {level = 30, name = "Fire Devil"}, {level = 20, name = "Minotaur Archer"}, {level = 10, name = "Minotaur"}, {level = 0, name = "Rat"}} }, {vocations = {2, 6}, pets = {{level = 100, name = "demon"}, {level = 60, name = "Dragons"}, {level = 50, name = "Dwarf Gegmancers"}, {level = 40, name = "Demon Skeleton"}, {level = 30, name = "Fire Devil"}, {level = 20, name = "Minotaur Archer"}, {level = 10, name = "Minotaur"}, {level = 0, name = "Rat"}} }, {vocations = {3, 7}, pets = {{level = 100, name = "demon"}, {level = 60, name = "Dragons"}, {level = 50, name = "Dwarf Gegmancers"}, {level = 40, name = "Demon Skeleton"}, {level = 30, name = "Fire Devil"}, {level = 20, name = "Minotaur Archer"}, {level = 10, name = "Minotaur"}, {level = 0, name = "Rat"}} }, {vocations = {4, 8}, pets = {{level = 100, name = "demon"}, {level = 60, name = "Dragons"}, {level = 50, name = "Dwarf Gegmancers"}, {level = 40, name = "Demon Skeleton"}, {level = 30, name = "Fire Devil"}, {level = 20, name = "Minotaur Archer"}, {level = 10, name = "Minotaur"}, {level = 0, name = "Cave Rat"}} } } --attacks of the pet. !petattack "param --It's pretty easy how to config, I think it doesn't need an extra explanation. attacks = {{param = "energy", theFunction = false, offensive = 1, needLevel = 20, self = 0, needMag = 10, manaSpent = 60, exhausted = 1, range = 6, combatType = COMBAT_ENERGYDAMAGE, combatAni = CONST_ME_ENERGYAREA, area = 2, formula = {maxb = 0.4, maxa = 30, minb = 0.5, mina = 0}, }, {param = "exori", theFunction = false, offensive = 1, needLevel = 40, self = 0, needMag = 5, manaSpent = 145, exhausted = 1, range = 0, combatType = COMBAT_PHYSICALDAMAGE, combatAni = CONST_ME_HITAREA, area = 2, formula = {maxb = 0.6, maxa = 30, minb = 1.2, mina = 0}, }, {param = "fireball", theFunction = false, offensive = 1, needLevel = 50, self = 0, needMag = 15, manaSpent = 100, exhausted = 1, range = 3, combatType = COMBAT_FIREDAMAGE, combatAni = CONST_ME_FIREAREA, area = 6, formula = {maxb = 0.6, maxa = 30, minb = 1.2, mina = 0} }, {param = "mini energy", theFunction = false, offensive = 1, needLevel = 0, self = 0, needMag = 0, manaSpent = 20, exhausted = 1, range = 1, combatType = COMBAT_ENERGYDAMAGE, combatAni = CONST_ME_ENERGYAREA, area = 1, formula = {maxb = 0.13, maxa = 0, minb = 0.262, mina = 0} }, {param = "health", theFunction = false, offensive = -1, needLevel = 10, self = 1, needMag = 0, manaSpent = 100, exhausted = 2, range = 0, combatType = COMBAT_HEALING, combatAni = CONST_ME_MAGIC_BLUE, area = 1, formula = {maxb = 0.4, maxa = 20, minb = 0.7, mina = 0} }, {param = "paralize", needLevel = 1, needMag = 0, manaSpent = 300, exhausted = 2, theFunction = function (parameters) daPet = getPlayerStorageValue(parameters.cid, storages.petUid) if getCreatureTarget(daPet) ~= 0 then doAddCondition(getCreatureTarget(parameters.cid), 4) end end }, {param = "speed", needLevel = 10, needMag = 4, manaSpent = 60, exhausted = 2, theFunction = function (parameters) doAddCondition(getPlayerStorageValue(parameters.cid, storages.petUid), 11) end }, {param = "double fire", needLevel = 1, needMag = 0, manaSpent = 100, exhausted = 2, theFunction = function (parameters) local myAttack = formulaAttack(getPlayerLevel(parameters.cid), getPlayerStorageValue(parameters.cid, storages.petMag), 0.7, 0, 1.0, 0) function doAreaCombatHealthEx(params) local randoms = {[1] = math.random(-2, 2), [2] = math.random(-2, 2) } local attackCreature = getPlayerStorageValue(parameters.cid, storages.petUid) if getCreatureTarget(getPlayerStorageValue(parameters.cid, storages.petUid)) ~= 0 then attackCreature = getCreatureTarget(getPlayerStorageValue(parameters.cid, storages.petUid)) end local posa = getCreaturePosition(attackCreature) doAreaCombatHealth(getPlayerStorageValue(parameters.cid, storages.petUid), COMBAT_FIREDAMAGE, {x = posa.x + randoms[1], y = posa.y + randoms[2], z = posa.z}, 1, -params.myAttack.minD, -params.myAttack.maxD, CONST_ME_FIREAREA) doSendDistanceShoot(getCreaturePosition(getPlayerStorageValue(parameters.cid, storages.petUid)), {x = posa.x + randoms[1], y = posa.y + randoms[2], z = posa.z}, CONST_ANI_FIRE) end doAreaCombatHealthEx({cid = parameters.cid, target = getCreaturePosition(attackCreature), myAttack = myAttack}) for i = 1, 7 do addEvent(doAreaCombatHealthEx, 200*i, {cid = parameters.cid, target = getCreaturePosition(attackCreature), myAttack = myAttack}) end end } } function setExhausted(cid) setPlayerStorageValue(cid, storages.petSystemExhaustion, os.clock()+1) end function formulaAttack(magicLevel, level, maxb, maxa, minb, mina) return {minD = (level * 2 + magicLevel * 3) * (1 + mina) + minb, maxD = (level * 2 + magicLevel * 3) * (1 + maxb) + maxa } end function isExhausted(cid) if isPlayer(cid) == 1 then local CRONOMETRO = getPlayerStorageValue(cid, storages.petSystemExhaustion) local CRONOMETRO2 = os.clock() local TIEMPO = os.difftime(CRONOMETRO2, CRONOMETRO) if petSystemExhaustion - TIEMPO > petSystemExhaustion or CRONOMETRO == -1 then setPlayerStorageValue(cid, storages.petSystemExhaustion, CRONOMETRO2+1) return 0 end if petSystemExhaustion - TIEMPO <= 0 then return 0 end end return 1 end function addMana(a) local cid = a.cid local petManaMax = getPlayerLevel(cid)*manaGainPerLevel if getPlayerStorageValue(cid, storages.petMana) < petManaMax then if petManaMax - getPlayerStorageValue(cid, storages.petMana) < 10 then setPlayerStorageValue(cid, storages.petMana, getPlayerStorageValue(cid, storages.petMana) + petManaMax - getPlayerStorageValue(cid, storages.petMana)) else setPlayerStorageValue(cid, storages.petMana, getPlayerStorageValue(cid, storages.petMana) + 10) end addEvent(addMana, manaGainTicks, {cid = cid}) else setPlayerStorageValue(cid, storages.petIsHealing, 0) end end Na pasta data\talkactions\scripts crie uma pasta chamada "pets" e dentro crie os seguintes arquivos: !petinfo.lua dofile("./petConfig.lua") function onSay(cid, words, param) if isExhausted(cid) == 1 then return 0 end local request = 0 local daPet = getPlayerStorageValue(cid, storages.petUid) if isCreature(daPet) == 1 then param = string.lower(param) if param == "magic level" then request = getPlayerStorageValue(cid, storages.petMag) elseif param == "mana" then request = getPlayerStorageValue(cid, storages.petMana) elseif param == "health" then request = getCreatureHealth(daPet) end if request ~= 0 then doPlayerSendTextMessage(cid, 19, 'Pet ' .. param .. ': ' .. request .. '.') end else doPlayerSendCancel(cid, 'You haven\'t call your pet!') end return setExhausted(cid) end !petsay.lua dofile("./petConfig.lua") function onSay(cid, words, param) if isExhausted(cid) == 1 then return 0 end local daPet = getPlayerStorageValue(cid, storages.petUid) if isCreature(daPet) == 1 then if param ~= nil then if string.len(param) < lenght then doCreatureSay(daPet, '' .. param .. '', TALKTYPE_ORANGE_1) else doPlayerSendCancel(cid, 'No more than ' .. lenght .. ' character. ') end else doPlayerSendCancel(cid, 'You must enter a text') end else doPlayerSendCancel(cid, 'You haven\'t call your pet!') end return setExhausted(cid) end !petcarry.lua dofile("./petConfig.lua") function onSay(cid, words, param) if isExhausted(cid) == 1 then return 0 end local mySto = 0 local daPet = getPlayerStorageValue(cid, storages.petUid) if isCreature(daPet) == 1 then local pos = getCreaturePosition(daPet) local a = 1 while a < 10 do if getItemWeight(getThingfromPos({x = pos.x, y = pos.y, z = pos.z, stackpos = a}).itemid, 1) ~= 0 then break end a = a + 1 end local carryingItem = getThingfromPos({x = pos.x, y = pos.y, z = pos.z, stackpos = a}) if getItemWeight(carryingItem.itemid, 1) ~= 0 then if isContainer(carryingItem.uid) == 0 then for b = 1, #petItems do if getPlayerStorageValue(cid, petItems[b]) == 0 or getPlayerStorageValue(cid, petItems[b]) == -1 then mySto = b break end end local count = 1 if mySto ~= 0 then local theID = carryingItem.itemid if isItemStackable(theID) == 1 then count = carryingItem.type doRemoveItem(carryingItem.uid, carryingItem.type) else doRemoveItem(carryingItem.uid, 1) end setPlayerStorageValue(cid, petItems[mySto], theID*100+count) if count == 1 then doCreatureSay(daPet, 'Hmm, a ' .. getItemName(theID) .. ', I\'ll save it on my bag number ' .. mySto .. '!', TALKTYPE_ORANGE_1) else doCreatureSay(daPet, 'Hmm, ' .. count .. ' ' .. getItemName(theID) .. 's, I\'ll save them on my bag number ' .. mySto .. '!', TALKTYPE_ORANGE_1) end else doCreatureSay(daPet, 'I have no space!', TALKTYPE_ORANGE_1) end else doCreatureSay(daPet, 'I can\'t take containers!', TALKTYPE_ORANGE_1) end else doCreatureSay(daPet, 'I can\'t see any item!', TALKTYPE_ORANGE_1) end else doPlayerSendCancel(cid, 'You haven\'t call your pet!') end return setExhausted(cid) end !pet.lua dofile("./petConfig.lua") function doPlayerAddSummon(cid, name, pos) local MyCreature = doSummonCreature(name, pos) doConvinceCreature(cid, MyCreature) return MyCreature end local myPet = "" local myPetUid = 0 function onSay(cid, words, param) if isExhausted(cid) == 1 then return 0 end if getPlayerStorageValue(cid, storages.petMag) == -1 then setPlayerStorageValue(cid, storages.petMag, 0) end if isCreature(getPlayerStorageValue(cid, storages.petUid)) == 0 then if getTilePzInfo(getCreaturePosition(cid)) == 0 then if getPlayerStorageValue(cid, storages.petIsOnline) == 1 or getPlayerStorageValue(cid, storages.petIsOnline) == -1 then for i = 1, #pets do if isInArray(pets[i].vocations, getPlayerVocation(cid)) == 1 then for k = 1, #pets[i].pets do if pets[i].pets[k].level <= getPlayerLevel(cid) then myPet = pets[i].pets[k].name break end end break end end myPetUid = doPlayerAddSummon(cid, myPet, getCreaturePosition(cid)) if myPetUid ~= -1 then setPlayerStorageValue(cid, storages.petUid, myPetUid) if getPlayerStorageValue(cid, storages.petDamage) ~= 0 and getPlayerStorageValue(cid, storages.petDamage) ~= -1 then if getPlayerStorageValue(cid, storages.petDamage) < getCreatureMaxHealth(getPlayerStorageValue(cid, storages.petUid)) then doCreatureAddHealth(getPlayerStorageValue(cid, storages.petUid), getPlayerStorageValue(cid, storages.petDamage)*-1) end end doChangeSpeed(myPetUid, getCreatureBaseSpeed(cid) - getCreatureBaseSpeed(myPetUid)) doCreatureSay(myPetUid, 'Hello!', TALKTYPE_ORANGE_1) addMana({cid = cid}) setPlayerStorageValue(cid, storages.petIsOnline, 2) else doPlayerSendCancel(cid, 'Not enought room.') end else doPlayerSendCancel(cid, 'Your pet died! You have to revive it.') end else doPlayerSendCancel(cid, 'You cannot summon your pet in PZ.') end else local daPet = getPlayerStorageValue(cid, storages.petUid) setPlayerStorageValue(cid, storages.petDamage, getCreatureMaxHealth(daPet) - getCreatureHealth(daPet)) doCreatureSay(daPet, 'Byebye !', TALKTYPE_ORANGE_1) setPlayerStorageValue(cid, storages.petIsOnline, 1) doSendMagicEffect(getCreaturePosition(daPet), CONST_ME_POFF) doRemoveCreature(daPet) end return setExhausted(cid) end !petattack.lua dofile("./petConfig.lua") function onSay(cid, words, param) if isExhausted(cid) == 1 then return 0 end local lookDirs = {[0] = {x = 0, y = -1}, [1] = {x = 1, y = 0}, [2] = {x = 0, y = 1}, [3] = {x = -1, y = 0} } local myAttack = 0 local CRONOMETRO = 0 local CRONOMETRO2 = 0 local TIEMPO = 0 function formulaAttack(magicLevel, level, maxb, maxa, minb, mina) return {minD = (level * 2 + magicLevel * 3) * (1 + mina) + minb, maxD = (level * 2 + magicLevel * 3) * (1 + maxb) + maxa } end function getPetMlvl(manaSpent) local i = 0 while manaSpent >= (1600 * (1.2^i))*magicLevelRate do i = i + 1 end return i end local daPet = getPlayerStorageValue(cid, storages.petUid) if isCreature(daPet) == 1 then if param ~= nil then param = string.lower(param) local petPos = getCreaturePosition(daPet) local lookDir = getPlayerLookDir(cid) -- getPlayerLookDir(daPet plz ! ! !) local damage = {} CRONOMETRO = getPlayerStorageValue(cid, storages.petExha) CRONOMETRO2 = os.clock() TIEMPO = os.difftime(CRONOMETRO2, CRONOMETRO) for i = 1, #attacks do if param == attacks[i].param then myAttack = i break end end if myAttack ~= 0 then if attacks[myAttack].exhausted - TIEMPO > attacks[myAttack].exhausted or CRONOMETRO == -1 then setPlayerStorageValue(cid, storages.petExha, CRONOMETRO2+1) end if getPlayerStorageValue(cid, storages.petMana) >= attacks[myAttack].manaSpent then if attacks[myAttack].needLevel <= getPlayerLevel(cid) then if attacks[myAttack].needMag <= getPlayerStorageValue(cid, storages.petMag) then if attacks[myAttack].exhausted - TIEMPO <= 0 then if attacks[myAttack].theFunction == false then damage = formulaAttack(getPlayerStorageValue(cid, storages.petMag), getPlayerLevel(cid), attacks[myAttack].formula.maxb, attacks[myAttack].formula.maxa, attacks[myAttack].formula.minb, attacks[myAttack].formula.mina) doAreaCombatHealth(daPet*((attacks[myAttack].self - 1)*-1), attacks[myAttack].combatType, {x = petPos.x + attacks[myAttack].range*lookDirs[lookDir].x, y = petPos.y + attacks[myAttack].range*lookDirs[lookDir].y, z = petPos.z}, attacks[myAttack].area, math.floor(damage.minD*-1*attacks[myAttack].offensive), math.floor(damage.maxD*-1*attacks[myAttack].offensive), attacks[myAttack].combatAni) else attacks[myAttack].theFunction({cid = cid, words = words, param = param}) end doCreatureSay(daPet, '' .. param .. '!', TALKTYPE_ORANGE_1) if getPlayerStorageValue(cid, storages.petIsHealing) == 0 or getPlayerStorageValue(cid, storages.petIsHealing) == -1 then addEvent(addMana, manaGainTicks, {cid = cid}) setPlayerStorageValue(cid, storages.petIsHealing, 1) end setPlayerStorageValue(cid, storages.petExha, CRONOMETRO2+1) setPlayerStorageValue(cid, storages.petManaSpent, getPlayerStorageValue(cid, storages.petManaSpent) + attacks[myAttack].manaSpent) setPlayerStorageValue(cid, storages.petMana, getPlayerStorageValue(cid, storages.petMana) - attacks[myAttack].manaSpent) if getPetMlvl(getPlayerStorageValue(cid, storages.petManaSpent)) > getPlayerStorageValue(cid, storages.petMag) then setPlayerStorageValue(cid, storages.petMag, getPetMlvl(getPlayerStorageValue(cid, storages.petManaSpent))) doCreatureSay(daPet, 'You advanced to magic level ' .. getPlayerStorageValue(cid, storages.petMag) .. '!', TALKTYPE_ORANGE_1) end else doCreatureSay(daPet, '' .. frases[math.random(1, #frases)] .. '!', TALKTYPE_ORANGE_1) end else doCreatureSay(daPet, 'My magic level is too low!', TALKTYPE_ORANGE_1) end else doCreatureSay(daPet, 'AAh Im out of mana!', TALKTYPE_ORANGE_1) end else doCreatureSay(daPet, 'Woups! I can\'t use that spell yet', TALKTYPE_ORANGE_1) end else ----------------special attacks ?---------------------- end else doPlayerSendCancel(cid, 'You must spesific a spell.') end else doPlayerSendCancel(cid, 'You haven\'t call your pet!.') end return setExhausted(cid) end !petgetitem.lua dofile("./petConfig.lua") function onSay(cid, words, param) if isExhausted(cid) == 1 then return 0 end local daPet = getPlayerStorageValue(cid, storages.petUid) if isCreature(daPet) == 1 then if param ~= "" then param = tonumber(param) if type(param) == "number" then if param <= maxItems then if getPlayerStorageValue(cid, petItems[param]) ~= 0 and getPlayerStorageValue(cid, petItems[param]) ~= -1 then local that = getPlayerStorageValue(cid, petItems[param]) local item = math.floor(that/100) local count = that-item*100 doPlayerAddItem(cid, item, count) if count == 1 then doCreatureSay(daPet, 'Here is your ' .. getItemName(item) .. '', TALKTYPE_ORANGE_1) else doCreatureSay(daPet, 'Here are your ' .. count .. ' ' .. getItemName(item) .. 's', TALKTYPE_ORANGE_1) end setPlayerStorageValue(cid, petItems[param], 0) end end end end end return setExhausted(cid) end No fim do arquivo petConfig.lua coloque: function onLogout(cid) if isCreature(getPlayerStorageValue(cid, storages.petUid)) == 1 then if getPlayerStorageValue(cid, storages.petIsOnline) == 2 then setPlayerStorageValue(cid, storages.petIsOnline, 1) end end return TRUE end Abaixo Script para o npc que revive o pet local focus = 0 local talk_start = 0 local talk_state = 0 local costPerLevel = 300 dofile("./petConfig.lua") function onThingMove(creature, thing, oldpos, oldstackpos) end function onCreatureAppear(creature) end function onCreatureDisappear(cid, pos) if focus == cid then selfSay('How rude!.') focus = 0 talk_start = 0 end end function onCreatureTurn(creature) end function msgcontains(txt, str) return (string.find(txt, str) and not string.find(txt, '(%w+)' .. str) and not string.find(txt, str .. '(%w+)')) end function onCreatureSay(cid, type, msg) msg = string.lower(msg) if getDistanceToCreature(cid) < 4 then if (msgcontains(msg, 'hi') and (focus == 0)) then selfSay('Hello ' .. creatureGetName(cid) .. '! I can take you to the train!') focus = cid talk_start = os.clock() elseif msgcontains(msg, 'hi') and (focus ~= cid) then selfSay('Sorry, ' .. creatureGetName(cid) .. '! I talk to you in a minute.') end if msgcontains(msg, 'revive') and focus == cid then if isCreature(getPlayerStorageValue(cid, storages.petUid)) == 0 then if getPlayerStorageValue(cid, storages.petIsOnline) == 2 then selfSay('YOUR PET DIED?!, YOU\'R A BAD OWNER, THIS WILL COST YOU ' .. getPlayerLevel(cid)*costPerLevel .. ' GOLD COINS!, AGREE?!') talk_state = 1 else selfSay('Your pet is alive.') end else selfSay('Your pet is standing next to you.') end talk_start = os.clock() end if msgcontains(msg, 'yes') and focus == cid and talk_state == 1 then if doPlayerRemoveMoney(cid, getPlayerLevel(cid)*costPerLevel) == 1 then setPlayerStorageValue(cid, storages.petIsOnline, 1) selfSay('You can now summon again your pet.') else selfSay('You don\'t have enought money.') end talk_state = 0 talk_start = os.clock() end if msgcontains(msg, 'bye') then selfSay('Good bye, ' .. creatureGetName(cid) .. '!') focus = 0 talk_start = 0 talk_state = 0 end end end function onCreatureChangeOutfit(creature) end function onThink() doNpcSetCreatureFocus(focus) if (os.clock() - talk_start) > 30 then if focus > 0 then selfSay('Next Please...') end focus = 0 talk_state = 0 end if focus ~= 0 then if getDistanceToCreature(focus) > 5 then talk_state = 0 selfSay('Good bye then.') talk_state = 0 focus = 0 end end end IMPORTANTE!!! Não esqueca o "!" antes dos nomes se não não funcionará. Espero ter ajudado o pessoal que tá a horas procurando esse pet system. abaixo o link de onde eu tirei. http://otfans.net/showthread.php?t=106972 Editado Maio 15, 2008 por Dragnus Link para o comentário Compartilhar em outros sites More sharing options...
comedinhasss 234 Postado Maio 15, 2008 Share Postado Maio 15, 2008 (editado) q q e isso?? esplica melhor Editado Maio 15, 2008 por comedinhasss Link para o comentário Compartilhar em outros sites More sharing options...
Dragnus 0 Postado Maio 15, 2008 Autor Share Postado Maio 15, 2008 q q e isso??esplica melhor No caso você vai ter um "Animal de estimação". Vai indo conforme o level e ele vai evoluindo, pode usar magias, e tudo mais, vai ser o "seu melhor amigo", você vai treinando ele e ele vai ficando cada vez mais forte. Link para o comentário Compartilhar em outros sites More sharing options...
Dragnus 0 Postado Maio 15, 2008 Autor Share Postado Maio 15, 2008 posta uma ss e dah uma organizada no tópico, tá meio confuso. Tipo, não sei mexer muito com script nem sou programador e tal, achei esse tuto no otfans e li em vários forums de otserv q o pessoal qr isto, mas como sempre usei o forum do xtibia vim aqui compartilhar com o pessoal esse sistema. Se acharem mais facil dêem uma olhada no site do otfans, só que está tudo em ingles mas é basicamente o que eu coloquei aqui, mas tem mais explicações nas imagens que tem lá. http://otfans.net/showthread.php?t=106972 cya. Link para o comentário Compartilhar em outros sites More sharing options...
lucasjockey 1 Postado Maio 16, 2008 Share Postado Maio 16, 2008 Massa, podia ter Hell Demon no lvl 300 ^^ vlw pelo script =) {vocations = {1, 5}, pets = {{level = 300, name = "Hell Demon"}, {level = 100, name = "demon"}, {level = 60, name = "Dragons"}, {level = 50, name = "Dwarf Gegmancers"}, {level = 40, name = "Demon Skeleton"}, {level = 30, name = "Fire Devil"}, {level = 20, name = "Minotaur Archer"}, {level = 10, name = "Minotaur"}, {level = 0, name = "Rat"}} Link para o comentário Compartilhar em outros sites More sharing options...
Mauze 0 Postado Maio 17, 2008 Share Postado Maio 17, 2008 rox issu vlw ai ja vi esse sistema em um ot ai e gostei tava procurando msm Link para o comentário Compartilhar em outros sites More sharing options...
rpgrpgni 0 Postado Maio 17, 2008 Share Postado Maio 17, 2008 Muito bom, comigo funcionou! Link para o comentário Compartilhar em outros sites More sharing options...
leandrocore 0 Postado Maio 19, 2008 Share Postado Maio 19, 2008 (editado) parabens :icon1: otimo script estou botando no meu ot ----edit----- tive ums problemas os pets dropavam os items exemplo o 'demon' quando morria dropava mpa etc.. tem como arruma isso ? ser tive post aew by dark :XTibia_smile: souldark.servegame.com port 7171 versão 8.10 Editado Maio 20, 2008 por leandrolbs Link para o comentário Compartilhar em outros sites More sharing options...
DarkFenixRS 0 Postado Maio 19, 2008 Share Postado Maio 19, 2008 afs! o Pet n anda sozin! e demora pra ATK! e alem disso...ele Dropa Iten kuando morre u.u Link para o comentário Compartilhar em outros sites More sharing options...
Fliper 0 Postado Maio 20, 2008 Share Postado Maio 20, 2008 Chaosfenix ç.ç os bixos que tem ai sao do tibia rl tipo dragon,dwarf geomancer. se vocÊ coloka bixos editados como pet vai ser melhor >.> Link para o comentário Compartilhar em outros sites More sharing options...
Ththt 2 Postado Maio 21, 2008 Share Postado Maio 21, 2008 (editado) nussa eu sempre quis ter um sistema de pet ja vo testar dpois edito ______[EDITADO]________ Em que server vc testo? pq o meu eh aries e n deu certo >.< Editado Maio 22, 2008 por THH Link para o comentário Compartilhar em outros sites More sharing options...
Dragnus 0 Postado Maio 25, 2008 Autor Share Postado Maio 25, 2008 pessoal testei no aries e funcionou os pets atacam sim e não demoram para andar tem que colocar todos os scripts certinhos. Quanto aos loots realmente não sei ajudar vocês tem que pedir para alguem que mexa com scrip dar uma olhada pq eu não entendo mto bem, como eu falei apenas copiei de um site americano e trouxe para cá. Link para o comentário Compartilhar em outros sites More sharing options...
antoniojun 4 Postado Maio 25, 2008 Share Postado Maio 25, 2008 Muinto bom esse Sistema vou recomenda para o script do meu ot obrigado pela contribuiçao. Atenciosamente, Antoniojun. Link para o comentário Compartilhar em outros sites More sharing options...
Mapper123 0 Postado Maio 26, 2008 Share Postado Maio 26, 2008 parabens Link para o comentário Compartilhar em outros sites More sharing options...
Aricles 0 Postado Maio 27, 2008 Share Postado Maio 27, 2008 Muito legal!! Eu vou usar Está de parabens ein Aprovado Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados