Fixes#44
Database class now has the ability to asynchronously run queries that don't tie up the process threads.
This is being utilized right now for character saves as that seems to be the slowest process. However query id's (and potentially extension of such) can allow anything to be asynchronous -- and later on even add return vars.
Fixes#55 - check on if an account exists or not before attempting an account creation (we still rely on the DB to do the password comparison as its own query)
Fixes#49
Added group triggers to disarm chest traps.
Rule R_Loot, ChestTriggerRadiusGroup added (by default 10.0f). Outside radius group members will not be impacted
Radius is now built into the GetDistance formula, it also is based on f32/32.0f per recommendations of peak (Thx peak!)
Added combat range as a rule: rule_manager.GetGlobalRule(R_Combat, MaxCombatRange)->GetFloat()
Fixes#53
- Added rule R_Loot, AutoDisarmChest enabled (1) by default. Setting to 0 will mean you must right click and disarm chest, clicking the chest will not auto disarm and instead always trigger the trap
Fixes#47
Fixed spawn combine save, was previously crashing (RemoveSpawn called multiple times) and also giving the wrong spawn location id as well (in the message output to the client)
Fixes#54
Base chance to resist interrupt was 30%, increased to 50%. Maybe later on a level restriction to reduce when you are much higher level than your target.
Fixes#34
- LoginServer and LoginConfig blocks now break out if we enter a new block (previously the ini was read all thru)
- Upon a failure from login server, world server will attempt to reload the ini (you can change account name/password on the fly if it is wrong)
This includes creation of a new parameter in the LoginServer.ini, AccountCreation in the LoginConfig block can be 0 to disable, by default it is 1 (or if the field is not defined, its considered true)
Fixes#51
Fixes#10
LS database:
- md5 no longer used, now use sha2('password',512) instead for mysql/mariadb
- account table passwd expanded to 256 chars
- login_worldservers password field expanded to 256 chars
manual update:
\u eq2ls
alter table account modify column passwd varchar(256) not null default '';
alter table login_worldservers modify column password varchar(256) not null default '';
Fixes#24 - chest traps and the ability to disarm is implemented. Can restrict by zone (or applicable to all zones using -1), min and max chest difficulties.
1 = Small Chest (no trigger)
2 = Treasure Chest (trigger)
3 = Ornate Chest (trigger)
5 = Exquisite Chest (trigger)
DB/updates/chest_traps_tableandsamples.txt included - this will allow you to source in the chest_traps and some 'example' traps (not real ones just testing ones).
Disarm command also required for right click option on chest: insert into commands set type=0,command='disarm',subcommand='',handler=510,required_status=0;
Fixes#42
- Invisibility support for PVP
- Rule R_PVP InvisPlayerDiscoveryRange added. Default 20. Setting to 0 means invis players are always seen. -1 means they are never seen (unless their opponent has see invis for example)
- Crash fix back in ProcessSpawnConditional, spawn_list is getting a null spawn somehow, we can't process it!
Command_Hail needs to lock MSpawnList when it triggers ProcessMovement. When we are doing SpawnProcess however, we already have MSpawnList locked, no need to lock again.
Fixes#28
/loot list add loottable_id
/loot list remove loottable_id
/loot list clearall
auto reloads loot, purges previous loot and re-assigns loot to selected spawn.
If you have multiple of the same spawn, then /repop the zone and it will repopulate after one is updated.