Commands.h 33 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909
  1. /*
  2. EQ2Emulator: Everquest II Server Emulator
  3. Copyright (C) 2007 EQ2EMulator Development Team (http://www.eq2emulator.net)
  4. This file is part of EQ2Emulator.
  5. EQ2Emulator is free software: you can redistribute it and/or modify
  6. it under the terms of the GNU General Public License as published by
  7. the Free Software Foundation, either version 3 of the License, or
  8. (at your option) any later version.
  9. EQ2Emulator is distributed in the hope that it will be useful,
  10. but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  12. GNU General Public License for more details.
  13. You should have received a copy of the GNU General Public License
  14. along with EQ2Emulator. If not, see <http://www.gnu.org/licenses/>.
  15. */
  16. #ifndef __EQ2_COMMANDS__
  17. #define __EQ2_COMMANDS__
  18. #include "../../common/DataBuffer.h"
  19. #include "../../common/MiscFunctions.h"
  20. #include "../../common/types.h"
  21. #include "../../common/opcodemgr.h"
  22. #include <vector>
  23. #include <string>
  24. #include <map>
  25. #include "../../common/debug.h"
  26. using namespace std;
  27. class Client;
  28. class Spawn;
  29. class ZoneServer;
  30. extern map<int16,OpcodeManager*>EQOpcodeManager;
  31. #define CHANNEL_COLOR_RED 3
  32. #define CHANNEL_COLOR_CHAT_RELATIONSHIP 4
  33. #define CHANNEL_COLOR_YELLOW 5
  34. #define CHANNEL_COLOR_REVIVE 12
  35. #define CHANNEL_COLOR_MAIL 12
  36. #define CHANNEL_COLOR_WHITE 12
  37. #define CHANNEL_COLOR_GROUP 15
  38. #define CHANNEL_COLOR_GUILD 18
  39. #define CHANNEL_COLOR_GUILD_MOTD 20
  40. #define CHANNEL_COLOR_GUILD_EVENT 22
  41. #define CHANNEL_COLOR_EXP 36
  42. #define CHANNEL_COLOR_SKILL 39
  43. #define CHANNEL_COLOR_FACTION 40
  44. #define CHANNEL_COLOR_SPELL_EFFECT 42
  45. #define CHANNEL_COLOR_SPELL 47
  46. #define CHANNEL_COLOR_SPELL_INTERRUPT 52
  47. #define CHANNEL_COLOR_SPELL_FADE 51
  48. #define CHANNEL_COLOR_COMBAT 60
  49. #define CHANNEL_COLOR_LOOT 81
  50. #define CHANNEL_COLOR_NEW_LOOT 84
  51. #define CHANNEL_COLOR_NEWEST_LOOT 89
  52. #define CHANNEL_COLOR_MERCHANT 88
  53. #define CHANNEL_COLOR_GROUP_INVITE 89
  54. #define CHANNEL_COLOR_GUILD_MSGS 94
  55. #define CHANNEL_COLOR_HARVEST 96
  56. #define UPDATE_COLOR_WHITE 254 // For UpdateText
  57. #define CHANNEL_SAY 8
  58. #define CHANNEL_SHOUT 9
  59. #define CHANNEL_EMOTE 10
  60. #define CHANNEL_GROUP 15
  61. #define CHANNEL_RAID 16
  62. #define CHANNEL_GUILD 18
  63. #define CHANNEL_OFFICER 19
  64. #define CHANNEL_SAYTARGET 25 // you say to xxx
  65. #define CHANNEL_TELL 28 // you tell xxx
  66. #define CHANNEL_OOC 32
  67. //#define CHANNEL_AUCTION 30
  68. #define CHANNEL_GAME_TEXT 1
  69. #define CHANNEL_DEFAULT 2
  70. #define CHANNEL_ERROR 3
  71. #define CHANNEL_STATUS 4
  72. #define CHANNEL_MOTD 5
  73. #define CHANNEL_CHAT_TEXT 6
  74. #define CHANNEL_NEARBY_CHAT 7
  75. #define CHANNEL_SAY 8
  76. #define CHANNEL_SHOUT 9
  77. #define CHANNEL_EMOTE 10
  78. #define CHANNEL_YELL 11
  79. #define CHANNEL_NARRATIVE 12
  80. #define CHANNEL_NONPLAYER_SAY 13
  81. #define CHANNEL_GROUP_CHAT 14
  82. #define CHANNEL_GROUP_SAY 15 // Use this for group chat
  83. #define CHANNEL_RAID_SAY 16
  84. #define CHANNEL_GUILD_CHAT 17
  85. #define CHANNEL_GUILD_SAY 18 // Use this for guild chat
  86. #define CHANNEL_OFFICER_SAY 19
  87. #define CHANNEL_GUILD_MOTD 20
  88. #define CHANNEL_GUILD_MEMBER_ONLINE 21
  89. #define CHANNEL_GUILD_EVENT 22
  90. #define CHANNEL_GUILD_RECRUITING_PAGE 23
  91. #define CHANNEL_GUILD_RECRUITING_PAGE_OTHER 24
  92. #define CHANNEL_PRIVATE_CHAT 25
  93. #define CHANNEL_NONPLAYER_TELL 26
  94. #define CHANNEL_OBJECT_TEXT 27
  95. #define CHANNEL_PRIVATE_TELL 28
  96. #define CHANNEL_TELL_FROM_CS 29
  97. #define CHANNEL_ARENA 30
  98. #define CHANNEL_CHAT_CHANNEL_TEXT 31
  99. #define CHANNEL_OUT_OF_CHARACTER 32
  100. #define CHANNEL_AUCTION 33
  101. // 34 is nothing, message with 34 as type will not show on client
  102. #define CHANNEL_CHARACTER_TEXT 35
  103. #define CHANNEL_REWARD 36
  104. #define CHANNEL_DEATH 37
  105. #define CHANNEL_PET_CHAT 38
  106. #define CHANNEL_SKILL 39
  107. #define CHANNEL_FACTION 40
  108. // Combat related chat channels start here
  109. #define CHANNEL_SPELLS 41
  110. #define CHANNEL_YOU_CAST 42
  111. #define CHANNEL_YOU_FAIL 43
  112. #define CHANNEL_CRITICAL_CAST 44
  113. #define CHANNEL_FRIENDLY_CAST 45
  114. #define CHANNEL_FRIENDLY_FAIL 46
  115. #define CHANNEL_OTHER_CAST 47
  116. #define CHANNEL_OTHER_FAIL 48
  117. #define CHANNEL_HOSTILE_CAST 49
  118. #define CHANNEL_HOSTILE_FAIL 50
  119. #define CHANNEL_WORN_OFF 51
  120. #define CHANNEL_SPELLS_OTHER 52
  121. #define CHANNEL_HEAL_SPELLS 53
  122. #define CHANNEL_HEALS 54
  123. #define CHANNEL_FRIENDLY_HEALS 55
  124. #define CHANNEL_OTHER_HEALS 56
  125. #define CHANNEL_HOSTILE_HEALS 57
  126. #define CHANNEL_CRITICAL_HEALS 58
  127. #define CHANNEL_COMBAT 59
  128. #define CHANNEL_GENERAL_COMBAT 60
  129. #define CHANNEL_HEROIC_OPPORTUNITY 61
  130. #define CHANNEL_NON_MELEE_DAMAGE 62
  131. #define CHANNEL_DAMAGE_SHIELD 63
  132. #define CHANNEL_WARD 64
  133. #define CHANNEL_DAMAGE_INTERCEPT 65
  134. #define CHANNEL_MELEE_COMBAT 66
  135. #define CHANNEL_WARNINGS 67
  136. #define CHANNEL_YOU_HIT 68
  137. #define CHANNEL_YOU_MISS 69
  138. #define CHANNEL_ATTACKER_HITS 70
  139. #define CHANNEL_ATTACKER_MISSES 71
  140. #define CHANNEL_YOUR_PET_HITS 72
  141. #define CHANNEL_YOUR_PET_MISSES 73
  142. #define CHANNEL_ATTACKER_HITS_PET 74
  143. #define CHANNEL_ATTACKER_MISSES_PET 75
  144. #define CHANNEL_OTHER_HIT 76
  145. #define CHANNEL_OTHER_MISSES 77
  146. #define CHANNEL_CRITICAL_HIT 78
  147. #define CHANNEL_HATE_ADJUSTMENTS 79
  148. #define CHANNEL_YOUR_HATE 80
  149. #define CHANNEL_OTHERS_HATE 81
  150. #define CHANNEL_DISPELS_AND_CURES 82
  151. #define CHANNEL_DISPEL_YOU 83
  152. #define CHANNEL_DISPEL_OTHER 84
  153. #define CHANNEL_CURE_YOU 85
  154. #define CHANNEL_CURE_OTHER 86
  155. // End of combat chat channels
  156. #define CHANNEL_OTHER 87
  157. #define CHANNEL_MONEY_SPLIT 88
  158. #define CHANNEL_LOOT 89
  159. #define CHANNEL_LOOT_ROLLS 90
  160. #define CHANNEL_COMMAND_TEXT 91
  161. #define CHANNEL_BROADCAST 92 // Goes to all chat windows no matter what
  162. #define CHANNEL_WHO 93
  163. #define CHANNEL_COMMANDS 94
  164. #define CHANNEL_MERCHANT 95
  165. #define CHANNEL_MERCHANT_BUY_SELL 96
  166. #define CHANNEL_CONSIDER_MESSAGE 97
  167. #define CHANNEL_CON_MINUS_2 98
  168. #define CHANNEL_CON_MINUS_1 99
  169. #define CHANNEL_CON_0 100
  170. #define CHANNEL_CON_1 101
  171. #define CHANNEL_CON_2 102
  172. #define CHANNEL_TRADESKILLS 103
  173. #define CHANNEL_HARVESTING 104
  174. #define CHANNEL_HARVESTING_WARNINGS 105
  175. // 106 is nothing, message sent with this channel won't display in the client
  176. #define CHANNEL_VOICE_CHAT 107
  177. // 108+ will crash the client DO NOT USE
  178. /* 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,
  179. 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
  180. running, causing world to crash. */
  181. struct ZoneInfo {
  182. int32 id;
  183. int8 expansion_id;
  184. char name[64];
  185. char file[64];
  186. char description[256];
  187. float safe_x;
  188. float safe_y;
  189. float safe_z;
  190. float underworld;
  191. int8 min_recommended;
  192. int8 max_recommended;
  193. char zone_type[64];
  194. bool always_loaded;
  195. bool city_zone;
  196. sint16 min_status;
  197. int16 min_level;
  198. int16 max_level;
  199. int8 start_zone;
  200. int8 instance_type;
  201. int32 default_reenter_time;
  202. int32 default_reset_time;
  203. int32 default_lockout_time;
  204. int8 force_group_to_zone;
  205. char lua_script[256];
  206. int32 shutdown_timer;
  207. char zone_motd[256];
  208. float xp_modifier;
  209. int16 min_version;
  210. bool weather_allowed;
  211. int32 ruleset_id;
  212. };
  213. class EQ2_CommandString : public DataBuffer{
  214. public:
  215. EQ2_CommandString(){ handler = 0; }
  216. EQ2_CommandString(uchar* buffer, int32 size){
  217. InitializeLoadData(buffer, size);
  218. LoadData(handler);
  219. LoadDataString(command);
  220. }
  221. EQ2_16BitString command;
  222. int16 handler;
  223. };
  224. class EQ2_RemoteCommandString : public DataBuffer{
  225. public:
  226. EQ2_RemoteCommandString(){ handler = 0; }
  227. EQ2_RemoteCommandString(char* name, int32 in_handler, sint16 in_status){
  228. command.data = string(name);
  229. command.size = command.data.length();
  230. handler = in_handler;
  231. required_status = in_status;
  232. }
  233. EQ2_RemoteCommandString(uchar* buffer, int32 size){
  234. required_status = 0;
  235. InitializeLoadData(buffer, size);
  236. LoadData(handler);
  237. LoadDataString(command);
  238. }
  239. EQ2_8BitString command;
  240. int16 handler;
  241. sint16 required_status;
  242. };
  243. class RemoteCommands {
  244. public:
  245. RemoteCommands(){ num_commands = 0; buffer.clear(); }
  246. int16 num_commands;
  247. vector<EQ2_RemoteCommandString> commands;
  248. void addCommand(EQ2_RemoteCommandString add){ commands.push_back(add); num_commands++;}
  249. void AddSubCommand(string command, EQ2_RemoteCommandString subcommand){
  250. subcommands[command][subcommand.command.data] = subcommand;
  251. }
  252. bool validSubCommand(string command, string subcommand){
  253. if(subcommands.count(command) > 0 && subcommands[command].count(subcommand) > 0)
  254. return true;
  255. return false;
  256. }
  257. void addZero(){
  258. num_commands++;
  259. EQ2_RemoteCommandString add;
  260. add.command.size = 0;
  261. commands.push_back(add);
  262. }
  263. void CheckAddSubCommand(string command, EQ2_RemoteCommandString subcommand){
  264. vector<EQ2_RemoteCommandString>::iterator itr;
  265. for(itr = commands.begin(); itr != commands.end();itr++){
  266. if((*itr).command.data == command){
  267. AddSubCommand(command, subcommand);
  268. return;
  269. }
  270. }
  271. // TODO: cannot seem to use LogWrite in this .h file!
  272. 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());
  273. }
  274. void AddDataCommand(EQ2_RemoteCommandString* command){
  275. buffer.append((char*)&command->command.size, sizeof(command->command.size));
  276. if(command->command.size>0)
  277. buffer.append(command->command.data);
  278. }
  279. int32 GetCommandHandler(const char* name){
  280. if(!name)
  281. return 0xFFFFFFFF;
  282. int8 name_size = strlen(name);
  283. for(int32 i = 0; i < commands.size(); i++){
  284. if(commands[i].command.size > 0){
  285. if(strncasecmp(commands[i].command.data.c_str(), name, name_size) == 0)
  286. return commands[i].handler;
  287. }
  288. }
  289. return 0xFFFFFFFF;
  290. }
  291. string buffer;
  292. EQ2Packet* serialize();
  293. map<string, map <string, EQ2_RemoteCommandString> > subcommands;
  294. };
  295. class Commands{
  296. public:
  297. Commands();
  298. ~Commands();
  299. bool SetSpawnCommand(Client* client, Spawn* target, int8 type, const char* value, bool send_update = true, bool temporary = false, string* temp_value = 0);
  300. bool SetZoneCommand(Client* client, int32 zone_id, ZoneServer* zone, int8 type, const char* value);
  301. RemoteCommands* GetRemoteCommands() { return remote_commands; }
  302. void Process(int32 index, EQ2_16BitString* command_parms, Client* client, Spawn* targetOverride=NULL);
  303. int32 GetCommandHandler(const char* name){
  304. return remote_commands->GetCommandHandler(name);
  305. }
  306. int32 GetSpawnSetType(string val);
  307. // JA: New Command handlers
  308. void Command_AcceptAdvancement(Client* client, Seperator* sep);
  309. void Command_AFK(Client* client, Seperator* sep);
  310. void Command_Appearance(Client* client, Seperator* sep, int handler);
  311. void Command_CancelMaintained(Client* client, Seperator* sep);
  312. void Command_Claim(Client* client, Seperator* sep);
  313. void Command_ClearAllQueued(Client* client);
  314. void Command_Create(Client* client, Seperator* sep);
  315. void Command_CreateFromRecipe(Client* client, Seperator* sep);
  316. void Command_Distance(Client* client);
  317. void Command_Duel(Client* client, Seperator* sep);
  318. void Command_DuelBet(Client* client, Seperator* sep);
  319. void Command_DuelAccept(Client* client, Seperator* sep);
  320. void Command_DuelDecline(Client* client, Seperator* sep);
  321. void Command_DuelSurrender(Client* client, Seperator* sep);
  322. void Command_DuelToggle(Client* client, Seperator* sep);
  323. void Command_EntityCommand(Client* client, Seperator* sep, int handler);
  324. void Command_Follow(Client* client, Seperator* sep);
  325. void Command_StopFollow(Client* client, Seperator* sep);
  326. void Command_Grid(Client* client);
  327. void Command_Guild(Client* client, Seperator* sep);
  328. void Command_CreateGuild(Client* client);
  329. void Command_SetGuildOfficerNote(Client* client, Seperator* sep);
  330. void Command_SetGuildMemberNote(Client* client, Seperator* sep);
  331. void Command_OfficerSay(Client* client, Seperator* sep);
  332. void Command_GuildSay(Client* client, Seperator* sep);
  333. void Command_Guilds(Client* client);
  334. void Command_GuildsAdd(Client* client, Seperator* sep);
  335. void Command_GuildsCreate(Client* client, Seperator* sep);
  336. void Command_GuildsDelete(Client* client, Seperator* sep);
  337. void Command_GuildsList(Client* client);
  338. void Command_GuildsRemove(Client* client, Seperator* sep);
  339. void Command_InspectPlayer(Client* client, Seperator* sep);
  340. void Command_Inventory(Client* client, Seperator* sep, EQ2_RemoteCommandString* command);
  341. void Command_IRC(Client* client, Seperator* sep);
  342. void Command_Languages(Client* client, Seperator* sep);
  343. void Command_SetLanguage(Client* client, Seperator* sep);
  344. void Command_LastName(Client* client, Seperator* sep);
  345. void Command_ConfirmLastName(Client* client, Seperator* sep);
  346. void Command_Location(Client* client);
  347. void Command_LocationAdd(Client* client, Seperator* sep);
  348. void Command_LocationCreate(Client* client, Seperator* sep);
  349. void Command_LocationDelete(Client* client, Seperator* sep);
  350. void Command_LocationList(Client* client, Seperator* sep);
  351. void Command_LocationRemove(Client* client, Seperator* sep);
  352. void Command_Merchant(Client* client, Seperator* sep, int handler);
  353. void Command_Modify(Client* client); // usage function
  354. void Command_ModifyCharacter(Client* client, Seperator* sep);
  355. void Command_ModifyFaction(Client* client, Seperator* sep);
  356. void Command_ModifyGuild(Client* client, Seperator* sep);
  357. void Command_ModifyItem(Client* client, Seperator* sep);
  358. void Command_ModifyQuest(Client* client, Seperator* sep);
  359. void Command_ModifySkill(Client* client, Seperator* sep);
  360. void Command_ModifySpawn(Client* client, Seperator* sep);
  361. void Command_ModifySpell(Client* client, Seperator* sep);
  362. void Command_ModifyZone(Client* client, Seperator* sep);
  363. void Command_MOTD(Client* client);
  364. void Command_Pet(Client* client, Seperator* sep);
  365. void Command_PetName(Client* client, Seperator* sep);
  366. void Command_NamePet(Client* client, Seperator* sep);
  367. void Command_Rename(Client* client, Seperator* sep);
  368. void Command_ConfirmRename(Client* client, Seperator* sep);
  369. void Command_PetOptions(Client* client, Seperator* sep);
  370. void Command_Random(Client* client, Seperator* sep);
  371. void Command_Randomize(Client* client, Seperator* sep);
  372. void Command_ReportBug(Client* client, Seperator* sep);
  373. void Command_ShowCloak(Client* client, Seperator* sep);
  374. void Command_ShowHelm(Client* client, Seperator* sep);
  375. void Command_ShowHood(Client* client, Seperator* sep);
  376. void Command_ShowHoodHelm(Client* client, Seperator* sep);
  377. void Command_ShowRanged(Client* client, Seperator* sep);
  378. void Command_Skills(Client* client, Seperator* sep, int handler);
  379. void Command_SpawnTemplate(Client* client, Seperator* sep);
  380. void Command_Speed(Client* client, Seperator* sep);
  381. void Command_StationMarketPlace(Client* client, Seperator* sep);
  382. void Command_StopEating(Client* client);
  383. void Command_StopDrinking(Client* client);
  384. void Command_Test(Client* client, EQ2_16BitString* command_parms);
  385. void Command_Title(Client* client);
  386. void Command_TitleList(Client* client);
  387. void Command_TitleSetPrefix(Client* client, Seperator* sep);
  388. void Command_TitleSetSuffix(Client* client, Seperator* sep);
  389. void Command_TitleFix(Client* client, Seperator* sep);
  390. void Command_Toggle_Anonymous(Client* client);
  391. void Command_Toggle_AutoConsume(Client* client, Seperator* sep);
  392. void Command_Toggle_BonusXP(Client* client);
  393. void Command_Toggle_CombatXP(Client* client);
  394. void Command_Toggle_GMHide(Client* client);
  395. void Command_Toggle_GMVanish(Client* client);
  396. void Command_Toggle_Illusions(Client* client, Seperator* sep);
  397. void Command_Toggle_LFG(Client* client);
  398. void Command_Toggle_LFW(Client* client);
  399. void Command_Toggle_QuestXP(Client* client);
  400. void Command_Toggle_Roleplaying(Client* client);
  401. void Command_Toggle_Duels(Client* client);
  402. void Command_Toggle_Trades(Client* client);
  403. void Command_Toggle_Guilds(Client* client);
  404. void Command_Toggle_Groups(Client* client);
  405. void Command_Toggle_Raids(Client* client);
  406. void Command_Toggle_LON(Client* client);
  407. void Command_Toggle_VoiceChat(Client* client);
  408. void Command_Track(Client* client);
  409. void Command_TradeStart(Client* client, Seperator* sep);
  410. void Command_TradeAccept(Client* client, Seperator* sep);
  411. void Command_TradeReject(Client* client, Seperator* sep);
  412. void Command_TradeCancel(Client* client, Seperator* sep);
  413. void Command_TradeSetCoin(Client* client, Seperator* sep);
  414. void Command_TradeAddCoin(Client* client, Seperator* sep, int handler);
  415. void Command_TradeRemoveCoin(Client* client, Seperator* sep, int handler);
  416. void Command_TradeAddItem(Client* client, Seperator* sep);
  417. void Command_TradeRemoveItem(Client* client, Seperator* sep);
  418. void Command_TryOn(Client* client, Seperator* sep);
  419. void Command_JoinChannel(Client *client, Seperator *sep);
  420. void Command_JoinChannelFromLoad(Client *client, Seperator *sep);
  421. void Command_TellChannel(Client *client, Seperator *sep);
  422. void Command_LeaveChannel(Client *client, Seperator *sep);
  423. void Command_WeaponStats(Client *client);
  424. void Command_WhoChannel(Client *client, Seperator *sep);
  425. void Command_ZoneSafeCoords(Client *client, Seperator *sep);
  426. void Command_ZoneDetails(Client *client, Seperator *sep);
  427. void Command_ZoneSet(Client *client, Seperator *sep);
  428. void Command_Rain(Client* client, Seperator* sep);
  429. void Command_Wind(Client* client, Seperator* sep);
  430. void Command_SendMerchantWindow(Client* client, Seperator* sep, bool sell = false);
  431. void Command_Weather(Client* client, Seperator* sep);
  432. void Command_Select(Client* client, Seperator* sep);
  433. void Command_ConsumeFood(Client* client, Seperator* sep);
  434. void Command_Aquaman(Client* client, Seperator* sep);
  435. void Command_Attune_Inv(Client* client, Seperator* sep);
  436. void Command_Player(Client* client, Seperator* sep);
  437. void Command_Player_Coins(Client* client, Seperator* sep);
  438. void Command_Reset_Zone_Timer(Client* client, Seperator* sep);
  439. void Command_AchievementAdd(Client* client, Seperator* sep);
  440. void Command_Editor(Client* client, Seperator* sep);
  441. void Command_AcceptResurrection(Client* client, Seperator* sep);
  442. void Command_DeclineResurrection(Client* client, Seperator* set);
  443. void Command_TargetItem(Client* client, Seperator* set);
  444. // Bot Commands
  445. void Command_Bot(Client* client, Seperator* sep);
  446. void Command_Bot_Create(Client* client, Seperator* sep);
  447. void Command_Bot_Customize(Client* client, Seperator* sep);
  448. void Command_Bot_Spawn(Client* client, Seperator* sep);
  449. void Command_Bot_List(Client* client, Seperator* sep);
  450. void Command_Bot_Inv(Client* client, Seperator* sep);
  451. void Command_Bot_Settings(Client* client, Seperator* sep);
  452. void Command_Bot_Help(Client* client, Seperator* sep);
  453. // AA Commands
  454. void Get_AA_Xml(Client* client, Seperator* sep);
  455. void Add_AA(Client* client, Seperator* sep);
  456. void Commit_AA_Profile(Client* client, Seperator* sep);
  457. void Begin_AA_Profile(Client* client, Seperator* sep);
  458. void Back_AA(Client* client, Seperator* sep);
  459. void Remove_AA(Client* client, Seperator* sep);
  460. void Switch_AA_Profile(Client* client, Seperator* sep);
  461. void Cancel_AA_Profile(Client* client, Seperator* sep);
  462. void Save_AA_Profile(Client* client, Seperator* sep);
  463. private:
  464. RemoteCommands* remote_commands;
  465. map<string, int8> spawn_set_values;
  466. map<string, int8> zone_set_values;
  467. };
  468. #define SPAWN_SET_VALUE_LIST 0
  469. #define SPAWN_SET_VALUE_NAME 1
  470. #define SPAWN_SET_VALUE_LEVEL 2
  471. #define SPAWN_SET_VALUE_DIFFICULTY 3
  472. #define SPAWN_SET_VALUE_MODEL_TYPE 4
  473. #define SPAWN_SET_VALUE_CLASS 5
  474. #define SPAWN_SET_VALUE_GENDER 6
  475. #define SPAWN_SET_VALUE_SHOW_NAME 7
  476. #define SPAWN_SET_VALUE_ATTACKABLE 8
  477. #define SPAWN_SET_VALUE_SHOW_LEVEL 9
  478. #define SPAWN_SET_VALUE_TARGETABLE 10
  479. #define SPAWN_SET_VALUE_SHOW_COMMAND_ICON 11
  480. #define SPAWN_SET_VALUE_HAND_ICON 12
  481. #define SPAWN_SET_VALUE_HAIR_TYPE 13
  482. #define SPAWN_SET_VALUE_FACIAL_HAIR_TYPE 14
  483. #define SPAWN_SET_VALUE_WING_TYPE 15
  484. #define SPAWN_SET_VALUE_CHEST_TYPE 16
  485. #define SPAWN_SET_VALUE_LEGS_TYPE 17
  486. #define SPAWN_SET_VALUE_SOGA_HAIR_TYPE 18
  487. #define SPAWN_SET_VALUE_SOGA_FACIAL_HAIR_TYPE 19
  488. #define SPAWN_SET_VALUE_SOGA_MODEL_TYPE 20
  489. #define SPAWN_SET_VALUE_SIZE 21
  490. #define SPAWN_SET_VALUE_HP 22
  491. #define SPAWN_SET_VALUE_POWER 23
  492. #define SPAWN_SET_VALUE_HEROIC 24
  493. #define SPAWN_SET_VALUE_RESPAWN 25
  494. #define SPAWN_SET_VALUE_X 26
  495. #define SPAWN_SET_VALUE_Y 27
  496. #define SPAWN_SET_VALUE_Z 28
  497. #define SPAWN_SET_VALUE_HEADING 29
  498. #define SPAWN_SET_VALUE_LOCATION 30
  499. #define SPAWN_SET_VALUE_COMMAND_PRIMARY 31
  500. #define SPAWN_SET_VALUE_COMMAND_SECONDARY 32
  501. #define SPAWN_SET_VALUE_VISUAL_STATE 33
  502. #define SPAWN_SET_VALUE_ACTION_STATE 34
  503. #define SPAWN_SET_VALUE_MOOD_STATE 35
  504. #define SPAWN_SET_VALUE_INITIAL_STATE 36
  505. #define SPAWN_SET_VALUE_ACTIVITY_STATE 37
  506. #define SPAWN_SET_VALUE_COLLISION_RADIUS 38
  507. #define SPAWN_SET_VALUE_FACTION 39
  508. #define SPAWN_SET_VALUE_SPAWN_SCRIPT 40
  509. #define SPAWN_SET_VALUE_SPAWNENTRY_SCRIPT 41
  510. #define SPAWN_SET_VALUE_SPAWNLOCATION_SCRIPT 42
  511. #define SPAWN_SET_VALUE_SUB_TITLE 43
  512. #define SPAWN_SET_VALUE_EXPIRE 45
  513. #define SPAWN_SET_VALUE_EXPIRE_OFFSET 46
  514. #define SPAWN_SET_VALUE_X_OFFSET 47
  515. #define SPAWN_SET_VALUE_Y_OFFSET 48
  516. #define SPAWN_SET_VALUE_Z_OFFSET 49
  517. #define SPAWN_SET_VALUE_DEVICE_ID 50
  518. #define SPAWN_SET_VALUE_PITCH 51
  519. #define SPAWN_SET_VALUE_ROLL 52
  520. #define SPAWN_SET_VALUE_HIDE_HOOD 53
  521. #define SPAWN_SET_VALUE_EMOTE_STATE 54
  522. #define SPAWN_SET_VALUE_ICON 55
  523. #define SPAWN_SET_VALUE_PREFIX 56
  524. #define SPAWN_SET_VALUE_SUFFIX 57
  525. #define SPAWN_SET_VALUE_LASTNAME 58
  526. #define SPAWN_SET_VALUE_EXPANSION_FLAG 59
  527. #define ZONE_SET_VALUE_EXPANSION_ID 0
  528. #define ZONE_SET_VALUE_NAME 1
  529. #define ZONE_SET_VALUE_FILE 2
  530. #define ZONE_SET_VALUE_DESCRIPTION 3
  531. #define ZONE_SET_VALUE_SAFE_X 4
  532. #define ZONE_SET_VALUE_SAFE_Y 5
  533. #define ZONE_SET_VALUE_SAFE_Z 6
  534. #define ZONE_SET_VALUE_UNDERWORLD 7
  535. #define ZONE_SET_VALUE_MIN_RECOMMENDED 8
  536. #define ZONE_SET_VALUE_MAX_RECOMMENDED 9
  537. #define ZONE_SET_VALUE_ZONE_TYPE 10
  538. #define ZONE_SET_VALUE_ALWAYS_LOADED 11
  539. #define ZONE_SET_VALUE_CITY_ZONE 12
  540. #define ZONE_SET_VALUE_MIN_STATUS 13
  541. #define ZONE_SET_VALUE_MIN_LEVEL 14
  542. #define ZONE_SET_VALUE_START_ZONE 15
  543. #define ZONE_SET_VALUE_INSTANCE_TYPE 16
  544. #define ZONE_SET_VALUE_DEFAULT_REENTER_TIME 17
  545. #define ZONE_SET_VALUE_DEFAULT_RESET_TIME 18
  546. #define ZONE_SET_VALUE_DEFAULT_LOCKOUT_TIME 19
  547. #define ZONE_SET_VALUE_FORCE_GROUP_TO_ZONE 20
  548. #define ZONE_SET_VALUE_LUA_SCRIPT 21
  549. #define ZONE_SET_VALUE_SHUTDOWN_TIMER 22
  550. #define ZONE_SET_VALUE_ZONE_MOTD 23
  551. #define ZONE_SET_VALUE_MAX_LEVEL 24
  552. #define ZONE_SET_VALUE_WEATHER_ALLOWED 25
  553. #define COMMAND_SPAWN 1
  554. #define COMMAND_RACE 2
  555. #define COMMAND_LEVEL 3
  556. #define COMMAND_CLASS 4
  557. #define COMMAND_GENDER 5
  558. #define COMMAND_NAME 6
  559. #define COMMAND_SAY 7
  560. #define COMMAND_TELL 8
  561. #define COMMAND_YELL 9
  562. #define COMMAND_SHOUT 10
  563. #define COMMAND_AUCTION 11
  564. #define COMMAND_OOC 12
  565. #define COMMAND_EMOTE 13
  566. #define COMMAND_GROUPSAY 14
  567. #define COMMAND_GROUPINVITE 15
  568. #define COMMAND_GROUPDISBAND 16
  569. #define COMMAND_GROUP 17
  570. #define COMMAND_CLAIM 18
  571. #define COMMAND_HAIL 19
  572. #define COMMAND_ZONE 20
  573. #define COMMAND_ADMINFLAG 21
  574. #define COMMAND_KICK 22
  575. #define COMMAND_BAN 23
  576. #define COMMAND_INVENTORY 24
  577. #define COMMAND_SUMMONITEM 25
  578. #define COMMAND_FOLLOW 26
  579. #define COMMAND_STOP_FOLLOW 27
  580. #define COMMAND_LASTNAME 28
  581. #define COMMAND_CONFIRMLASTNAME 29
  582. #define COMMAND_COLLECTION_ADDITEM 30
  583. #define COMMAND_COLLECTION_FILTER_MATCHITEM 31
  584. #define COMMAND_MOVE 32
  585. #define COMMAND_INFO 33
  586. #define COMMAND_USEABILITY 34
  587. #define COMMAND_ENABLE_ABILITY_QUE 35
  588. #define COMMAND_RELOAD_ITEMS 36
  589. #define COMMAND_AUTO_ATTACK 37
  590. #define COMMAND_WEATHER 38
  591. #define COMMAND_SPEED 39
  592. #define COMMAND_SPAWN_MOVE 40
  593. #define COMMAND_WHO 41
  594. #define COMMAND_VERSION 42
  595. #define COMMAND_SPAWN_ADD 43
  596. #define COMMAND_SPAWN_CREATE 44
  597. #define COMMAND_SPAWN_SET 45
  598. #define COMMAND_SPAWN_REMOVE 46
  599. #define COMMAND_SPAWN_LIST 47
  600. #define COMMAND_SIT 48
  601. #define COMMAND_STAND 49
  602. #define COMMAND_SPAWN_TARGET 50
  603. #define COMMAND_SPAWN_EQUIPMENT 51
  604. #define COMMAND_SPAWN_DETAILS 52
  605. #define COMMAND_SELECT_JUNCTION 53
  606. #define COMMAND_KILL 54
  607. #define COMMAND_SUMMON 55
  608. #define COMMAND_GOTO 56
  609. #define COMMAND_FLYMODE 57
  610. #define COMMAND_SETTIME 58
  611. #define COMMAND_RELOAD_SPELLS 59
  612. #define COMMAND_LOOT 60
  613. #define COMMAND_USE 61
  614. #define COMMAND_RELOADSPAWNSCRIPTS 62
  615. #define COMMAND_RELOADLUASYSTEM 63
  616. #define COMMAND_RELOADSTRUCTS 64
  617. #define COMMAND_RELOAD 65
  618. #define COMMAND_LOOT_LIST 66
  619. #define COMMAND_LOOT_SETCOIN 67
  620. #define COMMAND_LOOT_ADDITEM 68
  621. #define COMMAND_LOOT_REMOVEITEM 69
  622. #define COMMAND_BANK 70
  623. #define COMMAND_BANK_DEPOSIT 71
  624. #define COMMAND_BANK_WITHDRAWAL 72
  625. #define COMMAND_BANK_CANCEL 73
  626. #define COMMAND_ATTACK 74
  627. #define COMMAND_REPORT_BUG 75
  628. #define COMMAND_ACCEPT_QUEST 76
  629. #define COMMAND_DECLINE_QUEST 77
  630. #define COMMAND_DELETE_QUEST 78
  631. #define COMMAND_RELOAD_QUESTS 79
  632. #define COMMAND_SPAWN_COMBINE 80
  633. #define COMMAND_DEPOP 81
  634. #define COMMAND_REPOP 82
  635. #define COMMAND_LUADEBUG 83
  636. #define COMMAND_TEST 84
  637. #define COMMAND_ACCEPT_REWARD 85
  638. #define COMMAND_FROM_MERCHANT 86
  639. #define COMMAND_MERCHANT_BUY 87
  640. #define COMMAND_MERCHANT_SELL 88
  641. #define COMMAND_CANCEL_MERCHANT 89
  642. #define COMMAND_START_MERCHANT 90
  643. #define COMMAND_BUYBACK 91
  644. #define COMMAND_SEARCH_STORES 92
  645. #define COMMAND_INVULNERABLE 93
  646. #define COMMAND_SEARCH_STORES_PAGE 94
  647. #define COMMAND_BUY_FROM_BROKER 95
  648. #define COMMAND_GROUP_ACCEPT_INVITE 96
  649. #define COMMAND_GROUP_DECLINE_INVITE 97
  650. #define COMMAND_RELOAD_GROUNDSPAWNS 98
  651. #define COMMAND_RELOAD_SPAWNS 99
  652. #define COMMAND_LOCK 100
  653. #define COMMAND_GIVEITEM 101
  654. #define COMMAND_SET_COMBAT_VOICE 102
  655. #define COMMAND_SET_EMOTE_VOICE 103
  656. #define COMMAND_RELOAD_ZONESCRIPTS 104
  657. #define COMMAND_GROUP_LEAVE 105
  658. #define COMMAND_GROUP_MAKE_LEADER 106
  659. #define COMMAND_GROUP_KICK 107
  660. #define COMMAND_FRIEND_ADD 108
  661. #define COMMAND_FRIEND_REMOVE 109
  662. #define COMMAND_FRIENDS 110
  663. #define COMMAND_IGNORE_ADD 111
  664. #define COMMAND_IGNORE_REMOVE 112
  665. #define COMMAND_IGNORES 113
  666. #define COMMAND_MENDER_REPAIR 114
  667. #define COMMAND_MENDER_REPAIR_ALL 115
  668. #define COMMAND_REPAIR 116
  669. #define COMMAND_USE_ITEM 117
  670. #define COMMAND_WEAPONSTATS 118
  671. #define COMMAND_START_MAIL 119
  672. #define COMMAND_GET_MAIL_MESSAGE 120
  673. #define COMMAND_TAKE_MAIL_ATTACHMENTS 121
  674. #define COMMAND_REPORT_SPAM 122
  675. #define COMMAND_CANCEL_MAIL 123
  676. #define COMMAND_ADD_MAIL_PLAT 124
  677. #define COMMAND_ADD_MAIL_GOLD 125
  678. #define COMMAND_ADD_MAIL_SILVER 126
  679. #define COMMAND_ADD_MAIL_COPPER 127
  680. #define COMMAND_SET_MAIL_ITEM 128
  681. #define COMMAND_CANCEL_SEND_MAIL 129
  682. #define COMMAND_REMOVE_MAIL_PLAT 130
  683. #define COMMAND_REMOVE_MAIL_GOLD 131
  684. #define COMMAND_REMOVE_MAIL_SILVER 132
  685. #define COMMAND_REMOVE_MAIL_COPPER 133
  686. #define COMMAND_DELETE_MAIL_MESSAGE 134
  687. #define COMMAND_TRACK 135
  688. #define COMMAND_INSPECT_PLAYER 136
  689. #define COMMAND_PET 137
  690. #define COMMAND_PETNAME 138
  691. #define COMMAND_NAME_PET 139
  692. #define COMMAND_RENAME 140
  693. #define COMMAND_CONFIRMRENAME 141
  694. #define COMMAND_PETOPTIONS 142
  695. #define COMMAND_SPAWN_TEMPLATE 143 // JA: new /spawn template command
  696. #define COMMAND_CANNEDEMOTE 144
  697. #define COMMAND_BROADCAST 145
  698. #define COMMAND_ANNOUNCE 146
  699. #define COMMAND_AFK 147
  700. #define COMMAND_TOGGLE_ANONYMOUS 148
  701. #define COMMAND_TOGGLE_LFW 149
  702. #define COMMAND_TOGGLE_LFG 150
  703. #define COMMAND_SHOW_RANGED 151
  704. #define COMMAND_TOGGLE_AUTOCONSUME 152
  705. #define COMMAND_SHOW_HELM 153
  706. #define COMMAND_SHOW_HOOD_OR_HELM 154
  707. #define COMMAND_SHOW_CLOAK 155
  708. #define COMMAND_STOP_EATING 156
  709. #define COMMAND_STOP_DRINKING 157
  710. #define COMMAND_TOGGLE_ILLUSIONS 158
  711. #define COMMAND_SHOW_HOOD 159
  712. #define COMMAND_TOGGLE_DUELS 160
  713. #define COMMAND_TOGGLE_TRADES 161
  714. #define COMMAND_TOGGLE_GUILDS 162
  715. #define COMMAND_TOGGLE_GROUPS 163
  716. #define COMMAND_TOGGLE_RAIDS 164
  717. #define COMMAND_TOGGLE_LON 165
  718. #define COMMAND_TOGGLE_GM_HIDE 167
  719. #define COMMAND_TOGGLE_GM_VANISH 168
  720. #define COMMAND_SPAWN_GROUP 169
  721. #define COMMAND_TOGGLE_ROLEPLAYING 170
  722. #define COMMAND_TOGGLE_VCINVITE 171
  723. #define COMMAND_START_TRADE 172
  724. #define COMMAND_ACCEPT_TRADE 173
  725. #define COMMAND_REJECT_TRADE 174
  726. #define COMMAND_CANCEL_TRADE 175
  727. #define COMMAND_SET_TRADE_COIN 176
  728. #define COMMAND_ADD_TRADE_COPPER 177
  729. #define COMMAND_ADD_TRADE_SILVER 178
  730. #define COMMAND_ADD_TRADE_GOLD 179
  731. #define COMMAND_ADD_TRADE_PLAT 180
  732. #define COMMAND_REMOVE_TRADE_COPPER 181
  733. #define COMMAND_REMOVE_TRADE_SILVER 182
  734. #define COMMAND_REMOVE_TRADE_GOLD 183
  735. #define COMMAND_REMOVE_TRADE_PLAT 184
  736. #define COMMAND_ADD_TRADE_ITEM 185
  737. #define COMMAND_REMOVE_TRADE_ITEM 186
  738. #define COMMAND_TOGGLE_COMBAT_EXP 187
  739. #define COMMAND_TOGGLE_QUEST_EXP 188
  740. #define COMMAND_TOGGLE_BONUS_EXP 189
  741. #define COMMAND_ZONE_SHUTDOWN 190
  742. #define COMMAND_ZONE_SAFE 191
  743. #define COMMAND_ZONE_REVIVE 192
  744. #define COMMAND_RELOAD_ZONES 193
  745. #define COMMAND_DUEL 200
  746. #define COMMAND_DUELBET 201
  747. #define COMMAND_DUEL_ACCEPT 202
  748. #define COMMAND_DUEL_DECLINE 203
  749. #define COMMAND_DUEL_SURRENDER 204
  750. #define COMMAND_DUEL_TOGGLE 205
  751. #define COMMAND_ANIMTEST 211
  752. #define COMMAND_ITEMSEARCH 212
  753. #define COMMAND_ACTION 232 // JA: What is this? Exists nowhere else...
  754. #define COMMAND_SKILL_ADD 233
  755. #define COMMAND_SKILL_REMOVE 234
  756. #define COMMAND_SKILL_LIST 235
  757. #define COMMAND_SKILL 236
  758. #define COMMAND_ZONE_SET 237
  759. #define COMMAND_ZONE_DETAILS 238
  760. #define COMMAND_RANDOMIZE 239
  761. #define COMMAND_RELOAD_ENTITYCOMMANDS 240
  762. #define COMMAND_ENTITYCOMMAND 241
  763. #define COMMAND_ENTITYCOMMAND_LIST 242
  764. #define COMMAND_RELOAD_FACTIONS 243
  765. #define COMMAND_MERCHANT 244
  766. #define COMMAND_MERCHANT_LIST 245
  767. #define COMMAND_APPEARANCE 246
  768. #define COMMAND_APPEARANCE_LIST 247
  769. #define COMMAND_RELOAD_MAIL 248
  770. #define COMMAND_DISTANCE 249
  771. #define COMMAND_GUILDSAY 250
  772. #define COMMAND_OFFICERSAY 251
  773. #define COMMAND_GUILD 252
  774. #define COMMAND_SET_GUILD_MEMBER_NOTE 253
  775. #define COMMAND_SET_GUILD_OFFICER_NOTE 254
  776. #define COMMAND_RELOAD_GUILDS 255
  777. #define COMMAND_CREATE 256
  778. #define COMMAND_CREATE_GUILD 257
  779. #define COMMAND_GUILDS 258
  780. #define COMMAND_GUILDS_CREATE 259
  781. #define COMMAND_GUILDS_DELETE 260
  782. #define COMMAND_GUILDS_ADD 261
  783. #define COMMAND_GUILDS_REMOVE 262
  784. #define COMMAND_GUILDS_LIST 263
  785. #define COMMAND_LOTTO 264
  786. #define COMMAND_CLEAR_ALL_QUEUED 265
  787. #define COMMAND_SCRIBE_SCROLL_ITEM 266
  788. #define COMMAND_RELOAD_LOCATIONS 267
  789. #define COMMAND_LOCATION 268
  790. #define COMMAND_LOCATION_CREATE 269
  791. #define COMMAND_LOCATION_ADD 270
  792. #define COMMAND_GRID 271
  793. #define COMMAND_LOCATION_REMOVE 272
  794. #define COMMAND_LOCATION_DELETE 273
  795. #define COMMAND_LOCATION_LIST 274
  796. #define COMMAND_USE_EQUIPPED_ITEM 275
  797. #define COMMAND_CANCEL_MAINTAINED 276
  798. #define COMMAND_LOOT_CORPSE 277
  799. #define COMMAND_MOTD 278
  800. #define COMMAND_RANDOM 279
  801. #define COMMAND_TRY_ON 280
  802. #define COMMAND_TITLE 281
  803. #define COMMAND_GUILD_BANK 282
  804. #define COMMAND_GUILD_BANK_DEPOSIT 283
  805. #define COMMAND_GUILD_BANK_WITHDRAWAL 284
  806. #define COMMAND_GUILD_BANK_CANCEL 285
  807. #define COMMAND_TITLE_LIST 286
  808. #define COMMAND_TITLE_SETPREFIX 287
  809. #define COMMAND_TITLE_SETSUFFIX 288
  810. #define COMMAND_TITLE_FIX 289
  811. #define COMMAND_LANGUAGES 290
  812. #define COMMAND_SET_LANGUAGE 291
  813. #define COMMAND_IRC 292
  814. #define COMMAND_ACCEPT_ADVANCEMENT 293
  815. #define COMMAND_JOIN_CHANNEL 294
  816. #define COMMAND_JOIN_CHANNEL_FROM_LOAD 295
  817. #define COMMAND_TELL_CHANNEL 296
  818. #define COMMAND_LEAVE_CHANNEL 297
  819. #define COMMAND_WHO_CHANNEL 298
  820. #define COMMAND_CREATEFROMRECIPE 299
  821. #define COMMAND_RAIN 300
  822. #define COMMAND_TO_MERCHANT 301
  823. #define COMMAND_SELECT 302
  824. #define COMMAND_SMP 303
  825. #define COMMAND_CONSUME_FOOD 304
  826. #define COMMAND_AQUAMAN 305
  827. #define COMMAND_ATTUNE_INV 306
  828. #define COMMAND_PLAYER 307
  829. #define COMMAND_PLAYER_COINS 308
  830. #define COMMAND_RESET_ZONE_TIMER 309
  831. #define COMMAND_ACHIEVEMENT_ADD 310
  832. #define COMMAND_EDITOR 311
  833. #define COMMAND_ACCEPT_RESURRECTION 312
  834. #define COMMAND_DECLINE_RESURRECTION 313
  835. #define COMMAND_WIND 314
  836. #define COMMAND_TARGETITEM 315
  837. #define COMMAND_READ 463
  838. #define COMMAND_BOT 500
  839. #define COMMAND_BOT_CREATE 501
  840. #define COMMAND_BOT_CUSTOMIZE 502
  841. #define COMMAND_BOT_SPAWN 503
  842. #define COMMAND_BOT_LIST 504
  843. #define COMMAND_BOT_INV 505
  844. #define COMMAND_BOT_SETTINGS 506
  845. #define COMMAND_BOT_HELP 507
  846. #define COMMAND_OPEN 508
  847. #define COMMAND_CASTSPELL 509
  848. #define COMMAND_DISARM 510
  849. #define COMMAND_KNOWLEDGEWINDOWSORT 511
  850. #define COMMAND_PLACE_HOUSE_ITEM 512
  851. #define COMMAND_GM 513
  852. #define COMMAND_HOUSE_UI 514
  853. #define COMMAND_HOUSE 515
  854. #define COMMAND_MOVE_ITEM 516
  855. #define COMMAND_PICKUP 517
  856. #define COMMAND_HOUSE_DEPOSIT 518
  857. #define GET_AA_XML 751
  858. #define ADD_AA 752
  859. #define COMMIT_AA_PROFILE 753
  860. #define BEGIN_AA_PROFILE 754
  861. #define BACK_AA 755
  862. #define REMOVE_AA 756
  863. #define SWITCH_AA_PROFILE 757
  864. #define CANCEL_AA_PROFILE 758
  865. #define SAVE_AA_PROFILE 759
  866. #define COMMAND_MODIFY 1000 // INSERT INTO `commands`(`id`,`type`,`command`,`subcommand`,`handler`,`required_status`) VALUES ( NULL,'1','modify','','1000','200');
  867. #define COMMAND_MODIFY_CHARACTER 1001
  868. #define COMMAND_MODIFY_FACTION 1002
  869. #define COMMAND_MODIFY_GUILD 1003
  870. #define COMMAND_MODIFY_ITEM 1004
  871. #define COMMAND_MODIFY_QUEST 1005
  872. #define COMMAND_MODIFY_SKILL 1006
  873. #define COMMAND_MODIFY_SPAWN 1007
  874. #define COMMAND_MODIFY_SPELL 1008
  875. #define COMMAND_MODIFY_ZONE 1009
  876. #endif