Jump to content

Official mount system - summon_item


Go to solution Solved by Ken,

Recommended Posts

  • Honorable Member

Hi devs,

i have question for you guys...

 

I think you know the official mount system....

 

for clarification this quest:

quest ride_ticket_change begin
	state start begin
		when 20349.chat.gameforge.ride_ticket_change._010_npcChat begin 
			say_title(mob_name (20349))
			say(gameforge.ride_ticket_change._020_say)
			wait()
			local items = {pc.get_sig_items(10032)}
			local ticket = nil
			if table.getn (items) > 1 then
				for i, v in ipairs (items) do
					item.select (v)
					say_title(mob_name(20349))
					say (gameforge.ride_ticket_change._030_say)
					say_item_vnum (item.vnum)
					say (gameforge.ride_ticket_change._040_say)
					local s = select (locale.yes, locale.no, locale.cancel)
					if s == 3 then
						return
					end
					if s == 1 then 
						ticket = v
						break
					end
				end
			else
				ticket = items [1]
			end
			if ticket == nil then
				say_title (mob_name (20349))
				say(gameforge.ride_ticket_change._050_say)
				return 
			end
			say_title (mob_name (20349))
			say(gameforge.ride_ticket_change._060_say)
			item.select (ticket)
			local s = select (gameforge.ride_ticket_change._070_say, gameforge.ride_ticket_change._080_say,gameforge.ride_ticket_change._090_say, gameforge.ride_ticket_change._100_say, gameforge.ride_ticket_change._110_say, gameforge.ride_ticket_change._120_say)
			if s == 6 then
				say_title (mob_name (20349))
				say (gameforge.ride_ticket_change._130_say)
				return
			end
			local summon_item = item.get_value (s-1)
			say_title (mob_name (20349))
			say(gameforge.ride_ticket_change._140_say)
			if pc.give_item2 (summon_item) == 0 then
				say_title (mob_name (20349))
				say (gameforge.ride_ticket_change._150_say)
				return
			end
			
			item.remove()

		end
	end
end


But, i want to ask you, how i can define my own "certificate"?

 

Official id's of certificates are - 52701-52706 (work for me now..)

 

Where i can define mount seals for new certificates? For example for 52709...

 

Thanks for your answer...

plechi-frost-dungeon.gif

Link to comment
Share on other sites

Try to search '10032' in special_item_group.txt ( 0% chances ) 

 

Or use this shape:

quest ride_ticket_change begin
state start begin
function get_ride_info(itemVnum)  
ride_info_map = {
--  [ITEM VNUM] MOB_VNUM, DEFAULT NAME
[52701]     = { 34001, "Lion" ,0},
[52702]     = { 34002, "Tiger" ,0},
[52703]     = { 34003, "Boar" ,0},
[52704]     = { 34004, "Wolf" ,0},
[52705]     = { 34005, "Reindeer(m)" ,0},
[52706]     = { 34006, "Reindeer(w)" ,0},
[52707]     = { 34007, "Dragor" ,0},
}




itemVnum = tonumber(itemVnum)
return ride_info_map[itemVnum]
end




when 20349.chat.gameforge.ride_ticket_change._010_npcChat  begin 
say_title(mob_name (20349))
say(gameforge.ride_ticket_change._020_say)
wait()
local items = {pc.get_sig_items(52701)}
local ticket = nil
if table.getn (items) > 1 then
for i, v in ipairs (items) do
item.select (v)
say_title(mob_name(20349))
say (gameforge.ride_ticket_change._030_say)
say_item_vnum (item.vnum)
say (gameforge.ride_ticket_change._040_say)
local s = select (locale.yes, locale.no, locale.cancel)
if s == 3 then
return
end
if s == 1 then 
ticket = v
break
end
end
else
ticket = items [1]
end
local jegy_info = ride_ticket_change.get_ride_info(item.vnum)
if jegy_info == nil then
say_title (mob_name (20349))
say (gameforge.ride_ticket_change._050_say)
return 
end
say_title (mob_name (20349))
say(gameforge.ride_ticket_change._060_say)
item.select (ticket)
local s = select (gameforge.ride_ticket_change._070_say, gameforge.ride_ticket_change._080_say,gameforge.ride_ticket_change._090_say, gameforge.ride_ticket_change._100_say, gameforge.ride_ticket_change._110_say, gameforge.ride_ticket_change._120_say)
if s == 6 then
say_title (mob_name (20349))
say (gameforge.ride_ticket_change._130_say)
return
end
local summon_item = item.get_value (s-1)
say_title (mob_name (20349))
say(gameforge.ride_ticket_change._140_say)
if pc.give_item2 (summon_item) == 0 then
say_title (mob_name (20349))
say (gameforge.ride_ticket_change._150_say)
return
end




item.remove()




end
end
end
--52701 Ŕü°©»çŔÚ ±łČŻ±Ç     ¸¶±¸°Ł°ćşńş´żˇ°Ô °ˇÁ®°ˇ¸é Ŕü°©»çŔÚ·Î ±łČŻÇĎż© ÁÝ´Ď´Ů.
--52702 Ŕü°©ČŁ ±łČŻ±Ç        ¸¶±¸°Ł°ćşńş´żˇ°Ô °ˇÁ®°ˇ¸é Ŕü°©ČŁ·Î ±łČŻÇĎż© ÁÝ´Ď´Ů.
--52703 Ŕü°©żř ±łČŻ±Ç        ¸¶±¸°Ł°ćşńş´żˇ°Ô °ˇÁ®°ˇ¸é Ŕü°©żřŔ¸·Î ±łČŻÇĎż© ÁÝ´Ď´Ů.
--52704 Ŕü°©¶ű ±łČŻ±Ç        ¸¶±¸°Ł°ćşńş´żˇ°Ô °ˇÁ®°ˇ¸é Ŕü°©¶űŔ¸·Î ±łČŻÇĎż© ÁÝ´Ď´Ů.
  • Love 1
Link to comment
Share on other sites

  • Solution
pc.get_sig_items(vnum)

System will check this in special_item_group.txt. So i mean this table

Group	탈것교환권			
{				
	Vnum	10032		
	Type	Quest		
	1	52701	1	1
	2	52702	1	1
	3	52703	1	1
	4	52704	1	1
	5	52705	1	1
	6	52706	1	1
}	

If you wanna create new one you can do like that ;

Group	MyBrother			
{				
	Vnum	10033		
	Type	Quest		
	1	52707	1	1
	2	52708	1	1
	3	52709	1	1
	4	52710	1	1
	5	52711	1	1
	6	52712	1	1
}	
local items = {pc.get_sig_items(10032)}

Result :

local items = {52701,52702,52703,52704,52705,52706} 
52701	"전갑사자 교환권"	"ITEM_QUEST"	0	1	"ANTI_DROP | ANTI_SELL | ANTI_GIVE | ANTI_STACK | ANTI_MYSHOP"	"NONE"	"NONE"	"NONE"	0	0	0	0	0	"LIMIT_NONE"	0	"LIMIT_NONE"	0	"APPLY_NONE"	0	"APPLY_NONE"	0	"APPLY_NONE"	0	52031	52032	52033	52034	52035	0	0	0	0

If you wanna change give item, you can edit 52031,52032,52033,52034,52035

 

Kind Regards

Ken ~ TA

Edited by Ken
  • Love 1

Do not be sorry, be better.

Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

Announcements



×
×
  • Create New...

Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.