Pet

Totalitatea subiectelor care nu respectă regulamentul impus in sectiunea "Probleme şi Întrebări" vor fi stocate aici.
Închis
Avatar utilizator
adrianadyy
Nivel 4

Nivel 4
Mesaje: 662
Membru din: 09 Ian 2017, 20:18
Server: Odisian2
Regat: Shinsoo
Aprecieri: 38  
Mulţumiri: 8  
 Contact:
Medalii

Salut,am sistemul de pet-uri pe server si as vrea sa-l fac cu level.Adica pet-ul respectiv sa creasca in nivel ca pe oficial(bati un mob primesti exp si tu si pet ul si sa ceara si iteme sa faca lv upp),ma poate ajuta cineva sa fac asata??
https://www.facebook.com/Metin2Odisian/
Pvm-pvp max lv 105
Deschiderea are loc pe data de 27/06/2020
site http://odisian2.com/
Afișează semnătura
Avatar utilizator
adrianadyy
Nivel 4

Nivel 4
Mesaje: 662
Membru din: 09 Ian 2017, 20:18
Server: Odisian2
Regat: Shinsoo
Aprecieri: 38  
Mulţumiri: 8  
 Contact:
Medalii

Am inteles ca trebuie lucrat in sursa si nu prea ma pricep la ea,am svf NR si am gasit undeva pe aici sursa de la novaline cu 2 virusi la pachet si nu prea stiu ce e de facut,vreo sugestie??
https://www.facebook.com/Metin2Odisian/
Pvm-pvp max lv 105
Deschiderea are loc pe data de 27/06/2020
site http://odisian2.com/
Afișează semnătura
Avatar utilizator
dragos001
Nivel 4

Nivel 4
Mesaje: 566
Membru din: 01 Mar 2014, 14:08
Aprecieri: 2  
Mulţumiri: 483  
Medalii

Quest level pet:
quest pet_system begin
    state start begin
        when letter begin
            cmdchat("petguihideshow "..q.getcurrentquestindex())
        end
        
        function givebonus(x)
            local mobVnum = pc.getqf("mobVnum")
            local y,boni = {10,54,1},pet_system.bonusliste()
            table.foreach(boni[x],function(i,l)  cmdchat("HaustierBonus"..i.." "..l.."") affect.add_collect(y,l,60*60*24*365*60) end )
            cmdchat("HaustierLevel "..pc.getqf('petlevel_'..mobVnum).."")
            cmdchat("HaustierName "..pc.get_name().."")
            pc.setqf("petruf",1)
            pc.setqf("petguishow",1)
        end
        
        function bonusliste()
            return {
                [1] = {20,10,500},
                [2] = {30,20,1000},
                [3] = {40,30,1500},
                [4] = {50,45,2000},
                [5] = {65,60,3000},
            }
        end
        
        function removebonus(x)
            local y,boni = {10,54,1},pet_system.bonusliste()
            table.foreach(boni[x],function(i,l) affect.remove_collect(y,l,60*60*24*365*60) end )
            pc.setqf("petruf",0)
            --cmdchat("HidePetGui")
            pc.setqf("petguishow",0)
            cleartimer("bugcheck")
        end
        
        function get_pet_info(itemVnum)
            pet_info_map = {
            --  [ITEM VNUM] MOB_VNUM, DEFAULT NAME, buff_idx, spawn_effect_idx
                [53001]        = { 34001, "-Feuerphönix", 1},
                [53002]     = { 34002, "-Rentier", 1, "rentier"},
                [53003]     = { 34003, "-Eisphönix", 1, "icephoenix"},
                [53005]     = { 34004, "-Azrael", 1, "azrael"},
                [53006]     = { 34009, "-Gold-Azrael", 1, "azrael"},
                [53007]     = { 34010, "-Bambi", 1, "rentier"},
                [53008]     = { 34011, "-Knuud", 1},
                [53009]     = { 34012, "-Bao Bao", 1, "baobao"},
                [53010]     = { 34008, "-Leonidas", 1, "leonidas"},
                [53011]     = { 34007, "-Khan", 1, "khan"},
                [53012]     = { 34005, "-Porkie", 1, "porky"},
                [53013]     = { 34006, "-Rufus", 1, "rufus"},
                [53014]     = { 34013, "-Henkerchen", 1},
                [53015]     = { 34014, "-Gold-Henkerchen", 1},
                [53016]     = { 34015, "-Boney", 1},
                [53017]     = { 34016, "-Jadephönix", 1},
                [53018]     = { 34020, "-Schnee-Leonidas", 1},
                [53019]     = { 34019, "-Arktis-Khan", 1},
                [53020]     = { 34017, "-Polar-Porkie", 1},
                [53021]     = { 34018, "-Frost-Rufus", 1},
                --2014 LAST UPDATE 18.11.2014
                [53022]     = { 34021, "-Sheldon", 1},
                [53023]     = { 34022, "-Cooper", 1},
                [53024]     = { 34023, "-Panther", 1},
                [53025]     = { 34024, "-Leopard", 1},
                
                [34026]        = { 34024, "-halloween_pumpkin_pet", 1},
                [34027]        = { 34024, "-halloween_broom", 1},
            }

            itemVnum = tonumber(itemVnum)

            return pet_info_map[itemVnum]
        end
        function get_spawn_effect_file(idx)
            effect_table = {
                [0] = nil,
                [1] = "d:ymir workeffectetcappear_diemonster_appear.mse",
            }
            return effect_table [idx]
        end
        when 53007.use or 53013.use or 53012.use or 53011.use or 53010.use or
        53005.use or 53006.use or 53003.use or 53002.use or 53001.use or 53014.use or
        53015.use or 53017.use or 53018.use or 53019.use or 53016.use or 53008.use or
        53009.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[4])
                
                pc.setqf("mobVnum",mobVnum)

                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)
                    pet_system.removebonus(pc.getqf('petlevel_'..mobVnum))
                    cmdchat("HidePetGui")
                    syschat("Dein Haustier wurde weggeschickt")
                else
                    if pet.count_summoned() < 1 then
                        pet.summon(mobVnum, petName, false)
                        if pet_info[4] ~= nil then
                        cmdchat(pet_info[4])
                        end
                        if pc.getqf('petlevel_'..mobVnum) == 0 then
                        pc.setqf('petlevel_'..mobVnum,1)
                        end
                        syschat("Dein Haustier wurde gerufen.")
                        pet_system.givebonus(pc.getqf('petlevel_'..mobVnum))
                        local expprocent1 = {20, 80, 160, 350, 400}
                        cmdchat("PetProcentExp "..(pc.getqf("exp_"..mobVnum)/expprocent1[pc.getqf("petlevel_"..mobVnum)]).."")                 
                        cmdchat("ShowPetGui")
                        loop_timer("bugcheck", 0.2)
                    else
                        syschat("Du hast bereits ein Haustier gerufen!")
                    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
        when kill with not npc.is_pc() begin
            local mobVnum = pc.getqf("mobVnum")        
            if pc.getqf("petlevel_"..mobVnum) == 5 then
                return
            else
            if pc.getqf("petruf")==1 then
            --intervall = 10
            --if pc.get_level() <= mob.get_level(npc.get_race())+ intervall then -- du darfst nur max 10 lvl über das monster sein
            pc.setqf("exp_"..mobVnum,pc.getqf("exp_"..mobVnum)+1)
                    local exp2up = {2000, 8000, 16000, 35000, 40000}
                    local expprocent = {20, 80, 160, 350, 400}
                    cmdchat("PetProcentExp "..(pc.getqf("exp_"..mobVnum)/expprocent[pc.getqf("petlevel_"..mobVnum)]).."")
                    if pc.getqf("exp_"..mobVnum) == exp2up[pc.getqf("petlevel_"..mobVnum)] then
                        if pc.getqf("petlevel_"..mobVnum) == 4 then
                            say_title("Herzlichen Glückwunsch")
                            say("Dein Haustier erreicht Level "..(pc.getqf("petlevel_"..mobVnum)+1).."")
                            say_reward("Dies war das letzte Level!")
                        end
                        say_title("Herzlichen Glückwunsch")
                        say("Dein Haustier erreicht Level "..(pc.getqf("petlevel_"..mobVnum)+1).."")
                        say("Rufe dein Pet bitte erneut!")
                        pc.setqf("petlevel_"..mobVnum,pc.getqf("petlevel_"..mobVnum)+1)
                        pc.setqf("exp_"..mobVnum,0)
                        pet_system.removebonus(pc.getqf('petlevel'))
                    end
                end -- if not...
            end -- if pc.get...
        end -- when
        
                -- Bugschutz
        
        when bugcheck.timer begin
            if pc.is_dead() then
                pet_system.removebonus(pc.getqf('petlevel'))
            end
        end
        
        when login or logout or disconnect with pc.getqf("petruf") == 1 begin
            local mobVnum = pc.getqf("mobVnum")
            pet_system.removebonus(pc.getqf('petlevel_'..mobVnum))
            cmdchat("HidePetGui")
            chat("Dein Haustier ist nicht mitgekommen...")
            chat("Rufe es erneut!")
        end
        when button or info begin
            local mobVnum = pc.getqf("mobVnum")
            if pc.getqf("petruf") == 1 and pc.getqf("petguishow") == 1 then
                cmdchat("HidePetGui")
                pc.setqf("petguishow",0)
                syschat("Dein Haustierfenster wurde geschlossen, du kannst es über den Button im Inventar erneut öffnen!")
            elseif pc.getqf("petruf") == 1 and pc.getqf("petguishow") == 0 then
                cmdchat("ShowPetGui")
                local expprocent1 = {20, 80, 160, 350, 400}
                cmdchat("PetProcentExp "..(pc.getqf("exp_"..mobVnum)/expprocent1[pc.getqf("petlevel_"..mobVnum)]).."")  
                pc.setqf("petguishow",1)
                syschat("Dein Haustierfenster wurde geöffnet, du kannst es über den Button im Inventar wieder schließen!")
            elseif pc.getqf("petruf") == 0 then
                syschat("Du hast kein Haustier gerufen!")
            end
        end
            
    end -- state
end -- quest

Partea de client:
https://www.elitepvpers.com/forum/metin ... elbar.html
Ai nevoie de support? Contacteaza-ma!

Contact!
Discord: Dragos001#6927
Afișează semnătura
Avatar utilizator
adrianadyy
Nivel 4

Nivel 4
Mesaje: 662
Membru din: 09 Ian 2017, 20:18
Server: Odisian2
Regat: Shinsoo
Aprecieri: 38  
Mulţumiri: 8  
 Contact:
Medalii

Nu merge
https://www.facebook.com/Metin2Odisian/
Pvm-pvp max lv 105
Deschiderea are loc pe data de 27/06/2020
site http://odisian2.com/
Afișează semnătura
Avatar utilizator
Moț
Ţepar / Untrusted User

Ţepar / Untrusted User
Mesaje: 2825
Membru din: 03 Apr 2017, 15:00
Aprecieri: 216  
Mulţumiri: 3040  
Discord: Copiază ID
Medalii

Dacă în 3 zile autorul subiectului nu va da niciun semn de viata în topic, subiectul va fi mutat în Arhivă Probleme şi Întrebări.
Imagine
Afișează semnătura
Închis

Înapoi la “Arhivă Probleme şi Întrebări”

  • Informaţie
  • Cine este conectat

    Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 53 vizitatori