Commit graph

1895 commits

Author SHA1 Message Date
Emagi
84536da04b Address lacking most hated target to add loot when using /kill command 2023-04-29 13:48:17 -04:00
Emagi
b8bee12bc4 the EQ2 way apparently 2023-04-28 18:01:54 -04:00
Emagi
7007216ad5 set heading when using /goto 2023-04-28 17:09:46 -04:00
Emagi
297965fff3 self character customization added back, resolved memory leak (packet wasnt deleted) 2023-04-28 06:54:51 -04:00
Emagi
97f0d66bea Fix setting current zone if player pointer is not present for client 2023-04-28 06:25:22 -04:00
Emagi
113713fb62 remove bot customize for now, it was not properly implemented 2023-04-28 06:17:08 -04:00
Emagi
361fb06d21 spell target protections in wards and heroic op 2023-04-27 13:50:28 -04:00
Emagi
a74469795d - Manipulate the game world! Remove widgets!
LUA Functions and Examples:
* RemoveWidgetFromZoneMap(Zone, WidgetID) - must be used in preinit_zone_script

ZoneScripts/Commonlands.lua example:
function preinit_zone_script(zone)
	-- removes KoS Commonlands spires from all spawns and playesr
	-- visibly and in terms of player map (line of sight, and Y coordinate)
	RemoveWidgetFromZoneMap(zone, 1101229151)
end

* ReplaceWidgetFromClient(Player, WidgetID, DeleteWidget, x, y, z, NewGridID) - must be called after client has sent sys_client_avatar_ready

ZoneScripts/Commonlands.lua example:
function signal_changed(Zone, Player, Reason)
	if Reason == "sys_client_avatar_ready" then
		-- Slightly moves the spires further down for the client visual
		-- we do yet not support "moving" within the map space so this would not address line of sight or heightmap
		ReplaceWidgetFromClient(Player, 1101229151, 0, 171.31, -48.04, -412.99, 783227007)
		-- Alternatively ReplaceWidgetFromClient(Player, 1101229151, 1) could be called to remove the widget from the client visually
	end
end

* RemoveWidgetFromSpawnMap(Spawn, WidgetID) -- removes the widget from the map (line of sight and heightmap checks).  Can be called at any time (Spawn/Player).

- NPC Spells now supports self-HP ratios
alter table spawn_npc_spells add column required_hp_ratio tinyint signed not null default 0;
If greater than 0, hp ratio must be HIGHER or EQUAL to the value
If less than 0, hp ratio must be LOWER or EQUAL to the value
values -100 to 100 are accepted.  Default value of 0 skips checks.

- Reduced some messages by timer that could spam on zone startup
2023-04-23 10:54:28 -04:00
Emagi
725a3f85d8 Fix GetQuestCompleteCount LUA crash since the quest never was in the player completed 2023-04-23 09:08:03 -04:00
Emagi
ec247da687 Spirit shards now decay per request from premierio <3 2023-04-22 09:50:05 -04:00
Emagi
d0be51db35 Speed up sending spawns to client 2023-04-21 20:37:57 -04:00
Emagi
cd969a06d7 Fix #512 - loot chest coordinate is up in the air cause of flying mob it inherits 2023-04-21 16:59:00 -04:00
Emagi
c8338d63bf Fix kill giving loot credit for GM quick testing and bypass 2023-04-16 17:23:44 -04:00
Emagi
68b30e7bbd Revert unintended change to quest journal packet 2023-04-14 21:47:30 -04:00
Emagi
7b023ec019 - Fix #314 Encounter states, locked, overmatched and broken now supported up to group level (raids and functionality to them will be done in a later milestone). This also entails all the functionality within, npcs go gray when in an encounter or yelled, you cant heal or damage a player or npc in an encounter.
- Fix #351 /yell now available, yell with self target breaks all active encounters, yell with direct target breaks that encounter, no target breaks first encounter
- WorldStructs.xml update required for /yell so others know you are yelling!
- /spawn details aggro (NPC only) added, view active encounter list (who receives credit, locked encounter) and hate list (actual damage/hate)
- InfoStruct now has a new UINT8 "engaged_encounter", set to 1 for being in an active encounter, 0 for out of encounter (allows regen/speed recovery)
- Returning from linkdead DB load reduced
- Returning from linkdead you won't see ghost versions of yourself
- Addressed returning from linkdead and spells missing, would despawn your pet or remove buffs for examples.
- Protections around private spawns aggroing/attacking players that cannot see them
- Additional spell crash protection when spell caster is not in zone
2023-04-14 20:31:24 -04:00
Emagi
ed35cb6516 Additional protections for GetZone not being set on spell->caster within LUA function usage 2023-04-14 06:42:37 -04:00
Emagi
e2b8770ac3 avoid crash when GetZone is not set for spell caster 2023-04-14 06:12:22 -04:00
Emagi
fb69ed160c fix spawn sign updates in SpawnSet 2023-04-09 20:45:21 -04:00
Emagi
f951476e66 make consistent quest status between the two packets 2023-04-05 17:26:51 -04:00
Emagi
a281bb48a8 Another broken point for quest display 2023-04-05 17:21:23 -04:00
Emagi
fd58d70daf Fix quest display status 2023-04-05 17:18:12 -04:00
Emagi
f5fe7737d5 temporarily removed CanReceiveQuest check in OfferQuest to see if it adddresses an issue with the content server 2023-04-04 20:01:41 -04:00
Emagi
87d2b79bb4 fix benign cant send quest step update, forgot a return true 2023-04-04 08:51:49 -04:00
Emagi
1fec040744 try to address a locking issue with MPlayerQuests 2023-04-03 20:42:55 -04:00
Emagi
78b4a09627 avoid somehow having quest id 0 passed into the db 2023-04-03 20:23:02 -04:00
Emagi
b62b842bf2 ignore.. lol 2023-04-02 18:57:02 -04:00
Emagi
4e03d5e2a1 Fix spawn database lookup to cache right database id, not spawn id 2023-04-02 18:53:35 -04:00
Emagi
b1c08ef4ad Fix Attack limited to just player targets 2023-04-02 17:48:56 -04:00
Emagi
8b328c87df Make share button available independent of quest being hidden, visible, got mixed up in the last update 2023-04-02 07:33:07 -04:00
Emagi
2b1948da49 File missing from last night update 2023-04-02 07:13:37 -04:00
Emagi
7299addd47 Fix #509 - quest crash cleanup, AddHate fixed for non spell function cal, fixed all quests being hidden in journal, reduced time to update quest journal from 300ms to 50ms 2023-04-01 20:32:48 -04:00
Emagi
00d92aed43 Stop crash when player/spawn zone is not yet set 2023-03-30 06:22:09 -04:00
Emagi
0bad6569cb If only the client was there it could be told the zone wasn't ready.. 2023-03-29 19:29:32 -04:00
Emagi
119d228b8c Protection on overflowing unsigned values or negatives in floats in terms of miscalculation in combat and other stats 2023-03-28 18:33:58 -04:00
Emagi
957fa27b5c Pets and bots now properly update their damage upon levelling with their owner 2023-03-28 09:19:31 -04:00
Emagi
00e6cdaf61 weaponstats command now supports a target, when client summons a npc it will stop movement, helps when summoning pets, zoning should now properly put you in your group instance when available 2023-03-28 09:04:45 -04:00
Emagi
12f7170625 Fix GetOwner pointer from causing potential crashes 2023-03-27 18:02:01 -04:00
Emagi
25baa666e7 Best to keep this close..! 2023-03-27 17:45:26 -04:00
Emagi
7a2d357e16 Fix crash on setting pet stats after summon, owner was not set, fixed pets not surviving camp and popping back into game, added prespawn script to SummonPet 2023-03-27 17:33:30 -04:00
Emagi
d319056047 Dont save player updates until client is successfully in zone 2023-03-24 17:21:29 -04:00
Emagi
658658e1a6 - Fixed popping non-existent items from overflow causing a crash
- Addressed spells being removed from character on /camp and disconnect
- LUA AddRecipeBookToPlayer(Player,  BookID)
BookID = SELECT id, name, tradeskill_default_level FROM items  WHERE item_type='Recipe'
- LUA RemoveRecipeFromPlayer(Player, RecipeID)
RecipeID = SELECT id from recipe where name='RecipeName';
2023-03-24 13:37:05 -04:00
Emagi
8bf5ec84b7 Restrict health pct update for pets only if the pet is got max_hp set to avoid divide by 0 2023-03-24 06:30:48 -04:00
Emagi
814a9ef958 Some clearing/protection of quests being deleted 2023-03-23 06:32:50 -04:00
Emagi
417bea4214 - Spells now has class lists to reduce the time to assign new spells by level
- Fix #467 Tradeskill spells are now sent upon levelling (if not already assigned by starting spells)
- Wards now limit themselves to one "tic"/"trigger" per hit.
- New LUA Functions:
DeleteSpellBook(Player, type)
type = bit operand combination of:
		DELETE_TRADESKILLS = 1,
		DELETE_SPELLS = 2,
		DELETE_COMBAT_ART = 4,
		DELETE_ABILITY = 8,
		DELETE_NOT_SHOWN = 16
Eg. tradeskills and spells = (1+2) = 3

SendNewAdventureSpells(Player) - sends adventure spells by their level
SendNewTradeskillSpells(Player) - sends tradeskill spells by their level
RemoveSpellBookEntry(Player, spell_id)
2023-03-18 17:52:36 -04:00
Emagi
1e636ef8a9 Fix wards wearing off after one hit when the max count is not set 2023-03-18 06:58:09 -04:00
Emagi
8d52f85e2c Enter House button is fixed! No longer intermittently displays as grey 2023-03-15 14:08:16 -04:00
Emagi
36901efacc Fix typo on damage type vs packet result 2023-03-05 19:21:26 -05:00
Emagi
0c95946f48 Fix #416 allow FOCUS damage type, damage type 14 assigned, example: DamageSpawn(NPC, Spawn, 192, 14, 100, 100)
Does 100 damage with min/max set the same
2023-03-05 19:15:59 -05:00
Emagi
b5aec63d57 Fix chests not opening because they were set to alive 2023-03-05 06:10:44 -05:00
Emagi
3ba895b039 Fix #507 - players dont gain hp while dead so revive works correctly at all times, Fix #232, added spell/item bonus type Power Cost Reduction type is 133, float eg 10.0 is 10% out of 100.0 for percentage 2023-03-04 14:37:45 -05:00