MQ2PiggyZone - MMOBugs Wiki

Plugin Info
Name MQ2PiggyZone
Author Cosmic and the MMOBugs Dev Team
Link Wiki Link
Commands /zone /gate /findpath /fade /succor /heading /pzcheck /zonelog /connections /createdot /dumpconnections /dumpzones
Source Available No
Uses INI File Yes

Description

Instant zone and gate.

Features

  • Zone instantly.
  • Force zone into adjacent zones that you're not flagged for.
  • Chain zone (from zone to zone, until you reach the end zone).
  • Instantly gate.
  • Fade (zone to your current zone and position).
  • You can hold down the END key on your keyboard, to cancel a chain zone - chaining will stop after the current zone process is complete. You can also hold down your HOME key to do the same, if you are using zone delays. The /zone cancel command is also available.

Commands

  • /zone help Shows help screen.
  • /zone status Shows your current zone options.
  • /zone Shows all zone names.
  • /zone <zone short name> [hop(s) waypoint name] [final waypoint name] Instantly zones you to the zone name of your choice. 'waypoint name' is optional, for saved waypoints (the default is 'default'). Each hop along the chain will first try to use the waypoint name if it exists. You can optionally specify a different final waypoint name. If no final waypoint name is given, then it will try to use the same one you specify for the hops along the chain.
  • /gate Instantly zones you to your bind.
  • /findpath <zone name> Lists the path the plugin would take to get to your destination zone.
  • /fade Zones you to your current zone at the same location.
  • /succor Zones you to your current zone at the succor point.
  • /heading Shows your toon's exact heading.
  • /zone cancel Cancels a chain zone. Only useful during a delay, if chain zone delays are being used.
  • /zone usedelay [on|off] Turns chain zone delays on or off.
  • /zone usewarp [on|off] Sets option to warp to distance checked switches and npcs, where needed.
  • /zone mindelay ## Sets the minimum delay (in seconds) to wait between chain zone attempts.
  • /zone maxdelay ## Sets the maximum delay (in seconds) to wait between chain zone attempts. 0=disabled.
  • /zone usenpc [on|off] Turns the ability to use NPC translocators/teleporters with the plugin. Many NPCs require warping close to the NPC in order to be properly used, so this option is off by default, in case a user doesn't like warping.
  • /zone pccheck [on|off] Turns PC checking on or off, prevents zone/gate/etc. if PC in zone.
  • /zone pcrange ## Sets range for PC range checking, if pccheck is on. 0=disabled.
  • /zone usegate [on|off] Turns chain zone through bind point on or off.
  • /zone force <zone short name> [waypoint name] Force zone attempt (crashes if not adjacent zone!). 'waypoint name' is optional, for saved waypoints (the default is 'default').
  • /zone gateok <zone short name> Allow path through bind point to be considered, even if UseGate is off.
  • /zone nocheck <zone short name> If pccheck and/or pcrange is on, bypass PC checks.
  • /zone nogroup [on|off] Turns ignoring group members in PC checks on or off.
  • /zone groupok <zone short name> If group members are NOT ignored (not ok to zone near group members for pccheck), ignore them for this zone command.
  • /zone <substring> Match partial, searches zone names for substring.
  • /findpath <substring> Match partial, searches zone names for substring.
  • /zone setwp <name> Sets a 'waypoint' in the current zone at your current location, so you can later zone in at the defined waypoint location.
  • /zone clearwp <name> Clears a previously set waypoint for current zone.
  • /zone info Shows zone information from the .txt or .html file, or links to alla's web site for the zone.
  • /zone note <note data> Adds zone note information to the note file on the fly.
  • /zone alias list Lists all zone aliases. Zone aliases can be used in place of zone shortnames, for /zone and /findpath commands.
  • /zone alias add aliasname zoneshortname Adds an alias named 'aliasname' for the zone shortname 'zoneshortname'.
  • /zone alias del aliasname Deletes the alias name 'aliasname'.
  • /zonelog Causes creation of zonepoint (waypoint) entries to a temporary ini file, when you zone. These entries can be used to update the default ini properly.
  • /createdot Creates a map of zone connections. The file will be in your MQ2 directory, called zonechart.dot. This can then be viewed by a program such as GraphViz.
  • /pzcheck Does some checks on your INI file for any errors.
  • /connections Shows zone connections for your current zone.
  • /dumpconnections Shows zone connections for your current zone in bare format with locations.
  • /dumpzones Shows all zone numbers, short names, and long names.



  • NOTE: You can hold down the END key on your keyboard, to cancel a chain zone - chaining will stop after the current zone process is complete.



  • Options can be combined, e.g.: /zone force gateok nocheck <ZoneShortName>
  • If pccheck option is off, pcrange is ignored. If pcrange is 0, and pccheck is on, ANY pc in zone will prevent zone/gate/etc. without using the nocheck option.
  • You cannot /zone into instances! (which is also why you cannot bind in Guild Hall, and expect /gate to work).
  • If a route is not shown, there is no route defined to that zone in MQ2PiggyZone.ini (there is probably a good reason for this).
  • If MQ2PiggyZone_Server_Char.ini exists, it will be used for that char on that server, instead of MQ2PiggyZone.ini. (Example of char named Bubba on Saryrn server: MQ2PiggyZone_Saryrn_Bubba.ini)
  • For waypoint files, it will first look for MQ2PiggyZoneWP_server_char.ini, if not found, will look for MQ2PiggyZoneWP.ini, and if that is not found, will use any waypoints in MQ2PiggyZone.ini (or MQ2PiggyZone_server_char.ini if using a custom one).


Example Usage

This command would zone you to Cobalt Scar, utilizing chain zoning if not adjacent.

  • /zone cobaltscar


This command would attempt to place you in Cobalt Scar regardless of flags.

  • /zone force cobaltscar


This command would put you at your bind point.

  • /gate


This command would display the path it would take to zone you to Cobalt Scar.

  • /findpath cobaltscar


This command would zone you to your current zone and same location.

  • /fade


This command would zone you to your current zone and put you at the succor point.

  • /succor


This command would add an alias for northkarana, called nk. You can then use it like: /findpath nk <or> /zone nk

  • /zone alias add nk northkarana


This command will list any aliases you have defined.

  • /zone alias list


This command will turn on the ability to use NPC translocators/teleporters in your chain zone.

  • /zone usenpc on


This command would delete the alias nk.

  • /zone alias del nk

Macro Data

This plugin adds a new TLO called Piggy.

ExampleType

  • ${Piggy.LastZone} : string - Return string with last zone shortname used with the /zone command (destination).
  • ${Piggy.LastWP} : string - Return string with last waypoint used.
  • ${Piggy.ZoneTime} : string - Return string with formatted time in zone, e.g. 1:04:03 (hours:mins:secs).
  • ${Piggy.ZoneSecs} : int - Return time in zone, in seconds.
  • ${Piggy.ZoneMins} : int - Return time in zone, in minutes.
  • ${Piggy.ZoneHours} : int - Return time in zone, in hours.
  • ${Piggy.NoGroup} : bool - Return TRUE if NoGroup is on.
  • ${Piggy.PCCheck} : bool - Return TRUE if PCCheck is on.
  • ${Piggy.PCRange} : int - Return value of the PCRange option.
  • ${Piggy.UseGate} : bool - Return TRUE if UseGate is on.
  • ${Piggy.UseNPC} : bool - Return TRUE if UseNPC is on.
  • ${Piggy.UseDelay} : bool - Return TRUE if UseDelay is on.
  • ${Piggy.LastPath} : string - Return string with the path shown by the last /findpath command.
  • ${Piggy.PCCount} : int - Return number of PCs in range, determined by the PCRange option.
  • ${Piggy.ChainDelay} : int - Return number of seconds the delay option is set to, for chain zone delay for the current zone hop.
  • ${Piggy.MinChainDelay} : int - Return number of seconds the minimum delay option is set to, for chain zone delay calculations.
  • ${Piggy.MaxChainDelay} : int - Return number of seconds the maximum delay option is set to, for chain zone delay calculations.

Zone Overrides

PiggyZone actions can be overridden via entries in MQ2PZOverride.ini. These entries are intended to give you the ability to execute commands before piggyzone does the zone, or even to replace the way piggy zones. The format is:

[FromShortZoneName]
DestZone1=##,##,##,...
Replace1=0 or 1
CmdList1=Command1;Command2;Command3;...
DestZone2=##,##,##,...
Replace2=0 or 1
CmdList2=Command1;Command2;Command3;...
DestZone3=##,##,##,...
Replace3=0 or 1
CmdList3=Command1;Command2;Command3;...
...

Example:

[greatdivide]
DestZone1=202,112
Replace1=0
CmdList1=/blah this; /also; /hitthiscmd 4
DestZone2=116
Replace2=1
CmdList2=/zippit

That would execute those 3 commands in CmdList1, before zoning from great divide to pok or velks, but still do the normal zoning function after. For zoning from great divide to eastern wastes (the 2nd entry), it would execute the /zippit command, and NOT do the normal zoning function after (Replace2=1). You can have up to 20 commands on one CmdListX= line, separated by semi-colons.

Zone Caching

PiggyZone can now cache paths previously used via zone or findpath. These cached paths are shared session to session (and between restarts). The cache file is created in your MQ2 directory, and named MQ2PiggyZone.che. The plugin DOES keep routes through your bind point (if UseGate is on) properly adjusted for all accounts. If usenpc option is on, caching is automatically disabled.

The following commands are available for the cache (/zone is used in these examples, but the cache command works with both /zone and /findpath):

  • /zone cache off Disables zone caching.
  • /zone cache on Enables zone caching.
  • /zone cache Displays cache statistics and messages.
  • /zone cache list Lists entries in the zone cache.
  • /zone cache fix Checks your cache file and attempts to fix it if necessary.
  • /zone cache del i# Deletes a zone cache entry by index #, corresponds to the # seen with '/zone cache list'. Ex: /zone cache del i4
  • /zone cache del <from ID> <to ID> Deletes a zone cache entry by zone ID number (entry matching from zone -> to zone). Ex: /zone cache del 202 58
  • /zone cache del <from name> <to name> Deletes a zone cache entry by zone short name (entry matching from zone -> to zone). Ex: /zone cache del poknowledge sebilis
  • /zone clearcache Completely resets your zone cache - ALL ENTRIES WILL BE ERASED.

Entries are kept synchronized between sessions, if you are boxing.

There are 2 related entries in your macroquest.ini file for this:
* DisablePZCache=0 : This entry is same as using /zone cache on (or off) in game. (0 = disabled)
* CacheMsgLevel=0 : This entry is for the message types you see in '/zone cache' statistics. 0=info+, 1=warn+, 2=error+. If you edit it to change it, you can activate that setting without reloading the plugin (just do /zone cache off, then /zone cache on).

ZoneLog

This will give you the ability to record waypoint zone locations via MQ2PiggyZone. This will let you zone normally (i.e., not /zone, etc.) and record the entries in your Logs\MQ2PiggyZone_ZoneLocs.ini, that you can then use for updating MQ2PiggyZone.ini.

  • /zonelog Doing this command once, turns it on. Do again and turns it off. (This is not a saved config item, so if you camp out, and go back in, it always defaults to off)

Here is an example output:

[guildlobby]
frompoknowledge=-50.00 21.00 5.00 488.00

[poknowledge]
fromguildlobby=-306.00 1398.00 -124.00 328.00
fromfiriona=-363.00 -279.00 -157.00 383.00

[firiona]
frompoknowledge=-455.00 4673.00 9.00 128

Zone entries are only recorded if one does not already exist in the MQ2PiggyZone_ZoneLocs.ini for that zone. In the above example output, if I run over & click the book to zone from poknowledge to FV again, it will not update or record that entry again. If you want it to do that, just delete the entry, and then zone - it'll record it again.

Try not to have any lev effect on. It shouldn't make a difference, but doesn't hurt to make sure.


Availability

This plugin is included with the MMOBugs Compile.