Jump to content

pet.summon problem 34-40k


Recommended Posts

Hello everyone,

 

I have a problem and also a question.

 

I use this pet system:

 

pet_system_lv.lua:

QuestFolder = get_locale_base_path().."/quest/"

-- Classe 
PetSystem = {['Folder'] = QuestFolder.."io/pet/", ['ItemExp'] = 4000000, ['UpdateFrequency'] = 30, ['Flag'] = "active_pet", ['ExpFlag'] = "exp_blocked"}
-- Pet 1
PetSystem[1] = 
			{['Name'] = "Ates Ankasi", ['Level'] = 22, ['Item'] = 53001, ['MaxLevel'] = 99, ['WindowSize'] = 395,
			 ['Skill']= {
						{['type']=apply.MAX_HP,['name']="Max HP",['max_points']=20,['min_level']=1,['desc']="+100HP",['mult']=100,['tag']=" HP"},
						{['type']=apply.INT,['name']="Zeka",['max_points']=10,['min_level']=1,['desc']="+1 INT",['mult']=1,['tag']=" Zeka"},
						{['type']=apply.STR,['name']="Guc",['max_points']=10,['min_level']=1,['desc']="+1 STR",['mult']=1,['tag']=" Guc"},
						{['type']=apply.DEX,['name']="Ceviklik",['max_points']=10,['min_level']=1,['desc']="+1 DEX",['mult']=1,['tag']=" Ceviklik"},						
						{['type']=apply.PENETRATE_PCT,['name']="Delici vurus",['max_points']=15,['min_level']=60,['desc']="+1% Delici vurus",['mult']=1,['tag']="% Delici"},
						{['type']=apply.CRITICAL_PCT,['name']="Kritik vurus",['max_points']=15,['min_level']=80,['desc']="+1% Kritik vurus",['mult']=1,['tag']="% Kritik"},
						{['type']=apply.ATTBONUS_MONSTER,['name']="Canavarlara karsi guc",['max_points']=10,['min_level']=90,['desc']="+1% Canavara karsi guc",['mult']=1,['tag']="% Canavarlara karsi guc"},
						{['type']=apply.MOV_SPEED,['name']="Hareket hizi'",['max_points']=10,['min_level']=90,['desc']="+1% Buyu hizi",['mult']=1,['tag']="% Hareket hizi"}
						},
			 ['ExpTable'] = {300,600,900,1200,1500,1800,2100,2400,2700,3000,		-- Liv 1-10 
							 3300,3600,3900,4200,4500,4800,5100,5400,5700,6000,		-- Liv 11-20 
							 6300,6600,6900,7200,7500,7800,8100,8400,8700,9000,		-- Liv 21-30
							 9300,9600,9900,10200,10500,10800,11100,11400,11700,12000,		-- Liv 31-40
							 12300,12600,12900,13200,13500,13800,14100,14400,14700,15000,		-- Liv 41-50
							 15300,15600,15900,16200,16500,16800,17100,17400,17700,18000,		-- Liv 51-60
							 18300,18600,18900,19200,19500,19800,20100,20400,20700,21000,		-- Liv 61-70
							 21300,21600,21900,22200,22500,22800,23100,23400,23700,24000,		-- Liv 71-80
							 24300,24600,24900,25200,25500,25800,26100,26400,26700,27000,		-- Liv 81-90
							 27300,27600,27900,28200,28500,28800,29100,29400,29700,30000,		-- Liv 91-100
							 30300,30600,30900,31200,31500,31800,32100,32400,32700,0			-- Liv 101-110
							}
			}
-- Pet 2
PetSystem[2] = 
			{['Name'] = "Buz Ankasi", ['Level'] = 23, ['Item'] = 53002, ['MaxLevel'] = 99, ['WindowSize'] = 395,
			 ['Skill']= {
						{['type']=apply.MAX_HP,['name']="Max HP",['max_points']=30,['min_level']=1,['desc']="+100HP",['mult']=100,['tag']=" HP"},
						{['type']=apply.INT,['name']="Zeka",['max_points']=15,['min_level']=1,['desc']="+1 INT",['mult']=1,['tag']=" Zeka"},
						{['type']=apply.STR,['name']="Guc",['max_points']=15,['min_level']=1,['desc']="+1 STR",['mult']=1,['tag']=" Guc"},
						{['type']=apply.DEX,['name']="Ceviklik",['max_points']=15,['min_level']=1,['desc']="+1 DEX",['mult']=1,['tag']=" Ceviklik"},
						{['type']=apply.PENETRATE_PCT,['name']="Delici vurus",['max_points']=15,['min_level']=30,['desc']="+1% Delici vurus",['mult']=1,['tag']="% Delici"},
						{['type']=apply.CRITICAL_PCT,['name']="Kritik vurus",['max_points']=15,['min_level']=60,['desc']="+1% Kritik vurus",['mult']=1,['tag']="% Kritik"},
						{['type']=apply.ATTBONUS_MONSTER,['name']="Canavarlara karsi guc",['max_points']=10,['min_level']=90,['desc']="+1% Canavara karsi guc",['mult']=1,['tag']="% Canavarlara karsi guc"}
						},
			 ['ExpTable'] = {300,600,900,1200,1500,1800,2100,2400,2700,3000,		-- Liv 1-10
							 3300,3600,3900,4200,4500,4800,5100,5400,5700,6000,		-- Liv 11-20
							 6300,6600,6900,7200,7500,7800,8100,8400,8700,9000,		-- Liv 21-30
							 9300,9600,9900,10200,10500,10800,11100,11400,11700,12000,		-- Liv 31-40
							 12300,12600,12900,13200,13500,13800,14100,14400,14700,15000,		-- Liv 41-50
							 15300,15600,15900,16200,16500,16800,17100,17400,17700,18000,		-- Liv 51-60
							 18300,18600,18900,19200,19500,19800,20100,20400,20700,21000,		-- Liv 61-70
							 21300,21600,21900,22200,22500,22800,23100,23400,23700,24000,		-- Liv 71-80
							 24300,24600,24900,25200,25500,25800,26100,26400,26700,27000,		-- Liv 81-90
							 27300,27600,27900,28200,28500,28800,29100,29400,29700,30000,		-- Liv 91-100
							 30300,30600,30900,31200,31500,31800,32100,32400,32700,0			-- Liv 101-110
							}
			}	
-- Pet 3
PetSystem[3] = 
			{['Name'] = "Bambi", ['Level'] = 24, ['Item'] = 53003, ['MaxLevel'] = 99, ['WindowSize'] = 395,
			 ['Skill']= {
						{['type']=apply.MAX_HP,['name']="Max HP",['max_points']=20,['min_level']=1,['desc']="+100HP",['mult']=100,['tag']=" HP"},
						{['type']=apply.INT,['name']="Zeka",['max_points']=10,['min_level']=1,['desc']="+1 INT",['mult']=1,['tag']=" Zeka"},
						{['type']=apply.STR,['name']="Guc",['max_points']=10,['min_level']=1,['desc']="+1 STR",['mult']=1,['tag']=" Guc"},
						{['type']=apply.DEX,['name']="Ceviklik",['max_points']=10,['min_level']=1,['desc']="+1 DEX",['mult']=1,['tag']=" Ceviklik"},
						{['type']=apply.STEAL_HP,['name']="HP emilimi",['max_points']=10,['min_level']=30,['min_level']=30,['desc']="+1% ass. HP",['mult']=1,['tag']="% Hp Emilimi"},
						{['type']=apply.PENETRATE_PCT,['name']="Delici vurus",['max_points']=10,['min_level']=30,['desc']="+1% Delici vurus",['mult']=1,['tag']="% Delici"},
						{['type']=apply.CRITICAL_PCT,['name']="Kritik vurus",['max_points']=10,['min_level']=60,['desc']="+1% Kritik vurus",['mult']=1,['tag']="% Kritik"},
						{['type']=apply.ATTBONUS_MONSTER,['name']="Canavarlara karsi guc",['max_points']=10,['min_level']=60,['desc']="+1% Canavara karsi guc",['mult']=1,['tag']="% Canavarlara karsi guc"}
						},
			 ['ExpTable'] = {300,600,900,1200,1500,1800,2100,2400,2700,3000,		-- Liv 1-10
							 3300,3600,3900,4200,4500,4800,5100,5400,5700,6000,		-- Liv 11-20
							 6300,6600,6900,7200,7500,7800,8100,8400,8700,9000,		-- Liv 21-30
							 9300,9600,9900,10200,10500,10800,11100,11400,11700,12000,		-- Liv 31-40
							 12300,12600,12900,13200,13500,13800,14100,14400,14700,15000,		-- Liv 41-50
							 15300,15600,15900,16200,16500,16800,17100,17400,17700,18000,		-- Liv 51-60
							 18300,18600,18900,19200,19500,19800,20100,20400,20700,21000,		-- Liv 61-70
							 21300,21600,21900,22200,22500,22800,23100,23400,23700,24000,		-- Liv 71-80
							 24300,24600,24900,25200,25500,25800,26100,26400,26700,27000,		-- Liv 81-90
							 27300,27600,27900,28200,28500,28800,29100,29400,29700,30000,		-- Liv 91-100
							 30300,30600,30900,31200,31500,31800,32100,32400,32700,0			-- Liv 101-110
							}
			}
-- Pet 4
PetSystem[4] = 
			{['Name'] = "Minik Azrail", ['Level'] = 25, ['Item'] = 53004, ['MaxLevel'] = 99, ['WindowSize'] = 395,
			 ['Skill']= {
						{['type']=apply.MAX_HP,['name']="Max HP",['max_points']=30,['desc']="+100HP",['mult']=100,['tag']=" HP"},
						{['type']=apply.RESBONUS_WARRIOR,['name']="Savasciya savunma",['max_points']=10,['desc']="+1% res. guerrier",['mult']=1,['tag']="% Savasciya savunma"},
						{['type']=apply.RESBONUS_ASSASSIN,['name']="ninjaya savunma",['max_points']=10,['desc']="+1% res. ninja",['mult']=1,['tag']="% ninjaya savunma"},
						{['type']=apply.RESBONUS_SURA,['name']="Suraya savunma",['max_points']=10,['desc']="+1% res. sura",['mult']=1,['tag']="% Suraya savunma"},
						{['type']=apply.RESBONUS_SHAMAN,['name']="Samana savunma",['max_points']=10,['desc']="+1% res. shaman",['mult']=1,['tag']="% Samana savunma"},
						{['type']=apply.CAST_SPEED,['name']="Buyu hizi",['max_points']=15,['desc']="+1% vit. magique",['mult']=1,['tag']="% Buyu hizi"},
						{['type']=apply.ATTBONUS_HUMAN,['name']="Yari-insanlara karsi guc",['max_points']=10,['desc']="+1% DH",['mult']=1,['tag']="% Yari-insanlara karsi guc"}		
						},
			 ['ExpTable'] = {300,600,900,1200,1500,1800,2100,2400,2700,3000,		-- Liv 1-10
							 3300,3600,3900,4200,4500,4800,5100,5400,5700,6000,		-- Liv 11-20
							 6300,6600,6900,7200,7500,7800,8100,8400,8700,9000,		-- Liv 21-30
							 9300,9600,9900,10200,10500,10800,11100,11400,11700,12000,		-- Liv 31-40
							 12300,12600,12900,13200,13500,13800,14100,14400,14700,15000,		-- Liv 41-50
							 15300,15600,15900,16200,16500,16800,17100,17400,17700,18000,		-- Liv 51-60
							 18300,18600,18900,19200,19500,19800,20100,20400,20700,21000,		-- Liv 61-70
							 21300,21600,21900,22200,22500,22800,23100,23400,23700,24000,		-- Liv 71-80
							 24300,24600,24900,25200,25500,25800,26100,26400,26700,27000,		-- Liv 81-90
							 27300,27600,27900,28200,28500,28800,29100,29400,29700,30000,		-- Liv 91-100
							 30300,30600,30900,31200,31500,31800,32100,32400,32700,0			-- Liv 101-110
							}
			}
-- Pet 5
PetSystem[5] = 
			{['Name'] = "Rufus", ['Level'] = 26, ['Item'] = 53005, ['MaxLevel'] = 99, ['WindowSize'] = 395,
			 ['Skill']= {
						{['type']=apply.MAX_HP,['name']="Max HP",['max_points']=30,['min_level']=1,['desc']="+100HP",['mult']=100,['tag']=" HP"},
						{['type']=apply.RESBONUS_WARRIOR,['name']="Savasciya savunma",['max_points']=15,['min_level']=20,['desc']="+1% res. guerrier",['mult']=1,['tag']="% Savasciya savunma"},
						{['type']=apply.ATTBONUS_WARRIOR,['name']="Savasciya karsi guc",['max_points']=15,['min_level']=20,['desc']="+1 att. contre guerrier",['mult']=1,['tag']="% Savasciya karsi guc"},
						{['type']=apply.CAST_SPEED,['name']="Buyu hizi",['max_points']=20,['min_level']=40,['desc']="+1% vit. magique",['mult']=1,['tag']="% Buyu hizi"},
						{['type']=apply.ATTBONUS_HUMAN,['name']="Yari-insanlara karsi guc",['max_points']=10,['min_level']=60,['desc']="+1% DH",['mult']=1,['tag']="% Yari-insanlara karsi guc"}
						},
			 ['ExpTable'] = {300,600,900,1200,1500,1800,2100,2400,2700,3000,		-- Liv 1-10
							 3300,3600,3900,4200,4500,4800,5100,5400,5700,6000,		-- Liv 11-20
							 6300,6600,6900,7200,7500,7800,8100,8400,8700,9000,		-- Liv 21-30
							 9300,9600,9900,10200,10500,10800,11100,11400,11700,12000,		-- Liv 31-40
							 12300,12600,12900,13200,13500,13800,14100,14400,14700,15000,		-- Liv 41-50
							 15300,15600,15900,16200,16500,16800,17100,17400,17700,18000,		-- Liv 51-60
							 18300,18600,18900,19200,19500,19800,20100,20400,20700,21000,		-- Liv 61-70
							 21300,21600,21900,22200,22500,22800,23100,23400,23700,24000,		-- Liv 71-80
							 24300,24600,24900,25200,25500,25800,26100,26400,26700,27000,		-- Liv 81-90
							 27300,27600,27900,28200,28500,28800,29100,29400,29700,30000,		-- Liv 91-100
							 30300,30600,30900,31200,31500,31800,32100,32400,32700,0			-- Liv 101-110
							}
			}
-- Pet 6
PetSystem[6] = 
			{['Name'] = "Leonidas", ['Level'] = 27, ['Item'] = 53006, ['MaxLevel'] = 99, ['WindowSize'] = 395,
			 ['Skill']= {
						{['type']=apply.MAX_HP,['name']="Max HP",['max_points']=30,['min_level']=1,['desc']="+100HP",['mult']=100,['tag']=" HP"},
						{['type']=apply.RESBONUS_ASSASSIN,['name']="Ninjaya savunma",['max_points']=15,['min_level']=20,['desc']="+1% res. ninja",['mult']=1,['tag']="% Ninjaya savunma"},
						{['type']=apply.ATTBONUS_ASSASSIN,['name']="Ninjaya karsi guc",['max_points']=15,['min_level']=20,['desc']="+1 att. contre ninja",['mult']=1,['tag']="% Ninjaya karsi guc"},
						{['type']=apply.CAST_SPEED,['name']="Buyu hizi",['max_points']=20,['min_level']=40,['desc']="+1% vit. magique",['mult']=1,['tag']="% Buyu hizi"},
						{['type']=apply.ATTBONUS_HUMAN,['name']="Yari-insanlara karsi guc",['max_points']=10,['min_level']=60,['desc']="+1% DH",['mult']=1,['tag']="% Yari-insanlara karsi guc"}
						},
			 ['ExpTable'] = {300,600,900,1200,1500,1800,2100,2400,2700,3000,		-- Liv 1-10
							 3300,3600,3900,4200,4500,4800,5100,5400,5700,6000,		-- Liv 11-20
							 6300,6600,6900,7200,7500,7800,8100,8400,8700,9000,		-- Liv 21-30
							 9300,9600,9900,10200,10500,10800,11100,11400,11700,12000,		-- Liv 31-40
							 12300,12600,12900,13200,13500,13800,14100,14400,14700,15000,		-- Liv 41-50
							 15300,15600,15900,16200,16500,16800,17100,17400,17700,18000,		-- Liv 51-60
							 18300,18600,18900,19200,19500,19800,20100,20400,20700,21000,		-- Liv 61-70
							 21300,21600,21900,22200,22500,22800,23100,23400,23700,24000,		-- Liv 71-80
							 24300,24600,24900,25200,25500,25800,26100,26400,26700,27000,		-- Liv 81-90
							 27300,27600,27900,28200,28500,28800,29100,29400,29700,30000,		-- Liv 91-100
							 30300,30600,30900,31200,31500,31800,32100,32400,32700,0			-- Liv 101-110
							}
			}
-- Pet 7
PetSystem[7] = 
			{['Name'] = "Porki", ['Level'] = 28, ['Item'] = 53007, ['MaxLevel'] = 99, ['WindowSize'] = 395,
			 ['Skill']= {
						{['type']=apply.MAX_HP,['name']="Max HP",['max_points']=30,['min_level']=1,['desc']="+100HP",['mult']=100,['tag']=" HP"},
						{['type']=apply.RESBONUS_SURA,['name']="Suraya savunma",['max_points']=15,['min_level']=20,['desc']="+1% res. sura",['mult']=1,['tag']="% Suraya savunma"},
						{['type']=apply.ATTBONUS_SURA,['name']="Suraya karsi guc",['max_points']=15,['min_level']=20,['desc']="+1 att. contre sura",['mult']=1,['tag']="% Suraya karsi guc"},
						{['type']=apply.CAST_SPEED,['name']="Buyu hizi",['max_points']=20,['min_level']=40,['desc']="+1% vit. magique",['mult']=1,['tag']="% Buyu hizi"},
						{['type']=apply.ATTBONUS_HUMAN,['name']="Yari-insanlara karsi guc",['max_points']=10,['min_level']=60,['desc']="+1% DH",['mult']=1,['tag']="% Yari-insanlara karsi guc"}
						},
			 ['ExpTable'] = {300,600,900,1200,1500,1800,2100,2400,2700,3000,		-- Liv 1-10
							 3300,3600,3900,4200,4500,4800,5100,5400,5700,6000,		-- Liv 11-20
							 6300,6600,6900,7200,7500,7800,8100,8400,8700,9000,		-- Liv 21-30
							 9300,9600,9900,10200,10500,10800,11100,11400,11700,12000,		-- Liv 31-40
							 12300,12600,12900,13200,13500,13800,14100,14400,14700,15000,		-- Liv 41-50
							 15300,15600,15900,16200,16500,16800,17100,17400,17700,18000,		-- Liv 51-60
							 18300,18600,18900,19200,19500,19800,20100,20400,20700,21000,		-- Liv 61-70
							 21300,21600,21900,22200,22500,22800,23100,23400,23700,24000,		-- Liv 71-80
							 24300,24600,24900,25200,25500,25800,26100,26400,26700,27000,		-- Liv 81-90
							 27300,27600,27900,28200,28500,28800,29100,29400,29700,30000,		-- Liv 91-100
							 30300,30600,30900,31200,31500,31800,32100,32400,32700,0			-- Liv 101-110
							}
			}
-- Pet 8
PetSystem[8] = 
			{['Name'] = "Khan", ['Level'] = 29, ['Item'] = 53008, ['MaxLevel'] = 99, ['WindowSize'] = 395,
			 ['Skill']= {
						{['type']=apply.MAX_HP,['name']="Max HP",['max_points']=30,['min_level']=1,['desc']="+100HP",['mult']=100,['tag']=" HP"},
						{['type']=apply.RESBONUS_SHAMAN,['name']="Samana savunma",['max_points']=15,['min_level']=20,['desc']="+1% res. shaman",['mult']=1,['tag']="% Samana savunma"},
						{['type']=apply.ATTBONUS_SHAMAN,['name']="Samana karsi guc",['max_points']=15,['min_level']=20,['desc']="+1 att. contre shaman",['mult']=1,['tag']="% Samana karsi guc"},
						{['type']=apply.CAST_SPEED,['name']="Buyu hizi",['max_points']=20,['min_level']=40,['desc']="+1% vit. magique",['mult']=1,['tag']="% Buyu hizi"},
						{['type']=apply.ATTBONUS_HUMAN,['name']="Yari-insanlara karsi guc",['max_points']=10,['min_level']=60,['desc']="+1% DH",['mult']=1,['tag']="% Yari-insanlara karsi guc"}
						},
			 ['ExpTable'] = {300,600,900,1200,1500,1800,2100,2400,2700,3000,		-- Liv 1-10
							 3300,3600,3900,4200,4500,4800,5100,5400,5700,6000,		-- Liv 11-20
							 6300,6600,6900,7200,7500,7800,8100,8400,8700,9000,		-- Liv 21-30
							 9300,9600,9900,10200,10500,10800,11100,11400,11700,12000,		-- Liv 31-40
							 12300,12600,12900,13200,13500,13800,14100,14400,14700,15000,		-- Liv 41-50
							 15300,15600,15900,16200,16500,16800,17100,17400,17700,18000,		-- Liv 51-60
							 18300,18600,18900,19200,19500,19800,20100,20400,20700,21000,		-- Liv 61-70
							 21300,21600,21900,22200,22500,22800,23100,23400,23700,24000,		-- Liv 71-80
							 24300,24600,24900,25200,25500,25800,26100,26400,26700,27000,		-- Liv 81-90
							 27300,27600,27900,28200,28500,28800,29100,29400,29700,30000,		-- Liv 91-100
							 30300,30600,30900,31200,31500,31800,32100,32400,32700,0			-- Liv 101-110
							}
			}		
			

--**
--** Menu Pet
--**
function PetSystem.ShowMenu(PetIndex)
	if horse.is_mine() then
		local pet_menu
		if pc.getqf("exp_blocked") == 0 then
			pet_menu = {"Bilgi","Pet Becerilerini Yönet","Exp Kasmayi Kapat","Evcil Hayvan Statu","Evcil Hayvaný Gönder","Geri Dön (Menüyü Kapat)"}
		else
			pet_menu = {"Bilgi","Pet Becerilerini Yönet","Exp Kasmayi Ac","Evcil Hayvan Statu","Evcil Hayvaný Gönder","Geri Dön (Menüyü Kapat)"}
		end
		say_title("Evcil Hayvan: "..PetSystem[PetIndex].Name) 
		local skill_points, liv, ex = PetSystem.ReadStatus(PetIndex)
		say_light_yellow("Level: "..liv.." / "..PetSystem[PetIndex].MaxLevel.." - Skill Puaný: "..skill_points.."")
		if not PetSystem.IsExpBlocked() then
			say_light_yellow("Tecrübe: "..ex.." / "..PetSystem[PetIndex].ExpTable[liv].." (Exp Kasma Açýk)")
		else
			say_light_yellow("Tecrübe: "..ex.." / "..PetSystem[PetIndex].ExpTable[liv].." (Exp Kasma Kapalý)")
		end
		say("Ýþlemini Seç:")
		say_size(350, 330)
		local s = select_table(pet_menu)
----------********** Bilgilendirme ***********----------		
		if s == 1 then
			say_title("Bilgi")
			say("Evcil hayvanlar sizinle birlikte pesinizden ayrilmayan hayvanlardir.")
			say("Bu hayvanlar gelistirilebilir.")
			say("Levelleri yukseltilebilir.")
			say("Evcil hayvanlar level atladikca bonuslarida artar.")
			say("Bu bonuslari siz belirleyebilirsiniz.")
			say("Bonuslar her evcil hayvanda farklidir.")
			say("Evcil hayvanlar her mob kestiginizde tecrube kazanir.")
			say("Exp Kasmayi acik biraktiginiz surece exp kasmaniz mumkundur.")
			say("Aksi taktirde petiniz kasilmaz.")
----------********** Beceri Menu ***********----------			
		elseif s == 2 then
			say_title("Evcil Hayvaninin becerilerini yönet: "..PetSystem[PetIndex].Name.."")
			say_orange("Beceri puaný durumu: "..skill_points.."")
			say("[ENTER]Bir iþlem seçin:[ENTER]")
			local a = select("Beceri arttýr","Beceri azalt","iptal")
			if a == 3 then 
				return
			----------********** Beceri attir ***********----------
			elseif a == 1 then	
				say_title("Beceri arttýr'")
				if skill_points == 0 then
					say("Beceri arttýrmak için puan gereklidir.[ENTER]")
					return
				end
				local skill_value = {}
				local menu_abi = {}
				skill_value = PetSystem.LoadSkill(PetIndex)
				for i = 1, table.getn(PetSystem[PetIndex].Skill) do
					if liv >= PetSystem[PetIndex].Skill[i].min_level then
						table.insert(menu_abi, PetSystem[PetIndex].Skill[i].name..": "..skill_value[i].." puan")
					end
				end				
				table.insert(menu_abi, "iptal")
				if table.getn(menu_abi) == 1 then
					say("Bu beceriyi arttirmak mumkun degildir..[ENTER]")
					return
				end
				say("Arttýrmak için bir beceri seçin")
				say_size(350, PetSystem[PetIndex].WindowSize)			
				local s = select_table(menu_abi)
				if s == table.getn(menu_abi) then
					return			
				end
				say_title(PetSystem[PetIndex].Skill[s].name)
				say_orange("Mevcut puan: "..skill_value[s].." [ENTER]")
				if skill_value[s] == PetSystem[PetIndex].Skill[s].max_points then
					say("Yetenek maximum seviyeye ulasti.[ENTER]")
					return
				end
				say_light_blue("Her puan "..PetSystem[PetIndex].Skill[s].desc.." vermektedir.")
				say_light_blue("Bu yetenege max. "..PetSystem[PetIndex].Skill[s].max_points.." puan verebilirsiniz[ENTER]")
				local a = select("arttir", "iptal")
				if a == 2 then
					return
				end
				say_title(PetSystem[PetIndex].Skill[s].name)
				say("Yetenege verebileceginiz maximum puani goz onunde bulundurarak rakamla yaziniz[ENTER]")
				say("Bu beceriyi kac puan yukseltmek istersiniz ?(Rakam girin)[ENTER]")
				local points = tonumber(input())
				say_title(PetSystem[PetIndex].Skill[s].name)
				if points == nil or points < 1 then
					say("Gecersiz bir deger girdiniz.[ENTER]")
					return
				elseif points > skill_points then
					say("Yeterli yetenek puani yok[ENTER]")
					return
				elseif (skill_value[s]+points) > PetSystem[PetIndex].Skill[s].max_points then
					say("Secilen beceri icin girdiginiz"..points.." puan gecersiz,")
					say("beceriye verilebilecek maximum puana bir goz atin.")
					say("Daha kucuk degerler kullanin.[ENTER]")
					return
				end
				skill_value[s] = skill_value[s]+points
				PetSystem.ChangeSkillPoints(PetIndex, -points)
				PetSystem.SaveSkill(PetIndex, skill_value)
				PetSystem.AddBonus(PetIndex)
				say("Yetenek arttirma basarili[ENTER]")
			----------********** Beceri azaltma ***********----------
			elseif a == 2 then
				say_title("Beceri Azalt")
				local skill_value = {}
				local menu_abi = {}
				skill_value = PetSystem.LoadSkill(PetIndex)
				for i = 1, table.getn(PetSystem[PetIndex].Skill) do
					if liv >= PetSystem[PetIndex].Skill[i].min_level then
						table.insert(menu_abi, PetSystem[PetIndex].Skill[i].name..": "..skill_value[i].." puan")
					end
				end
				table.insert(menu_abi, "iptal")
				if table.getn(menu_abi) == 1 then
					say("Bu becerinin azalmasi mumkun degildir[ENTER]")
					return
				end				
				say("Azaltmak istedigin beceriyi sec")
				say_size(350, PetSystem[PetIndex].WindowSize)				
				local s = select_table(menu_abi)
				if s == table.getn(menu_abi) then
					return			
				end		
				say_title(PetSystem[PetIndex].Skill[s].name)
				say_orange("Suanki yetenek puani: "..skill_value[s].."")
				if skill_value[s] == 0 then
					say("Beceri zaten 0 oldugu icin azaltamazsin[ENTER]")
					return
				end
				say("Ne yapmak istersiniz[ENTER]")
				local b = select("1 puan sil","tum puanlari sil","iptal")
				if b == 3 then
					return
				elseif b == 1 then
					say_title(PetSystem[PetIndex].Skill[s].name)
					say("Evcil hayvaninizin yeteneginden 1 puan")
					say("silmek istediginden emin misiniz?[ENTER]")
					local c = select("Evet","Hayir")
					if c == 2 then
						return
					end
					PetSystem.ChangeSkillPoints(PetIndex, 1)
					skill_value[s] = skill_value[s]-1
					PetSystem.SaveSkill(PetIndex, skill_value)
					PetSystem.AddBonus(PetIndex)
					say_title(PetSystem[PetIndex].Skill[s].name)
					say("Pet yeteneginden 1 puan cikarilmistir.[ENTER]")					
				elseif b == 2 then
					say_title(PetSystem[PetIndex].Skill[s].name)
					say("Bu yetenek puanlarini sifira indirmek istediginizden emin misiniz ?[ENTER]")
					local c = select("Evet","Hayir")
					if c == 2 then
						return
					end
					PetSystem.ChangeSkillPoints(PetIndex, skill_value[s])
					skill_value[s] = 0
					PetSystem.SaveSkill(PetIndex, skill_value)
					PetSystem.AddBonus(PetIndex)
					say_title(PetSystem[PetIndex].Skill[s].name)
					say("Sectiginiz becerinin puani sifira indi.[ENTER]")					
				end
			end	
----------********** Exp Bloklama/blogu kaldirma ***********----------
		elseif s == 3 then
			if not PetSystem.IsExpBlocked() then
				say_title("Exp kasmayi kapat")
				say("Exp kasmayi kapat")
				say("Eger exp kasmayi kapatirsan evcil hayvanin exp kazanmaz[ENTER]")
				local a = select("kapat","vazgec")
				if a == 2 then
					return
				end
				say_title("Exp kasmayi kapattin")
				say("Evcil hayvaniniz artik exp kazanmayacak.[ENTER]")
				PetSystem.BlockExp()
			else
				say_title("Exp kasmayi ac")
				say("Exp kasmayi acmak istermisiniz[ENTER]")
				local a = select("Evet","Hayir")
				if a == 2 then
					return
				end
				say_title("Exp Kasma Acik")
				say("Evcil hayvaniniz artik exp kazanabilir.[ENTER]")
				PetSystem.UnblockExp()
				pc.setqf("current_exp", pc.get_exp())
			end
----------********** pet statusu ***********----------
		elseif s == 4 then
			local skill_value = {}
			skill_value = PetSystem.LoadSkill(PetIndex)		
			say_title("Guclendirilmis durum' - Pet "..PetSystem[PetIndex].Name.."")
			say_light_blue("Saglik: "..horse.get_health_pct().."%")
			say("")
			for i = 1, table.getn(PetSystem[PetIndex].Skill) do
				if liv >= PetSystem[PetIndex].Skill[i].min_level then
					local total = skill_value[i]*PetSystem[PetIndex].Skill[i].mult
					say_light_yellow(PetSystem[PetIndex].Skill[i].name..": level "..skill_value[i]..". Bonus: "..total..PetSystem[PetIndex].Skill[i].tag)
				end
			end
			say("")	
----------********** Peti geri gonderme ***********----------			
		elseif s == 5 then
			PetSystem.PetBack()				
		elseif s == 6 then
			return
		end
	end
end

--**
--** Peti geri gonderme
--**
function PetSystem.PetBack()
	cleartimer("give_exp")
	pet.unsummon()	
	PetSystem.RemoveBonus()
	PetSystem.SetInactive()	
	chat("Evcil Hayvanini Gonderdin")
end
				
--**
--** Pet yetenekleri
--**
function PetSystem.LoadSkill(PetIndex)
	local FileName = PetSystem.Folder..pc.get_name().."_"..PetSystem[PetIndex].Name.."_skills"
	local PetSkill = {}
	if io.open(FileName, "r") == nil then
		io.output(FileName)
		for i = 1,table.getn(PetSystem[PetIndex].Skill) do
			io.write("0n")
			table.insert(PetSkill, 0)
		end
		io.flush()
		io.close()
		return PetSkill
	end
	for line in io.lines(FileName) do
		table.insert(PetSkill, tonumber(line))
	end
	return PetSkill
end

--**
--** Belirtilen yetenekleri kaydetme
--**
function PetSystem.SaveSkill(PetIndex, SkillList)
	local FileName = PetSystem.Folder..pc.get_name().."_"..PetSystem[PetIndex].Name.."_skills"
	io.output(FileName)
	for i,v in ipairs(SkillList) do
		io.write(tostring(v).."n")
	end
	io.flush()
	io.close()
end

--**
--** Belirtilen hayvan durumunu okur 
--**
function PetSystem.ReadStatus(petIndex)
	local FileName = PetSystem.Folder..pc.get_name().."_"..PetSystem[petIndex].Name.."_stats"
	local skill, liv, ex
	if io.open(FileName, "r") != nil then
		io.input(FileName)
		skill = tonumber(io.read())
		liv = tonumber(io.read())
		ex = tonumber(io.read())
		io.input():close()
	else
		io.output(FileName)
		io.write("0n1n0n")
		io.flush()
		io.close()	
		skill = 0
		liv = 1
		ex = 0
	end
	return skill, liv, ex
end

--**
--** Belirtilen petin seviyesini okur 
--**
function PetSystem.GetLevel(petIndex)
	local FileName = PetSystem.Folder..pc.get_name().."_"..PetSystem[petIndex].Name.."_stats"
	local liv
	if io.open(FileName, "r") != nil then
		io.input(FileName)
		io.read()
		liv = tonumber(io.read())
		io.input():close()
	else
		liv = 1
	end
	return liv
end

--**
--** Belirtilen petin beceri puanini duzenleme
--**
function PetSystem.ChangeSkillPoints(PetIndex, amount)
	local FileName = PetSystem.Folder..pc.get_name().."_"..PetSystem[PetIndex].Name.."_stats"
	local skill, liv, ex
	if io.open(FileName, "r") != nil then
		io.input(FileName)
		skill = tonumber(io.read())
		liv = tonumber(io.read())
		ex = tonumber(io.read())
		skill = skill+amount
		io.input():close()
	else
		skill = amount
	end
	io.output(FileName)
	io.write(tostring(skill).."n")
	io.write(tostring(liv).."n")
	io.write(tostring(ex).."n")
	io.flush()
	io.close()
end

--**
--** Belirtilen hayvanin expisini okur
--**
function PetSystem.GiveExp(petIndex, amount)
	local FileName = PetSystem.Folder..pc.get_name().."_"..PetSystem[petIndex].Name.."_stats"
	local skill, liv, ex
	if io.open(FileName, "r") != nil then
		io.input(FileName)
		skill = tonumber(io.read())
		liv = tonumber(io.read())
		ex = tonumber(io.read())
		ex = ex+amount
		io.input():close()
	else
		skill = 0
		liv = 1
		ex = amount
	end
	if liv == PetSystem[petIndex].MaxLevel then
		return false
	end
	if ex > PetSystem[petIndex].ExpTable[liv] then
		ex = ex-PetSystem[petIndex].ExpTable[liv]
		skill = skill+1
		liv = liv+1
		if liv == PetSystem[petIndex].MaxLevel then
			ex = 0
			chat("Evcil hayvaniniz Maximum seviyeye ulasti.")
		else
			chat("Evcil hayvaninizin seviyesi "..liv.."!")
		end
		chat("farkli bir bir beceri sec")
		if PetSystem.NewSkillLearnt(petIndex, liv) then
			send_letter("Yeni bir beceri kilidi acildi!")
		end
	end
	io.output(FileName)
	io.write(tostring(skill).."n")
	io.write(tostring(liv).."n")
	io.write(tostring(ex).."n")
	io.flush()
	io.close()	
	return true
end

--**
--** bonus puanina gore hayvaninizin skillerini arttirma
--**
function PetSystem.AddBonus(PetIndex)
	PetSystem.RemoveBonus()
	local SkillList = {}
	SkillList = PetSystem.LoadSkill(PetIndex)
	for i = 1,table.getn(SkillList) do
		affect.add_hair(PetSystem[PetIndex].Skill[i].type, SkillList[i]*PetSystem[PetIndex].Skill[i].mult, 60*60*24*365)
	end
end

--**
--** Pet bonusunu siler
--**
function PetSystem.RemoveBonus()
	affect.remove(520)
end

--**
--** Atin adi ve seviyesini ayarlayin
--**
function PetSystem.SetHorseData(level, name)
	horse.set_name(name)
	horse.set_level(level)
end

--**
--** At ve seviyesinin bir evcil hayvanla iliskili olmadigini kontrol edin
--**
function PetSystem.IsPetLevel(level)
	for i = 1,PetSystem.GetPetNumber() do
		if level == PetSystem[i].Level then
			return true
		end
	end
	return false
end

--**
--** Evcil hayvaninizin yeni bir beceri ogrenmis olup olmadigini kontrol edin
--**
function PetSystem.NewSkillLearnt(PetIndex, PetLevel)
	for i = 1,table.getn(PetSystem[PetIndex].Skill) do
		if PetLevel == PetSystem[PetIndex].Skill[i].min_level then
			return true
		end
	end
	return false
end

--**
--** Toplam pet sayisini gosterir
--**
function PetSystem.GetPetNumber()
	return table.getn(PetSystem)
end

--** Aktif hayvaninizi ayarlayin
function PetSystem.SetActivePet(petIndex)
	pc.setqf(PetSystem.Flag, petIndex)
end

--** pet sistemi etkin edin
function PetSystem.IsActive()
	return (pc.getqf(PetSystem.Flag) > 0)
end

--** pet sistemini devre disi birakin
function PetSystem.SetInactive()
	pc.setqf(PetSystem.Flag, 0)
end

--** Etkin hayvan sayisini gosterir
function PetSystem.GetActivePet()
	return pc.getqf(PetSystem.Flag)
end

--** Bloklu expi gosterir
function PetSystem.BlockExp()
	pc.setqf(PetSystem.ExpFlag, 1)
end

--** Bloksuz expi gosterir
function PetSystem.UnblockExp()
	pc.setqf(PetSystem.ExpFlag, 0)
end

--** Pet expinin kilitli olup olmadigini gosterir
function PetSystem.IsExpBlocked()
	return (pc.getqf(PetSystem.ExpFlag) == 1)
end

Quest:

quest horse_summon begin
	state start begin
		function get_horse_summon_prob_pct() 
			local prob = {10,15,20,30,40,50,60,70,80,90,100}
			local skill_level = pc.get_skill_level(131) + 1
			return prob[skill_level]
		end
		
		when 20349.chat."Nowa Ksiêga Zwyk³ego Konia " with horse.get_grade()==1 and pc.countitem("50051")<1 begin
			say_title("Stajenny:")
			say("Zgubi³eœ Ksiêgê Zwyk³ego Konia! ")
			say("Mogê daæ Ci now¹ za 500.000 Yang.")
			local b=select("Tak", "Nie")
			if 1==b then
				if pc.money>=10000 then
					pc.changemoney(-10000)
					say_title("Informacja:")
					say("Oto nowa Ksiêga Zwyk³ego Konia! [ENTER]Tym razem spróbuj jej nie zgubiæ! ")
					pc.give_item2("50051", 1)
				else
					say_title("Informacja:")
					say("Nie masz wystarczaj¹co du¿o yang!")
				end
			else
				return
			end
		end
		when 20349.chat."Nowa Ksiêga Opancerz. Konia " with horse.get_grade()==2 and pc.countitem("50052")<1 begin
			say_title("Stajenny:")
			say("Zgubi³eœ Ksiêgê Opancerz. Konia! ")
			say("Mogê daæ Ci now¹ za 500.000 Yang.")
			local b=select("Tak", "Nie")
			if 1==b then
				if pc.money>=50000 then
					pc.changemoney(-50000)
					say_title("Informacja:")
					say("Oto nowa Ksiêga Opancerz. Konia![ENTER]Tym razem spróbuj jej nie zgubiæ! ")
					pc.give_item2("50052", 1)
				else
					say_title("Informacja:")
					say("Nie masz wystarczaj¹co du¿o yang!")
				end
			else
				return
			end
		end
		when 20349.chat."Nowa Ksiêga Wojskowego Konia " with horse.get_grade()==3 and pc.countitem("50053")<1 begin
			say_title("Stajenny:")
			say("Zgubi³eœ Ksiêgê Wojskowego Konia! ")
			say("Mogê daæ Ci now¹ za 500.000 Yang.")
			local b=select("Tak", "Nie")
			if 1==b then
				if pc.money>=100000 then
					pc.changemoney(-100000)
					say_title("Informacja:")
					say("Oto nowa Ksiêga Wojskowego Konia![ENTER]Tym razem spróbuj jej nie zgubiæ! ")
					pc.give_item2("50053", 1)
				else
					say_title("Informacja:")
					say("Nie masz wystarczaj¹co du¿o yang!")
				end
			else
				return
			end
		end
		when 50051.use with horse.get_grade()==0 begin
			say_title("Informacja:")
			say_reward("Przywo³anie konia jest nie mo¿liwe.[ENTER]Nie posiadasz go!")
		end
		when 50051.use with horse.get_grade()==1 begin
		if PetSystem.IsPetLevel(horse.get_level()) then
				say("Vous avez fait n'importe quoi avec les")
				say("commande GM. Mettez le niveau du cheval")
				say("puis essayez à nouveau.[ENTER]")				
				return					
			end	
			if pc.getsp()>=100 then
				if number(1, 100)<=horse_summon.get_horse_summon_prob_pct() then
					say_title("Informacja:")
					say_reward("Koñ zosta³ przywo³any. ")
					say("")
					horse.summon()
				else
					say_title("Informacja:")
					say_reward("Przywo³anie Konia dla profesjonalistów nie ")
					say_reward("powiod³o siê. ")
					say_reward("Mo¿esz zwiêkszyæ szansê na pomyœlne ")
					say_reward("przywo³anie poprzez trening swoich umiejêtnoœci.")
					say("")
				end
				pc.change_sp(-100)
			else
				say_title("Informacja:")
				say_reward("Masz za ma³o Punktów Energii. Aby przywo³aæ ")
				say_reward("Konia, potrzebujesz ich co najmniej 300. ")
				say("")
			end
		end
		when 50051.use with horse.get_grade()==2 begin
			say_title("Informacja:")
			say_reward("Ta ksiêga nie jest odpowiednia!")
		end
		when 50051.use with horse.get_grade()==3 begin
			say_title("Informacja:")
			say_reward("Ta ksiêga nie jest odpowiednia!")
		end
		when 50052.use with horse.get_grade()==0 begin
			say_title("Informacja:")
			say_reward("Ta ksiêga nie jest odpowiednia!")
		end
		when 50052.use with horse.get_grade()==1 begin
			say_title("Informacja:")
			say_reward("Ta ksiêga nie jest odpowiednia!")
		end
		when 50052.use with horse.get_grade()==2 begin
		if PetSystem.IsPetLevel(horse.get_level()) then
				say("Vous avez fait n'importe quoi avec les")
				say("commande GM. Mettez le niveau du cheval")
				say("puis essayez à nouveau.[ENTER]")				
				return					
			end	
			if pc.getsp()>=200 then
				if number(1, 100)<=horse_summon.get_horse_summon_prob_pct() then
					say_title("Informacja:")
					say_reward("Koñ zosta³ przywo³any.")
					say("")
					horse.summon()
				else
					say_title("Informacja:")
					say_reward("Przywo³anie Konia powiod³o siê. ")
					say_reward("Mo¿esz zwiêkszyæ szansê na pomyœlne ")
					say_reward("przywo³anie poprzez trening swoich umiejêtnoœci.")
					say("")
				end
				pc.change_sp(-200)
			else
				say_title("Informacja:")
				say_reward("Masz za ma³o Punktów Energii. Aby przywo³aæ ")
				say_reward("Konia, potrzebujesz ich co najmniej 300. ")
				say("")
			end
		end
		when 50052.use with horse.get_grade()==3 begin
			say_title("Informacja:")
			say_reward("Ta ksiêga nie jest odpowiednia!")
		end
		when 50053.use with horse.get_grade()==0 begin
			say_title("Informacja:")
			say_reward("Ta ksiêga nie jest odpowiednia!")
		end
		when 50053.use with horse.get_grade()==1 begin
			say_title("Informacja:")
			say_reward("Ta ksiêga nie jest odpowiednia!")
		end
		when 50053.use with horse.get_grade()==2 begin
			say_title("Informacja:")
			say_reward("Ta ksiêga nie jest odpowiednia!")
		end
		when 50053.use with horse.get_grade()==3 begin
		if PetSystem.IsPetLevel(horse.get_level()) then
				say("Vous avez fait n'importe quoi avec les")
				say("commande GM. Mettez le niveau du cheval")
				say("puis essayez à nouveau.[ENTER]")				
				return					
			end	
			if pc.getsp()>=300 then
				if number(1, 100)<=horse_summon.get_horse_summon_prob_pct() then
					say_title("Informacja:")
					say_reward("Koñ zosta³ przywo³any.")
					say("")
					horse.summon()
				else
					say_title("Informacja:")
					say_reward("Przywo³anie Konia nie powiod³o siê. ")
					say_reward("Mo¿esz zwiêkszyæ szansê na pomyœlne ")
					say_reward("przywo³anie poprzez trening swoich umiejêtnoœci. ")
					say("")
				end
				pc.change_sp(-300)
			else
				say_title("Informacja:")
				say_reward("Masz za ma³o Punktów Energii. Aby przywo³aæ ")
				say_reward("Konia, potrzebujesz ich co najmniej 300. ")
				say("")
			end
		end
	
		-----***** Richiamo Pet
		when 53001.use or 53002.use or 53003.use or 53005.use or 53006.use or 53007.use or 53008.use or 53009.use begin
			if not PetSystem.IsActive() then
				local PetNumber = {[53001]=1,[53002]=2,[53003]=3,[53005]=4,[53006]=5,[53007]=6,[53008]=7,[53009]=8}
				local petIndex = PetNumber[item.get_vnum()]
				if horse.is_dead() then
					say_title("Informacja:")
					say("Nie mo¿na przywo³aæ martwego zwierzêcia.")
					say("O¿yw zwierze.[ENTER]")
					return
				end			
				local horse_lev = horse.get_level()
				local horse_name = horse.get_name()
				PetSystem.SetActivePet(petIndex)
				PetSystem.AddBonus(petIndex)
				PetSystem.SetHorseData(PetSystem[petIndex].Level, "Lv"..PetSystem.GetLevel(petIndex).." "..PetSystem[petIndex].Name)
				pet.summon()
				PetSystem.SetHorseData(horse_lev, horse_name)
				cleartimer("give_exp")
				loop_timer("give_exp", PetSystem.UpdateFrequency)
				chat(""..PetSystem[petIndex].Name.." zostal przywolany.")
			else
				PetSystem.PetBack() 				
			end
		end
		
		-----*****
		-----***** Roba varia per Pet
		-----*****
		
		when 30130.use begin
			if not PetSystem.IsActive() then
				chat("Nale¿y odwolaæ swojego zwierzaka, aby daæ mu doswiadczenie.")
				return
			end
			local PetHasGotExp = PetSystem.GiveExp(PetSystem.GetActivePet(), PetSystem.ItemExp)
			if not PetHasGotExp then
				chat("Twój zwierzak jest na maksymalnym poziomie.")
			else
				chat("Twój zwierzak otrzymal"..PetSystem.ItemExp.." punktów doswiadczenia.")
				pc.remove_item(item.get_vnum(), 1)
			end
		end
		
		when login begin
			if PetSystem.IsActive() then
				if pc.count_item(PetSystem[PetSystem.GetActivePet()].Item) != 0 and not horse.is_dead() then
					local horse_lev = horse.get_level()
					local horse_name = horse.get_name()		
					local PetIndex = PetSystem.GetActivePet()				
					PetSystem.SetHorseData(PetSystem[PetIndex].Level, "Lv"..PetSystem.GetLevel(PetIndex).." "..PetSystem[PetIndex].Name)
					pet.summon()
					PetSystem.SetHorseData(horse_lev, horse_name)
					loop_timer("give_exp", PetSystem.UpdateFrequency)
				else
					PetSystem.SetInactive()
					timer("remove_bonus", 2)
				end				
			end			
			pc.setqf("current_exp", pc.get_exp())
		end
		
		when remove_bonus.timer begin
			PetSystem.RemoveBonus()
		end	
		
		when give_exp.timer begin
			if PetSystem.IsActive() and not PetSystem.IsExpBlocked() then
				local gained_exp = pc.get_exp()-pc.getqf("current_exp")
				if gained_exp < 0 then
					pc.setqf("current_exp", pc.get_exp())
					return
				end
				local pet_exp = math.floor(gained_exp*3/100)
				if pet_exp != 0 then
					local PetHasGotExp = PetSystem.GiveExp(PetSystem.GetActivePet(), pet_exp)
					if PetHasGotExp then
						pc.give_exp2(-pet_exp)
						pc.setqf("current_exp", pc.get_exp())
					end					
				end
			end
		end
		when button or info begin
			say_title("Nowe Umiejetnosci")
			say("Twój zwierzak ma odblokowane")
			say("nowe umiejêtnoœci, aby dowiedzieæ siê")
			say("wiêcej przejœdz do menu Umiejêtnoœci .[ENTER]")
			q.done()
		end

		  -----***** Menu Pet
  when 20120.click begin PetSystem.ShowMenu(1) end
  when 20121.click begin PetSystem.ShowMenu(1) end
  when 20122.click begin PetSystem.ShowMenu(1) end
  when 20123.click begin PetSystem.ShowMenu(2) end
  when 20124.click begin PetSystem.ShowMenu(2) end
  when 20125.click begin PetSystem.ShowMenu(2) end
  when 20126.click begin PetSystem.ShowMenu(3) end
  when 20127.click begin PetSystem.ShowMenu(3) end
  when 20128.click begin PetSystem.ShowMenu(3) end
  when 20129.click begin PetSystem.ShowMenu(4) end
  when 20130.click begin PetSystem.ShowMenu(4) end
  when 20131.click begin PetSystem.ShowMenu(4) end
  when 20132.click begin PetSystem.ShowMenu(5) end
  when 20133.click begin PetSystem.ShowMenu(5) end
  when 20134.click begin PetSystem.ShowMenu(5) end
  when 20135.click begin PetSystem.ShowMenu(6) end
  when 20136.click begin PetSystem.ShowMenu(6) end
  when 20137.click begin PetSystem.ShowMenu(6) end
  when 20138.click begin PetSystem.ShowMenu(7) end
  when 20139.click begin PetSystem.ShowMenu(7) end
  when 20140.click begin PetSystem.ShowMenu(7) end
  when 20141.click begin PetSystem.ShowMenu(8) end
  when 20142.click begin PetSystem.ShowMenu(8) end
  when 20143.click begin PetSystem.ShowMenu(8) end
end
end



PROBLEM:

SYSERR: Jun  3 19:11:07 :: SpawnMob: SpawnMob: no mob data for vnum 0
SYSERR: Jun  3 19:11:07 :: Summon: [CPetSystem::Summon] Failed to summon the pet. (vnum: 0)

-

So this system works on game 2089, but it does not work on 34k or 40k.
I open with notepdat++ game 2089 and searched "pet or Pet" but I found nothing, instead on game 34k or 40k I found.

My question is: why on game 2089 does not exist pet system and this works? and on 34k or 40k not work ...

 

I found this in PetSystem.cpp:

	m_pkChar = CHARACTER_MANAGER::instance().SpawnMob(
				m_dwVnum, 
				m_pkOwner->GetMapIndex(), 
				x, y, z,
				false, (int)(m_pkOwner->GetRotation()+180), false);

	if (0 == m_pkChar)
	{
		sys_err("[CPetSystem::Summon] Failed to summon the pet. (vnum: %d)", m_dwVnum);
		return 0;
	}
Link to comment
Share on other sites

  • Replies 4
  • Created
  • Last Reply

Top Posters In This Topic

  • Premium

Well, in 2089m, the pet was replacing the horse, kinda. You have to adapt it for 34k+.

First of all, you're calling the pet wrong and that's why you get error.

Check this:

pet.summon()

This is how the function should look like:

pet.summon(mob_vnum, pet's name, (bool)run to me from far away)

Also, you should not change the horse name and level using this:

PetSystem.SetHorseData

You better change the whole system. It's kinda stupid. I saw it before and I worked with it for a friend. You should work on the source.

Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

Announcements



×
×
  • Create New...

Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.