Problema cateva questuri ( core dumped)

Înainte de a posta o problemă, caută în acest forum și poate găsești rezolvare.
Închis
Avatar utilizator
necroreborn1122
Nivel 2

Nivel 2
Mesaje: 266
Membru din: 30 Noi 2014, 18:02
Server: Metin2 Craiova
Regat: Jinno
Aprecieri: 5  
Mulţumiri: 106  
Medalii

Deci am aceste questuri , si imi da core dumped , care sa fie problema?

1:

Cod: Selectaţi tot

quest dragon_soul begin
	state start begin
		when levelup or letter with pc.level >= 30 begin
			send_letter(gameforge.dragon_soul._1010_sendLetter)
			local v = find_npc_by_vnum(20001)
			
			if 0 != v then
				target.vid("__TARGET__", v, mob_name(20001))
			end
		end
		when info or button begin
			say(gameforge.dragon_soul._1020_say)
		end

		when 20001.chat.gameforge.dragon_soul._1030_npcChat with pc.level >= 30 begin
			target.delete("__TARGET__")

			say_title(mob_name(20001))
			say(gameforge.dragon_soul._1040_say)
			set_state(state_learning)
		end
	end
	state state_learning begin
		when letter begin
			send_letter(gameforge.dragon_soul._1050_sendLetter)
		end
		when info or button begin
			say(gameforge.dragon_soul._1060_say)
		end
		when kill begin
			if npc.is_pc() then
				return
			end
			------------
			if pc.get_map_index() >= 2400000 and pc.get_map_index() <= 2405000 or pc.get_map_index() >= 2350000 and pc.get_map_index() <= 2355000 then
			return
			else
			-----------------------
				if pc.getf("dragon_soul","drop_on") == 1 then
					if pc.count_item(30270) < 15 then
						if drop_gamble_with_flag("ds_drop") then
							
							game.drop_item_with_ownership(30270)
							
						end
					end
				end
			-------------------------
			end
			------------
		end
		when 20001.chat.gameforge.dragon_soul._1050_sendLetter begin
			say_title(mob_name(20001))
			if pc.count_item(30270) >= 10 then
				say(gameforge.dragon_soul._1070_say)
				pc.remove_item(30270, 10)
				ds.give_qualification()
				char_log(pc.get_player_id(), 'DS_QUALIFICATION', 'SUCCESS')
				pc.give_item2(50255)
				local today = math.floor(get_global_time() / 86400)
				pc.setf("dragon_soul", "eye_timestamp", today)
				pc.setf("dragon_soul", "eye_left", 3)
				set_state(state_farming)
			else
				say(gameforge.dragon_soul._1080_say)
			end
		end
	end
	state state_farming begin
		when letter begin
			send_letter(gameforge.dragon_soul._1090_sendLetter)
		end
		when info or button begin
			say(string.format(gameforge.dragon_soul._1100_say, pc.getf("dragon_soul", "eye_left")))
		end
		when kill begin
			if npc.is_pc() then
				return
			end
			---------
			if pc.get_map_index() >= 2400000 and pc.get_map_index() <= 2405000 or pc.get_map_index() >= 2350000 and pc.get_map_index() <= 2355000 then
			return
			else
			------------------------------------
				if pc.getf("dragon_soul","drop_on") == 1 then
				if drop_gamble_with_flag("ds_drop") then
					local eye_left = pc.getf("dragon_soul", "eye_left")
					local haved_gemstone_number = pc.count_item(30270)
					
					if eye_left > haved_gemstone_number / 10 then
						
						game.drop_item_with_ownership(30270)
						
					end
				end
				end
				----------------------------
			end
			-----------
		end
		when 30270.pick begin
			local eye_left = pc.getf("dragon_soul", "eye_left")
			if eye_left <= 0 then
				return
			end

			if pc.count_item(30270) >= 10 then
				pc.setf("dragon_soul", "eye_left", eye_left - 1)
				pc.remove_item(30270, 10)
				pc.give_item2(50255)
				if 1 == eye_left then
					notice_multiline(gameforge.dragon_soul._1110_notice, notice)
					set_state(state_closed_season)
				end
			end
		end
		when 20001.chat.gameforge.dragon_soul._1120_npcChat begin
			say_title(mob_name(20001))
			local today = math.floor(get_global_time() / 86400)
			if today == pc.getf("dragon_soul", "eye_timestamp") then
				say(gameforge.dragon_soul._1130_say)
			else
				say(gameforge.dragon_soul._1140_say)
				pc.setf("dragon_soul", "eye_timestamp", today)
				pc.setf("dragon_soul", "eye_left", 3)
				pc.setf("dragon_soul","drop_on",1)
			end	
		end
	end
	state state_closed_season begin
		when letter begin
			send_letter(gameforge.dragon_soul._1150_sendLetter)
		end
		when info or button begin
			say(gameforge.dragon_soul._1160_say)
			local today = math.floor(get_global_time() / 86400)
			if today == pc.getf("dragon_soul", "eye_timestamp") then
				say(gameforge.dragon_soul._1170_say)
			else
				say(gameforge.dragon_soul._1180_say)
			end
		end
		
		when 20001.chat.gameforge.dragon_soul._1090_sendLetter begin
			say_title(mob_name(20001))
			local today = math.floor(get_global_time() / 86400)
			if today == pc.getf("dragon_soul", "eye_timestamp") then
				say(gameforge.dragon_soul._1130_say)
			else
				say(gameforge.dragon_soul._1140_say)
				pc.setf("dragon_soul", "eye_timestamp", today)
				pc.setf("dragon_soul", "eye_left", 3)
				set_state(state_farming)
			end
		end
	end
	-- deprecated states. so, jump to new state.
	state state_1 begin
		when login begin
			set_state(state_learning)
		end
	end
	state state_2 begin
		when login begin
			set_state(state_learning)
		end
	end
	state state_3 begin
		when login begin
			set_state(state_closed_season)
		end
	end
end

2:

Cod: Selectaţi tot

quest dragon_soul_refine begin
	state start begin
		when 20001.chat.gameforge.dragon_soul_refine._010_npcChat with ds.is_qualified() != 0 begin
			say_title(mob_name(20001))
			say (gameforge.dragon_soul_refine._020_say)
			ds.open_refine_window()
		end
	end
end
3:

Cod: Selectaţi tot

quest energy_system begin
	state start begin
		when 20001.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"] = 
				{
					["40to75"] = {30,55,70,80,90,95,97,98,99,100},
					["76to85"] = {20,40,60,75,85,91,96,98,99,100},
					["upto85"] = {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 20001.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() < 40 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 20001.take begin
			if pc.get_level() < 65 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 < 40 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 >= 40 and levelLimit <= 75 then
						n = energy_system.getItemNum ("40to75",r)
					elseif levelLimit > 75 and levelLimit <= 85 then
						n = energy_system.getItemNum ("75to85",r)
					else
						n = energy_system.getItemNum ("upto85",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 20001.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() < 40 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
Acestea 3 sunt de la alchimie , am avut 5 ,dintre care 2 au mers iar astea 3 dau core dumped .

Iar acesta este de la butonul de stergere item din inventar :

Cod: Selectaţi tot

quest borrar_items begin
   state start begin
      
      when login begin
         cmdchat("BORRAR QID|"..q.getcurrentquestindex())
      end
      
      when button or info begin
         cmdchat("BORRAR INPUT|1")
         local shang = split(input(cmdchat("BORRAR SEND|")), "|")
         cmdchat("BORRAR INPUT|0")
         
         if shang[1] == "BORRAR" then
            borrar_items.Borrar(tonumber(shang[2]), tonumber(shang[3]))
         end
      end
      
      function Borrar(slot, vnum)
         item.select_cell(slot)
         local item_vnum, item_count, item_id = item.get_vnum(), item.get_count(), item.get_id()
         mysql_query("INSERT INTO log.log_delete (account_id, name, id_item, vnum, count, attrtype0, attrvalue0, attrtype1, attrvalue1, attrtype2, attrvalue2, attrtype3, attrvalue3, attrtype4, attrvalue4, attrtype5, attrvalue5, attrtype6, attrvalue6, socket0, socket1, socket2) VALUES("..pc.get_account_id()..", '"..pc.get_name().."', "..item_id..", "..item_vnum..", "..item_count..", "..item.get_attr(0)[1]..", "..item.get_attr(0)[2]..", "..item.get_attr(1)[1]..", "..item.get_attr(1)[2]..", "..item.get_attr(2)[1]..", "..item.get_attr(2)[2]..", "..item.get_attr(3)[1]..", "..item.get_attr(3)[2]..", "..item.get_attr(4)[1]..", "..item.get_attr(4)[2]..", "..item.get_attr(5)[1]..", "..item.get_attr(5)[2]..", "..item.get_attr(6)[1]..", "..item.get_attr(6)[2]..", "..item.get_socket(0)..", "..item.get_socket(1)..", "..item.get_socket(2)..");")         
         if is_test_server() then
            syschat("---- Debug ----")
            syschat("Vnum: "..tostring(vnum))
            syschat("Slot: "..tostring(slot))
            syschat("ID: "..tostring(item.get_id()))
            syschat("---- End_Debug ----")
         end
         item.remove_stack()
      end
   end
end
Imagine
Afișează semnătura
Avatar utilizator
MariusExygo
Fost Helper

Fost Helper
Mesaje: 2063
Membru din: 09 Mar 2014, 15:47
Server: WildFantasy
Regat: Jinno
Aprecieri: 156  
Mulţumiri: 226  
  Rezolvări prob.: 4
Discord: Copiază ID
 Contact:
Medalii

Si tu vrei sa-ti verificam toate questurile? pana si o paranteza daca nu e inchisa numai merge
Afișează semnătura
Avatar utilizator
necroreborn1122
Nivel 2

Nivel 2
Mesaje: 266
Membru din: 30 Noi 2014, 18:02
Server: Metin2 Craiova
Regat: Jinno
Aprecieri: 5  
Mulţumiri: 106  
Medalii

Marius zis Exygo scrie:Si tu vrei sa-ti verificam toate questurile? pana si o paranteza daca nu e inchisa numai merge
Am specificat ca sunt questurile la alchimie , poate le are cineva , cum trebuie si mi le poate da , iar questul la stergere item l-am verificat si nu i-am gasit probleme , deci nu stiu de ce da core dumped . ;) Nu mai sarii asa ;)
Imagine
Afișează semnătura
Avatar utilizator
Gaz3rNr1
Nivel 6

Nivel 6
Mesaje: 983
Membru din: 19 Oct 2015, 19:13
Server: Se lucrează !
Regat: Jinno
Aprecieri: 1  
Mulţumiri: 571  
 Contact:
Medalii

Nu ai funcțiile un quest_funcțion, postează tot ce zice în putty după ce dai ./qc numequest.lua/quest
Ca să văd ce-ți lipsește !
Nu imi place realitatea, de asta trăiesc în lumea mea !
Afișează semnătura
Avatar utilizator
necroreborn1122
Nivel 2

Nivel 2
Mesaje: 266
Membru din: 30 Noi 2014, 18:02
Server: Metin2 Craiova
Regat: Jinno
Aprecieri: 5  
Mulţumiri: 106  
Medalii

Gaz3rNr1 scrie:Nu ai funcțiile un quest_funcțion, postează tot ce zice în putty după ce dai ./qc numequest.lua/quest
Ca să văd ce-ți lipsește !
Incerc sa le pun exact pe sf-ul pe care lucrezi tu ( postat de tine , cel al lui cartof)
Macar cel cu stergerea item sa mearga..
Asta imi da pentru butonul de stergere item :

Cod: Selectaţi tot

root@ovinetwork:/usr/game/share/locale/romania/quest # ./qc stergeitem.quest
QUEST : borrar_items
STATE : start
WHEN  : login
WHEN  : button or
WHEN  : info
FUNCTION Borrar(slot,vnum)
Calls undeclared function! :
item.get_attr
item.remove_stack
mysql_query
split
Abort (core dumped)
Iar pentru alchimie :

Cod: Selectaţi tot

root@ovinetwork:/usr/game/share/locale/romania/quest # ./qc dragon_soul.quest
QUEST : dragon_soul
STATE : start
WHEN  : levelup or
WHEN  : letter
        with pc . level >= 30
WHEN  : info or
WHEN  : button
WHEN  : 20001.chat (gameforge.dragon_soul._1030_npcChat)
        with pc . level >= 30
STATE : state_learning
WHEN  : letter
WHEN  : info or
WHEN  : button
WHEN  : kill
WHEN  : 20001.chat (gameforge.dragon_soul._1050_sendLetter)
STATE : state_farming
WHEN  : letter
WHEN  : info or
WHEN  : button
WHEN  : kill
WHEN  : 30270.pick
WHEN  : 20001.chat (gameforge.dragon_soul._1120_npcChat)
STATE : state_closed_season
WHEN  : letter
WHEN  : info or
WHEN  : button
WHEN  : 20001.chat (gameforge.dragon_soul._1090_sendLetter)
STATE : state_1
WHEN  : login
STATE : state_2
WHEN  : login
STATE : state_3
WHEN  : login
Calls undeclared function! :
drop_gamble_with_flag
ds.give_qualification
Abort (core dumped)

Cod: Selectaţi tot

root@ovinetwork:/usr/game/share/locale/romania/quest # ./qc dragon_soul_refine.quest
QUEST : dragon_soul_refine
STATE : start
WHEN  : 20001.chat (gameforge.dragon_soul_refine._010_npcChat)
        with ds . is_qualified ( ) ~= 0
Calls undeclared function! :
ds.open_refine_window
Abort (core dumped)

Cod: Selectaţi tot

root@ovinetwork:/usr/game/share/locale/romania/quest # ./qc energy_system.quest
QUEST : energy_system
STATE : start
WHEN  : 20001.chat (gameforge.energy_system._001_npcChat)
STATE : can_make
FUNCTION setting()
FUNCTION getItemNum(str,r)
WHEN  : 20001.chat (gameforge.energy_system._035_npcChat)
WHEN  : 20001.take
WHEN  : 20001.chat (gameforge.energy_system._160_npcChat)
Calls undeclared function! :
item.get_level_limit
Abort (core dumped)
Imagine
Afișează semnătura
Avatar utilizator
Luca Dr3Ame3r Cristian
Membru Club

Membru Club
Mesaje: 333
Membru din: 09 Noi 2015, 03:03
Server: /dev/pf
Regat: Jinno
Aprecieri: 20  
Mulţumiri: 32  
Medalii

Adauga in quest_functions din /usr/home/game/share/locale/germany/quest/quest_functions
asa:

Cod: Selectaţi tot

item.get_level_limit
ds.open_refine_window
drop_gamble_with_flag
ds.give_qualification
item.get_attr
item.remove_stack
mysql_query
split
Imagine
ImagineImagine
Afișează semnătura
Avatar utilizator
necroreborn1122
Nivel 2

Nivel 2
Mesaje: 266
Membru din: 30 Noi 2014, 18:02
Server: Metin2 Craiova
Regat: Jinno
Aprecieri: 5  
Mulţumiri: 106  
Medalii

Luca Dr3Ame3r Cristian scrie:Adauga in quest_functions din /usr/home/game/share/locale/germany/quest/quest_functions
asa:

Cod: Selectaţi tot

item.get_level_limit
ds.open_refine_window
drop_gamble_with_flag
ds.give_qualification
item.get_attr
item.remove_stack
mysql_query
split
Mersi mult. Acum au mers toate 4 . T/C .
Imagine
Afișează semnătura
Avatar utilizator
Gaz3rNr1
Nivel 6

Nivel 6
Mesaje: 983
Membru din: 19 Oct 2015, 19:13
Server: Se lucrează !
Regat: Jinno
Aprecieri: 1  
Mulţumiri: 571  
 Contact:
Medalii

Rezolvat !
Nu imi place realitatea, de asta trăiesc în lumea mea !
Afișează semnătura
Închis
Răspunsuri
3
Vizualizări
201
Răspunsuri
7
Vizualizări
435
Răspunsuri
4
Vizualizări
461
Răspunsuri
26
Vizualizări
1884

Înapoi la “Probleme rezolvate”

  • Informaţie
  • Cine este conectat

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