公会大一统计划
笔记ing 怎么个事 大一统计划分三个步骤:step1:命令行-解散所有公会并取消所有角色的公会标记
step2:手动-在游戏内创建公会(上面重置了自动递增,所以此时创建公会的ID是1)
step3:命令行-将所有角色加入公会并设为优秀(这一步要在taiwan_cain数据库中进行查询才行)
step3.1:命令行-创建数据库存储过程
step3.2:命令行-调用存储过程
这样不就没法主动加人了吗,已经达到上限了
其实也可以hook服务端或者触发器把申请转向指定公会,也不是个什么好的解决办法 所有命令都是在Navicat的查询中执行
输入命令,点击运行即可,运行完成后记得把命令清空掉 step1:命令行-解散所有公会并取消所有角色的公会标记
TRUNCATE TABLE d_guild.guild_member;
TRUNCATE TABLE d_guild.guild_info;
ALTER TABLE d_guild.guild_info AUTO_INCREMENT = 1;
TRUNCATE TABLE d_guild.guild_introduce;
TRUNCATE TABLE d_guild.guild_member_introduce;
TRUNCATE TABLE d_guild.guild_skill;
TRUNCATE TABLE d_guild.guild_visit;
UPDATE taiwan_cain.charac_info SET guild_id = 0, guild_right = 0;
step2:手动-在游戏内创建公会(上面重置了自动递增,所以此时创建公会的ID是1)
上号去博肯创建个公会就行 step3:命令行-将所有角色加入公会并设为优秀(这一步要在taiwan_cain数据库中进行查询才行)
打开taiwan_cain数据库,创建查询,一定要先打开这里再创建查询,不然无法创建存储过程
step3.1:命令行-创建数据库存储过程
代码贴出来发不出去,截图自己OCR吧
step3.2:命令行-调用存储过程
上一步运行后,记得清空输入内容,重新输入新的命令
最后call一下上一步的存储过程就ojbk辣
CALL update_guild_members();
哦~还有最后一步,清除刚才创建的存储过程(也是在taiwan_cain数据库中执行)
DROP PROCEDURE IF EXISTS update_guild_members; 再最后呢,就是建议搭配新角色自动入会的脚步一起食用。
DELIMITER //
CREATE TRIGGER auto_join
AFTER INSERT ON taiwan_cain.charac_stat
FOR EACH ROW
BEGIN
DECLARE v_m_id INT;
DECLARE v_charac_no INT;
DECLARE v_charac_name VARCHAR(255);
DECLARE v_lev INT;
DECLARE v_job INT;
DECLARE v_grow_type INT;
DECLARE v_current_time DATETIME;
-- 更新 charac_info 表的 guild_id 和 guild_right
UPDATE taiwan_cain.charac_info
SET guild_id = 1, guild_right = 1
WHERE charac_no = NEW.charac_no;
-- 获取新插入的角色信息
SELECT m_id, charac_no, charac_name, lev, job, grow_type, NOW() INTO v_m_id, v_charac_no, v_charac_name, v_lev, v_job, v_grow_type, v_current_time
FROM taiwan_cain.charac_info
WHERE charac_no = NEW.charac_no;
-- 插入新成员到 guild_member 表
INSERT INTO d_guild.guild_member
(guild_id, m_id, server_id, charac_no, charac_name, memo, grade, job, grow_type, lev, member_time, member_flag, last_play_time, age, born_year)
VALUES
(1, v_m_id, 3, v_charac_no, v_charac_name, 'By.Rex', 3, v_job, v_grow_type, v_lev, v_current_time, 1, v_current_time, 0, '00');
-- 更新 guild_info 表的 member_count
UPDATE d_guild.guild_info
SET member_count = member_count + 1
WHERE guild_id = 1;
END //
DELIMITER ; 奇奇怪怪的姿势
删除的角色也会入会- - 关于已经删除的角色也会被加入公会的问题,将step3.1的代码改为下图即可,主要是在创建存储过程的时候加了一个角色删除标记的判断。
页:
[1]