Sistem alchimie si curele

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

Nivel 3
Mesaje: 303
Membru din: 07 Apr 2015, 19:27
Server: Metin2VDS
Regat: Jinno
Aprecieri: 1  
Mulţumiri: 9  
 Contact:
Medalii

Salutare Just4Metin

Ma poate ajuta si pe mine cineva cu un sistem de alchimie Piatra Dragon si unul de curele va rog foarte mult.

PS: client 34k nu am casutele pentru curele si ringuri si nici casuta pentru piatra dragon in dreapta inventarului.

Daca ma puteti ajuta sa imi spuneti daca merge sa implementez pe 34k acesate sisteme si daca nu pot, cum pot transforma serverul din 34k in 40k


Multumesc anticipat!
Imagine
Servicii complete de găzduire, mentenanță și promovare online, utilizăm doar software licențiat și echipamente bare metal.
Afișează semnătura
Avatar utilizator
Alexandru™
Nivel 5

Nivel 5
Mesaje: 758
Membru din: 08 Sep 2015, 15:27
Server: Metin2Nefrax
Regat: Jinno
Aprecieri: 0
Mulţumiri: 68  
Medalii

System de energie:
quest energy_sys begin

Cod: Selectaţi tot

    state start begin
        when 20001.chat."O nouă descoperire" with game.get_event_flag("energy") == 1 begin
            say("Nu-mi vine să cred, am reuşit!")
            say("În sfârşit am creat noul sistem de energie pură. ")
            say("Am să îţi spun cum, fii atent. Această energie stă ")
            say("în jurul fiecăruia. Am încercat să extrag această ")
            say("energie din arme şi armuri. A fost foarte dificil.")
            say("dar am reuşit, în sfârşit !")
            wait()
            say_title("Alchimist")
            say("Dacă cumva eşti interesat de acest sistem, adu-mi")
            say("arme, armuri pentru a le transforma în")
            say("Fragment de Energie. Dacă vei avea noroc, voi face")
            say("ca aceste fragmente ce le-ai adunat să se unească ")
            say("între ele, şi îţi vor oferi un Cristal de Energie.")
            say("Sper că acest sistem va ajuta multă lume.")
            set_state("make")
        end
    end
    state make begin
        when 20001.chat."Informaţii despre Fragmente de energie" with game.get_event_flag("energy") == 1 begin
         say_title("Alchimist")
            say("Acum ştii cum funcţionează treaba. Fii atent")
            say("că aceste iteme pe care le aduci se transformă în")
            say("Fragment de energie. Nu te vei mai putea folosi de")
            say("aceste iteme. Energia extrasă din ele este foarte")
            say("puternică şi oferă unele bonusuri mari.")
            say("Trebuie să ştii o condiţie înainte să începem")
            say("această transformare.")
         say("Ai nevoie de nivelul minim 75.")
         say("Hm, vom vedea imediat nivelul tău.")
         say("")
            wait()
            if pc.get_level() < 75 then
                say_title("Alchimist")
            say("Să vedem ...")
            say_reward(string.format("Nivelul tău: %d", pc.get_level()))
                say("Oh, îmi pare rău, dar trebuie să ai nivelul 75")
                say("pentru a putea utiliza această energie.")
            else -- NICHT DE
                say_title("Alchimist")
            say("Să vedem ...")
            say_reward(string.format("Nivelul tău: %d", pc.get_level()))
                say("Perfect! Se pare că ai nivelul necesar pentru acest")
                say("sistem nou de energie")
            say("")   
            end
            
        end
        
        when 20001.chat."Obţine Fragment de Energie" with game.get_event_flag("energy") == 1 begin
            say_title("Alchimist")
            say("Pentru a obţine fragment de energie, trage item-ul")
            say("ce doreşti să îl transformi pe mine.")
            say("Ai nevoie de 50 Fragmente de Energie pentru")
            say("a face Energie Pură.")
            wait()
            if pc.get_level() < 75 then
                say_title("Alchimist")
                say("Oh, ce păcat, nu ai nivelul 75 pentru a putea")
                say("utiliza această energie.")
            say("")
            else
                if pc.count_item(51001) >= 50 then
                    say_title("Alchimist")
                    say("Se pare că ai la tine cele 50 de Fragmente")
                    say("de Energie. Doreşti să transform această energie")
                    say("în energie pură ? ")
                    say("Pot încerca, dar nu garantez că voi reuşi.")
                    wait()
                    say_title("Alchimist")
                    say("Totodată, am nevoie şi de o sumă de bani.")
                    say("Ştii, aş fi putut să îţi dau şi gratis")
                    say("dar am nevoie pentru a întreţine proiectul.")
                    say_reward("Ai nevoie de 50.000.000 Yang")
                    say("Ce alegi ?")
                    if select("Doresc energie pură! ","M-am răzgândit") == 2 then
                        return
                    end
                    
                    pc.change_money(-50000000)
                    pc.remove_item(51001,50)
                    
                    if number(0,1) == 1 then
                        say_title("Alchimist")
                        say("Am reuşit !")
                        say("Ai primit Energie Pură. Ai mare grijă de ea.")
                        say("Aceasta are o putere foarte mare.")
                        pc.give_item2(51002,1)
                    else -- NICHT DE
                        say_title("Alchimist")
                        say("Oh, ce păcat. Fragmentele sunt sparte.")
                        say("Transformarea a eşuat.")
                  say("")
                        return
                    end
                    
                else -- NICHT DE
                    say_title("Alchimist")
                    say("Se pare că nu ai la tine cele 50 de fragmente")
                    say("de emergie. Mai adu-mi iteme pentru")
                    say("a face mai multe fragmente.")
               say("")
                    return
                end
                
            end
        end

        when 20001.take with game.get_event_flag("energy") == 1 begin
            if pc.get_level() < 75 then
                return
            end
            
            if item.get_type() == 1 or item.get_type() == 2 then
            
--                2070 - 2239
--                80 - 369
--                1040 - 1189
--                3070 - 3249
--                5040 - 5359
--                4030 - 4069
--                7070 - 7219
--                11250 - 11299
--                11450 - 11499
--                11650 - 11699
--                11850 - 11899
--                12240 - 12699

                local maxlvl = mysql_query("SELECT limitvalue0 FROM player.item_proto WHERE vnum='"..item.get_vnum().."' LIMIT 1;")
                test_chat(maxlvl[1][1])
                if tonumber(maxlvl[1][1]) < 35 then 
                    -- NICHT DE
                    say_title("Alchimist")
                    say("Acest articol nu se potriveşte.")
                    return
                end
            
                say_title("Alchimist")
                say(string.trim(item.get_name()))
                say("Chiar doreşti să distrugi acest obiect?")
                if select("Da!","Nu, nu încă ") == 2 then
                    return
                else
                    local anzahl = number(0,15)
                    if anzahl > 0 then
                        say_title("Alchimist")
                        say("Felicitări. Ai primit "..anzahl.." Fragmente.")
                        say("Mai adu-mi iteme.")
                        pc.give_item2(51001, anzahl)
                    else
                        say_title("Alchimist")
                        say("Am eşuat. Din păcate nu am putut extrage energia")
                        say("din acest obiect.")
                        return
                    end
                    item.remove()
                end
                
            else -- NICHT DE
                say_title("Alchimist")
                say("Acest item nu are energie!")
            end
        end
        
        when login begin
            if getenergytime() < 50000 then
                test_chat("[Energie]Timp rămas: "..getenergytime())
                setenergytime(getenergytime() + get_time())
                cmdchat("energysystem "..getenergytyp().."|"..getenergyvalue().."#"..getenergytime())
            end
        end
        when logout begin
            if getenergytime() > get_time() then
                local energy = getenergytime() - get_time()
                if energy > 0 then
                    setenergytime(energy)
                end
            end
        end
        
        when 51002.use begin
            if getenergytime() > get_time() then
                chat("Foloseşti deja un Cristal de Energie!")
                return
            end
            
            local anz = number(1,10)
            boni_list = {}
            boni_list [1] = {apply.ATTBONUS_HUMAN,    15}
            boni_list [2] = {apply.ATTBONUS_MONSTER,    10}
            boni_list [3] = {apply.CRITICAL_PCT,    10}
            boni_list [4] = {apply.PENETRATE_PCT,    10}
            boni_list [5] = {apply.MAX_HP,    1000}
            boni_list [6] = {apply.MAX_SP,    2000}
            boni_list [7] = {apply.HP_REGEN,    30}
            boni_list [8] = {apply.STEAL_HP,    10}
            boni_list [9] = {apply.ATT_GRADE_BONUS,    75}
            boni_list [10] = {apply.ATT_GRADE_BONUS,    50}
            
            test_chat(anz)
            test_chat(boni_list[anz][1])
            test_chat(boni_list[anz][2])

            affect.add_collect(boni_list[anz][1],boni_list[anz][2],7200)
            setenergy(anz,boni_list[anz][2],get_time() + 7200)

            cmdchat("energysystem "..anz.."|"..boni_list[anz][2].."#"..(get_time() + 7200))
            
            setenergytime(get_time() + 7200)
            
            item.remove()
            chat("Chiar simt energia Cristalului care curge prin venele mele.")
            
        end
    end
end
Si quest energy_system:

Cod: Selectaţi tot

quest energy_manage begin 
    state start begin 
        when 20001.chat."GM: Sistemul de energie" with pc.is_gm() begin 
            say_title("Salutare!") 
            say("Bine ai venit la Energy Event!")
         say_reward("Ce doreşti să faci?") 
            local s = select("Porneşte event","Opreşte event","Înapoi") 
            if s == 1 then 
                game.set_event_flag("energy",1) 
                notice_all("Event: Sistemul de energie a fost pornit.") 
            elseif s == 2 then 
                game.set_event_flag("energy",0) 
                notice_all("Event: Sistemul de energie a fost oprit") 
            elseif s == 3 then 
                return 
            end 
        end 
    end 
end
Instalare quest:
1. Uploadaţi fişierele .quest în usr/.../share/locale/.../quest
2. Vă logaţi în putty şi scrieţi comanda cd usr/.../share/locale/.../quest (în funcţie de serverfilles-ul instalat şi directorul instalării)
3. ./qc energy_sys.quest
./qc energy_manage.quest
4. Reboot la server.

Quest function necesar pentru quest-uri:

Cod: Selectaţi tot

getenergytime
getenergytyp
getenergyvalue
mysql_query
setenergy
setenergytime
string.trim
Iar quest-ul implementare curele:

Cod: Selectaţi tot

quest 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("You dont have "..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('Your belt received a bonus.')
                        else
                            syschat('Wasnt possible to put a bonus in your belt.')
                        end
                    end
                end
                pc.remove_item(18900, 1)
            end
        end
    end
end
#1 Descarca: http://www.girlshare.ro/34074902.4
#2 Descarca: https://www.mediafire.com/?17fjn8a6im799ao
#3 Descarca: https://mega.co.nz/#!wJNV1LoK!RshrYG7HX ... WL2xJ30iPo
Imagine
Afișează semnătura
Avatar utilizator
iNooB
Nivel 3

Nivel 3
Mesaje: 303
Membru din: 07 Apr 2015, 19:27
Server: Metin2VDS
Regat: Jinno
Aprecieri: 1  
Mulţumiri: 9  
 Contact:
Medalii

Salutare Alexandru, sistemul energie il am, imi trebuie sistem Curele si Alchimie Piatra Dragon

Cand intru in putty si folosesc comanda ./qc belts.quest imi apare asta


Calls undeclared function! :
item2.equip
item2.get_attr
item2.set_attr
pc2.give_or_drop_item_and_select
Abort (core dumped)
Imagine
Servicii complete de găzduire, mentenanță și promovare online, utilizăm doar software licențiat și echipamente bare metal.
Afișează semnătura
Avatar utilizator
Alexandru™
Nivel 5

Nivel 5
Mesaje: 758
Membru din: 08 Sep 2015, 15:27
Server: Metin2Nefrax
Regat: Jinno
Aprecieri: 0
Mulţumiri: 68  
Medalii

Încearcă să intri în quest_function ( in /locale/romania/quest) si in ultimull rand, adaugi acele functii nedefinite; in cazul tău "item2.equip
item2.get_attr
item2.set_attr
pc2.give_or_drop_item_and_select".
Salvează, apoi compilează quest-urile din nou!
Imagine
Afișează semnătura
Avatar utilizator
iNooB
Nivel 3

Nivel 3
Mesaje: 303
Membru din: 07 Apr 2015, 19:27
Server: Metin2VDS
Regat: Jinno
Aprecieri: 1  
Mulţumiri: 9  
 Contact:
Medalii

Gata am rezolvat multumesc dar sistemul de Alchimie piatra dragon, cel care poti face pietre brut/rar/legendar stii la ce ma refer?
Imagine
Servicii complete de găzduire, mentenanță și promovare online, utilizăm doar software licențiat și echipamente bare metal.
Afișează semnătura
Avatar utilizator
Alexandru™
Nivel 5

Nivel 5
Mesaje: 758
Membru din: 08 Sep 2015, 15:27
Server: Metin2Nefrax
Regat: Jinno
Aprecieri: 0
Mulţumiri: 68  
Medalii

iNooB scrie:Gata am rezolvat multumesc dar sistemul de Alchimie piatra dragon, cel care poti face pietre brut/rar/legendar stii la ce ma refer?
Poftim: http://just4metin.ro/server-ajutor/alch ... t6395.html ! :)
Imagine
Afișează semnătura
Avatar utilizator
iNooB
Nivel 3

Nivel 3
Mesaje: 303
Membru din: 07 Apr 2015, 19:27
Server: Metin2VDS
Regat: Jinno
Aprecieri: 1  
Mulţumiri: 9  
 Contact:
Medalii

In acel download am lib_belts_34k si in acel folder am libgame_item_pc2.so si libstdc6++.so.6 imi poti spune ce trebuie sa fac cu ele?
Imagine
Servicii complete de găzduire, mentenanță și promovare online, utilizăm doar software licențiat și echipamente bare metal.
Afișează semnătura
Avatar utilizator
Alexandru™
Nivel 5

Nivel 5
Mesaje: 758
Membru din: 08 Sep 2015, 15:27
Server: Metin2Nefrax
Regat: Jinno
Aprecieri: 0
Mulţumiri: 68  
Medalii

Le bagi în /usr/lib/
Imagine
Afișează semnătura
Avatar utilizator
iNooB
Nivel 3

Nivel 3
Mesaje: 303
Membru din: 07 Apr 2015, 19:27
Server: Metin2VDS
Regat: Jinno
Aprecieri: 1  
Mulţumiri: 9  
 Contact:
Medalii

direct acolo sau mai exista alt fisier in lib?
Imagine
Servicii complete de găzduire, mentenanță și promovare online, utilizăm doar software licențiat și echipamente bare metal.
Afișează semnătura
Avatar utilizator
iNooB
Nivel 3

Nivel 3
Mesaje: 303
Membru din: 07 Apr 2015, 19:27
Server: Metin2VDS
Regat: Jinno
Aprecieri: 1  
Mulţumiri: 9  
 Contact:
Medalii

imi spuneti va rog unde bag fisierele acelea, direct in lib sau mai exista un alt folder acolo in care trebuie puse?
Imagine
Servicii complete de găzduire, mentenanță și promovare online, utilizăm doar software licențiat și echipamente bare metal.
Afișează semnătura
Închis
Răspunsuri
5
Vizualizări
496
Răspunsuri
5
Vizualizări
681
Răspunsuri
3
Vizualizări
1369

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

  • Informaţie
  • Cine este conectat

    Utilizatori ce ce navighează pe acest forum: Bing [Bot] și 121 vizitatori