PDA

View Full Version : [KT] Thảo luận về dự án Thú Cưng cho sv 2.6 cần pro giúp sức



kittyngoc_dp_
22-07-14, 04:56 PM
Mình thấy trên sv KT linux có chứ năng thú cưng khá thú vị. Thoạt đầu mình có ý định thử đem nó bỏ vào sv 2.6 cơ mà ko phải dân IT nên nghèo nàn về kiến thức nay share những gì đã làm đc để các pro đắp vá thêm xem có đc ko ^^

Nguyên liệu và các file liên quan mình tìm đc:

\gamecenter\script\item\class\qiankunfulogic.lua

Tìm
function tb:ObtainMemberPos(nMemberPlayerId, nPlayerId, nItemId, nMapId, nPosX, nPosY, nFightState)
thêm vào ngay dưới cùng
Npc.tbFollowPartner:FollowNewWorld(pPlayer, nMapId, nPosX, nPosY);

gameserver\script\event\extendaward\extendaward.lu a

Tìm
function ExtendAward:DoCheck(szType, ...)
thay thành

function ExtendAward:DoCheck(szType, ...)
if not self.tbInterFaceFun[szType] then
return 0;
end

if self[self.tbInterFaceFun[szType]] then
local nFreeCount, tbFunExecute, szExtendInfo, tbProductSet = self[self.tbInterFaceFun[szType]](self, unpack(arg))
if self.tbFunExecute[szType] then
local tbFun = {};
for nRegId, tbExe in pairs(self.tbFunExecute[szType]) do

local tbTempExe = {}
for _, v in ipairs(tbExe) do
table.insert(tbTempExe, v);
end
for _, v in ipairs(arg) do
table.insert(tbTempExe, v);
end
table.insert(tbFun, tbTempExe);
end

for _, tbExe in pairs(self:RegistrationExecute(tbFun)) do
table.insert(tbFunExecute, tbExe);
end
end

--宠物系统
tbFunExecute = tbFunExecute or {};
table.insert(tbFunExecute, {["fun"] = Npc.tbFollowPartner.AddAward, ["tbParam"] = {Npc.tbFollowPartner, arg[1] or me, szType}});

if self.tbFreeCountScript[szType] then
for nRegId, tbExe in pairs(self.tbFreeCountScript[szType]) do
local tbTempExe = {}
for _, v in ipairs(tbExe) do
table.insert(tbTempExe, v);
end
for _, v in ipairs(arg) do
table.insert(tbTempExe, v);
end
nFreeCount = nFreeCount + tbTempExe[1](unpack(tbTempExe,2))
end
end
if self.tbFreeCount[szType] then
for nRegId, nTmpFreeCount in pairs(self.tbFreeCount[szType]) do
nFreeCount = nFreeCount + (tonumber(nTmpFreeCount) or 0)
end
end
return nFreeCount, tbFunExecute, szExtendInfo, tbProductSet;
end
return 0;
end

script\item\class\chuansongfu.lua


function tbChuangsongfu:TransPlayer(nItemId, tbPos, nIsLimit, szName)

thay

function tbChuangsongfu:TransPlayer(nItemId, tbPos, nIsLimit, szName)
local pItem = KItem.GetObjById(nItemId);
if (not pItem) then
return;
end
if (nIsLimit == 1) then
if (me.DelItem(pItem, Player.emKLOSEITEM_USE) ~= 1) then
me.Msg("Hủy Truyền Tống Phù thất bại!");
return;
end
end
if type(tbPos) == "table" then
me.Msg(string.format("Ngồi yên, %s!",szName));
me.NewWorld(unpack(tbPos));
if nFightState then
me.SetFightState(nFightState);
end
Npc.tbFollowPartner:FollowNewWorld(me, unpack(tbPos));
elseif type(tbPos) == "string" then
me.CallClientScript({ tbPos });
end
end

gameserver\script\item\class\qiankunfulogic.lua thay giống gamecenter ở trên

tải cái này về chép vào gameserver\script\item\class\
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>!ApVwQCwb!d6O9r4hYLow4W-h9RlnKeSdoLbvvpEs9wvdF9XsTA9U

\gameserver\script\map\map.lua


function Map:OnEnter2(nMapId)
local tbMap = self:GetClass(nMapId);

--如果是观战模式,走自己的统一逻辑
if Looker:IsLooker(me) > 0 then
Looker:MapOnEnter(nMapId);
return 0;
end

tbMap:OnEnter2();
end

thay

function Map:OnEnter2(nMapId)
local tbMap = self:GetClass(nMapId);

--如果是观战模式,走自己的统一逻辑
if Looker:IsLooker(me) > 0 then
Looker:MapOnEnter(nMapId);
return 0;
end

tbMap:OnEnter2();
Npc.tbFollowPartner:FollowPartnerOnEnter();
end


function Map:OnPlayerTrap(nMapId, szClassName)
local tbMap = self:GetClass(nMapId);
tbMap:OnPlayerTrap(szClassName);
end

thay


function Map:OnPlayerTrap(nMapId, szClassName)
local tbMap = self:GetClass(nMapId);
tbMap:OnPlayerTrap(szClassName);
--宠物跟玩家跳trap点
Npc.tbFollowPartner:FollowPartnerOnTrap();
end


function Map:OnNpcTrap(nMapId, szClassName)
local tbMap = self:GetClass(nMapId);
tbMap:OnNpcTrap(szClassName);
end

thay


function Map:OnNpcTrap(nMapId, szClassName)
--宠物不受npc Trap点影响
if Npc.tbFollowPartner:CheckIsFollowPartner() == 1 then
return;
end
local tbMap = self:GetClass(nMapId);
tbMap:OnNpcTrap(szClassName);
end

\gameserver\script\npc

tải cái này chép vô: <b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>!QlV3Xaoa!kZobAC6OM2GZS12SjyNE3FwHCOT1FN4O0v-rrB6pjRc

gameserver\script\player\player.lua

tìm function Player:_OnLogin(bExchangeServerComing)
thêm dưới cùng

if not GLOBAL_AGENT then
Npc.tbFollowPartner:FollowPartnerLogin();
end

tìm function Player:_OnLogout(szReason)

thêm dưới cùng

if (MODULE_GAMESERVER) then
local tbXJRecord = me.GetXJRecordInfo();
if tbXJRecord and tbXJRecord ~= {} then
local szLog = "";
local bHasValue = 0;
for i, nCount in pairs(tbXJRecord) do
if (i ~= 1) then
szLog = szLog..",";
end

szLog = string.format("%s%d", szLog, nCount);

if (nCount > 0 ) then
bHasValue = 1;
end
end

if (bHasValue == 1) then
StatLog:WriteStatLog("stat_info", "roleobtain", "xuanjing", me.nId, szLog);
end
end

MiniResource.tbDownloadInfo:OnLogout(szReason);

--跟宠上线事件
if not GLOBAL_AGENT then
Npc.tbFollowPartner:FollowPartnerLogOut();
end
--科举考试下线需要置打开ui变量为0,� �止上来就算题目了,其实没打开界面
me.SetTask(2216, 16, 0);
else
ClientEvent:OnLogout(szReason);
end


function Player:_OnDeath(pKiller)
BlackSky:GiveMeBright(me);
if (not pKiller) then
return;
end
if (pKiller.nKind == 1) then
local szMsg = "Bạn bị <color=yellow>"..pKiller.szName.."<color> đánh trọng thương!";
Dialog:SendInfoBoardMsg(me, szMsg);
me.Msg(szMsg)
local pPlayer = pKiller.GetPlayer();
if (pPlayer) then
local szMsg = "<color=yellow>"..me.szName.."<color> bị bạn đánh trọng thương!";
Dialog:SendInfoBoardMsg(pPlayer, szMsg);
pPlayer.Msg(szMsg);
end
end
end

thay thành

function Player:_OnDeath(pKiller)
BlackSky:GiveMeBright(me);
if (not pKiller) then
return;
end
if (pKiller.nKind == 1) then
local szMsg = "Bạn bị <color=yellow>"..pKiller.szName.."<color> đánh trọng thương!";
Dialog:SendInfoBoardMsg(me, szMsg);
me.Msg(szMsg)
local pPlayer = pKiller.GetPlayer();
if (pPlayer) then
local szMsg = "<color=yellow>"..me.szName.."<color> bị bạn đánh trọng thương!";
Dialog:SendInfoBoardMsg(pPlayer, szMsg);
pPlayer.Msg(szMsg);
Npc.tbFollowPartner:AddAward(pPlayer, "killplayer");
end
end
end

Phần setting thì tải cái này về rồi cho thêm vào <b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>!0w0CTI5C!ECDEjaZSbZvGc16scjAtopOxeLItJf7PTsRkZ0D Ny_k

thiếu chắc gì đó nên vấn đề là gọi và cất được thú cưng nhưng nó ko đi theo, ko đánh quái, nếu gọi ra mà ko cất đi khi uot ra đăng nhập lại sẽ xuất hiện thêm 1 con nữa :-"

Một vài hình ảnh:

<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>

mrkutepro
22-07-14, 10:41 PM
Có sáng tạo. Mình nghĩ là làm được nhé, bạn có thể tham khảo script di chuyển của npc và phát triển, tuy nhiên, việc này có thể làm nặng thêm cho sever

copday
24-07-14, 07:59 AM
Bỏ kiếm thế cũng đã lâu, nay vào lại nóng trong người rồi!!!!
:D:D:D:D:D:D, cái này cũng đã viết nhiều lần bằng nhiều cách khác nhau,dựa vào SC npc di chuyển, Ui theo sau nhé bạn, bạn còn thiếu file npc.lua nữa
- có thể giải quyết chỗ này FollowNewWorld(pPlayer, nMapId, nPosX, nPosY), nhưng hơi cao siêu

kittyngoc_dp_
26-07-14, 09:23 PM
Bỏ kiếm thế cũng đã lâu, nay vào lại nóng trong người rồi!!!!
:D:D:D:D:D:D, cái này cũng đã viết nhiều lần bằng nhiều cách khác nhau,dựa vào SC npc di chuyển, Ui theo sau nhé bạn, bạn còn thiếu file npc.lua nữa
- có thể giải quyết chỗ này FollowNewWorld(pPlayer, nMapId, nPosX, nPosY), nhưng hơi cao siêu

Cao siêu thì e chịu bác ạ, e làm theo cảm tính chứ biết gì đâu. Nói thật e dân Công Nghệ nhưng là CN SInh Học, cơ mà đẻ ra ko nuôi đc đành nhờ các bác vậy :D:D:D:D8-}8-}8-}

satthupro95
26-07-14, 09:26 PM
Cái cần là hàm FollowNewWorld(pPlayer, nMapId, nPosX, nPosY). Tìm xem trên linux nó đang bơi ở đâu thử chép qua xem
Có lẽ vậy ...

NhanVT
26-07-14, 09:48 PM
function tbFollowPartner:FollowNewWorld(pPlayer, nMapId, nX, nY)
if not nMapId or not nX or not nY then
return;
end
local tbTemp = pPlayer.GetTempTable("Player").tbFollowPartner;
if not tbTemp then
return;
end
local pNpc = KNpc.GetById(tbTemp.nParnerId);
if not pNpc then
return;
end
local tbNpcTemp = pNpc.GetTempTable("Npc").tbFollowPartner;
if not tbNpcTemp or tbNpcTemp.nPlayerId ~= pPlayer.nId then
return;
end
pNpc.NewWorld(nMapId, nX, nY);
end

nó vẫn là hàm NewWorld thui mak :|

kittyngoc_dp_
26-07-14, 10:16 PM
function tbFollowPartner:FollowNewWorld(pPlayer, nMapId, nX, nY)
if not nMapId or not nX or not nY then
return;
end
local tbTemp = pPlayer.GetTempTable("Player").tbFollowPartner;
if not tbTemp then
return;
end
local pNpc = KNpc.GetById(tbTemp.nParnerId);
if not pNpc then
return;
end
local tbNpcTemp = pNpc.GetTempTable("Npc").tbFollowPartner;
if not tbNpcTemp or tbNpcTemp.nPlayerId ~= pPlayer.nId then
return;
end
pNpc.NewWorld(nMapId, nX, nY);
end

nó vẫn là hàm NewWorld thui mak :|

chắc nó là chỗ mà mình online thì nó hiện lên chẳng :-/

kittyngoc_dp_
26-07-14, 10:24 PM
Cái cần là hàm FollowNewWorld(pPlayer, nMapId, nPosX, nPosY). Tìm xem trên linux nó đang bơi ở đâu thử chép qua xem
Có lẽ vậy ...

Chỉ thấy ở file SC qiankunfulogic.lua thôi

mrkutepro
27-07-14, 09:47 AM
tốt nhất ko dùng hèm NewWorld cho npc, vì nó chả giống người mà nó load dc dữ liệu từ mysql. Nếu như người đi mất rồi, thì cho xài hàm del npc đi, rồi add npc khác, còn trong phạm vi map, thì tăng tốc độ chạy cho npc lên là xong

copday
27-07-14, 08:34 PM
nó vẫn là hàm NewWorld thui mak :|[/QUOTE]
pNpc.NewWorld(nMapId, nX, nY)
khác chớ

tuidangvui
27-07-14, 08:39 PM
Lấy của Linux bỏ qua là tạo dc thú cưng, nhưng bị nhân bản nhiều con nếu logout login, và nó ko chạy tung tăng và nói chuyện dc :))

copday
27-07-14, 08:51 PM
Lấy của Linux bỏ qua là tạo dc thú cưng, nhưng bị nhân bản nhiều con nếu logout login, và nó ko chạy tung tăng và nói chuyện dc :))

chạy tung tăng và nói chuyện được, chỉ có điều chưa viết cho nó theo người đc

copday
28-07-14, 08:11 PM
Cao siêu thì e chịu bác ạ, e làm theo cảm tính chứ biết gì đâu. Nói thật e dân Công Nghệ nhưng là CN SInh Học, cơ mà đẻ ra ko nuôi đc đành nhờ các bác vậy :D:D:D:D8-}8-}8-}

cho mình xin spr con gấu kia bạn ơi;));));));));)), với cái ui bạn đang xài vơi, thấy đẹp đẹp

voanhnhat20010
28-07-14, 08:52 PM
=)) Kunfu panda =))
A lên mạng tìm mấy kiểu đẹp mà đem về làm.

kittyngoc_dp_
29-07-14, 09:12 AM
cho mình xin spr con gấu kia bạn ơi;));));));));)), với cái ui bạn đang xài vơi, thấy đẹp đẹp

tải cái setting về ấy bạn, có cả npc và res mình thêm vào rồi đó

--- Chế độ gộp bài viết ---


Lấy của Linux bỏ qua là tạo dc thú cưng, nhưng bị nhân bản nhiều con nếu logout login, và nó ko chạy tung tăng và nói chuyện dc :))

Chuẩn luôn, vẫn ko theo sau đc mình, chưa thấy có dòng đối thoại của nó, chắc nó ko nhận file setting\npc\followpartner.txt. loguot nhân vật thì nó ko biến mất đc, login vào thì thêm 1 con nữa. á hự luôn. kiểm tra log gameserver thì báo lỗi cũng vài chỗ ^^

kittyngoc_dp_
29-07-14, 09:43 AM
cho mình xin spr con gấu kia bạn ơi;));));));));)), với cái ui bạn đang xài vơi, thấy đẹp đẹp

Cái ui bạn xem ở đây có nè: <b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b> của toandaik đó, ui của mình cũng dựa vào toandaik và bổ xung thêm 1 vài chỗ thôi


<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b> (<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>)

NhanVT
29-07-14, 10:22 AM
tải cái setting về ấy bạn, có cả npc và res mình thêm vào rồi đó

--- Chế độ gộp bài viết ---



Chuẩn luôn, vẫn ko theo sau đc mình, chưa thấy có dòng đối thoại của nó, chắc nó ko nhận file setting\npc\followpartner.txt. loguot nhân vật thì nó ko biến mất đc, login vào thì thêm 1 con nữa. á hự luôn. kiểm tra log gameserver thì báo lỗi cũng vài chỗ ^^

<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>

copday
29-07-14, 10:29 AM
tải cái setting về ấy bạn, có cả npc và res mình thêm vào rồi đó

--- Chế độ gộp bài viết ---



login vào thì thêm 1 con nữa. á hự luôn. kiểm tra log gameserver thì báo lỗi cũng vài chỗ ^^

sao của mình log out là nó mất mà

bboyswat
04-11-14, 10:11 PM
Tiện 2pic này có 1 số vấn đề liên quan, cho mình hỏi một chút.

Trong event Tiêu Dao Cốc (bảo vệ 1 con đi từ A--->B) hay 1 số Event mà có hộ tống (hộ tống Hàn Thác Trụ chẳng hạn), Mình thấy NPC nó đi từ điểm này đến điểm kia..!!!

Vậy hàm nào giúp NPC di chuyển như vậy hoặc là nó được quy định ở file nào....Bạn nào biết có thể chỉ cho mình được không ???

satthupro95
04-11-14, 10:21 PM
Tiện 2pic này có 1 số vấn đề liên quan, cho mình hỏi một chút.

Trong event Tiêu Dao Cốc (bảo vệ 1 con đi từ A--->B) hay 1 số Event mà có hộ tống (hộ tống Hàn Thác Trụ chẳng hạn), Mình thấy NPC nó đi từ điểm này đến điểm kia..!!!

Vậy hàm nào giúp NPC di chuyển như vậy hoặc là nó được quy định ở file nào....Bạn nào biết có thể chỉ cho mình được không ???

script/task/protectnpc.lua truyền tham số vào hàm là được nhé, unpak file task_publish.pak tìm mấy cái nhiệm vụ hộ tống sẽ thấy cách sử dụng hàm

bboyswat
04-11-14, 10:51 PM
Mình cám ơn satthu nhé :D..!!!

namk020
01-02-19, 03:30 AM
Mình cám ơn satthu nhé :D..!!!

Đã mở được tính năng thú cưng theo sau bản 2.6 rồi nhé [-X[-X

<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>

kebactinh86
13-05-20, 09:43 PM
Đang suy nghĩ làm con pet xuất hiện liên tục và chạy theo sau có ai gợi ý gì không anh em

forever3000
30-05-20, 11:40 AM
Đã mở được tính năng thú cưng theo sau bản 2.6 rồi nhé [-X[-X

<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>

Có share được ko bác ^^, nhìn hấp dẫn quá :D.

cuongpzo
30-05-20, 01:41 PM
Có share được ko bác ^^, nhìn hấp dẫn quá :D.

qua đay anh cho seve ngon nek
zalo 0982141537
thú cưng theo sau
thần khí
kinh mạnh
thú cửa
hộ pháp

forever3000
30-05-20, 06:55 PM
qua đay anh cho seve ngon nek
zalo 0982141537
thú cưng theo sau
thần khí
kinh mạnh
thú cửa
hộ pháp

Đã pm skype do ko dùng zalo :D

__Jie__
09-06-20, 12:22 PM
Đã mở được tính năng thú cưng theo sau bản 2.6 rồi nhé [-X[-X

<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
Bắt trước phong trào. Đào mộ tí



<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>

forever3000
11-06-20, 02:34 PM
Bắt trước phong trào. Đào mộ tí



<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>

Có share đc ko bác :D, toàn post cho anh em thèm ko thế này [-X