ArcEmu: Setting Sanctuaries - ArcEmu

Jump to content

Toggle shoutbox Lastest Announcements

dfighter  : (07 December 2014 - 12:06 PM) Arcemu is in hibernation mode, please read http://arcemu.org/fo...showtopic=26903
dfighter  : (01 January 2013 - 05:56 PM) Arcemu wishes you all a happy new year!
Hasbro  : (12 September 2012 - 10:01 AM) Please excuse our outage from the web! Our web host had a major malfunction!
dfighter  : (01 September 2012 - 04:05 PM) Since the spam bots just don't want to stop, I've enabled admin verification when registering.
dfighter  : (23 January 2012 - 09:56 PM) Please note that from now on you will need to confirm your email on the wiki in order to edit it!
Hasbro  : (31 December 2011 - 12:50 PM) Happy New Years all!
Navid  : (26 December 2011 - 04:09 AM) Merry Christmas !!!!!! Happy holidays all :)
WAmadeus  : (24 December 2011 - 03:54 PM) Merry Christmas to all!
dfighter  : (24 December 2011 - 11:05 AM) The Arcemu team wishes y'all a Merry Christmukkah!
Hasbro  : (05 October 2011 - 12:53 PM) Looking for web designers for upcoming web related project. If you're interested in designing user interfaces contact me
dfighter  : (02 September 2011 - 03:47 PM) So who here wants vehicles in Arcemu? :P http://arcemu.org/fo...showtopic=25440
Hasbro  : (14 August 2011 - 03:25 PM) Join us on irc, grab an irc client and connect to irc.freenode.net join channel #arcemu /server irc.freenode.net:6667 /join #arcemu
jackpoz  : (03 August 2011 - 05:33 AM) to all Lua Engine (old one) users: please check http://arcemu.org/fo...showtopic=25274
Hasbro  : (20 May 2011 - 05:27 PM) Looking for people experienced with CMake configuration and setup! Contact me asap
Hasbro  : (15 May 2011 - 05:03 PM) ArcEmu is recruiting C++ programmers, contact Hasbro if interested.
paroxysm  : (03 May 2011 - 06:26 PM) Updated luabridge gossip example to describe the whole gossip creation process rather than just how to create menu. Gossip tutorial
paroxysm  : (23 April 2011 - 11:35 AM) Lua writers can refer to the Luabridge Tutorials section in the Wiki to learn how to write gossip code correctly.
Hasbro  : (20 April 2011 - 05:22 PM) Thank you for your continuous contribution of bug reports, we are working on them.
Hasbro  : (17 April 2011 - 03:20 AM) Please consider donating to support our bills. Donations can be sent using PayPal to donations@arcemu.org - Thank you for your support.
paroxysm  : (10 April 2011 - 12:43 AM) Refer to the Luabridge Tutorials section in the Wiki to learn the new syntax of luabridge.
Resize Shouts Area

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Setting Sanctuaries Could be improved.

#1 User is offline   Notthecrow 

  • Member
  • Pip
  • Group: Members
  • Posts: 30
  • Joined: 27-June 10
  • Gender:Male
  • Server OS:Windows

Posted 06 January 2011 - 08:53 PM

Patch for lulz.
Allows for setting areas as sanctuaries via two world commands, a check added in Player.cpp, and a string option in the optional config file.
These world commands can be used when setting up a C++ script, and a command can also be implemented into LuaHypArc(Someone else can do that if they want.)

Please provide feedback.

Index: configs/optional.conf
===================================================================
--- configs/optional.conf	(revision 4015)
+++ configs/optional.conf	(working copy)
@@ -249,3 +249,14 @@
 <GoldSettings EnableGoldCap = "1"
 	      StartingGold = "0"
 	      MaximumGold = "214748">
+
+/********************************************************************************
+* Custom Sanctuary Section
+*
+*    CustomSanctuaryList
+*      A list of area ids that are set as sanctuaries
+*      Default: ""
+*
+********************************************************************************/
+
+<SanctuarySettings CustomSanctuaryList = "">
Index: src/arcemu-world/Player.cpp
===================================================================
--- src/arcemu-world/Player.cpp	(revision 4015)
+++ src/arcemu-world/Player.cpp	(working copy)
@@ -8579,7 +8579,7 @@
 
 		// I just walked into a sanctuary area
 		// Force remove flag me if I'm not already.
-		if(at->category == AREAC_SANCTUARY || at->AreaFlags & AREA_SANCTUARY)
+		if(at->category == AREAC_SANCTUARY || at->AreaFlags & AREA_SANCTUARY || sWorld.IsSanctuaryArea(m_AreaID))
 		{
 			if(IsPvPFlagged())
 				RemovePvPFlag();
Index: src/arcemu-world/World.cpp
===================================================================
--- src/arcemu-world/World.cpp	(revision 4015)
+++ src/arcemu-world/World.cpp	(working copy)
@@ -1403,6 +1403,19 @@
 	GoldStartAmount = Config.OptionalConfig.GetIntDefault("GoldSettings", "StartingGold", 0);
 	if(GoldStartAmount)
 		GoldStartAmount *= 10000;
+	string snct_areas = Config.OptionalConfig.GetStringDefault("SanctuarySettings", "CustomSanctuaryList", "");
+	if(snct_areas.size())
+	{
+		uint32 area;
+		vector<string> sc_areas = StrSplit(snct_areas, ",");
+		for(vector<string>::iterator it = sc_areas.begin(); it != sc_areas.end(); it++)
+		{
+			area = atol((*it).c_str());
+			if(area)
+				SetSanctuaryArea(area);
+			area = 0;
+		}
+	}
 
 	DKStartTalentPoints = Config.OptionalConfig.GetIntDefault("Optional", "DKStartingTalents", 0);
 
Index: src/arcemu-world/World.h
===================================================================
--- src/arcemu-world/World.h	(revision 4015)
+++ src/arcemu-world/World.h	(working copy)
@@ -473,6 +473,10 @@
 	bool m_useIrc;
 
 	void SaveAllPlayers();
+	std::set<uint32> Sanctuaries;
+	void SetSanctuaryArea(uint32 areaid) { Sanctuaries.insert(areaid); }
+	void RemoveSanctuaryArea(uint32 areaid) { Sanctuaries.erase(areaid); }
+	bool IsSanctuaryArea(uint32 areaid) { return Sanctuaries.find(areaid) != Sanctuaries.end(); }
 
 	string MapPath;
 	string vMapPath;

Attached File(s)


Ghost in my mind, you used to be, so alive...
0

#2 User is offline   Calibur 

  • Member
  • Pip
  • Group: Members
  • Posts: 39
  • Joined: 24-May 11
  • Gender:Male
  • Location:127.0.0.1
  • Server OS:Windows

Posted 04 December 2011 - 04:51 PM

I like it. Although zone state can be easily edited in the dbcs which I feel is better since you don't have to recompile. The downside with dbc editing is the "required" client side patch, though I guess this patch also requires a client side MPQ for my users client to display the zone as a sanctuary...?

If this doesn't require a client side patch, then I'm definately going to use it. (by "require" I mean for it to display as sanctuary, I know it's not required).

PS: I think the creator of your avatar should reconsider, it'd make more sense to me if "the box is too sexy for this guy"?
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users