Commit graph

1895 commits

Author SHA1 Message Date
Emagi
5498e50cbd redid how the 2orig 2decrypt packets are passed as app packets 2022-10-09 11:18:02 -04:00
Emagi
f272eb7eb6 remove dumppacket for public 2022-10-08 21:28:29 -04:00
Emagi
a2e7bdb2db Merge branch 'master' of https://git.eq2emu.com/devn00b/EQ2EMu 2022-10-08 21:27:28 -04:00
Emagi
ef475ce501 re-enable 2orig/2decrypt functionality in netcode, handles encrypted data without protocol layer, striaght to app layer packet 2022-10-08 21:27:13 -04:00
devn00b
15b91b6082 Update Windows EXE (C++17) 2022-10-08 19:34:13 +00:00
Devn00b
54fe1942aa Update Windows source/project to c++17. 2022-10-08 12:32:31 -07:00
Emagi
a1f2f27ebf Address 'garbage' packets that cause desync of client and crash of server 2022-10-08 11:32:20 -04:00
Emagi
43e5311f61 lua function updates and fixes 2022-10-07 16:50:59 -04:00
Emagi
d7fbb72b47 Rare case on the final embedded packet if there is an offset also should have been int8 not 16 2022-10-07 13:06:24 -04:00
Emagi
6a10e53b3d Embedded Packets update to try and resolve bad packet reading 2022-10-07 12:56:25 -04:00
Emagi
be1220d3f8 additional recipe bug fixes 2022-10-05 15:41:38 -04:00
Emagi
1e0b1d0875 protections around item not having a proper recipe book tied to it 2022-10-05 11:57:16 -04:00
Emagi
f707acc76b Fixed bad query for item details recipe, from was not spaced 2022-10-05 11:56:50 -04:00
Robert Allen
c8e66f8daf updates for recipe components
updates for recipe components, ie mulitple rawpelt pelts that can be used
2022-10-04 05:36:09 -05:00
Emagi
3c42c9a9f2 Inventory can no longer fold into itself (delete item) when you move item to its original slot holding left click 2022-09-25 11:35:41 -04:00
Emagi
27c6eaa0fc - Fixed house crash when you place an item and pick it up while the same zone instance is running
- Fixed cures not working correctly, it was checking the class while matching level requirements, it was checking the victim class, but we can't rely on the caster class being valid since /castspell among other customization options
- MSpellInfo Mutex updated to shared_mutex since there was a deadlock noticed before calling MSpellInfo.lock
2022-09-25 08:46:43 -04:00
Emagi
52435f03f2 Add IsCastOnAggroComplete to LuaInterface 2022-09-24 21:44:17 -04:00
Emagi
f0e3800333 Fix #381 - NPC Spell Enhancements
- spawn_npc_spells is now globally loaded (World level) instead of per Zone.
- spawn_npc_spells now has a on_spawn_cast and on_aggro_cast column, these are as described.  on_spawn_cast will be subset of buffing, but first casted.  Same with on aggro, once on aggro is casted it will no longer cast unless using SetCastOnAggroComplete to reset.
- DB Changes:
alter table spawn_npc_spells add on_spawn_cast tinyint(3) unsigned default 0;
alter table spawn_npc_spells add on_aggro_cast tinyint(3) unsigned default 0;

- NPC AI code updated to support spawn group targets for buffs
- Fixed NPC's being unable to cast friendly spells on each other (heals should work and other spells now)
- Added /reload spells npc command to reload specifically npc spell lists, /reload spells also will include them
- Added LUA Function IsCastOnAggroComplete(NPC) / SetCastOnAggroComplete(NPC, true|false) - this will allow overriding the cast on aggro, if you want the NPC to repeatedly trigger sublists you can keep setting to false
2022-09-24 21:15:17 -04:00
Emagi
77be6c5d87 Support for GM sight and POV Ghost to allow beyond just the direct target to be visible, so you have your local client/player location mapped and the remote ghost pov mapped to your spawn range 2022-09-22 12:38:35 -04:00
Emagi
7c0c5d537e Fix #262 added /gm sight [on|off] with target to follow pov of spawn, LUA implemented SetPlayerPOVGhost(Player, Target_Spawn) if target_spawn is nil it will disable the ghost pov 2022-09-20 16:03:11 -04:00
Emagi
575951bac5 Fix EnterRegion script to send the right region type 2022-09-20 14:14:48 -04:00
Emagi
fdb4f2b0ef reduce noise for near region when gm regiondebug is on 2022-09-20 14:08:28 -04:00
Emagi
91841a5be2 increased min Y offset since we can't account for underwater or lava 2022-09-19 21:52:25 -04:00
Emagi
230db3ee00 only run the script in region, oops for invul 2022-09-19 21:24:49 -04:00
Emagi
04b7342c14 allow friendly spells in heroic opportunities since they will not match target in HO 2022-09-15 17:28:17 -04:00
Emagi
ea361bd22c AoM client cant even load this zone, no reason to keep it 2022-09-15 10:11:34 -04:00
Emagi
3d6835989a Maps v3 2022-09-15 08:27:08 -04:00
Emagi
5710814faa assure that the map has a min Y coordinate to use for underworld 2022-09-15 06:22:06 -04:00
image
b489814c9f makefile.a64 set to c++17 compile flag 2022-09-15 01:29:35 +00:00
image
7956735566 c++17 compile required for makefile now
To support shared_mutex
2022-09-15 01:28:59 +00:00
Emagi
b478cdb300 SetInfoStructUInt(NPC, friendly_target_npc, 1) will allow casting friendly spells on NPC 2022-09-14 15:15:16 -04:00
Emagi
d436454646 Grid command lists widget id now. fixed zone script location updates 2022-09-14 11:31:13 -04:00
Emagi
c1dc511f10 ModelViewer/MapEditor updates to support exporting widget ids 2022-09-14 10:30:01 -04:00
Emagi
db123c93e9 - Work in Progress: Widget ID support added to RegionScripts, test zone is tutorial_island02 (queens colony, overlord outpost, isle of refuge)
- You can now add a new region identified by its grid and widget id (use /grid to identify when standing over it)
- New LUA Functions:
CreateWidgetRegion(Zone, Version, RegionName, EnvName, GridID, WidgetID, Dist)
* Dist is optional when set to 0.0f we rely only on the widget id, when dist is set we do a radius around the widgets locations
* RegionName and EnvName define the script file so if you are in QueensColony (tutorial_island02) and the RegionName is TestRegion, script is RegionScripts/tutorial_island02/TestRegion.lua
RemoveRegion(Zone, Version, RegionName)
By default Version is 0 on both, but you could specify a version like 546 if you had a DoF client mapped

Example campfire in the newbie area:
ZoneScripts/QueensColony.lua
function init_zone_script, add line:
	CreateWidgetRegion(Zone, 0, "TestRegion", "", 924281492, 4117633379, 2.0)

Create new script, RegionScripts/tutorial_island02/TestRegion.lua with the following:
function TakeFireDamage(Spawn)
    local invul = IsInvulnerable(Spawn)
    if invul == true then
        return 0
    end

	local hp = GetHP(Spawn)
    local level = GetLevel(Spawn)
    local damageToTake = level * 1
	-- if we don't have enough HP make them die to pain and suffering not self
	if hp <= damageToTake then
		KillSpawn(Spawn, null, 1)
	else
		DamageSpawn(Spawn, Spawn, 192, 3, damageToTake, damageToTake, "Fire!", 0, 0, 1, 1)
	end
end

function EnterRegion(Zone, Spawn, RegionType)
	-- initial tick for hitting the fire
	TakeFireDamage(Spawn)

	-- 5 second Tick
	return 5000
end

function Tick(Zone, Spawn, RegionType)

	TakeFireDamage(Spawn)

    -- returning 1 would stop the Tick process until Spawn leaves/re-enters region
	return 0
end
2022-09-14 10:25:10 -04:00
Emagi
a4f370f438 Force delete of item when unequipslot specifies so 2022-09-13 18:57:15 -04:00
Emagi
f55968cd97 force item delete on unequip 2022-09-13 18:56:08 -04:00
Emagi
957637a177 additional lookup and erase the id instead of clear the list 2022-09-13 18:04:26 -04:00
Emagi
19c1bcf8df fallback when lookups fail 2022-09-13 17:11:15 -04:00
Emagi
0a3d4dbf4c remove unneeded log 2022-09-12 07:45:45 -04:00
Emagi
2f3847abb0 Fix LUA UnequipItem so that UnequipSlot(Player, slot) removes item and deletes, UnequipSlot(Player, slot, true) will not delete, but put in free inv slot, usually first bag for now 2022-09-12 07:44:46 -04:00
Emagi
dc571783e7 Fix UnequipSlot not properly handling third field which is no_delete_item 2022-09-11 17:27:24 -04:00
Devn00b
b7af3e307e Removed base stat/resist increase on level. Removed stat/resist increase/decrease on mentor. Starting stats/resists now pull correctly from starting_details. 2022-09-10 21:37:33 -07:00
Emagi
13e0d2857f Fix #455 - Falling underworld to safe spot support 2022-09-10 16:04:43 -04:00
Emagi
f694246c49 ugh last one I promise.. 2022-09-10 10:01:19 -04:00
Emagi
727ffca7b2 fix bad put 2022-09-10 09:52:49 -04:00
Emagi
972c9b575c wrong put 2022-09-10 09:50:38 -04:00
Emagi
e40f842ac0 removed benign errors about E LUA : : attempt to call a nil value in a quest script when the function does not exist 2022-09-08 07:41:43 -04:00
Emagi
b79531870c make use of atomic not volatile.. 2022-09-06 13:43:38 -04:00
Emagi
c85c3e0d25 Added LUA Function DamageEquippedItems(Spawn, damage_percent_amount) 2022-09-06 13:34:11 -04:00
Emagi
029d29760f Fix additional issues with runback causing server to hangup 2022-09-06 13:33:39 -04:00