Problema quest Cristal de Energie

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

Nivel 3
Mesaje: 434
Membru din: 06 Apr 2017, 10:41
Aprecieri: 100  
Mulţumiri: 3  
Medalii

*Problemă: Salut. Questul pentru Cristal de Energie nu cred ca imi functioneaza asa cum ar trebui. In primul rand, la folosirea Cristalului nu imi dau seama ce bonus primesc cu toate ca am lista de bonusuri in timp real, iar in al 2-lea rand, dupa folosire nu specifica bonusul primit si nici nu spune in chat: "Simt energia cristalului cum curge prin venele mele." Lipseste ceva din quest sau vreo functie? As dori sa stiu ce functie sa adaug sau ce pot schimba sa specifice si sa arate bonusul primit. Multumesc
Tipologie server: PvP PvM
*Resursă folosită:
*ServerFiles utilizat: Happiness
*Syserr:
Poză:
*Detalii suplimentare:

Cod: Selectaţi tot

quest energy_system begin
    state start begin
		when 20001.chat."O nouă descoperire" with game.get_event_flag("energy") == 1 begin			
				say_title("Alchimist:")
				say("")
				say("Nu-mi vine să cred! Am reuşit!")
				say("În sfârsit am creat noul sistem de energie pură.")
				say("Am să îti 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ârsit!")
				say("")
				wait()			      
				say_title("Alchimist:")
				say("")
				say("Dacă cumva eşti interesat de acest sistem, adu-mi")
				say("arme şi armuri pentru a le transforma în fragmente")
				say("de energie. Dacă vei avea noroc, voi face ca aceste")
				say("fragmente ce le-ai adunat să se unească între ele")
				say("şi se for transforma într-un cristal de energie.")
				say("Sper că acest sistem va ajuta multă lume.")	
				say("")
				set_state("make")			
			end
		end	
    state make begin
        when 20001.chat."Informaţii despre fragmentele de energie" with game.get_event_flag("energy") == 1 begin		
			say_title("Alchimist:")
			say("")
            say("Acum ştii cum funcţionează. Aceste obiecte pe")
			say("care mi le aduci le voi transforma în Fragmente")
			say("de Energie si nu le vei mai putea folosi.")
			say("Energia extrasă din ele îţi va oferi un bonus")
			say("aleatoriu timp de 2h. Ca să faci Fragmente de")
			say("Energie trebuie să ai minim nivelul 35.")			
			say("")
				wait()			
            if pc.get_level() < 35 then			
				say_title("Alchimist:")
				say("")
				say("Oh, îmi pare rău, dar trebuie să ai nivelul 35")
				say("pentru a putea crea Energie Pură.")	
				say("")
            else 			
				say_title("Alchimist:")
				say("")
                say("Perfect! Se pare că ai nivelul necesar pentru a")
				say("crea energie pură.")			
				say("")
            end           
        end        
        when 20001.chat."Obţine fragmente de energie" with game.get_event_flag("energy") == 1 begin		
			say_title("Alchimist:")
			say("")
			say("Pentru a face energie pură ai nevoie de cel puţin")
			say("30 fragmente de energie.")
			say("")
			wait()
				if pc.get_level() < 35 then			
				say_title("Alchimist:")
				say("")
                say("Oh, ce păcat, nu ai nivelul 35 pentru a putea")
				say("crea energie pură.") 	
				say("")
            else
                if pc.count_item(51001) >= 30 then				
					say_title("Alchimist:")
					say("")
                    say("Se pare că ai cele 30 de Fragmente de Energie.")
					say("Vrei să transform această energie în Energie Pură?")
					say("Pot încerca, dar nu garantez că voi reuşi.")
					say("")
						wait()					
					say_title("Alchimist:")
					say("")
					say("Totodată, am nevoie şi de o sumă de bani.")
					say("Ştii, aş fi putut să îţi fac şi gratis")
					say("dar am nevoie pentru a întreţine proiectul...")
					say("Te va costa 500.000 Yang.")
					say("Eşti sigur că doreşti să creezi energie?")
					say("")
					
                    if select("Da","Nu") == 2 then
					
                        return
                    end
                    
                    pc.change_money(-500000)
                    pc.remove_item(51001,30)
                    
                    if number(0,1) == 1 then					
						say_title("Alchimist:")
						say("")
                        say("Am reuşit să creez Energie Pură.")
						say("")
						say_item("Ai primit un Cristal de Energie", 51002, "")	 
                        pc.give_item2(51002,1)						
                    else 					
						say_title("Alchimist:")
						say("")
                        say("Oh, ce păcat. Fragmentele sunt sparte.")
						say("Transformarea a eşuat.")
						say("")
                        return
                    end                  
                else 				
						say_title("Alchimist:")
						say("")
                        say("Se pare că nu ai la tine cele 30 de Fragmente")
						say("de Energie. Mai adu-mi obiecte pentru a face")
						say("mai multe Fragmente de Energie.")
						say("")
                    return
                end               
            end
        end
        when 20001.take with game.get_event_flag("energy") == 1 begin
            if pc.get_level() < 35 then
                return
            end
            
            if item.get_type() == 1 or item.get_type() == 2 then
                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 
					say_title("Alchimist:")
					say("")
                    say("Din acest obiect nu se poate crea energie.")	
					say("")
                    return
                end
            
				say_title("Alchimist:")
				say("")
                say(string.trim(item.get_name()))
                say("Chiar doreşti să distrugi acest obiect?")
				say("")
                if select("Da","Nu") == 2 then
                    return
                else
                    local numar = number(0,15)
                    if numar > 0 then
						say_title("Alchimist:")
						say("")
                        say("Am reuşit să extrag energia din obiect!")		
						say_item("Ai primit "..numar.." Fragment(e) de Energie", 51001, "")		
                        pc.give_item2(51001, numar)
                    else
						say_title("Alchimist:")
						say("")
                        say("Am eşuat. Din păcate nu am putut extrage energia")
						say("din acest obiect.")
						say("")
                        return
                    end
                    item.remove()
                end
                
            else
				say_title("Alchimist:")
				say("")
                say("Acest obiect nu are energie!")	
				say("")
            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 bonus = number(1,10)
            lista_bonus = {}
            lista_bonus [1] = {apply.ATTBONUS_HUMAN,    15}
            lista_bonus [2] = {apply.ATTBONUS_MONSTER,    10}
            lista_bonus [3] = {apply.CRITICAL_PCT,    10}
            lista_bonus [4] = {apply.PENETRATE_PCT,    10}
            lista_bonus [5] = {apply.MAX_HP,    1000}
            lista_bonus [6] = {apply.MAX_SP,    2000}
            lista_bonus [7] = {apply.HP_REGEN,    30}
            lista_bonus [8] = {apply.STEAL_HP,    10}
            lista_bonus [9] = {apply.ATT_GRADE_BONUS,    75}
            lista_bonus [10] = {apply.ATT_GRADE_BONUS,    50}
            
            test_chat(bonus)
            test_chat(lista_bonus[bonus][1])
            test_chat(lista_bonus[bonus][2])

            affect.add_collect(lista_bonus[bonus][1],lista_bonus[bonus][2],7200)
            setenergy(bonus,lista_bonus[bonus][2],get_time() + 7200)

            cmdchat ("energysystem "..bonus.."|"..lista_bonus[bonus][2].."#"..(get_time() + 7200))
            
            setenergytime(get_time() + 7200)
            
            item.remove()
            chat("Simt energia cristalului cum curge prin venele mele.")           
        end
    end
end
Avatar utilizator
Kidro
Membru Club

Membru Club
Mesaje: 2487
Membru din: 29 Aug 2019, 16:49
Aprecieri: 331  
Mulţumiri: 5190  
Discord: Copiază ID
Medalii

Uite un quest:

Cod: Selectaţi tot

quest energy_system begin
	state start begin
		when alchemist.chat.gameforge.energy_system._001_npcChat begin
			say_title(mob_name(20001)) 
			say(gameforge.energy_system._010_say)
			wait()
			say_title(mob_name(20001)) 
			say(gameforge.energy_system._020_say)
			wait()
			say_title(mob_name(20001)) 
			say(gameforge.energy_system._030_say)
			setstate(can_make)
		end
	end

	state can_make begin
		function setting () 
			return
			{
				["prob_acc_table"] = 
				{
					["35to50"] = {30,55,70,80,90,95,97,98,99,100},
					["51to70"] = {20,40,60,75,85,91,96,98,99,100},
					["upto70"] = {10,25,45,65,80,88,94,97,99,100}
				},
				["item_num_table"] ={0,1,2,3,4,6,8,10,12,15},
				["energy_stone"] = 51001,
				["charging_stone"] = 51002
			}
		end	
		function getItemNum ( str, r )
			local setting = energy_system.setting()
			for i = 1, 10 do
				if r < setting.prob_acc_table[str][i] then
					return setting.item_num_table[i]
				end
			end
			return 0
		end

		when alchemist.chat.gameforge.energy_system._035_npcChat begin
			say_title(mob_name(20001)) 
			say(gameforge.energy_system._040_say)
			wait()
			say_title(mob_name(20001)) 
			say(gameforge.energy_system._050_say)
			wait()
			if pc.get_level() < 35 then 
				say_title(mob_name(20001)) 
				say(gameforge.energy_system._060_say)
			else
				say_title(mob_name(20001)) 
				say(gameforge.energy_system._070_say)
			end
		end

		when alchemist.take begin
			if pc.get_level() < 35 then 
				say_title(mob_name(20001)) 
				say(gameforge.energy_system._080_say)
				return
			end
			local item_vnum = item.vnum
			local levelLimit = item.get_level_limit(item_vnum)
			local setting = energy_system.setting()
			
			if levelLimit == nil then
				say_title(mob_name(20001)) 
				say(gameforge.energy_system._090_say)
				wait()
			elseif item.get_type() == ITEM_WEAPON and item.get_sub_type() == WEAPON_ARROW then
				say_title (mob_name(20001)) 
				say (gameforge.energy_system._090_say)
				wait()
			elseif levelLimit < 35 then
				say_title(mob_name(20001)) 
				say(gameforge.energy_system._100_say)
			else
				say_title(mob_name(20001)) 
				say(item_name(item_vnum))
				say(gameforge.energy_system._110_say)
				local s = select (gameforge.energy_system._120_select,gameforge.energy_system._130_select)
				if s == 1 then
					item.remove()
					local r = number(1, 100)
					local n
					if levelLimit >= 35 and levelLimit <= 50 then
						n = energy_system.getItemNum ("35to50",r)
					elseif levelLimit > 50 and levelLimit <= 70 then
						n = energy_system.getItemNum ("51to70",r)
					else
						n = energy_system.getItemNum ("upto70",r)
					end
					if (n == 0) then
						say_title(mob_name(20001)) 
						say(gameforge.energy_system._140_say)
					else
						pc.give_item2(setting.energy_stone, n)
						say_title(mob_name(20001)) 
						say(string.format(gameforge.energy_system._150_say,n))
					end
				end
			end
		end

		when alchemist.chat.gameforge.energy_system._160_npcChat begin
			local setting = energy_system.setting()
			local need = 30
			say_title(mob_name(20001)) 
			say(string.format(gameforge.energy_system._170_say,need))
			wait()
			
			if pc.get_level() < 35 then 
				say_title(mob_name(20001)) 
				say(gameforge.energy_system._060_say)
				return
			end
			
			if pc.count_item(setting.energy_stone) < need then
				say_title(mob_name(20001)) 
				say(string.format(gameforge.energy_system._180_say,need))
				return
			else
				say_title(mob_name(20001)) 
				say(string.format(gameforge.energy_system._190_say, need))
				wait()
			end
			
			local charge = 1000
			say_title(mob_name(20001)) 
			say(string.format(gameforge.energy_system._200_say, charge))
			local s = select (gameforge.energy_system._210_select,gameforge.energy_system._220_select)
			if s == 2 then
				say_title(mob_name(20001)) 
				say(gameforge.energy_system._230_say)
				return
			end

			if pc.get_gold() < charge then
				say_title(mob_name(20001)) 
				say(gameforge.energy_system._240_say)
				return
			end
			
			if pc.count_item (setting.energy_stone) < need then
				return
			end			

			pc.change_gold(-charge)
			pc.remove_item(setting.energy_stone, need)

			if pc.getqf("hasExperience") == 0 then
				say_title(mob_name(20001)) 
				say(gameforge.energy_system._250_say)
				pc.give_item2 (setting.charging_stone, 1)
				pc.setqf("hasExperience", 1)
				return
			end

			local r = number (1, 100)
			if r > 30 then
				say_title(mob_name(20001)) 
				say(gameforge.energy_system._260_say)
				return
			end
			say_title(mob_name(20001)) 
			say(gameforge.energy_system._270_say)
			pc.give_item2(setting.charging_stone, 1)

		end
	end
end
Avatar utilizator
DragonA7X
Nivel 3

Nivel 3
Mesaje: 434
Membru din: 06 Apr 2017, 10:41
Aprecieri: 100  
Mulţumiri: 3  
Medalii

Up

[ Postat de pe Android ] Imagine
Avatar utilizator
DragonA7X
Nivel 3

Nivel 3
Mesaje: 434
Membru din: 06 Apr 2017, 10:41
Aprecieri: 100  
Mulţumiri: 3  
Medalii

up
Avatar utilizator
YoKe
Fost Helper

Fost Helper
Mesaje: 235
Membru din: 07 Ian 2015, 00:34
Regat: Chunjo
Aprecieri: 133  
Mulţumiri: 13  
 Contact:
Medalii

Posteaza sysser.
Nu raspund intrebarilor stupide in PM
Ai o problema contacteaza-ma, te ajut cand am timp .
Afișează semnătura
Avatar utilizator
YoKe
Fost Helper

Fost Helper
Mesaje: 235
Membru din: 07 Ian 2015, 00:34
Regat: Chunjo
Aprecieri: 133  
Mulţumiri: 13  
 Contact:
Medalii

Arhivat, autorul nu a mai dat nici un răspuns.

[ Postat de pe Android ] Imagine
Nu raspund intrebarilor stupide in PM
Ai o problema contacteaza-ma, te ajut cand am timp .
Afișează semnătura
Închis
Răspunsuri
16
Vizualizări
786
Răspunsuri
15
Vizualizări
1080
Răspunsuri
33
Vizualizări
1103
Răspunsuri
2
Vizualizări
71

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

  • Informaţie
  • Cine este conectat

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