PDA

View Full Version : [KT] Script phần thưởng hàng ngày, có giới hạn số lần và thời gian nhận tiếp theo :)



xaophayxoan
27-03-12, 01:04 AM
vừa ngồi vọc mấy script cuối cùng cũng mò ra đc :)




tbItem.TaskGourp = 3000; --task mới phải add vào gameserver\setting\player\task_def.txt
tbItem.TaskId_Day = 1; --task lưu ngày
tbItem.TaskId_Count = 2; --task lưu lần nhận
tbItem.TaskId_Last = 3; --task lưu thời gian nhận
tbItem.Relay_Time = 30*60; --thời gian giữa 2 lần nhận mình để 30p 1 lần
tbItem.Use_Max =5; --số lần nhận tối đa

function tbItem:nhanthuong()
local nDate = tonumber(GetLocalDate("%Y%m%d"));
if me.GetTask(self.TaskGourp, self.TaskId_Day) < nDate then
me.SetTask(self.TaskGourp, self.TaskId_Day, nDate);
me.SetTask(self.TaskGourp, self.TaskId_Count, 0);
me.SetTask(self.TaskGourp, self.TaskId_Last, 0);
end
local nCount = me.GetTask(self.TaskGourp, self.TaskId_Count);
local szMsg = string.format("Mỗi <color=yellow>30 phút online<color> hàng ngày có thể nhận thưởng, tối đa <color=yellow>5<color> lần.\n\n<color=yellow>Lần 1:<color> 5 túi phúc hoàng kim.\n<color=yellow>Lần 2:<color> 10 vạn bạc khóa.\n<color=yellow>Lần 3:<color> 1 vạn đồng khóa.\n<color=yellow>Lần 4:<color> 1 Lệnh bài Thiên Quỳnh Cung.\n<color=yellow>Lần 5:<color> 1 Bản đồ Bí Cảnh.\n\n<color=yellow>Hôm nay bạn đã nhận %d phần thưởng.<color>",nCount);
local tbOpt = {};
if (nCount<self.Use_Max) then
table.insert(tbOpt , {"Nhận thưởng ngay", self.nhanthuong1, self});
end
table.insert(tbOpt, {"Ta chỉ ghé ngang qua"});
Dialog:Say(szMsg, tbOpt);
end

function tbItem:nhanthuong1()
local nCount = me.GetTask(self.TaskGourp, self.TaskId_Count);
if nCount >= self.Use_Max then
Dialog:Say(string.format("Hôm nay bạn đã nhận đủ phần thưởng."));
return 0;
end
local nLast = me.GetTask(self.TaskGourp, self.TaskId_Last);
local nHour = tonumber(GetLocalDate("%Y%m%d%H%M%S"));
local nSec1 = Lib:GetDate2Time(nHour);
local nSec2 = nLast + self.Relay_Time;
if nSec1 < nSec2 then
me.Msg(string.format("Còn <color=yellow>%s giây<color> nữa mới nhận được phần thưởng tiếp theo.", (nSec2 - nSec1)));
return 0;
end
if (nCount == 0) then
me.AddItem(18, 1, 80, 1); --phần thưởng thứ 1
me.AddItem(18, 1, 80, 1);
me.AddItem(18, 1, 80, 1);
me.AddItem(18, 1, 80, 1);
me.AddItem(18, 1, 80, 1);
elseif (nCount == 1) then
me.AddBindMoney(100000); --phần thưởng thứ 2
elseif (nCount == 2) then
me.AddBindCoin(10000); --phần thưởng thứ 3
elseif (nCount == 3) then
me.AddItem(18, 1, 186, 1); --phần thưởng thứ 4
elseif (nCount == 4) then
me.AddItem(18, 1, 251, 1); --phần thưởng thứ 5
end
me.Msg(string.format("Mỗi 30 phút online mỗi ngày có thể nhận thưởng, tối đa 5 lần. Bạn đã nhận được phần thưởng hàng ngày lần <color=yellow>%d<color>",nCount + 1));
me.SetTask(self.TaskGourp, self.TaskId_Count, nCount + 1);
local nHourS = tonumber(GetLocalDate("%Y%m%d%H%M%S"));
local nSec3 = Lib:GetDate2Time(nHourS);
me.SetTask(self.TaskGourp, self.TaskId_Last, nSec3);
end


Sơ qua là mỗi ngày mình để 5 lần nhận thưởng, mỗi lần cách nhau 30 phút :D
cái này mình add vào trong Tu luyện châu, bác nào add được thì add còn không thì dùng link down sẵn phía dưới của mình

ngoài add script vào thì các bác cần tạo task riêng cho cái này
vào file gameserver\setting\player\task_def.txt
add thêm dòng này vào cuối

3000 1 3 Nhận thưởng hàng ngày 0 0


Phần thưởng hàng ngày mình ghi rõ trong script ai muốn chỉnh theo ý mình thì có thể sửa lại

link down sẵn cho ai không add được

<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>

Hướng dẫn chỉnh phần thưởng bản down về sẵn
để chỉnh phần thưởng các bạn chỉnh ở file gameserver\script\event\minievent\daygift.lua
enjoy!

BMK
27-03-12, 01:49 AM
ok cảm ơn tiếp tục phát huy good \:D/

hoacotu
27-03-12, 03:30 AM
thank pro nhé download về test xem ntn :D

Lãng Tử Sầu
27-03-12, 07:58 AM
Như Vinagame oài còn gì ;)) Thanks Bro!

mtbt8891
27-03-12, 09:30 AM
Cảm ơn bạn. Bạn ơi, bạn có thể set giúp mình file của Thỏi Vàng nhỏ ( ăn dc 15vbac/20v bac khóa). Set cho nó ăn giới hạn 1 cục/tuần dc ko bạn ?

cuccut
27-03-12, 11:48 AM
cái này hay đấy, thanks pro nhé :D

tny143
27-03-12, 06:57 PM
Chuẩn b-) Nếu mình muốn thay add Bạc khóa thành bạc không khóa thì thay BindMoney thành gì vậy chủ thớt ơi?

xaophayxoan
27-03-12, 07:45 PM
Chuẩn b-) Nếu mình muốn thay add Bạc khóa thành bạc không khóa thì thay BindMoney thành gì vậy chủ thớt ơi?


me.Earn(50000000,0);


thay đổi số tiền ở trong nhá

hoacotu
28-03-12, 09:00 PM
muốn add 1 item khóa dùng hàm nào nhĩ chủ thớt

hoacotu
31-03-12, 01:44 AM
tình hình là chả hiểu sao e bị cái này là qua 12h vẫn không thấy reset số lần nhận trong ngày

xaophayxoan
31-03-12, 12:22 PM
tình hình là chả hiểu sao e bị cái này là qua 12h vẫn không thấy reset số lần nhận trong ngày

đúng là có lỗi qua ngày nhưng vẫn hiện đã nhận 5 phần thưởng, mình sẽ fix lại và chyển phần thưởng hàng ngày ra 1 file riêng cho dễ chỉnh sửa, chỉ đơn giản là lỗi ở vị trí các dòng script thôi :D

xaophayxoan
31-03-12, 01:06 PM
Sửa lỗi reset lại số lần nhận qua 12h


<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>

Hướng dẫn chỉnh phần thưởng bản down về sẵn
để chỉnh phần thưởng các bạn chỉnh ở file gameserver\script\event\minievent\daygift.lua
enjoy!

hoacotu
31-03-12, 02:32 PM
Thế cái này nó sẽ nằm ở đâu bạn chỉ cần chép vào daygift.lua nhưng chức năng nhận thưỡng sẽ nằm ở đâu

xaophayxoan
31-03-12, 03:00 PM
Thế cái này nó sẽ nằm ở đâu bạn chỉ cần chép vào daygift.lua nhưng chức năng nhận thưỡng sẽ nằm ở đâu

vẫn ở trong tu luyện châu đo bạn, mình chỉ tách ra thành 1 file riêng thôi :)

nh0kk3n2310
13-04-12, 02:25 PM
vẫn ở trong tu luyện châu đo bạn, mình chỉ tách ra thành 1 file riêng thôi :)

xoan oi neu minh muon sua 30p thanh 5s thi phai lam sao???

khactai
13-04-12, 06:33 PM
xoan oi neu minh muon sua 30p thanh 5s thi phai lam sao???

tbItem.Relay_Time = 30*60; --thời gian giữa 2 lần nhận mình để 30p 1 lần
sữa thành tbItem.Relay_Time = 5;
là xong

maximhoa
14-04-12, 08:38 PM
Bạn ơi tiện đây cho minh hỏi cách fig giới hạn mở Bách bảo rương trong tuần được không bạn

hoacotu
22-04-12, 04:13 AM
Bạn ơi tiện đây cho minh hỏi cách fig giới hạn mở Bách bảo rương trong tuần được không bạn

Của bạn đây

script\baibaoxiang\item\jinxiangzi.lua

Tìm đến dòng này thay số 10 = số rương bạn muốn mở trong tuần

if nWeekOpen >= 10 then

hongphucbl
25-04-12, 09:01 AM
30 charrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr rrrrrrrrrrrr

vokilanok
05-05-12, 10:38 PM
Cái này mình ép vào tui tân thủ được ko

mr.sangle
07-05-12, 04:46 PM
ec khong danh duoc co dau xin loi truoc, moi nhap mon khong biet chay the nao bac nao co the help 1 phat

Lần sau nhớ viết tiếng Việt có dấu !

Mr.Quy
13-05-12, 11:44 AM
giới hạn đc lvl không ?
nó cứ lập acc mới rồi nhận à o.O
rồi ừ thì là bị khóa nhưng mà cũng phải giới hạn để bớt lạm dụng :^o

mrkutepro
01-06-12, 06:48 PM
giới hạn đc lvl không ?
nó cứ lập acc mới rồi nhận à o.O
rồi ừ thì là bị khóa nhưng mà cũng phải giới hạn để bớt lạm dụng :^o
Sao cậu keo vậy chứ, nó lập acc giỏi lắm cũng nhận được cái Bản đồ bí cảnh có giá 1k4 đồng trên sever của cậu chứ có bao nhiêu. Như vậy mà cũng phải giới hạn này giới hạn nọ, khóa với không khóa>:P
Chắc nó lấy bản đồ bí cảnh bán lấy đồng đây mà\:D/

testdangky123
09-06-12, 10:46 PM
Sao cậu keo vậy chứ, nó lập acc giỏi lắm cũng nhận được cái Bản đồ bí cảnh có giá 1k4 đồng trên sever của cậu chứ có bao nhiêu. Như vậy mà cũng phải giới hạn này giới hạn nọ, khóa với không khóa>:P
Chắc nó lấy bản đồ bí cảnh bán lấy đồng đây mà\:D/

nhưng vấn đề là có thể tớ cho bọn nó hằng ngày nhận đồ khác VIP hơn
có thể đem bán hoặc sử dụng gì gì lấy đồng tiêu hoặc HT cấp cao hơ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>
vì nó cứ lập acc ra là nó nhận nó đập đồ hoặc đồ cho nó bán đc bạc
Nói chung là tăng giá trị của phần thưởng hằng ngày lên nhưng mà phải đạt đẳng cấp ... mới nhận được
cái này có thể áp dụng vào event như VNG cũng được mà /:) ý tưởng vậy thôi, ko biết làm :D

mà cái này vui nè
trong file xiulianzhu.lua

Require("\\script\\item\\daygift.lua");
tbOpt = Lib:MergeTable({{"Nhận thưởng hàng ngày", SpecialEvent.PhanThuong.OnDialog, SpecialEvent.PhanThuong}}, tbOpt);


nó có nội dung này có nghĩa là phải copy cái daygift.lua qua đó nữa hả
ko có thì báo lỗi gs nhìn chướng mắt
sửa lại đường dẫn đến event\\minievent\\daygift.lua đc chứ nhỉ :D

prinz
11-06-12, 10:46 PM
sao mình đã thay đổi trong D:\kt\SV Online\gameserver\script\event\minievent\daygift.l ua nhưng giá trị không thay đổi khi vào Game vậy bạn.

bạn nào có thể share cho mình file các bạn đang dùng để đối chiếu ko? cám ơn nhiều....

kakakura
13-06-12, 11:57 PM
sau cái link mình down bị lỗi rùi ai có share lại dùm mình cái, hay biết sứa lỗi nhận thưởng 1 ngày được nhận 1 lần thui, chứ nó nhận xong hết lại nhận lại .

THAN_KIEM
10-10-12, 04:36 PM
vẫn ở trong tu luyện châu đo bạn, mình chỉ tách ra thành 1 file riêng thôi :)

nhận thưởng ở tu luyện châu ?? ai có thể hướng dẫn mình chi tiết hơn được không? mình nhận tu luyện châu ở đâu?
với lại phần thưởng này có thể add vào trong túi tân thủ để nhận được không vậy? có pro nào hướng dẫn mình với??

vipbk
10-10-12, 05:50 PM
nhận thưởng ở tu luyện châu ?? ai có thể hướng dẫn mình chi tiết hơn được không? mình nhận tu luyện châu ở đâu?
với lại phần thưởng này có thể add vào trong túi tân thủ để nhận được không vậy? có pro nào hướng dẫn mình với??

- Tu luyện châu muốn có được phải làm nhiệm vụ chính tuyến đến level 20

- Muốn nhận từ level 1 thì add đoạn code sau vào túi tân thủ (chỉ dành cho nhân vật chưa có, có rồi không nhận được) :


function tbGift:NhanTuLuyenChau()
local nCount = me.GetItemCountInBags(18,1,16,1);
if (nCount == 0) then
local tbXiulianzhuItem = { 18, 1, 16, 1 }
local tbBaseProp = KItem.GetItemBaseProp(unpack(tbXiulianzhuItem));
if not tbBaseProp then
return;
end

local tbItem =
{
nGenre = tbXiulianzhuItem[1],
nDetail = tbXiulianzhuItem[2],
nParticular = tbXiulianzhuItem[3],
nLevel = tbXiulianzhuItem[4],
nSeries = (tbBaseProp.nSeries > 0) and tbBaseProp.nSeries or 0,
bBind = KItem.IsItemBindByBindType(tbBaseProp.nBindType),
nCount = 1;
};

if (0 == me.CanAddItemIntoBag(tbItem)) then
me.Msg("Hành trang đầy");
return;
end

tbXiulianzhuItem[5] = tbItem.nSeries;
me.AddItem(unpack(tbXiulianzhuItem));
me.Msg("Nhận được Tu Luyện Châu!");
else
Dialog:Say("<color=red>Bạn đã có Tu Luyện Châu<color>");
end
end

- Muốn nhận thưởng hàng ngày ở túi tân thủ thì add dòng sau vào túi:


tbOpt = Lib:MergeTable({{"Nhận thưởng hàng ngày", SpecialEvent.PhanThuong.OnDialog, SpecialEvent.PhanThuong}}, tbOpt);

THAN_KIEM
11-10-12, 09:30 PM
- Tu luyện châu muốn có được phải làm nhiệm vụ chính tuyến đến level 20


- Muốn nhận thưởng hàng ngày ở túi tân thủ thì add dòng sau vào túi:


tbOpt = Lib:MergeTable({{"Nhận thưởng hàng ngày", SpecialEvent.PhanThuong.OnDialog, SpecialEvent.PhanThuong}}, tbOpt);

mình đã chép câu trên vào cuối file LUA của túi tân thủ nhưng khi reload script thì nó báo lỗi file, mình thử add vào npc thì không thấy dòng "Nhận thưởng hàng ngày" xuất hiện, không biết có cần có thêm file gi nữa không vipbk?

vipbk
11-10-12, 10:19 PM
add vào npc Lễ Quan như sau:


function tbLiGuan:OnDialog()
local szMsg = "Xin chào! Ta có thể giúp gì?";
local tbOpt =
{
{"Nhận phúc lợi", self.FuLi, self},
{"Đoán hoa đăng",GuessGame.OnDialog,GuessGame},
{"Kết thúc đối thoại"},
}

tbOpt = Lib:MergeTable({{"Nhận thưởng hàng ngày", SpecialEvent.PhanThuong.OnDialog, SpecialEvent.PhanThuong}}, tbOpt);

...

end


add vào túi tân thủ như sau:


function tbGift:OnUse()
local tbOpt = {};

table.insert(tbOpt , {"Hỗ Trợ <color=yellow>Tân Thủ<color>" , self.hotro, self});
table.insert(tbOpt , {"Kỹ Năng Hỗ Trợ" , self.skillx, self});
table.insert(tbOpt , {"Mở Shop", self.OpenAllShop, self});
table.insert(tbOpt , {"Chức Năng <color=red>ADMIN<color>" ,self.administrator, self});
table.insert(tbOpt , {"<color=pink>Test<color>" , self.testitem, self});

tbOpt = Lib:MergeTable({{"Nhận thưởng hàng ngày", SpecialEvent.PhanThuong.OnDialog, SpecialEvent.PhanThuong}}, tbOpt);

...

end


<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>

THAN_KIEM
12-10-12, 09:09 PM
Mình đã làm được, thanks bác VIP!