PDA

View Full Version : Script kết hôn hàng Việt Nam của tui viết



sangpronhat
22-06-09, 02:19 PM
Sau đây là Code
Thằng này là thằng nguyệt lão nhá :

DANH_SACH_KET_HON={}
Include("\\script\\ket_hon\\danh_sach_marrie.lua")
strMain = {
"<bclr=red>Nguyet Lao<bclr> : Ta la nguoi chuyen lam nghe may moi, nguoi muon ta giup gi ?",
"Ta muon ket hon/kethonok",
"Ta muon ly hon/kethondel",
"Ket thuc doi thoai/out"
}
function main()
strSay = strMain[1].."\n<bclr=water>Ten chong<bclr> <bclr=pink>Ten Vo<bclr>\n"
for i=1,getn(DANH_SACH_KET_HON) do
strSay = strSay..DANH_SACH_KET_HON[i][1].." "..DANH_SACH_KET_HON[i][2].."\n"
end
if KETHON(GetName()) == 1 then
Say(strSay,2,strMain[3],strMain[4])
else
Say(strSay,2,strMain[2],strMain[4])
end
end
function kethonok()
team=GetTeam()
size=GetTeamSize()
if team==nil then
Say("<bclr=red>Nguyet Lao<bclr> : Nguoi phai lap to doi 2 nguoi la nam va nu thi moi ket hon duoc !",0)
elseif team~=nil and size ~= 2 then
Say("<bclr=red>Nguyet Lao<bclr> : Nguoi phai lap to doi 2 nguoi thi moi ket hon duoc ! doi ban chi co"..size,0)
elseif team~=nil and size==2 and IsCaptain()~=1 then
Say("<bclr=red>Nguyet Lao<bclr> : Chi co chu nhom moi den dang ky duoc !",0)
elseif team~=nil and size==2 and IsCaptain()==1 then
Say("<bclr=red>Nguyet Lao<bclr> : Nguoi da du dieu kien de ket hon roi nguoi co muon ket hon khong ?",2,"Tat nhien muon/ok","Ta chua chuan bi tam ly/out")
end
end
function ok()
team=GetTeam()
sex=GetSex()
name=GetName()
if TIMKIEM(GetName()) == 1 then
Say("Nguoi dung la khong chung thuy ma ta se mach cho "..VOLA(GetName()).." do",0)
return
end
if GetSex() == 0 then
for i=1,GetPlayerCount() do
PlayerIndex = i
if GetTeam() == team and GetName() ~= name then
if GetSex() == 1 then
DANH_SACH_KET_HON[getn(DANH_SACH_KET_HON)+1] = {name,GetName()} --chong--vo--
danhsachkethon = TaoBang(DANH_SACH_KET_HON,"DANH_SACH_KET_HON","")
SaveData("script/ket_hon/danh_sach_marrie.lua",danhsachkethon)
Msg2SubWorld("Chuc mung ! 1 cap vo chong vua ket hon la "..name.." va "..GetName().." !")
break
else
Msg2Team("Hai nguoi muon tro thanh nguoi dong tinh u >''<")
end
end
end
else
Say("Nguoi la con gai chuyen dai su nay phai de cho nam gioi lam chu ! dung trach ta co hu nhe !",0)
end
end
function kethondel()
if KETHON(GetName()) == 1 then
for i=1,getn(DANH_SACH_KET_HON) do
if DANH_SACH_KET_HON[i][1] or DANH_SACH_KET_HON[i][2] == GetName() then
Msg2SubWorld("Cap vo chong vua ly hon la :"..DANH_SACH_KET_HON[i][1].." :"..DANH_SACH_KET_HON[i][2])
DANH_SACH_KET_HON[i] = nil
danhsachkethon = TaoBang(DANH_SACH_KET_HON,"DANH_SACH_KET_HON","")
SaveData("script/ket_hon/danh_sach_marrie.lua",danhsachkethon)
end
end
else
Say("Nguoi van chua ket hon ly hon voi ai the !",0)
end
end
function TIMKIEM(string)
for i=1,getn(DANH_SACH_KET_HON) do
for k=1,getn(DANH_SACH_KET_HON[i]) do
if DANH_SACH_KET_HON[i][k] == string then
return 1
end
end
end
end
function KETHON(name)
if getn(DANH_SACH_KET_HON) == 0 then
return 0
end
for i=1,getn(DANH_SACH_KET_HON) do
if DANH_SACH_KET_HON[i][1] == name or DANH_SACH_KET_HON[i][2] == name then
return 1
end
end
end
function VOLA(husband)
if husband == nil then
return 0
end
for i=1,getn(DANH_SACH_KET_HON) do
if DANH_SACH_KET_HON[i][1] == husband then
return DANH_SACH_KET_HON[i][2]
end
end
end
function TaoBang(tTable, sTableName, sTab) --include cua manh tuyen
sTab = sTab or "";
sTmp = ""
sTmp = sTmp..sTab..sTableName.."={"

local tStart = 0
for key, value in tTable do

if tStart == 1 then
sTmp = sTmp..",\r\n"

else
sTmp = sTmp.."\r\n"
tStart = 1
end
local sKey = (type(key) == "string") and format("[%q]",key) or format("[%d]",key);
if(type(value) == "table") then
sTmp = sTmp..TaoBang(value, sKey, sTab.."\t");
else
local sValue = (type(value) == "string") and format("%q",value) or tostring(value);
sTmp = sTmp..sTab.."\t"..sKey.." = "..sValue
end

end
sTmp = sTmp.."\r\n"..sTab.."}"
return sTmp

end

function SaveData(file, string) ---Tuy ngan nhung wan trong nhat >''<
file_op = openfile( file, "w+" ) --- a+ la vit them hem xoa file dau -- w+ -- la che do doc ghi xoa file dau
write(file_op,string)
closefile(file_op)
end

function out()
end
file này là file danh_sach_marrie.lua


DANH_SACH_KET_HON={}copy vào đậu thì nhìn đường dẫn include

Pác Mạnh Tuyên có xem bài này thì giải thích cho ae nghe quá trình làm việc của hàm TaoBang(table,tablename,tab) nhá tui chỉ lấy cái đó xài thôi còn
nó làm việc sao thì không hiểu nữa
Thanks mạnh tuyên trước !

quangquoc
22-06-09, 02:57 PM
Bóc tem, thank bác phát . Để thử xem đã.

thachlong78
22-06-09, 03:10 PM
Nếu không nhầm cái taobang() là xóa mảng cũ thay vào mảng mới. Bạn có thể hiểu thế này, đầu tiên sẽ nghi thêm tên nhân vật nam nữ kết hôn vào cái Danh_Sach_Ket_Hon ở file spit kết hôn, nhưng cái Danh_Sach_Ket_Hon khi reset sever sẽ bị mất nên cần phải save vào đâu đó, nên phải save vào Danh_Sach_Ket_Hon của tạo bảng để lần sau lại gọi ra tiếp mà dùng. Cách này gần giống cách viết ở sever TQ, nhưng sever TQ thì viết vào file .txt còn đây viết trực tiếp vào file .lua. Nhưng công nhận lão này toàn phức tạp hóa vấn đề, đáng nhẽ viết được đơn giản và dễ nhìn hơn nhiều, đọc xong mà loạn hết lung tung.

Mr.Rezo™
22-06-09, 03:11 PM
Hàng ngon :-| đưa vào Server online luôn :"> 25 này mở cửa server rồi chú

Sang nhớ vào test dùm cái nha :D

thachlong78
22-06-09, 03:30 PM
À đọc cách biết này lại nhớ đến cách viết spit skill của bọn TQ, mấy bọn đó toàn viết theo công thức có sẵn hay sao ý, thấy dài loằng ngoằng (nhưng đúng là rất chặt chẽ).

thachlong78
22-06-09, 03:37 PM
À cái lệnh PlayerIndex = id này rất cần thiết. Với cái lệnh xác định máp ý kết hợp với misson để điều khiển sever, có như vậy mới bỏ được cách truyền thống dùng SetTimer và cái lệnh thoát ra trở lại địa điểm cũ (cái Settimer vào sever prive online thôi khỏi nói lỗi tùm lum ngay, còn cái thoát ra trở lại có thằng nào nó phá sever khi nhân vật đã add lệnh đó thì xác định kẹt nhân vật luôn khỏi kick).

Mà cái lệnh kết hôn ý dùng: GetPlayerCount() là không nên vì với 1 sever online sồ lượng người chơi luôn thay đổi nếu bạn chỉ cho chạy tới GetPlayerCount() thì sẽ có lúc xảy ra hiện tượng không xác định được người kết hôn.

sangpronhat
22-06-09, 07:08 PM
Hi` cám ơn ông nhiều nha tui chơi offline không àh :D
nên về cái GetPlayerCount() thì cứ để vậy nếu làm sv online thì sửa lại thành số :D

sangpronhat
22-06-09, 07:10 PM
Nếu không nhầm cái taobang() là xóa mảng cũ thay vào mảng mới. Bạn có thể hiểu thế này, đầu tiên sẽ nghi thêm tên nhân vật nam nữ kết hôn vào cái Danh_Sach_Ket_Hon ở file spit kết hôn, nhưng cái Danh_Sach_Ket_Hon khi reset sever sẽ bị mất nên cần phải save vào đâu đó, nên phải save vào Danh_Sach_Ket_Hon của tạo bảng để lần sau lại gọi ra tiếp mà dùng. Cách này gần giống cách viết ở sever TQ, nhưng sever TQ thì viết vào file .txt còn đây viết trực tiếp vào file .lua. Nhưng công nhận lão này toàn phức tạp hóa vấn đề, đáng nhẽ viết được đơn giản và dễ nhìn hơn nhiều, đọc xong mà loạn hết lung tung.
Cái bạn nói mình hiểu mới biết làm chứ
Còn về các hoạt động của nó kìa
từ dạng bien = {
{...,....,...}
}
thành bien = {
[1] = {
[1] = {........}
}
}
nó sử lý dữ liệu sao át dọ hoài hem hiểu

jxdevbro
22-06-09, 10:03 PM
@ê anhtai: Mở server Xuân Thu hả, cho tui 1 chân test đồ Bạch Kim nha.

sonhot06
23-06-09, 12:13 AM
khi nào mở sv zạ :D , cho pik cái ngen :D mình từ GVn wa

DNTmaster
23-06-09, 07:17 AM
Ah theo nhận biết về những cái tôi biết và thu nhập những thông tin ma tôi biết thì theo tôi cái của biết là đây là script lập bang của Mạnh Tuyền đc fix lại thành Kết Hôn phải không Sang ???

Mr.Rezo™
23-06-09, 07:26 AM
Chuẩn rồi đấy :)) nhìn cái file danh sách kết hôn là rõ ngay mà :-| nhưng đây

cũng là 1 script ngon và xài được chứ không đến nỗi nào :">

sangpronhat
23-06-09, 01:42 PM
Ah theo nhận biết về những cái tôi biết và thu nhập những thông tin ma tôi biết thì theo tôi cái của biết là đây là script lập bang của Mạnh Tuyền đc fix lại thành Kết Hôn phải không Sang ???
Đúng dựa trên cấu trúc vì dạng này ngắn hơn khi kiểm tra
còn nếu save = file txt thì khi kiểm tra phải tạo ra array mệt lắm:o)

leeyoungman
28-08-09, 10:36 AM
Còn một lỗi rất nghiêm trọng . ví dụ : Anh A kết hôn với chị B . Một anh C khác lại kết hôn với chị B . thì Pó tay NPC cứng đơ không thể nói chuyện được . Mặt dù Reset server cũng vậy . vì trong file danh sách đã Lưu . Không tin thử xem . Nhờ fix lại cảm ơn .