39 Commits

Author SHA1 Message Date
Emagi
6b22386ef6 #37 Fix north qeynos temple of life, ForceZone transport_type added to transporters table see comment for table updates.
ALTER TABLE transporters
MODIFY COLUMN transport_type ENUM('Zone', 'Location', 'Generic Transport', 'Flight', 'ForceZone')
NOT NULL DEFAULT 'Zone';

This provides the north qeynos teleporters for Temple of Life to work as zone points (with code update):

update transporters set transport_type='ForceZone' where id=43;
update transporters set transport_type='ForceZone' where id=44;
2025-06-20 09:17:25 -04:00
Emagi
08204186c8 Stop spells being put on hotbar that are not supposed to be visible like archetypes 2025-06-20 07:45:22 -04:00
Emagi
9fbae149d8 DoF and KoS clients support quantity in the quest offer/accept windows, AoM does not show quantity so it has to be sent differently (earlier clients were not considered as it is not really vital) 2025-06-18 20:14:16 -04:00
Emagi
712b5ebf3f Fix flight paths for KoS, DoF clients. Working around by sending the single flight path due to indexing issues with the client. 2025-06-18 17:04:13 -04:00
Emagi
ac15c6b9f7 Fix items after "obtained" because RemoveItem can be called making the Item Ptr dead. 2025-06-15 19:14:44 -04:00
Emagi
4c60615c39 Lua Functions DeleteQuest, DeleteAllQuests added (Fix #29). Ward crash issues (Fix #30). Item Scripts now auto bug report to bugs table (Fix #31).
Fix #29 - DeleteQuest(Player, QuestID, ForceDelete) and DeleteAllQuests(Player, ForceDelete) added.
Fix #30 - Ward crash protection
Fix #31 - track item scripts missing on food/drink auto bug report
2025-06-13 19:52:37 -04:00
Emagi
82a5e96000 Work in progress for 0.9.9 so far (making its own branch for now)
- Fixed a repeated rubberband like behavior that Spawn's would run forward toward their target in combat or on their return run to their starting point.
- WS_HearCastSpell for 546-561 version has an extra byte at the end of the packet we were missing (might be in later clients too have to confirm)
- PlayerScripts support added, new function calls, AddTimer support for Players.
- Static Zones / Special Zones will now silently check to startup zones without reporting the log message, log message only on startup or taking on peer leadership.
- Broadcast and Global Announcement are now supported through peering.
- Fix #22 identified a number of loose spawn pointers and changed to int32 spawn id reference.
- Fix #1 support for all known chat codes for various channels, spell casting and damage.
- In conjunction with Fix #1 spell combat messages are fixed, no longer 'YOU cast' when another spawn casts, added last_tell_name to track the chat code %RT server side.
- size_mod added to InfoStruct Float, supports shrinking and growing Non Player's. InfoStruct also has a UINT ignore_size_mod_calc set to 0 by default, when 1 it will let you set the size_mod and items/spells will not override it from stat calculation.
- XP Table is now static (global) in the Player class so we do not constantly call the database each time the player needs to know a level's XP requirement.
- Removal of duplicate spell cast success and effect messages.
- Fix #21 blue xp bar for KoS and DoF displays properly now.
- GetExpRequiredByLevel(level) added to return the EXP required for to reach the level.
- Fix #25 teleporters cleaned up during /reload spawns to avoid crash
- Fix #16 /reload items supported in peering mode.
2025-06-08 14:53:52 -04:00
Emagi
97d1393627 Fix #19 Position updates ignored when dead, new rule MiniDing, fix
Fix #19 - ignore position updates when dead
New rule R_Player MiniDingPercentage
Fixed ordering of locks in RemoveSpawn
ResetSpawnPackets function created to test resetting the spawn packet to a spawn (testing purposes only not live code)
2025-05-30 21:47:57 -04:00
Emagi
ec2c99d175 Fix equip/unequip with calculations causing a potential watchdog 2025-05-28 14:33:34 -04:00
Emagi
4f04033e97 Fixed calculating bonuses for items when equipping and unequipping 2025-05-25 14:02:46 -04:00
Emagi
13e10b315d KoS and earllier client fixes + server exploit fix
- Can now use equipped charms (previously did not work had to use from inventory)
- Fixed charges not decrement when equipped for all clients (they had unlimited charges!!)
- Fixed click / interacting with ground spawns, doors, so on.  Some objects may need a default setting since the older clients don't send the entity command where new clients do.  Made a fallback structure WS_EntityVerbsVerbBackup for when that happens.
2025-05-06 18:38:43 -04:00
Emagi
0aa8da426b Visual effect for level 50 is 323 2025-04-30 12:49:53 -04:00
Emagi
ce6ad0e2a3 Fix #2 - Spell tier data not sent correctly to client
- KoS and earlier clients now show appropriate tier data after logging in
- AoM additionally shows tier data correctly, after skill info request for spells we send the spell data back so the client does not later ask for the spell data also.
2025-04-12 10:26:02 -04:00
Emagi
1268ecbc94 Fix Issue #3 - Class Updates, Name Updates to LS
Support added for class updates to LoginServer when adventure class is updated (such as commoner to sub class, so on).

Name change for GM command /name support added for LS update.  This is a use at your own risk command and you will have to /camp to fully reflect your name update.
2025-04-11 09:49:18 -04:00
Emagi
61aec683b5 revert SendShowBook to fix /spawn details and other use of the book pages 2025-03-21 11:21:31 -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
e0943377df spawn details fixed after cygwin change 2025-03-10 14:40:46 -04:00
Emagi
54a215d1ba code warning fixes 2025-03-05 08:37:52 -05:00
Emagi
1c35309538 fix behavior on zoning for clients to not impact other players 2025-02-09 19:06:49 -05:00
Emagi
79a010e055 disable bank / shared bank in trade and also sellitem 2025-01-26 15:16:27 -05:00
Emagi
3e447db611 fix some bad multipliers for the current xp of the level 2025-01-13 09:21:37 -05:00
Emagi
82a1885887 Added classic spell level support (aka mini ding spells) like warrior getting knee break at lvl 19.6 2025-01-13 09:06:11 -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
e3e0e8b8fe fix and restrict selling to city merchants, must be in a guild to get status and in the level range, selling will get no status 2025-01-10 20:02:22 -05:00
Emagi
1cc7d22a44 support flight paths in KoS and earlier clients, also start of showing loot to other group/raid members 2025-01-04 15:24:02 -05:00
Emagi
2afc0b8e92 Allow players to re-enter the original duplicate zone with the transporter selection dialog 2024-12-27 09:04:18 -05:00
Emagi
314fc8396c Added tracking of zone duplicate id (when its a public zone) to the characters table. We will now properly persist to the respective zone when a public zone becomes instanced. 2024-12-23 17:43:58 -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
9353cdbb39 can only repair at a repair vendor 2024-12-01 10:55:36 -05:00
Emagi
9b9777257f avoid adding potentially null/dead item pointers to quest rewards, guild sending for KoS and earlier clients moved to op_sysclient 2024-11-26 12:43:08 -05:00
Emagi
72481617ec Fix spells persisting when you zone 2024-11-24 08:21:06 -05:00
Emagi
428b73391c Omit bank/shared-bank from selling at a merchant, additionally prevent weight calculation for banked items on players weight 2024-11-23 09:24: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
e4fc6aad5a Zone ruleset_id support for most rules 2024-10-20 09:35:41 -04:00
Emagi
a056ef7b41 removed noisy dumppackets 2024-09-23 07:29:42 -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
f4647acd4b another common header wrongly pointed to 2024-07-22 09:09:14 -04:00
Emagi
89194da149 EQ2Emu Source Base July 2024 2024-07-22 08:52:28 -04:00