Cerere sistem alchimie!

Închis
Avatar utilizator
[GF]AthoS
Nou Venit

Nou Venit
Mesaje: 1
Membru din: 20 Iul 2015, 11:10
Server: Metin2 Wanted
Regat: Jinno
Aprecieri: 0
Mulţumiri: 0
Medalii

Buna ziua vr si eu sistemul de alchimie full daca se poate!
Avatar utilizator
T3yZ
Nivel 2

Nivel 2
Mesaje: 247
Membru din: 03 Mar 2015, 19:55
Server: Nu mai am timp
Regat: Jinno
Aprecieri: 0
Mulţumiri: 0
 Contact:
Medalii

Lam gasit doar pe cel 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
Ceva mai simplu...este un quest cu care puteti porni/opri sistemul de energie.

Quest: Energy_manage

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
( realizat de cryptex )
Avatar utilizator
Ratony Montana
Membru Club

Membru Club
Mesaje: 1077
Membru din: 25 Iun 2015, 10:32
Regat: Chunjo
Aprecieri: 8  
Mulţumiri: 99  
Medalii

Nu cred ca exista asa ceva, sincer, iti trebuie un game mai nout (34, 40k) unde sunt deja implementate, nu exista resursele la Dragon Soul inca, mai ales ca pe 34k nu exista sursa.
Imagine
Afișează semnătura
Avatar utilizator
Filipino
Metin Master

Metin Master
Mesaje: 2789
Membru din: 03 Sep 2014, 21:02
Server: ▬▬▬▬▬▬
Aprecieri: 39  
Mulţumiri: 785  
Discord: Copiază ID
Medalii

Raspuns dat,mutat in cereri rezolvate!
Imagine
Afișează semnătura
Închis
Răspunsuri
0
Vizualizări
146
Răspunsuri
1
Vizualizări
349
Răspunsuri
0
Vizualizări
215
Răspunsuri
3
Vizualizări
391

Înapoi la “Cereri Rezolvate”

  • Informaţie
  • Cine este conectat

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