Jump to content

Syserr problem - game 40k


Recommended Posts

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 click
SYSERR: 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
    end
end

Thank you very much,i`m looking forward for some solutions ! 

Link to comment
Share on other sites

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

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 -- state
end -- 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

  • Metin2 Dev 2
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.