Skip to content

Commit

Permalink
Added request resource balance (#4646)
Browse files Browse the repository at this point in the history
* added request resource balance

* pr comments
  • Loading branch information
reyaleman authored May 17, 2024
1 parent 86d1854 commit 848d64f
Show file tree
Hide file tree
Showing 4 changed files with 50 additions and 0 deletions.
19 changes: 19 additions & 0 deletions data/scripts/network/request_resource_balance.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
local callbacks = {
[RESOURCE_BANK_BALANCE] = Player.getBankBalance,
[RESOURCE_GOLD_EQUIPPED] = Player.getMoney,
}

local handler = PacketHandler(0xED)

function handler.onReceive(player, msg)
local resource = msg:getByte()
local callback = callbacks[resource]
if not callback then
-- print("[Warning - network/request_resource_balance.lua] Unknown resource type " .. string.format("0x%02X", resource))
return
end

player:sendResourceBalance(resource, callback(player))
end

handler:register()
23 changes: 23 additions & 0 deletions src/luascript.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2113,6 +2113,12 @@ void LuaScriptInterface::registerFunctions()
registerEnum(DECAYING_TRUE);
registerEnum(DECAYING_PENDING);

registerEnum(RESOURCE_BANK_BALANCE);
registerEnum(RESOURCE_GOLD_EQUIPPED);
registerEnum(RESOURCE_PREY_WILDCARDS);
registerEnum(RESOURCE_DAILYREWARD_STREAK);
registerEnum(RESOURCE_DAILYREWARD_JOKERS);

registerEnum(CREATURE_ICON_CROSS_WHITE);
registerEnum(CREATURE_ICON_CROSS_WHITE_RED);
registerEnum(CREATURE_ICON_ORB_RED);
Expand Down Expand Up @@ -2815,6 +2821,8 @@ void LuaScriptInterface::registerFunctions()
registerMethod("Player", "setClientLowLevelBonusDisplay",
LuaScriptInterface::luaPlayerSetClientLowLevelBonusDisplay);

registerMethod("Player", "sendResourceBalance", LuaScriptInterface::luaPlayerSendResourceBalance);

// Monster
registerClass("Monster", "Creature", LuaScriptInterface::luaMonsterCreate);
registerMetaMethod("Monster", "__eq", LuaScriptInterface::luaUserdataCompare);
Expand Down Expand Up @@ -11204,6 +11212,21 @@ int LuaScriptInterface::luaPlayerSetClientLowLevelBonusDisplay(lua_State* L)
return 1;
}

int LuaScriptInterface::luaPlayerSendResourceBalance(lua_State* L)
{
// player:sendResourceBalance(resource, amount)
Player* player = getUserdata<Player>(L, 1);
if (player) {
const ResourceTypes_t resourceType = getNumber<ResourceTypes_t>(L, 2);
uint64_t amount = getNumber<uint64_t>(L, 3);
player->sendResourceBalance(resourceType, amount);
pushBoolean(L, true);
} else {
lua_pushnil(L);
}
return 1;
}

// Monster
int LuaScriptInterface::luaMonsterCreate(lua_State* L)
{
Expand Down
2 changes: 2 additions & 0 deletions src/luascript.h
Original file line number Diff line number Diff line change
Expand Up @@ -1048,6 +1048,8 @@ class LuaScriptInterface
static int luaPlayerGetClientLowLevelBonusDisplay(lua_State* L);
static int luaPlayerSetClientLowLevelBonusDisplay(lua_State* L);

static int luaPlayerSendResourceBalance(lua_State* L);

// Monster
static int luaMonsterCreate(lua_State* L);

Expand Down
6 changes: 6 additions & 0 deletions src/player.h
Original file line number Diff line number Diff line change
Expand Up @@ -1066,6 +1066,12 @@ class Player final : public Creature, public Cylinder
client->sendCombatAnalyzer(type, amount, impactType, target);
}
}
void sendResourceBalance(const ResourceTypes_t resourceType, uint64_t amount)
{
if (client) {
client->sendResourceBalance(resourceType, amount);
}
}

void receivePing() { lastPong = OTSYS_TIME(); }

Expand Down

0 comments on commit 848d64f

Please sign in to comment.