Commit graph

782 commits

Author SHA1 Message Date
devn00b
9d11184f5d Removed needless ifdef. Both paths are identical. 2022-07-20 07:05:37 +00:00
Emagi
24e1ecc8d4 additional part of the language chat update 2022-07-17 16:25:18 -04:00
Emagi
ac508a3fe2 additional removed test log 2022-07-17 16:19:58 -04:00
Emagi
966ada0771 Fix #306 - added language support for player chat. Additional log cleanup of unnecessary messages. 2022-07-17 16:17:59 -04:00
Emagi
f52276b263 Fix #450 can restrict SpellDamage by race id and type
Fix #172 lock spelleffects until removal in group
2022-07-16 09:33:58 -04:00
Emagi
a1beb6acb0 spawn access requirement can now be enforced with spawn signs to not show title and description 2022-07-15 08:59:44 -04:00
Emagi
d3819ec135 - Fix #412 - "placed" function now called on ItemScript placement in homes. The placed spawn will be the target field (after player).
- Fixed some additional lacking group member checks and bad returns inside mutex locks
- Fix #432 - set languages on sign/conversation, we can now set language in spawn_signs, language setting only garbles description, not title of spawn_signs
 * StartDialogConversation has a 9th parameter (after key2) for language (int8), 10th parameter is can_close (defaults to 1)
 * StartConversation has an 8th parameter (after key2) for language (int8), 9th prameter is can_close (defaults to 1)
 * spawn_signs table now supports the language parameter, db update:
	alter table spawn_signs add column language tinyint(3) unsigned default 0;
- Fixed AoM skill display for general skills, languages now display too, but we need to discover how to omit skill values
- /spawn details now includes sign language on the third page if the spawn is a sign.
2022-07-15 07:57:21 -04:00
Emagi
1184380240 forgot jumping aom switch case 2022-07-07 14:56:52 -04:00
Emagi
1e2d5f98cf - Completed Fix #279
- Update Activities for AOM added (someday we need a table based on versions to handle these)
- In turn of updating activities, client side enforced drowning, swimming is now correct
- transmuting skill / item stat now calculated
- Fixed sending certain information to client before they are zoned in
- Player is blocked from being attacked until they send their 'ready' message to the server (visual UI display can be seen)
- New swim rules:
	RULE_INIT(R_Player, SwimmingSkillMinSpeed, "20");
	RULE_INIT(R_Player, SwimmingSkillMaxSpeed, "200");

	RULE_INIT(R_Player, SwimmingSkillMinBreathLength, "30"); // these are probably in seconds
	RULE_INIT(R_Player, SwimmingSkillMaxBreathLength, "1000");
2022-07-07 14:54:03 -04:00
Emagi
71e9fef163 address type 1 item stats not calculating correctly 2022-07-05 08:09:53 -04:00
Emagi
0ba4872482 don't do early commits kids! 2022-07-05 07:37:56 -04:00
Emagi
5c969ba508 Additional work for Issue #279, added skills last night now item stats are now added to the skill base 2022-07-05 07:32:22 -04:00
Emagi
6e3d4a2b3b Additional work for Issue #279, added skills last night now item stats are now added to the skill base 2022-07-05 07:30:15 -04:00
Emagi
3ee72ae22e Support for tradeskills resist/failure to happen less often against the mastery skill, additional work for Issue #279 2022-07-04 22:19:31 -04:00
Emagi
8aee382185 - Broker 'btypes' (special effects) addressed for AoM client, new table broker_item_map created check DB/updates/broker_item_map_july3_2022.sql Fix #336
* May need further expansion some day to compare other clients, we can map btype, but the itype/ltype may also need to be mapped.
- Fixed Item::HasStat to work for stats in the 100-199 range since they only match the type (1) and the subtype is the value, meaning we have to match up the skill name
Partial addressing of Issue #279
- Ministration Skill/Power reduction added with rules
       RULE_INIT(R_Spells, MinistrationSkillID, "366253016"); // ministration skill id used to map power reduction rule MinistrationPowerReductionMax
       RULE_INIT(R_Spells, MinistrationPowerReductionMax, "15.0"); // max percentage of power reduction for spells with ministration mastery skill (default is 15.0 for 15%)
       RULE_INIT(R_Spells, MinistrationPowerReductionSkill, "25"); // divides by integer value to establish how much skill req for higher power reduction
- Subjugation, Disruption, Ordination and Aggression resistance reduction by skill of the attacker
       RULE_INIT(R_Spells, MasterSkillReduceSpellResist, "25"); // divides by integer value to establish how much skill bonus for reducing spell resistance on target
- Weapon Skills item stat now added to the weapon skill (crush/slash/pierce) for determinehit
2022-07-04 20:32:56 -04:00
Emagi
6fbc15029d - Fixed Cure not working if there was no levels table on the detrimental spell
- Fix #329 /cureplayer implementation (minus RAID support)
update commands set handler=531 where command='cureplayer';

- cures will now remove the maintained spell of the caster if all targets are gone
- target support for item scripts 'used' function, eg.

function used(Item, Player, Target)
    -- do stuff
end

- effect_type added to items table, currently used to map to cure types
alter table items add column effect_type int(10) unsigned not null default 0;

	NO_EFFECT_TYPE=0,
	EFFECT_CURE_TYPE_ALL=1,
	EFFECT_CURE_TYPE_ARCANE=2,
	EFFECT_CURE_TYPE_TRAUMA=3,
	EFFECT_CURE_TYPE_NOXIOUS=4,
	EFFECT_CURE_TYPE_CURSE=5,
	EFFECT_CURE_TYPE_MAGIC=6
- created sample cure using item id 48868 Translucent Remedy of the Gods
update items set lua_script='ItemScripts/cure_test.lua' where id=48868;
update items set usable=1,effect_type=1 where id=48868;
I know, not the items real purpose, but this was just a fun test since the other effect cure types would be specific to the type
- removed dump packet of lower layer packet opcode 3 (reduce noise in console)
2022-07-01 18:12:45 -04:00
Emagi
397bf5f465 Fix #167: Addressed bad memory handling of threat transfer and potential hanging lua spell ptr 2022-07-01 06:47:08 -04:00
Emagi
5b0f52641c Trade check for Player cast 2022-06-30 20:20:43 -04:00
Emagi
074a3182c3 Merge branch 'master' of https://git.eq2emu.com/devn00b/EQ2EMu 2022-06-30 20:08:52 -04:00
Emagi
682e023635 Complete Fix #418 item flags
- Temporary item flag support (removes item 30 minutes from camp out)
Rule R_Player, TemporaryItemLogoutTime added for seconds to deletion of item
- Heirloom item flag support added (limited to group support)
Rule R_Player, HeirloomItemShareExpiration added for seconds to inability to trade item between prior group members(tbd raid)

SQL Updates:
CREATE TABLE `character_items_group_members` (
  `unique_id` int(10) unsigned NOT NULL default 0,
  `character_id` int(10) unsigned NOT NULL DEFAULT 0
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
alter table character_items add column last_saved timestamp default current_timestamp on update current_timestamp;
alter table character_items add column created timestamp default current_timestamp;
2022-06-30 20:08:25 -04:00
devn00b
6bc397ec60 Fixed missing return on EQ2Emu_lua_HasCoin. 2022-06-29 06:59:01 +00:00
Emagi
7ac0861c98 missed a end ) for one of the starting language queries 2022-06-28 19:43:49 -04:00
Emagi
4b322d60ae - ZoneServer::PlayAnimation Fix #395 - spawn id 0 check to avoid bad packets, also client versioning methodology added, no longer creating a packet for each client
- SpellProcess::DeleteCasterSpell now unshades/ungreys a spell that was in maintained effects when cancelled.  This is for Fix #383 in relation to pet spells, but extends to any endless duration maintained spells.
- Fix #315 Implemented /cancel_effect [spell_id] - need DB query update: update commands set handler=530 where command='cancel_effect';
- Spell bonuses should properly be removed when spell is removed from a entity/spawn (char sheet stats should update and bonuses re-calculated)
- Sanity checks on /cancel_maintained so you cannot overflow the array and crash the server
- Resisted spells should no longer add control effects or do other spell like impacts when the cast is complete, this is based on the SpellDamage/Attack (that resists, then additional effects will be ignored in the cast function)
- Root, stun and mesmerize now hold the NPC in place
- We purge their previous movement plans to avoid wandering pointlessly when an NPC is stunned, mesmerized or rooted
- starting_languages update
	R_World StartingZoneLanguages
	Value 0: Does a match specific to race id (ignores starting_zone in the SQL query, so it consumes all) and inserts the languages applicable
	Value 1: Looks for all matching to starting_city, which is based on the client see starting_zones for examples.  Also wildcard for starting city of 0 and race id match.
update starting_languages set race=2 where race=3 and language_id=3; #dwarf (2) language id of 3 is not erudite race (3)
2022-06-28 19:24:00 -04:00
Emagi
ccfb3df8ca match local copy? 2022-06-27 16:24:54 -04:00
Emagi
e329a1cf79 More comments, slight cleanup 2022-06-27 06:47:38 -04:00
Emagi
b105a4058a - start_alignment added to starting_zones to enforce an alignment based on race/class/choice
- characters now has an alignment column to distinguish between deity/alignment (DoF we call alignment deity)
- added new rule R_World, EnforceRacialAlignment default is 1, (true).  When 0, will allow you to bypass the hard coded race restrictions in the code for good/evil/neutral
- Captain Varlos script updated to use GetAlignment and not GetDeity for the send off to the zone after far journey
- DB Updates:
alter table starting_zones add column start_alignment tinyint(3) signed not null default 0;
update starting_zones set start_alignment = 1 where choice = 1 or choice = 4 or choice = 32;
alter table characters add column alignment tinyint(3) signed not null default 0;
2022-06-26 18:30:34 -04:00
Devn00b
e6f15f0f13 Started implementation on PVP faction checks (IE Qeynos Players cannot inspect Freport Players currently). Implemented Alignment check based on Bind Location. 2022-06-25 22:56:53 -07:00
Emagi
c94a043cdc Work on Issue #418 for item flags (update #2)
Item Flags Implemented/Updated:
- No Repair implemented
- Evil Only, Good Only implemented
- No Value updated/implemented
- Fixed house items being removed unless properly picked up by player
- Broken items can no longer be used
- Cannot swap equipped items in combat
- Additional indestructible checks
Group member checks to avoid unexpected crashes
2022-06-21 22:45:56 -04:00
Emagi
c799cdeb5a Fixed AddControlEffect crash on lua_interface->LogError when target is null
Work on Issue #418 for item flags (not fully completed)
Item Flags Implemented:
- No Destroy
- No Zone
- Lore
- Lore Equip
- Stack Lore
2022-06-20 19:24:46 -04:00
devn00b
0ef32131c6 Fixed Inspect window stats Mitigation, and Avoidance % 2022-06-20 20:00:29 +00:00
devn00b
2ea3075fe5 Added SetCanGate to LuaInterface.cpp 2022-06-19 22:48:16 +00:00
root
efcf967100 Gate to bind Enabled. Added missing Lua Functions ( GetCanGate(Player)/SetCanGate(Player,Val) ). 2022-06-19 11:51:30 -07:00
Emagi
2f541603fd Fix #391 - no crash on eq2world shutdown
Fixed some misc. memory leaks in client/player
removed unneeded debug message
Fixed zone shutdown timers and the incoming clients count
2022-06-18 21:54:59 -04:00
devn00b
d7caa38cd3 Cleanup of new gate code. Added messages when a gate fails due to location disabled. Modified the call to home lua to work as expected. 2022-06-18 12:31:13 -07:00
devn00b
c095bd9b2d Merge branch 'master' of http://git.eq2emu.com:3000/devn00b/EQ2EMu 2022-06-18 10:36:21 -07:00
devn00b
9d9a5ec294 Fixes to messages to client from gate/bind. Messages are now private and match live..mostly. 2022-06-18 10:36:11 -07:00
Emagi
13b1837623 Fix #384 group encounter mob loot
Adding a new column to the spawn table:
alter table spawn add column loot_drop_type int(10) unsigned not null default 0;

- loot_drop_type of 0 means spawn will when part of an encounter transfer its loot to the next alive spawn.
- loot_drop_type of 1 means the spawn will drop its own loot when it dies (like a named mob ideally).
- These changes do not change body drops which remain on the spawn/npc that dies, not transferred.
- loot and chest drops have been expanded beyond NPC's which means potential PVP support or even other types of spawns can drop loot/chests (probably expand loot_drop_type at a later time for more options in this area).  Need lua interface support (when player dies and all that) issue #436 opened for it.
- some additional mutex lock protections on spawn loot
- SetLootTier(loot_tier) and GetLootTier(), SetLootDropType(drop_type) and GetLootDropType() added to lua
2022-06-18 09:51:38 -04:00
devn00b
c8d771f481 Added Popup Messages to RepairItems and RepairAllItems. Clearing 2 TODO's. 2022-06-17 18:10:59 -07:00
devn00b
205db3bc8f Fix for issue #427. Can no longer mentor self in a group. 2022-06-17 10:33:22 -07:00
devn00b
c5be89724e Code cleanup on new gate function. 2022-06-17 03:44:35 +00:00
Devn00b
51c07aa42b Added message for when gate fails without a bind point set. 2022-06-16 18:06:56 -07:00
Devn00b
6484e62cfb Added ability to disable gate from specific zones. Update SQL. 2022-06-16 17:50:39 -07:00
Devn00b
352024d59a Fix for incorrect mail received message. Fixes issue #435 2022-06-16 14:51:44 -07:00
devn00b
5672520310 Code cleanup. Set Recall Point now checks if bind location is permitted (city zones), and cancells on combat 2022-06-15 12:57:25 -07:00
Emagi
8a6753febb In game support for adding or updating race_types database, Use /spawn set race_type race_id category subcategory model_name -- the category, subcategory and model_name are optional fields. /spawn details updated to include the race_types fields on the second page 2022-06-15 11:06:35 -04:00
devn00b
f3526e14de Rd 1 of setting up bind location checks. Run SQL Update. 2022-06-14 23:39:04 -07:00
Emagi
5be3aa11ef fix db query typo 2022-06-12 11:15:15 -04:00
Emagi
1209657776 Support for attack_type and other combat parameters in the infostruct, Fix #415 2022-06-12 11:12:37 -04:00
Emagi
6f9730c3fa removing loose quest pointer for queue step updates 2022-06-11 13:17:45 -04:00
Emagi
4271ea987c Fix #434 in relation to quest rewards causing crashes 2022-06-11 12:03:32 -04:00