Commit graph

762 commits

Author SHA1 Message Date
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 #340
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 #332 - 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 #330 - 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 #328 - 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 #152

 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 #327
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 #328 - tier 0 items display, 2h now display

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

Fix #201 - 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 #152 - 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 #326 - 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 #231 - 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 #323 - 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 #300 - 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 #322 - rule to disable house alignment requirements
RULE_INIT(R_Player, DisableHouseAlignmentRequirement, "1");

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

Fix #301 - 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 #231 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 #246
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 #305

- 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 #316
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 #2 (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 #305 - 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 #310 - no sale option supported on merchants and saved to database, see additionalfields_mar6_2021.sql

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

Fix #308 - 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 #303 - Brokers now use /frombroker instead of /itemsearch to show correct icon (money stack like merchants)

Fix #291 - 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 #1 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 #250 - 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 #302 - 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 #299 - 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 #207 - 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 #297 - 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 #305 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
Image
4663fa36c9 Spell stacking restrictions integrated using linked_timer_id and a new field, type_group_spell_id
Fix #267 - spell stacking restrictions in place

min_class_skill_req is now pulled from the database
sint32 type_group_spell_id added to spells, can use this to distinguish spells of different classes not competing (eg. wards of templar/inquisitor dont stack)
GetSpellData and SetSpellData support min_class_skill_req and type_group_spell_id
2021-02-24 12:15:10 -05:00
Image
ba0fbaee7e AddSpawnToGroup(spawn, group_id) added, AddLanguage sends update to client
Fix #292 - AddSpawnToGroup(Spawn, group_id)
Fix #296 - AddLanguage(Spawn, lang_id) now updates client with lang id update
2021-02-24 12:10:11 -05:00
Image
f06c312ddc crash fix on water region hitting a node number beyond range 2021-02-21 16:15:42 -05:00
Image
e46bc141a8 Fix "faction" SpawnSet in a LUA script 2021-02-21 16:15:30 -05:00
Image
dffca17379 Status is supported for housing now, purchase, upkeep, escrow
Fix #138
2021-02-21 16:15:16 -05:00
Image
321cd929b9 LUA GiveQuestItem supports more than one item
Fix #295 - http://cutpon.com:3000/devn00b/EQ2EMu/issues/295

GiveQuestItem(Quest, Player, Description, ItemID1, ItemID2)
2021-02-21 16:14:29 -05:00
Image
7ea4b3d51f spell concentration fix + no_interrupt in info struct
Fix #259 - spell concentration now adds/subtracts correctly, synched with client.

Fix #153 - Info struct has new UInt no_interrupt
2021-02-20 16:39:57 -05:00
Image
611456cb06 SpawnSet given more color options
Fix #265 fields added:

hair_color1, hair_color2, hair_type_color, hair_face_color, hair_type_highlight_color, face_hairlight_color, hair_highlight, model_color, eye_color
soga_skin_color, soga_hair_color1, soga_hair_color2, soga_hair_type_color, soga_hair_face_color, soga_hair_type_highlight_color, soga_face_hairlight_color, soga_hair_highlight, soga_model_color, soga_eye_color

SpawnSet(Spawn, "fieldname", "R G B")

SpawnSet also set to always be temporary unless 5th argument is set to false.
2021-02-20 16:38:28 -05:00
Image
1bff083459 fix status points and missing parry/block/avoidance fields in player::serialize add SetSpawnGroupID lua function
Fix #256 - status points function and SetInfoStructUInt can set them

Fix #273 - fields in player profile not updating

Fix #290 - add SetSpawnGroupID(Spawn, group_id) lua function
2021-02-20 16:35:25 -05:00
Image
5f657e24d6 stationary mobs should not call the runback/pausemovement 2021-02-17 06:49:43 -05:00
Image
0e86dac628 Sirius Updates #2
Fix #289 - pets don't follow
Fix #288 - FaceTarget(Originator, Target, disable_action_state) - disable_action_state defaults to true
Fix #287 - pause on hail
	RULE_INIT(R_Spawn, HailMovementPause, "5000"); // time in milliseconds the spawn is paused on hail
	RULE_INIT(R_Spawn, HailDistance, "5"); // max distance to hail a spawn/npc
Fix #286 - PauseMovement(Spawn, time_in_ms) added
Fix #261 - spawn_npcs added water_type and flying_type, temp rules added also

alter table spawn_npcs add column water_type tinyint(1) unsigned not null default 0;
alter table spawn_npcs add column flying_type tinyint(1) unsigned not null default 0;
    RULE_INIT(R_Spawn, UseHardCodeWaterModelType, "1"); // uses alternate method of setting water type by model type (hardcoded) versus relying on just DB
    RULE_INIT(R_Spawn, UseHardCodeFlyingModelType, "1"); // uses alternate method of setting flying type by model type (hardcoded) versus relying on just DB
2021-02-16 23:01:50 -05:00
Image
230e76a915 crash fix / error log when collection reward item missing in DB 2021-02-14 16:12:11 -05:00
Image
31da67dc73 bad ptr depending on certain logging 2021-02-07 22:42:38 -05:00
Image
65e7222de5 Spirit Shards, Group and Solo EXP Debt (PVE/PVP), new lua functions, rules included
xp_debt in InfoStruct changed to float use SetInfoStructFloat and GetInfoStructFloat for it

SpawnScript file is now listed in /spawn details on the last page

LUA functions added:
bool GetRuleFlagBool(category, name)
float GetRuleFlagFloat(category, name)
int32 GetShardID(Spawn)
int32 GetShardCharID(Spawn)
int64 GetShardCreatedTimestamp(Spawn)
bool DeleteDBShardID(shardid) -- using GetShardID
int32 GetCharacterID(Spawn)
bool SetAccessToEntityCommandByCharID(Spawn, CharID, command_string, val) -- same as SetAccessToEntityCommand, but using a CharID instead of player

Rules added:

RULE_INIT(R_Combat, DeathExperienceDebt, "50.00"); // divide by 100, 50/100 = .5% debt per pve death
RULE_INIT(R_Combat, PVPDeathExperienceDebt, "25.00"); // divide by 100, 25/100 = .25% debt per pvp death
RULE_INIT(R_Combat, GroupExperienceDebt, "0"); // set to 1 means we will share debt between the group
RULE_INIT(R_Combat, ExperienceToDebt, "50.00"); // percentage of xp earned to debt vs obtained xp 50/100 = 50% to debt
RULE_INIT(R_Combat, ExperienceDebtRecoveryPercent, "5.00"); // recovery percentage per period of time, 5/100 = 5% recovered (so if .5% debt, .5*.05 = .025, .5-.025=.475% debt left)
RULE_INIT(R_Combat, ExperienceDebtRecoveryPeriod, "600"); // every 10 minutes (x*60 seconds) recover ExperienceDebtRecoveryPercent
RULE_INIT(R_Combat, EnableSpiritShards, "1");
RULE_INIT(R_Combat, SpiritShardSpawnScript, "SpawnScripts/Generic/SpiritShard.lua");
RULE_INIT(R_Combat, ShardDebtRecoveryPercent, "25.00"); // recovered percentage of debt upon obtainig shard, 25/100 means 25%.  If there is .5 DeathExperienceDebt, .5*25% = .125,  .5 - .125 = .375
2021-02-07 22:19:03 -05:00
Image
761693a42a Added Monk to 360 degree avoidance per Kingdom of Sky PDF 2021-02-05 08:39:30 -05:00
Image
c83409daec Quest SetCompleteFlag now updates player the quest is tied to
Fix #276
2021-02-05 08:39:14 -05:00
Image
09f3ae4557 disabling the legends of norrath and tell on widget sign was causing rotation issue on some objects, fixed 2021-02-05 08:38:21 -05:00
Image
cd5aa30acb Fix deadlock in hateby 2021-02-04 09:12:55 -05:00
Image
c08cf0aa66 Fix crashes in /add_aa 2021-02-04 09:12:48 -05:00
Image
7cdc9b0c77 fix GetSpell on custom spell script to load the lua spell script 2021-02-04 09:12:36 -05:00
Image
08f53e621f display xp_debt in player profile 2021-02-04 09:12:23 -05:00
Image
56c2c69a40 Fix logging when there is no old process running to hang on 2021-02-04 09:12:14 -05:00
Image
6d697c0e5c remove entity commands tell and play legends of norrath from widgets and signs
Fix #184
2021-02-04 09:12:01 -05:00
Image
6f92367102 Multiple combat / functionality updates
Fix #277 - hp / power regen rewrite
Also added power_regen_override and hp_regen_override, when set to 1, you can LUA manually set hp_regen and power_regen to enforce it in code

RULE R_Spawn, ClassicRegen added.  Set to 1 means we do not have both regens when out of combat (eg. out of combat = out of combat regen + in combat regen).  In classic you only received in combat or out of combat regen individually.

Fix #278 - HatedBy now properly handled, we know when a player/spawn is being hated by other targets

Fix #275 - Parry/Riposte, Block and Dodge implemented.  Missing Block formula which will become its own issue.

Entity GetInfoStruct/SetInfoStruct, cur_avoidance, parry, parry_base, deflection, block are now floats.  Added sint16 power_regen adn hp_regen, lastly power_regen_override and hp_regen_override are int8's.

Fix #274 - Implemented stats Crushing, Defense, Deflection, Disruption, Fishing, Focus, Foresting, Gathering, Mining, Parry, Piercing, Safe Fall, Slashing and Trapping

/waypoint command now allows flushing waypoint if you do not have active target

/spawn details [x] supports behind, infront and flank

/craftitem added per EmemJr update

INSERT INTO commands SET TYPE=1,command='craftitem',subcommand='',HANDLER=526,required_status=100;

Crash fix for /add_aa hitting bad spell id

LUA Functions:

RemoveSpawnSpellBonus(spawn) - used in LUASpell script
GetSpell(spell_id, tier, custom_lua_script) - third argument added to setup custom script file

AddIconValue(spawn, value)
RemoveIconValue(spawn, value)

Fix #169 - evac now works correctly, no ghost spawn of self and you can go into combat and see damage taken/given.

Also simplified the player spawn / index map (had duplicates unneeded)

Fixed region_map_v1 throwing errors on special variable for signed vs unsigned
2021-02-01 21:46:26 -05:00
Image
b344a3f894 updated version to Sirius 2021-02-01 21:33:50 -05:00
Image
517ae12865 /bot follow id and /bot stopfollow id added
Allows to stop the bot from following you or continue following when in group.  Also fixed the default runspeed on NPC's to be set to MaxSpeed.  Should resolve any unexpected stationary npc's/bots.
2021-01-24 17:31:05 -05:00
Image
87db7f34d2 Update Bot.h 2021-01-24 17:30:08 -05:00
Image
45d38d4845 Fix disband group with depopped bot crash
Fix #272
2021-01-24 17:29:42 -05:00
Image
34d9cc7951 Fixed SpawnSet
Fix #271
2021-01-24 17:29:10 -05:00
Image
7c65970db0 Discord link updated due to invite limit on previous link 2021-01-24 17:28:36 -05:00
Image
7775ea3e66 Fix HO starter wheel pre-stage bug not honoring the abilities fields 2021-01-21 09:49:25 -05:00
Image
fb9ec032f8 Fixed deadlock caused by GetSpellSlot in against mutex MSpellsBook 2021-01-21 07:50:25 -05:00
Image
816575beca HO crash fix + temp spell e rror spam (to be changed to info later) 2021-01-20 18:12:47 -05:00
Image
742336a4c1 MakeRandomInt(min,max) and MakeRandomFloat(min,max) for LUA
Fix #266 - MakeRandomInt and MakeRandomFloat support
2021-01-19 17:32:30 -05:00
Image
6c293a46a9 Update Spawn.cpp
Fix issue #249 water swimming sinks player to ground floor
2021-01-19 17:31:51 -05:00
Image
ac1ecda564 Some equip slot checks to make sure LUA isn't abused for wrong slot numbers 2021-01-17 08:46:05 -05:00
Image
60f1130466 Some EquipmentItem locking fixes 2021-01-17 08:38:51 -05:00
Image
529a260d3e Some equipment lock fixes (not all resolved yet) plus LUA equip functions, regular mail without items works
Partial address issue #246 - normal mail can be sent/received without corrupting the packet.  'Double' 0x80 item packets need serialize support, LE was working on it for crafting, holding off fully addressing 246 with that addition.

Fix #253

bool return = SetEquippedItemByID(Entity, slot, item_id)
bool return = SetEquippedItem(Entity, slot, item)
return = false if it fails to set the item, means the slot is in use already, have to unequip first

UnequipSlot(Entity, slot, no_delete_item) -- does delete the item upon unequipping by default, otherwise set no_delete_item = true
SetEquipment(Entity, slot, type, r, g, b, h_r, h_g, h_b) -- (r = red, g = green, b = blue, h_ = highlights)
2021-01-17 08:31:12 -05:00
Image
ce7cc092d3 Wait a minute for hangup in zone instead of 30s 2021-01-17 08:28:34 -05:00
Image
13f56a07db Quest updates such as the quest flag/leaf over a kill target now displays properly
Fix #264
2021-01-17 08:27:19 -05:00
Image
38929e5c17 ModelViewer / MapEditor updated with the latest EQ2Region code / Map code utilized 2021-01-12 08:07:56 -05:00
Image
1b95c72543 Fixed doors that have a LUA script, butn o usedoor defined, they will open correctly if no usedoor function exists 2021-01-12 07:57:11 -05:00
Image
6304430e3a Quest class constructor mgmt, don't need to always create the quest 2021-01-12 07:56:54 -05:00
Image
567117054d LUA support for triggering a door and overriding via spawnscripts vs code 'always accept open door'
Fix #248
2020-12-31 17:58:36 -05:00
Image
10b1a4e8d0 allow body drops with body_drop item db entry
Fix #244

alter table items add column body_drop tinyint(3) not null default '0';
2020-12-31 17:57:53 -05:00
Image
29f797d71c Signs can spawn in with /spawn create sign
Fix #247
2020-12-31 17:56:26 -05:00
Image
7736005995 Fix some missing water detection
Fix #252

If we go outside the bounds of the region then its likely a water based area, a region debug log exists to review this behavior more.
2020-12-31 17:53:45 -05:00
Image
54db6a162e fix water in certain areas w/ no debug 2020-12-30 15:47:01 -05:00
Image
aa9f76727a Revert "Fix water in certain areas"
This reverts commit b05e4d0fb0.
2020-12-30 15:46:42 -05:00
Image
b05e4d0fb0 Fix water in certain areas 2020-12-30 15:46:07 -05:00
Image
cb6ed3a647 Ninja patch gfaydark crash cause its hitting bsp tree max size node 4294967295? 2020-12-29 21:09:46 -05:00
Image
362daada59 Immunity support updates, player mail, spell heal pct
Fix #219
Fix #220
Fix #223
Fix #243
Fix #245
2020-12-27 16:15:57 -05:00
Image
f85294d6a0 Support for /movecharacter
Fix #199
/movecharacter name zonename

    updates the characters table, moves to safe x,y,z,heading of zone
    character should be logged out, otherwise there is no point to using this command (just gets overwritten on char save).

- /castspell command updated for third argument, when set to '0' will cast as 'self' as it were the target.  eg /castspell 1234 1 0 (will cast spell id 1234 tier 1 and self cast it on your target)
2020-12-27 16:13:26 -05:00
Image
940ff104be Capricorn phase 2020-12-27 16:08:09 -05:00
Image
d4b59319ce Techwizz: Fix CMake to include boost libraries 2020-12-21 15:17:41 -05:00
Image
eaca445168 Fix crash on maintained spells 2020-12-20 21:16:02 -05:00
Image
463c6ce53a InfoStruct accessible in LUA/mutli-thread
Fix #239

GetInfoStructString(Entity, fieldname)
GetInfoStructUInt(Entity, fieldname)
GetInfoStructSInt(Entity, fieldname)
GetInfoStructFloat(Entity, fieldname)

SetInfoStructString(Entity, fieldname, value)
SetInfoStructUInt(Entity, fieldname, value)
SetInfoStructSInt(Entity, fieldname, value)
SetInfoStructFloat(Entity, fieldname, value)
SetCharSheetChanged(Player, bool)
2020-12-20 17:49:03 -05:00
Image
d9b90e1ed8 eq2world project update for LUA + debug mode (better tracing) 2020-12-20 17:47:32 -05:00
Image
d82d5cf9bd std namespace checks that need to be fixed in c++17
using namespace std is causing issues with bind, using :: to workaround for now until c++17 update
2020-12-20 17:45:03 -05:00
Image
091f962210 LUA 5.1 -> 5.4
LUA 5.4 upgrade, bit operand support, better memory management/cleanup (per LUA changelog), and more..

Fix issue #238
2020-12-20 17:44:28 -05:00
Image
96debb941c Fixed titles, make sure to source in DB update!
Fix #230
- Fixed titles, DB and code were inconsistent thus / commands did not work
- LUA Functions added:

AddMasterTitle(titleName, isPrefix) -- adds a new title all characters can use, isPrefix is 0 or 1, 1 for prefix, 0 for suffix
- returns master title id (sint32) -- if the title already exists, then it re-uses that id

AddCharacterTitle(Spawn, titleName) -- adds a character title to a spawn if not already present

- returns character title index id (sint32)

SetCharacterTitleSuffix(Spawn, titleName) -- sets the players suffix name, must have title already, otherwise AddCharacterTitle needs to be called first
SetCharacterTitlePrefix(Spawn, titleName) -- sets the players suffix name, must have title already, otherwise AddCharacterTitle needs to be called first

ResetCharacterTitleSuffix(Spawn) - empties title suffix
ResetCharacterTitlePrefix(Spawn) - empties title prefix

Example usage of some of the LUA commands:
	AddMasterTitle("Stupendously Special", 1) -- create new title for all players, is prefix
	AddCharacterTitle(Spawn, "Stupendously Special") -- add title to the current player
	SetCharacterTitlePrefix(Spawn, "Stupendously Special") -- set the characters current prefix to the newly created title
2020-12-12 08:08:36 -05:00
Image
ba80ab2078 Fixed AA commands handler ids being wrong, new lua functions
- char sheet code updated to show unassigned AA, prestige, tradeskill prestige pts

LUA Functions:

- SetInvulnerable(Spawn, true/false)
- GetAAInfo(Spawn, type)
- SetAAInfo(Spawn, type, value)
type can be, assigned_aa, unassigned_aa, assigned_tradeskill_aa, unassigned_tradeskill_aa, assigned_prestige_aa, unassigned_prestige_aa, assigned_tradeskill_prestige_aa, unassigned_tradeskill_prestige_aa
2020-12-09 22:30:03 -05:00
Image
68286ef1e2 oops removed pointless double if/else query (redundant dduhh) 2020-12-06 16:41:53 -05:00
Image
529a402379 UpdateStartingZone function changed to grab city_zone and avoid select/join query (just use already obtained values from first query) 2020-12-06 16:38:02 -05:00
Image
19e3e53a8c fixed an iterator bug with solo/group ho 2020-12-03 13:30:10 -05:00
Image
841f367139 Sanity checks to make sure Maps directory and Regions directory exists 2020-12-03 09:08:14 -05:00
Image
8532c5741b deadlock fix for mLUAHistory when SetPlayerHistory is called in LUA 2020-12-03 07:52:04 -05:00
Image
2f8d68244d Address starting_zones limitation, fix harvesting / removespawn crashes
Fix #228
Fix #229

/waypoint now allows target if you are a GM (over 100 status)
2020-11-29 22:47:48 -05:00
Image
edd993d42a Fix crash in DismissPet when owner dies
Fix #224 crash
2020-11-24 21:48:10 -05:00
Image
287307c397 if spell state is null don't process spell
Fix #226 - should mitigate at the very least, help us identify why this is happening
2020-11-24 21:47:35 -05:00
Image
effd7100c9 Added muted locking on the world maps / region maps.. in case two of the same instance load same time 2020-11-22 22:07:10 -05:00
Image
66505ccea3 RegionScripts, lava/death region support
WorldServer side of Addressing issue #203 and issue #202
2020-11-22 15:30:54 -05:00
Image
236a906e77 Updating milestone in version to sagittarius 2020-11-22 15:20:33 -05:00
Image
9f4a3fc2aa Fix a fd leak (unlikely) 2020-11-06 23:30:44 -05:00
Image
80eaa59564 fix the HO ProcessSpell call, was causing harvest/spells to call "tick" instead of "cast"
Fix #213
2020-11-06 23:30:31 -05:00
Image
9bcd1eeb47 Fix quests dialog crashing in AoM
Fix #212
2020-11-06 23:29:26 -05:00
Image
6be433e3c2 Fix runback
Fix #212
2020-11-06 23:29:08 -05:00
Image
9f92e1f5f1 Update LuaInterface.cpp 2020-11-06 23:27:11 -05:00
Image
b1b036f3a2 Fix crash on /findspawn with no arguments 2020-11-06 23:26:57 -05:00
Image
21066e2174 model viewer exe updates (ugh) 2020-11-06 17:16:42 -05:00
Image
87932815a5 restore exportregion option 2020-11-06 17:16:18 -05:00
Image
072500202f model viewer exe updates 2020-11-06 17:01:36 -05:00
Image
a5e510bf72 model viewer exe updates 2020-11-06 17:00:08 -05:00
Image
d2ff3c4c0d reintegrated water changes into model viewer 2020-11-06 16:59:58 -05:00
Image
fa76b7df01 ModelViewer EXE updates 2020-11-06 16:37:15 -05:00
Image
b18137f552 Fixed a Fontclass loading bug, using regex instead 2020-11-06 16:36:18 -05:00
Image
24599cf166 Fixed model viewer bugs for proper map orientation / scaling of objects/models
Fix #210 - incorrect pos/rotation of objects in zone
Fix #209 - incorrect scaling
2020-11-06 16:36:08 -05:00
E Spause
103859462d in_heroic_opp for spellcasting in heroic opportunities 2020-11-03 13:51:16 -05:00
Image
7b69475f92 oops forgot to close file 👎 2020-11-02 07:31:34 -05:00
Image
aa58f63164 EQ2MapDeflated support
Fix #208
2020-11-01 17:01:46 -05:00
Image
2b3988642d makefile updates to support compression in maps 2020-11-01 17:01:28 -05:00
Image
ac5227da56 version update to scorpio stage 2020-11-01 17:01:13 -05:00
Image
6ed7941ece Numerous memory leak fixes / initialization/deinitialization issues 2020-10-24 16:48:27 -04:00
Image
3332305202 Model Viewer lib/exe updates 2020-10-23 08:48:33 -04:00
Image
c1e0b5748b Misc code updates for model viewer 2020-10-23 08:48:19 -04:00
Image
32a5e3eccd added checks to see if a collision mesh exists on models, if not we don't put it in the map 2020-10-23 08:47:58 -04:00
Image
0b80b8b12a mem leak fix / cleanup 2020-10-23 08:13:11 -04:00
LethalEncounter
9554876c2f Linux compile fix 2020-10-21 21:56:07 -04:00
LethalEncounter
339071500e added /waypoint command 2020-10-21 21:21:45 -04:00
LethalEncounter
2afc04311b Merge branch 'master' of http://cutpon.com:3000/devn00b/EQ2EMu 2020-10-21 20:13:13 -04:00
LethalEncounter
65109b0d5d Glowpaths/waypoints added
Fixed spell error messages for DoF client
Fixed food/drinks for DoF client
Changed items to allow archetypes to use an item if all the classes in the archetype are allowed to use it
Added a ton of LUA functions to support various gameplay features
Loot icon only added to corpse if the corpse has loot
Class skills will now rise appropriately with level
Fixed various bugs
2020-10-21 20:12:06 -04:00
Image
0d7e64ed3b fix water creatures out of water
on npc creation need to check their model type since we memcpy in the appearance vs setting the model type
2020-10-19 22:36:26 -04:00
Image
dfa46589c8 shallow water will more easily detect now 2020-10-19 22:20:17 -04:00
Image
5c31dddfba better LoS level with human least (was way too leanient before) 2020-10-16 23:15:59 -04:00
Image
39cd2627d5 oops wrong offset, ground spawn only on Y 2020-10-16 22:45:46 -04:00
Image
9a76f80546 Remove Water checks in CheckLoS, reduce InWater target pos 2020-10-16 22:20:11 -04:00
Image
4291ab1f49 Fixes to ClassWaterOcean/2 2020-10-16 22:17:12 -04:00
Image
e2a5f86be8 Update Spawn.cpp
- Fix low water line issue, slight offset (-1.0f) also helps for groundspawns slightly out of water
- Added an 'eye level' to line of sight
2020-10-16 16:31:47 -04:00
Image
601a97dc62 model viewer exe updates 2020-10-14 22:30:36 -04:00
Image
0dae7dccb7 Model viewer changes to export region maps 2020-10-14 22:30:22 -04:00
Image
9290bceb60 Code changes for region maps (Water!), additional lua functions
Issue #71

- Region Maps support water!  Later on to add lava/no fly/other potential regions
- new LUA functions:
* InWater(spawn)
 * HasControlEffect(spawn, type)
* GetBaseAggroRadius(spawn)
* GetAggroRadius(spawn)
* SetAggroRadius(spawn, distance, override) - override true sets base to this, otherwise its temporary and doesn't impact GetBaseAggroRadius
* SetDeity(spawn, value)
2020-10-13 23:52:55 -04:00
LethalEncounter
cda936ad3f Fixed bug with missing #include for Linux compiles 2020-09-25 21:58:36 -04:00
LethalEncounter
274ec84b47 Merge branch 'master' of http://cutpon.com:3000/devn00b/EQ2EMu 2020-09-24 19:53:56 -04:00
LethalEncounter
09bf3a3378 Fixed bug #3 (World crashing when port already in use) - will gracefully exit
Changed string* WorldDatabase::GetZoneName to string WorldDatabase::GetZoneName, this will prevent memory leaks when people forget to delete the memory
Changed ZoneScripts to use the one in the ZoneScripts directory if the lua_script field in the zones table is empty, but the zonescript file exists on disk, warning is displayed it World
2020-09-24 19:33:01 -04:00
image
36ff32c676 fixed lua stack 2020-09-24 16:11:42 -04:00
image
ca02320a93 update version to libra 1 2020-09-24 15:52:10 -04:00
image
d5f670fef2 reset function stack for LUA 2020-09-24 15:52:01 -04:00
image
0a1e8a7c12 Added MovementLoopAddLocation back from its previous removal in change ebddaba763 2020-09-24 08:19:30 -04:00
image
0f972e7670 make sure copied spell doesn't call customspell 2020-09-23 15:43:34 -04:00
image
f42e6f08de CustomSpell addition, customspell function: Create custom spells within themselves
Spells/Fighter/Crusader/Shadowknight/Painbringer.lua

function customspell(Spell, Caster, Target)
	SetSpellData(Spell,"name","Painbringer 2.0!")
end

sets name to Painbringer 2.0! instead of 'Painbringer'
2020-09-23 13:45:29 -04:00
image
9a78416ac6 CustomSpell additions SetSpellDisplayEffect(idx, field, value) and GetSpellDisplayEffect((idx, field) added
- Allows custom spell_display_effects
- Spell examine is now unique to the spell cast, we have to create a unique spell id that is temporarily used by the custom spell to accomplish this

eg.

Spell = GetSpell(90044, 1)
SetSpellDisplayEffect(Spell, 0, "description", "Applies Painbringer.  Lasts for millions of seconds!")
CastCustomSpell(Spell, Player, Player)

result: https://cdn.discordapp.com/attachments/684934458738212962/758297380302225418/unknown.png
2020-09-23 08:49:36 -04:00
image
e7d3c49319 GetSpellDataIndex added third argument to grab first/second field 2020-09-22 23:11:58 -04:00
image
c9b3d3aa1d SetSpellDataIndex and GetSpellDataIndex added to work with custom spell functionality
eg. modify painbringer spell in an item to do more damage than default 3,5 for indexes 2,3
90044 |    1 |           2 | INT        | 3     | 0      | 0
90044 |    1 |           3 | INT        | 5     | 0      | 0

Spell = GetSpell(90044, 1)

SetSpellDataIndex(Spell, 2, 45)
SetSpellDataIndex(Spell, 3, 50)
CastCustomSpell(Spell, Player, Player)
2020-09-22 23:02:48 -04:00
image
be39bb16a3 fixed crash bug running process when we should be removing the dead client 2020-09-22 23:01:25 -04:00
LethalEncounter
6ac60284b3 Merge branch 'master' of http://cutpon.com:3000/devn00b/EQ2EMu 2020-09-22 22:12:58 -04:00
LethalEncounter
c61588803c Added Pre-boat Lore narration (books) to the Boat Tutorial zone. 2020-09-22 20:33:50 -04:00
LethalEncounter
e486b1acc9 Fixed bug with zoning crashing the 283 client 2020-09-20 22:41:03 -04:00
LethalEncounter
81bd804af2 Fixed bug that caused the server to not be compilable on Linux 2020-09-20 21:38:18 -04:00
LethalEncounter
2e903f5f0b Fixed death sounds if the client was lower than the underworld of the zone (we never set it properly) 2020-09-20 14:50:53 -04:00
LethalEncounter
3ea7ffebb6 Merge branch 'master' of http://cutpon.com:3000/devn00b/EQ2EMu 2020-09-19 20:54:44 -04:00
LethalEncounter
ebddaba763 Tutorial instructions for the Far Journey zone
Standardized the message numbers and will send the correct one based on client version
Fixed /tell to not assume that both clients were the same version
Tons of quest fixes
Fixed various spawn bugs
2020-09-19 20:38:00 -04:00
image
a54d7a4dc2 Fix a queued spell crash with custom spells 2020-09-10 12:44:12 -04:00
image
679c1bd779 Player Error log when a item is used but the display charges is 0 2020-09-10 12:16:14 -04:00
image
c21ee782ec Stop potential leak if CastCustomSpell is cut short 2020-09-10 12:12:36 -04:00
image
2efb43d1f1 Update Spells.cpp 2020-09-10 07:39:38 -04:00
image
9ebe3fbec0 Spell Copies will pull spell effects / lua data also -- just in case 2020-09-10 07:38:04 -04:00
image
913f72b5ba Complete LUA Custom Spell Implementation
Complete Fix #196 - need to rebuild the SpellData structure so as to not mess with the base Spell's memory.  Also delete the inner spell when we RemoveSpell since its only a one-off.
2020-09-10 07:26:32 -04:00
image
900a32b259 LUA additions
Fix #196 - LUA custom spell support (for things like item scripts)
Fix #195 - Alignment LUA functions
CastSpell now has a cast_time argument extended to it
2020-09-09 23:54:23 -04:00
image
ff02b05cfd Merge branch 'MoreLuaDebug' of pboyd04/EQ2EMu into master
looks good
2020-09-07 22:16:34 +00:00
Patrick Boyd
6785c8d2d5 Add more LUA debug functions 2020-09-07 16:22:02 -05:00
Patrick Boyd
dd157479b9 Add CMake for root + Login/WorldServer 2020-09-06 13:18:17 -05:00
image
0701fb21a9 restore OfferQuest changes accidentally removed.. 2020-09-05 23:05:00 -04:00
image
897df23280 Fixed async query, added new reason string to remove spell function in LUA
- Fixed a async query for npc_appearance on skin_color to use insert param
- spell 'remove' function now has third parameter 'reason', canceled, expired, purged, death and pet_death
2020-09-05 22:31:04 -04:00
Patrick Boyd
2a3baec376 Add debug prints to OfferQuest + fix bug in Jacques spawn script 2020-09-04 21:00:33 -05:00
image
b3ff45314c custom spawnset result message for skin_color 2020-09-04 08:05:15 -04:00
image
81aa1f23e3 LUA SpawnSet and SpellHeal updates
SpawnSet(NPC, "skin_color", "255 0 0", false, true)

skin_color takes in 3 arguments as a string, R G B
two new parameters after value:
- no_update, when set to true (default false, its an inverse flag of send_update) we will not send update of spawn changes
- temporary_flag, when set to true database is not update (default false again to keep compat with LUA scripts).

SpellHeal(Spawn, "heal", min, max, NPC, 0, 0, "New Spell Name")
2020-09-04 07:31:07 -04:00
image
d13f594c8c Merge branch 'ReduceCompilerWarnings' of pboyd04/EQ2EMu into master
appreciate the fixes, thanks!
2020-09-03 21:07:35 +00:00
Patrick Boyd
3078e12938 Reduce compiler warnings in login server 2020-09-03 14:43:40 -05:00
image
5957ec2042 Fix crash on zoneserver shutdown
Fix #179
2020-09-03 13:19:50 -04:00
image
b908936a6e crash fix with CastProc on dead spell ptr
Fix #186
2020-08-31 23:17:15 -04:00
image
dd01a9ce4a Fix locking release for updating logq 2020-08-31 21:57:54 -04:00
image
7ae7d637a3 Protection to group members and also heroic opportunities (avoid crashes)
Fix #185
2020-08-31 21:57:42 -04:00
image
a41aa0fa6d SetQuestsRequired is now mutex protected, trying to prevent crash on deconstructor 2020-08-30 17:48:46 -04:00