• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

TalkAction Pet System v1.0

Zysen

=)
Joined
Sep 18, 2010
Messages
2,270
Reaction score
170
Location
Bosnia & Herzegovina
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:


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:
Back
Top