Commit Graph

249 Commits

Author SHA1 Message Date
Lemongrass3110
9bf5d4a291 Fixed a shadowed variable
Fixes #1718
2016-11-16 08:18:18 +01:00
aleos89
5aa53e4738 Merge branch 'master' into cleanup/storages_optimization 2016-11-11 14:54:43 -05:00
Lemongrass3110
418d8203e6 Refactored clif functions for unit names (#1664)
Refactored clif functions for unit names

Renamed clif_charnameack to clif_name and added additional parameters to follow other clif functions.

Removed clif_charnameupdate completely since it was just a copy of the BL_PC code in clif_charnameack and replaced all calls with clif_name_area.

Fixed guild position display
Fixes #1662
Thanks to @ghul3 for reporting it.

Removed useless params for some guild functions
2016-11-02 11:13:52 +01:00
Lemongrass3110
f0dd764095 Merge branch 'master' into cleanup/storages_optimization
# Conflicts:
#	src/map/script.c
2016-10-10 13:06:52 +02:00
aleos89
bd36b294ad Merge branch 'master' into cleanup/storages_optimization 2016-08-30 19:40:36 -04:00
Cydh Ramdh
8805e7e1d8 Merge branch 'master' into woe_te-restrictions 2016-08-27 07:04:41 +07:00
Lemongrass3110
1e2e37a9d4 Some small cleanups 2016-08-15 12:15:35 +02:00
Lemongrass3110
63f719a154 Fixed emperium deletion on guild creation
Merged from HerculesWS/Hercules@71c24de thanks to @4144.
2016-07-03 02:06:49 +02:00
aleos89
5ef2000bd9 Resolved a potential map crash on instance destruction (fixes #1333)
* Adjusted the instance destruction checks on party and guild breaks.
2016-06-02 09:02:14 -04:00
aleos89
eeccb70050 Merge branch 'master' into cleanup/storages_optimization
Conflicts:
	doc/script_commands.txt
	src/map/pc.c
	src/map/script.c
2016-06-01 13:24:27 -04:00
aleos89
c97be60bbf Expanded the instance system to support new modes
* New modes include: No player attached, single player, and guild.
* Expanded script command instance_create to take in an owner ID and an optional mode.
* Added a new script command instance_check_guild (works the same as instance_check_party).
* Refactored all instance_id to unsigned short.
2016-05-14 11:57:54 -04:00
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
Cydh Ramdh
26dcf345fe Added WOE:TE Restrictions
* Added mapflag `gvg_te`, `gvg_te_castle`, this is will be activated during WOE:TE sessions. These changes are needed because of:
  * If `gvgon` is used, TE castles become `gvg`, it makes the restriction failure. Items that are supposed to only can be used/equipped in TE Castles, also affected in 'normal' GVG/WOE maps.
  * These flags used form `item_noequip`, `skill_nocast`, and `status_disabled` flag 16. (If just assume TE Castles are Restricted Zone 8, the failure will occurs as point 1 above).
* Added Restricted Zone 8 for TE Guild Dungeons, to prevent marriage skills can be casted there.
* Added command `gvgon3` to set GVG for WOE:TE Castles.
* Added command `canParticipateSiegeTE` is 'hardcoded' function to check player's job that can participate in WOE:TE.
  * Current usages in `GD_EMERGENCYCALL` and replace the in-script function.
* Changed default config `allow_consume_restricted_item` to 'no'. All restricted usable/consumable/healing items are always failed to be used.
* Changed the GVG items/skills restriction check. "Item cannot be equipped in GVG maps" are supposed to ignore the agit flag statuses, as long as the map is GVG flagged, items/skills are always restricted and otherwise.
* Moved previous entries of `skill_nocast` flag 16 as hardcode (for now).

Signed-off-by: Cydh Ramdh <cydh@pservero.com>
2016-02-20 09:33:07 +07:00
Atemo
9373c697b5 Added some source part. Thanks @aleos89 / @Cydh
Some debug thanks @Cydh
2016-02-05 15:48:26 +01:00
Lemongrass3110
a597e7bd34 Some more pointer casts and enum fixes. 2015-10-03 01:46:47 +02:00
aleos89
9738c825cc Follow up to f53916e
* Fixed remaining memory leak.
* Cleaned up and optimized a few more ERS allocations.
2015-08-25 10:31:38 -04:00
aleos89
d3625e5c10 Cleaned up merge issues. 2015-02-21 15:43:58 -05:00
Cydh Ramdh
9d3d34205f Skill DB clean ups
* Changed skill_db array to better memory allocation.
* Reduced MAX_SKILL_LEVEL from 100 to 10 (part of Hercules 0f4a50d135), also has changes on skill_get checks for skill level that more than 10.
* Reduced MAX_SKILL from 5020 to 1200 (actually only 1109 skills are used).
* Added macros for checking Homunculus, Guild, Mercenary, & Elemental skill ranges.
* Added skill check & index validation when player logged in and when @reloadskilldb.
* Corrected `enum e_skill_flag` order for SKILL_FLAG_REPLACED_LV_0's sake.
* Merged 'addtoskill' script command just as alias of 'skill' script command.
* Fixed #277
* Changed 'skill' script command flag to constant value

Signed-off-by: Cydh Ramdh <house.bad@gmail.com>

NOTE:
* Decreased memory usage by map-server reduced up to 50 MB.
* Decreased memory for each player because of mmo_charstatus::skill[] only has 1200 array, before is 5020.
* Please use skill_get_index() for accessing sd->status.skill[] or skill_db[], don't reckless use skill_id as array index.
* Please import upgrade_20150211_skillset.sql

Signed-off-by: Cydh Ramdh <house.bad@gmail.com>
2015-02-12 15:50:50 +07:00
Aleos
0e533fa7ab Revert "Skill DB clean ups" 2015-02-10 09:33:00 -05:00
Cydh Ramdh
148353eed9 Follow up 95705d41be
* Changed bonus script list to link list
* Merged 'pc_bonus_script_clear_all' to 'pc_bonus_script_clear'
* Now bonus script will be saved on auto-save timer or other save request, prevent losing the bonus when "something" happen. But, saving when player is quiting, will removes the bonus that won't be saved on logout.

Signed-off-by: Cydh Ramdh <house.bad@gmail.com>
2015-02-03 11:56:09 +07:00
Cydh Ramdh
72617ac98b Skill DB clean ups
* Changed skill_db array to better memory allocation.
* Reduced MAX_SKILL_LEVEL from 100 to 10 (part of Hercules 0f4a50d135), also has changes on skill_get checks for skill level that more than 10.
* Reduced MAX_SKILL from 5020 to 1200 (actually only 1109 skills are used).
* Added macros for checking Homunculus, Guild, Mercenary, & Elemental skill ranges.
* Added skill check & index validation when player logged in and when @reloadskilldb.
* Corrected `enum e_skill_flag` order for SKILL_FLAG_REPLACED_LV_0's sake.
* Merged 'addtoskill' script command just as alias of 'skill' script command.

Summary:
* Decreased memory usage by map-server reduced up to 50 MB.
* Decreased memory for each player because of mmo_charstatus::skill[] only has 1200 array, before is 5020.
* Please use skill_get_index() for accessing sd->status.skill[] or skill_db[], don't reckless use skill_id as array index.

NOTE:
* Please import upgrade_20150131_skillset.sql

Signed-off-by: Cydh Ramdh <house.bad@gmail.com>
2015-01-31 19:45:52 +07: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
4d5fc9604c Some typos
* Changed -1 for timer id to INVALID_TIMER
* Changed values for pc_bound_chk(). 2 to BOUND_GUILD and 3 to BOUND_PARTY

Signed-off-by: Cydh Ramdh <house.bad@gmail.com>
2014-12-17 18:18:56 +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
Cydh Ramdh
3efe5375f3 - Added check to clear skill unit group that created by NPC/script before the NPC/script unloaded.
- Changed enum for NPC subtype, added prefix NPCTYPE_. See map.h::npc_subtype.
- Changed Channel_Config struct usage to -> extern struct Channel_Config channel_config.
- Added restriction for atcommand that cannot be executed when Player is in autotrade, to prevent map crash. (bugreport:9196) TODO: Check other atcommand or change this behavior.
- Added enum for atcommand restriction with prefix ATCMD_NO. See atcommand.c::e_atcmd_restict.
- Updated atcommand documentations.
- Changed dummy_sd's attributes to group_id & group_level 99, and gives all permissions (PC_PERM_ALLPERMISSION). dummy_sd is being used by 'atcommand' or 'useatcmd' script when no rid/player attached.

Signed-off-by: Cydh Ramdh <house.bad@gmail.com>
2014-08-18 19:59:16 +07:00
lighta
b124498263 Fix -WShadow definition warning
Cleanup some leftover
2014-06-27 06:07:50 -04:00
Cydh Ramdh
794c1a8247 Bug fixes & Misc:
-- Map crashed because empty item_combo script (bugreport:8959)
-- Wrong MATK calculation of Distort Crescent/Zangetsu effect (SC_ZANGETSU) (bugreport:8998)
-- Wrong damage reduction of Sera's Pain Killer effect (SC_PAIN_KILLER) (bugreport:8994)
-- Fixed Shape Shift (NC_SHAPESHIFT) wrong requirement (bugreport:9002)
-- @itembound, getitembound usage. Not, now allowed for unspecified bound_type (thank Ceejay Abne! http://rathena.org/board/index.php?showtopic=94726)
-- Change check behavior for skill requirement level-dependent check.
-- Removed NC_REPAIR hardcoded requirement.
-- Moved the required equipped item to 'RequiredEquipment' on skill_require_db.txt.
-- Missing "Option_Ruwach" as contantan.
-- Corrected Chasewalk STR bonus, it's SC_CHASEWALK2, different with SC_INCSTR.
-- Corrected some Rebellion skill's effects.
-- USESKILL_FAIL_MADOGEAR message for failed skill that needs player has Madogear.
-- Changed skill name and description length to 31 chars.
-- Some documentation updates.
-- Follow up 0f2dd7f. (Well, using empty password in import file, won't works, if you want, empty the original conf file. Fix this later, related on 'sscanf' for those files)
-- Follow up 28c90bb, thank @julia40124009
-- Misc. :P

Signed-off-by: Cydh Ramdh <house.bad@gmail.com>
2014-05-31 21:42:44 +07:00
aleos89
2732176786 Modified status_calc_* to support multiple options. (Hercules 6f77d07) 2014-05-20 10:41:15 -04:00
aleos89
1d1a58cdcb Bug Fixes
* Removed unused guild aura leftovers and fixed some other issues with setting the guild aura. (bugreport:8892)
* Fixed Fire Expansion Acid to be a magic type attack. Thanks to exneval.
* Cleaned up some remaining issues with Issen. (bugreport:8905)
* 16th Night (Izayoi) should remove fixed cast time from all skills.
* Circle of Nature is now part of Group B songs.
* Updated Reading Spell Book spell memorization to official.
* Updated homunculus skill cooldowns.
* Added missing Holy element bonus for Hesperus Lit.
* Fixed Coluseo Heal and Praefatio not giving a party bonus. (bugreport:8904)
* Fixed the status icon for ALL_RIDING not being displayed at login.
* Adjusted the notice display order when players login. (Hercules df1952d)
* Self skills can now be used while storage is open. (Hercules 6f6a6b3)
* Cleaned up SC_NOCHAT/Manner system. (Hercules 94ef1ee)
2014-04-16 11:06:09 -04:00
Cydh Ramdh
26025e600b * Fixed DB Import that not being read some imported files. bugreport:8543 http://rathena.org/board/tracker/issue-8543-import-folder-nolonger-working/
* Fixed packet_db always be 45. bugreport:8487 http://rathena.org/board/tracker/issue-8487-packet-version-is-always-45-for-map-server/
* Follow up 46ca940

Signed-off-by: Cydh Ramdh <house.bad@gmail.com>
2014-02-02 19:19:37 +07:00
aleos89
c1871e91dc Bug Fixes
* Fixed Arm Cannon target type to be ground. (bugreport:8496)
* Fixed Rampage Blaster damage formula. (bugreport:8480)
* Fixed Lightning Walk spirit sphere cost requirement. (bugreport:8474)
* Fixed Deadly Infect to not pass Guillotine Cross poisons to MVPs. (bugreport:8505)
* Fixed Gentle Touch - Cure HP recovery formula. (bugreport:8511)
* Fixed Tiger Cannon taking more HP and SP than it should. (bugreport:8538)
* Fixed Voice of Siren duration time. (bugreport:8382)
* Fixed script command sscanf to return -1 when a string is empty. Thanks to AnnieRuru. (bugreport:8562)
* Fixed VIP bonus experience being included in a monster's death when a Non-VIP kills the monster.
2014-01-27 09:56:16 -05:00
Lemongrass3110
b7fd4dd274 Unneeded semicolons removed
Removed duplicate slashes
2014-01-14 23:38:12 +01:00
Akkarinage
3bd3b81749 Merge remote-tracking branch 'remotes/rAthena/master'
Conflicts:
	src/map/guild.c
2014-01-12 19:19:05 +00:00
Akkarinage
fa2aced4ae sv_readdb for castle_db.txt updated max cols to 4 2014-01-12 16:26:21 +00:00
Akkarinage
201d0047f4 Testing git-api stuff 2014-01-12 15:44:58 +00:00
lighta
b92230e33e Cppcheck
Fix typo in race bonus fix : race<RC_NONE_ && race<RC_MAX
Fix bugreport:8418 => clif_instance_changestatus possible mapcrash
Reduce lot of variable scope and fix unsafe scanf
2014-01-09 02:18:51 -05:00
lighta
ff29c234cc DB Import2
Add db/import-tmpl/ and add all file that could currently be
overwritten, (please add note if a db is missing)

db/import folder is created by "make import" just like conf/import and
msg_conff/import, (didn't found the visual equivalent)
2014-01-01 21:33:08 -05:00
lighta
28ecab5712 DB Import
Add folder import/ into db/ to load all customs
This folder is meant to hold all the customs file you wish override rA
one.
(In short it work like conf import)
related to tid:90199
2013-12-31 18:21:45 -05:00
aleos89
7a9aa7fbcf Bugfixes
* Fixed WE_MALE and WE_FEMALE up to You to not consume HP/SP when it's below 10%. (bugreport:3546)
* Fixed WE_CALLPARTNER, WE_CALLPARENT, and WE_CALLBABY to not recall target if they are autotrading. (bugreport:2479)
* Fixed WE_BABY not checking for parents if they are in the same party and in the area. (bugreport:2518)
* Fixed Dragon Breath - Water not requiring a dragon. (bugreport:8237)
* Added a new config 'char_del_option' to set whether email or birthdate should be used for deleting characters. (bugreport:8240)
* Follow up to 9a5a6b9. Fixed a missing define check for 2013 clients when deleting a character. (bugreport:8399)
* Fixed Weapon Refining to use clif_upgrademessage. (bugreport:2135)
* Fixed script command 'prompt' not ending script state when player selects Cancel from menu. (bugreport:7932)
* Fixed nomineeffect display on GvG enabled maps. (bugreport:7754)
Others
* All items, except for Cash items, can no longer be used when storage is open.
* Defined constants for a lot of item and monster IDs used throughout the source.
* Follow up to 0f2dd7f. Corrected a change to the wrong hostname array.
2013-12-30 13:20:33 -05:00
lighta
cb7e4b44cd Misc Upd
Fix pneuma display for pre-re mode
Add char_maintenance mode to check trought gm_allow_group as a minimum
groupid to enter. (thx to SuperHulk)
Fix UB warning on bonus_script check by type
Properly initialize combo_idx check
2013-12-29 01:28:15 -05:00
lighta
fca76baad8 Memleak fix
Fix some typo on channel ally
2013-11-15 12:05:44 -05:00
Akinari1087
a506c7fc0e Follow up to 4d61cc0
Revert SONIC_CRAW consuming spheres.  My mistake
Update Eleanor skill damage formulas and spirit sphere consume requirements based on WarpPortal and iROWiki forums

Fixed most channel memory leaks - http://rathena.org/board/tracker/issue-8044-memory-leak-revision-17486-causes-players-to-disconnect/
Fixed memory leak caused by item combos breaking out of a loop without freeing
2013-11-12 10:36:40 -07:00
Akinari1087
9c438ce762 Merged Monster Transformation update from Hercules (9692bc0) - Merge credits to Aleos & Cydh
-> Applied follow-up for using monster IDs with the commands (ead2a83)
Merged revert of r15787 where character must face north (5188b69)
Merged bug fix for visual effects on relog (f304c36)
-> This fixes the Warlock Sphere issue on relog as well as many other visual effects

Applied a possible map crash fix - Credits ivanyan
http://rathena.org/board/tracker/issue-8212-server-crash-guild-retrieveitembound/

Started working on some source code documentation
Renamed bank update SQL file to upgrade_20131105.sql
2013-11-06 05:14:19 -07:00
lighta
69b28292cf Skill_colldown
Move skillcooldown from ram saving to sql saving.
This will fix multimap skillcooldown and avoind increasing ram by
offline users.
2013-10-08 16:54:03 -04:00
Cahyadi Ramadhan Togihon
1cf5283dcf - Added GD_ITEMEMERGENCYCALL skill for Emergencycall Scroll items (12968, 12969, 12970).
- Change hardcoded delay time 'guild_skill_relog_delay' for guild skill (conf/battle/guild.conf).
2013-08-21 16:47:39 +07: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
91cc117015 Follow-up to r17352 : Fixed map server crash on guild break - bugreport:7720
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@17354 54d463be-8e91-2dee-dedb-b68131a5f0ec
2013-06-11 15:21:17 +00:00
akinari1087
9942072257 Added some packets for party booking system - Topic tid:82724 (Thanks Brynner)
Added LG_BANISHINGPOINT hitrate increase - Fixes bugreport:7535
Fixed pc.c compile warning when not using Renewal Drop Rate (Lighta) - Fixes bugreport:7704
Fixed an issue where a non-player failing to freeze another with Frost Diver causes map crash (Lighta)
Added SCS_NOCHAT for easier character mute management
Some status.c and status.h standardizing (spaces suck)

--Hercules Merges
- Merged 9fe16cc : MC_IDENTIFY shouldn't take SP when no items found
- Merged 31f9100 : SC_DEEPSLEEP causes character to be unable to talk
- Merged cb9b70e : Cash Shop support for 2011-11-22 clients - Topic tid:82791

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@17353 54d463be-8e91-2dee-dedb-b68131a5f0ec
2013-06-11 06:44:27 +00:00
akinari1087
04be9de10f Followup to r17351 - Missing guild.c changes
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@17352 54d463be-8e91-2dee-dedb-b68131a5f0ec
2013-06-08 23:55:45 +00:00