67 Commits

Author SHA1 Message Date
aleos89
d88a6aca45 Optimized Inventory, Cart Inventory, and Storage usage
* These storage types now mimic Guild Storage and can be loaded/saved whenever needed.
* Relieves mmo_charstatus from having to send storage types and lets the char-server handle it.
* All storage types now have an increased max amount.
* Fixes #441 - Players will no longer be required to log out to resync cart item data before opening a Vending Store.
* Refactored player weight and cart weight calculations into their own functions.
* Added script commands guildstoragecountitem[2] and guildstoragedelitem[2].
* Refactored several function return types as well as documentation.
Thanks to @lighta and @cydh for their help with it!
2016-03-29 13:30:27 -04:00
Aleos
6295c77d39 Merge pull request #457 from rathena/feature/script_engine_upgrade
Script Engine Upgrade
* More information here: https://rathena.org/board/topic/102946-script-engine-upgrade/
2015-08-31 14:26:15 -04:00
Cydh Ramdh
c0e4b06005 Implemented 'Broadcast Obtain Special Item'
* Added flag &16 to add manually special item that will be broadcasted if: Dropped by monster -> player pick it up. Added items with this flag:
  * Gold_Key77 (7782)
  * Silver_Key77 (7783)
* Be used also to broadcast item in package/group with flag 'isAnnounced', replaced intif_broadcast().
* The message is using msgstringtable.txt on client side, make sure your translation is not messy.
* Credits:
  * fcba8a2161
  * 2761bb0af9

* Misc updates: Fixed job and class for items:
  * Sealed_Gloom_Under_Night_Gachapon (14696)
  * Sealed_General_Egnigem_Cenia_Scroll (14739)
  * Sealed_Vesper_Scroll (14740)
  * Midgard_Celebration_Lucky_Egg (14741)
  * Hero_Midgard_Egg (14753)
  * Safe_To_Smelting_Scroll (14758)
  * Limited_Edition_JOB_Battle_Manual (14765)
  * Rise_Midgard_Lucky_Egg (17494)
  * Lucky_Silvervine_Fruit_Box_III10 (17495)
  * Lucky_Silvervine_Fruit_Box_III110 (17496)
  * Epic_Heroes_Scroll (17519)
  * Majestic_Lucky_Egg (17526)

Signed-off-by: Cydh Ramdh <cydh@pservero.com>
2015-08-12 00:43:04 +07:00
aleos89
0696125b82 Script Engine Upgrade
* Upgraded the script engine variables to no longer be limited.
* Increased array limit from 127 to 2 billion.
* Improvement in overall speed and storage size.
* All variable types now support arrays.
- Merge from HerculesWS/Hercules@82b583b. Thanks to those who worked on it.
2015-06-11 10:44:13 -04:00
Cydh Ramdh
022d72891e Changed Guild/Party Bound Item Retrieval Methods:
* Bug Fixes bug:9338
* Now resend the list to map-server from char/inter-server to avoid "weird" item allocation on guild storage. Example, previously you will meet stacked item like GUID does, but it shouldn't!
* Also will check the maximum amount that can be store in guild store. If guild storage is full (the slots or item stack limit is reach) the rest value/item will be dropped.
* Account of kicked guild member won't be kicked from server anymore if the player idle on character select window (just prevents player to login when retriving items are in progress)
* Delete guild bound items from guild master when guild is disbanded! Previously, the bound type just changed to NONE. Also for party bound item.
* If kicked guild/party member is trading bound item when be kicked, the trade will be canceled!
* If the guild member is being kicked when open guild storage, storage will be closed first waiting for next item retrieval.
* Now when guild storage is opened, storage_status (changed the var to 'opened') will be used to hold char_id who opens it.
Misc:
* Cleanup guild storage prefix functions, changed them to "gstorage_*"
* Added `picklog` type 'B' for logging deleted bound item because of kicked from guild/party.
* Updated documentation for new used packet 0x3857

NOTE: Please import upgrade-20150103_log.sql
Signed-off-by: Cydh Ramdh <house.bad@gmail.com>
2015-01-03 20:37:38 +07:00
lighta
8066bdef46 Data alignement
Align account_id and char_id to uint32 as this is the value they can be
in DB.
Remove src/test folder, unused
Remove useless #include to speedup compilation.
2014-12-19 21:31:04 -05:00
Cydh Ramdh
a212839665 Fixed #122 @accountinfo issue
* Now inter-server always asking to login-server for account info instead using direct query to `login` table. Merged from HerculesWS/Hercules@da233d5
* Inter-server packet usage: HA 0x2720 & AH 0x2721
* Additional changes from inter-server to map-server to parse the account info result with type 1 by using packet 0x3808 for clif_account_name(). Just some changes from @lighta at his old diff
* Moved some messages to char_msg.conf
* Updated inter-server packet documentation

Signed-off-by: Cydh Ramdh <house.bad@gmail.com>
2014-11-22 18:58:29 +07:00
aleos89
a39f9ac8a2 Various cleanups.
* Updated comments for chat.c and pet.c files.
* Cleaned up various other comments and stylization.
2014-10-02 12:49:04 -04:00
lighta
402170c018 -Update doc/souce_doc.txt for refactoring change
-Add doc/packet_interserv.txt and doc/packet_client.txt, to refer packets
-Upd src inner documentation, map/intif mostly
-Add  common::utils::check_filepath(), fixing bugreport:9131 @loadnpc crash
-Fix pc_level_penalty_mod not using mob_class correctly
-Fix db/import/ for produce, arrow, abra, impro db...
-Upd install script (config.pl) to use mariadb for fedora/centos distrib
2014-08-20 20:58:48 -04:00
aleos89
62a2813adc Bug Fixes
* Fixed Concentration ending when Frenzy is used. (bugreport:8942)
* Fixed Hells Plant hitting Ghost element enemies. (bugreport:8799)
* Forced guild notice changes to save immediately. (bugreport:8961)
* Fixed Cart Tornado damage formula. (bugreport:9065)
* Adjust Amistr's Castling to now switch to any target type. Still needs skill switching support. (bugreport:1784)
* Removed hard coded 1 second skill duration reduction for Spore Explosion.
* Fixed the party window not displaying the correct map name when in an instance. (bugreport:7949)
* Fixed hatching a pet causing client disconnections. (bugreport:9059) (Hercules 533ff4f)
* Updated Kagerou/Oboro skill cast times. (bugreport:9035)
* Removed deprecated negative nameid value for getitem/getitem2.
* Renamed incuvate to incubate throughout source and SQL.
* Added skill ID to the error display for battle_calc_attack to help resolve issues. (bugreport:8876)
* Cleaned and corrected some Sorcerer Elemental skills. (bugreport:9058)
* Cleaned up some more compile warnings.
2014-06-27 15:45:35 -04:00
lighta
82a1c702dc Upd Makefile
Fix small typo in intif.h, ifndef was being unused.
Upd Makefile to simplify libconfig inclusion
2014-05-03 03:05:58 -04:00
aleos89
2fe8140f96 Quest Log system improvement. (Hercules 6f55c00)
- Improved memory usage of the quest log system. (saves up to 75kB per online character).
- Fixed various issues with quest entries disappearing from characters without an apparent reason, or monster kill counters getting stuck - the issues were caused by a de-synchronization between the two parallel questlog arrays in map_session_data.
- Added some code documentation.
- Thanks to @shennetsind and @MishimaHaruna.
2014-04-03 09:39:34 -04:00
euphyy
9d3b1ec38d * Follow-up on Item Bound System. (r17351, r17361)
* Moved Optamara Crew coordinates to match new Alberta map. (credits: M45T3R)
* Updated FRN and IDN map_msg translations. (credits: Capuche, Cydh)
* Switched THA map_msg encoding from UTF-8 to TIS-620. (credits: Boneskung)

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@17364 54d463be-8e91-2dee-dedb-b68131a5f0ec
2013-06-13 23:13:06 +00:00
akinari1087
c6018f4ef8 Added configuration option BOUND_ITEMS in core.h to disable Guild/Party
bound items system
Added Character Bound item option suggestion
- Updated documentation on changes

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@17361 54d463be-8e91-2dee-dedb-b68131a5f0ec
2013-06-13 15:31:35 +00:00
akinari1087
72bcb87f0f Introducing @partysharelvl, a method to updating the party share level in run time!
- Temporarily changes share level until character server is restarted
- Updated atcommands documentation

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@17358 54d463be-8e91-2dee-dedb-b68131a5f0ec
2013-06-12 01:55:02 +00:00
akinari1087
4742adac12 Introducing the Account/Guild/Party Bounded Items System - Suggestion tid:70372
- Thanks for Xantara for providing initial diff as well as Lighta for guild bound help
- Adds script commands 'getitembound', 'getitembound2', and 'countbound'
- Adds at commands @itembound and @itembound2
- Adds permission pc_can_traded_bounded
- Documentation updated

Don't forget to run the SQL upgrade file!

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@17351 54d463be-8e91-2dee-dedb-b68131a5f0ec
2013-06-08 22:47:10 +00:00
euphyy
a75c0475a2 > Hercules merges:
* 9b5ec24:
@accinfo update -- added pincode support and changed group_id to group_level as to respect the level hierarchy on whether to display passwords or not.
Updated GeoIP Database to March 2013.

* 9aded8a:
Introducing Costume Garment Slot 8192.
Also updated getlook script command to support Robe/Garment (val 12 Look_Robe).

* 691b3e6:
Fixed Tetra Vortex client crash. (bugreport:7302)

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@17218 54d463be-8e91-2dee-dedb-b68131a5f0ec
2013-03-27 21:57:45 +00:00
glighta
0cdba10793 -Harmonize skillid, skill_num, skillnum, skill, to skill_id and same for skill_lv
-Optimise type from int to int16 in order to reduce ram consumtion.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@17065 54d463be-8e91-2dee-dedb-b68131a5f0ec
2012-12-30 16:00:24 +00:00
brianluau
a2bdc47daf - Undid r16968: SVN Replaced with source:/trunk/src/@16966 (tid:74924).
[16969:16991/trunk/src/] will be re-committed in the next 24 hours.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@16992 54d463be-8e91-2dee-dedb-b68131a5f0ec
2012-12-05 02:53:33 +00:00
greenboxal2
a7c32653f7 Applied AStyle code formating as discussed on tid:74602.
Removed /SAFESEH option from MSVC11 projects.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@16968 54d463be-8e91-2dee-dedb-b68131a5f0ec
2012-11-25 21:20:43 +00:00
shennetsind
d1beddaeb1 Added @accinfo atcommand. "Huge thanks to"/"Credits to" Dekamaster/Nightroad <3.
All the queries are handled by char-server.
You might notice there is a odd way to retrieve job names in char server, this is only temporary until we're done arguing what'd be the best way to do it in char and map server.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@16025 54d463be-8e91-2dee-dedb-b68131a5f0ec
2012-05-01 21:57:53 +00:00
shennetsind
a1612031a6 Initial support for Genetic, Sorcerer and Elemental Summons. Special Thanks to 3CeAM for the base.
Notice this revision onwards requires you to update your char sql table and add the elemental sql table (check sql-files/upgrade_svn15885_log.sql)
If you step by any bugs, let us know at http://rathena.org/board/tracker/ Thank you very much.
ARRIBA ARRIBA.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@15885 54d463be-8e91-2dee-dedb-b68131a5f0ec
2012-04-20 18:05:14 +00:00
epoque11
1ce49ea08e - Merged main-chat message handling (as requested/enforced by trojal <3)
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@15816 54d463be-8e91-2dee-dedb-b68131a5f0ec
2012-03-29 18:43:58 +00:00
gepard1984
f810293de3 - Guild Castle code cleanup:
- removed `MAX_GUILDCASTLE` limit
  - char-server now caches guild castles in `DBMap`
  - improved guild castle SQL queries to support non-default values of `MAX_GUARDIANS`
  - disallowed declaring guild castles on maps that are on other map-servers 
  - map-server now requests data for all guild castles from char-server on initial connect (bugreport:287)
  - removed ''guildcastleinfo events'' as they were esentially duplicated ''OnAgitInit''
  - optimized castle data load packets (bugreport:287)
  - updated WoE scripts to reflect source changes (scripts no longer need or should request castle or guild data)
  - updated related docs
- Added `db_size` macro.
- Replaced manual counting of castles occupied by a guild with `guild_checkcastles()` calls.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@15657 54d463be-8e91-2dee-dedb-b68131a5f0ec
2012-03-04 18:37:29 +00:00
gepard1984
22f0714c07 - Added libconfig (configuration file library: http://www.hyperrealm.com/libconfig/):
- Updated VS9/10 project files.
   - Updated `configure` & `Makefile`s.
 - New GM, Commands & Permissions system:
   - '''This is a backwards compatibility breaking update''', please read tid:58877
   - Replaced GM levels with Player Groups.
   - Commands permissions & other privileges now depend on group, not GM level.
 - `@help` command improvements: requires "commandname" param and shows more detailed info about commands.
 - Modified GM whisper system to deliver messages basing on permissions, not GM level.
 - Remote trade request is now possible only if player is allowed to use `@trade` command as well.
 - Added a proper permission to use `/changemaptype` command.
 - `clif_displaymessage` is now capable of displaying multiline messages.
 - All `ACMD_FUNC`s are static now, and the only way to invoke them is with `is_atcommand()`; all client commands (starting with `/`) are now translated into corresponding atcommands (with exception of `/kick` used on monster, as there is no atcommand to kill single monster).
 - Removed nonsense "bot check" triggering when player blocked (`/ex`) Server.
 - Merged `@monster`, `@monsterbig` and `@monstersmall`.
 - Improved flow of atcommand execution to avoid revealing info about online players or existing commands to non-privileged players.
 - Merged `atcommand` and `charcommand` script functions (`charcommand` is aliased to `atcommand`).
   - Fixed `atcommand` script function reading unknown memory area (possible access violation).

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@15572 54d463be-8e91-2dee-dedb-b68131a5f0ec
2012-02-13 01:19:04 +00:00
gepard1984
bf1c81839f Merged TXT removal branch back to trunk.
* TXT save engine is removed and no longer supported.
* See also tid:53926, tid:57717.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@15503 54d463be-8e91-2dee-dedb-b68131a5f0ec
2012-01-20 20:33:32 +00:00
flaviojs
7b1ca6d8b3 * Rework some party code.
- add leader argument to party_fill_member
- add party_getmemberid
- add requester char_id to packets 0x3021 and 0x3821 (party info)
- diff members when replacing party info
- remove fixup all-player-iteration when receiving a party for the first time
- send 'party info' before 'party created'
- send 'party info' before 'party member added'
- update empty party_id when checking the player of a party

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@14968 54d463be-8e91-2dee-dedb-b68131a5f0ec
2011-10-09 13:19:06 +00:00
Gepard
f9cff9c6e0 Extended broadcast implementation:
- support for font formatting, like font-size
 - `bc_woe` flag to allow client-side filtering of WoE announcements
 - new broadcast packet 0x40C  

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@14120 54d463be-8e91-2dee-dedb-b68131a5f0ec
2009-11-03 15:56:54 +00:00
Inkfish
b753cba749 * Some more updates to Quest Log
- Implemented a new saving mechanism. Now they can be saved every 'autosave_time' in case the char-server is not online when you get a quest.
- Improved 'changequest' code.
- Increase MAX_QUEST_DB to 1200.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@13973 54d463be-8e91-2dee-dedb-b68131a5f0ec
2009-07-28 04:04:50 +00:00
Inkfish
698e7a0fc0 Rewrote Quest Log system.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@13959 54d463be-8e91-2dee-dedb-b68131a5f0ec
2009-07-25 20:55:35 +00:00
Inkfish
86d162ad13 Fixed an exploit that makes guild skill get higher level than the max defined in guild_skill_tree. (bugreport:3241)
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@13894 54d463be-8e91-2dee-dedb-b68131a5f0ec
2009-06-16 12:35:03 +00:00
akrus
65939ee758 * Fixed: several compiler warnings [akrus]
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@13129 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-08-25 00:56:11 +00:00
zephyrus
399efe15bd - Completed Mercenary Create, Delete, Save. Tests OK.
- Incremented MAX_SKILL required for a proper load of Mercenary Skills.
- Some fixes.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@13118 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-08-23 19:08:54 +00:00
zephyrus
e5e14c14fe - Added column mer_id on char_db
- More mercenary implementations (delete, load, create)
- Some fixes.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@13117 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-08-23 14:59:51 +00:00
zephyrus
1204fd49db - Mercenary Packets (Server to Client). Still need a little more info.
- Packet for Mercenary Menu.
- Some other progress as creation but need more code.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@13116 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-08-23 13:09:50 +00:00
ultramage
398d3821df Removed the party_share_conflict() check.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12959 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-07-15 10:49:42 +00:00
ultramage
4546c7fc0a Modified storage data loading
* storage is now loaded/saved along with character status
 * as a consequence, a lot of storage handling code was removed
 * there is no more locking done within storage data
 * mapservers no longer cache the data (solves muiltimapserver exploit)
 * loading storage on char select may decrease charserver performance

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12950 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-07-13 16:14:32 +00:00
ultramage
a35279667d Renamed 'struct storage' to 'struct storage_data' (to make 'storage' available as a variable name).
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12932 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-07-10 08:27:03 +00:00
Kevin
236c7cba43 Some more updates to the quest log system. It has been completely moved to the inter server instead of the char server.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12584 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-04-14 02:32:24 +00:00
Kevin
302adbf42a Major updates to the quest system.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12581 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-04-13 22:19:02 +00:00
zephyrus
0c381f2877 - Auction System implementation completed.
- As mail system, this will need a "mapflag" or something to only allow auctions on some maps.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12325 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-03-08 20:11:28 +00:00
zephyrus
a6a68c756d - Added support for Auction Close and Cancel.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12323 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-03-08 15:52:15 +00:00
zephyrus
62c41846f0 - Fixed some bugs on auction.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12318 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-03-07 20:38:33 +00:00
zephyrus
076f76077d - More updates to Auctions. Now you "really" can register auctions, limit to 5 per char (according to official info).
- Also added the Buy and Sell lists.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12314 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-03-07 05:08:12 +00:00
zephyrus
284334b4f0 - Merged Auction Search and Register. It seen to work fine, so you can test those.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12301 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-03-05 17:09:47 +00:00
ultramage
e464c81aea Removed the badly designed/unfinished guild_check_conflict() data integrity check (that wasn't actually being used up 'till now).
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11894 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-12-12 09:41:51 +00:00
ultramage
f676a041a8 Fixed missing forward declaration of mail_message.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11592 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-10-27 16:48:17 +00:00
zephyrus
c34325a53b - Added the new mail system. Requires optimization and tests.
- Updated the maildb sql structure.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11548 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-10-22 20:38:26 +00:00
ultramage
2c2af57a84 * Removed commented-out code for check_fake_id()
* Merged improved/cleaned up (WiP) code for clif_parse_WisMessage
* Removed the requirement to provide a character name in the message string when calling is_atcommand() (needed for the previous fix)
- currently both ways work, but old will be removed in the upcoming command cleanup so please adjust your custom code if you use this!
* Added clif_process_message(), an unified way to validate all four types of player message packets and retrieve their components
* Applied the new checking function to clif code, this fixes various length mismatches caused by incomplete code in r11386 (bugreport:198)

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11507 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-10-18 12:49:49 +00:00
ultramage
137877aebf Fixed a gcc compilation error and some warnings.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11046 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-08-19 19:47:43 +00:00