81 Commits

Author SHA1 Message Date
Lemongrass3110
fb81e2d7ad
Fixed autobonus removal (#3767)
Fixes #3739

Thanks to @whupdo for finding the broken removal.

Fixes #3766

Since vector elements will be pushed around in the container when an element is removed,
the original pointer might be invalid at the time the end of the timer has been reached.

A big thank you to @teededung for being persistent and helping me to reproduce the issue.
2018-12-20 08:23:10 +01:00
Aleos
5cc368a177
Corrected a potential overflow in item bonuses (#3709)
* Fixes #3703.
* Fixed bHealPower, bHealPower2, bSPGainValue, bHPGainValue, bMagicSPGainValue, and bMagicHPGainValue having a chance to potentially overflow from signed short limit.
Thanks to @Everade!
2018-11-29 18:54:59 -05:00
Aleos
c71ef92fb0
Refactored item bonuses to utilize C++ features (#3235)
* Fixes #996 and fixes #3152.
* Refactored MAX_PC_BONUS item bonuses from static arrays to vectors.
* Increased MAX_PC_BONUS to 50.
* Frees up memory from players that may not ever utilize all their static MAX_PC_BONUS item bonuses.
* Expanded bonus ResEff to not be restricted to SC_COMMON* statuses.
* Removed old ERS usages.
* Removed code redundancy and general cleanups.
Thanks to @Angelic234, @Atemo, @Lemongrass3110, and @Everade!
2018-11-28 21:50:43 -05:00
Aleos
ca1bd50465
Corrected renewal Steal formula (#3523)
* Fixes #3473.
* The steal bonus no longer modifies the item's drop rate but has it's own success chance into stealing an item.
Thanks to @mrjnumber1!
2018-11-01 19:40:24 -04:00
Cydh Ramdh
fe197bfa12
Renewal Monster Updates (#3541)
* Renewal Monster's ATK & MATK Calculation Updates
* Renewal Monster database updates
  * ATK1 is *base* ATK, the range 80%~120% is calculated in src
  * ATK2 is *base* MATK, the range 70%~130% is calculated in src
* Adjusted ATK range min~max in mobinfo atcommand
* Nothing was changed in pre-renewal system!
* Thanks to @aleos89, @slyx88 and Divine-Pride.net
2018-10-13 19:00:14 +07:00
Cydh Ramdh
3e1105b0cf
Updates Item Sell checks (#3491)
* Added config values for `allow_bound_sell`
  * 0x4 allows bound item to be sold at NPC Shops
  * 0x8 restrict only guild leader who can sell guild bound item at NPC Shops or Itemshops
* Added config to allow rental items can be sold at NPC `rental_transaction` (planned for more config values based on #3490). Default to `yes` allowed to be sold, still can be restricted by item_trade, item id based.
* Fixed itemshop which ignores another item stack in inventory even for same item currency
* Fixed exploit potential by using Itemshop & Pointshop
* Now equipped item cannot be sold at NPC
* Typo and grammar fixes. Thanks to @aleos89 and @secretdataz
2018-09-27 13:54:28 +07:00
Aleos
0d77398385
Cleaned up Banding behavior (#3486)
* Fixes #3478.
* Adjusted Banding to use proper party counting functions.
* Corrected the DEF and HP Regen bonus for Banding.
* Banding Defense will no longer stack on itself.
Thanks to @admkakaroto and @exneval!
2018-09-18 11:05:27 -04:00
Atemo
fd4f7ccd5c Suggestion: identifyall script command (#3419)
* Implemented script command identifyall.
Thanks to @secretdataz for suggestions!
2018-08-30 10:03:03 -04:00
Atemo
c856b07c45
Suggestion of 'killedgid', variable set when a monster is killed containing the monster game ID (#3418) 2018-08-23 15:49:32 +02:00
Aleos
2ab298076c
Cleaned up header guard names (#3395)
* Fixes #3385.
* Updated the header guard names to C++ standards.
Thanks to @elfring's suggestion!
2018-08-10 15:57:50 -04:00
Aleos
b409936f8d
Updated max recovery weight to 70% for renewal (#3309)
* Fixes #2622.
* Added a new battle config for renewal.
* Adjusted the battle config to support dropping the recovery weight to 0.
* Added the new weight limit packet.
Thanks to @functor-x and @Lemongrass3110!
2018-07-17 16:18:39 -04:00
Lemongrass3110
a5588dd9ab
Initial Release of Attendance Feature (#3297)
Thanks to @secretdataz and @aleos89 for their help.
Thanks to @Haikenz and @admkakaroto for testing.
Thanks to @Daegaladh for his ideas.
2018-07-16 21:39:42 +02:00
Lemongrass3110
c4d7dc76d3
Hid timer function parameters in a macro (#3311) 2018-07-15 23:17:15 +02:00
Lemongrass3110
fe7c0a78ec
Refactored roulette system (#3271)
Fixes #2887 - thanks to @Everade
Fixes #3292 - thanks to @admkakaroto

Added a script command to open the roulette window from server side.
Added support for clients >= 2018-05-16
Fixed losing behavior for roulette
Enabled roulette system by default
Added a server side delay
Added missing sql log enum value 'Y'

Thanks to @Everade, @admkakaroto, @V0rr, @ecdarreola, @Haikenz and everyone else who contributed to this.
2018-07-06 22:39:58 +02:00
Lemongrass3110
55f1b01bd8
Removed useless debug variables for an old issue (#3247)
Closes #1986
2018-06-27 07:37:35 +02:00
Lemongrass3110
880e227ea2
Cleaned up some hardcoded variables (#3237) 2018-06-24 22:16:28 +02:00
Aleos
11b42569fc
Synchronized source file headers (#3212)
* Alphabetically sorted includes.
* Updated copyright and license text to match across all files.
* Removed pragma once define in header files in lieu of ifdef guards.
2018-06-20 18:08:30 -04:00
Aleos
dc413a3c57
Updated Mado Gear effects (#2103)
* Fixes #2099.
* Added Emergency Magic Gear.
-- Mounts the user to a Madogear.
-- Only usable by Mechanic class.
-- Has a reuse delay of 3 minutes.
* Increased maximum weight limit by 1500.
* HP naturally recovers similar to Swordman Moving HP-Recovery.
* Updated Emergency Cool's interaction with Overheat calculation.
* Added new Emergency Cool cooling devices.
* The three cooling devices now lower Overheat by 45, 75, and 105 respectively.
* Overheat now only increases on every attack by 1 or by 3 with Fire element.
* The Overheat limit is increased to 150, 200, 280, 360, and 450 respective to skill level.
* Updated the check for Acceleration, Self Destruction, Shape Shift, Emergency Cool, Magnetic Field, Neutral Barrier, and Stealth Field to also check inventory for required equipment.
* Updated Magic Gear Master NPC.
-- Added Emergency Magic Gear purchase option.
-- Added High Quality Cooler and Special Cooler upgrade options.
Thanks to @Felleonel, @Rytech2, @exneval and @mrjnumber1!
2018-06-14 17:28:16 -04:00
Lemongrass3110
801d3ed942
Moved common, config and mapcache to C++ (#3200)
Dropped BETA_THREAD_TEST and everything around it
Dropped mt19937
Replaced msinttypes with cinttypes
Removed IRC link and updated README name
2018-06-14 21:51:58 +02:00
Lemongrass3110
fc951469e7
Initial support for Star Emperor and Soul Reaper (#3184)
Merges 3CeAM/3CeAM@7df0f57 and 3CeAM/3CeAM@028d2e8
Credits to @Rytech2
2018-06-14 08:16:10 +02:00
Aleos
87e7e8891b
Added missing Imperial Set Combos (#3151)
* Fixes #3031.
* Added missing Royal Guard Necklace and Imperial Glove.
* Added bSkillDelay bonus which increases delay of skill sk by t milliseconds.
Thanks to @iubantot and @Secret!
2018-05-26 12:50:39 -04:00
Lemongrass3110
ce324ad13d
Added atcommand for limited sale (#3103)
Removed permission
Added state tracking instead to make sure player can use the atcommand

Thanks to @secretdataz for his idea.
2018-05-08 21:32:52 +02:00
Lemongrass3110
55bf142ab8 Follow up to d13d6a6
Thanks to @RadianFord
2018-04-20 22:53:09 +02:00
Lemongrass3110
a7df035854
Fixed titles only being added on relog (#2945)
Fixes #2944

Thanks to @admkakaroto
2018-03-07 18:57:00 +01:00
lighta
716f6c0f29 Duel allocation (#2734)
* Duels are now dynamically created and no longer statically consumes memory.
* Removed max number of duel at once.
* Updated duel modules for multi-thread and safer management.
* Remove various statically allocated tab.
* Removed duplicate code for npc_movenpc.
* Fix few warnings.
Thanks for suggestions from @anacondaqq.
2017-12-27 19:39:45 -05:00
Aleos
ae69e50626 Cleaned up renewal ASPD calculations (#2244)
* Cleaned up renewal ASPD calculations
* Fixes #2067 and fixes #2224.
* Adjusted the ASPD table to match Aegis values.
* Angra Manyu now disregards base ASPD values (Pre-Renewal only).

* Relocated Angra Manyu check
* Moved Angra Manyu check to the front to avoid useless calculations.
Thanks to @Lemongrass3110!

* Corrected double weapon calculations
* Resolved wearing two weapons causing ASPD to drop significantly.
* Corrected some typos in the Assassin class ASPD table.
* Added a missing Shadow Arms equipment check.
Thanks to @Lilori!

* Removed some unneeded defines

* Removed the single handed and double handed weapon max defines.
Thanks to @Jeybla!

* Renamed constants to keep legacy values

* Update status.cpp
2017-12-23 16:00:54 -05:00
Aleos
9315781a48
Updated Pet catching values (#2719)
* Added pet catching constants.
* Converted catch_target_class from short to uint16 for future expansion.
Thanks to @Lemongrass3110!
2017-12-21 12:54:19 -05:00
lighta
7a1a76a9a9
Fix #2425 Character variable lengths and char-server (#2647)
* Fix #2425 Character variable lengths and char-server

Medium term fox for crash on char-serv caused by too long character variable.
Add few error msg and safety.
Add npc/test/npc_test_longvar.txt as a basic test.

NB:
The config.in for max_colum size if not really set as best would either retrive that value from sql, or use the same config file to actually set the sql column size...
May be handle later with some kind of hibernate ORM.

Thanks to @Tokeiburu, @aleos89, @Lemongrass3110.
2017-12-19 15:13:55 -04:00
Aleos
1c66035761
Refactored achievements to utilize C++ features (#2607)
* Refactored achievements to utilize C++ features
* Cleaned up the YAML parser.
* Moved achievements from DBMap to an unordered_map.
* Moved achievement targets from DBMap to a vector.
* Changed all struct arrays into vectors.
* Changed all char arrays to strings.
* Changed all int arrays to std::arrays.
* Removed achievement_dummy as it's no longer needed.
* Achievements now use smart pointer to ensure proper construction and deconstruction of objects.
Thanks to @lighta!
2017-11-20 21:34:16 -05:00
aleos89
728a29d435 Harmonized include guards
* Follow up to 24b3509 and c4a364b.
* Harmonized the include guards for char-server and map-server header files.
2017-11-07 10:22:03 -05:00
Aleos
c4a364be2c
Initial work for map server to C++ (#2565)
* Initial progression of moving the map-server to C++ format.
* Converted all core files to .cpp and header files to .hpp.
* Refactored the refine database parser to utilize native YAML C++.
Thanks to @Jeybla and @lighta for their help!
2017-11-02 17:39:03 -04:00