Welcome!

Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!

Join Today!

How Make Your Own PK Maze

Status
Not open for further replies.
Skilled Illusionist
Joined
Jun 5, 2009
Messages
311
Reaction score
28
DragonCryx - How Make Your Own PK Maze - RaGEZONE Forums

How to Make Your Own Pk maze

Here i will show you how make ur own pk maze in some easy steps.
1.You have to add ur maze. It can be every map. Typical pk maze like Chaos Icicle, Glacier Armageddon,Bounty Hunter,Deathmatch,Death Cicrcle arent availbe in all files.

Download:







2.

Now we will add map to our files.


A) Extract maps to server files
B) Add map to config
PHP:
Server Files >> resources>>scripts>>script define.lua
and add it

PHP:
-----AddMap( "mapfolder", "Map Name" ) -- ID = 25
-----
AddMap ( "glacierpk", "GlacierPK" ) -- ID = 26
AddMap ( "bountypk",  "Bounty Hunter" ) -- ID = 27
AddMap ( "deathcircle", "Death Circle" ) -- ID = 28
AddMap ( "deathmatch", "Death Match" ) -- ID = 29
AddMap ( "chaosicicle", "Chaos Icicle" ) -- ID = 30

It should look like

DragonCryx - How Make Your Own PK Maze - RaGEZONE Forums


C) Now we will have to add Birth points. So go to
PHP:
Server files>>resources>>script>>birth>>birth_conf.lua

add this
PHP:
--Choas Icicle
AddBirthPoint("Chaos Icicle portal", "binglang2", 76,126)
AddBirthPoint("Chaos Icicle", "chaosicicle", 75,80 )


AddBirthPoint("Glacier Armageddon", "glacierpk",  1343, 351)
AddBirthPoint("Glacier Armageddon", "glacierpk",  1332, 404)
AddBirthPoint("Glacier Armageddon", "glacierpk",  1408, 381)
AddBirthPoint("Glacier Armageddon", "glacierpk",  1273, 376)


AddBirthPoint("Bounty Hunter PK", "bountypk",  471, 3407)
AddBirthPoint("Bounty Hunter PK", "bountypk",  401, 3464)
AddBirthPoint("Bounty Hunter PK", "bountypk",  463, 3461)
AddBirthPoint("Bounty Hunter PK", "bountypk",  403, 3410)

AddBirthPoint("deathcircle", "deathcircle", 99,99)
AddBirthPoint("deathcircle", "deathcircle", 154,34)
AddBirthPoint("deathcircle", "deathcircle", 178,96)
AddBirthPoint("deathcircle", "deathcircle", 155,155)
AddBirthPoint("deathcircle", "deathcircle", 99,177)
AddBirthPoint("deathcircle", "deathcircle", 35,156)
AddBirthPoint("deathcircle", "deathcircle", 15,92)
AddBirthPoint("deathcircle", "deathcircle", 35,38)
AddBirthPoint("deathcircle", "deathcircle", 99,12)
AddBirthPoint("deathmatch", "deathmatch", 15,14)
AddBirthPoint("deathmatch", "deathmatch", 15,47)
AddBirthPoint("deathmatch", "deathmatch", 46,16)
AddBirthPoint("deathmatch", "deathmatch", 46,46)
D) Add maps to your gameserver
PHP:
map= deathcircle
map= deathmatch
map= glacierpk
map= bountypk
map= chaosicicle


::::: OK maps are done::::::

Now we will add mobs to the map

1. Launch TOP
2. Go your gm char to map (eg glacier armagedon)
3. Stay in place where u want to have mob/chest

DragonCryx - How Make Your Own PK Maze - RaGEZONE Forums


4. Write &qcha YourName and you will see qcha coords in system
DragonCryx - How Make Your Own PK Maze - RaGEZONE Forums


5. We have coords so what do now?
PHP:
Server files >>resources>> Map Folder (eg bounty pk) >> ctrl.lua

and add this under any END
PHP:
function map_copy_run_special_bountypk( map_copy ) 
	local HowManyNoDead = GetMapActivePlayer(map_copy)
	Notice("There are current "..HowManyNoDead.." survivor in YourMapName")
Every_5_minute = Every_5_minute+1
	if Every_5_minute == 2 then -- łőĽ¶±¦Ďä
		local Monster2 = CreateChaEx(1186, Cord, 145, 50,map_copy)
		local Monster3 = CreateChaEx(1186, Cord, 145, 50,map_copy)
		local Monster4 = CreateChaEx(1186, Cord, 145, 50,map_copy)
		local Monster5 = CreateChaEx(1186, Cord, 145, 50,map_copy)
	                  SetChaLifeTime(Monster2,299050)
		SetChaLifeTime(Monster3,299100)
		SetChaLifeTime(Monster4,299150)
		SetChaLifeTime(Monster5,299200)
	end
	if Every_5_minute == 3 then -- ÖĐĽ¶±¦Ďä
		local Monster6 = CreateChaEx(1185, Cord, 145, 50,map_copy)
		local Monster7 = CreateChaEx(1185, Cord, 145, 50,map_copy)
		local Monster8 = CreateChaEx(1185, Cord, 145, 50,map_copy)
		local Monster9 = CreateChaEx(1185, Cord, 145, 50,map_copy)
		SetChaLifeTime(Monster6, 299050)
		SetChaLifeTime(Monster7, 299100)
		SetChaLifeTime(Monster8, 299150)
		SetChaLifeTime(Monster9, 299200)
	end
	if Every_5_minute == 4 then -- ¸ßĽ¶±¦Ďä
		local Monster10 = CreateChaEx(1184, Cord, 145, 50,map_copy)
		local Monster11 = CreateChaEx(1184, Cord, 145, 50,map_copy)
		local Monster12 = CreateChaEx(1184, Cord, 145, 50,map_copy)
		local Monster13 = CreateChaEx(1184, Cord, 145, 50,map_copy)
		SetChaLifeTime(Monster23, 299050)
		SetChaLifeTime(Monster24, 299100)
		SetChaLifeTime(Monster25, 299150)
		SetChaLifeTime(Monster26, 299200)
	
	end
	if Every_5_minute == 5 then -- ¸ßĽ¶±¦Ďä
		local Monster10 = CreateChaEx(1183, Cord, 145, 50,map_copy)
		local Monster11 = CreateChaEx(1183, Cord, 145, 50,map_copy)
		local Monster12 = CreateChaEx(1183, Cord, 145, 50,map_copy)
		local Monster13 = CreateChaEx(1183, Cord, 145, 50,map_copy)
		SetChaLifeTime(Monster23, 299050)
		SetChaLifeTime(Monster24, 299100)
		SetChaLifeTime(Monster25, 299150)
		SetChaLifeTime(Monster26, 299200)
	



end
So now we will use qcha coords ;)
1. Add 1st wave

PHP:
Every_5_minute = Every_5_minute+1
	if Every_5_minute == 2 then -- łőĽ¶±¦Ďä
		local Monster2 = CreateChaEx(MOB ID, QchaCords, 145, 50,map_copy)
		local Monster3 = CreateChaEx(MOB ID, QchaCords, 145, 50,map_copy)
		local Monster4 = CreateChaEx(MOB ID, QchaCords, 145, 50,map_copy)
		local Monster5 = CreateChaEx(MOB ID, QchaCords, 145, 50,map_copy)
	                  SetChaLifeTime(Monster2,299050)
		SetChaLifeTime(Monster3,299100)
		SetChaLifeTime(Monster4,299150)
		SetChaLifeTime(Monster5,299200)
where local monster is mob
and set cha life time is how long monster will life.
Do it with other waves too , so ur map will more interesting;)

2nd way. If you want make mobs which will appear evesa


Our map is done in 90% .



Now we will change map name , open/close time and other things

I will do it with Glacier Armagedon. Other maps look like this
Open
PHP:
Server files>> resources>>map folder>entry.ctrl
Copy this and edit
PHP:
function config_entry(entry) 
    SetMapEntryEntiID(entry, 193,1) -- Portal Image

end 

function after_create_entry(entry) 
    local copy_mgr = GetMapEntryCopyObj(entry, 0) --
    local EntryName = "Glacier Armageddon"
    SetMapEntryEventName( entry, EntryName )

    map_name, posx, posy, tmap_name = GetMapEntryPosInfo(entry) --
    Notice("Announcement: According to reports, near [REGION] at ["..posx..","..posy.."] appears a portal to [Map Name]. Please check it out.")  --֪ͨ±ľ×é·ţÎńĆ÷µÄËůÓĐÍćĽŇ

end

function after_destroy_entry_glacierpk(entry)
    map_name, posx, posy, tmap_name = GetMapEntryPosInfo(entry) 
    Notice("Announcement: According to reports, portal to [Map Name] has vanished. Check announcement for more details. Enjoy!") 

end

function after_player_login_glacierpk(entry, player_name)
    map_name, posx, posy, tmap_name = GetMapEntryPosInfo(entry) --
    ChaNotice(player_name, "Announcement: According to reports, [REGION] at ["..posx..","..posy.."] appears a portal to [Map Name]. Please check it out.")

end






function check_can_enter_glacierpk( role, copy_mgr )
	local FightingBook_Num = 0
	FightingBook_Num = CheckBagItem( role,3849 )
	local Team_In = IsInTeam(role)
	if Team_In == 1 then
		SystemNotice ( role , "You cannot enter [Map Name] in a Party." )
		return 0
		
	end
	if FightingBook_Num <= 0 then
		SystemNotice ( role , "You must have a Medal of Valor to enter [Map Name]" )
		return 0
	elseif FightingBook_Num > 1 then
		LG("RYZ_PK","ł¬ąýŇ»¸öÓÂŐßÖ®Ö¤")
		return 0
	end

    local Cha = TurnToCha(role)
  
	if Lv(Cha) >=65 and Lv(Cha) <=101 then
		
		return 1

	else
		SystemNotice(role, "To enter Map Name, players must be between Lv 65 to 90")
		return 0
	end
	--if HonorPoint >30000 then
		--SystemNotice ( role , "You cannot enter [Map Name] you have to much Honor" )
		--return 0
	--end

	--local Credit_bountypk= GetCredit(role)
	 --if Credit_bountypk < 30 then 
		--SystemNotice ( role , "You do not have enough Reputation Points" )
		--return 0
	--else
		--DelCredit(role,30)
	--end

	--if Lv(role) < 20 then
		--SystemNotice ( role , "You do not have enough Reputation Points" )
		--return 0    
	--end
	--local Has_money = check_HasMoney(role)
	--if Has_money == 1 then
		
		--return 1
		
	--else
		--SystemNotice(role,"You do not have enough Gold to enter [Map Name]")
		--return 0
	--end
				
end

function begin_enter_glacierpk(role, copy_mgr) 

		SystemNotice(role,"Entering [Map Name]") 
		MoveCity(role, "Glacier Armagedon")

end
Where
[MAP NAME] is your map name
[REGION] Is region where is ur portal (eg any city or something)
::::::
You can delete or edit eg min money , rep ,lvl to enter. Just change values
PHP:
if Lv(Cha) >=MinLVL and Lv(Cha) <=MaxLvl then
		
		return 1

	else
		SystemNotice(role, "To enter Map Name, players must be between Lv _ to _")
		return 0
	end
	--if HonorPoint >30000 then
		--SystemNotice ( role , "You cannot enter [Map Name] you have to much Honor" )
		--return 0
	--end

	--local Credit_bountypk= GetCredit(role)
	 --if Credit_bountypk < RepValue then 
		--SystemNotice ( role , "You do not have enough Reputation Points" )
		--return 0
	--else
		--DelCredit(role,RepValue)
	--end

	--if Lv(role) < RepValue then
		--SystemNotice ( role , "You do not have enough Reputation Points" )
		--return 0    
	--end
	--local Has_money = check_HasMoney(role)
	--if Has_money == MoneyValue then
		
		--return 1
		
	--else
		--SystemNotice(role,"You do not have enough Gold to enter [Map Name]")
		--return 0
	--end

2. .ctrl
PHP:
--Glacier Armageddon

function config(map)
    MapCanSavePos(map, 0) 
    MapCanPK(map, 1) -- This Map Can be PK Set.
    MapCanTeam( map, 0 )
    MapType( map , 3 )
    MapCopyNum(map, 1) 
    SingleMapCopyPlyNum(map, 300)   
    --MapCanTeam(map , 1) -- map can be party.
    --MapCanStall(map , 0) -- map can set stall.
end


function get_map_entry_pos_glacierpk()   -- Cordinates of portal

	local POS_X=CoordX   --- Portal coord X
	local POS_Y=CoordY  ---- Portal coord Y
	return POS_X , POS_Y

end

function init_entry(map)

    SetMapEntryMapName(map, "darkblue") -- This Is where the portal map located
    SetMapEntryTime(map, "2006/10/18/1/0", "0/1/0", "0/0/30", "0/0/45") --
	-- The first set of numbers is the starting point (Year/Month/Day/Hour/Minute), next is opening interval (Day/Hour/Minute),
	-- portal open duration (Day/Hour/Minute), and last is the map duration (Day/Hour/Minute).

end

function after_enter_glacierpk( role , map_copy )
end

function before_leave_glacierpk( role )
end

--function map_copy_first_run_glacierpk( map_copy )
--	lua_SetCopySpecialInter(map_copy , 10000)
--	Notice("10")
--
--end

--function map_copy_run_glacierpk( map_copy )
----Notice("3")
--local new1 = CreateChaEx(791, 120, 120, 145, 50)
--	SetChaLifeTime(new1, 900000)
--		
--end

--Ăż5·ÖÖÓĂëÖ´ĐĐ1´Î
function map_copy_run_special_glacierpk( map_copy ) 
	local HowManyNoDead = GetMapActivePlayer(map_copy)
	Notice("There are current "..HowManyNoDead.." survivor in [MapName]")

end
--Ăż5ĂëÖ´ĐĐŇ»´ÎµÄ
function map_run_glacierpk( map )
	
end

--µŘÍĽąŘ±ŐʱִĐĐ
function map_copy_before_close_glacierpk( map_copy )
	How_Many_Active = GetMapActivePlayer(map_copy)
	if How_Many_Active > 0 then
		DealAllActivePlayerInMap(map_copy,"GiveSpecItem")
	end
	How_Many_Active = 0
	Money_all = 1000000
	Every_5_minute = 0
end

--µŘÍĽąŘ±ŐʱִĐĐ
function map_copy_close_glacierpk( map_copy )
	ClearAllSubMapCha(map_copy)
end
--
-----------------------------------------------------------------------

-----------------------------------------------------------------------
function can_open_entry_glacierpk( map ) 
--	local time = GetTickCount ( ) 
	local Now_Time = GetNowTime()
	if Now_Time ==1 or Now_Time ==4 or Now_Time ==7 or Now_Time ==10 or Now_Time ==13 or Now_Time == 19 then  ------------bh 1 4 7 10 13 16 19 22
		return 1
	else
		return 1
	end

end 


function GiveSpecItem( role )
	if How_Many_Active == 0 then
		return
	end
	
	local Money_glacierpk = Money_all/How_Many_Active
--	SystemNotice(role,How_Many_Active)

	if How_Many_Active > 5 then
		AddMoney ( role , 0 , Money_glacierpk )
	--	local message = "˝ńĚěµÄÂҶ·ą˛´ć»îÁË"..How_Many_Active .. "λÍćĽŇ,ËűĂÇĂżČË˝«»ńµĂ"..Money_glacierpk .."µÄ˝đÇ®"
	--	SystemNotice(role,How_Many_Active)
		return
	end

	if How_Many_Active <  6 and How_Many_Active > 1 then
		local Item_CanGet = GetChaFreeBagGridNum ( role )
		if Item_CanGet <= 0 then
			GiveItemX ( role , 0 , 5866  , 1 , 4 )
		else
			GiveItem ( role , 0 , 5866  , 1 , 4 )
		end
			 
		AddMoney ( role , 0 , Money_glacierpk )
		--SystemNotice(role,How_Many_Active)
					
		--local message = "AnyText"..How_Many_Active .."AnyText"..Money_glacierpk .."AnyText"
		--Notice ( message )
		return
	end
	
	if How_Many_Active == 1 then
		local Item_CanGet = GetChaFreeBagGridNum ( role )
		if Item_CanGet <= 0 then
			GiveItemX ( role , 0 , 5867  , 1 , 4 )
		else
			GiveItem ( role , 0 , 5867  , 1 , 4 )
		end
		AddMoney ( role , 0 , Money_glacierpk )
		local cha_name = GetChaDefaultName ( role )
		local message = "Congratulations "..cha_name.." you have earned ".. Money_glacierpk .." gold and 1 King of the Ring Emblem"
	--	SystemNotice(role,How_Many_Active)
		SystemNotice(role,message)
		return
	end
end
 
Last edited:
Newbie Spellweaver
Joined
Dec 3, 2009
Messages
5
Reaction score
0
Hi thanks for the guide but I cant get it to work on my server.. I always get teleported somewhere in Ascaron map instead of other maps. And If I write &move 200,200,(any other map but not deathcircle) I get disconnected :(
View attachment WTF.bmp

I can't move in this place
 

Attachments

You must be registered for see attachments list
Last edited:
Newbie Spellweaver
Joined
Dec 3, 2009
Messages
5
Reaction score
0
Oooooooohhh -.- how i suposed to figure it out :D THX

One more thing.. what Items I need to copy to my client?
 
Last edited:
Newbie Spellweaver
Joined
Dec 3, 2009
Messages
5
Reaction score
0
Yes, in order to see those maps I need to have them in my ToP client folder, right? So what maps should I copy where?
 
Newbie Spellweaver
Joined
Mar 28, 2011
Messages
7
Reaction score
0
all Help Me please i need make Website You can contact me with Yahoo: unnameda12@yahoo.com and Skype: geopko Please send me a letter (Im Online 24/7)
 
Newbie Spellweaver
Joined
Aug 21, 2011
Messages
16
Reaction score
0
tnx alot for guides but there is some pic dont show!!!
 
Status
Not open for further replies.
Back
Top