Skip to content

Commit

Permalink
新增[军团]功能
Browse files Browse the repository at this point in the history
  • Loading branch information
NingLeixueR committed Jul 1, 2024
1 parent 1cd6e7c commit 2595b7c
Show file tree
Hide file tree
Showing 30 changed files with 8,750 additions and 379 deletions.
1 change: 1 addition & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,7 @@ INCLUDE_DIRECTORIES(public/cpp/logic/public/public/ranklist)
INCLUDE_DIRECTORIES(public/cpp/logic/public/public/brief)
INCLUDE_DIRECTORIES(public/cpp/logic/public/public/calendar)
INCLUDE_DIRECTORIES(public/cpp/logic/public/public/keyvalue)
INCLUDE_DIRECTORIES(public/cpp/logic/public/public/family)
INCLUDE_DIRECTORIES(public/cpp/logic/public/template_tab)
INCLUDE_DIRECTORIES(public/cpp/logic/tools)

Expand Down
11 changes: 11 additions & 0 deletions bin/idl/csvtable.idl
Original file line number Diff line number Diff line change
Expand Up @@ -518,4 +518,15 @@ struct tab_recharge
int32_t m_vipexp; // [index:8][load:y] ��ֵ�õ�λ���͵�vip����
int32_t m_count; // [index:9][load:y] �Ƿ����Ƴ�ֵ����
vector<int32_t> m_activityid; // [index:10][load:y] ����ָ�������ʱ���ܳ�ֵ��һ��
};

// ���ŵȼ���
struct tab_familylv
{
int32_t m_id; // [index:0][load:y] ���ŵȼ�
string m_name; // [index:1][load:y] ����
string m_remarks; // [index:2][load:n] ��ע

int32_t m_exp; // [index:3][load:y] ������Ҫ�ľ���
int32_t m_maxmembers; // [index:4][load:y] ����������
};
53 changes: 39 additions & 14 deletions bin/proto/db.proto
Original file line number Diff line number Diff line change
Expand Up @@ -7,20 +7,21 @@ package pbdb;

enum ENUM_DB
{
ENUM_DB_ACCOUNT = 0; // 账号数据
ENUM_DB_ROLE = 1; // 玩家数据
ENUM_DB_BRIEF = 2; // 玩家简要数据
ENUM_DB_BAG = 3; // 背包数据
ENUM_DB_KEYVALUE = 4; // 公共key/value数据
ENUM_DB_MAIL = 5; // 邮件数据
ENUM_DB_GUILD = 6; // 工会数据
ENUM_DB_NOTICE = 7; // 公告数据
ENUM_DB_RANKLIST = 8; // 排行数据
ENUM_DB_ACTIVITY = 9; // 活动数据
ENUM_DB_TASK = 10; // 任务数据
ENUM_DB_CALENDAR = 11; // 脚本日历数据
ENUM_DB_ROLEKEYVALUE = 12; // 玩家个人key/value数据
ENUM_DB_COUNT = 13;
ENUM_DB_ACCOUNT = 0; // 账号数据
ENUM_DB_ROLE = 1; // 玩家数据
ENUM_DB_BRIEF = 2; // 玩家简要数据
ENUM_DB_BAG = 3; // 背包数据
ENUM_DB_KEYVALUE = 4; // 公共key/value数据
ENUM_DB_MAIL = 5; // 邮件数据
ENUM_DB_GUILD = 6; // 工会数据
ENUM_DB_NOTICE = 7; // 公告数据
ENUM_DB_RANKLIST = 8; // 排行数据
ENUM_DB_ACTIVITY = 9; // 活动数据
ENUM_DB_TASK = 10; // 任务数据
ENUM_DB_CALENDAR = 11; // 脚本日历数据
ENUM_DB_ROLEKEYVALUE = 12; // 玩家个人key/value数据
ENUM_DB_FAMILY = 13; // 军团
ENUM_DB_COUNT = 14;
};

// ENUM_DB_ACCOUNT, // 账号数据
Expand Down Expand Up @@ -202,7 +203,31 @@ message db_calendar
optional bool m_finish = 4; // 是否结束
}

message familyer
{
optional int64 m_roleid = 1; // 军团成员id
optional int32 m_joinutc = 2; // 加入军团的时间
optional int32 m_lastsignutc = 3; // 上次签到时间
// 职位
enum eposition
{
leader = 0; // 军团长
counsellor = 1; // 军师
ordinary = 2; // 普通成员
}
optional eposition m_position = 4; // 职位
}

message db_family
{
optional int64 m_id = 1; // 军团id
optional int32 m_createutc = 2; // 军团创建时间
optional string m_name = 3; // 军团名称
optional int64 m_leader = 4; // 军团长
optional int32 m_lv = 5; // 军团等级
optional int32 m_exp = 6; // 军团经验
map<int64,familyer> m_member = 7; // 成员
}



Expand Down
40 changes: 40 additions & 0 deletions bin/proto/net.proto
Original file line number Diff line number Diff line change
Expand Up @@ -539,4 +539,44 @@ message PROBUFF_NET_TASK_RECEIVE_AWARD_RESPONSE
map<int32,int32> m_drop = 3; // 奖励 key:itemid value:itemcount
};

message PROBUFF_NET_CREATE_FAMIL
{
optional string m_name = 1; // 创建军团的名称
}

message PROBUFF_NET_CREATE_FAMIL_RESPONSE
{
optional int32 m_stat = 1; // 状态
}

message PROBUFF_NET_JOIN_FAMIL
{
optional int64 m_familid = 1;
}

message PROBUFF_NET_JOIN_FAMIL_RESPONSE
{
optional int32 m_stat = 1; // 状态
}

message PROBUFF_NET_LEAVE_FAMIL
{
optional int64 m_familid = 1;
}

message PROBUFF_NET_LEAVE_FAMIL_RESPONSE
{
optional int32 m_stat = 1; // 状态
}

// 获取军团列表
message PROBUFF_NET_FAMIL_LIST
{
optional int64 m_familid = 1;
}

message PROBUFF_NET_FAMIL_LIST_RESPONSE
{
optional int64 m_familid = 1;
repeated pbdb.db_family m_family = 2;
}
1 change: 1 addition & 0 deletions public/cpp/actor/actor_base/nactortype.h
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ namespace ngl
ACTOR_CALENDAR, // 脚本日历
ACTOR_CHANNEL, // 订阅/发布
ACTOR_KEYVALUE, // 公共key/value
ACTOR_FAMILY, // 军团家族
ACTOR_DB, // 必须是最后一个
ACTOR_SIGNLE_FINISH = ACTOR_DB + pbdb::ENUM_DB_COUNT,
ACTOR_COUNT = ACTOR_SIGNLE_FINISH,
Expand Down
21 changes: 17 additions & 4 deletions public/cpp/actor/actor_logic/game/actor_role.cpp
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
#include "manage_curl.h"
#include "ttab_specialid.h"
#include "manage_curl.h"
#include "nsp_server.h"
#include "nsp_client.h"
#include "actor_role.h"
Expand Down Expand Up @@ -146,7 +147,7 @@ namespace ngl
m_attribute.set_sync(false);
auto pro = std::shared_ptr<pbnet::PROBUFF_NET_SYNC_ATTRIBUTE>();
m_attribute.topb(*pro);
send2client(pro);
send_client(id_guid(), pro);
}
}

Expand All @@ -161,7 +162,7 @@ namespace ngl
*pro->mutable_m_role() = m_info.get()->getconst();
*pro->mutable_m_bag() = m_bag.get()->getconst();
*pro->mutable_m_task() = m_task.get()->getconst();
send2client(pro);
send_client(id_guid(), pro);
}

void actor_role::createorder(std::string& aorder, int32_t arechargeid)
Expand Down Expand Up @@ -234,7 +235,7 @@ namespace ngl
{
(*cpro->mutable_m_items())[itor->first] = itor->second;
}
send2client(cpro);
send_client(id_guid(), cpro);
}

return lstat;
Expand Down Expand Up @@ -302,6 +303,18 @@ namespace ngl
return true;
}

bool actor_role::handle(message<pbnet::PROBUFF_NET_CREATE_FAMIL>& adata)
{
if (ttab_specialid::m_createfamilconsume > m_info.gold())
{
return false;
}

m_info.change_gold(-ttab_specialid::m_createfamilconsume);
handle_forward<ACTOR_FAMILY>(adata);
return true;
}

bool actor_role::is_first_recharge(int32_t arechargeid)
{
const pbdb::db_role& lrole = m_info.get_constrole();
Expand Down
7 changes: 5 additions & 2 deletions public/cpp/actor/actor_logic/game/actor_role.h
Original file line number Diff line number Diff line change
Expand Up @@ -64,11 +64,11 @@ namespace ngl
m_attribute.updata(amodule, avalue);
}

template <typename T>
/*template <typename T>
void send2client(std::shared_ptr<T>& adata)
{
actor_base::send_client(m_gatewayid, id_guid(), adata);
}
}*/

void sync_data_client();

Expand Down Expand Up @@ -194,6 +194,9 @@ namespace ngl
//# 领取任务奖励
bool handle(message<pbnet::PROBUFF_NET_TASK_RECEIVE_AWARD>& adata);

//# 创建军团
bool handle(message<pbnet::PROBUFF_NET_CREATE_FAMIL>& adata);

int32_t rechange(std::string& aorderid, int32_t arechargeid, bool agm, bool areporting);

//# 请求创建订单
Expand Down
2 changes: 1 addition & 1 deletion public/cpp/actor/actor_logic/game/actor_role_cmd.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ namespace ngl
auto pro = std::make_shared<pbnet::PROBUFF_NET_ERROR_RESPONSE>();
pro->set_m_errnum(0);
pro->set_m_errmessage(lorderid);
role->send2client(pro);
role->send_client(role->id_guid(), pro);
}
);
handle_cmd::push("/notices", [](actor_role* role, const char* aparm)
Expand Down
2 changes: 1 addition & 1 deletion public/cpp/actor/actor_logic/game/actor_role_handle.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ namespace ngl
{
auto pro = std::make_shared<pbnet::PROBUFF_NET_GET_TIME_RESPONSE>();
pro->set_m_utc(localtime::gettime());
send2client(pro);
send_client(id_guid(), pro);
}
return true;
}
Expand Down
20 changes: 20 additions & 0 deletions public/cpp/actor/actor_logic/robot/actor_robot.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -202,6 +202,26 @@ namespace ngl
return connect_kcp(m_kcp, lpworks->m_ip, lpworks->m_port);
}

bool actor_robot::handle(message<pbnet::PROBUFF_NET_CREATE_FAMIL_RESPONSE>& adata)
{
return true;
}

bool actor_robot::handle(message<pbnet::PROBUFF_NET_JOIN_FAMIL_RESPONSE>& adata)
{
return true;
}

bool actor_robot::handle(message<pbnet::PROBUFF_NET_LEAVE_FAMIL_RESPONSE>& adata)
{
return true;
}

bool actor_robot::handle(message<pbnet::PROBUFF_NET_FAMIL_LIST_RESPONSE>& adata)
{
return true;
}

void actor_manage_robot::nregister()
{
register_handle_custom<actor_manage_robot>::func<
Expand Down
4 changes: 4 additions & 0 deletions public/cpp/actor/actor_logic/robot/actor_robot.h
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,10 @@ namespace ngl
bool handle(message<pbnet::PROBUFF_NET_DELIVER_GOODS_RECHARGE>& adata);
bool handle(message<pbnet::PROBUFF_NET_ERROR_RESPONSE>& adata);
bool handle(message<pbnet::PROBUFF_NET_KCPSESSION_RESPONSE>& adata);
bool handle(message<pbnet::PROBUFF_NET_CREATE_FAMIL_RESPONSE>& adata);
bool handle(message<pbnet::PROBUFF_NET_JOIN_FAMIL_RESPONSE>& adata);
bool handle(message<pbnet::PROBUFF_NET_LEAVE_FAMIL_RESPONSE>& adata);
bool handle(message<pbnet::PROBUFF_NET_FAMIL_LIST_RESPONSE>& adata);
};

class actor_manage_robot : public actor
Expand Down
13 changes: 13 additions & 0 deletions public/cpp/actor/nactor_auto.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -210,6 +210,7 @@ namespace ngl
, pbnet::PROBUFF_NET_GET_TIME
, pbnet::PROBUFF_NET_CMD
, pbnet::PROBUFF_NET_SWITCH_LINE
, pbnet::PROBUFF_NET_CREATE_FAMIL
>();

//// ACTOR_MAIL 模块二次转发
Expand All @@ -232,6 +233,14 @@ namespace ngl
, ACTOR_CHAT
, pbnet::PROBUFF_NET_CHAT
>();

// ACTOR_FAMILY 模块二次转发
register_c2g_2<EPROTOCOL_TYPE_PROTOCOLBUFF
, ACTOR_FAMILY
, pbnet::PROBUFF_NET_JOIN_FAMIL
, pbnet::PROBUFF_NET_LEAVE_FAMIL
, pbnet::PROBUFF_NET_FAMIL_LIST
>();
}

// # 注册game到client的消息
Expand All @@ -250,6 +259,10 @@ namespace ngl
, pbnet::PROBUFF_NET_MAIL_DEL_RESPONSE
, pbnet::PROBUFF_NET_DELIVER_GOODS_RECHARGE
, pbnet::PROBUFF_NET_ERROR_RESPONSE
, pbnet::PROBUFF_NET_CREATE_FAMIL_RESPONSE
, pbnet::PROBUFF_NET_JOIN_FAMIL_RESPONSE
, pbnet::PROBUFF_NET_LEAVE_FAMIL_RESPONSE
, pbnet::PROBUFF_NET_FAMIL_LIST_RESPONSE
>();
}
}//namespace ngl
4 changes: 4 additions & 0 deletions public/cpp/actor/nactor_auto.h
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,10 @@ namespace ngl
using tdb_mail
= typedb<pbdb::ENUM_DB_MAIL, pbdb::db_mail, actor_mail>;

class actor_family;
using tdb_family
= typedb<pbdb::ENUM_DB_FAMILY, pbdb::db_family, actor_family>;

class actor_guild;
using tdb_guild
= typedb<pbdb::ENUM_DB_GUILD, pbdb::db_guild, actor_guild>;
Expand Down
Loading

0 comments on commit 2595b7c

Please sign in to comment.