bfdz49 发表于 2025-4-9 23:06:02

远征GM禁言封号发物品

去数据库创建一个PrGs_User_LoginFromArea_20120912YZ_AreaDB_3D”找到账号表“DXUserInfo
CREATE PROCEDURE .
    @username varchar(32),
    @password varchar(42),
    @WorldID int,
    @ClientIP varchar(24),
    @MacAddress varchar(24),
    @PartnerID int,
    @DiskSN int,
    @VerifyCodeSucess tinyint,
    @ReUserID int OUTPUT,
    @ReIsAdult tinyint OUTPUT,
    @PassportFlags int OUTPUT,
    @AppealFlags int OUTPUT,
    @AppealUID int OUTPUT,
    @ServiceFlags int OUTPUT,
    @TotalPay int OUTPUT,
    @IdCardID int OUTPUT,
    @PWProtectTime int OUTPUT,
    @BlackFlags tinyint OUTPUT,
    @GestureFlags tinyint OUTPUT,
    @GesturePassword nvarchar(32) OUTPUT,
    @PhoneNum nvarchar(16) OUTPUT,
    @MobileNo nvarchar(16) OUTPUT,
    @PersonASign int OUTPUT,
    @AddLimitTime smallint OUTPUT,
    @AddLimitTimeDot int OUTPUT,
    @LimitUseResLv tinyint OUTPUT,
    @DisableAccountTime smallint OUTPUT,
    @DangerFactor int OUTPUT,
    @UserBirthday int OUTPUT,
    @OldUserFlags smallint OUTPUT,
    @BindActorID int OUTPUT,
    @LaunchActorName nvarchar(32) OUTPUT,
    @CheckInTime int OUTPUT,
    @UserPassword nvarchar(64) OUTPUT,
    @ClientQ nvarchar(32) OUTPUT,
    @ClientPhone nvarchar(32) OUTPUT,
    @CReadLimit int OUTPUT,
    @CInfoUpdTime int OUTPUT,
    @TryPlayFlag tinyint OUTPUT,
    @KillFlag tinyint OUTPUT,
    @Remark nvarchar(512) OUTPUT,
    @IsExists tinyint OUTPUT,
    @ReturnDesc varchar(128) OUTPUT
AS
BEGIN TRY
    -- 这里放置存储过程逻辑
    SELECT @ReUserID = UserID
    FROM .
    WHERE UserName = @UserName;
    SET @IsExists = @@ROWCOUNT;
    IF @IsExists = 0
    BEGIN
      SET @ReturnDesc = '账号不存在';
      RETURN 3;
    END
   
    SET @ReturnDesc = '登录成功';
    RETURN 1;
END TRY
BEGIN CATCH
    SET @ReturnDesc = ' CATCH:' + ERROR_MESSAGE();
    RETURN -1;
END CATCH;
GO
PrGs_User_LoginFromArea_20160730
CREATE PROCEDURE .
    @UserName nvarchar(32),
    @Password nvarchar(42),
    @WorldID int,
    @ClientIP nvarchar(24),
    @MacAddress nvarchar(24),
    @PartnerID int,
    @DiskSN int,
    @VerifyCodeSucess tinyint,
    @ReUserID int OUTPUT,
    @ReIsAdult tinyint OUTPUT,
    @PassportFlags int OUTPUT,
    @AppealFlags int OUTPUT,
    @AppealUID int OUTPUT,
    @ServiceFlags int OUTPUT,
    @TotalPay int OUTPUT,
    @IdCardID int OUTPUT,
    @PWProtectTime int OUTPUT,
    @BlackFlags tinyint OUTPUT,
    @GestureFlags tinyint OUTPUT,
    @GesturePassword nvarchar(32) OUTPUT,
    @PhoneNum nvarchar(16) OUTPUT,
    @MobileNo nvarchar(16) OUTPUT,
    @PersonASign int OUTPUT,
    @AddLimitTime smallint OUTPUT,
    @AddLimitTimeDot int OUTPUT,
    @LimitUseResLv tinyint OUTPUT,
    @DisableAccountTime smallint OUTPUT,
    @DangerFactor int OUTPUT,
    @UserBirthday int OUTPUT,
    @OldUserFlags smallint OUTPUT,
    @BindActorID int OUTPUT,
    @LaunchActorName nvarchar(32) OUTPUT,
    @CheckInTime int OUTPUT,
    @UserPassword nvarchar(64) OUTPUT,
    @ClientQ nvarchar(32) OUTPUT,
    @ClientPhone nvarchar(32) OUTPUT,
    @CReadLimit int OUTPUT,
    @CInfoUpdTime int OUTPUT,
    @TryPlayFlag tinyint OUTPUT,
    @KillFlag tinyint OUTPUT,
    @Remark nvarchar(512) OUTPUT,
    @IsExists tinyint OUTPUT,
    @ReturnDesc nvarchar(128) OUTPUT
AS
BEGIN TRY
    -- 这里放置存储过程逻辑
    SELECT @ReUserID = UserID
    FROM .
    WHERE UserName = @UserName AND Password = @Password;
    SET @IsExists = @@ROWCOUNT;
    IF @IsExists = 0
    BEGIN
      SET @ReturnDesc = '账号不存在';
      RETURN 3;
    END
   
    SET @ReturnDesc = '登录成功';
    RETURN 1;
END TRY
BEGIN CATCH
    SET @ReturnDesc = ' CATCH: ' + ERROR_MESSAGE();
    RETURN -1;
END CATCH;
GO
服务端文件
local Database = require("database")

-- 发放物品
function GiveItem(playerId, itemId, amount)
    local player = Database:GetPlayer(playerId)
    if player then
      local item = Database:GetItem(itemId)
      if item then
            table.insert(player.items, {id = itemId, amount = amount})
            Database:UpdatePlayer(player)
            print("Player " .. player.name .. " received " .. amount .. " of item " .. itemId)
      else
            print("Item not found")
      end
    else
      print("Player not found")
    end
end

-- 回收物品
function TakeItem(playerId, itemId, amount)
    local player = Database:GetPlayer(playerId)
    if player then
      for i, item in ipairs(player.items) do
            if item.id == itemId then
                if item.amount >= amount then
                  item.amount = item.amount - amount
                  if item.amount == 0 then
                        table.remove(player.items, i)
                  end
                  Database:UpdatePlayer(player)
                  print("Player " .. player.name .. " lost " .. amount .. " of item " .. itemId)
                  return
                end
            end
      end
      print("Player does not have enough items")
    else
      print("Player not found")
    end
end

return {
    GiveItem = GiveItem,
    TakeItem = TakeItem,
}
local Database = require("database")

-- 查询玩家信息
function GetPlayerInfo(playerId)
    return Database:GetPlayer(playerId)
end

-- 封禁/解封玩家
function BanPlayer(playerId, isBan)
    local player = Database:GetPlayer(playerId)
    if player then
      player.status = isBan and PLAYER_STATUS_BANNED or PLAYER_STATUS_NORMAL
      Database:UpdatePlayer(player)
      print("Player " .. player.name .. " is now " .. (isBan and "banned" or "unbanned"))
    else
      print("Player not found")
    end
end

-- 修改玩家属性
function ModifyPlayerAttribute(playerId, attribute, value)
    local player = Database:GetPlayer(playerId)
    if player then
      player = value
      Database:UpdatePlayer(player)
      print("Player " .. player.name .. " attribute " .. attribute .. " set to " .. value)
    else
      print("Player not found")
    end
end

return {
    GetPlayerInfo = GetPlayerInfo,
    BanPlayer = BanPlayer,
    ModifyPlayerAttribute = ModifyPlayerAttribute,gm_commands/
├── main.lua                -- 主入口文件
├── commands/
│   ├── create_item.lua   -- 创建物品
│   ├── kick_player.lua   -- 踢掉玩家
│   ├── mute_player.lua   -- 禁言
│   ├── unmute_player.lua   -- 解除禁言
│   ├── hide_self.lua       -- 隐藏自己
│   ├── show_self.lua       -- 恢复可见状态
│   ├── invincible.lua      -- 无敌模式
│   ├── normal.lua          -- 恢复普通模式
│   ├── clear_stats.lua   -- 清除人物属性点
│   ├── clear_skills.lua    -- 清除技能点
│   ├── learn_skill.lua   -- 学习新技能
│   ├── check_nation.lua    -- 检查国家信息
│   ├── scatter_players.lua -- 驱散周围玩家
│   ├── imprison_player.lua -- 囚禁指定玩家
│   ├── handle_nation.lua   -- 处理国家强弱
│   ├── summon_npc.lua      -- GM召唤NPC
│   ├── start_siege.lua   -- 引发怪物攻城
│   ├── kick_gateway.lua    -- 踢掉网关上的玩家
│   ├── reload_chest.lua    -- 重新加载宝箱数据
│   ├── reload_gift.lua   -- 重新加载礼官数据
│   ├── refresh_tables.lua-- 手动刷新基本表
│   ├── newquest.lua      -- 手动newquest脚本
│   ├── call_lua.lua      -- 直接调用Lua函数
│   ├── allow_register.lua-- 允许注册
│   ├── allow_login.lua   -- 允许登录
│   ├── set_game_function.lua -- 设置游戏功能
│   ├── start_guild_war.lua -- 启动和停止帮会夺城战
│   ├── set_role_permission.lua -- 设置角色权限
│   ├── set_runtime_param.lua -- 设置运行参数
│   ├── stock_management.lua -- 股票委托管理
│   ├── kill_mode.lua       -- 必杀模式
│   ├── clear_monsters.lua-- 清除范围内的怪物
│   ├── query_account.lua   -- 查询账号
│   ├── server_population.lua -- 得到本组服务器的人数分布
│   ├── maintenance.lua   -- 停机维护
│   ├── get_time.lua      -- 得到系统当前时间
│   ├── gold_system.lua   -- 金币系统
│   ├── check_war_record.lua -- 查看国战记录
│   ├── compensate_gold.lua -- 金子补偿
│   ├── compensate_silver.lua -- 银子补偿
│   ├── set_server_version.lua -- 动态设置服务器版本号
│   ├── create_guild.lua    -- 创建帮会
│   ├── create_family.lua   -- 创建家族
│   └── ...
├── utils.lua               -- 辅助工具函数
└── config.lua            -- 配置文件
这个是服务端主入口文件自己改下目录

szdxzhao 发表于 2025-5-13 09:08:17

大佬历害呀 什么时候发个整合好的出来呢

kooco 发表于 3 天前

大佬历害呀 什么时候发个整合好的出来呢
页: [1]
查看完整版本: 远征GM禁言封号发物品

本站内容如若侵犯到您的权益,请来电来函告知,我们会尽快处理!
联系QQ:1953150286,2251387361,123784736,免责申明