113 Commits

Author SHA1 Message Date
aleos
8ac2975816 Resolve a merge error 2024-08-01 12:24:28 -04:00
aleos
142505f398 Merge branch 'master' into feature/map_zones 2024-08-01 12:15:05 -04:00
eppc0330
54dc915661
Add mapflag specialpopup (#8365)
* Add packet ZC_SPECIALPOPUP.
* Add mapflag and script command specialpopup.
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
Co-authored-by: Atemo <Atemo@users.noreply.github.com>
Co-authored-by: Aleos <aleos89@users.noreply.github.com>
2024-08-01 09:05:54 -04:00
aleos
394d502e1b Adjust getMapZone
* Change the lookup method for getMapZone to utilize the value stored in the map_data rather than looking through map_zone memory bringing faster results.
2024-06-26 14:37:47 -04:00
Aleos
f0a1847377
Merge branch 'master' into feature/map_zones 2024-06-21 08:59:37 -04:00
Playtester
ec9a5fae4b
Monster Loot / Item Dropping Position (#8347)
- When a monster is killed, its first item will now always drop at the exact cell the monster was on
- When a monster drops more than one item, the items will be deployed on 3 cells around the monster (looping): SE, W and N
- Fixed drop position of looted items (similar to regular drops but independent to it and starts north)
- Fixed item drop order (script-granted -> regular drops -> looted drops)
- Fixed looted items showing special drop effects
- Searching for a free cell to drop an item on now uses the official algorithm
- When a monster drops an item, it will no longer drop on cells that are occupied by characters or pets
- When a player drops an item, it will now drop in a 5x5 area around the player
- Items dropped by players can now stack on the same cell unless the new "item_stacking" config is disabled
- When an MVP drop drops to the floor because the player's inventory was full, it will now always drop on that player's cell
- Fixes #8345
2024-06-07 18:29:01 +02:00
aleos
2553658eb9 Merge branch 'master' into feature/map_zones 2024-05-31 12:15:40 -04:00
idk-whoami
f60a4bdfaf
Corrected script for some item #28 (#8340) 2024-05-31 17:10:01 +02:00
Playtester
5d232db89e
Spawn and Free Cell Search Behavior (#8324)
- When searching for a map-wide free cell, the tiles 15 cells from the edge are no longer considered
  * Added a configuration to change the edge size to any value between 1 and 40
- When searching for a free cell, the tiles 4-5 cells from the edge are now considered invalid and trigger a retry
  * If you make the edge size smaller than this, it will use edge size instead
- Searching for a free cell now defaults to 50 tries, but if the "no spawn on player" option is active, those failed attempts are not counted towards the limit anymore
- When a monster spawns in a defined area there will now be 8 attempts to spawn it on a valid cell within the area and then one attempt on the center cell; if all 9 attempts fail, there will now be 50 tries to spawn it map-wide before it gives up
- When a monster has fixed spawn coordinates, but those coordinates are a wall, it will now spawn in a random location map-wide instead
  * This also applies to icewall blocking the cell unless the boss_monster command was used
- Each monster in an area spawn will now receive its own spawn center within the spawn area on server start
  * This results in the spawn area being larger but having a bias towards the center
  * Added a configuration to disable this behavior
- Fixed slave monsters always being active and constantly calling the "search freecell" function even though neither them nor their master have been spotted yet
- Fixed map server crash when setting no_spawn_on_player to 100 (follow-up to 33b2b02)
- Updated prontera field spawns to official episode 18+
- Updated all champion mob respawn times to 3 minutes and sorted them by map name
- Fixes #8300
2024-05-19 17:12:44 +02:00
aleos
477c845027 Clean ups from review
Thanks to @Lemongrass3110!
2024-05-07 12:26:13 -04:00
aleos
074fdfbd5c Refactor a few functions to use sd lookup 2024-05-03 16:26:42 -04:00
aleos
060629bd17 Adjust structs to classes
* Adjust to class to avoid duplication of definitions.
* Rename prefix to match "class".
2024-05-03 15:46:59 -04:00
Aleos
849f1ec477
Merge branch 'master' into feature/map_zones 2024-05-03 14:16:05 -04:00
Lemongrass3110
b48948822a
Replaced NULL with nullptr (#8298) 2024-05-03 19:38:13 +02:00
aleos
1e4c6ffaab Merge branch 'master' into feature/map_zones 2024-04-16 12:48:27 -04:00
Lemongrass3110
cb42dceb87
Switched most C headers to C++ (#8225) 2024-04-07 22:14:51 +02:00
Pokye
eb308dcad2
Implemented Dialog Types (#8110)
Fixes #8109

Co-authored-by: Aleos <aleos89@users.noreply.github.com>
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
2024-02-26 22:08:52 +01:00
aleos
fc3cc3c1c2 Fixes atcommands for PvP and GvG toggle
* Fixes atcommands pvpon, pvpoff, gvgon, and gvgoff to properly toggle the current map with the appropriate zone.
* Atcommand pvpon will assign the MAPTYPE_NOPENALTY_FREEPKZONE zone.
* Atcommand gvgon will assign the MAPTYPE_EVENT_GUILDWAR zone.
* Adds getMapZone() to return a map's zone.
* Adds setZone() to set a map's zone.
Thanks to @Atemo!
2024-01-18 10:22:07 -05:00
Atemo
c8ab735348
Updated Level 250/50 to 260/55 (#8108)
Updated Level 250/50 to 260/55.
Hp and Sp are unknown.
Additionally updated Super_Novice_E job level from 50 to 70 (note: this class doesn't get additional stats by job level).
2024-01-18 15:53:29 +01:00
aleos
c178f03a26 Convert s_map_zone_data storage to shared_ptr 2024-01-17 16:09:36 -05:00
aleos
941085e826 Adds ability to clear mapflags
* Added the Clear label to allow mapflags to be removed for importing use.
* Converts mapflag storage into multimap.
2024-01-17 14:05:29 -05:00
aleos
e9beffea50 Adds object type check to isStatusDisabled
* Check by object type rather than passing arbitrary integers to compare against.
2024-01-16 14:19:58 -05:00
aleos
34065e4ca6 Map Zone parsing optimizations 2024-01-16 11:10:56 -05:00
aleos
08068bf3a4 Remove plurality 2024-01-14 11:33:35 -05:00
aleos
1e4a219832 Implements mapflag MF_FLEE_PENALTY
* Deprecate the bg_flee_penalty and gvg_flee_penalty battle configs.
* Removes hardcoded restrictions limiting to only BG and GvG maps.
2024-01-14 11:19:33 -05:00
aleos
39f6e1492b Initial implementation of Map Zones
* Implements Map Zones which allows easier configuration of map settings.
* The restricted mapflag has been removed as they will no longer be needed.
* General cleanups and optimizations.
2024-01-12 15:43:52 -05:00
idk-whoami
c8980072a5
Corrected script for some item #26 (#8026)
Thanks to @Pokye, @Atemo
2023-12-15 15:59:55 +01:00
idk-whoami
61311f5912
Corrected script for some item #25 (#7946) 2023-10-10 13:47:08 +02:00
idk-whoami
0f18869276
Corrected script for some item #24 (#7914)
Thanks to @Atemo
2023-09-01 17:13:05 +02:00
Vincent Stumpf
08a1c41d1b
Refactor MapFlag accessors (#7783)
Use methods instead of direct member access.
2023-06-03 17:38:29 -07:00
Pokye
9907721a69
Added a mapflag to block BANK (#7773) 2023-05-22 12:23:46 -04:00
Everade
7853e926c2
Episode 17.2 - Sage's Legacy (#6799)
* Episode 17.2 Initial Release of instances and quests
* Added warp portals and monster spawn scripts
* Added Episode 17.2 related database entries

Closed #6470 

Thanks to @Megelith @Pokye 

Co-authored-by: JohnnyPlayy <JohnnyPlayy@users.noreply.github.com>
Co-authored-by: Everade <privacy@gatheringro.com>
Co-authored-by: crazyarashi <26841779+crazy-arashi@users.noreply.github.com>
Co-authored-by: Atemo <capucrath@gmail.com>
2023-04-12 21:27:34 +02:00
Atemo
b2ceb30e30
Added missing items equipment up to 02/10/2023 (#7606)
* Added missing items equipment up to 02/10/2023
* Implemented the item bonuses bIgnoreResRaceRate and bIgnoreMResRaceRate

Thanks to @attackjom for the review!
2023-02-15 16:15:11 +01:00
Vincent Stumpf
e235c9cab4
Change common and config includes to use <> (#7596) 2023-02-12 12:46:06 -08:00
Lemongrass3110
14cb61d598
Removed mapindex from char-server (#7533)
Converted last_point to mapname
Converted save_point to mapname
Converted memo to mapname
Converted start point to mapname
Removed default map
Converted party member to mapname
Converted maplists to mapname
Removed mapindex loading
Fixed instance loading with multiple map-servers
Fixed castle loading with multiple map-servers
Fixed battleground loading with multiple map-servers
Fixed warping between map-servers

Thanks to @aleos89 for his help!
2023-01-11 16:54:53 +01:00
Lemongrass3110
39d5a02a31
Initial release of adventure agency (#7224)
Thanks to @Dia, @OptimusM, @Balferian and @ecdarreola
2022-12-21 01:17:42 +01:00
Lemongrass3110
2c4ee64b59
Start refactoring the core to C++ (#7303) 2022-12-20 23:37:31 +01:00
Singe Horizontal
8eac71f57f
Cleaned struct tokens for map_session_data and status_change (#7490)
Fixes #7492
2022-12-16 19:16:29 +01:00
Lemongrass3110
96efb0e426
Block dynamic NPCs in instances (#7429)
Fixes #7420

Thanks to @attackjom
2022-11-10 22:14:42 +01:00
Vincent Stumpf
47c9a36215
Refactor generator to support future features (#7214)
Co-authored-by: Akkarinage <mike.langford@industrial-illusions.net>
Co-authored-by: Aleos <aleos89@users.noreply.github.com>
2022-09-25 00:37:21 -07:00
Vincent Stumpf
c751ca6b74
Client Navigation Generator (#6023)
Creates navigation files for the client.
2022-08-26 21:31:45 -07:00
Vincent Stumpf
0ac52d0bb4
Initial support for web service for newer clients (#5731)
Co-authored-by: Jittapan Pluemsumran <secret@rathena.org>
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
2022-08-16 15:10:18 +02:00
Daegaladh
2bb740115e
Renamed NoMineEffect mapflag to ForceMinEffect to clarify it's behavior (#6940) 2022-05-14 13:20:10 +02:00
Cydh Ramdh
16ccad42e8
Update vending and buyingstore on warp (#6718)
Fixed #6671, vendor & buyer location never been updated if the location is changed
Added MF_NOBUYINGSTORE and CELL_NOBUYINGSTORE to separate from MF_VENDING & CELL_NOVENDING
Added some missing check for buyingstore states
Updated mapflag doc
Added new constants

Co-authored-by: Aleos <aleos89@users.noreply.github.com>
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
2022-03-31 23:08:35 +02:00
Jittapan Pluemsumran
695de6313a
Implemented new bonus for official Sarah Card behavior. Fixes #6189 (#6281) 2022-03-29 15:35:15 +07:00
idk-whoami
67d1261659
Added RC2_Malangdo race groups (#6633) 2022-02-24 01:20:01 +01:00
Aleos
47e515888c
Changes mapflag storage type to vector (#6624)
* Changes the mapflag storage type from an unordered_map to vector giving it a performance boost.
* This changes all lookups and modifications to O(1) rather than a possible O(log).
2022-02-18 08:10:57 -05:00
Aleos
84248255b7
Implements MF_NOPETCAPTURE (#6618)
* Fixes #6556.
* Implements the nopetcapture mapflag which is used to stop pet-type monsters from being caught.
Thanks to @RagnaWay and @Lemongras3110!
2022-02-16 12:51:25 -05:00
Sader Fawall
ac7292c92d
Allow creating instance without timer or data (#5112)
* Allow creating instance with no timer
* Added NoNpc to prevent copying NPCs from the source map
* Added NoMapFlag to prevent copying Mapflags from the source map
* Added instance_list script command to retrieve the instance IDs for the given map name/instance mode

Co-authored-by: Aleos <aleos89@users.noreply.github.com>
Co-authored-by: Atemo <atemo@users.noreply.github.com>
Co-authored-by: Lemongrass3110 <3517879+Lemongrass3110@users.noreply.github.com>
2022-02-11 18:45:17 +01:00
Jittapan Pluemsumran
53a367785d
Added new mapflags for disabling renewal exp & drop penalty (#6541) 2022-01-21 20:28:42 +07:00