DRV 2 Posted June 21, 2015 Share Posted June 21, 2015 Hi community, I have some problems in my syserr that may cause the server to shutdown(i dont know yet - expect you to tell me) So,here i my syserr : SYSERR: Jun 21 02:56:01 :: RunState: LUA_ERROR: [string "horse_summon"]:1: attempt to index global `PetSystem' (a nil value)SYSERR: Jun 21 02:56:01 :: WriteRunningStateToSyserr: LUA_ERROR: quest horse_summon.start clickSYSERR: Jun 21 02:56:43 :: pid_init: Start of pid: 3921 It may this error cause shutdowning the server ? Sometimes, when the server is closing by those erorr, in ssh appear this : [string "IsScriptTrue"]:1:attempt to compare nil with number My horse_summon quest : quest horse_summon begin state start begin function get_horse_summon_prob_pct() local skill_level=pc.get_skill_level(131) if skill_level==1 then return 15 elseif skill_level==2 then return 20 elseif skill_level==3 then return 30 elseif skill_level==4 then return 40 elseif skill_level==5 then return 50 elseif skill_level==6 then return 60 elseif skill_level==7 then return 70 elseif skill_level==8 then return 80 elseif skill_level==9 then return 90 elseif skill_level>=10 then return 100 end return 10 end when 20349.chat."Imaginea calului pierduta. " with horse.get_grade()==1 and pc.countitem("50051")<1 begin say_title("Grajdar: ") say("Dupa cum vad, ") say("þi-ai pierdut Imaginea Calului. ") local b=select("Vreau alta noua ", "Nu ma intereseaza ") if 1==b then if pc.money>=10000 then pc.changemoney(-10000) say_title("Grajdar: ") say("Aici este noua ta imagine de cal. ") say("Sper sa nu o mai pierzi. ") pc.give_item2("50051", 1) else say_title("Grajdar: ") say("Nu ai destui Yang. ") end elseif 2==b then else say("UNKNOWN BUTTON ["..b.."]") end end when 20349.chat."Cartea Arme si Cai pierduta. " with horse.get_grade()==2 and pc.countitem("50052")<1 begin say_title("Grajdar: ") say("Dupa cum vad, ") say("þi-ai pierdut Cartea Arme si Cai. ") local b=select("Vreau alta noua ", "Nu ma intereseaza ") if 1==b then if pc.money>=50000 then pc.changemoney(-50000) say_title("Grajdar: ") say("Aici este noua ta Carte Arme si Cai. ") say("Sper sa nu o mai pierzi. ") pc.give_item2("50052", 1) else say_title("Grajdar: ") say("Nu ai destui Yang. ") end elseif 2==b then else say("UNKNOWN BUTTON ["..b.."]") end end when 20349.chat."Cartea Armata si Cai pierduta. " with horse.get_grade()==3 and pc.countitem("50053")<1 begin say_title("Grajdar: ") say("Dupa cum vad,") say("þi-ai pierdut Cartea Armata si Cai.") local b=select("Vreau alta noua ", "Nu ma intereseaza ") if 1==b then if pc.money>=100000 then pc.changemoney(-100000) say_title("Grajdar: ") say("Aici este noua ta Carte Armata si Cai. ") say("Sper sa nu o mai pierzi. ") pc.give_item2("50053", 1) else say_title("Grajdar: ") say("Nu ai destui Yang. ") end elseif 2==b then else say("UNKNOWN BUTTON ["..b.."]") end end when 50051.use with horse.get_grade()==0 begin say_title("Grajdar: ") say("Nu deþii un cal! ") end when 50051.use with horse.get_grade()==1 begin if pc.getsp()>=100 then if number(1, 100)<=horse_summon.get_horse_summon_prob_pct() then horse.summon() else chat("[Me2L]:Armasarul nu a putut fi strigat.") end pc.change_sp(-100) else say_title("Informaþie: ") say("Nu ai destule MP. Îþi trebuie minim 100 MP") say("pentru a chema calul. ") end end when 50051.use with horse.get_grade()==2 begin say_title("Informaþie: ") say("Ai folosit imaginea de chemare a calului gresita. ") end when 50051.use with horse.get_grade()==3 begin say_title("Informaþie: ") say("Ai folosit imaginea de chemare a calului gresita. ") end when 50052.use with horse.get_grade()==0 begin say_title("Informaþie: ") say("Ai folosit imaginea de chemare a calului gresita. ") end when 50052.use with horse.get_grade()==1 begin say_title("Informaþie: ") say("Ai folosit imaginea de chemare a calului gresita. ") end when 50052.use with horse.get_grade()==2 begin if pc.getsp()>=200 then if number(1, 100)<=horse_summon.get_horse_summon_prob_pct() then horse.summon() else chat("[Me2L]:Armasarul nu a putut fi strigat.") end pc.change_sp(-200) else say_title("Informaþie: ") say("Nu ai destule MP. Îþi trebuie minim 200 MP") say("pentru a chema calul. ") end end when 50052.use with horse.get_grade()==3 begin say_title("Informaþie: ") say("Ai folosit imaginea de chemare a calului gresita. ") end when 50053.use with horse.get_grade()==0 begin say_title("Informaþie: ") say("Ai folosit imaginea de chemare a calului gresita. ") end when 50053.use with horse.get_grade()==1 begin say_title("Informaþie: ") say("Ai folosit imaginea de chemare a calului gresita. ") end when 50053.use with horse.get_grade()==2 begin say_title("Informaþie: ") say("Ai folosit imaginea de chemare a calului gresita. ") end when 50053.use with horse.get_grade()==3 begin if pc.getsp()>=300 then if number(1, 100)<=horse_summon.get_horse_summon_prob_pct() then horse.summon() else chat("[Me2Ap]:Armasarul nu a putut fi strigat.") end pc.change_sp(-300) else say_title("Informaþie: ") say("Nu ai destule MP. Îþi trebuie minim 300 MP") say("pentru a chema calul. ") end end end state __COMPLETE__ begin when enter begin q.done() end endend Thank you very much,i`m looking forward for some solutions ! Link to comment Share on other sites More sharing options...
Alina 235 Posted June 21, 2015 Share Posted June 21, 2015 I don't think this is the right quest. RunState: LUA_ERROR: [string "horse_summon"]:1: attempt to index global `PetSystem' (a nil value) You know what this means? It tells you that you're trying to use 'PetSystem' which is a nil value. You can reproduce this by doing the following local a = AnythingThatIsNil() Also if you're trying to do arithmetics on that you'll face the second error (comparing nil with number): AnythingThatIsNil = nil local a = 10 + AnythingThatIsNil So PetSystem is in your case nil. What you have to do is search for PetSystem in your quests and look where it'd be defined. There you can fix it! Maybe you also did rewrite horse.summon() in your questlib.lua (so check this file too). I dunno where you'd have it. But the error is clear and resolvable Link to comment Share on other sites More sharing options...
DRV 2 Posted June 21, 2015 Author Share Posted June 21, 2015 Thank you, Alina, for your answer and help. It may this cause the server to shutdown by himself ? Below, i'll post my questlib.lua and the petsystem quest : quest pet_system begin state start begin function get_pet_info(itemVnum) pet_info_map = { -- [ITEM VNUM] MOB_VNUM, DEFAULT NAME, buff_idx, spawn_effect_idx [53001] = { 34001, "'s Phoenix de foc", 0}, [53002] = { 34002, "'s Pui de ren", 0}, [53003] = { 34003, "'s Pheonix de gheata", 0}, [53004] = { 34001, "'s Feuer Phoenix", 0}, [53005] = { 34004, "'s Baby Azrael", 1}, [53006] = { 34009, "'s Golden Gahnasel", 1}, [53007] = { 34010, "'s Bambi", 0}, [53008] = { 34011, "'s Knuud", 0}, [53009] = { 34012, "'s Bao Bao", 0}, [53010] = { 34008, "'s Leonidas", 0}, [53011] = { 34007, "'s Khan", 0}, [53012] = { 34005, "'s Porky", 0}, [53013] = { 34006, "'s Rufus", 0}, [53014] = { 34013, "'s Mini Executor", 0}, [53015] = { 34014, "'s Mini Executor Gold", 0}, [53016] = { 34015, "'s Caine osos", 0}, [53017] = { 34016, "'s Phoenix verde", 0}, [53018] = { 34020, "'s Leonidas Alb", 0}, [53019] = { 34017, "'s Porkie Polar", 0}, [53020] = { 34018, "'s Rufus de Gheata", 1}, [53021] = { 34019, "'s Arctis Khan", 0}, [53022] = { 34021, "'s Sheldon", 0}, [53023] = { 34022, "'s Cooper", 0}, [53024] = { 34025, "'s Freaky", 0}, [53025] = { 34026, "'s Nuvy", 0}, } itemVnum = tonumber(itemVnum) return pet_info_map[itemVnum] end function get_spawn_effect_file(idx) effect_table = { [0] = nil, [1] = "d:\\\\ymir work\\\\effect\\\\etc\\\\appear_die\\\\npc2_appear.mse", } return effect_table [idx] end when 53001.use or 53002.use or 53003.use or 53004.use or 53005.use or 53006.use or 53007.use or 53008.use or 53009.use or 53010.use or 53011.use or 53012.use or 53013.use or 53014.use or 53015.use or 53016.use or 53017.use or 53018.use or 53019.use or 53020.use or 53021.use or 53022.use or 53023.use or 53024.use or 53025.use begin local pet_info = pet_system.get_pet_info(item.vnum) if null != pet_info then local mobVnum = pet_info[1] local petName = pet_info[2] local spawn_effect_file_name = pet_system.get_spawn_effect_file(pet_info[3]) if true == pet.is_summon(mobVnum) then if spawn_effect_file_name != nil then pet.spawn_effect (mobVnum, spawn_effect_file_name) end pet.unsummon(mobVnum) else if pet.count_summoned() < 1 then pet.summon(mobVnum, petName, false) else syschat("You already summoned a pet.") end if spawn_effect_file_name != nil then pet.spawn_effect (mobVnum, spawn_effect_file_name) end end -- if pet.is_summon end -- if null != pet_info end -- when end -- stateend -- quest Also, i dont find horse_summon in questlib.lua / i only find show_horse_menu I've uploaded my questlib.lua here. I look forward for some answers. This is the hidden content, please Sign In or Sign Up 2 Link to comment Share on other sites More sharing options...
DRV 2 Posted June 21, 2015 Author Share Posted June 21, 2015 Anyone can solve this out ? Link to comment Share on other sites More sharing options...
Recommended Posts
Please sign in to comment
You will be able to leave a comment after signing in
Sign In Now