diff --git a/CMakeLists.txt b/CMakeLists.txt index f93cabb22..e53a05bef 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -42,6 +42,7 @@ IF(USE_MAP_MMFS) ENDIF (USE_MAP_MMFS) IF(MSVC) + add_compile_options(/bigobj) ADD_DEFINITIONS(-D_CRT_SECURE_NO_WARNINGS) ADD_DEFINITIONS(-DNOMINMAX) ADD_DEFINITIONS(-DCRASH_LOGGING) diff --git a/zone/CMakeLists.txt b/zone/CMakeLists.txt index 56dcf29fe..8424891e9 100644 --- a/zone/CMakeLists.txt +++ b/zone/CMakeLists.txt @@ -12,7 +12,6 @@ SET(zone_sources bonuses.cpp bot.cpp bot_raid.cpp - bot_command.cpp bot_database.cpp botspellsai.cpp cheat_manager.cpp @@ -23,7 +22,6 @@ SET(zone_sources client_packet.cpp client_process.cpp combat_record.cpp - command.cpp corpse.cpp ../common/data_bucket.cpp doors.cpp @@ -48,36 +46,6 @@ SET(zone_sources horse.cpp inventory.cpp loot.cpp - lua_bot.cpp - lua_bit.cpp - lua_buff.cpp - lua_corpse.cpp - lua_client.cpp - lua_database.cpp - lua_door.cpp - lua_encounter.cpp - lua_entity.cpp - lua_entity_list.cpp - lua_expedition.cpp - lua_general.cpp - lua_group.cpp - lua_hate_list.cpp - lua_inventory.cpp - lua_item.cpp - lua_iteminst.cpp - lua_merc.cpp - lua_mob.cpp - lua_mod.cpp - lua_npc.cpp - lua_object.cpp - lua_packet.cpp - lua_parser.cpp - lua_parser_events.cpp - lua_raid.cpp - lua_spawn.cpp - lua_spell.cpp - lua_stat_bonuses.cpp - lua_zone.cpp embperl.cpp entity.cpp exp.cpp @@ -108,30 +76,6 @@ SET(zone_sources pathfinder_nav_mesh.cpp pathfinder_null.cpp pathing.cpp - perl_bot.cpp - perl_buff.cpp - perl_client.cpp - perl_database.cpp - perl_doors.cpp - perl_entity.cpp - perl_expedition.cpp - perl_groups.cpp - perl_hateentry.cpp - perl_inventory.cpp - perl_merc.cpp - perl_mob.cpp - perl_npc.cpp - perl_object.cpp - perl_perlpacket.cpp - perl_player_corpse.cpp - perl_questitem.cpp - perl_questitem_data.cpp - perl_raids.cpp - perl_spawn.cpp - perl_spell.cpp - perl_stat_bonuses.cpp - perl_zone.cpp - perlpacket.cpp petitions.cpp pets.cpp position.cpp @@ -296,10 +240,247 @@ SET(zone_headers zone_save_state.h zone_cli.cpp) +# lua unity build +set(lua_sources + lua_bot.cpp + lua_bit.cpp + lua_buff.cpp + lua_corpse.cpp + lua_client.cpp + lua_database.cpp + lua_door.cpp + lua_encounter.cpp + lua_entity.cpp + lua_entity_list.cpp + lua_expedition.cpp + lua_general.cpp + lua_group.cpp + lua_hate_list.cpp + lua_inventory.cpp + lua_item.cpp + lua_iteminst.cpp + lua_merc.cpp + lua_mob.cpp + lua_mod.cpp + lua_npc.cpp + lua_object.cpp + lua_packet.cpp + lua_parser.cpp + lua_parser_events.cpp + lua_raid.cpp + lua_spawn.cpp + lua_spell.cpp + lua_stat_bonuses.cpp + lua_zone.cpp +) + +add_library(lua_zone STATIC ${lua_sources}) +set_target_properties(lua_zone PROPERTIES UNITY_BUILD ON UNITY_BUILD_BATCH_SIZE 8) + +# perl unity build +set(perl_sources + perl_bot.cpp + perl_buff.cpp + perl_client.cpp + perl_database.cpp + perl_doors.cpp + perl_entity.cpp + perl_expedition.cpp + perl_groups.cpp + perl_hateentry.cpp + perl_inventory.cpp + perl_merc.cpp + perl_mob.cpp + perl_npc.cpp + perl_object.cpp + perl_perlpacket.cpp + perl_player_corpse.cpp + perl_questitem.cpp + perl_questitem_data.cpp + perl_raids.cpp + perl_spawn.cpp + perl_spell.cpp + perl_stat_bonuses.cpp + perl_zone.cpp + perlpacket.cpp +) + +add_library(perl_zone STATIC ${perl_sources}) +set_target_properties(perl_zone PROPERTIES UNITY_BUILD ON UNITY_BUILD_BATCH_SIZE 8) + +# gm commands +set(gm_command_sources + command.cpp + bot_command.cpp + gm_commands/acceptrules.cpp + gm_commands/advnpcspawn.cpp + gm_commands/aggrozone.cpp + gm_commands/ai.cpp + gm_commands/appearance.cpp + gm_commands/appearanceeffects.cpp + gm_commands/attack.cpp + gm_commands/augmentitem.cpp + gm_commands/ban.cpp + gm_commands/bugs.cpp + gm_commands/camerashake.cpp + gm_commands/castspell.cpp + gm_commands/chat.cpp + gm_commands/clearxtargets.cpp + gm_commands/copycharacter.cpp + gm_commands/corpse.cpp + gm_commands/corpsefix.cpp + gm_commands/countitem.cpp + gm_commands/damage.cpp + gm_commands/databuckets.cpp + gm_commands/dbspawn2.cpp + gm_commands/delacct.cpp + gm_commands/delpetition.cpp + gm_commands/depop.cpp + gm_commands/depopzone.cpp + gm_commands/devtools.cpp + gm_commands/disablerecipe.cpp + gm_commands/disarmtrap.cpp + gm_commands/doanim.cpp + gm_commands/door.cpp + gm_commands/door_manipulation.cpp + gm_commands/dye.cpp + gm_commands/dz.cpp + gm_commands/dzkickplayers.cpp + gm_commands/editmassrespawn.cpp + gm_commands/emote.cpp + gm_commands/emptyinventory.cpp + gm_commands/enablerecipe.cpp + gm_commands/entityvariable.cpp + gm_commands/exptoggle.cpp + gm_commands/faction.cpp + gm_commands/evolving_items.cpp + gm_commands/feature.cpp + gm_commands/find.cpp + gm_commands/fish.cpp + gm_commands/fixmob.cpp + gm_commands/flagedit.cpp + gm_commands/fleeinfo.cpp + gm_commands/forage.cpp + gm_commands/gearup.cpp + gm_commands/giveitem.cpp + gm_commands/givemoney.cpp + gm_commands/gmzone.cpp + gm_commands/goto.cpp + gm_commands/grantaa.cpp + gm_commands/grid.cpp + gm_commands/guild.cpp + gm_commands/hp.cpp + gm_commands/illusion_block.cpp + gm_commands/instance.cpp + gm_commands/interrogateinv.cpp + gm_commands/interrupt.cpp + gm_commands/invsnapshot.cpp + gm_commands/ipban.cpp + gm_commands/kick.cpp + gm_commands/kill.cpp + gm_commands/killallnpcs.cpp + gm_commands/list.cpp + gm_commands/lootsim.cpp + gm_commands/loc.cpp + gm_commands/logs.cpp + gm_commands/makepet.cpp + gm_commands/memspell.cpp + gm_commands/merchantshop.cpp + gm_commands/modifynpcstat.cpp + gm_commands/movechar.cpp + gm_commands/movement.cpp + gm_commands/myskills.cpp + gm_commands/mysql.cpp + gm_commands/mystats.cpp + gm_commands/npccast.cpp + gm_commands/npcedit.cpp + gm_commands/npceditmass.cpp + gm_commands/npcemote.cpp + gm_commands/npcloot.cpp + gm_commands/npcsay.cpp + gm_commands/npcshout.cpp + gm_commands/npcspawn.cpp + gm_commands/npctypespawn.cpp + gm_commands/nudge.cpp + gm_commands/nukebuffs.cpp + gm_commands/nukeitem.cpp + gm_commands/object.cpp + gm_commands/object_manipulation.cpp + gm_commands/parcels.cpp + gm_commands/path.cpp + gm_commands/peqzone.cpp + gm_commands/petitems.cpp + gm_commands/petname.cpp + gm_commands/picklock.cpp + gm_commands/profanity.cpp + gm_commands/push.cpp + gm_commands/raidloot.cpp + gm_commands/randomfeatures.cpp + gm_commands/refreshgroup.cpp + gm_commands/reload.cpp + gm_commands/removeitem.cpp + gm_commands/repop.cpp + gm_commands/resetaa.cpp + gm_commands/resetaa_timer.cpp + gm_commands/resetdisc_timer.cpp + gm_commands/revoke.cpp + gm_commands/roambox.cpp + gm_commands/rules.cpp + gm_commands/save.cpp + gm_commands/scale.cpp + gm_commands/scribespell.cpp + gm_commands/scribespells.cpp + gm_commands/sendzonespawns.cpp + gm_commands/sensetrap.cpp + gm_commands/serverrules.cpp + gm_commands/set.cpp + gm_commands/show.cpp + gm_commands/shutdown.cpp + gm_commands/spawn.cpp + gm_commands/spawneditmass.cpp + gm_commands/spawnfix.cpp + gm_commands/faction_association.cpp + gm_commands/stun.cpp + gm_commands/summon.cpp + gm_commands/summonburiedplayercorpse.cpp + gm_commands/summonitem.cpp + gm_commands/suspend.cpp + gm_commands/suspendmulti.cpp + gm_commands/takeplatinum.cpp + gm_commands/task.cpp + gm_commands/traindisc.cpp + gm_commands/tune.cpp + gm_commands/undye.cpp + gm_commands/unmemspell.cpp + gm_commands/unmemspells.cpp + gm_commands/unscribespell.cpp + gm_commands/unscribespells.cpp + gm_commands/untraindisc.cpp + gm_commands/untraindiscs.cpp + gm_commands/wc.cpp + gm_commands/worldshutdown.cpp + gm_commands/worldwide.cpp + gm_commands/wp.cpp + gm_commands/wpadd.cpp + gm_commands/zone.cpp + gm_commands/zonebootup.cpp + gm_commands/zoneshutdown.cpp + gm_commands/zonevariable.cpp + gm_commands/zone_instance.cpp + gm_commands/zone_shard.cpp + gm_commands/zsave.cpp +) + +add_library(gm_commands_zone STATIC ${gm_command_sources}) +set_target_properties(gm_commands_zone PROPERTIES UNITY_BUILD ON UNITY_BUILD_BATCH_SIZE 32) + +# zone combine sources and headers ADD_EXECUTABLE(zone ${zone_sources} ${zone_headers}) +# binary output directory INSTALL(TARGETS zone RUNTIME DESTINATION ${CMAKE_INSTALL_PREFIX}/bin) +# precompile headers IF (WIN32 AND EQEMU_BUILD_PCH) TARGET_PRECOMPILE_HEADERS(zone PRIVATE ../common/pch/pch.h) TARGET_PRECOMPILE_HEADERS(zone PRIVATE ../common/types.h ../common/eqemu_logsys.h ../common/eqemu_logsys_log_aliases.h ../common/features.h ../common/global_define.h) @@ -308,6 +489,20 @@ ENDIF() ADD_DEFINITIONS(-DZONE) -TARGET_LINK_LIBRARIES(zone ${ZONE_LIBS}) +# link lua_zone unity build against luabind +target_link_libraries(lua_zone PRIVATE luabind) +if (EQEMU_BUILD_STATIC AND LUA_LIBRARY) + target_link_libraries(zone PRIVATE ${LUA_LIBRARY}) +endif() + +# perl unity build links against perl_zone +target_link_libraries(perl_zone PRIVATE perlbind) +if (EQEMU_BUILD_STATIC AND PERL_LIBRARY) + target_link_libraries(zone PRIVATE ${PERL_LIBRARY}) +endif() + +# link zone against common libraries +target_link_libraries(zone PRIVATE ${ZONE_LIBS} lua_zone perl_zone gm_commands_zone) SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin) + diff --git a/zone/command.cpp b/zone/command.cpp index 09721321e..85e4a7e9d 100644 --- a/zone/command.cpp +++ b/zone/command.cpp @@ -783,161 +783,3 @@ void command_bot(Client *c, const Seperator *sep) c->Message(Chat::Red, "Bots are disabled on this server."); } } - -#include "gm_commands/acceptrules.cpp" -#include "gm_commands/advnpcspawn.cpp" -#include "gm_commands/aggrozone.cpp" -#include "gm_commands/ai.cpp" -#include "gm_commands/appearance.cpp" -#include "gm_commands/appearanceeffects.cpp" -#include "gm_commands/attack.cpp" -#include "gm_commands/augmentitem.cpp" -#include "gm_commands/ban.cpp" -#include "gm_commands/bugs.cpp" -#include "gm_commands/camerashake.cpp" -#include "gm_commands/castspell.cpp" -#include "gm_commands/chat.cpp" -#include "gm_commands/clearxtargets.cpp" -#include "gm_commands/copycharacter.cpp" -#include "gm_commands/corpse.cpp" -#include "gm_commands/corpsefix.cpp" -#include "gm_commands/countitem.cpp" -#include "gm_commands/damage.cpp" -#include "gm_commands/databuckets.cpp" -#include "gm_commands/dbspawn2.cpp" -#include "gm_commands/delacct.cpp" -#include "gm_commands/delpetition.cpp" -#include "gm_commands/depop.cpp" -#include "gm_commands/depopzone.cpp" -#include "gm_commands/devtools.cpp" -#include "gm_commands/disablerecipe.cpp" -#include "gm_commands/disarmtrap.cpp" -#include "gm_commands/doanim.cpp" -#include "gm_commands/door.cpp" -#include "gm_commands/door_manipulation.cpp" -#include "gm_commands/dye.cpp" -#include "gm_commands/dz.cpp" -#include "gm_commands/dzkickplayers.cpp" -#include "gm_commands/editmassrespawn.cpp" -#include "gm_commands/emote.cpp" -#include "gm_commands/emptyinventory.cpp" -#include "gm_commands/enablerecipe.cpp" -#include "gm_commands/entityvariable.cpp" -#include "gm_commands/exptoggle.cpp" -#include "gm_commands/faction.cpp" -#include "gm_commands/evolving_items.cpp" -#include "gm_commands/feature.cpp" -#include "gm_commands/find.cpp" -#include "gm_commands/fish.cpp" -#include "gm_commands/fixmob.cpp" -#include "gm_commands/flagedit.cpp" -#include "gm_commands/fleeinfo.cpp" -#include "gm_commands/forage.cpp" -#include "gm_commands/gearup.cpp" -#include "gm_commands/giveitem.cpp" -#include "gm_commands/givemoney.cpp" -#include "gm_commands/gmzone.cpp" -#include "gm_commands/goto.cpp" -#include "gm_commands/grantaa.cpp" -#include "gm_commands/grid.cpp" -#include "gm_commands/guild.cpp" -#include "gm_commands/hp.cpp" -#include "gm_commands/illusion_block.cpp" -#include "gm_commands/instance.cpp" -#include "gm_commands/interrogateinv.cpp" -#include "gm_commands/interrupt.cpp" -#include "gm_commands/invsnapshot.cpp" -#include "gm_commands/ipban.cpp" -#include "gm_commands/kick.cpp" -#include "gm_commands/kill.cpp" -#include "gm_commands/killallnpcs.cpp" -#include "gm_commands/list.cpp" -#include "gm_commands/lootsim.cpp" -#include "gm_commands/loc.cpp" -#include "gm_commands/logs.cpp" -#include "gm_commands/makepet.cpp" -#include "gm_commands/memspell.cpp" -#include "gm_commands/merchantshop.cpp" -#include "gm_commands/modifynpcstat.cpp" -#include "gm_commands/movechar.cpp" -#include "gm_commands/movement.cpp" -#include "gm_commands/myskills.cpp" -#include "gm_commands/mysql.cpp" -#include "gm_commands/mystats.cpp" -#include "gm_commands/npccast.cpp" -#include "gm_commands/npcedit.cpp" -#include "gm_commands/npceditmass.cpp" -#include "gm_commands/npcemote.cpp" -#include "gm_commands/npcloot.cpp" -#include "gm_commands/npcsay.cpp" -#include "gm_commands/npcshout.cpp" -#include "gm_commands/npcspawn.cpp" -#include "gm_commands/npctypespawn.cpp" -#include "gm_commands/nudge.cpp" -#include "gm_commands/nukebuffs.cpp" -#include "gm_commands/nukeitem.cpp" -#include "gm_commands/object.cpp" -#include "gm_commands/object_manipulation.cpp" -#include "gm_commands/parcels.cpp" -#include "gm_commands/path.cpp" -#include "gm_commands/peqzone.cpp" -#include "gm_commands/petitems.cpp" -#include "gm_commands/petname.cpp" -#include "gm_commands/picklock.cpp" -#include "gm_commands/profanity.cpp" -#include "gm_commands/push.cpp" -#include "gm_commands/raidloot.cpp" -#include "gm_commands/randomfeatures.cpp" -#include "gm_commands/refreshgroup.cpp" -#include "gm_commands/reload.cpp" -#include "gm_commands/removeitem.cpp" -#include "gm_commands/repop.cpp" -#include "gm_commands/resetaa.cpp" -#include "gm_commands/resetaa_timer.cpp" -#include "gm_commands/resetdisc_timer.cpp" -#include "gm_commands/revoke.cpp" -#include "gm_commands/roambox.cpp" -#include "gm_commands/rules.cpp" -#include "gm_commands/save.cpp" -#include "gm_commands/scale.cpp" -#include "gm_commands/scribespell.cpp" -#include "gm_commands/scribespells.cpp" -#include "gm_commands/sendzonespawns.cpp" -#include "gm_commands/sensetrap.cpp" -#include "gm_commands/serverrules.cpp" -#include "gm_commands/set.cpp" -#include "gm_commands/show.cpp" -#include "gm_commands/shutdown.cpp" -#include "gm_commands/spawn.cpp" -#include "gm_commands/spawneditmass.cpp" -#include "gm_commands/spawnfix.cpp" -#include "gm_commands/faction_association.cpp" -#include "gm_commands/stun.cpp" -#include "gm_commands/summon.cpp" -#include "gm_commands/summonburiedplayercorpse.cpp" -#include "gm_commands/summonitem.cpp" -#include "gm_commands/suspend.cpp" -#include "gm_commands/suspendmulti.cpp" -#include "gm_commands/takeplatinum.cpp" -#include "gm_commands/task.cpp" -#include "gm_commands/traindisc.cpp" -#include "gm_commands/tune.cpp" -#include "gm_commands/undye.cpp" -#include "gm_commands/unmemspell.cpp" -#include "gm_commands/unmemspells.cpp" -#include "gm_commands/unscribespell.cpp" -#include "gm_commands/unscribespells.cpp" -#include "gm_commands/untraindisc.cpp" -#include "gm_commands/untraindiscs.cpp" -#include "gm_commands/wc.cpp" -#include "gm_commands/worldshutdown.cpp" -#include "gm_commands/worldwide.cpp" -#include "gm_commands/wp.cpp" -#include "gm_commands/wpadd.cpp" -#include "gm_commands/zone.cpp" -#include "gm_commands/zonebootup.cpp" -#include "gm_commands/zoneshutdown.cpp" -#include "gm_commands/zonevariable.cpp" -#include "gm_commands/zone_instance.cpp" -#include "gm_commands/zone_shard.cpp" -#include "gm_commands/zsave.cpp" diff --git a/zone/gm_commands/databuckets.cpp b/zone/gm_commands/databuckets.cpp index 952a276dd..af78f528e 100755 --- a/zone/gm_commands/databuckets.cpp +++ b/zone/gm_commands/databuckets.cpp @@ -3,6 +3,15 @@ #include "../dialogue_window.h" #include "../../common/repositories/data_buckets_repository.h" +void SendDataBucketsSubCommands(Client *c) +{ + c->Message(Chat::White, "Usage: #databuckets delete [Key] [Character ID] [NPC ID] [Bot ID]"); + c->Message(Chat::White, "Usage: #databuckets edit [Key] [Character ID] [NPC ID] [Bot ID] [Value] [Expires]"); + c->Message(Chat::White, "Usage: #databuckets view [Partial Key] [Character ID] [NPC ID] [Bot ID]"); + c->Message(Chat::White, "Note: Character ID, NPC ID, and Bot ID are optional if not needed, if needed they are required for specificity"); + c->Message(Chat::White, "Note: Edit requires Character ID, NPC ID, Bot ID, and Value, Expires is optional and does not modify the existing expiration time if not provided"); +} + void command_databuckets(Client *c, const Seperator *sep) { const int arguments = sep->argnum; @@ -251,12 +260,3 @@ void command_databuckets(Client *c, const Seperator *sep) c->Message(Chat::White, response.c_str()); } } - -void SendDataBucketsSubCommands(Client *c) -{ - c->Message(Chat::White, "Usage: #databuckets delete [Key] [Character ID] [NPC ID] [Bot ID]"); - c->Message(Chat::White, "Usage: #databuckets edit [Key] [Character ID] [NPC ID] [Bot ID] [Value] [Expires]"); - c->Message(Chat::White, "Usage: #databuckets view [Partial Key] [Character ID] [NPC ID] [Bot ID]"); - c->Message(Chat::White, "Note: Character ID, NPC ID, and Bot ID are optional if not needed, if needed they are required for specificity"); - c->Message(Chat::White, "Note: Edit requires Character ID, NPC ID, Bot ID, and Value, Expires is optional and does not modify the existing expiration time if not provided"); -} diff --git a/zone/gm_commands/find/object_type.cpp b/zone/gm_commands/find/object_type.cpp index 39a94fd5e..1e7dc69aa 100644 --- a/zone/gm_commands/find/object_type.cpp +++ b/zone/gm_commands/find/object_type.cpp @@ -1,3 +1,4 @@ +#include "../../object.h" #include "../../client.h" void FindObjectType(Client *c, const Seperator *sep) diff --git a/zone/gm_commands/guild.cpp b/zone/gm_commands/guild.cpp index 39a30c4ed..97d280e80 100755 --- a/zone/gm_commands/guild.cpp +++ b/zone/gm_commands/guild.cpp @@ -8,6 +8,22 @@ extern QueryServ *QServ; #include "../guild_mgr.h" #include "../doors.h" +void SendGuildSubCommands(Client* c) +{ + c->Message(Chat::White, "#guild create [Character ID|Character Name] [Guild Name]"); + c->Message(Chat::White, "#guild delete [Guild ID]"); + c->Message(Chat::White, "#guild details [Guild ID]"); + c->Message(Chat::White, "#guild help"); + c->Message(Chat::White, "#guild info [Guild ID]"); + c->Message(Chat::White, "#guild list"); + c->Message(Chat::White, "#guild rename [Guild ID] [New Name]"); + c->Message(Chat::White, "#guild search [Search Criteria]"); + c->Message(Chat::White, "#guild set [Character ID|Character Name] [Guild ID] (Guild ID 0 is Guildless)"); + c->Message(Chat::White, "#guild setleader [Guild ID] [Character ID|Character Name]"); + c->Message(Chat::White, "#guild setrank [Character ID|Character Name] [Rank]"); + c->Message(Chat::White, "#guild status [Character ID|Character Name]"); +} + void command_guild(Client* c, const Seperator* sep) { const auto arguments = sep->argnum; @@ -675,20 +691,4 @@ void command_guild(Client* c, const Seperator* sep) // } } } -} - -void SendGuildSubCommands(Client* c) -{ - c->Message(Chat::White, "#guild create [Character ID|Character Name] [Guild Name]"); - c->Message(Chat::White, "#guild delete [Guild ID]"); - c->Message(Chat::White, "#guild details [Guild ID]"); - c->Message(Chat::White, "#guild help"); - c->Message(Chat::White, "#guild info [Guild ID]"); - c->Message(Chat::White, "#guild list"); - c->Message(Chat::White, "#guild rename [Guild ID] [New Name]"); - c->Message(Chat::White, "#guild search [Search Criteria]"); - c->Message(Chat::White, "#guild set [Character ID|Character Name] [Guild ID] (Guild ID 0 is Guildless)"); - c->Message(Chat::White, "#guild setleader [Guild ID] [Character ID|Character Name]"); - c->Message(Chat::White, "#guild setrank [Character ID|Character Name] [Rank]"); - c->Message(Chat::White, "#guild status [Character ID|Character Name]"); -} +} \ No newline at end of file diff --git a/zone/gm_commands/illusion_block.cpp b/zone/gm_commands/illusion_block.cpp index f9c3e9514..8aa274b4a 100644 --- a/zone/gm_commands/illusion_block.cpp +++ b/zone/gm_commands/illusion_block.cpp @@ -1,3 +1,4 @@ +#include "../dialogue_window.h" #include "../client.h" void command_illusion_block(Client* c, const Seperator* sep) diff --git a/zone/gm_commands/list.cpp b/zone/gm_commands/list.cpp index 7e05a1d6a..d39b424ba 100755 --- a/zone/gm_commands/list.cpp +++ b/zone/gm_commands/list.cpp @@ -2,6 +2,7 @@ #include "../corpse.h" #include "../object.h" #include "../doors.h" +#include "../command.h" struct UniqueEntity { uint16 entity_id; diff --git a/zone/gm_commands/loc.cpp b/zone/gm_commands/loc.cpp index 4e4085add..b7b627fcb 100755 --- a/zone/gm_commands/loc.cpp +++ b/zone/gm_commands/loc.cpp @@ -1,4 +1,5 @@ #include "../client.h" +#include "../water_map.h" void command_loc(Client *c, const Seperator *sep) { diff --git a/zone/gm_commands/modifynpcstat.cpp b/zone/gm_commands/modifynpcstat.cpp index 463e625f1..124f8ceca 100755 --- a/zone/gm_commands/modifynpcstat.cpp +++ b/zone/gm_commands/modifynpcstat.cpp @@ -1,63 +1,5 @@ #include "../client.h" -void command_modifynpcstat(Client *c, const Seperator *sep) -{ - auto arguments = sep->argnum; - if (!arguments) { - c->Message(Chat::White, "Usage: #modifynpcstat [Stat] [Value]"); - ListModifyNPCStatMap(c); - return; - } - - if (!c->GetTarget() || !c->GetTarget()->IsNPC()) { - c->Message(Chat::White, "You must target an NPC to use this command."); - return; - } - - auto target = c->GetTarget()->CastToNPC(); - - const std::string& stat = sep->arg[1] ? sep->arg[1] : ""; - const std::string& value = sep->arg[2] ? sep->arg[2] : ""; - - if (stat.empty() || value.empty()) { - c->Message(Chat::White, "Usage: #modifynpcstat [Stat] [Value]"); - ListModifyNPCStatMap(c); - return; - } - - auto stat_description = GetModifyNPCStatDescription(stat); - if (!stat_description.length()) { - c->Message( - Chat::White, - fmt::format( - "Stat '{}' does not exist.", - stat - ).c_str() - ); - return; - } - - target->ModifyNPCStat(stat, value); - - c->Message( - Chat::White, - fmt::format( - "Stat Modified | Target: {}", - c->GetTargetDescription(target) - ).c_str() - ); - - c->Message( - Chat::White, - fmt::format( - "Stat Modified | Stat: {} ({}) Value: {}", - GetModifyNPCStatDescription(stat), - stat, - value - ).c_str() - ); -} - std::map GetModifyNPCStatMap() { std::map identifiers_map = { @@ -134,3 +76,61 @@ void ListModifyNPCStatMap(Client *c) ); } } + +void command_modifynpcstat(Client *c, const Seperator *sep) +{ + auto arguments = sep->argnum; + if (!arguments) { + c->Message(Chat::White, "Usage: #modifynpcstat [Stat] [Value]"); + ListModifyNPCStatMap(c); + return; + } + + if (!c->GetTarget() || !c->GetTarget()->IsNPC()) { + c->Message(Chat::White, "You must target an NPC to use this command."); + return; + } + + auto target = c->GetTarget()->CastToNPC(); + + const std::string& stat = sep->arg[1] ? sep->arg[1] : ""; + const std::string& value = sep->arg[2] ? sep->arg[2] : ""; + + if (stat.empty() || value.empty()) { + c->Message(Chat::White, "Usage: #modifynpcstat [Stat] [Value]"); + ListModifyNPCStatMap(c); + return; + } + + auto stat_description = GetModifyNPCStatDescription(stat); + if (!stat_description.length()) { + c->Message( + Chat::White, + fmt::format( + "Stat '{}' does not exist.", + stat + ).c_str() + ); + return; + } + + target->ModifyNPCStat(stat, value); + + c->Message( + Chat::White, + fmt::format( + "Stat Modified | Target: {}", + c->GetTargetDescription(target) + ).c_str() + ); + + c->Message( + Chat::White, + fmt::format( + "Stat Modified | Stat: {} ({}) Value: {}", + GetModifyNPCStatDescription(stat), + stat, + value + ).c_str() + ); +} diff --git a/zone/gm_commands/mystats.cpp b/zone/gm_commands/mystats.cpp index 69343b304..fc16929d4 100755 --- a/zone/gm_commands/mystats.cpp +++ b/zone/gm_commands/mystats.cpp @@ -1,3 +1,4 @@ +#include "../bot.h" #include "../client.h" void command_mystats(Client *c, const Seperator *sep) diff --git a/zone/gm_commands/npcedit.cpp b/zone/gm_commands/npcedit.cpp index 54315070e..4f372b1e0 100755 --- a/zone/gm_commands/npcedit.cpp +++ b/zone/gm_commands/npcedit.cpp @@ -3,6 +3,115 @@ #include "../raids.h" #include "../../common/repositories/npc_types_repository.h" +void SendNPCEditSubCommands(Client *c) +{ + c->Message(Chat::White, "Usage: #npcedit name [Name] - Sets an NPC's Name"); + c->Message(Chat::White, "Usage: #npcedit lastname [Last Name] - Sets an NPC's Last Name"); + c->Message(Chat::White, "Usage: #npcedit level [Level] - Sets an NPC's Level"); + c->Message(Chat::White, "Usage: #npcedit race [Race ID] - Sets an NPC's Race"); + c->Message(Chat::White, "Usage: #npcedit class [Class ID] - Sets an NPC's Class"); + c->Message(Chat::White, "Usage: #npcedit bodytype [Body Type ID] - Sets an NPC's Bodytype"); + c->Message(Chat::White, "Usage: #npcedit hp [HP] - Sets an NPC's HP"); + c->Message(Chat::White, "Usage: #npcedit mana [Mana] - Sets an NPC's Mana"); + c->Message(Chat::White, "Usage: #npcedit gender [Gender ID] - Sets an NPC's Gender"); + c->Message(Chat::White, "Usage: #npcedit texture [Texture] - Sets an NPC's Texture"); + c->Message(Chat::White, "Usage: #npcedit helmtexture [Helmet Texture] - Sets an NPC's Helmet Texture"); + c->Message(Chat::White, "Usage: #npcedit herosforgemodel [Model Number] - Sets an NPC's Hero's Forge Model"); + c->Message(Chat::White, "Usage: #npcedit size [Size] - Sets an NPC's Size"); + c->Message(Chat::White, "Usage: #npcedit hpregen [HP Regen] - Sets an NPC's HP Regen Rate Per Tick"); + c->Message(Chat::White, "Usage: #npcedit hp_regen_per_second [HP Regen] - Sets an NPC's HP Regen Rate Per Second"); + c->Message(Chat::White, "Usage: #npcedit manaregen [Mana Regen] - Sets an NPC's Mana Regen Rate Per Tick"); + c->Message(Chat::White, "Usage: #npcedit loottable [Loottable ID] - Sets an NPC's Loottable ID"); + c->Message(Chat::White, "Usage: #npcedit merchantid [Merchant ID] - Sets an NPC's Merchant ID"); + c->Message(Chat::White, "Usage: #npcedit alt_currency_id [Alternate Currency ID] - Sets an NPC's Alternate Currency ID"); + c->Message(Chat::White, "Usage: #npcedit spell [Spell List ID] - Sets an NPC's Spells List ID"); + c->Message(Chat::White, "Usage: #npcedit npc_spells_effects_id [Spell Effects ID] - Sets an NPC's Spell Effects ID"); + c->Message(Chat::White, "Usage: #npcedit faction [Faction ID] - Sets an NPC's Faction ID"); + c->Message(Chat::White, "Usage: #npcedit adventure_template_id [Template ID] - Sets an NPC's Adventure Template ID"); + c->Message(Chat::White, "Usage: #npcedit trap_template [Template ID] - Sets an NPC's Trap Template ID"); + c->Message(Chat::White, "Usage: #npcedit damage [Minimum] [Maximum] - Sets an NPC's Damage"); + c->Message(Chat::White, "Usage: #npcedit attackcount [Attack Count] - Sets an NPC's Attack Count"); + c->Message(Chat::White, "Usage: #npcedit special_attacks [Special Attacks] - Sets an NPC's Special Attacks"); + c->Message(Chat::White, "Usage: #npcedit special_abilities [Special Abilities] - Sets an NPC's Special Abilities"); + c->Message(Chat::White, "Usage: #npcedit aggroradius [Radius] - Sets an NPC's Aggro Radius"); + c->Message(Chat::White, "Usage: #npcedit assistradius [Radius] - Sets an NPC's Assist Radius"); + c->Message(Chat::White, "Usage: #npcedit featuresave - Saves an NPC's current facial features to the database"); + c->Message(Chat::White, "Usage: #npcedit armortint_id [Armor Tint ID] - Sets an NPC's Armor Tint ID"); + c->Message(Chat::White, "Usage: #npcedit color [Red] [Green] [Blue] - Sets an NPC's Red, Green, and Blue armor tint"); + c->Message(Chat::White, "Usage: #npcedit ammoidfile [ID File] - Sets an NPC's Ammo ID File"); + c->Message(Chat::White, "Usage: #npcedit weapon [Primary Model] [Secondary Model] - Sets an NPC's Primary and Secondary Weapon Model"); + c->Message(Chat::White, "Usage: #npcedit meleetype [Primary Type] [Secondary Type] - Sets an NPC's Melee Skill Types"); + c->Message(Chat::White, "Usage: #npcedit rangedtype [Type] - Sets an NPC's Ranged Skill Type"); + c->Message(Chat::White, "Usage: #npcedit runspeed [Run Speed] - Sets an NPC's Run Speed"); + c->Message(Chat::White, "Usage: #npcedit mr [Resistance] - Sets an NPC's Magic Resistance"); + c->Message(Chat::White, "Usage: #npcedit pr [Resistance] - Sets an NPC's Poison Resistance"); + c->Message(Chat::White, "Usage: #npcedit dr [Resistance] - Sets an NPC's Disease Resistance"); + c->Message(Chat::White, "Usage: #npcedit fr [Resistance] - Sets an NPC's Fire Resistance"); + c->Message(Chat::White, "Usage: #npcedit cr [Resistance] - Sets an NPC's Cold Resistance"); + c->Message(Chat::White, "Usage: #npcedit corrup [Resistance] - Sets an NPC's Corruption Resistance"); + c->Message(Chat::White, "Usage: #npcedit phr [Resistance] - Sets and NPC's Physical Resistance"); + c->Message(Chat::White, "Usage: #npcedit seeinvis [Flag] - Sets an NPC's See Invisible Flag [0 = Cannot See Invisible, 1 = Can See Invisible]"); + c->Message(Chat::White, "Usage: #npcedit seeinvisundead [Flag] - Sets an NPC's See Invisible vs. Undead Flag [0 = Cannot See Invisible vs. Undead, 1 = Can See Invisible vs. Undead]"); + c->Message(Chat::White, "Usage: #npcedit qglobal [Flag] - Sets an NPC's Quest Global Flag [0 = Quest Globals Off, 1 = Quest Globals On]"); + c->Message(Chat::White, "Usage: #npcedit ac [Armor Class] - Sets an NPC's Armor Class"); + c->Message(Chat::White, "Usage: #npcedit npcaggro [Flag] - Sets an NPC's NPC Aggro Flag [0 = Aggro NPCs Off, 1 = Aggro NPCs On]"); + c->Message(Chat::White, "Usage: #npcedit spawn_limit [Limit] - Sets an NPC's Spawn Limit Counter"); + c->Message(Chat::White, "Usage: #npcedit attackspeed [Attack Speed] - Sets an NPC's Attack Speed Modifier"); + c->Message(Chat::White, "Usage: #npcedit attackdelay [Attack Delay] - Sets an NPC's Attack Delay"); + c->Message(Chat::White, "Usage: #npcedit findable [Flag] - Sets an NPC's Findable Flag [0 = Not Findable, 1 = Findable]"); + c->Message(Chat::White, "Usage: #npcedit str [Strength] - Sets an NPC's Strength"); + c->Message(Chat::White, "Usage: #npcedit sta [Stamina] - Sets an NPC's Stamina"); + c->Message(Chat::White, "Usage: #npcedit agi [Agility] - Sets an NPC's Agility"); + c->Message(Chat::White, "Usage: #npcedit dex [Dexterity] - Sets an NPC's Dexterity"); + c->Message(Chat::White, "Usage: #npcedit int [Intelligence] - Sets an NPC's Intelligence"); + c->Message(Chat::White, "Usage: #npcedit wis [Wisdom] - Sets an NPC's Wisdom"); + c->Message(Chat::White, "Usage: #npcedit cha [Charisma] - Sets an NPC's Charisma"); + c->Message(Chat::White, "Usage: #npcedit seehide [Flag] - Sets an NPC's See Hide Flag [0 = Cannot See Hide, 1 = Can See Hide]"); + c->Message(Chat::White, "Usage: #npcedit seeimprovedhide [Flag] - Sets an NPC's See Improved Hide Flag [0 = Cannot See Improved Hide, 1 = Can See Improved Hide]"); + c->Message(Chat::White, "Usage: #npcedit trackable [Flag] - Sets an NPC's Trackable Flag [0 = Not Trackable, 1 = Trackable]"); + c->Message(Chat::White, "Usage: #npcedit atk [Attack] - Sets an NPC's Attack"); + c->Message(Chat::White, "Usage: #npcedit accuracy [Accuracy] - Sets an NPC's Accuracy"); + c->Message(Chat::White, "Usage: #npcedit avoidance [Avoidance] - Sets an NPC's Avoidance"); + c->Message(Chat::White, "Usage: #npcedit slow_mitigation [Slow Mitigation] - Sets an NPC's Slow Mitigation"); + c->Message(Chat::White, "Usage: #npcedit version [Version] - Sets an NPC's Version"); + c->Message(Chat::White, "Usage: #npcedit maxlevel [Max Level] - Sets an NPC's Maximum Level"); + c->Message(Chat::White, "Usage: #npcedit scalerate [Scale Rate] - Sets an NPC's Scaling Rate [50 = 50%, 100 = 100%, 200 = 200%]"); + c->Message(Chat::White, "Usage: #npcedit emoteid [Emote ID] - Sets an NPC's Emote ID"); + c->Message(Chat::White, "Usage: #npcedit spellscale [Scale Rate] - Sets an NPC's Spell Scaling Rate [50 = 50%, 100 = 100%, 200 = 200%]"); + c->Message(Chat::White, "Usage: #npcedit healscale [Scale Rate] - Sets an NPC's Heal Scaling Rate [50 = 50%, 100 = 100%, 200 = 200%]"); + c->Message(Chat::White, "Usage: #npcedit no_target [Flag] - Sets an NPC's No Target Hotkey Flag [0 = Not Targetable with Target Hotkey, 1 = Targetable with Target Hotkey]"); + c->Message(Chat::White, "Usage: #npcedit raidtarget [Flag] - Sets an NPC's Raid Target Flag [0 = Not a Raid Target, 1 = Raid Target]"); + c->Message(Chat::White, "Usage: #npcedit armtexture [Texture] - Sets an NPC's Arm Texture"); + c->Message(Chat::White, "Usage: #npcedit bracertexture [Texture] - Sets an NPC's Bracer Texture"); + c->Message(Chat::White, "Usage: #npcedit handtexture [Texture] - Sets an NPC's Hand Texture"); + c->Message(Chat::White, "Usage: #npcedit legtexture [Texture] - Sets an NPC's Leg Texture"); + c->Message(Chat::White, "Usage: #npcedit feettexture [Texture] - Sets an NPC's Feet Texture"); + c->Message(Chat::White, "Usage: #npcedit walkspeed [Walk Speed] - Sets an NPC's Walk Speed"); + c->Message(Chat::White, "Usage: #npcedit show_name [Flag] - Sets an NPC's Show Name Flag [0 = Hidden, 1 = Shown]"); + c->Message(Chat::White, "Usage: #npcedit untargetable [Flag] - Sets an NPC's Untargetable Flag [0 = Targetable, 1 = Untargetable]"); + c->Message(Chat::White, "Usage: #npcedit charm_ac [Armor Class] - Sets an NPC's Armor Class while Charmed"); + c->Message(Chat::White, "Usage: #npcedit charm_min_dmg [Damage] - Sets an NPC's Minimum Damage while Charmed"); + c->Message(Chat::White, "Usage: #npcedit charm_max_dmg [Damage] - Sets an NPC's Maximum Damage while Charmed"); + c->Message(Chat::White, "Usage: #npcedit charm_attack_delay [Attack Delay] - Sets an NPC's Attack Delay while Charmed"); + c->Message(Chat::White, "Usage: #npcedit charm_accuracy_rating [Accuracy] - Sets an NPC's Accuracy Rating while Charmed"); + c->Message(Chat::White, "Usage: #npcedit charm_avoidance_rating [Avoidance] - Sets an NPC's Avoidance Rating while Charmed"); + c->Message(Chat::White, "Usage: #npcedit charm_atk [Attack] - Sets an NPC's Attack while Charmed"); + c->Message(Chat::White, "Usage: #npcedit skip_global_loot [Flag] - Sets an NPC's Skip Global Loot Flag [0 = Don't Skip, 1 = Skip"); + c->Message(Chat::White, "Usage: #npcedit rarespawn [Flag] - Sets an NPC's Rare Spawn Flag [0 = Not a Rare Spawn, 1 = Rare Spawn]"); + c->Message(Chat::White, "Usage: #npcedit stuck_behavior [Stuck Behavior] - Sets an NPC's Stuck Behavior [0 = Run to Target, 1 = Warp to Target, 2 = Take No Action, 3 = Evade Combat]"); + c->Message(Chat::White, "Usage: #npcedit model [Race ID] - Sets an NPC's Race Model"); + c->Message(Chat::White, "Usage: #npcedit flymode [Fly Mode] - Sets an NPC's Fly Mode [0 = Ground, 1 = Flying, 2 = Levitating, 3 = Water, 4 = Floating, 5 = Levitating While Running]"); + c->Message(Chat::White, "Usage: #npcedit always_aggro [Flag] - Sets an NPC's Always Aggro Flag [0 = Does not Always Aggro, 1 = Always Aggro]"); + c->Message(Chat::White, "Usage: #npcedit exp_mod [Modifier] - Sets an NPC's Experience Modifier [50 = 50%, 100 = 100%, 200 = 200%]"); + c->Message(Chat::White, "Usage: #npcedit heroic_strikethrough [Heroic Strikethrough] - Sets an NPC's Heroic Strikethrough"); + c->Message(Chat::White, "Usage: #npcedit faction_amount [Faction Amount] - Sets an NPC's Faction Amount"); + c->Message(Chat::White, "Usage: #npcedit keeps_sold_items [Flag] - Sets an NPC's Keeps Sold Items Flag [0 = False, 1 = True]"); + c->Message(Chat::White, "Usage: #npcedit is_parcel_merchant [Flag] - Sets an NPC's Parcel Merchant Flag [0 = False, 1 = True]"); + c->Message(Chat::White, "Usage: #npcedit setanimation [Animation ID] - Sets an NPC's Animation on Spawn (Stored in spawn2 table)"); + c->Message(Chat::White, "Usage: #npcedit respawntime [Respawn Time] - Sets an NPC's Respawn Timer in Seconds (Stored in spawn2 table)"); + c->Message(Chat::White, "Usage: #npcedit set_grid [Grid ID] - Sets an NPC's Grid ID"); +} + void command_npcedit(Client *c, const Seperator *sep) { if (!c->GetTarget() || !c->GetTarget()->IsNPC()) { @@ -1727,113 +1836,4 @@ void command_npcedit(Client *c, const Seperator *sep) } c->Message(Chat::White, d.c_str()); -} - -void SendNPCEditSubCommands(Client *c) -{ - c->Message(Chat::White, "Usage: #npcedit name [Name] - Sets an NPC's Name"); - c->Message(Chat::White, "Usage: #npcedit lastname [Last Name] - Sets an NPC's Last Name"); - c->Message(Chat::White, "Usage: #npcedit level [Level] - Sets an NPC's Level"); - c->Message(Chat::White, "Usage: #npcedit race [Race ID] - Sets an NPC's Race"); - c->Message(Chat::White, "Usage: #npcedit class [Class ID] - Sets an NPC's Class"); - c->Message(Chat::White, "Usage: #npcedit bodytype [Body Type ID] - Sets an NPC's Bodytype"); - c->Message(Chat::White, "Usage: #npcedit hp [HP] - Sets an NPC's HP"); - c->Message(Chat::White, "Usage: #npcedit mana [Mana] - Sets an NPC's Mana"); - c->Message(Chat::White, "Usage: #npcedit gender [Gender ID] - Sets an NPC's Gender"); - c->Message(Chat::White, "Usage: #npcedit texture [Texture] - Sets an NPC's Texture"); - c->Message(Chat::White, "Usage: #npcedit helmtexture [Helmet Texture] - Sets an NPC's Helmet Texture"); - c->Message(Chat::White, "Usage: #npcedit herosforgemodel [Model Number] - Sets an NPC's Hero's Forge Model"); - c->Message(Chat::White, "Usage: #npcedit size [Size] - Sets an NPC's Size"); - c->Message(Chat::White, "Usage: #npcedit hpregen [HP Regen] - Sets an NPC's HP Regen Rate Per Tick"); - c->Message(Chat::White, "Usage: #npcedit hp_regen_per_second [HP Regen] - Sets an NPC's HP Regen Rate Per Second"); - c->Message(Chat::White, "Usage: #npcedit manaregen [Mana Regen] - Sets an NPC's Mana Regen Rate Per Tick"); - c->Message(Chat::White, "Usage: #npcedit loottable [Loottable ID] - Sets an NPC's Loottable ID"); - c->Message(Chat::White, "Usage: #npcedit merchantid [Merchant ID] - Sets an NPC's Merchant ID"); - c->Message(Chat::White, "Usage: #npcedit alt_currency_id [Alternate Currency ID] - Sets an NPC's Alternate Currency ID"); - c->Message(Chat::White, "Usage: #npcedit spell [Spell List ID] - Sets an NPC's Spells List ID"); - c->Message(Chat::White, "Usage: #npcedit npc_spells_effects_id [Spell Effects ID] - Sets an NPC's Spell Effects ID"); - c->Message(Chat::White, "Usage: #npcedit faction [Faction ID] - Sets an NPC's Faction ID"); - c->Message(Chat::White, "Usage: #npcedit adventure_template_id [Template ID] - Sets an NPC's Adventure Template ID"); - c->Message(Chat::White, "Usage: #npcedit trap_template [Template ID] - Sets an NPC's Trap Template ID"); - c->Message(Chat::White, "Usage: #npcedit damage [Minimum] [Maximum] - Sets an NPC's Damage"); - c->Message(Chat::White, "Usage: #npcedit attackcount [Attack Count] - Sets an NPC's Attack Count"); - c->Message(Chat::White, "Usage: #npcedit special_attacks [Special Attacks] - Sets an NPC's Special Attacks"); - c->Message(Chat::White, "Usage: #npcedit special_abilities [Special Abilities] - Sets an NPC's Special Abilities"); - c->Message(Chat::White, "Usage: #npcedit aggroradius [Radius] - Sets an NPC's Aggro Radius"); - c->Message(Chat::White, "Usage: #npcedit assistradius [Radius] - Sets an NPC's Assist Radius"); - c->Message(Chat::White, "Usage: #npcedit featuresave - Saves an NPC's current facial features to the database"); - c->Message(Chat::White, "Usage: #npcedit armortint_id [Armor Tint ID] - Sets an NPC's Armor Tint ID"); - c->Message(Chat::White, "Usage: #npcedit color [Red] [Green] [Blue] - Sets an NPC's Red, Green, and Blue armor tint"); - c->Message(Chat::White, "Usage: #npcedit ammoidfile [ID File] - Sets an NPC's Ammo ID File"); - c->Message(Chat::White, "Usage: #npcedit weapon [Primary Model] [Secondary Model] - Sets an NPC's Primary and Secondary Weapon Model"); - c->Message(Chat::White, "Usage: #npcedit meleetype [Primary Type] [Secondary Type] - Sets an NPC's Melee Skill Types"); - c->Message(Chat::White, "Usage: #npcedit rangedtype [Type] - Sets an NPC's Ranged Skill Type"); - c->Message(Chat::White, "Usage: #npcedit runspeed [Run Speed] - Sets an NPC's Run Speed"); - c->Message(Chat::White, "Usage: #npcedit mr [Resistance] - Sets an NPC's Magic Resistance"); - c->Message(Chat::White, "Usage: #npcedit pr [Resistance] - Sets an NPC's Poison Resistance"); - c->Message(Chat::White, "Usage: #npcedit dr [Resistance] - Sets an NPC's Disease Resistance"); - c->Message(Chat::White, "Usage: #npcedit fr [Resistance] - Sets an NPC's Fire Resistance"); - c->Message(Chat::White, "Usage: #npcedit cr [Resistance] - Sets an NPC's Cold Resistance"); - c->Message(Chat::White, "Usage: #npcedit corrup [Resistance] - Sets an NPC's Corruption Resistance"); - c->Message(Chat::White, "Usage: #npcedit phr [Resistance] - Sets and NPC's Physical Resistance"); - c->Message(Chat::White, "Usage: #npcedit seeinvis [Flag] - Sets an NPC's See Invisible Flag [0 = Cannot See Invisible, 1 = Can See Invisible]"); - c->Message(Chat::White, "Usage: #npcedit seeinvisundead [Flag] - Sets an NPC's See Invisible vs. Undead Flag [0 = Cannot See Invisible vs. Undead, 1 = Can See Invisible vs. Undead]"); - c->Message(Chat::White, "Usage: #npcedit qglobal [Flag] - Sets an NPC's Quest Global Flag [0 = Quest Globals Off, 1 = Quest Globals On]"); - c->Message(Chat::White, "Usage: #npcedit ac [Armor Class] - Sets an NPC's Armor Class"); - c->Message(Chat::White, "Usage: #npcedit npcaggro [Flag] - Sets an NPC's NPC Aggro Flag [0 = Aggro NPCs Off, 1 = Aggro NPCs On]"); - c->Message(Chat::White, "Usage: #npcedit spawn_limit [Limit] - Sets an NPC's Spawn Limit Counter"); - c->Message(Chat::White, "Usage: #npcedit attackspeed [Attack Speed] - Sets an NPC's Attack Speed Modifier"); - c->Message(Chat::White, "Usage: #npcedit attackdelay [Attack Delay] - Sets an NPC's Attack Delay"); - c->Message(Chat::White, "Usage: #npcedit findable [Flag] - Sets an NPC's Findable Flag [0 = Not Findable, 1 = Findable]"); - c->Message(Chat::White, "Usage: #npcedit str [Strength] - Sets an NPC's Strength"); - c->Message(Chat::White, "Usage: #npcedit sta [Stamina] - Sets an NPC's Stamina"); - c->Message(Chat::White, "Usage: #npcedit agi [Agility] - Sets an NPC's Agility"); - c->Message(Chat::White, "Usage: #npcedit dex [Dexterity] - Sets an NPC's Dexterity"); - c->Message(Chat::White, "Usage: #npcedit int [Intelligence] - Sets an NPC's Intelligence"); - c->Message(Chat::White, "Usage: #npcedit wis [Wisdom] - Sets an NPC's Wisdom"); - c->Message(Chat::White, "Usage: #npcedit cha [Charisma] - Sets an NPC's Charisma"); - c->Message(Chat::White, "Usage: #npcedit seehide [Flag] - Sets an NPC's See Hide Flag [0 = Cannot See Hide, 1 = Can See Hide]"); - c->Message(Chat::White, "Usage: #npcedit seeimprovedhide [Flag] - Sets an NPC's See Improved Hide Flag [0 = Cannot See Improved Hide, 1 = Can See Improved Hide]"); - c->Message(Chat::White, "Usage: #npcedit trackable [Flag] - Sets an NPC's Trackable Flag [0 = Not Trackable, 1 = Trackable]"); - c->Message(Chat::White, "Usage: #npcedit atk [Attack] - Sets an NPC's Attack"); - c->Message(Chat::White, "Usage: #npcedit accuracy [Accuracy] - Sets an NPC's Accuracy"); - c->Message(Chat::White, "Usage: #npcedit avoidance [Avoidance] - Sets an NPC's Avoidance"); - c->Message(Chat::White, "Usage: #npcedit slow_mitigation [Slow Mitigation] - Sets an NPC's Slow Mitigation"); - c->Message(Chat::White, "Usage: #npcedit version [Version] - Sets an NPC's Version"); - c->Message(Chat::White, "Usage: #npcedit maxlevel [Max Level] - Sets an NPC's Maximum Level"); - c->Message(Chat::White, "Usage: #npcedit scalerate [Scale Rate] - Sets an NPC's Scaling Rate [50 = 50%, 100 = 100%, 200 = 200%]"); - c->Message(Chat::White, "Usage: #npcedit emoteid [Emote ID] - Sets an NPC's Emote ID"); - c->Message(Chat::White, "Usage: #npcedit spellscale [Scale Rate] - Sets an NPC's Spell Scaling Rate [50 = 50%, 100 = 100%, 200 = 200%]"); - c->Message(Chat::White, "Usage: #npcedit healscale [Scale Rate] - Sets an NPC's Heal Scaling Rate [50 = 50%, 100 = 100%, 200 = 200%]"); - c->Message(Chat::White, "Usage: #npcedit no_target [Flag] - Sets an NPC's No Target Hotkey Flag [0 = Not Targetable with Target Hotkey, 1 = Targetable with Target Hotkey]"); - c->Message(Chat::White, "Usage: #npcedit raidtarget [Flag] - Sets an NPC's Raid Target Flag [0 = Not a Raid Target, 1 = Raid Target]"); - c->Message(Chat::White, "Usage: #npcedit armtexture [Texture] - Sets an NPC's Arm Texture"); - c->Message(Chat::White, "Usage: #npcedit bracertexture [Texture] - Sets an NPC's Bracer Texture"); - c->Message(Chat::White, "Usage: #npcedit handtexture [Texture] - Sets an NPC's Hand Texture"); - c->Message(Chat::White, "Usage: #npcedit legtexture [Texture] - Sets an NPC's Leg Texture"); - c->Message(Chat::White, "Usage: #npcedit feettexture [Texture] - Sets an NPC's Feet Texture"); - c->Message(Chat::White, "Usage: #npcedit walkspeed [Walk Speed] - Sets an NPC's Walk Speed"); - c->Message(Chat::White, "Usage: #npcedit show_name [Flag] - Sets an NPC's Show Name Flag [0 = Hidden, 1 = Shown]"); - c->Message(Chat::White, "Usage: #npcedit untargetable [Flag] - Sets an NPC's Untargetable Flag [0 = Targetable, 1 = Untargetable]"); - c->Message(Chat::White, "Usage: #npcedit charm_ac [Armor Class] - Sets an NPC's Armor Class while Charmed"); - c->Message(Chat::White, "Usage: #npcedit charm_min_dmg [Damage] - Sets an NPC's Minimum Damage while Charmed"); - c->Message(Chat::White, "Usage: #npcedit charm_max_dmg [Damage] - Sets an NPC's Maximum Damage while Charmed"); - c->Message(Chat::White, "Usage: #npcedit charm_attack_delay [Attack Delay] - Sets an NPC's Attack Delay while Charmed"); - c->Message(Chat::White, "Usage: #npcedit charm_accuracy_rating [Accuracy] - Sets an NPC's Accuracy Rating while Charmed"); - c->Message(Chat::White, "Usage: #npcedit charm_avoidance_rating [Avoidance] - Sets an NPC's Avoidance Rating while Charmed"); - c->Message(Chat::White, "Usage: #npcedit charm_atk [Attack] - Sets an NPC's Attack while Charmed"); - c->Message(Chat::White, "Usage: #npcedit skip_global_loot [Flag] - Sets an NPC's Skip Global Loot Flag [0 = Don't Skip, 1 = Skip"); - c->Message(Chat::White, "Usage: #npcedit rarespawn [Flag] - Sets an NPC's Rare Spawn Flag [0 = Not a Rare Spawn, 1 = Rare Spawn]"); - c->Message(Chat::White, "Usage: #npcedit stuck_behavior [Stuck Behavior] - Sets an NPC's Stuck Behavior [0 = Run to Target, 1 = Warp to Target, 2 = Take No Action, 3 = Evade Combat]"); - c->Message(Chat::White, "Usage: #npcedit model [Race ID] - Sets an NPC's Race Model"); - c->Message(Chat::White, "Usage: #npcedit flymode [Fly Mode] - Sets an NPC's Fly Mode [0 = Ground, 1 = Flying, 2 = Levitating, 3 = Water, 4 = Floating, 5 = Levitating While Running]"); - c->Message(Chat::White, "Usage: #npcedit always_aggro [Flag] - Sets an NPC's Always Aggro Flag [0 = Does not Always Aggro, 1 = Always Aggro]"); - c->Message(Chat::White, "Usage: #npcedit exp_mod [Modifier] - Sets an NPC's Experience Modifier [50 = 50%, 100 = 100%, 200 = 200%]"); - c->Message(Chat::White, "Usage: #npcedit heroic_strikethrough [Heroic Strikethrough] - Sets an NPC's Heroic Strikethrough"); - c->Message(Chat::White, "Usage: #npcedit faction_amount [Faction Amount] - Sets an NPC's Faction Amount"); - c->Message(Chat::White, "Usage: #npcedit keeps_sold_items [Flag] - Sets an NPC's Keeps Sold Items Flag [0 = False, 1 = True]"); - c->Message(Chat::White, "Usage: #npcedit is_parcel_merchant [Flag] - Sets an NPC's Parcel Merchant Flag [0 = False, 1 = True]"); - c->Message(Chat::White, "Usage: #npcedit setanimation [Animation ID] - Sets an NPC's Animation on Spawn (Stored in spawn2 table)"); - c->Message(Chat::White, "Usage: #npcedit respawntime [Respawn Time] - Sets an NPC's Respawn Timer in Seconds (Stored in spawn2 table)"); - c->Message(Chat::White, "Usage: #npcedit set_grid [Grid ID] - Sets an NPC's Grid ID"); -} +} \ No newline at end of file diff --git a/zone/gm_commands/parcels.cpp b/zone/gm_commands/parcels.cpp index 07cb8244c..141dfdd69 100644 --- a/zone/gm_commands/parcels.cpp +++ b/zone/gm_commands/parcels.cpp @@ -1,9 +1,23 @@ #include "../client.h" +#include "../queryserv.h" #include "../worldserver.h" -#include "../../common/events/player_events.h" +#include "../../common/events/player_event_logs.h" +#include "../string_ids.h" +extern QueryServ *QServ; extern WorldServer worldserver; +void SendParcelsSubCommands(Client *c) +{ + c->Message(Chat::White, "#parcels listdb [Character Name]"); + c->Message(Chat::White, "#parcels listmemory [Character Name] (Must be in the same zone)"); + c->Message( + Chat::White, + "#parcels add [Character Name] [item id] [quantity] [note]. To send money use item id of 99990. Quantity is valid for stackable items, charges on an item, or amount of copper." + ); + c->Message(Chat::White, "#parcels details [Character Name]"); +} + void command_parcels(Client *c, const Seperator *sep) { const auto arguments = sep->argnum; @@ -305,15 +319,4 @@ void command_parcels(Client *c, const Seperator *sep) c->SendParcelDeliveryToWorld(ps); } } -} - -void SendParcelsSubCommands(Client *c) -{ - c->Message(Chat::White, "#parcels listdb [Character Name]"); - c->Message(Chat::White, "#parcels listmemory [Character Name] (Must be in the same zone)"); - c->Message( - Chat::White, - "#parcels add [Character Name] [item id] [quantity] [note]. To send money use item id of 99990. Quantity is valid for stackable items, charges on an item, or amount of copper." - ); - c->Message(Chat::White, "#parcels details [Character Name]"); -} +} \ No newline at end of file diff --git a/zone/gm_commands/petitems.cpp b/zone/gm_commands/petitems.cpp index 5fded03cc..6dd6462e5 100644 --- a/zone/gm_commands/petitems.cpp +++ b/zone/gm_commands/petitems.cpp @@ -1,3 +1,4 @@ +#include "../bot.h" #include "../client.h" void command_petitems(Client *c, const Seperator *sep) diff --git a/zone/gm_commands/set/haste.cpp b/zone/gm_commands/set/haste.cpp index a7e9b118f..96647c970 100644 --- a/zone/gm_commands/set/haste.cpp +++ b/zone/gm_commands/set/haste.cpp @@ -1,3 +1,4 @@ +#include "../../bot.h" #include "../../client.h" void SetHaste(Client *c, const Seperator *sep) diff --git a/zone/gm_commands/show/inventory.cpp b/zone/gm_commands/show/inventory.cpp index 2cffdc82f..2a3e2a377 100644 --- a/zone/gm_commands/show/inventory.cpp +++ b/zone/gm_commands/show/inventory.cpp @@ -1,6 +1,22 @@ #include "../../client.h" #include "../../object.h" +void SendShowInventorySubCommands(Client* c) { + c->Message(Chat::White, "Usage: #show inventory equip - Shows items in Equipment slots"); + c->Message(Chat::White, "Usage: #show inventory gen - Shows items in General slots"); + c->Message(Chat::White, "Usage: #show inventory cursor - Shows items in Cursor slots"); + c->Message(Chat::White, "Usage: #show inventory poss - Shows items in Equipment, General, and Cursor slots"); + c->Message(Chat::White, "Usage: #show inventory limbo - Shows items in Limbo slots"); + c->Message(Chat::White, "Usage: #show inventory curlim - Shows items in Cursor and Limbo slots"); + c->Message(Chat::White, "Usage: #show inventory trib - Shows items in Tribute slots"); + c->Message(Chat::White, "Usage: #show inventory bank - Shows items in Bank slots"); + c->Message(Chat::White, "Usage: #show inventory shbank - Shows items in Shared Bank slots"); + c->Message(Chat::White, "Usage: #show inventory allbank - Shows items in Bank and Shared Bank slots"); + c->Message(Chat::White, "Usage: #show inventory trade - Shows items in Trade slots"); + c->Message(Chat::White, "Usage: #show inventory world - Shows items in World slots"); + c->Message(Chat::White, "Usage: #show inventory all - Shows items in all slots"); +} + void ShowInventory(Client *c, const Seperator *sep) { const auto arguments = sep->argnum; @@ -432,20 +448,4 @@ void ShowInventory(Client *c, const Seperator *sep) if (!found_items) { c->Message(Chat::White, "No items found."); } -} - -void SendShowInventorySubCommands(Client* c) { - c->Message(Chat::White, "Usage: #show inventory equip - Shows items in Equipment slots"); - c->Message(Chat::White, "Usage: #show inventory gen - Shows items in General slots"); - c->Message(Chat::White, "Usage: #show inventory cursor - Shows items in Cursor slots"); - c->Message(Chat::White, "Usage: #show inventory poss - Shows items in Equipment, General, and Cursor slots"); - c->Message(Chat::White, "Usage: #show inventory limbo - Shows items in Limbo slots"); - c->Message(Chat::White, "Usage: #show inventory curlim - Shows items in Cursor and Limbo slots"); - c->Message(Chat::White, "Usage: #show inventory trib - Shows items in Tribute slots"); - c->Message(Chat::White, "Usage: #show inventory bank - Shows items in Bank slots"); - c->Message(Chat::White, "Usage: #show inventory shbank - Shows items in Shared Bank slots"); - c->Message(Chat::White, "Usage: #show inventory allbank - Shows items in Bank and Shared Bank slots"); - c->Message(Chat::White, "Usage: #show inventory trade - Shows items in Trade slots"); - c->Message(Chat::White, "Usage: #show inventory world - Shows items in World slots"); - c->Message(Chat::White, "Usage: #show inventory all - Shows items in all slots"); -} +} \ No newline at end of file diff --git a/zone/gm_commands/zone.cpp b/zone/gm_commands/zone.cpp index 13601da4d..99317e232 100644 --- a/zone/gm_commands/zone.cpp +++ b/zone/gm_commands/zone.cpp @@ -1,3 +1,4 @@ +#include "../bot.h" #include "../client.h" void command_zone(Client *c, const Seperator *sep) diff --git a/zone/lua_zone.cpp b/zone/lua_zone.cpp index 79f4f0982..feadb4f3c 100644 --- a/zone/lua_zone.cpp +++ b/zone/lua_zone.cpp @@ -4,7 +4,6 @@ #include #include "../common/global_define.h" -#include "embperl.h" #include "lua_zone.h" bool Lua_Zone::BuffTimersSuspended()