PDA

View Full Version : Vấn đề gộp server !



RunNingMan
25-02-14, 12:09 PM
Hiện tại mình đang có 2 server đang chạy online
2 db warriors1 & warriors2 dùng chung username, pw để login
mình muốn gộp chung 2 server thành 1.
bác nào biết chỉ giúp mình nha.
Mong được giúp đở, học hỏi
Xin cảm ơn và hậu tạ

hoanghaivp23
25-02-14, 12:43 PM
Cái đó thì sẽ hơi khó, cái này mình cũng đã từng làm, bạn phải sửa lại username(tài khoản) và name(tên nhân vật), ngoài ra còn chỉnh sửa playerId nếu không sẽ trùng ... có rất nhiều cái mà bạn phải sửa, nếu biết thì sửa phát là xong, còn không thì mò không ra đâu. Đã xác định mở nhiều sever thì thêm luôn S1,S2 vào cùng username

RunNingMan
25-02-14, 02:28 PM
Cái đó thì sẽ hơi khó, cái này mình cũng đã từng làm, bạn phải sửa lại username(tài khoản) và name(tên nhân vật), ngoài ra còn chỉnh sửa playerId nếu không sẽ trùng ... có rất nhiều cái mà bạn phải sửa, nếu biết thì sửa phát là xong, còn không thì mò không ra đâu. Đã xác định mở nhiều sever thì thêm luôn S1,S2 vào cùng username

bác đã làm dc chưa ?............

vudung
25-02-14, 02:40 PM
Code tí php chạy query là xong mà

Một số cái giống nhau là tên guild vs tên nv

Lọc ra là xong :D

RunNingMan
25-02-14, 03:28 PM
Code tí php chạy query là xong mà

Một số cái giống nhau là tên guild vs tên nv

Lọc ra là xong :D


bạn nói cụ thể cái phần username dc ko , trong bảng player thì username 2 server giống nhau mà ?

vudung
25-02-14, 03:39 PM
bạn nói cụ thể cái phần username dc ko , trong bảng player thì username 2 server giống nhau mà ?

User giống nhau thì tạo thêm user mới... Vài dòng query thôi mà...

RunNingMan
25-02-14, 04:11 PM
oke củng hiểu được phàn nào cảm ơn bác nha nhưng
60 bảng, playerid phải thay đổi nhưng username vẩn phải giử lại =((
bác có cách nào insert dữ liệu nhanh không ?:D

RunNingMan
26-02-14, 02:08 PM
bác vudung còn giử máy đoan query đó ko cho mình tham khảo với nha !

khuek8b
26-02-14, 02:41 PM
UPDATE alliance SET playerId = playerId + 10000;
UPDATE backpack SET playerId = playerId + 10000;
UPDATE friend SET playerId = playerId + 10000;
UPDATE friendstreasure SET playerId = playerId + 10000;
UPDATE marketitem SET playerId = playerId + 10000;
UPDATE meridian SET playerId = playerId + 10000;
UPDATE player SET playerId = playerId + 10000;
UPDATE playerbattle SET playerId = playerId + 10000;
UPDATE playerbattlefield SET playerId = playerId + 10000;
UPDATE playerbuylimit SET playerId = playerId + 10000;
UPDATE playercampbattlerecord SET playerId = playerId + 10000;
UPDATE playermotion SET playerId = playerId + 10000;
UPDATE playertitle SET playerId = playerId + 10000;
UPDATE playervip SET playerId = playerId + 10000;
UPDATE rechargegift SET playerId = playerId + 10000;
UPDATE rechargerecord SET playerId = playerId + 10000;
UPDATE taskcomplete SET playerId = playerId + 10000;
UPDATE userachieve SET playerId = playerId + 10000;
UPDATE useractive SET playerId = playerId + 10000;
UPDATE useralliance SET playerId = playerId + 10000;
UPDATE useralliancetask SET playerId = playerId + 10000;
UPDATE userbuffer SET playerId = playerId + 10000;
UPDATE usercamptask SET playerId = playerId + 10000;
UPDATE usercooltime SET playerId = playerId + 10000;
UPDATE userdungeon SET playerId = playerId + 10000;
UPDATE userequip SET playerId = playerId + 10000;
UPDATE userescorttask SET playerId = playerId + 10000;
UPDATE userhorse SET playerId = playerId + 10000;
UPDATE userlooptask SET playerId = playerId + 10000;
UPDATE usermail SET playerId = playerId + 10000;
UPDATE usermaptask SET playerId = playerId + 10000;
UPDATE usermortalbody SET playerId = playerId + 10000;
UPDATE useronlinegift SET playerId = playerId + 10000;
UPDATE userpet SET playerId = playerId + 10000;
UPDATE userpracticetask SET playerId = playerId + 10000;
UPDATE userprops SET playerId = playerId + 10000;
UPDATE userskill SET playerId = playerId + 10000;
UPDATE usertask SET playerId = playerId + 10000;
UPDATE usertrain SET playerId = playerId + 10000;
UPDATE usertreasure SET playerId = playerId + 10000;
/////
UPDATE alliance set allianceId = allianceId+400;
UPDATE camponline set id = id +3247;
UPDATE droprecord set id = id + 19320;
UPDATE friend set id = id + 599160;
UPDATE marketitem set id = id +51023;
UPDATE onlinestatistic set id = id +13008;
UPDATE rechargerecord set id = id +1678;
UPDATE registerdetailstatistic set id = id +13013;
UPDATE userequip set id = id +1085416;
UPDATE usermaptask set id = id+1044;
UPDATE userprops set id = id +2212008;
UPDATE usertask set id = id +41570;
////
UPDATE userpet set petId = petId +34407;
UPDATE userpetbattle set petId = petId +34407;
tất cả cho bạn, thay id cho data thứ 2 khác với data 1 và insert data2 và data 1 :)

RunNingMan
27-02-14, 09:57 AM
tất cả cho bạn, thay id cho data thứ 2 khác với data 1 và insert data2 và data 1 :)

khuek8b cho mình hỏi với userName 1 tài khoản chơi ở 2 server khi gộp nó sẻ trùng khi vào game thì 1 userName chỉ vào dc 1 nhân vật ?
sử lý thế nào vậy cậu ?

vudung
27-02-14, 09:17 PM
khuek8b cho mình hỏi với userName 1 tài khoản chơi ở 2 server khi gộp nó sẻ trùng khi vào game thì 1 userName chỉ vào dc 1 nhân vật ?
sử lý thế nào vậy cậu ?

Chạy query lọc ra mấy user đấy

đổi thành
ví dụ
vudung -> vudung[NN]

NN = Nhật nguyệt cho tên server. Muốn đổi thành thế nào cũng đc

khuek8b
27-02-14, 10:49 PM
tất nhiên bạn pải thêm tiền tố cho name và username để phân biệt,
ví dụ tên ở sv 1 bạn pải thêm tiền tố trước nó là [S1].name và sv 2 bạn thêm [S2].name nên khi vào game sẽ ko bị trùng tên
còn username thì bạn cũng pải thêm [S1].name và [S2].name. và để login vào game thì ví dụ ở web bạn có 1 biến truyền vào game thì khi chưa gộp là
$tentaikhoan = $username thì bgio bạn thêm tiền tố vào là $tentaikhoan =[S1].$username và ở sv 2 là : $tentaikhoan =[S1].$username là được.
câu lệnh thêm tiền tố là cho name và username là :

UPDATE `player` SET `userName`= CONCAT( '[S1].', TRIM( userName ) )
UPDATE `player` SET `name`= CONCAT( '[S1].', TRIM( name) )

mình ko biết điễn giải như nào , hi vọng bạn thành công