123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900 |
- /*
- EQ2Emulator: Everquest II Server Emulator
- Copyright (C) 2007 EQ2EMulator Development Team (http://www.eq2emulator.net)
- This file is part of EQ2Emulator.
- EQ2Emulator is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
- EQ2Emulator is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
- You should have received a copy of the GNU General Public License
- along with EQ2Emulator. If not, see <http://www.gnu.org/licenses/>.
- */
- #ifndef __EQ2_COMMANDS__
- #define __EQ2_COMMANDS__
- #include "../../common/DataBuffer.h"
- #include "../../common/MiscFunctions.h"
- #include "../../common/types.h"
- #include "../../common/opcodemgr.h"
- #include <vector>
- #include <string>
- #include <map>
- #include "../../common/debug.h"
- using namespace std;
- class Client;
- class Spawn;
- class ZoneServer;
- extern map<int16,OpcodeManager*>EQOpcodeManager;
- #define CHANNEL_COLOR_RED 3
- #define CHANNEL_COLOR_CHAT_RELATIONSHIP 4
- #define CHANNEL_COLOR_YELLOW 5
- #define CHANNEL_COLOR_REVIVE 12
- #define CHANNEL_COLOR_MAIL 12
- #define CHANNEL_COLOR_WHITE 12
- #define CHANNEL_COLOR_GROUP 15
- #define CHANNEL_COLOR_GUILD 18
- #define CHANNEL_COLOR_GUILD_MOTD 20
- #define CHANNEL_COLOR_GUILD_EVENT 22
- #define CHANNEL_COLOR_EXP 36
- #define CHANNEL_COLOR_SKILL 39
- #define CHANNEL_COLOR_FACTION 40
- #define CHANNEL_COLOR_SPELL_EFFECT 42
- #define CHANNEL_COLOR_SPELL 47
- #define CHANNEL_COLOR_SPELL_INTERRUPT 52
- #define CHANNEL_COLOR_SPELL_FADE 51
- #define CHANNEL_COLOR_COMBAT 60
- #define CHANNEL_COLOR_LOOT 81
- #define CHANNEL_COLOR_NEW_LOOT 84
- #define CHANNEL_COLOR_NEWEST_LOOT 89
- #define CHANNEL_COLOR_MERCHANT 88
- #define CHANNEL_COLOR_GROUP_INVITE 89
- #define CHANNEL_COLOR_GUILD_MSGS 94
- #define CHANNEL_COLOR_HARVEST 96
- #define UPDATE_COLOR_WHITE 254 // For UpdateText
- #define CHANNEL_SAY 8
- #define CHANNEL_SHOUT 9
- #define CHANNEL_EMOTE 10
- #define CHANNEL_GROUP 15
- #define CHANNEL_RAID 16
- #define CHANNEL_GUILD 18
- #define CHANNEL_OFFICER 19
- #define CHANNEL_SAYTARGET 25 // you say to xxx
- #define CHANNEL_TELL 28 // you tell xxx
- #define CHANNEL_OOC 32
- //#define CHANNEL_AUCTION 30
- #define CHANNEL_GAME_TEXT 1
- #define CHANNEL_DEFAULT 2
- #define CHANNEL_ERROR 3
- #define CHANNEL_STATUS 4
- #define CHANNEL_MOTD 5
- #define CHANNEL_CHAT_TEXT 6
- #define CHANNEL_NEARBY_CHAT 7
- #define CHANNEL_SAY 8
- #define CHANNEL_SHOUT 9
- #define CHANNEL_EMOTE 10
- #define CHANNEL_YELL 11
- #define CHANNEL_NARRATIVE 12
- #define CHANNEL_NONPLAYER_SAY 13
- #define CHANNEL_GROUP_CHAT 14
- #define CHANNEL_GROUP_SAY 15 // Use this for group chat
- #define CHANNEL_RAID_SAY 16
- #define CHANNEL_GUILD_CHAT 17
- #define CHANNEL_GUILD_SAY 18 // Use this for guild chat
- #define CHANNEL_OFFICER_SAY 19
- #define CHANNEL_GUILD_MOTD 20
- #define CHANNEL_GUILD_MEMBER_ONLINE 21
- #define CHANNEL_GUILD_EVENT 22
- #define CHANNEL_GUILD_RECRUITING_PAGE 23
- #define CHANNEL_GUILD_RECRUITING_PAGE_OTHER 24
- #define CHANNEL_PRIVATE_CHAT 25
- #define CHANNEL_NONPLAYER_TELL 26
- #define CHANNEL_OBJECT_TEXT 27
- #define CHANNEL_PRIVATE_TELL 28
- #define CHANNEL_TELL_FROM_CS 29
- #define CHANNEL_ARENA 30
- #define CHANNEL_CHAT_CHANNEL_TEXT 31
- #define CHANNEL_OUT_OF_CHARACTER 32
- #define CHANNEL_AUCTION 33
- // 34 is nothing, message with 34 as type will not show on client
- #define CHANNEL_CHARACTER_TEXT 35
- #define CHANNEL_REWARD 36
- #define CHANNEL_DEATH 37
- #define CHANNEL_PET_CHAT 38
- #define CHANNEL_SKILL 39
- #define CHANNEL_FACTION 40
- // Combat related chat channels start here
- #define CHANNEL_SPELLS 41
- #define CHANNEL_YOU_CAST 42
- #define CHANNEL_YOU_FAIL 43
- #define CHANNEL_CRITICAL_CAST 44
- #define CHANNEL_FRIENDLY_CAST 45
- #define CHANNEL_FRIENDLY_FAIL 46
- #define CHANNEL_OTHER_CAST 47
- #define CHANNEL_OTHER_FAIL 48
- #define CHANNEL_HOSTILE_CAST 49
- #define CHANNEL_HOSTILE_FAIL 50
- #define CHANNEL_WORN_OFF 51
- #define CHANNEL_SPELLS_OTHER 52
- #define CHANNEL_HEAL_SPELLS 53
- #define CHANNEL_HEALS 54
- #define CHANNEL_FRIENDLY_HEALS 55
- #define CHANNEL_OTHER_HEALS 56
- #define CHANNEL_HOSTILE_HEALS 57
- #define CHANNEL_CRITICAL_HEALS 58
- #define CHANNEL_COMBAT 59
- #define CHANNEL_GENERAL_COMBAT 60
- #define CHANNEL_HEROIC_OPPORTUNITY 61
- #define CHANNEL_NON_MELEE_DAMAGE 62
- #define CHANNEL_DAMAGE_SHIELD 63
- #define CHANNEL_WARD 64
- #define CHANNEL_DAMAGE_INTERCEPT 65
- #define CHANNEL_MELEE_COMBAT 66
- #define CHANNEL_WARNINGS 67
- #define CHANNEL_YOU_HIT 68
- #define CHANNEL_YOU_MISS 69
- #define CHANNEL_ATTACKER_HITS 70
- #define CHANNEL_ATTACKER_MISSES 71
- #define CHANNEL_YOUR_PET_HITS 72
- #define CHANNEL_YOUR_PET_MISSES 73
- #define CHANNEL_ATTACKER_HITS_PET 74
- #define CHANNEL_ATTACKER_MISSES_PET 75
- #define CHANNEL_OTHER_HIT 76
- #define CHANNEL_OTHER_MISSES 77
- #define CHANNEL_CRITICAL_HIT 78
- #define CHANNEL_HATE_ADJUSTMENTS 79
- #define CHANNEL_YOUR_HATE 80
- #define CHANNEL_OTHERS_HATE 81
- #define CHANNEL_DISPELS_AND_CURES 82
- #define CHANNEL_DISPEL_YOU 83
- #define CHANNEL_DISPEL_OTHER 84
- #define CHANNEL_CURE_YOU 85
- #define CHANNEL_CURE_OTHER 86
- // End of combat chat channels
- #define CHANNEL_OTHER 87
- #define CHANNEL_MONEY_SPLIT 88
- #define CHANNEL_LOOT 89
- #define CHANNEL_LOOT_ROLLS 90
- #define CHANNEL_COMMAND_TEXT 91
- #define CHANNEL_BROADCAST 92 // Goes to all chat windows no matter what
- #define CHANNEL_WHO 93
- #define CHANNEL_COMMANDS 94
- #define CHANNEL_MERCHANT 95
- #define CHANNEL_MERCHANT_BUY_SELL 96
- #define CHANNEL_CONSIDER_MESSAGE 97
- #define CHANNEL_CON_MINUS_2 98
- #define CHANNEL_CON_MINUS_1 99
- #define CHANNEL_CON_0 100
- #define CHANNEL_CON_1 101
- #define CHANNEL_CON_2 102
- #define CHANNEL_TRADESKILLS 103
- #define CHANNEL_HARVESTING 104
- #define CHANNEL_HARVESTING_WARNINGS 105
- // 106 is nothing, message sent with this channel won't display in the client
- #define CHANNEL_VOICE_CHAT 107
- // 108+ will crash the client DO NOT USE
- /* Using this in the /zone details command so that we do not have to store a whole zone in memory while changing zone attributes. Also,
- ran into a problem when deleting a zone pointer (for zones that were not running), it would try to shut down a zone which was not
- running, causing world to crash. */
- struct ZoneInfo {
- int32 id;
- int8 expansion_id;
- char name[64];
- char file[64];
- char description[256];
- float safe_x;
- float safe_y;
- float safe_z;
- float underworld;
- int8 min_recommended;
- int8 max_recommended;
- char zone_type[64];
- bool always_loaded;
- bool city_zone;
- sint16 min_status;
- int16 min_level;
- int16 max_level;
- int8 start_zone;
- int8 instance_type;
- int32 default_reenter_time;
- int32 default_reset_time;
- int32 default_lockout_time;
- int8 force_group_to_zone;
- char lua_script[256];
- int32 shutdown_timer;
- char zone_motd[256];
- float xp_modifier;
- int16 min_version;
- bool weather_allowed;
- int32 ruleset_id;
- };
- class EQ2_CommandString : public DataBuffer{
- public:
- EQ2_CommandString(){ handler = 0; }
- EQ2_CommandString(uchar* buffer, int32 size){
- InitializeLoadData(buffer, size);
- LoadData(handler);
- LoadDataString(command);
- }
- EQ2_16BitString command;
- int16 handler;
- };
- class EQ2_RemoteCommandString : public DataBuffer{
- public:
- EQ2_RemoteCommandString(){ handler = 0; }
- EQ2_RemoteCommandString(char* name, int32 in_handler, sint16 in_status){
- command.data = string(name);
- command.size = command.data.length();
- handler = in_handler;
- required_status = in_status;
- }
- EQ2_RemoteCommandString(uchar* buffer, int32 size){
- required_status = 0;
- InitializeLoadData(buffer, size);
- LoadData(handler);
- LoadDataString(command);
- }
- EQ2_8BitString command;
- int16 handler;
- sint16 required_status;
- };
- class RemoteCommands {
- public:
- RemoteCommands(){ num_commands = 0; buffer.clear(); }
- int16 num_commands;
- vector<EQ2_RemoteCommandString> commands;
- void addCommand(EQ2_RemoteCommandString add){ commands.push_back(add); num_commands++;}
- void AddSubCommand(string command, EQ2_RemoteCommandString subcommand){
- subcommands[command][subcommand.command.data] = subcommand;
- }
- bool validSubCommand(string command, string subcommand){
- if(subcommands.count(command) > 0 && subcommands[command].count(subcommand) > 0)
- return true;
- return false;
- }
- void addZero(){
- num_commands++;
- EQ2_RemoteCommandString add;
- add.command.size = 0;
- commands.push_back(add);
- }
- void CheckAddSubCommand(string command, EQ2_RemoteCommandString subcommand){
- vector<EQ2_RemoteCommandString>::iterator itr;
- for(itr = commands.begin(); itr != commands.end();itr++){
- if((*itr).command.data == command){
- AddSubCommand(command, subcommand);
- return;
- }
- }
- // TODO: cannot seem to use LogWrite in this .h file!
- printf("Unable to find parent command '%s' for subcommand: '%s'\n\tEvery subcommand must have a parent command!", command.c_str(), subcommand.command.data.c_str());
- }
- void AddDataCommand(EQ2_RemoteCommandString* command){
- buffer.append((char*)&command->command.size, sizeof(command->command.size));
- if(command->command.size>0)
- buffer.append(command->command.data);
- }
- int32 GetCommandHandler(const char* name){
- if(!name)
- return 0xFFFFFFFF;
- int8 name_size = strlen(name);
- for(int32 i = 0; i < commands.size(); i++){
- if(commands[i].command.size > 0){
- if(strncasecmp(commands[i].command.data.c_str(), name, name_size) == 0)
- return commands[i].handler;
- }
- }
- return 0xFFFFFFFF;
- }
- string buffer;
- EQ2Packet* serialize();
- map<string, map <string, EQ2_RemoteCommandString> > subcommands;
- };
- class Commands{
- public:
- Commands();
- ~Commands();
- bool SetSpawnCommand(Client* client, Spawn* target, int8 type, const char* value, bool send_update = true, bool temporary = false, string* temp_value = 0);
- bool SetZoneCommand(Client* client, int32 zone_id, ZoneServer* zone, int8 type, const char* value);
- RemoteCommands* GetRemoteCommands() { return remote_commands; }
- void Process(int32 index, EQ2_16BitString* command_parms, Client* client, Spawn* targetOverride=NULL);
- int32 GetCommandHandler(const char* name){
- return remote_commands->GetCommandHandler(name);
- }
- int32 GetSpawnSetType(string val);
- // JA: New Command handlers
- void Command_AcceptAdvancement(Client* client, Seperator* sep);
- void Command_AFK(Client* client, Seperator* sep);
- void Command_Appearance(Client* client, Seperator* sep, int handler);
- void Command_CancelMaintained(Client* client, Seperator* sep);
- void Command_Claim(Client* client, Seperator* sep);
- void Command_ClearAllQueued(Client* client);
- void Command_Create(Client* client, Seperator* sep);
- void Command_CreateFromRecipe(Client* client, Seperator* sep);
- void Command_Distance(Client* client);
- void Command_Duel(Client* client, Seperator* sep);
- void Command_DuelBet(Client* client, Seperator* sep);
- void Command_DuelAccept(Client* client, Seperator* sep);
- void Command_DuelDecline(Client* client, Seperator* sep);
- void Command_DuelSurrender(Client* client, Seperator* sep);
- void Command_DuelToggle(Client* client, Seperator* sep);
- void Command_EntityCommand(Client* client, Seperator* sep, int handler);
- void Command_Follow(Client* client, Seperator* sep);
- void Command_StopFollow(Client* client, Seperator* sep);
- void Command_Grid(Client* client);
- void Command_Guild(Client* client, Seperator* sep);
- void Command_CreateGuild(Client* client);
- void Command_SetGuildOfficerNote(Client* client, Seperator* sep);
- void Command_SetGuildMemberNote(Client* client, Seperator* sep);
- void Command_OfficerSay(Client* client, Seperator* sep);
- void Command_GuildSay(Client* client, Seperator* sep);
- void Command_Guilds(Client* client);
- void Command_GuildsAdd(Client* client, Seperator* sep);
- void Command_GuildsCreate(Client* client, Seperator* sep);
- void Command_GuildsDelete(Client* client, Seperator* sep);
- void Command_GuildsList(Client* client);
- void Command_GuildsRemove(Client* client, Seperator* sep);
- void Command_InspectPlayer(Client* client, Seperator* sep);
- void Command_Inventory(Client* client, Seperator* sep, EQ2_RemoteCommandString* command);
- void Command_IRC(Client* client, Seperator* sep);
- void Command_Languages(Client* client, Seperator* sep);
- void Command_SetLanguage(Client* client, Seperator* sep);
- void Command_LastName(Client* client, Seperator* sep);
- void Command_ConfirmLastName(Client* client, Seperator* sep);
- void Command_Location(Client* client);
- void Command_LocationAdd(Client* client, Seperator* sep);
- void Command_LocationCreate(Client* client, Seperator* sep);
- void Command_LocationDelete(Client* client, Seperator* sep);
- void Command_LocationList(Client* client, Seperator* sep);
- void Command_LocationRemove(Client* client, Seperator* sep);
- void Command_Merchant(Client* client, Seperator* sep, int handler);
- void Command_Modify(Client* client); // usage function
- void Command_ModifyCharacter(Client* client, Seperator* sep);
- void Command_ModifyFaction(Client* client, Seperator* sep);
- void Command_ModifyGuild(Client* client, Seperator* sep);
- void Command_ModifyItem(Client* client, Seperator* sep);
- void Command_ModifyQuest(Client* client, Seperator* sep);
- void Command_ModifySkill(Client* client, Seperator* sep);
- void Command_ModifySpawn(Client* client, Seperator* sep);
- void Command_ModifySpell(Client* client, Seperator* sep);
- void Command_ModifyZone(Client* client, Seperator* sep);
- void Command_MOTD(Client* client);
- void Command_Pet(Client* client, Seperator* sep);
- void Command_PetName(Client* client, Seperator* sep);
- void Command_NamePet(Client* client, Seperator* sep);
- void Command_Rename(Client* client, Seperator* sep);
- void Command_ConfirmRename(Client* client, Seperator* sep);
- void Command_PetOptions(Client* client, Seperator* sep);
- void Command_Random(Client* client, Seperator* sep);
- void Command_Randomize(Client* client, Seperator* sep);
- void Command_ReportBug(Client* client, Seperator* sep);
- void Command_ShowCloak(Client* client, Seperator* sep);
- void Command_ShowHelm(Client* client, Seperator* sep);
- void Command_ShowHood(Client* client, Seperator* sep);
- void Command_ShowHoodHelm(Client* client, Seperator* sep);
- void Command_ShowRanged(Client* client, Seperator* sep);
- void Command_Skills(Client* client, Seperator* sep, int handler);
- void Command_SpawnTemplate(Client* client, Seperator* sep);
- void Command_Speed(Client* client, Seperator* sep);
- void Command_StationMarketPlace(Client* client, Seperator* sep);
- void Command_StopEating(Client* client);
- void Command_StopDrinking(Client* client);
- void Command_Test(Client* client, EQ2_16BitString* command_parms);
- void Command_Title(Client* client);
- void Command_TitleList(Client* client);
- void Command_TitleSetPrefix(Client* client, Seperator* sep);
- void Command_TitleSetSuffix(Client* client, Seperator* sep);
- void Command_TitleFix(Client* client, Seperator* sep);
- void Command_Toggle_Anonymous(Client* client);
- void Command_Toggle_AutoConsume(Client* client, Seperator* sep);
- void Command_Toggle_BonusXP(Client* client);
- void Command_Toggle_CombatXP(Client* client);
- void Command_Toggle_GMHide(Client* client);
- void Command_Toggle_GMVanish(Client* client);
- void Command_Toggle_Illusions(Client* client, Seperator* sep);
- void Command_Toggle_LFG(Client* client);
- void Command_Toggle_LFW(Client* client);
- void Command_Toggle_QuestXP(Client* client);
- void Command_Toggle_Roleplaying(Client* client);
- void Command_Toggle_Duels(Client* client);
- void Command_Toggle_Trades(Client* client);
- void Command_Toggle_Guilds(Client* client);
- void Command_Toggle_Groups(Client* client);
- void Command_Toggle_Raids(Client* client);
- void Command_Toggle_LON(Client* client);
- void Command_Toggle_VoiceChat(Client* client);
- void Command_Track(Client* client);
- void Command_TradeStart(Client* client, Seperator* sep);
- void Command_TradeAccept(Client* client, Seperator* sep);
- void Command_TradeReject(Client* client, Seperator* sep);
- void Command_TradeCancel(Client* client, Seperator* sep);
- void Command_TradeSetCoin(Client* client, Seperator* sep);
- void Command_TradeAddCoin(Client* client, Seperator* sep, int handler);
- void Command_TradeRemoveCoin(Client* client, Seperator* sep, int handler);
- void Command_TradeAddItem(Client* client, Seperator* sep);
- void Command_TradeRemoveItem(Client* client, Seperator* sep);
- void Command_TryOn(Client* client, Seperator* sep);
- void Command_JoinChannel(Client *client, Seperator *sep);
- void Command_JoinChannelFromLoad(Client *client, Seperator *sep);
- void Command_TellChannel(Client *client, Seperator *sep);
- void Command_LeaveChannel(Client *client, Seperator *sep);
- void Command_WeaponStats(Client *client);
- void Command_WhoChannel(Client *client, Seperator *sep);
- void Command_ZoneSafeCoords(Client *client, Seperator *sep);
- void Command_ZoneDetails(Client *client, Seperator *sep);
- void Command_ZoneSet(Client *client, Seperator *sep);
- void Command_Rain(Client* client, Seperator* sep);
- void Command_Wind(Client* client, Seperator* sep);
- void Command_SendMerchantWindow(Client* client, Seperator* sep, bool sell = false);
- void Command_Weather(Client* client, Seperator* sep);
- void Command_Select(Client* client, Seperator* sep);
- void Command_ConsumeFood(Client* client, Seperator* sep);
- void Command_Aquaman(Client* client, Seperator* sep);
- void Command_Attune_Inv(Client* client, Seperator* sep);
- void Command_Player(Client* client, Seperator* sep);
- void Command_Player_Coins(Client* client, Seperator* sep);
- void Command_Reset_Zone_Timer(Client* client, Seperator* sep);
- void Command_AchievementAdd(Client* client, Seperator* sep);
- void Command_Editor(Client* client, Seperator* sep);
- void Command_AcceptResurrection(Client* client, Seperator* sep);
- void Command_DeclineResurrection(Client* client, Seperator* set);
- void Command_TargetItem(Client* client, Seperator* set);
- // Bot Commands
- void Command_Bot(Client* client, Seperator* sep);
- void Command_Bot_Create(Client* client, Seperator* sep);
- void Command_Bot_Customize(Client* client, Seperator* sep);
- void Command_Bot_Spawn(Client* client, Seperator* sep);
- void Command_Bot_List(Client* client, Seperator* sep);
- void Command_Bot_Inv(Client* client, Seperator* sep);
- void Command_Bot_Settings(Client* client, Seperator* sep);
- void Command_Bot_Help(Client* client, Seperator* sep);
- // AA Commands
- void Get_AA_Xml(Client* client, Seperator* sep);
- void Add_AA(Client* client, Seperator* sep);
- void Commit_AA_Profile(Client* client, Seperator* sep);
- void Begin_AA_Profile(Client* client, Seperator* sep);
- void Back_AA(Client* client, Seperator* sep);
- void Remove_AA(Client* client, Seperator* sep);
- void Switch_AA_Profile(Client* client, Seperator* sep);
- void Cancel_AA_Profile(Client* client, Seperator* sep);
- void Save_AA_Profile(Client* client, Seperator* sep);
- private:
- RemoteCommands* remote_commands;
- map<string, int8> spawn_set_values;
- map<string, int8> zone_set_values;
- };
- #define SPAWN_SET_VALUE_LIST 0
- #define SPAWN_SET_VALUE_NAME 1
- #define SPAWN_SET_VALUE_LEVEL 2
- #define SPAWN_SET_VALUE_DIFFICULTY 3
- #define SPAWN_SET_VALUE_MODEL_TYPE 4
- #define SPAWN_SET_VALUE_CLASS 5
- #define SPAWN_SET_VALUE_GENDER 6
- #define SPAWN_SET_VALUE_SHOW_NAME 7
- #define SPAWN_SET_VALUE_ATTACKABLE 8
- #define SPAWN_SET_VALUE_SHOW_LEVEL 9
- #define SPAWN_SET_VALUE_TARGETABLE 10
- #define SPAWN_SET_VALUE_SHOW_COMMAND_ICON 11
- #define SPAWN_SET_VALUE_HAND_ICON 12
- #define SPAWN_SET_VALUE_HAIR_TYPE 13
- #define SPAWN_SET_VALUE_FACIAL_HAIR_TYPE 14
- #define SPAWN_SET_VALUE_WING_TYPE 15
- #define SPAWN_SET_VALUE_CHEST_TYPE 16
- #define SPAWN_SET_VALUE_LEGS_TYPE 17
- #define SPAWN_SET_VALUE_SOGA_HAIR_TYPE 18
- #define SPAWN_SET_VALUE_SOGA_FACIAL_HAIR_TYPE 19
- #define SPAWN_SET_VALUE_SOGA_MODEL_TYPE 20
- #define SPAWN_SET_VALUE_SIZE 21
- #define SPAWN_SET_VALUE_HP 22
- #define SPAWN_SET_VALUE_POWER 23
- #define SPAWN_SET_VALUE_HEROIC 24
- #define SPAWN_SET_VALUE_RESPAWN 25
- #define SPAWN_SET_VALUE_X 26
- #define SPAWN_SET_VALUE_Y 27
- #define SPAWN_SET_VALUE_Z 28
- #define SPAWN_SET_VALUE_HEADING 29
- #define SPAWN_SET_VALUE_LOCATION 30
- #define SPAWN_SET_VALUE_COMMAND_PRIMARY 31
- #define SPAWN_SET_VALUE_COMMAND_SECONDARY 32
- #define SPAWN_SET_VALUE_VISUAL_STATE 33
- #define SPAWN_SET_VALUE_ACTION_STATE 34
- #define SPAWN_SET_VALUE_MOOD_STATE 35
- #define SPAWN_SET_VALUE_INITIAL_STATE 36
- #define SPAWN_SET_VALUE_ACTIVITY_STATE 37
- #define SPAWN_SET_VALUE_COLLISION_RADIUS 38
- #define SPAWN_SET_VALUE_FACTION 39
- #define SPAWN_SET_VALUE_SPAWN_SCRIPT 40
- #define SPAWN_SET_VALUE_SPAWNENTRY_SCRIPT 41
- #define SPAWN_SET_VALUE_SPAWNLOCATION_SCRIPT 42
- #define SPAWN_SET_VALUE_SUB_TITLE 43
- #define SPAWN_SET_VALUE_EXPIRE 45
- #define SPAWN_SET_VALUE_EXPIRE_OFFSET 46
- #define SPAWN_SET_VALUE_X_OFFSET 47
- #define SPAWN_SET_VALUE_Y_OFFSET 48
- #define SPAWN_SET_VALUE_Z_OFFSET 49
- #define SPAWN_SET_VALUE_DEVICE_ID 50
- #define SPAWN_SET_VALUE_PITCH 51
- #define SPAWN_SET_VALUE_ROLL 52
- #define SPAWN_SET_VALUE_HIDE_HOOD 53
- #define SPAWN_SET_VALUE_EMOTE_STATE 54
- #define SPAWN_SET_VALUE_ICON 55
- #define SPAWN_SET_VALUE_PREFIX 56
- #define SPAWN_SET_VALUE_SUFFIX 57
- #define SPAWN_SET_VALUE_LASTNAME 58
- #define ZONE_SET_VALUE_EXPANSION_ID 0
- #define ZONE_SET_VALUE_NAME 1
- #define ZONE_SET_VALUE_FILE 2
- #define ZONE_SET_VALUE_DESCRIPTION 3
- #define ZONE_SET_VALUE_SAFE_X 4
- #define ZONE_SET_VALUE_SAFE_Y 5
- #define ZONE_SET_VALUE_SAFE_Z 6
- #define ZONE_SET_VALUE_UNDERWORLD 7
- #define ZONE_SET_VALUE_MIN_RECOMMENDED 8
- #define ZONE_SET_VALUE_MAX_RECOMMENDED 9
- #define ZONE_SET_VALUE_ZONE_TYPE 10
- #define ZONE_SET_VALUE_ALWAYS_LOADED 11
- #define ZONE_SET_VALUE_CITY_ZONE 12
- #define ZONE_SET_VALUE_MIN_STATUS 13
- #define ZONE_SET_VALUE_MIN_LEVEL 14
- #define ZONE_SET_VALUE_START_ZONE 15
- #define ZONE_SET_VALUE_INSTANCE_TYPE 16
- #define ZONE_SET_VALUE_DEFAULT_REENTER_TIME 17
- #define ZONE_SET_VALUE_DEFAULT_RESET_TIME 18
- #define ZONE_SET_VALUE_DEFAULT_LOCKOUT_TIME 19
- #define ZONE_SET_VALUE_FORCE_GROUP_TO_ZONE 20
- #define ZONE_SET_VALUE_LUA_SCRIPT 21
- #define ZONE_SET_VALUE_SHUTDOWN_TIMER 22
- #define ZONE_SET_VALUE_ZONE_MOTD 23
- #define ZONE_SET_VALUE_MAX_LEVEL 24
- #define ZONE_SET_VALUE_WEATHER_ALLOWED 25
- #define COMMAND_SPAWN 1
- #define COMMAND_RACE 2
- #define COMMAND_LEVEL 3
- #define COMMAND_CLASS 4
- #define COMMAND_GENDER 5
- #define COMMAND_NAME 6
- #define COMMAND_SAY 7
- #define COMMAND_TELL 8
- #define COMMAND_YELL 9
- #define COMMAND_SHOUT 10
- #define COMMAND_AUCTION 11
- #define COMMAND_OOC 12
- #define COMMAND_EMOTE 13
- #define COMMAND_GROUPSAY 14
- #define COMMAND_GROUPINVITE 15
- #define COMMAND_GROUPDISBAND 16
- #define COMMAND_GROUP 17
- #define COMMAND_CLAIM 18
- #define COMMAND_HAIL 19
- #define COMMAND_ZONE 20
- #define COMMAND_ADMINFLAG 21
- #define COMMAND_KICK 22
- #define COMMAND_BAN 23
- #define COMMAND_INVENTORY 24
- #define COMMAND_SUMMONITEM 25
- #define COMMAND_FOLLOW 26
- #define COMMAND_STOP_FOLLOW 27
- #define COMMAND_LASTNAME 28
- #define COMMAND_CONFIRMLASTNAME 29
- #define COMMAND_COLLECTION_ADDITEM 30
- #define COMMAND_COLLECTION_FILTER_MATCHITEM 31
- #define COMMAND_MOVE 32
- #define COMMAND_INFO 33
- #define COMMAND_USEABILITY 34
- #define COMMAND_ENABLE_ABILITY_QUE 35
- #define COMMAND_RELOAD_ITEMS 36
- #define COMMAND_AUTO_ATTACK 37
- #define COMMAND_WEATHER 38
- #define COMMAND_SPEED 39
- #define COMMAND_SPAWN_MOVE 40
- #define COMMAND_WHO 41
- #define COMMAND_VERSION 42
- #define COMMAND_SPAWN_ADD 43
- #define COMMAND_SPAWN_CREATE 44
- #define COMMAND_SPAWN_SET 45
- #define COMMAND_SPAWN_REMOVE 46
- #define COMMAND_SPAWN_LIST 47
- #define COMMAND_SIT 48
- #define COMMAND_STAND 49
- #define COMMAND_SPAWN_TARGET 50
- #define COMMAND_SPAWN_EQUIPMENT 51
- #define COMMAND_SPAWN_DETAILS 52
- #define COMMAND_SELECT_JUNCTION 53
- #define COMMAND_KILL 54
- #define COMMAND_SUMMON 55
- #define COMMAND_GOTO 56
- #define COMMAND_FLYMODE 57
- #define COMMAND_SETTIME 58
- #define COMMAND_RELOAD_SPELLS 59
- #define COMMAND_LOOT 60
- #define COMMAND_USE 61
- #define COMMAND_RELOADSPAWNSCRIPTS 62
- #define COMMAND_RELOADLUASYSTEM 63
- #define COMMAND_RELOADSTRUCTS 64
- #define COMMAND_RELOAD 65
- #define COMMAND_LOOT_LIST 66
- #define COMMAND_LOOT_SETCOIN 67
- #define COMMAND_LOOT_ADDITEM 68
- #define COMMAND_LOOT_REMOVEITEM 69
- #define COMMAND_BANK 70
- #define COMMAND_BANK_DEPOSIT 71
- #define COMMAND_BANK_WITHDRAWAL 72
- #define COMMAND_BANK_CANCEL 73
- #define COMMAND_ATTACK 74
- #define COMMAND_REPORT_BUG 75
- #define COMMAND_ACCEPT_QUEST 76
- #define COMMAND_DECLINE_QUEST 77
- #define COMMAND_DELETE_QUEST 78
- #define COMMAND_RELOAD_QUESTS 79
- #define COMMAND_SPAWN_COMBINE 80
- #define COMMAND_DEPOP 81
- #define COMMAND_REPOP 82
- #define COMMAND_LUADEBUG 83
- #define COMMAND_TEST 84
- #define COMMAND_ACCEPT_REWARD 85
- #define COMMAND_FROM_MERCHANT 86
- #define COMMAND_MERCHANT_BUY 87
- #define COMMAND_MERCHANT_SELL 88
- #define COMMAND_CANCEL_MERCHANT 89
- #define COMMAND_START_MERCHANT 90
- #define COMMAND_BUYBACK 91
- #define COMMAND_SEARCH_STORES 92
- #define COMMAND_INVULNERABLE 93
- #define COMMAND_SEARCH_STORES_PAGE 94
- #define COMMAND_BUY_FROM_BROKER 95
- #define COMMAND_GROUP_ACCEPT_INVITE 96
- #define COMMAND_GROUP_DECLINE_INVITE 97
- #define COMMAND_RELOAD_GROUNDSPAWNS 98
- #define COMMAND_RELOAD_SPAWNS 99
- #define COMMAND_LOCK 100
- #define COMMAND_GIVEITEM 101
- #define COMMAND_SET_COMBAT_VOICE 102
- #define COMMAND_SET_EMOTE_VOICE 103
- #define COMMAND_RELOAD_ZONESCRIPTS 104
- #define COMMAND_GROUP_LEAVE 105
- #define COMMAND_GROUP_MAKE_LEADER 106
- #define COMMAND_GROUP_KICK 107
- #define COMMAND_FRIEND_ADD 108
- #define COMMAND_FRIEND_REMOVE 109
- #define COMMAND_FRIENDS 110
- #define COMMAND_IGNORE_ADD 111
- #define COMMAND_IGNORE_REMOVE 112
- #define COMMAND_IGNORES 113
- #define COMMAND_MENDER_REPAIR 114
- #define COMMAND_MENDER_REPAIR_ALL 115
- #define COMMAND_REPAIR 116
- #define COMMAND_USE_ITEM 117
- #define COMMAND_WEAPONSTATS 118
- #define COMMAND_START_MAIL 119
- #define COMMAND_GET_MAIL_MESSAGE 120
- #define COMMAND_TAKE_MAIL_ATTACHMENTS 121
- #define COMMAND_REPORT_SPAM 122
- #define COMMAND_CANCEL_MAIL 123
- #define COMMAND_ADD_MAIL_PLAT 124
- #define COMMAND_ADD_MAIL_GOLD 125
- #define COMMAND_ADD_MAIL_SILVER 126
- #define COMMAND_ADD_MAIL_COPPER 127
- #define COMMAND_SET_MAIL_ITEM 128
- #define COMMAND_CANCEL_SEND_MAIL 129
- #define COMMAND_REMOVE_MAIL_PLAT 130
- #define COMMAND_REMOVE_MAIL_GOLD 131
- #define COMMAND_REMOVE_MAIL_SILVER 132
- #define COMMAND_REMOVE_MAIL_COPPER 133
- #define COMMAND_DELETE_MAIL_MESSAGE 134
- #define COMMAND_TRACK 135
- #define COMMAND_INSPECT_PLAYER 136
- #define COMMAND_PET 137
- #define COMMAND_PETNAME 138
- #define COMMAND_NAME_PET 139
- #define COMMAND_RENAME 140
- #define COMMAND_CONFIRMRENAME 141
- #define COMMAND_PETOPTIONS 142
- #define COMMAND_SPAWN_TEMPLATE 143 // JA: new /spawn template command
- #define COMMAND_CANNEDEMOTE 144
- #define COMMAND_BROADCAST 145
- #define COMMAND_ANNOUNCE 146
- #define COMMAND_AFK 147
- #define COMMAND_TOGGLE_ANONYMOUS 148
- #define COMMAND_TOGGLE_LFW 149
- #define COMMAND_TOGGLE_LFG 150
- #define COMMAND_SHOW_RANGED 151
- #define COMMAND_TOGGLE_AUTOCONSUME 152
- #define COMMAND_SHOW_HELM 153
- #define COMMAND_SHOW_HOOD_OR_HELM 154
- #define COMMAND_SHOW_CLOAK 155
- #define COMMAND_STOP_EATING 156
- #define COMMAND_STOP_DRINKING 157
- #define COMMAND_TOGGLE_ILLUSIONS 158
- #define COMMAND_SHOW_HOOD 159
- #define COMMAND_TOGGLE_DUELS 160
- #define COMMAND_TOGGLE_TRADES 161
- #define COMMAND_TOGGLE_GUILDS 162
- #define COMMAND_TOGGLE_GROUPS 163
- #define COMMAND_TOGGLE_RAIDS 164
- #define COMMAND_TOGGLE_LON 165
- #define COMMAND_TOGGLE_GM_HIDE 167
- #define COMMAND_TOGGLE_GM_VANISH 168
- #define COMMAND_SPAWN_GROUP 169
- #define COMMAND_TOGGLE_ROLEPLAYING 170
- #define COMMAND_TOGGLE_VCINVITE 171
- #define COMMAND_START_TRADE 172
- #define COMMAND_ACCEPT_TRADE 173
- #define COMMAND_REJECT_TRADE 174
- #define COMMAND_CANCEL_TRADE 175
- #define COMMAND_SET_TRADE_COIN 176
- #define COMMAND_ADD_TRADE_COPPER 177
- #define COMMAND_ADD_TRADE_SILVER 178
- #define COMMAND_ADD_TRADE_GOLD 179
- #define COMMAND_ADD_TRADE_PLAT 180
- #define COMMAND_REMOVE_TRADE_COPPER 181
- #define COMMAND_REMOVE_TRADE_SILVER 182
- #define COMMAND_REMOVE_TRADE_GOLD 183
- #define COMMAND_REMOVE_TRADE_PLAT 184
- #define COMMAND_ADD_TRADE_ITEM 185
- #define COMMAND_REMOVE_TRADE_ITEM 186
- #define COMMAND_TOGGLE_COMBAT_EXP 187
- #define COMMAND_TOGGLE_QUEST_EXP 188
- #define COMMAND_TOGGLE_BONUS_EXP 189
- #define COMMAND_ZONE_SHUTDOWN 190
- #define COMMAND_ZONE_SAFE 191
- #define COMMAND_ZONE_REVIVE 192
- #define COMMAND_RELOAD_ZONES 193
- #define COMMAND_DUEL 200
- #define COMMAND_DUELBET 201
- #define COMMAND_DUEL_ACCEPT 202
- #define COMMAND_DUEL_DECLINE 203
- #define COMMAND_DUEL_SURRENDER 204
- #define COMMAND_DUEL_TOGGLE 205
- #define COMMAND_ANIMTEST 211
- #define COMMAND_ITEMSEARCH 212
- #define COMMAND_ACTION 232 // JA: What is this? Exists nowhere else...
- #define COMMAND_SKILL_ADD 233
- #define COMMAND_SKILL_REMOVE 234
- #define COMMAND_SKILL_LIST 235
- #define COMMAND_SKILL 236
- #define COMMAND_ZONE_SET 237
- #define COMMAND_ZONE_DETAILS 238
- #define COMMAND_RANDOMIZE 239
- #define COMMAND_RELOAD_ENTITYCOMMANDS 240
- #define COMMAND_ENTITYCOMMAND 241
- #define COMMAND_ENTITYCOMMAND_LIST 242
- #define COMMAND_RELOAD_FACTIONS 243
- #define COMMAND_MERCHANT 244
- #define COMMAND_MERCHANT_LIST 245
- #define COMMAND_APPEARANCE 246
- #define COMMAND_APPEARANCE_LIST 247
- #define COMMAND_RELOAD_MAIL 248
- #define COMMAND_DISTANCE 249
- #define COMMAND_GUILDSAY 250
- #define COMMAND_OFFICERSAY 251
- #define COMMAND_GUILD 252
- #define COMMAND_SET_GUILD_MEMBER_NOTE 253
- #define COMMAND_SET_GUILD_OFFICER_NOTE 254
- #define COMMAND_RELOAD_GUILDS 255
- #define COMMAND_CREATE 256
- #define COMMAND_CREATE_GUILD 257
- #define COMMAND_GUILDS 258
- #define COMMAND_GUILDS_CREATE 259
- #define COMMAND_GUILDS_DELETE 260
- #define COMMAND_GUILDS_ADD 261
- #define COMMAND_GUILDS_REMOVE 262
- #define COMMAND_GUILDS_LIST 263
- #define COMMAND_LOTTO 264
- #define COMMAND_CLEAR_ALL_QUEUED 265
- #define COMMAND_SCRIBE_SCROLL_ITEM 266
- #define COMMAND_RELOAD_LOCATIONS 267
- #define COMMAND_LOCATION 268
- #define COMMAND_LOCATION_CREATE 269
- #define COMMAND_LOCATION_ADD 270
- #define COMMAND_GRID 271
- #define COMMAND_LOCATION_REMOVE 272
- #define COMMAND_LOCATION_DELETE 273
- #define COMMAND_LOCATION_LIST 274
- #define COMMAND_USE_EQUIPPED_ITEM 275
- #define COMMAND_CANCEL_MAINTAINED 276
- #define COMMAND_LOOT_CORPSE 277
- #define COMMAND_MOTD 278
- #define COMMAND_RANDOM 279
- #define COMMAND_TRY_ON 280
- #define COMMAND_TITLE 281
- #define COMMAND_GUILD_BANK 282
- #define COMMAND_GUILD_BANK_DEPOSIT 283
- #define COMMAND_GUILD_BANK_WITHDRAWAL 284
- #define COMMAND_GUILD_BANK_CANCEL 285
- #define COMMAND_TITLE_LIST 286
- #define COMMAND_TITLE_SETPREFIX 287
- #define COMMAND_TITLE_SETSUFFIX 288
- #define COMMAND_TITLE_FIX 289
- #define COMMAND_LANGUAGES 290
- #define COMMAND_SET_LANGUAGE 291
- #define COMMAND_IRC 292
- #define COMMAND_ACCEPT_ADVANCEMENT 293
- #define COMMAND_JOIN_CHANNEL 294
- #define COMMAND_JOIN_CHANNEL_FROM_LOAD 295
- #define COMMAND_TELL_CHANNEL 296
- #define COMMAND_LEAVE_CHANNEL 297
- #define COMMAND_WHO_CHANNEL 298
- #define COMMAND_CREATEFROMRECIPE 299
- #define COMMAND_RAIN 300
- #define COMMAND_TO_MERCHANT 301
- #define COMMAND_SELECT 302
- #define COMMAND_SMP 303
- #define COMMAND_CONSUME_FOOD 304
- #define COMMAND_AQUAMAN 305
- #define COMMAND_ATTUNE_INV 306
- #define COMMAND_PLAYER 307
- #define COMMAND_PLAYER_COINS 308
- #define COMMAND_RESET_ZONE_TIMER 309
- #define COMMAND_ACHIEVEMENT_ADD 310
- #define COMMAND_EDITOR 311
- #define COMMAND_ACCEPT_RESURRECTION 312
- #define COMMAND_DECLINE_RESURRECTION 313
- #define COMMAND_WIND 314
- #define COMMAND_TARGETITEM 315
- #define COMMAND_READ 463
- #define COMMAND_BOT 500
- #define COMMAND_BOT_CREATE 501
- #define COMMAND_BOT_CUSTOMIZE 502
- #define COMMAND_BOT_SPAWN 503
- #define COMMAND_BOT_LIST 504
- #define COMMAND_BOT_INV 505
- #define COMMAND_BOT_SETTINGS 506
- #define COMMAND_BOT_HELP 507
- #define COMMAND_OPEN 508
- #define COMMAND_CASTSPELL 509
- #define COMMAND_DISARM 510
- #define GET_AA_XML 751
- #define ADD_AA 752
- #define COMMIT_AA_PROFILE 753
- #define BEGIN_AA_PROFILE 754
- #define BACK_AA 755
- #define REMOVE_AA 756
- #define SWITCH_AA_PROFILE 757
- #define CANCEL_AA_PROFILE 758
- #define SAVE_AA_PROFILE 759
- #define COMMAND_MODIFY 1000 // INSERT INTO `commands`(`id`,`type`,`command`,`subcommand`,`handler`,`required_status`) VALUES ( NULL,'1','modify','','1000','200');
- #define COMMAND_MODIFY_CHARACTER 1001
- #define COMMAND_MODIFY_FACTION 1002
- #define COMMAND_MODIFY_GUILD 1003
- #define COMMAND_MODIFY_ITEM 1004
- #define COMMAND_MODIFY_QUEST 1005
- #define COMMAND_MODIFY_SKILL 1006
- #define COMMAND_MODIFY_SPAWN 1007
- #define COMMAND_MODIFY_SPELL 1008
- #define COMMAND_MODIFY_ZONE 1009
- #endif
|