62 Commits

Author SHA1 Message Date
Akkadius
c32b31ffff Add npc_scale_global_base table and add devtools command and toggling functionality 2018-12-16 03:59:08 -06:00
Akkadius
17ca995aa9 Add single target and zonewide dynamic and static scaling methods / commands 2018-11-07 02:34:55 -06:00
Akkadius
775b5fcaf1 Mostly done with global base scaling work, dev tooling and various other works 2018-11-04 23:26:34 -06:00
Michael Cook (mackal)
339e921f17 Add a #push command, only works on NPCs for now 2018-03-14 16:10:14 -04:00
Uleat
2da70c69da Added command '#ucs' to force re-connect after ucs server unavailability (must manually re-join channels for now) 2018-03-07 22:45:05 -05:00
Michael Cook (mackal)
c5e4bb08f4 Implement global loot system Fixes #619
This should allow us to emulate lives global tables

The options available to filter tables are min_level, max_level, race,
rare, raid, race, class, bodytype, and zone.

race, class, bodytype, and zone are a pipe | separated list of IDs
2018-02-10 22:15:21 -05:00
Kinglykrab
8e9fa38197 Added #reloadmerchants for zone-based merchant refreshing. 2018-01-27 18:19:48 -05:00
Chris Miles
6bb3ebc00e
Merge pull request #669 from noudess/master
Added a #petname command for renaming only pets
2017-11-16 20:41:01 -06:00
Paul Coene
ceadb1325d Added a #petname command for renaming only pets 2017-10-28 15:22:58 -04:00
regneq
ed98aa45d2 Traps overhaul. New functionality has been added, while preserving the old functionality. Numerous bug fixes occurred as well.
Added column triggered_number. If this is set, then the trap will despawn after it has been triggered this number of times. If 0, the trap will never despawn on its own.

Added group column. This allows developers to group traps together in a similar way as spawngroups for NPCs. When a trap that is grouped is despawned in anyway, a random trap in the group will take its place. Grouped traps do not have to be at the same coords or have the same type. This can allow for some spawning diversity if so required. If set to 0, the trap is not grouped and will always respawn.

Added column despawn_when_triggered. If set to 1, then a trap will despawn when a player triggers it. If 0, then there will be a 5 second reset time and then the same trap will again be active. (Assuming triggered_number has not been reached.) The player that triggered the trap will not re-trigger it until they have left and re-enetered the trap's radius.

Traps will no longer trigger on players that are currently zoning. This fixes some weirdness and at least one crash. The trap can trigger however after the connection is been completed. If a player camped out in a trap radius they can potentially still be hit.

Alarm type traps were not using effectvalue2 to determine who should be aggroed. This is now fixed.

Traps will no longer be broken by #repop, #depopzone, or #reloadworld. All 3 commands will now have the same effect on traps as they do for NPCs.

Added command #reloadtraps. This reloads all of the traps in the zone.

Added command #trapinfo. This gives some information about the traps currently spawned in the zone.

Added Traps logsys category

Required SQL:
utils/sql/git/required/2017_10_26_traps.sql
2017-10-27 21:24:24 -07:00
Akkadius
aed1959dbe Fix issues with underground NPC corpses - add command #fixcorpses to fix nearby NPC corpses of the player (this should be a seldom need) 2017-07-03 01:53:41 -05:00
Uleat
b327da7092 Activation of the new 'Bots' command system 2016-03-24 18:50:31 -04:00
Uleat
2b0ee55752 Add command #findaliases 2016-01-08 17:19:10 -05:00
Uleat
6f1ad1fbc1 Major change to how commands are loaded 2015-12-07 19:28:13 -05:00
Akkadius
d64205124f Implemented #repopclose [distance in units] - Used for development purposes, defaults to 500 units
- Real case use: Large zones with 700 NPC's and you are making fast quick tweaks to nearby NPC's you can refresh just the NPC's around you instead of all in the zone
- This can be quite the time saver
- This command will depop all NPC's and only respawn the NPC's that are 500 units around you or unless you specify otherwise
2015-11-07 13:20:24 -06:00
Akkadius
53c8d63981 Implement Perl Export Variable settings map (Huge performance boost) (Preliminary) 2015-11-01 15:59:24 -06:00
Uleat
a1089fccd6 Implemented 'Inventory Snapshot' feature 2015-09-25 23:07:05 -04:00
Kinglykrab
eb5e0ee72c New commands.
- #untraindisc [spellid] - Untrains specified discipline.
- #untraindiscs - Untrains all disciplines.
2015-07-16 21:25:24 -04:00
KimLS
b7cd0b223f Added two other commands to let you do shared reloading on your own without the hotfix command. Also changed how world determines a zone's address 2015-07-16 01:51:10 -07:00
KimLS
9f1f36cca6 Merge from master 2015-07-15 23:15:25 -07:00
Kinglykrab
e2ac647e03 Bot saylinks and command aliases. 2015-07-05 23:30:38 -04:00
KimLS
3dd89b0daa Polishing shared memory hotfix code 2015-06-23 22:04:48 -07:00
KimLS
67143f1b8a Initial work on shared memory hotfixes 2015-06-23 17:39:06 -07:00
KimLS
d5098a56e0 Timers and some more loading stuff 2015-06-20 19:44:00 -07:00
KimLS
65ac9683a3 Removed fluff code, added drakkin heritage and status can use modifiers to aa abilities 2015-06-12 13:39:20 -07:00
Akkadius
a698eff106 Natedog: Fix #gassign to work more appropriately and simplify the function 2015-01-25 23:27:44 -06:00
Akkadius
2457f5f455 Remove occurrences of LogSQL 2015-01-24 03:49:03 -06:00
Akkadius
3d74035e24 Merge remote-tracking branch 'remotes/origin/master' into logging_changes
Conflicts:
	zone/command.cpp
	zone/command.h
	zone/inventory.cpp
2015-01-21 16:40:46 -06:00
Akkadius
6cfe9e301b Preliminary log setting commands 2015-01-21 00:01:28 -06:00
Akkadius
1871c3f24f Implement first pieces of #log 2015-01-20 23:18:23 -06:00
Akkadius
2bc6ed17c7 Remove command_mlog 2015-01-16 21:54:51 -06:00
Akkadius
7173fc5db3 Remove command_logs 2015-01-16 02:45:18 -06:00
Akkadius
82407ba86d Remove command_nologs 2015-01-16 02:44:30 -06:00
Akkadius
7c8e5645f0 Remove command_log 2015-01-16 02:43:24 -06:00
KayenEQ
d57d463818 New Command
#tune
Used to return ideal values for tuning NPC/Client combat statistics.
2015-01-11 00:45:37 -05:00
Akkadius
2159a56b17 Add log test command #logtest 2015-01-10 23:25:50 -06:00
Trevius
9056008342 (RoF+) Implemented Armor Ornamentation using Hero's Forge Armor Models. To use, create an ornamentation augment and set the herosforgemodel field in the items table.
(RoF+) Added command #heromodel (#hm for short) - Usage: #heromodel [hero forge model] [ [slot] ] (example: #heromodel 63)
2014-12-13 13:53:55 -06:00
Akkadius
1054bfe476 command.cpp #include cleanup
command.h #include cleanup
command.h forward declarations
2014-11-30 20:32:00 -06:00
akkadius
8da864bada command.cpp #include cleanup
command.h forward declaration
2014-11-29 03:54:25 -06:00
Uleat
65cb049a38 Added Client::InterrogateInventory() and command #interrogateinv to manually invoke it. (GM's - use #interrogateinv help) 2014-10-28 11:35:26 -04:00
akkadius
ad29fa9cfa Merge remote-tracking branch 'remotes/origin/master' into blob_conversion
Conflicts:
	changelog.txt
	common/database.cpp
	world/client.cpp
	world/zoneserver.cpp
	zone/command.cpp
2014-09-21 02:32:31 -05:00
Michael Cook (mackal)
d26782b093 Nuke #viewmessages 2014-09-18 22:56:16 -04:00
akkadius
54c89d69f6 Merge remote-tracking branch 'remotes/origin/master' into blob_conversion
Conflicts:
	common/database.cpp
	common/mysql_request_result.h
	common/shareddb.cpp
2014-09-07 04:11:09 -05:00
Akkadius
4c12d31e4a Removed command character backup
Changed all remaining references from the character_ table to the character_data
2014-09-06 22:35:19 -05:00
Akkadius
4432c07081 State of Commit: Testable if you ask me (Akkadius) what you need to do
- Need to convert a list of functions and columns and should be ready to start intensive testing phase
 - All preliminary tests show things working great

- All of player profile is saved and loaded from the database
- DBAsync has been completely removed from all code
	- Removed zone/dbasync.cpp/.h
	- Removed common/dbasync.cpp/.h
	- Removed dbasync from cmake commmon and zone
- Cleaned up a ton of functions
- Added several tables to world CheckDatabaseConversions script:
	- `character_skills`
	- `character_languages`
	- `character_bind`
	- `character_alternate_abilities`
	- `character_currency`
	- `character_data`
	- `character_spells`
	- `character_memmed_spells`
	- `character_disciplines`
	- `character_material`
	- `character_tribute`
	- `character_bandolier`
	- `character_potionbelt`
- Character select now loads from `character_data`
- Character creation now creates to `character_data`
- Updated function Database::UpdateName to use `character_data`
- Updated function Database::CheckUsedName to use `character_data`
- Updated function Database::MoveCharacterToZone to use `character_data`
- Updated function Database::SetLoginFlags to use `character_data`
- Updated function Database::SetFirstLogon to use `character_data`
- Updated function Database::SetLFG to use `character_data`
- Removed CopyCharacter functions and commands, to be recreated later since it never worked to begin with
- Removed SharedDatabase::SetPlayerProfile
- Trimmed down redundant case switch statements for World sendpackets to QueryServ
- Added Character Methods to Database class:
	Loads:
		bool	LoadCharacterBandolier(uint32 character_id, PlayerProfile_Struct* pp);
		bool	LoadCharacterTribute(uint32 character_id, PlayerProfile_Struct* pp);
		bool	LoadCharacterPotions(uint32 character_id, PlayerProfile_Struct* pp);
	Saves:
		bool	SaveCharacterBindPoint(uint32 character_id, uint32 zone_id, uint32 instance_id, float x, float y, float z, float heading, uint8 is_home);
		bool	SaveCharacterCurrency(uint32 character_id, PlayerProfile_Struct* pp);
		bool	SaveCharacterData(uint32 character_id, uint32 account_id, PlayerProfile_Struct* pp);
		bool	SaveCharacterAA(uint32 character_id, uint32 aa_id, uint32 current_level);
		bool	SaveCharacterSpellSwap(uint32 character_id, uint32 spell_id, uint32 from_slot, uint32 to_slot);
		bool	SaveCharacterSpell(uint32 character_id, uint32 spell_id, uint32 slot_id);
		bool	SaveCharacterMemorizedSpell(uint32 character_id, uint32 spell_id, uint32 slot_id);
		bool	SaveCharacterMaterialColor(uint32 character_id, uint32 slot_id, uint32 color);
		bool	SaveCharacterSkill(uint32 character_id, uint32 skill_id, uint32 value);
		bool	SaveCharacterLanguage(uint32 character_id, uint32 lang_id, uint32 value);
		bool	SaveCharacterDisc(uint32 character_id, uint32 slot_id, uint32 disc_id);
		bool	SaveCharacterTribute(uint32 character_id, PlayerProfile_Struct* pp);
		bool	SaveCharacterBandolier(uint32 character_id, uint8 bandolier_id, uint8 bandolier_slot, uint32 item_id, uint32 icon, const char* bandolier_name);
		bool	SaveCharacterPotionBelt(uint32 character_id, uint8 potion_id, uint32 item_id, uint32 icon);
	Deletes:
		bool	DeleteCharacterSpell(uint32 character_id, uint32 spell_id, uint32 slot_id);
		bool	DeleteCharacterMemorizedSpell(uint32 character_id, uint32 spell_id, uint32 slot_id);
		bool	DeleteCharacterDisc(uint32 character_id, uint32 slot_id);
		bool	DeleteCharacterBandolier(uint32 character_id, uint32 band_id);
2014-09-04 07:24:17 -05:00
Michael Cook (mackal)
22742b6a25 Add #shownumhits workaround command to show numhits 2014-09-03 23:50:23 -04:00
KimLS
7fc21b9e3a Tons of renames 2014-08-21 19:33:02 -07:00
KimLS
3690f93302 Fix for fear failing, removed #fear command because it was blank anyway, added a cmake command to change the default map/water/path directory 2014-05-31 16:32:15 -07:00
Michael Cook (mackal)
8866b3170e Implement ability for NPC Merchants to open and close shop 2014-04-01 21:03:49 -04:00
KimLS
6e0a214bcc Compiler option for playing with npctype_cache as was requested for a feature. Not entirely tested may need some work. Currently defaults to old behavior on #repop. 2014-01-31 20:38:32 -08:00