-
Posts
1,758 -
Joined
-
Last visited
-
Days Won
87
MrJunior last won the day on April 11
MrJunior had the most liked content!
Profile Information
-
Gender
Male
Contact Methods
-
OICQ
No information
Recent Profile Visitors
10,911 profile views
MrJunior's Achievements
-
MrJunior started following Callbacks for events
-
I am writing to request the addition of new event-related callbacks. Currently, we only have callbacks for BC, CC, and DS events; the idea is to make callbacks available for all events, especially PvP events.
-
I have 36 new systems and handle updates without any issues; you just need to know the right approach. If you explain your specific needs, I can help you out. As I mentioned, though, you can use the ItemBag system to create custom bags that add balances in your desired currencies. Or you can make new procedure and use DSDBQuery or JSDBQuery for push and execute the action.
-
MrJunior started following Money increases
-
@mantianfei Why is a WCoin/Goblin Point callback so urgent? You can use data structures to handle this type of data, or—if you prefer not to handle the data that way—you can simply use `EventItemBag` and utilize the options for WCoin, Goblin Point, Ruud, and Zen. In any case, there are countless alternatives available that don't require the requested callbacks. You can check : https://github.com/srv-config/Configs-Preview/wiki/Database-Structures And here: https://github.com/srv-config/Configs-Preview/wiki/Item-Structures#bagitem-structure
-
Request for new callbacks Hello developers, I am writing to request the addition of new callbacks. The idea is to have a wider range of callbacks available for the plugins we purchase. Examples: Callbacks for raffles, ItemOptionStatisticOption, Ice Throne, among others. In addition to these, I would like to request a callback that allows us to implement the Golden Archer (NPC). In the past, this NPC was used to redeem rewards via special codes; having a callback that enables this functionality would be very useful.
-
@Dima I am confused about your suggestion, as I currently have several systems that handle the stacking of gems, as well as items that stack using durability in the standard way.
-
Please add a native pre-movement validation point for map access requirements that can evaluate Regular Level only, without adding Master Level. This is necessary for servers that keep Master Level and Master Skill Tree after character reset while still requiring players to rebuild their regular level before they can access higher-progression maps. Current behavior and limitation The current Lua API provides these movement callbacks: onCharacterJoinMap onMoveMap onMapTeleport onTeleport onTeleportMagicUse They are asynchronous callbacks. They run after the game server has already accepted and completed the movement. Lua can then move the player back with Move.ToMap, but it cannot deny the original transition before entry. onUseCommand, onNpcTalk, and onItemUse are synchronous, but they cover only specific movement routes and cannot provide one authoritative validation point for all sources. Requested native configuration Add a map-move level validation mode to the MapMove / gate requirement system: <MapMoveRequirements LevelRequirementMode="0" /> Proposed values: 0 = Regular Level only (Character.Level) 1 = Master Level only (Character.MasterLevel) 2 = Regular Level + Master Level (current combined behavior where applicable) A per-entry override would also be useful: <Move ClientName="Ferea" MinLevel="400" LevelRequirementMode="0" /> With LevelRequirementMode="0", the native implementation should validate: if (lpObj->Level < requiredLevel) { return false; } and must not use a combined value such as: lpObj->Level + lpObj->MasterLevel Requested Lua callback Please also expose a synchronous callback that runs before the C++ move is committed: function onCheckMapMove(oPlayer, targetMap, targetX, targetY, gateNumber, moveSource) return 0 -- allow -- return 1 -- deny end Required execution contract | Property | Requirement | | Type | Synchronous | | Timing | Before any map transition is committed | | Return 0 / nil | Allow native movement | | Return 1 | Deny native movement and keep the player in the current position | | Performance | Must be lightweight; no blocking I/O required | Required parameters | Parameter | Description | | oPlayer | Player object | | targetMap | Final map number | | targetX, targetY | Final coordinates | | gateNumber | Gate index, or -1 where no gate is used | | moveSource | MAP_MOVE, COMMAND, GATE, NPC, ITEM, EVENT, SCRIPT, TELEPORT_MAGIC | | mapMoveEntryId (optional) | Native MapMove rule/entry ID if available | Why this matters A native regular-level-only option enables the following valid configuration: <Settings MoveToCharSelectWindow="0" ResetMasterLevel="0" ResetMasterSkillTree="0" /> The character can remain connected after reset and keep Master Level progression, but cannot use Master Level as a shortcut to enter maps such as Aida [2], Ferea, Raklion, Swamp of Calmness, Lost Tower upper floors, or Karutan [2] before rebuilding the required regular level. This improves player experience by removing the forced character-selection interruption while preserving progression integrity. Compatibility expectation The validation must apply uniformly to every native movement path: Map Move UI /move and equivalent commands gates and portals NPC transfers teleport items event entry routes scripted Move.Gate / Move.ToMap operations, with an optional explicit bypass flag for trusted server-side events teleport magic when it crosses a restricted area boundary Temporary Lua workaround Until a pre-move API exists, servers can use asynchronous callbacks to detect a forbidden destination and immediately return the player to a safe map. This is useful but not equivalent to a true deny because the player briefly enters the target map before correction. A native pre-move check or built-in LevelRequirementMode="0" is the reliable long-term solution.
-
Hello, I would like to request a native API for temporary character profiles designed for events such as Battle Royale, survival arenas, class trials, ranked PvP and temporary progression modes. The objective is to temporarily place a player into an isolated profile without modifying or risking the original character inventory, equipment, buffs, skills or attributes. Current Lua functions allow item access, deletion, insertion, stat changes and individual buff removal, but they are not sufficient to safely recreate the original state after an event. A full Lua-side solution may cause item serial issues, loss of advanced options, duplicate items, incorrect durability, socket/Harmony problems and incomplete buff restoration. Requested API: local sessionId, result = PlayerEvent.BeginTemporaryProfile(oPlayer, { EventKey = "BATTLE_ROYALE", Snapshot = { Stats = true, Level = true, MasterLevel = true, MasterSkillTree = true, LifeManaShieldAG = true, Equipment = true, MainInventory = true, ExtendedInventory = true, MuunInventory = true, PentagramInventory = true, Buffs = true, Skills = true, CashShopEffects = true, ItemEffects = true, }, TemporaryProfile = { BaseStats = { Strength = 100, Dexterity = 100, Vitality = 100, Energy = 100, Command = 100, }, Level = 1, LevelUpPoints = 0, InventoryMode = "EMPTY_EVENT_INVENTORY", SkillMode = "WHITELIST", AllowedSkills = {}, BuffMode = "SUPPRESS", OriginalBuffTimePolicy = "ELAPSE", }, Restrictions = { BlockTrade = true, BlockWarehouse = true, BlockPersonalShop = true, BlockChaosMachine = true, BlockInventoryMove = true, BlockItemUse = true, BlockItemRepair = true, BlockTeleport = true, BlockNormalItemPickup = true, }, Recovery = { PersistSnapshotBeforeApply = true, RestoreBeforeCharacterSaveOnDisconnect = true, RestorePendingSessionOnLogin = true, RestorePendingSessionsOnServerStart = true, }, }) local result = PlayerEvent.EndTemporaryProfile( oPlayer, sessionId, "EVENT_FINISHED" ) The native implementation should use an internal opaque snapshot. Lua should not be required to manually serialize and rebuild actual items. The snapshot must preserve the exact original item state, including: Original inventory slot and equipped position Unique item serial Item level and durability Skill, luck, additional option and excellent options Ancient/set options Harmony option type and value Socket options and bonus socket option 380 option, period item data, pet data, elemental/pentagram/errtel data Muun inventory and related items Any other internal item fields required for a bit-perfect restoration Buff restoration should preserve: Buff identifier Remaining duration Effect types and values Buff source / caster Cash Shop and item-generated effects Configurable time policy: ELAPSE, PAUSE or REMOVE The API should also provide an isolated Event Inventory: EventInventory.Clear(oPlayer, sessionId) EventInventory.AddItem(oPlayer, sessionId, itemInfo) EventInventory.TransferRewards(oPlayer, sessionId, { Destination = "GREMORY_OR_MAIN_INVENTORY" }) This is necessary so event rewards and temporary equipment do not mix with the player’s original inventory. Required safety guarantees: BeginTemporaryProfile must be atomic. EndTemporaryProfile must be idempotent. No original item may be deleted or recreated through Lua. The original profile must be restored after event finish, disconnect, server restart or unexpected crash. The GameServer must prevent item movement, trade, warehouse, chaos machine and similar actions while the temporary profile is active. The system must prevent duplicate rewards and duplicate profile restoration. Recovery should be automatically processed on player login and GameServer startup. The API should provide clear result/error codes and server logs for create, restore, recovery and failure cases. This feature would allow secure development of Battle Royale, survival arenas and temporary PvP modes without risking player items or permanent character data. Thank you.
-
MrJunior changed their profile photo
-
Hello developers, through this I would like to request the addition of a way to define where the item will be created, for example: EventInventory GremoryCase CashShop Inventory Ground Currently, there is nothing that allows us to define where the item will be created, such as: https://github.com/srv-config/Configs-Preview/wiki/Item-Structures
-
@Wizzy Is it possible to add a callback that makes the object :Monster Follow the object :Player?
-
@Wizzy You can change this to completed; after the last update today, it's possible to manipulate the attributes. Thank you for that.
-
@Wizzy I can't register to help with the tests.
-
Hello developers, through this request, I would like to include a callback that captures a player's complete information. Example: onCurrentCharacterUserData(oPlayer, currentData) The idea of this method is to retrieve all the character's information: Items, Level, Resets, Inventory, Attributes, Master Level, Enhancements, Skills Generally, the idea of the method would be to save this information for the creation of an event (Battle Royale). The idea of this event is to place all players in an arena with absolutely nothing. When the event starts, items will begin to appear so that players can equip themselves and use skills until only one survivor remains. But, to implement this event, we need a method that captures the player's current information and saves their current state in a generalized way, because at the end of the event, when the players leave the Battle Royale area, the player's current state would need to be retrieved. In other words, it would basically be a method that stores the player's current information so that we can plan the event accordingly. Demonstration video of a Battle Royale in action:
-
I have a question, and it's not specified there. Will the new client be a product only for iOS and Android? Will there be a remastered desktop version of the emulator's base game client as a whole, or is the goal only iOS and Android?
