ÓriásiBug (m)

Indította Magnum, 2015-02-21, 07:58:25

Sziasztok.

Egy óriási bugot fedeztem fel a szerverem a petekel és az öv rendszerrel.
Ez a két quest egy bizonyos idő után megadja magát chanel1-en, nem tudom biztosra hogy a quest áll le vagy valami más, de egy bizonyos idő után használhatatlan az öv és a pet ch1-en.
Game99-en tökéletes megy semmi hiba.
Ch1-en megjavul egy időre, ha kliensben beírom reload q.
Valaki tudna nekem segíteni?
Nagyon megköszönném.

ch2 is összeomlik ilyenkor?
esetleg nézz egy ch1 syssert, ir e valamit.
csak ez a 2 quest omlik össze más működik runok pl vagy bármi más.
esetleg navicatban keresd ki a quest táblát mikor fennáll a hiba és nézd meg megnyitja e azt  a táblázatot vagy meghalt.

IdézSYSERR: Feb 21 09:08:25 :: RunState: LUA_ERROR: [string "belt_system"]:1: attempt to index global `item' (a number value)
SYSERR: Feb 21 09:08:25 :: WriteRunningStateToSyserr: LUA_ERROR: quest belt_system.start letter
SYSERR: Feb 21 09:08:26 :: RunState: LUA_ERROR: [string "pet_system"]:1: attempt to index global `item' (a number value)
SYSERR: Feb 21 09:08:26 :: WriteRunningStateToSyserr: LUA_ERROR: quest pet_system.start letter
SYSERR: Feb 21 09:08:27 :: RunState: LUA_ERROR: [string "pet_system"]:1: attempt to index global `item' (a number value)
SYSERR: Feb 21 09:08:27 :: WriteRunningStateToSyserr: LUA_ERROR: quest pet_system.start letter
SYSERR: Feb 21 09:08:27 :: RunState: LUA_ERROR: [string "pet_system"]:1: attempt to index global `item' (a number value)
SYSERR: Feb 21 09:08:27 :: WriteRunningStateToSyserr: LUA_ERROR: quest pet_system.start letter
SYSERR: Feb 21 09:08:27 :: RunState: LUA_ERROR: [string "pet_system"]:1: attempt to index global `item' (a number value)
SYSERR: Feb 21 09:08:27 :: WriteRunningStateToSyserr: LUA_ERROR: quest pet_system.start letter

Ezt írja syser mikor leakarok hívni egy petet vagy az övet feltenni.

Lehet valahol felülíródik az item modul.
Keress valami ilyet a questfájljaidban:
item=
item =

2015-02-21, 11:50:16 #4 Utolsó szerkesztés: 2015-02-21, 12:00:15 Szerző: Ancient
Nem találtam ilyen kifejezést a két questben sajnos.


Pet quest:
Idézquest 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, " Tűzfőnixe ", 0, "buff8"},
                [53002]     = { 34002, " Gidája ", 0, "buff9"},
                [53003]     = { 34003, " Jégfőnixe ", 0, "buff10"},
                [53004]     = { 34017, " Jádefőnixe ", 0, "buff10"},
                [53005]     = { 34004, " Baby Azraelje ", 0, "buff11"},
            [53006]      = { 34009, " Baby Azraelje ", 0, "buff16"},
                [53007]     = { 34010, " Bambija ", 0, "buff17"},
            [53008]      = { 34011, " Knuudja ", 0, "buff19"},
            [53009]      = { 34012, " Bao Baoja ", 0, "buff18"},
                [53010]     = { 34008, " Leonidásza ", 0, "buff13"},
                [53011]     = { 34007, " Kánja ", 0, "buff15"},
                [53012]     = { 34005, " Porkija ", 0, "buff14"},
                [53013]     = { 34006, " Rufusza ", 0, "buff12"},
            [53014]     = { 34014, " Csontkutyája ", 0, "buff20"},
            [53015]     = { 34015, " Hóhéra ", 0, "buff21"},
            [53016]     = { 34016, " Hóhéra ", 0, "buff22"},
            [53017]     = { 34018, " Sheldonja ", 0, "buff23"},
            [53018]     = { 34019, " Cooperje ", 0, "buff24"},
            }

            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 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])
            local buffx = pet_info[4]

                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
                  cmdchat(buffx)
                        pet.summon(mobVnum, petName, false)
                    else
                        syschat("Előbb küld el az előző petet. ")
                    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


Öv quest:
Idézquest belt_system begin
    state start begin

        function is_belt()
            return item.vnum >= 18000 and item.vnum <= 18089
        end

        function equip_belt()
            item2.equip(11)
            pc.setqf('belt', item.vnum)
        end

        when 18000.use or 18001.use or 18002.use or 18003.use or 18004.use or 18005.use or 18006.use or 18007.use or
        18008.use or 18009.use or 18010.use or 18011.use or 18012.use or 18013.use or 18014.use or 18015.use or 18016.use or
        18017.use or 18018.use or 18019.use or 18020.use or 18021.use or 18022.use or 18023.use or 18024.use or 18025.use or
        18026.use or 18027.use or 18028.use or 18029.use or 18030.use or 18031.use or 18032.use or 18033.use or 18034.use or
        18035.use or 18036.use or 18037.use or 18038.use or 18039.use or 18040.use or 18041.use or 18042.use or 18043.use or
        18044.use or 18045.use or 18046.use or 18047.use or 18048.use or 18049.use or 18050.use or 18051.use or 18052.use or
        18053.use or 18054.use or 18055.use or 18056.use or 18057.use or 18058.use or 18059.use or 18060.use or 18061.use or
        18062.use or 18063.use or 18064.use or 18065.use or 18066.use or 18067.use or 18068.use or 18069.use or 18070.use or
        18071.use or 18072.use or 18073.use or 18074.use or 18075.use or 18076.use or 18077.use or 18078.use or 18079.use or
        18080.use or 18081.use or 18082.use or 18083.use or 18084.use or 18085.use or 18086.use or 18087.use or 18088.use or 18089.use begin
            local v = item.vnum
            local bonus = {{item2.get_attr(0)}, {item2.get_attr(1)}, {item2.get_attr(2)}, {item2.get_attr(3)}, {item2.get_attr(4)}, {item2.get_attr(5)}, {item2.get_attr(6)}}
            if belt_system.is_belt() and v ~= pc.getqf('belt') then
                belt_system.equip_belt()
            elseif item.select_cell(101) then
                item.remove()
                pc2.give_or_drop_item_and_select(v)
                for i = 1, table.getn(bonus) do
                    if tonumber(bonus[1]) > 0 then
                        item2.set_attr(i-1, bonus[1], bonus[2])
                    end
                end
            else
                belt_system.equip_belt()
            end
        end

        when 20090.take with belt_system.is_belt() begin
            local maintab = {
                [0] = {
                    {18000, 1, 50},
                    {18010, 2, 20},
                    {18020, 44, 1},
                    {18030, 44, 1},
                    {18040, 78, 1},
                    {18050, 79, 1},
                    {18060, 80, 1},
                    {18070, 81, 1},
                    {18080, 63, 1}
                },
                [1] = {
                    {18000, 1, 50},
                    {18010, 2, 20},
                    {18020, 44, 1},
                    {18030, 44, 1},
                    {18040, 78, 1},
                    {18050, 79, 1},
                    {18060, 80, 1},
                    {18070, 81, 1},
                    {18080, 63, 1}
                },
                [2] = {
                    {18000, 1, 100},
                    {18010, 2, 40},
                    {18020, 44, 1},
                    {18030, 44, 1},
                    {18040, 78, 1},
                    {18050, 79, 1},
                    {18060, 80, 1},
                    {18070, 81, 1},
                    {18080, 63, 1}
                }
            }
            if pc.count_item(18900) < 1 then
                syschat("Nincs nálad "..item_name(18900)..".")
                return
            end
            for i = 0, 2 do
                for k = 1, table.getn(maintab) do
                    if item.vnum >= maintab[k][1] and item.vnum <= maintab[k][1]+9 and item2.get_attr(i) == 0 then
                        if number(1,3) == 1 then
                            item2.set_attr(i, maintab[k][2], maintab[k][3])
                            syschat('Az öv Bónusz adása sikeres.')
                        else
                            syschat('Az öv bónusz adása nem sikerült.')
                        end
                    end
                end
                pc.remove_item(18900, 1)
            end
        end
    end

Más questben is lehet, ha tippelnem kellene akkor give_basic_weapon.questben lesz  :)

Mondtam én olyat, hogy csak abban a két questben keresd?:D

Lottóznod kellene. :)
Mivel tudom helyetesíteni?
Bocs amúgy penger én voltam a hülye. :)

Idézquest give_basic_weapon begin
   state start begin
      when login begin
         if pc.getqf("basic_weapon") == 0 then
            pc.setqf("basic_weapon", 1)
            send_letter("HopeWorld")
         end
      end
      when button or info begin
         say_title("HopeWorld")
         say("Üdvözlünk a HopeWorld világában.")
         say("Köszönjük, hogy meglátogattad a szerverünket..")
         say("Kellemes időtöltést, jó játékot kivánunk!")
         say_reward("HopeWorld team")
         wait()
         say_title("HopeWorld")
         say_reward("Most megkapod a szükséges kezdő felszerelésedet.")
         wait()
         if pc.job == 0 then
            item = 50341
            item2 = 31491
            item3 = 12209
         elseif pc.job == 1 then
            item = 50343
            item2 = 31492
            item3 = 12349
         elseif pc.job == 2 then
            item = 50346
            item2 = 31493
            item3 = 12489
         elseif pc.job == 3 then
            item = 50344
            item2 = 31494
            item3 = 12629
         end
         if pc.countitem(item) == 0 and pc.countitem(item2) == 0 and pc.countitem(item3) == 0 and pc.weapon != item then
            pc.give_item2(item)--Kasztnak megfelelő fegyver
            pc.give_item2(item2)--Kasztnak megfelelő vért
            pc.give_item2(item3)--Kasztnak megfelelő sisak            
            pc.give_item2(15007,1) --Fa cipő
            pc.give_item2(27002,200) --Vörös ital(Közepes)
            pc.give_item2(27004,200) --Kék ital(Kicsi)            
            pc.give_item2(27110,10) --Kicsi zöld ital
            pc.give_item2(27113,10) --Kicsi lila ital
            pc.give_item2(50052) --Felfegyverzet ló könyv
            pc.give_item2(70038,200) --Bátorság köpeny 200[DB)
            pc.give_item2(72018,1) --Harmadik kéz
            pc.give_item2(72702,1) --Szél cipő
            pc.give_item2(39002,1) --Tapasztalat gyűrű
            pc.give_item2(14009,1) --Fa karkötő
            pc.give_item2(16009,1) --Fa nyaklánc
            pc.give_item2(13009,1) --Csatapajzs
            pc.give_item2(17009,1) --Fa fülbevaló
            horse.set_level(11) --11 lvl Ló
            set_state(__COMPLETE__)
         end
      end
    end

   state __COMPLETE__ begin
   end
end

2015-02-21, 12:19:43 #8 Utolsó szerkesztés: 2015-02-21, 12:22:36 Szerző: [VIP]P3NG3R
quest give_basic_weapon begin
state start begin
when login begin
if pc.getqf("basic_weapon") == 0 then
pc.setqf("basic_weapon", 1)
send_letter("HopeWorld")
end
end
when button or info begin
say_title("HopeWorld")
say("Üdvözlünk a HopeWorld világában.")
say("Köszönjük, hogy meglátogattad a szerverünket..")
say("Kellemes időtöltést, jó játékot kivánunk!")
say_reward("HopeWorld team")
wait()
say_title("HopeWorld")
say_reward("Most megkapod a szükséges kezdő felszerelésedet.")
wait()
local item1, item2, item3
if pc.job == 0 then
item1 = 50341
item2 = 31491
item3 = 12209
elseif pc.job == 1 then
item1 = 50343
item2 = 31492
item3 = 12349
elseif pc.job == 2 then
item1 = 50346
item2 = 31493
item3 = 12489
elseif pc.job == 3 then
item1 = 50344
item2 = 31494
item3 = 12629
end
if pc.countitem(item1) == 0 and pc.countitem(item2) == 0 and pc.countitem(item3) == 0 and pc.weapon != item1 then
pc.give_item2(item1)--Kasztnak megfelelő fegyver
pc.give_item2(item2)--Kasztnak megfelelő vért
pc.give_item2(item3)--Kasztnak megfelelő sisak           
pc.give_item2(15007,1) --Fa cipő
pc.give_item2(27002,200) --Vörös ital(Közepes)
pc.give_item2(27004,200) --Kék ital(Kicsi)           
pc.give_item2(27110,10) --Kicsi zöld ital
pc.give_item2(27113,10) --Kicsi lila ital
pc.give_item2(50052) --Felfegyverzet ló könyv
pc.give_item2(70038,200) --Bátorság köpeny 200[DB)
pc.give_item2(72018,1) --Harmadik kéz
pc.give_item2(72702,1) --Szél cipő
pc.give_item2(39002,1) --Tapasztalat gyűrű
pc.give_item2(14009,1) --Fa karkötő
pc.give_item2(16009,1) --Fa nyaklánc
pc.give_item2(13009,1) --Csatapajzs
pc.give_item2(17009,1) --Fa fülbevaló
horse.set_level(11) --11 lvl Ló
set_state(__COMPLETE__)
end
end
end

state __COMPLETE__ begin
end
end


Köszönöm a segítségeteket.
Én még nem 40k-s szerverfilet használok lehet azért nem olvastam el. Nem bírom átkonvertálni az item_protomat 40k-ra sajnos