1
0

35 Commits

Author SHA1 Message Date
Emagi
4e43c73f9c Fix #23 - Wards deleted while in use causing crash 2025-06-03 10:03:31 -04:00
Emagi
ec2c99d175 Fix equip/unequip with calculations causing a potential watchdog 2025-05-28 14:33:34 -04:00
Emagi
534a80d104 Fixed the HP and Power returns to be SInt32 like their code counterparts 2025-05-24 13:57:57 -04:00
Emagi
fd147a0fd0 LUA Function Added HasPendingQuest(Spawn: Player, Int32: QuestID) 2025-03-21 08:48:50 -04:00
Emagi
71217ce0ec Provided a update to quests to have a persisted status
alter table character_quests add column status_to_earn int(10) unsigned not null default 0;
alter table quests add column status_to_earn_min int(10) not null default 0;
alter table quests add column status_to_earn_max int(10) not null default 0;
2025-03-15 15:31:02 -04:00
Emagi
54a215d1ba code warning fixes 2025-03-05 08:37:52 -05:00
Emagi
31c45c884c null spawn ptr fix for SetSpellList 2025-02-01 06:52:36 -05:00
Emagi
7e69739e43 allow LUA Functions for movement to use nav path 2025-01-29 15:13:26 -05:00
Emagi
78db10105e Lua Function GetID(Spawn) added.. 2025, it's amazing...! 2025-01-19 11:46:04 -05:00
Emagi
bd7d69c495 Additionally RemoveProc should only remove the target, not all targets in the spell 2025-01-19 10:23:57 -05:00
Emagi
b985613791 RemoveSpellBonus should only remove the target if specified, otherwise it can remove the entire target set/group accidentally 2025-01-19 09:59:42 -05:00
Emagi
dad7873dc5 LUA functions added: GetSpellCaster(Spell) and GetCasterSpellLevel(Spell) the Spell field is optional if in a spell script
db additionally had field added:

alter table character_spell_effects add column caster_level smallint(5) unsigned not null default 0;
2025-01-18 09:16:35 -05:00
Emagi
9b60035656 LUA function Resurrect updated with 8th and 9th argument for revive_sickness_spell_id and revive_sickness_spell_tier respectively. Fixed avoiding crash with bad spawn ptr if resurrect caster left zone. 2025-01-11 09:22:25 -05:00
Emagi
3162106580 Added Lua Functions PlayAnimationString(Spawn: Spawn, String: EmoteStringCommand, Spawn: OptTarget, Boolean: SetNoTarget, Boolean: UseAllSpellTargets, Boolean: IgnoreSelf) and GetSpellTargets(Optional_Spell) if no argument must be in spell script. Fixed spells with no range that are group based to apply to all in group. 2025-01-10 19:08:47 -05:00
Emagi
ec2b564132 have NPC's return their own level so they just use the base dmg 2025-01-09 13:50:07 -05:00
Emagi
b1b9ab8ed9 LUA Function GetSpellRequiredLevel(Player) added to retrun the required level for the spell based on the adventure class 2025-01-09 13:34:32 -05:00
Emagi
35bbb09096 Fixed LogError for GetSpellInitialTarget to show correct function name, pNumPlayers implemented for ZoneServer, will peer that data as well 2024-12-11 08:27:16 -05:00
Emagi
4e07b26cc7 add LUA functions for player levels in an instance 2024-12-05 09:22:50 -05:00
Emagi
c17b4d5588 Added CreateChoiceWindow, ClearChoice and GetChoiceSpawnID lua functions, added base of tracking for min, max, avg, first level for raid/group into instances... more work to complete tomorrow 2024-12-04 21:53:57 -05:00
Emagi
45da917e8a fix crash on missing caster for RemoveWard 2024-11-19 15:53:41 -05:00
Emagi
315ab1d0e7 Project Nebulark Part 1, So much to list, this is a rough summary
- Raid support and cross peer support for Isle of Refuge, DoF, KoS and AoM clients.
- Zone Persistence added to non-instanced zones.
- Commands: /whogroup, /whoraid, /raidinvite, /raid_looter, /kickfromgroup, /kickfromraid, /leaveraid, /split, /raidsay (rsay) added.
- Cross peer zone and instance support
- Cross tell support (along with ignore)
- Cross ooc support
- Cross group support (can chat, leave group, disband cross peers, update group options)
- Cross who all support
- houses/instances fixed no more cross objects/spawns/etc from other houses
- houses now display characters name with the house zone description
- 1000's of house items now properly work with wall/ceiling
- debug messages removed from housing placement
- Encounters locked to raid instead of group
- group options restricted to raid leader
- reload rules for following are peer wide:
COMMAND_RELOADSTRUCTS
COMMAND_RELOAD_QUESTS
COMMAND_RELOAD_SPELLS
COMMAND_RELOAD_ZONESCRIPTS
COMMAND_RELOAD_FACTIONS
COMMAND_RELOAD_MAIL
COMMAND_RELOAD_GUILDS
COMMAND_RELOAD_RULES
COMMAND_RELOAD_STARTABILITIES
COMMAND_RELOAD_VOICEOVERS
COMMAND_RELOADSPAWNSCRIPTS
COMMAND_RELOADREGIONSCRIPTS
COMMAND_RELOADLUASYSTEM
- special/static zones (always_loaded) are now defined by a peer_priority unsigned short (smallint(5)) in zones table.  peer_priority = server_config world.peerpriority will spawn on that exe instance, if it is not available it is distributed to all peers.  Using the value of 0 (assuming no peer has priority of 0) or 65535 will result in peer distribution of zones.
server_config.json "WorldServer" block updated with the following (web peer port information), priority must be unique for EACH peer:
        "peeraddress": "10.1.1.2",
        "peerport": "9102",
        "peerpriority": "1",

New Command Line Run Arguments for World Exe to override server_config.json values
Allowed options:
  --worldaddress arg         World address
  --internalworldaddress arg Internal world address
  --worldport arg (=0)       Web world port
  --webworldaddress arg      Web world address
  --webworldport arg (=0)    Web world port
  --peerpriority arg (=0)    Peer priority

- fixed Isle of Refuge client group struct (raids added also)
- new log category Peering
- new LUA Functions AddRespawn(Zone, LocationID, RespawnTime) and CreatePersistedRespawn(LocationID, SpawnType, RespawnTime, ZoneID)
2024-11-18 11:13:04 -05:00
Emagi
c20f97faa5 Fixed RemoveProc to work without Spawn argument 2024-09-24 07:33:54 -04:00
Emagi
26b5dc2d8c yet even more lua functions fixed for reset stack 2024-09-13 11:23:17 -04:00
Emagi
c8f88ff904 Update LuaFunctions.cpp 2024-09-13 08:18:40 -04:00
Emagi
0a1692b9a0 RemoveSkillBonus should work on NPC's now, fixed/added some additional logging info for SpawnGroupByID 2024-09-13 06:45:15 -04:00
Emagi
a597a993c2 note script filename fix error message for SpawnGroupByID 2024-09-12 15:46:46 -04:00
Emagi
ce39473fb9 additional lua fixes 2024-09-12 10:36:05 -04:00
Emagi
362a86d3f7 fix HasCoin to check if player before casting it 2024-09-12 09:44:05 -04:00
Emagi
0a80911ed7 Allow CureByControlEffect to be ran outside spell script 2024-09-12 08:40:47 -04:00
Emagi
e246609d34 AddControlEffect requires a luaspell be passed. On load of spell script data we remove the useless luaspell ptr. 2024-09-10 18:36:47 -04:00
Emagi
14003ee3a4 LUA Spell Scripts updated to have a queue much like SpawnScripts, but extended to LuaSpell for tracking procs and lifetime of the lua state
Need to avoid crashes/overrun of the lua stack.
2024-09-04 06:44:04 -04:00
Emagi
8d09f4e043 Update LuaFunctions.cpp 2024-08-17 04:27:45 -04:00
Emagi
85c6d48f70 WorldServer Updates
- Added DespawnByLocationID(Zone, Location_ID, Delay) - delay defaults as 0 (instant).
- SpawnGroupByID and SpawnByLocationID will now randomly pull from the locations list of entities, instead of the initial spawn available (iterator 0).
2024-08-17 04:22:52 -04:00
Emagi
ca28e77ae4 Crash fix, new lua function IsSpawnGroupAlive(Zone, Group_ID)
Crash fix for SpawnGroupByID on invalid group, IsSpawnGroupAlive(Zone, Group_ID) added.
2024-08-02 15:51:28 -04:00
Emagi
89194da149 EQ2Emu Source Base July 2024 2024-07-22 08:52:28 -04:00