eu tento instalar esse system no meu server, da error,
diz not directory, se puder me ajudar...
info
Grupo: Barão
Registrado: 12/05/09
Posts: 237
Reputação: +21
Char no Tibia: Sir Slazer

eu tento instalar esse system no meu server, da error,
diz not directory, se puder me ajudar...
info
Grupo: Campones
Registrado: 27/06/09
Posts: 42
Reputação: +9
Char no Tibia: Lordz Brenoo

eu tento instalar esse system no meu server, da error,
diz not directory, se puder me ajudar...
olha se você colocou tudo na pasta certinho
vc entra em talckaction depois clica na pasta scripts depois cria uma pasta nova chamada pets(olha se o nome da pasta que vc criou é "pets" ou "pet" escreve exatamente assim "pets")e dentro da pasta pets vc coloca os arquivos pet,petgetiten,petcarry etc...
espero ter ajudado,me fala se deu certo agora
info
Grupo: Barão
Registrado: 12/05/09
Posts: 237
Reputação: +21
Char no Tibia: Sir Slazer

fiz tudo direitinho com o máximo de cuidado, e nunca da caerto...
e não é so esse script, com vários acontece a mesma coisa,
deixa a resposta ai que amanha vejo, vou durmir, bye
info
Grupo: Campones
Registrado: 27/06/09
Posts: 42
Reputação: +9
Char no Tibia: Lordz Brenoo

fiz tudo direitinho com o máximo de cuidado, e nunca da caerto...
e não é so esse script, com vários acontece a mesma coisa,
deixa a resposta ai que amanha vejo, vou durmir, bye
add meu msn aew q t ajudo lah oks?
nono.182@hotmail.com
eu tmb ja tentei de tudo masssss nao vaiiiii
meu tfs é 8.57
me add msn
mestereod.sk8@hotmail.com
Editado Agosto 16 por Mestereod
info
Grupo: Campones
Registrado: 27/06/09
Posts: 42
Reputação: +9
Char no Tibia: Lordz Brenoo

O F.oda é que ninguem consegue, pra fala a verdade nem eu consigui por isso,tipow n da erro e lugar nenhum só nun funciona
quem tiver a solução posta aki
é verdade
vc fala !pet
ou qlquer outra talkaction e nao aparece nada.
info
Grupo: Campones
Registrado: 27/06/09
Posts: 42
Reputação: +9
Char no Tibia: Lordz Brenoo

é verdade
vc fala !pet
ou qlquer outra talkaction e nao aparece nada.
as otra talk action nao vai funcionar msm pq o pet tem que estar envocado
info
Grupo: Campones
Registrado: 24/05/10
Posts: 54
Reputação: +4
Char no Tibia: Secret

Cara o tutorial é legal mais você esta explicando meio que errado
Aonde ficaria essa pasta?apos feito isso crie um arquivo na pasta do seu ot chamado petConfig.lua e nele cole isso:
explica um poko melhor aonde colocar os arquivos LUA pastas etc mais o tutorial ta bom vou testar o script aqui qualquer erro eu reporto se der pra mim arrumar eu posto o arrumado aqui
info
Grupo: Campones
Registrado: 27/06/09
Posts: 42
Reputação: +9
Char no Tibia: Lordz Brenoo

Cara o tutorial é legal mais você esta explicando meio que errado
Aonde ficaria essa pasta?apos feito isso crie um arquivo na pasta do seu ot chamado petConfig.lua e nele cole isso:explica um poko melhor aonde colocar os arquivos LUA pastas etc mais o tutorial ta bom vou testar o script aqui qualquer erro eu reporto se der pra mim arrumar eu posto o arrumado aqui
Na pasta do ot,siguinifica onde fica o executavel do ot,o config.lua e tals
ahh...vlw a todos que estão comentando
info
Grupo: Cavaleiro
Registrado: 14/08/10
Posts: 186
Reputação: +35

Nossa, toda vez que colocam um sistema de Pet eu corro e vou testar.. ate Hoje nenhun funcionou aqui
e infelizmente este não foi diferente...A função de sumonar o Pet não esta funfando, nao da erro mais tbm não sumona...
Mais vlw pelo esforço de postar aki no Xtibia
Server testado: Mix server "tfs"
info
Grupo: Campones
Registrado: 25/06/10
Posts: 34
Reputação: 0
Char no Tibia: Lais Figueiredo

Script sinceramente muito bom ![]()
Tentem colocar isso
<talkaction words="!petinfo" script="!petinfo.lua"/> <talkaction words="!petsay" script="!petsay.lua"/> <talkaction words="!petcarry" script="!petcarry.lua"/> <talkaction words="!pet" script="!pet.lua"/> <talkaction words="!petattack" script="!petattack.lua"/> <talkaction words="!petgetitem" script="!petgetitem.lua"/>
No talkactions.xml ao invés do que ele colocou no post ![]()
info
Grupo: Cavaleiro
Registrado: 14/08/10
Posts: 186
Reputação: +35

Script sinceramente muito bom
Tentem colocar isso
<talkaction words="!petinfo" script="!petinfo.lua"/> <talkaction words="!petsay" script="!petsay.lua"/> <talkaction words="!petcarry" script="!petcarry.lua"/> <talkaction words="!pet" script="!pet.lua"/> <talkaction words="!petattack" script="!petattack.lua"/> <talkaction words="!petgetitem" script="!petgetitem.lua"/>No talkactions.xml ao invés do que ele colocou no post
Nos meus testes tinha tentado isso tambem. Fiz ate sem o scripts sem "!" no nome.
Nada funfo ake
![]()
info
Grupo: Campones
Registrado: 23/01/08
Posts: 41
Reputação: +2
Char no Tibia: Gripi Suina

Esse pet System não funciona em servidores 8.40+, outra coisa se nao me engano ja existe 2 topicos com esse mesmo pet system.
Ah e mais uma coisa ja existe um pet system melhor que esse e que funciona com servidores 8.57, só não posto link porque é de outro forum.
Sem mais, para mim acho que esse topico foi desnecessario mais tudo bem né.
Abraços!!
info
Grupo: Campones
Registrado: 27/06/09
Posts: 42
Reputação: +9
Char no Tibia: Lordz Brenoo
sem comentarios vamu lah xD
Coloque essas tags no Talkaction:
apos feito isso crie um arquivo na pasta do seu ot chamado petConfig.lua e nele cole isso:
--// \\-- --( 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 = "Dragon"}, {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 = "Dragon"}, {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 = "Dragon"}, {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 = "Dragon"}, {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 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 endapos ter feito isso va 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) endAgora em data/npc adicione o seguinte arquivo:
Peter Revive.xml
agora em data/npc/scripts/ adicione o segunite arquivo
previver.lua e cole isso:
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 endagora com o script pronto vamos as explicações:
para saber informações do pet escreva:
!petinfo "magic level (informa a quantidade de ML q seu pet tm
!petinfo "mana (informa a quantidade de mana que o seu pet esta)
!petinfo "health (informa a quantidade de hp que o seu pet tem
!petsay: Este comando permite que você faça seu pet falar o que voce quer. Por exemplo: !petsay "Eu sou um demonio!.
!petcarry: Com este comando você pode fazer seu animal de estimação levar itens. O item deve ser abaixo do animal de estimação.Após isso o seu pet guardara o iten na Bolsa dele.
!pet : serve para colocar ou gradar seu pet
!petattack : serve para o seu pet ataca com uma magia(obs:o pet só ataca com as magias dele),abaixo a lista de magias que o pet pode usar
espero que isso tenha esplicado e ajudado vocês a intenderem como funcionam
tutorial feito por min
comentem ^^