Commit graph

1523 commits

Author SHA1 Message Date
devn00b
86f2f9185b Removed IRC/Patch folders from windows project. 2022-08-21 20:12:51 +00:00
Emagi
7271e470f3 - Range attack now has strength based damage added
- Fixed "Ranged" skill-ups instead of damage type (piercing, slashing so on)
- Fixed skill ups not occurring if you are behind target
2022-08-21 06:49:15 -04:00
devn00b
ec47bba26a Made console message about typing help display to windows users only since it only works on windows. 2022-08-21 04:46:56 +00:00
Emagi
dc8b469de3 - Strength damage now applicable to both low and high damage
* New rules:
 * R_Combat, StrengthNPC = 10
 * R_Combat, StrengthOther = 25
 * these are dividers, player_strength / 25 (or for NPCs a divide by 10), minimum value of 1 allowed
- ChangeLevel now properly called inside AddXP when player level changes (this is required!) else skill ups do not occur.
- Added weaponry to skillups (piercing, slashing, so on) since it wasn't skilling up
- Fixed crash upon not being able to load a recipe (if someone were to remove recipes from the DB that a character needed)
2022-08-20 07:52:10 -04:00
theFoof
27cc0415c0 Merge branch 'master' of https://git.eq2emu.com/devn00b/EQ2EMu 2022-08-18 23:43:47 -04:00
theFoof
45711bf9a6 Client::CreateMail was memsetting over std::strings
Loaded new recipe tables into current tradeskilling code
 -The RecipeID foreign key in the character_recipes tables needs to be updated to new `recipe` table
 -There is extra data in the recipe tables not being utilized due to current code constraints/missing items etc
 -Fixed an issue with the Recipe(Recipe*) constructor and level requirements not being loaded into recipe_books for scribe checks
 -Made character recipe/book updates async
2022-08-18 23:42:46 -04:00
Devn00b
1922ca362c Removed unused patch server code. 2022-08-18 20:26:39 -07:00
Emagi
d01cf3e2cf Fix #269 - Support for Player Inspection /inspection command of Equipment and Appearance Items 2022-08-17 13:00:08 -04:00
Emagi
57cd568e69 Fix #441 - house lore support, mapping item ids to spawn and spawn id to to item id.
Also fixed a crash when placing a item and there is no item script assigned to the item
2022-08-14 14:27:07 -04:00
Emagi
60928d2e0c Fix #448 - Scroll/Recipe scribing fixes
* Spells now have level and class checks
  * Recipes now have class checks (already had level checks)
  * Recipes now fallback to the item recipebook info to populate players recipes from a recipe book if the recipe book is not properly configured by book name
Fix #396 - Implemented subspawn tables so we can update specific types of spawns, in this case collectors when we remove the red book
Fix #205 - ground spawns now can have random heading assigned or forced heading
alter table spawn_ground add column randomize_heading tinyint(3) unsigned default 1;
randomize_heading = 0 uses base heading in the spawn location
randomize_heading = 1 means all spawns will have a random heading 0-360 degrees
Fix #118 - Knowledge sorting / spell book updates now correctly work.
  * Down/Across patterns now supported (zig-zag was default)
Fixed a crash when a spawn spell is interrupted and then the spawn dies to a melee attack could cause memory corruption removing spell timer pointers
Startup opcode warnings are now grouped by versioning to allow easier troubleshooting, DoF uses 546 and AoM 60085, thus most opcodes warnings are not relevant to supported cases
Fixed a regex crash on /findspawn
2022-08-13 10:40:04 -04:00
Devn00b
742f91c50f Removed IRC system. It was no longer used. 2022-08-10 17:46:04 -07:00
Emagi
562e914f26 fix %I64u to %llu 2022-08-10 13:20:40 -04:00
Emagi
f87bcb22be quest read lock vs lock 2022-08-09 20:40:57 -04:00
Emagi
4b12989de2 Maybe, why not? 2022-08-08 17:09:31 -04:00
Emagi
559c5b6ee9 Fix quest reward acceptance when there are no items to be accepted, dialog won't keep queueing 2022-08-07 06:27:12 -04:00
Emagi
1068849ef8 Fix #451 - basic pvp mitigation / mitigation integration
Fix #458 - fixed memory leaks in lua quest step location/zone loc functions and also languages memory cleanup

New Rules:
       RULE_INIT(R_PVP, PVPMitigationModByLevel, "25"); // gives a bonus to mitigation for PVP combat to offset the percentage level * mod (default 25)
       RULE_INIT(R_Combat, EffectiveMitigationCapLevel, "80"); // level multiplier for max effective cap, level * 80 (default)
       RULE_INIT(R_Combat, CalculatedMitigationCapLevel, "100"); // The cap to calculate your mitigation from is [level*100].
       RULE_INIT(R_Combat, MitigationLevelEffectivenessMax, "1.5"); // ratio victim level / attacker level for max effectiveness, when victim is higher level cap can reach 1.5
       RULE_INIT(R_Combat, MitigationLevelEffectivenessMin, ".5"); // ratio victim level / attacker level for min effectiveness
       RULE_INIT(R_Combat, MaxMitigationAllowed, ".75"); // percentage max mitigation allowed, eg. 75% of damage can be mitigated max in PVE
       RULE_INIT(R_Combat, MaxMitigationAllowedPVP, ".75"); // percentage max mitigation allowed, eg. 75% of damage can be mitigated max in PVP

InfoStruct now has two unsigned int16 values that offer mitigation percentage values in integer formats, eg 155 = 15.5% mitigation
mitigation_pve
mitigation_pvp

Updated formulas to use effective_level (mentor/actual level) vs just player level
* Dodge
* Block

Bug fix for crash in non existent quest being called for /modify quest advance
Bug fix for improperly trying to stack items that are not stackable (count of 0 items, stack count of 1)
Bug fix for inventory updates, typically with overflow slots and after deleting items from inventory (packet count needs to be updated with current size in PlayerItemList::serialize)

Collections/Rewards:
- Display is now one reward at a time
- Display of award now only allows the reward cash, status to be provided once
- Database persistence of unaccepted rewards cross-zone with two new tables
- Selectable collections now checks if either field provided in /accept_reward is a potential item id (this is likely due to a client versioning)
2022-08-06 18:22:29 -04:00
devn00b
3cd6dcc16a EXE Update. 2022-07-31 03:53:15 +00:00
devn00b
72e9c0252c Moved SetCityZone to WorldDatabase::LoadZoneInfo. 2022-07-31 03:49:36 +00:00
devn00b
4e43909784 Windows EXE Update 2022-07-30 21:07:21 +00:00
devn00b
e651e2cf0f Fixes for crash on windows with UTF-16 NPC names (should never happen) and Fix for high CPU usage on windows with constant loading zones 2022-07-30 21:06:28 +00:00
Devn00b
e7cf104457 Remove useless script folder 2022-07-25 14:34:12 -07:00
Devn00b
a52cb8037d Script name change to permit download 2022-07-25 14:21:23 -07:00
Emagi
0e00165195 - Fix #453 PlayFlavor re-design
PlayFlavorID(NPC, type, id, index, Player, language)
Set Player to 'nil' to send to all clients, specifying a Player will make it send ONLY to that player
New command /reload voiceovers added
- versioning updated to 0.9.4-aquarii
- Fix #454 Support for SendShowBook to have language, items field 'book_language' added
- Some debug log cleanup
2022-07-24 22:19:45 -04:00
Devn00b
17eb8e0d23 Added ability to search broker for Sales Displays 2022-07-20 23:14:22 -07:00
Devn00b
364f9ff210 Added ability to search broker for tinkered items. SQL update needed. 2022-07-20 18:12:03 -07:00
Devn00b
828b080559 Added ability to search 'Tradeskill' items from the broker 2022-07-20 00:26:34 -07:00
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
0333ee64f8 previous struct updates forgot to put up 2022-07-16 09:30:10 -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
7e5562da32 DB update query just for reference 2022-07-15 07:59:42 -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
5a0b51772c Merge branch 'master' of https://git.eq2emu.com/devn00b/EQ2EMu 2022-07-07 14:54:22 -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
Devn00b
7115537c51 Fix Maiden's Gulch Rescue of The Sage folder name for windows 2022-07-05 15:40:02 -07:00
Devn00b
07feaa7325 Fix lua file/folder names to windows acceptable standards. Use of : in folder/file names is forbidden on windows 2022-07-05 15:36:23 -07: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
74d2358c86 missing column for character items 2022-07-02 21:28:41 -04:00
Emagi
258ac04362 add cure test script 2022-07-01 18:16:08 -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