Commands.h 35 KB

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