Zysen
=)
Hello.I just started to script,so I get an idea to make an pet script.
Original Script: http://otland.net/f81/many-my-fully-lua-pet-system-many-features-3432/
Announcement: - This is Version 1.0 -
Here we go..
Add this words to your XML talkaction file:
Add this to your OTSERV DIRECTORY where is config.lua [name it petConfig.lua]:
Now add a file in data\talkactions\scripts called pets and make an new lua file called
petinfo.lua:
petcarry.lua:
pet.lua:
and petattack.lua:
Hope I helped!
Original Script: http://otland.net/f81/many-my-fully-lua-pet-system-many-features-3432/
Announcement: - This is Version 1.0 -
Here we go..
Add this words to your XML talkaction file:
XML:
<talkaction words="!petinfo" script="pet/petinfo.lua"/>
<talkaction words="!petcarry" script="pet/!petcarry.lua"/>
<talkaction words="!pet" script="pet/pet.lua"/>
<talkaction words="!petattack" script="pet/petattack.lua"/>
Add this to your OTSERV DIRECTORY where is config.lua [name it petConfig.lua]:
Lua:
petSystemExhaustion = 1
frases = {"Wait! I am exhausted.!", "One moment please.", "Again?"}
manaGainTicks = 2000
manaGainAmmount = 10
manaGainPerLevel = 10
magicLevelRate = 2
base = 2000
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 = 5
x = 0 y = function() x = x + 1 end table.foreach(storages, y)
for i = 1, maxItems do
petItems[i] = base+x+i
end
pets =
{
["rat"] = {level = 20, expe = {1,4}, skill_level = 0, name = "rat", mana = 200, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["snake"] = {level = 20, expe = {1,5}, skill_level = 0, name = "snake", mana = 205, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["spider"] = {level = 20, expe = {2,5}, skill_level = 0, name = "spider", mana = 210, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["bat"] = {level = 20, expe = {3,6}, skill_level = 0, name = "bat", mana = 250, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["bug"] = {level = 20, expe = {3,6}, skill_level = 0, name = "bug", mana = 250, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["cave rat"] = {level = 20, expe = {3,6}, skill_level = 0, name = "cave rat", mana = 250, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["wolf"] = {level = 20, expe = {3,7}, skill_level = 0, name = "wolf", mana = 255, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["winter wolf"] = {level = 20, expe = {4,7}, skill_level = 0, name = "winter wolf", mana = 260, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["poison spider"] = {level = 20, expe = {4,8}, skill_level = 0, name = "poison spider", mana = 270, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["cobra"] = {level = 20, expe = {5,8}, skill_level = 0, name = "cobra", mana = 275, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["hyaena"] = {level = 20, expe = {5,8}, skill_level = 0, name = "hyaena", mana = 275, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["wasp"] = {level = 21, expe = {5,9}, skill_level = 0, name = "wasp", mana = 280, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["goblin"] = {level = 21, expe = {6,9}, skill_level = 0, name = "goblin", mana = 290, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["island troll"] = {level = 21, expe = {5,9}, skill_level = 0, name = "island troll", mana = 290, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["troll"] = {level = 21, expe = {5,9}, skill_level = 0, name = "troll", mana = 290, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["bear"] = {level = 21, expe = {6,9}, skill_level = 0, name = "bear", mana = 300, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["frost troll"] = {level = 21, expe = {6,9}, skill_level = 0, name = "frost troll", mana = 300, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["orc"] = {level = 22, expe = {6,9}, skill_level = 1, name = "orc", mana = 300, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["panda"] = {level = 22, expe = {6,9}, skill_level = 1, name = "panda", mana = 300, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["skeleton"] = {level = 22, expe = {6,9}, skill_level = 1, name = "skeleton", mana = 300, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["crab"] = {level = 22, expe = {6,10}, skill_level = 1, name = "crab", mana = 305, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["orc spearman"] = {level = 22, expe = {7,10}, skill_level = 1, name = "orc spearman", mana = 310, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["scorpion"] = {level = 22, expe = {7,10}, skill_level = 1, name = "scorpion", mana = 310, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["polar bear"] = {level = 22, expe = {8,10}, skill_level = 1, name = "polar bear", mana = 315, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["dwarf"] = {level = 23, expe = {8,11}, skill_level = 1, name = "dwarf", mana = 320, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["elf"] = {level = 23, expe = {8,11}, skill_level = 1, name = "elf", mana = 320, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["lion"] = {level = 23, expe = {8,11}, skill_level = 1, name = "lion", mana = 320, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["swamp troll"] = {level = 23, expe = {8,11}, skill_level = 1, name = "swamp troll", mana = 320, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["minotaur"] = {level = 23, expe = {9,11}, skill_level = 1, name = "minotaur", mana = 330, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["contipede"] = {level = 23, expe = {9,12}, skill_level = 1, name = "contipede", mana = 335, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["crocodile"] = {level = 23, expe = {11,14}, skill_level = 1, name = "crocodile", mana = 350, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["larva"] = {level = 24, expe = {12,14}, skill_level = 1, name = "larva", mana = 355, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["dwarf soldier"] = {level = 24, expe = {12,15}, skill_level = 1, name = "dwarf soldier", mana = 360, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["elf scout"] = {level = 24, expe = {12,15}, skill_level = 1, name = "elf scout", mana = 360, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["orc warrior"] = {level = 24, expe = {12,15}, skill_level = 1, name = "orc warrior", mana = 360, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["amazon"] = {level = 24, expe = {14,17}, skill_level = 2, name = "amazon", mana = 390, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["minotaur archer"] = {level = 24, expe = {14,17}, skill_level = 2, name = "minitaur archer", mana = 390, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["smuggler"] = {level = 24, expe = {14,17}, skill_level = 2, name = "smuggler", mana = 390, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["scarab"] = {level = 24, expe = {14,18}, skill_level = 2, name = "scarab", mana = 395, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["toad"] = {level = 25, expe = {15,18}, skill_level = 2, name = "toad", mana = 400, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["nomad"] = {level = 25, expe = {17,20}, skill_level = 2, name = "nomad", mana = 420, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["tiger"] = {level = 25, expe = {17,20}, skill_level = 2, name = "tiger", mana = 420, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["wild warrior"] = {level = 25, expe = {17,20}, skill_level = 2, name = "wild warrior", mana = 420, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["bandit"] = {level = 25, expe = {20,25}, skill_level = 2, name = "bandit", mana = 450, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["ghoul"] = {level = 26, expe = {20,25}, skill_level = 2, name = "ghoul", mana = 450, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["valkyrie"] = {level = 26, expe = {20,25}, skill_level = 2, name = "valkyrie", mana = 450, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["tarantula"] = {level = 26, expe = {23,27}, skill_level = 2, name = "tarantula", mana = 485, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["cyclops"] = {level = 26, expe = {24,28}, skill_level = 2, name = "cyclops", mana = 490, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["frost giantess"] = {level = 26, expe = {24,28}, skill_level = 2, name = "frost giantess", mana = 490, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["blood crab"] = {level = 27, expe = {26,29}, skill_level = 2, name = "blood crab", mana = 505, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["fire devil"] = {level = 27, expe = {28,31}, skill_level = 2, name = "fire devil", mana = 530, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["minotaur guard"] = {level = 27, expe = {30,35}, skill_level = 2, name = "minotaur guard", mana = 550, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["orc berserker"] = {level = 28, expe = {33,38}, skill_level = 3, name = "orc berserker", mana = 590, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["stone golem"] = {level = 28, expe = {33,38}, skill_level = 3, name = "stone golem", mana = 590, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["monk"] = {level = 28, expe = {34,40}, skill_level = 3, name = "monk", mana = 600, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["demon skeleton"] = {level = 28, expe = {36,41}, skill_level = 3, name = "demon skeleton", mana = 620, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["orc leader"] = {level = 29, expe = {38,44}, skill_level = 3, name = "orc leader", mana = 640, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["dwarf guard"] = {level = 29, expe = {39,46}, skill_level = 3, name = "dwarf guard", mana = 650, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["fire elemental"] = {level = 29, expe = {43,50}, skill_level = 3, name = "fire elemental", mana = 690, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["gozzler"] = {level = 35, expe = {56,65}, skill_level = 4, name = "gozzler", mana = 800, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["sibang"] = {level = 26, expe = {22,26}, skill_level = 2, name = "sibang", mana = 475, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["kongra"] = {level = 26, expe = {24,28}, skill_level = 2, name = "kongra", mana = 490, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["merklin"] = {level = 27, expe = {29,32}, skill_level = 2, name = "merklin", mana = 535, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["lizard sentinel"] = {level = 26, expe = {22,25}, skill_level = 2, name = "lizard sentinel", mana = 470, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["lizard templar"] = {level = 27, expe = {25,29}, skill_level = 2, name = "lizard templar", mana = 495, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["lizard snakecharmer"] = {level = 28, expe = {37,42}, skill_level = 3, name = "lizard snakecharmer", mana = 625, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["novice of the cult"] = {level = 26, expe = {24,27}, skill_level = 2, name = "novice of the cult", mana = 485, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["witch"] = {level = 28, expe = {36,40}, skill_level = 3, name = "witch", mana = 615, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["hunter"] = {level = 27, expe = {28,31}, skill_level = 2, name = "hunter", mana = 530, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["acolyte of the cult"] = {level = 28, expe = {54,63}, skill_level = 4, name = "acolyte of the cult", mana = 595, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["adept of the cult"] = {level = 29, expe = {59,68}, skill_level = 4, name = "adept of the cult", mana = 675, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["necromancer"] = {level = 52, expe = {83,98}, skill_level = 6, name = "necromancer", mana = 1420, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["hero"] = {level = 68, expe = {127,199}, skill_level = 7, name = "hero", mana = 1755, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["black knight"] = {level = 96, expe = {169,201}, skill_level = 8, name = "black knight", mana = 2560, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["warlock"] = {level = 145, expe = {337,415}, skill_level = 10, name = "warlock", mana = 4595, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["orc shaman"] = {level = 28, expe = {34,40}, skill_level = 3, name = "orc shaman", mana = 600, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["orc rider"] = {level = 26, expe = {24,28}, skill_level = 2, name = "orc rider", mana = 490, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["vampire"] = {level = 35, expe = {67,84}, skill_level = 5, name = "vampire", mana = 725, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["bonebeast"] = {level = 37, expe = {71,90}, skill_level = 5, name = "bonebeast", mana = 790, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["lich"] = {level = 53, expe = {118,184}, skill_level = 6, name = "lich", mana = 1555, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["banshee"] = {level = 70, expe = {138,210}, skill_level = 7, name = "banshee", mana = 1850, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["behemoth"] = {level = 150, expe = {379,453}, skill_level = 10, name = "behemoth", mana = 4800, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["beholder"] = {level = 26, expe = {25,29}, skill_level = 2, name = "beholder", mana = 500, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["elder beholder"] = {level = 31, expe = {55,63}, skill_level = 4, name = "elder beholder", mana = 715, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["water elemental"] = {level = 32, expe = {59,68}, skill_level = 4, name = "water elemental", mana = 755, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["dragon"] = {level = 40, expe = {66,85}, skill_level = 5, name = "dragon", mana = 1195, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["wyvern"] = {level = 36, expe = {60,78}, skill_level = 4, name = "wyvern", mana = 950, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["serpent spawn"] = {level = 100, expe = {279,437}, skill_level = 9, name = "serpent spawn", mana = 3790, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["dragon lord"] = {level = 80, expe = {160,198}, skill_level = 8, name = "dragon lord", mana = 2490, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["hydra"] = {level = 84, expe = {172,211}, skill_level = 8, name = "hydra", mana = 2645, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["demon"] = {level = 150, expe = {398,487}, skill_level = 10, name = "demon", mana = 5255, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["giant spider"] = {level = 50, expe = {115,174}, skill_level = 6, name = "giant spider", mana = 1500, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["wailing widow"] = {level = 38, expe = {64,83}, skill_level = 5, name = "wailing widow", mana = 1050, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["ancient scarab"] = {level = 42, expe = {67,88}, skill_level = 5, name = "ancient scarab", mana = 1200, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["lancer beetle"] = {level = 30, expe = {41,49}, skill_level = 3, name = "lancer beetle", mana = 670, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["nightmare"] = {level = 84, expe = {198,364}, skill_level = 9, name = "nightmare", mana = 3000, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["nightmare scion"] = {level = 58, expe = {131,200}, skill_level = 7, name = "nightmare scion", mana = 1790, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["bog raider"] = {level = 55, expe = {128,190}, skill_level = 6, name = "bog raider", mana = 1650, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["ice golem"] = {level = 32, expe = {47,54}, skill_level = 4, name = "ice golem", mana = 725, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["ice witch"] = {level = 54, expe = {118,184}, skill_level = 6, name = "ice witch", mana = 1555, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["infernalist"] = {level = 130, expe = {327,395}, skill_level = 10, name = "infernalist", mana = 4395, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["mutated bat"] = {level = 37, expe = {65,85}, skill_level = 5, name = "mutated bat", mana = 1085, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["mutated human"] = {level = 30, expe = {34,40}, skill_level = 3, name = "mutated human", mana = 600, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["mutated rat"] = {level = 34, expe = {62,79}, skill_level = 4, name = "mutated rat", mana = 965, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["mutated tiger"] = {level = 39, expe = {66,90}, skill_level = 5, name = "mutated tiger", mana = 1345, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["frost dragon"] = {level = 84, expe = {163,201}, skill_level = 8, name = "frost dragon", mana = 2525, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["ghastly dragon"] = {level = 150, expe = {388,477}, skill_level = 10, name = "ghastly dragon", mana = 5125, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["undead dragon"] = {level = 160, expe = {404,510}, skill_level = 10, name = "undead dragon", mana = 6255, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["wyrm"] = {level = 79, expe = {148,223}, skill_level = 7, name = "wyrm", mana = 1940, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["sea serpent"] = {level = 87, expe = {195,358}, skill_level = 8, name = "sea serpent", mana = 2915, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["spectre"] = {level = 94, expe = {219,391}, skill_level = 9, name = "spectre", mana = 3590, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["undead gladiator"] = {level = 46, expe = {70,91}, skill_level = 6, name = "undead gladiator", mana = 1365, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["vampire bride"] = {level = 49, expe = {116,184}, skill_level = 6, name = "vampire bride", mana = 1545, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}},
["grim reaper"] = {level = 110, expe = {310,375}, skill_level = 9, name = "grim reaper", mana = 3980, voc = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}}
}}
}
}
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
if(param == '') then
doPlayerSendCancel(cid, "This monster does not exist.")
doSendMagicEffect(pos, CONST_ME_POFF)
return true
end
local max_summons = 2
local summ = summons[tostring(param)]
local rand = math.random(summ.expe[1], summ.expe[2])
if summ then
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
Now add a file in data\talkactions\scripts called pets and make an new lua file called
petinfo.lua:
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 have/n't call your pet!')
end
return setExhausted(cid)
end
petcarry.lua:
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*1000+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,my master!', TALKTYPE_ORANGE_1)
end
else
doCreatureSay(daPet, 'I can\'t take containers!', TALKTYPE_ORANGE_1)
end
else
doCreatureSay(daPet, 'I haven\'t see any item master!', TALKTYPE_ORANGE_1)
end
else
doPlayerSendCancel(cid, 'You haven\'t call your pet!')
end
return setExhausted(cid)
end
pet.lua:
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 my master!', TALKTYPE_ORANGE_1)
addMana({cid = cid})
setPlayerStorageValue(cid, storages.petIsOnline, 2)
else
doPlayerSendCancel(cid, 'Not enought room.')
end
else
doPlayerSendCancel(cid, 'Your pet died! Revieve it!')
end
else
doPlayerSendCancel(cid, 'You cannot summon your pet in protection zone.')
end
else
local daPet = getPlayerStorageValue(cid, storages.petUid)
setPlayerStorageValue(cid, storages.petDamage, getCreatureMaxHealth(daPet) - getCreatureHealth(daPet))
doCreatureSay(daPet, 'Bye my master', TALKTYPE_ORANGE_1)
setPlayerStorageValue(cid, storages.petIsOnline, 1)
doSendMagicEffect(getCreaturePosition(daPet), CONST_ME_POFF)
doRemoveCreature(daPet)
end
return setExhausted(cid)
end
and petattack.lua:
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)) 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*magicLevelRate)
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 ML is too low!', TALKTYPE_ORANGE_1)
end
else
doCreatureSay(daPet, 'I am out of mana!', TALKTYPE_ORANGE_1)
end
else
doCreatureSay(daPet, 'Master,I can't use this spell yet!', TALKTYPE_ORANGE_1)
end
else
end
else
doPlayerSendCancel(cid, 'You must spesific a spell.')
end
else
doPlayerSendCancel(cid, 'You haven\'t call your pet!.')
end
return setExhausted(cid)
end
Hope I helped!
Last edited: