* 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>
* 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>
* re-Disabled the ADJUST_SKILL_DAMAGE by default (core.h) that enabled by accident since 794c1a8. :P
* Removed MAX_MAP_SKILL_MODIFIER variable.
* Removed fixed array for skill damage adjustment in each map.
Signed-off-by: Cydh Ramdh <house.bad@gmail.com>
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.
* Wizard/Warlock Skill
* Moved Sightrasher (WZ_SIGHTRASHER) requirement to check Sight (SC_SIGHT) is active or not to skill_check_condition_castend section.
* Fixed Sightrasher (WZ_SIGHTRASHER) splash area to 3x3. (bugreport:9298)
* Now Comet (WL_COMET) cannot hits Hiding target (The mistake is not at flag 0x10000 in skill_db.txt, the flash should be added by SD_ANIMATION). (bugreport:8909).
* Now Reading Spell Book (WL_READING_SB) checking the number of available spell books in Spell Book DB first to prevent infinite loop.
* Sage Skill
* Now Abracadabra (SA_ABRACADABRA) checking the number of available skills in Abra DB first to prevent infinite loop.
* Reduced MAX_SKILL_ABRA_DB from 350 to 160.
* Shadow Chaser Skill
* Fixed Chaos Panic (SC_CHAOSPANIC) effect. (bugreport:9321).
* Genetic Skill
* Now Wall of Thorn (GN_WALLOFTHORN) can be knocked back but not a whole skill group and durability (HP & max hit) for each skill unit.
* Guillotine Cross Skill
* Now Magic Mushroom (SC_MAGICMUSHROOM) effect checks the number of available skills in Magic Mushroom DB first to prevent infinite loop.
* Changed 'RemoveFlag' in db/magicmushroom_db.txt value to 1 to remove skill by importing. (bugreport:9322).
* Wanderer/Minstrel Skill
* Now Randomize Spell (WM_RANDOMIZESPELL) checks the number of available skills in Improvise DB first to prevent infinite loop.
* Reduced MAX_SKILL_IMPROVISE_DB from 50 to 30.
* Rebellion Skill
* Cleaned up, added, corrected some (missing) sequences & DB values.
* Fixed Hammer of God (RL_HAMMER_OF_GOD) splash damage.
* Fixed Shaterred Strom (RL_S_STORM) push back & force to sit effect (for player, or stun for monsters) (first implementation leftover).
* Fixed Slug Shot (RL_SLUGSHOT) hitrate-distance penalty (first implementation leftover).
* Fixed Howling Mine (RL_H_MINE) damage ratios (first implementation leftover).
* Now Bind Trap (RL_B_TRAP) only can be placed 1 at same time.
* Fixed Bind Trap (RL_B_TRAP) damage calculation by using Caster's DEX, Target's Current HP, & Skill Level. FIXME: Exact formula still unknown (refers to idAthena formula).
* Now Dragon Tail (RL_D_TAIL) doesn't split damage among targets anymore.
* Now Crimson Marker (RL_C_MARKER) will fails to cast if no slot available.
* Implemented official packet `ZC_C_MARKERINFO` of Crimson Marker (RL_C_MARKER) mini-map marker (first implementation leftover). !TODO: Confirm the packet for older or newer clients (idAthena partial merge r1497)
* References: http://forums.irowiki.org/showpost.php?p=1387992&postcount=968, follow up 507f047, dd67f9d
Misc:
* Fixed some skills that should work only in shoot range (map_foreachinshootange, by default), and added check for respecting *skill_wall_check* (map_foreachinrange).
* Fixed item stackable check for `/item` command, follow up 9b4d922.
* Fixed npc source file isn't removed properly by @unloadnpcfile. (bugreport:9311).
* Added constantan for status_change_start() and sc_start() scripts as well
* SCSTART_NONE = 0x0
* SCSTART_NOAVOID = 0x1
* SCSTART_NOTICKDEF = 0x2
* SCSTART_LOADED = 0x4
* SCSTART_NORATEDEF = 0x8
* SCSTART_NOICON = 0x10
* Moved and changed itemdb_unique_id() to pc_generate_unique_id().
* Seperated check for skill SC requirement to skill_check_condition_sc_required().
* Added skill unit flag `UF_KNOCKBACK_GROUP`, just an option to make skill unit can be knocked back a whole group.
* Typos and other minor changes!
Signed-off-by: Cydh Ramdh <house.bad@gmail.com>
* Switching arrows no longer stops attacks. (bugreport:9270)
* Looter monsters will now randomly pick items rather than going for the closest one. (bugreport:9268)
* Follow up to 0fed97c. Moved pc_setsit before skill_sit to not break skills that count players who are sitting. (bugreport:8966)
* Follow up to 2d2991a. Cleaned up some compile warnings.
* Updated the inf3 descriptions in the skill_db.
- 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>
- Kunai Splash (KO_HAPPOKUNAI) ammo check failure crashing map-server (bugreport:9112)
- Fear Breeze status (SC_FEARBREEZE) makes impossible to critical for single hit (bugreport:8197)
- Missing item avail check at NPC Cashshop causing item with item_avail cannot be bought (bugreport:9106)
- Swapped value between 'nk' and 'inf' for MH_LIGHT_OF_REGENE & MH_OVERED_BOOST
- Multi-hit by SC_FEARBREEZE that possibly causing map-server crashed if no ammo equipped
- Thank to all bug reporters
Misc:
- Add enum for clif_damage type, e_damage_type
- Add check for Autotrade Persistency, make sure to kick player who fail open vending/buyingstore
Signed-off-by: Cydh Ramdh <house.bad@gmail.com>
* 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.
- Increased limit from 32,767 to 65,535.
- Still uses same amount of memory with doubled usable size.
- Adjusted CARD0_PET from -256 to 256.
- Please run both SQL files after applying this update to avoid values becoming corrupt.
- Tested and works on clients 2012-04-10 and up thanks to Cydh.
- Removed an unused SQL file.
-- 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>
* Cleaned up the card fix calculations once more. (bugreport:8848)
* Fixed Kaite pre-renewal effect. (bugreport:6415)
* Fixed a possible crash from Elemental Action.
* Cleaned up the costume atcommand messages.
* Fixed a few issues from the CppCheck report.
* Added some items following idRO Cash trader NPC (added on db/re/item_db.txt)
* Updated documentation on doc/script_command.txt and npc.c
* Follow up d4128ce
Signed-off-by: Cydh Ramdh <house.bad@gmail.com>
Add a check_db on char-serv startup to ensure all sql-tables was loaded
correctly and avoid error on runtime.
Fix OnInterIfInitOnce being executed on reloadscript, (now only done at
server startup)
Follow up hash:0f2dd7fcf, fixed a typo on packet lenght for storagelist
this should fix bugreport:8344
Hotfix for bugreport:8333, (we're now checking if we fully add object on
map before attempting to spawn it)
-- Suggestion: http://rathena.org/board/topic/84169-specialty-shops/
-- Credits: Aleos & Akinari for first diff file that I used to finish this and testing/debugging (well, I don't know the original ones, just tell us or just do pull request if you know the first creator.)
-- How to use?
---> -%TAB%itemshop%TAB%<NPC Name>%TAB%<sprite id>,<costitemid>,<itemid>:<price>{,<itemid>:<price>...}
---> -%TAB%pointshop%TAB%<NPC Name>%TAB%<sprite id>,<costvariable>,<itemid>:<price>{,<itemid>:<price>...}
Signed-off-by: Cahyadi Ramadhan Togihon <house.bad@gmail.com>
-- Added a new option info for skill's 'inf2', INF2_NO_NEARNPC, that used for checking if the skill is castable if caster/ground/target is near with NPC (by specified range option)
-- Corrected Shadow Chaser skills, SC_CHAOSPANIC and SC_MAELSTROM, that cannot be placed near warp portal (according to iRO Skill Balance Patch)
-- Added 'db/skill_nonearnpc_db.txt' for more option of INF2_NO_NEARNPC (additional range beside splash area, unit range, or layout range calculaiton and type of NPC)
* Follow up 5e6626e
* Added a new battle_config to increase all items drop rate by 0.01%. (bugreport:8005)
* Moved OnInit to load before OnInstanceInit in npc_reload(). (bugreport:8043)
* Fixed homunculus causing the map-server to crash. (bugreport:8036)
- Disabled by default on src/config/core.h. Uncomment '#define ADJUST_SKILL_DAMAGE' to enable this skill damage adjustment
- Added skill_damage_db.txt (thank Lilith for 'Manage Skill Damage')
- Added new mapflag: 'skill_damage'. Please read 'doc/mapflags.txt' for more details
*Fixed bugreport:8029 (thank exneval for testing and reporting) (Akinari)
*Follow-up 647f99f (Akinari)
*Follow-up 15074d8: optimized item_isNoEquip check parts
*and some mirror changes
Script commands 'sit' and 'stand' now work only when character is in required state. (Euphy)
~ Hercules Merges ~
* Added extra support to GM unload NPC via right-click [credits: Ind]
* Implemented real-time server stats (in and out data and ram usage). [credits: Ai4rei, mkbu95]
* Fixed chatrooms disappearing after using @disguise. [credits: MatiasSW]
* Implemented 'notomb' mapflag for Bossnia maps. [credits: CairoLee]
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@17404 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Removed a bunch of script commands and replaced others
- Rewrote the way instances are created
- Added Instance Database files
- Fixed and rewrote instances scripts (Euphy)
- Added reloading to instancedb
- Instances are now persistent through @reloadscript
- Special thanks to Auriga (emulator) for the base of their system
- Special thanks to Euphy for doing major testing and script rewrites for this
- Special thanks to Lemongrass and Lighta for some help along the way
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@17386 54d463be-8e91-2dee-dedb-b68131a5f0ec
--change connection sequence for 82d+9a0+20d => 9a1 => 99d
-Merge some Hercules stuffs:
--upd char (default map check, 0x99d HC)
--CreateParty enforced chk
--mapindex_db for name lookup
-Add max packet_len check on chrif init for mmo_charstatus.
-Upd @mapinfo, add missing mapflag info.
-Expand teleport_timer for pet,homon,ele (Daegaladh)
-Make homon,ele inherit master speed (Daegaladh)
-Fix frostnova status chance and driven fail msg. (Daegaladh)
-Cleanup, replace hardcoded ai value with enum eq, change pet.msd to pet.master to harmonize with other blchar.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@17332 54d463be-8e91-2dee-dedb-b68131a5f0ec
-- fix clif_colormes, turn it into more generic function and remove duplicate equivalent, channel_colormes
-- Move allow_user_color_override config into channel option. (only user owner or admin could enable/disable for chan)
- Remove some hardcoded string using colormes msg_conf(378-382)
- Make clif_GlobalMessage being used in clif_parse_GlobalMessage instead redeclaration.
- Add some new packet (0x978,0x979) worldinfo related, thx Shaktoh
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@17317 54d463be-8e91-2dee-dedb-b68131a5f0ec
-Fix bugreport:7615 freeze after closse by Secure timer, also fix "Unable to restore stack! Double continuation!" case (when dead by mob talking to npc)
-Upd secure timer, now stop timer when we already in close/end state.
-Fix st_>mes_active case where var wasn't refresh but dialogue was ended
-Add packet support for ZC_ITEM_PICKUP_ACK_V5 (0x990), (0x0897,0x093F,0x0886,0x035f) (Hercule/Shaktoh)
-Cleanup too duplicate, too wide comment
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@17303 54d463be-8e91-2dee-dedb-b68131a5f0ec
-- capped CAMOUFLAGE effect, (defs should be lower then 0, atk bonus max 300, fix cri bonus (base is 1000 not 100))
-- fix bugreport:7601 and add new mapflad for clif_maptypeproperty2 (nomineeffect, nolockon, noitemconsumption, nousecart, nosumstarmiracle) still investgating full effect
-- harmonize script_ref source
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@17297 54d463be-8e91-2dee-dedb-b68131a5f0ec
-- Move channel into is own file
-- fix channel alliance not being refresh when ack alliance
-- improve ram consumtion of chan, (map and guild chan no longer zombie when no more player in there)
-- spead up cleanup
-- increase encapsulation
-- cleanup duplicate code
-Upd merge ban|unban|banlist|setopt new options
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@17284 54d463be-8e91-2dee-dedb-b68131a5f0ec