2014年5月20日 星期二

非常非常實用的指令查詢,新增快速回復玩家資料指令

刪除某時間後沒上線的角色 
DELETE characters.* from characters 
left join accounts on accounts.login=characters.account_name  
where accounts.lastactive < '2008-09-26 00:00:00' 
解說:前提版本有lastactive功能,只刪除characters資料,紅色部份自由更改 
(本來可以直接刪除accounts資料,但是有些開服者刪除垃圾資料的指令沒有刪除空帳號的連結資料指令,這能夠配合大多數有的刪除空角色垃圾資料指令) 
 
刪除遊戲內所有某物品 
DELETE character_items FROM character_items where牋item_id = 1 ; 
DELETE character_warehouse FROM character_warehouse where牋item_id = 1 ; 
DELETE clan_warehouse FROM clan_warehouse where牋item_id = 1 ; 
解說:只刪除角色身上,倉庫,盟倉此物品,紅色部份為物品的編號 

快速查詢帳號內角色
 
select characters.* from characters where account_name = '000' 
解說:紅色部份為帳號 
 
快速查詢角色身上物品(使用角色編號) 
SELECT character_items.* from character_items where character_items.char_id =11111 
解說:紅色部份為角色編號 
 
快速查詢角色身上物品(使用角色名稱) 
SELECT character_items.* from character_items 
inner join characters on characters.objid = character_items.char_id 
where characters.char_name牋= '我是GM' 
解說:紅色部份為角色名稱 
 
快速查詢同帳號內所有角色身上物品(使用帳號) 
SELECT character_items.* from character_items 
inner join characters on characters.objid = character_items.char_id 
where characters.account_name牋= '000' 
解說:紅色部份為帳號 
 
快速查詢掉落某物品的NPC名稱 
SELECT npc.* from npc 
left join droplist on npc.npcid = droplist.mobid 
where droplist.itemid = 40033 
解說:紅色部份為物品編號 
 
快速查詢某地圖的所有怪物(方便調整某地圖怪物經驗,掉寶或是辦活動) 
SELECT distinct spawnlist.location , spawnlist.npc_templateid 
from spawnlist 
where spawnlist.mapid = 244 
解說:紅色部份為物地圖編號 
 
快速查詢倉庫物品(使用帳號) 
SELECT character_warehouse.* from character_warehouse where account_name = '5555' 
解說:紅色部份為帳號 
 
快速查詢倉庫物品(使用角色編號) 
SELECT character_warehouse.* from character_warehouse 
inner join characters on characters.account_name = character_warehouse.account_name 
where characters.objid = 00000 
解說:紅色部份為角色編號 
 
快速查詢倉庫物品(使用角色名稱) 
SELECT character_warehouse.* from character_warehouse 
inner join characters on characters.account_name = character_warehouse.account_name 
where characters.char_name牋= '我是GM' 
解說:紅色部份為角色名稱 
 
回復玩家資料方法 
解說:分為兩部份,第一部分為備份玩家資料(沒備份怎樣回復呢!),第二部份為查找指令 
 
第一部份: 
備份玩家資料 
首先新增1個名叫 backup 的資料庫,然後每天執行以下指令 
CREATE TABLE `backup`.`1_1_accounts` type=myisam default charset=utf8 As 
Select * From l1jdb.accounts; 
CREATE TABLE `backup`.`1_1_character_buddys` type=myisam default charset=utf8 As 
Select * From l1jdb.character_buddys; 
CREATE TABLE `backup`.`1_1_character_teleport` type=myisam default charset=utf8牋As 
Select * From l1jdb.character_teleport; 
CREATE TABLE `backup`.`1_1_character_skills` type=myisam default charset=utf8牋As 
Select * From l1jdb.character_skills; 
CREATE TABLE `backup`.`1_1_character_warehouse` type=myisam default charset=utf8牋As 
Select * From l1jdb.character_warehouse; 
CREATE TABLE `backup`.`1_1_characters` type=myisam default charset=utf8牋As 
Select * From l1jdb.characters; 
CREATE TABLE `backup`.`1_1_clan_data` type=myisam default charset=utf8牋As 
Select * From l1jdb.clan_data; 
CREATE TABLE `backup`.`1_1_clan_warehouse` type=myisam default charset=utf8牋As 
Select * From l1jdb.clan_warehouse; 
CREATE TABLE `backup`.`1_1_pets` type=myisam default charset=utf8牋As 
Select * From l1jdb.pets; 
CREATE TABLE `backup`.`1_1_character_items` type=myisam default charset=utf8牋As 
Select * From l1jdb.character_items; 
解說:紅色部份牋1_1_為日期,例如2月13日,執行前把1_1_改為2_13_ ,另外l1jdb更改為你的資料庫 
(以上指令因為已加入資料庫名稱,可於任何資料庫的查詢執行) 
 
第二部份:查找和回復 
查找某月某日某角色資料(使用角色名稱) 
select * from `backup`.`1_1_characters` where char_name='我是GM' 
解說:紅色部份1_1_為日期,我是GM為角色名稱 
 
查找某月某日某角色身上物品(使用角色編號) 
SELECT * from `backup`.`1_1_character_items` where char_id =000 
解說:紅色部份1_1_為日期,000為角色編號 
 
查找某月某日某倉庫物品(使用帳號) 
SELECT * from `backup`.`1_1_character_warehouse`. where account_name = '000' 
解說:紅色部份1_1_為日期,000為帳號 
 
回復某角色某月某日身上物品 
INSERT INTO characters 
SELECT * FROM `backup`.`1_1_character_items` WHERE objid = 000 
解說:前提是必須先刪除角色遺留的物品,不然順序號會發生相同衝突,紅色部份1_1_為日期,000為角色編號 
備註:刪除角色遺留物品指令 DELETE character_items FROM character_items where牋objid=000牋紅色部份為角色編號 
備註:必須於模擬器的資料庫執行 
 
回復某月某日某倉庫物品 
INSERT INTO character_warehouse 
SELECT * FROM `backup`.`1_1_character_warehouse` WHERE account_name = '000' 
解說:前提是必須先刪除遺留的倉庫物品,不然順序號會發生相同衝突,紅色部份1_1_為日期,000為帳號 
備註:刪除倉庫遺留物品指令 DELETE character_warehouse FROM character_warehouse where牋account_name=`000`牋紅色部份為帳號 
備註:必須於模擬器的資料庫執行 
 
回復角色其他資料
回後帳號,角色資料,好友,記點,技能
 
INSERT INTO accounts  
Select * From `backup`.`1_1_accounts` where login ='000'; 
INSERT INTO characters 
Select * From `backup`.`1_1_characters` where objid =000; 
INSERT INTO character_buddys 
Select * From `backup`.`1_1_character_buddys` where char_id =000; 
INSERT INTO character_teleport 
Select * From `backup`.`1_1_character_teleport` where char_id =000; 
INSERT INTO character_skills 
Select * From `backup`.`1_1_character_skills` where char_obj_id =000; 
解說:前提是必須先刪除遺留的資料,不然順序號會發生相同衝突,紅色部份1_1_為日期,000除了login是帳號,其他都是角色編號 
備註:必須於模擬器的資料庫執行 
備註:刪除遺留的資料指令 
DELETE FROM accounts WHERE login='000'; 
DELETE FROM characters WHERE objid=000; 
DELETE FROM character_buddys WHERE char_id=000; 
DELETE FROM character_teleport WHERE char_id=000; 
DELETE FROM character_skills WHERE char_obj_id=000; 
紅色部份除了login是帳號,其他都是角色編號,備註:必須於模擬器的資料庫執行 
 
也就是說執行上術所有回復指令,那就可以回復單個角色資料,帳號和倉庫物品

沒有留言:

張貼留言