Commit graph

1531 commits

Author SHA1 Message Date
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
Emagi
5c900f99f4 Fix mutex hangup / watchdog when Runback is attempted through IsPauseMovementTimerActive 2022-09-06 08:42:44 -04:00
Emagi
0af4a538c7 fix accidental override of completed description when constructing quest pointer for player 2022-09-05 15:08:04 -04:00
Emagi
e0c066fee3 Quest Completed Description no longer returning nullptr 2022-09-05 13:24:24 -04:00
Robert Allen
4b07fbdadd More TS fixes
Fixed where new scribed books would send updated device info
2022-09-05 10:24:10 -05:00
Robert Allen
3d54fd32f3 Merge branch 'master' of https://git.eq2emu.com/devn00b/EQ2EMu 2022-09-05 07:42:11 -05:00
Robert Allen
42ec692fc6 Update RecipeDB.cpp
forgot to include this is yesterday update
2022-09-05 07:41:50 -05:00
Emagi
371b1ce86a Quest reward was not using completed description 2022-09-05 07:55:52 -04:00
Emagi
65fcf60f6f Fix temporary and final quest rewards giving wrong description 2022-09-05 07:46:50 -04:00
Emagi
35259b1399 Fixed missing strength damage on primary weapon 2022-09-05 06:42:54 -04:00
Emagi
9f51f8bdd0 Fix #468 glow queue fix and version update to 0.9.5 EpsilonCMa 2022-09-04 17:15:59 -04:00
Robert Allen
062b61c22e TS bench and recipe List Fixes
TS bench and recipe List Fixes
Required world list XML update as well Should be included
this will fix 1 items of Issue #467 Tradeskill stations should restrict recipes( these basics take care of standard devices found in starting cities will need some work for house and summoned devices)
PS. i really hope i dont screw this up
2022-09-04 11:30:19 -05:00
Emagi
b510c670c6 Merge branch 'master' of https://git.eq2emu.com/devn00b/EQ2EMu 2022-09-01 20:45:51 -04:00
Emagi
0aad34e884 Fix #463 missed in last update 2022-09-01 20:45:25 -04:00
devn00b
e57aa85050 Fix from EmemJR "...the current code is setting the level 1 spells to tier 0"
Full Quote: "this is becuase for recipes  level 1-9 are tier 1 recipes 10 -19 are tier 2 etc the current code is setting the level 1 spells to tier 0"
2022-09-01 23:13:45 +00:00