Commit graph

615 commits

Author SHA1 Message Date
Image
cf540d1201 fix /flag to show correct admin status 2021-04-10 16:10:04 -04:00
Image
e61443e195 fix effective level to match new level when you gain a level, unless mentored 2021-04-10 16:09:53 -04:00
Image
1bd2cbf596 Code updates for auriga
RULE_INIT(R_Player, MentorItemDecayRate, ".05"); // 5% per level lost when mentoring
mentoring now lowers the item stats although display needs work to display lowered stat value (higher stat value)

reordering some of the mutex locks for info/pos/vis to avoid deadlocking (still a few more to address)
Added StopMovement(Spawn) for NPCs in a movement loop, purges movement loop and stops npc at position
indestructable items supported
appearance items limited to appearance only

makeadmin charname status added to console commands (windows)

fixed "used" to allow removal of an item without crashing the world.  The function can return a value less than 0 to omit from calling RemoveItem or decrementing the charges by code.  Having no return (0) or any return larger than 0 means we will try to code decrement the item if it is still there.
2021-04-08 08:25:27 -04:00
Image
0e9c696de6 spell crash fix when spell can't be found (happened on drink but we dont know what spell) 2021-04-08 08:20:45 -04:00
Image
5e623860d4 Additional tradeskill/craft crash fixes, item db rework, source in new items db
First stage of work in issue 
2021-04-03 23:48:29 -04:00
Image
6003016c5b Fix tradeskill crash with item id 0 in recipe components 2021-04-02 17:31:20 -04:00
Image
965356a69f Fix windows dead locking 2021-04-02 17:31:00 -04:00
Image
261c2b75be number of spell casting/display behavior fixes and prototype mentor option for group members
Start of work for /mentor and /unmentor issue  - set effective level based on targeted group member, right clicking them and mentoring, after you can stop mentoring.  The base stats and resistance stats revert to the lower level at this time.

spell fixes:

- secondary targets working for casting heal spells, recast is more or not working correctly now..
- overrides existing spell when there is a duration of time or trigger count to the spell
- doesnt prematurely show the icons available (eg. you cancel a spell then it pops up and you cant reuse or it starts a recast timer when it shouldnt)
- doesnt reset the recast timer (sometimes giving double the time to cast)
- unlocking a spell when all spells locked, no longer occurs
2021-04-01 00:10:04 -04:00
Image
f4ca20966f 0.9.2 auriga version set 2021-04-01 00:06:45 -04:00
Image
0737a0fc5e one of those days.. 2021-03-30 10:36:36 -04:00
Image
a5c66e703a Update LoginServer.cpp 2021-03-30 08:50:58 -04:00
Image
ff773401f0 Forgot one change 2021-03-30 08:44:14 -04:00
Image
ca26654639 low level network protection in TCP layer, fixed internal world address to properly accept local vs remote connections when set 2021-03-30 08:40:54 -04:00
Image
e0f8d03773 some broker display fixes / charge and use fixes
Fix  - fix charge and use to correctly decrement in inventory and/or remove item.  Should never call RemoveItem or DeleteItem in LUA use of an Item.

    Items with a charge count (not a physical stack of items) will now count down their charges to 0 and display 'This item is out of charges.'
    Items with an actual stack amount (eg. stack count is larger than 1) will remove an item with each 'use' down to 0 which removes the final item in the stack.
    display_charges is no longer required for the "use" function to be called (before we were decrementing display charges when the "use" function was called, which was always after 1). Now rely on the item->details.count

Fix  - broker display issues (some not all)

    tier 0 items do not display
    2h item types do not work
    Max charges when you buy an item with a charge count
    Additional missing items seen on broker: Gust of insight... min_skill and max_skill is a range of 0-6 from client->server, all the way back to classic. Classic UI has it, obselete is 0, 6 goes to unusable (red) for the player. The items skill items to not match this range, they are actual skill values.
    1h item types show both 1h/2h weapons (now 1h and 2h are separated)
2021-03-28 21:36:03 -04:00
Image
1889c95dd1 using spell_type not target_type for the new group designation when 'single' cast functions are used
Fix 

 alter table spells modify column spell_type enum('Unset', 'DD', 'DoT', 'Heal', 'HoT-Ward', 'Debuff', 'Buff', 'CombatBuff', 'Taunt', 'Detaunt', 'Rez', 'Cure', 'Food', 'Drink', 'Root', 'Snare', 'GroupTarget') NOT NULL default 'Unset';

update spells set target_type=2, spell_type='GroupTarget' where name='Divine Awakening';
2021-03-25 12:23:11 -04:00
Image
bbef23f125 Fix login server delay in accepting another login attempt
Fix 
2021-03-25 09:15:22 -04:00
Image
4c9197f54e Broke fixes, 1h/2h equip fixes, swapping equip works, more crash fixes
Partial Address Issue  - tier 0 items display, 2h now display

Fix  - can't equip a 1h while 2h is equipped.  Swapping equipment slots now works for both combat/appearance equip.

Fix  - when scribing, new tier spell will display on hover over of spellbook or hotbar

Fixed a crash with spell conflict doing double delete on lua spell

Fix  - addressed divine awakening, via new target_type (10) SPELL_TARGET_ALLGROUPTARGETS - this will call cast for each player instead of just the direct target
righteousness and decree now supported as a group target AE

Better connection closure from client to world on camping/zoning out
2021-03-25 09:14:35 -04:00
Image
a972bf9325 This is to capture a rare one off event 2021-03-25 09:08:37 -04:00
Image
2a78eec110 remove bad release of the client list, restored dead spawn to the chest
found the real bug / crash with a fresh start
2021-03-24 06:53:14 -04:00
Image
e6ca3c5253 AddDeadSpawn being called by chests was causing a crash when clients /camp 2021-03-23 23:18:24 -04:00
Image
5656ad22ce Disabling buy item supported, few crash fixes
Fix  - buy from merchant can have the 'buy' button disabled
function buy_display_flags(Item, Spawn)
    return 128
end

charactersProperties -> character_properties

CREATE TABLE `character_properties` (
  `charid` int(10) unsigned NOT NULL DEFAULT 0,
  `propname` varchar(64) NOT NULL DEFAULT '',
  `propvalue` varchar(64) NOT NULL DEFAULT ''
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
drop table charactersProperties;
drop table charactersproperties;

- some misc crash fixes, sql escape issue, etc.
2021-03-23 22:08:29 -04:00
Image
82ccc26642 Item/Merchant/Scribing/Inventory Updates
Fix  - item_description function which returns a string added to ItemScripts.  Can allow setting of specialized red text, eg "You already know this language.".  Completes 231 with the other ItemScripts support (item_difficulty) and scribing support
which includes a new rule:
RULE_INIT(R_Spells, RequirePreviousTierScribe, "0"); // requires step up apprentice -> apprentice (handcrafted?) -> journeyman (handcrafted?) -> adept -> expert -> master

Fix  - check in main equipment (0) slots for bags only which addresses the appearance overriding bags issue.
2021-03-21 08:18:38 -04:00
Image
9f9d61fbe4 Login Server updates
- DoF and classic clients will auto login after char creation instead of getting stuck at character select
- model_color and soga_model_color properly tracked on login server
- Removed ServerOP_WorldListUpdate code (revisit at a later time)
- Login account flag fix, sets Veteran Bonus under 'Select Character' yellow (vs greyed out), adventure/tradeskill bonus 200%
- Fixed disabled flag in login_worldservers not working
- Added login_bannedips table
- Both are checked periodically against the database with logged in worlds
2021-03-21 08:12:30 -04:00
Image
ad58cd85ec Appearance equipment, content feature requests, fixed ability to delete mail and see item icons in the main list if stack is 0
Fix  - appearance inventory saved to database, can equip and overrides normal equipment.  Also fixed appearance properly updating (it wasn't sent other than in zone in primarily)

Fix  - rule to disable house alignment requirements
RULE_INIT(R_Player, DisableHouseAlignmentRequirement, "1");

Fix  - defines for root/snare as spell types
#define SPELL_TYPE_ROOT         15
#define SPELL_TYPE_SNARE        16

Fix  - loot_global needs a lua_script to access the ZoneScript and call function loot_criteria(Spawn)

loot_criteria_zone(Zone, Spawn, LootTableID, MinLevel, MaxLevel)
loot_criteria_racial(Zone, Spawn, LootTableID, MinLevel, MaxLevel)
loot_criteria_level(Zone, Spawn, LootTableID, MinLevel, MaxLevel)

    Spawn: the target of the loot table to be added
    LootTableID: the current loot table id we are checking to add to the Spawn
    MinLevel/MaxLevel: Criteria from the global loot table that is handled via code (eg. always add if minlevel/maxlevel is 0, otherwise it is based on the Spawn's level)

    return value of 0 will skip the provided LootTableID(int32) despite the database MinLevel/MaxLevel checks
    return value of 1 will always include the loot table id on the Spawn list, even overriding if the min/max level check fails in the code

Issue  partially addressed, added support to override item_difficulty in the item script based on the arrow color (3 is white):
function item_difficulty(Item, Spawn)
	return 3
end
2021-03-18 09:26:05 -04:00
Image
af892c5609 Fix sites to have HTTPS for git/wiki links 2021-03-18 09:21:47 -04:00
Image
88084390bb PDB and EXE updates for Movement Loop Generator 2021-03-16 16:12:11 -04:00
Image
1647348d1a Update Form1.Designer.cs 2021-03-16 16:11:56 -04:00
Image
3a63ab0f7c Changed movement loop editor from streamreader to filestream so that logs can be opened while game is running 2021-03-16 16:11:46 -04:00
Image
0c338ee6ff working mail listing, item retrieval, send mail (with items)
Fix 
2021-03-14 17:28:28 -04:00
Image
b1a4dffb40 Update region_map_v1.cpp 2021-03-14 16:56:46 -04:00
Image
ddeb504f89 Update EQStream.cpp 2021-03-14 16:56:42 -04:00
Image
0b1948218c Fixed a packet struct bug with item types having a set state of false/true to support IF conditions in packet struct xml
- Helps fix Tradeskills and Mail Items
2021-03-14 16:55:12 -04:00
Image
22ef3e0557 Complete persisting of buff spells cross zone
Complete Fix 

- Other players pets (grouped) will persist buffs, non-grouped direct target also persist
- Save spell state added to persist beyond the self player since targets/spells can evolve rapidly with other players/npc/pets in the mix, resulted in two new rules:
	RULE_INIT(R_Spells, PlayerSpellSaveStateWaitInterval, "100"); // time in milliseconds we wait before performing a save when the spell save trigger is activated, allows additional actions to take place until the cap is hit
	RULE_INIT(R_Spells, PlayerSpellSaveStateCap, "1000"); // sets a maximum wait time before we queue a spell state save to the DB, given a lot can go on in a short period with players especially in combat, maybe good to have this at a higher interval.
2021-03-13 09:52:00 -05:00
Image
6a95d4657f Restored spell queueing support
Fix 
2021-03-10 22:28:39 -05:00
Image
c989aaea1b few locks just in case 2021-03-10 08:50:41 -05:00
Image
3d3ea08dde Albireo Update (persisting spells cross zone between group members, self pet, and more)
- /spawn details now includes the stat / base stats (STR/AGI/STA/INT/WIS) of an entity (NPC/PET/Player)
- SetInfoStructUInt and GetInfoStructUInt now support interaction_flag, when not set we will default to 12 which is looking at other players nearby.
- Fixed NPCs / Pets having spell bonuses, base stats updated (sta/str/agi/wis/int)
- Deprecated GiveImmediateQuestReward
- With spell persistence (groups, direct target and self pet) added new rule options for cross zone buffs:
	RULE_INIT(R_Spells, EnableCrossZoneGroupBuffs, "0"); // enables/disables allowing cross zone group buffs
	RULE_INIT(R_Spells, EnableCrossZoneTargetBuffs, "0"); // enables/disables allowing cross zone target buffs
2021-03-10 08:36:46 -05:00
Image
92bd67d314 Forgot to set FizzleDefaultSkill rule 2021-03-10 07:53:03 -05:00
Image
49bb456594 Send biography packet only if the biography is set 2021-03-10 07:52:50 -05:00
Image
0cb26e084d Fixed the camel case function for classes to upper case the first character AFTER setting to lower case 2021-03-10 07:52:04 -05:00
image
81491f4b33 Merge branch 'merchantfixes' of TesterOrg/EQ2EMuTestBranch into master
Appreciate the fix, 0xFF is ok for server side, client needs 0xFFFF for certain quantity fields to blank out the quantity I guess is the difference to note.
2021-03-09 12:15:08 +00:00
Joseph Re
f58dbc90eb treat >0xFF as infinite quantity instead of >0xFFFF 2021-03-08 23:35:19 -06:00
Image
963d40521e Albireo Stage First Update
Issue  - partially implemented cross zone spells.  Buffs will cross with you for self, group spells can re-attach if the caster enters the zone first.  Pet spells will recreate the pet, but name and other buffs to the pet do not persist cross zone.  WORK IN PROGRESS!!

Fix  - no sale option supported on merchants and saved to database, see additionalfields_mar6_2021.sql

Fix  - mastery skills all update now and relate to fizzle (ordination, ministration, etc)

Fix  - fizzle support added
	RULE_INIT(R_Spells, EnableFizzleSpells, "1"); // enables/disables the 'fizzling' of spells based on can_fizzle in the spells table.  This also enables increasing specialized skills for classes based on spells/abilities.
	RULE_INIT(R_Spells, DefaultFizzleChance, "10.0"); // default percentage x / 100, eg 10% is 10.0
	RULE_INIT(R_Spells, FizzleMaxSkill, "1.2"); // 1.0 is 100%, 1.2 is 120%, so you get 120% your max skill against a spell, no fizzle
	RULE_INIT(R_Spells, FizzleDefaultSkill, ".2"); // offset against MaxSkill to average out to 100%, default of .2f so we don't go over the threshold if no skill

Fix  - Brokers now use /frombroker instead of /itemsearch to show correct icon (money stack like merchants)

Fix  - implemented selling for status, no buy back, city merchant type (set merchant_type in spawn to 64) allows selling for status
2021-03-06 17:32:00 -05:00
Image
db6f98058d crash fix on quests due to uninitialized value 2021-03-01 09:37:27 -05:00
Image
2b1f07ebb0 attempt to fix duplicate quest message updates 2021-03-01 09:37:13 -05:00
Image
bd7ce48636 Versioning updated to 0.9.1 albireo 2021-03-01 09:36:56 -05:00
Image
941fa4dd77 cleanup on QuestStep constructor 2021-02-28 09:07:49 -05:00
Image
8d943b8c42 fixed collection items throwing a no quest found error in logs 2021-02-28 09:07:35 -05:00
Image
276dd356b6 disabled paperdoll, causing memory corruption to load the packet data 2021-02-28 09:07:25 -05:00
Image
80bb342256 End of Sirius Feb 2021 Stage
Fix  - Added a caching of state to send a single shoot of visual state.  When setting visual states for chests it was causing opening/closing of the chest if you were not already in range of it.  See SendStateCommand and ProcessStateCommands in client.cpp for more

Fix  - Integrated GiveQuestItem into the Client::DisplayQuestComplete / Client::AcceptQuestReward process.  There is support for temp rewards/status/coin.
LUA Functions added, ONLY CALLED BEFORE GiveQuestItem, NOT to be used with GiveQuestReward
SetStatusTmpReward(quest, status)
SetCoinTmpReward(quest, coin)

- Also addressed quests not updating properly in the journal where sub tasks would completely disappear

Fix  - AoM client Addressed hot swapping a bagged item to equipment slots poofing the item.  Note: DoF client seems to have inventory issues of its own, those are not addressed here

Fix  - Chests have new rules for exposure times
	RULE_INIT(R_Loot, ChestUnlockedTimeDrop, "1200"); // time in seconds, 20 minutes by default, triggers only if AllowChestUnlockByDropTime is 1
	RULE_INIT(R_Loot, AllowChestUnlockByDropTime, "1"); // when set to 1 we will start a countdown timer to allow anyone to loot once ChestUnlockedTimeDrop elapsed
	RULE_INIT(R_Loot, ChestUnlockedTimeTrap, "600"); // time in seconds, 10 minutes by default
	RULE_INIT(R_Loot, AllowChestUnlockByTrapTime, "1"); // when set to 1 we will allow unlocking the chest to all players after the trap is triggered (or chest is open) and period ChestUnlockedTimeTrap elapsed

Fix  - Prevent stacking of food / drink effects.  Also added spell_type Food and Drink to enumeration.  When these are set it tells the server these are unique effects to food/drink and cannot stack with other consumed items.

In conjunction with this fix, auto consume is implemented (while in zone).  Flips the auto consume on/off option as well as 'yellow tints' the background behind the auto consume options when 'on'.

Issue  has been created to allow 'cross zone' of maintained effects / effects on the player.

- Few additional fixes:
  *  if you remove an item from inventory and there is a dialog screen, you can now close it (see last parchment in Taint quest before main boss mob, it wasnt letting you put the parchment away).
  * equipment serialized to the player now always includes the player pointer, this was causing menu item information for food/drink to be omitted on zone-in
  *

- Few crash fixes, Deleting spells on players from lua_interface when zoning, protection on QuestStep instantiation, we recreate all the ids and locations so as to not be dependent on the prior step should it be deleted
2021-02-28 07:57:36 -05:00
Image
fa79be306f Crash fix for SpellProcess 2021-02-26 11:52:29 -05:00