Server do mình dev theo kiểu mình nay ko có thời gian để làm tiếp share mọi người ai thix dev lấy về dev tiếp còn ai ko biết down về chơi cũng là ok.
Các chức năng trong server căn bản:
- Tống Kim
- Liên Đấu (đơn đấu)
- Vượt Ải
- Phong Lăng độ
- Dã Tẩu
- Boss Hoàng Kim
- Hoa Đăng
- Đêm Huy Hoàng
- Ép trang bị an bang, hiệp cốt..
một số chức năng nữa đang làm dang dở chưa xong bao gồm cả ép đồ tím mình đang làm mà chưa xong, ai dev tiếp thì cứ tiếp tục những link phía dưới sẽ có 1 vài tài liệu giúp người nào thix dev sẽ típ tục được. Ai thích thì xài ko thích thì đừng nói lời cay đắng.
server + gateway (mật khẩu rar: darkmoon)
client:
==================================
Chưa có thời gian nên mới test đc vài cái
Cẩm nang hoàng kim: OK
Dã tẩu như mấy sv win: OK
Skill: OK
Chức năng đổi đồ xanh (Kiếm đổi thành Đao, KHÔNG thay đổi OP): OK
Ép an bang bác này viết lại: OK
Event cho tân thủ: OK
Hầu như bác ấy viết lại theo ý bác ấy vậy nên anh em vào game test cho dễ
Chủ thớt cho em hỏi muốn công thành thì sao
Thằng công thành quan ko cho chơi
==================================
jxser\server1\script\darkscript\item\ruongchua_ngu yenlieu.lua
==================================
GM: jxser\server1\script\gm_tool\gm_tool.lua
Tm dòng 12: GMSYS.ListGM = ở dưới là id acc gm muốn thêm. Khi tạo nhân vật vào sẽ có đạo cụ cho GM như hiện thân, tàng hình, lấy vật phẩm từ magicscrip, queskey, quản lý nhân vật, thông báo.....
NPC tân thủ: tất cả sửa trong file jxser\server1\script\darkscript\hotro_test.lua
GMSYS.ListGM =
{
["darkmoon"] = 08011989,
["damonphan"] = 29072012,
["Admin11"] = 29072012,
}
Là tên account chứ không phải tên nhân vật.
==================================
script\darkscript\global\hotro\hotro_tanthu.lua
==================================
Xóa Skill
Bạn dùng hàm del skill
DelMagic(idskill)
==================================
==================================
Các chức năng trong server căn bản:
- Tống Kim
- Liên Đấu (đơn đấu)
- Vượt Ải
- Phong Lăng độ
- Dã Tẩu
- Boss Hoàng Kim
- Hoa Đăng
- Đêm Huy Hoàng
- Ép trang bị an bang, hiệp cốt..
một số chức năng nữa đang làm dang dở chưa xong bao gồm cả ép đồ tím mình đang làm mà chưa xong, ai dev tiếp thì cứ tiếp tục những link phía dưới sẽ có 1 vài tài liệu giúp người nào thix dev sẽ típ tục được. Ai thích thì xài ko thích thì đừng nói lời cay đắng.
server + gateway (mật khẩu rar: darkmoon)
client:
Code:
/*
DarkMoon
05/02/2013 3:00 am
hamserver_vina.txt
List ham server
*/
--IncludeLib("FILESYS") : de dung dc ham doc file
--IncludeLib("TASKSYS"): DE DUNG TASK SYS FILE
--IncludeLib("SETTING") : Dung lien wan den ham ST_
--IncludeLib("ITEM") --lien quan đến item
--IncludeLib("TIMER") --liên quan đến hàm timer (gọi id from tasklist.ini)
--IncludeLib("NPCINFO"): dùng để gọi hàm level monster
--timer gọi only in tasklist.in
TM_SetTimer(18 * 10, IDTaskTimer, 30, 0)
TM_StopTimer(IDTASKTIMER)
Include("\\script\\dailogsys\\dailogsay.lua"): create ham say
TabFile_Search(path or tên file muốn đặt,zNameRow,DataFind,nRow): dùng để tìm 1 thông tin của 1 line nào đó trong 1 file.
TabFile_GetRowCount(path or tên file muốn đặt) : count data trong file
TabFile_GetCell(path or tên file muốn đặt,nRow,zNameRow) : dùng để lấy thông tin từng roll mặc định bởi tên đầu tiên của row
TabFile_Load(path,tên file muốn đặt(vd: "duong")) : kiểm tra file có tồn tại ko (1: có, 0: ko)
SetAutoHangMapFlag(id so ) : 1 cấm bán hàng + chat trên mọi tầng số
CountFreeRoomByWH(width,height) : tính ô trống trong rương by rộng và chiều cao
CalcFreeItemCellCount() : đếm khoảng trống trong hành trang by ô (1 by 1)
CreateTaskSay({"<dec><npc>".." string want to say","ket thuc/oncancel"})
GetAccount() : hàm lấy id để đăng nhập nhân vật
GetLocalDate("%y%m%d") : lấy ngày tháng của computer
CreateNewSayEx(zTile,tbOption) : tạo một hàm say như sau
zTile = "test string"
tbOption =
{
{"Option name",function option,paramate}
}
ITEM_SetExpiredTime(ItemIndex, 10080);
SyncItem(ItemIndex); dùng sau khi set thời gian expired cho 1 trang bị hoặc 1 vật phẩm nào.
SetItemBindState(index,-2) : khóa bảo hiểm vĩnh viễn (index = AddItem(...) )
GetItemName(nItemIdx) : dùng để lấy tên vật phẩm.
RemoveItemByIndex(nItemIdx) : xóa vật phẩm by index.
CalcEquiproomItemCount( 6, 1, Id Vật Phẩm, Cấp Độ ) : đếm số lượng vật phẩm xếp chồng trong rương dùng cho hàm AddItem(6,1,0...)
ConsumeEquiproomItem(số lượng trừ,6,1,Id Vật Phẩm,-1): del vật phẩm xếp chồng dùng cho vật phẩm AddItem(6..)
CalcEquiproomItemCount(4,id vật phẩm,1,-1) : đếm số lượng xếp chồng cho vật phẩm questkey
ConsumeEquiproomItem(số lượng,4,id vật phẩm,1,-1): del vật phẩm xếp chồng dùng cho questkey
ConsumeItem(3,1,loại vật phẩm (4, or 6 or item),1,Id Vật Phẩm,-1): dùng để kiểm tra vật phẩm có hay ko nếu có thì return 1 và xóa lun vật phẩm hoặc trang bi
ConsumeItem(-1,nItemCount,tbProp[1],tbProp[2],tbProp[3],-1): dùng để đếm số lượng(cả stack) Item 6 có bao nhiêu nếu đúng số lượng nItemCount(lấy từ CalcItemCount) là 1 if not -1, then nó del vật phẩm đó.
CalcItemCount(-1,tbProp[1],tbProp[2],tbProp[3],-1): lấy số lượng Item stack của item 6 trong bảng giao
CalcItemCount(3,tbProp[1],tbProp[2],tbProp[3],-1): đếm số lượng vật phẩm trong hành trang
GiveItemUI("tên của bản giao","chú thích của bảng giao","function de thực hiện bảng giao") : bảng giao vật phẩm or trang bị
GetItemBindState(nItemIndex) : lấy tình trạng của vật phẩm (khóa hay ko khóa)
GetGiveItemUnit(nItemRoom) : trả lại lấy index của vật phẩm bỏ vào bảng giao return IndexItem,nItemRoom: số ô của vật phẩm bỏ vào bảng giao
GetItemProp(index item) : return particular,kind of vật phẩm,id vật phẩm
GetItemStackCount(idxItem): return số lượng item xếp chồng bỏ vào bảng giao by index vật phẩm bỏ vào
GetItemQuality(nItemIndex) : return loại trang bị bỏ vào bảng giao bởi index.
GetItemName(nItemIndex): return lại tên của vật phẩm hoặc trang bị bỏ vào bởi index
SetItemStackCount( itemidx , 10 ): xoá item stack bỏ vào ui rồi add lại số lượng còn lại.
CalcFreeItemCellCount(): dùng để đếm khoảng trống trong hành trang ( CalcFreeItemCellCount() <= 15 : cần 15 khoảng trống);
DisabledUseTownP(0 or 1) : khóa sử dụng thổ địa phù : 0 mở 1: khóa
ForbidChangePK(0 or 1) : khóa pk 1: khóa ,0 : ko
Msg2Map(id map,str) : dùng thông báo tin nhắn đến nhân vật trong 1 map nào đó
OfflineLive(PlayerIndex) : dùng để out nhân vật dạng ủy thác.
GetLastDiagNpc(); return index npc đối thoại
GetNpcName(nNpcIndex) : return tên npc đối thoại bằng index
NPCINFO_GetLevel(nNpcIndex) : dùng để lấy level monster fai include IncludeLib("NPCINFO")
NPCINFO_GetSeries(nNpcIndex) : dùng để lấy series của monster
SetMissionS(id, Name): Dùng để add tên của nhân vật ở dạng task mission
GetMissionS(id) : lấy tên nhân vật được set bằng missions s bằng id
GetSkillExp(Id Skill): dùng để kiểm % luyện của skill
AddSkillExp(Id Skill,% exp luyện,1,1): add % luyện skill
GetSkillName(Skill Id) : return name của skill
GetCurrentMagicLevel(nSkillId, 0): kiểm tra level hiện tại của skill
GetSkillMaxLevel(nSkillId): lấy max skill number
AddSkillState(id skill, 1, 1, số phút * 1080): dùng để add thể trạng skill hiển thị dưới vòng sáng hay là tiên thảo lộ
GetSkillState(id skill): dùng để kiểm tra tình trạng của skill hiệu ứng
GetTeamMember(i) : lấy index player by team
GetNpcAroundPlayerList(nNpcIndex, 20); dùng để kiểm tra nhân vật có ở gần npc ko (npc idnex, khoảng cách nv đến npc)
SetNpcParam( index npc,1,số thứ tự); dùng để phân biệt số thứ tự npc được add vào sv
SetTireTime(0) : dùng để reset giờ chơi
ST_LevelUp(nLevel) : dùng để add level cho người chơi (nlevel : level muốn add) + fai includelib("SETTING")
ST_IsTransLife() : kiểm tra chuyển sinh (IncludeLib("SETTING"))
GetNpcSettingIdx(nNpcIndex) : dùng để lấy id npc trong file (npcs.txt) return id npc
ForbidEnmity(0): lock cừu sát hay không cừu sát (0: cừu sát, 1: cấm cừu sát)
GetNpcPos(nNpcIndex) : return nXIndex,nYIndex,nSubWorldIndex : dùng cho dropitem()
DropItem(nSubWorldIdx ,nX,nY,PlayerIndex,particular type,1,id vat pham,1,0,0,0,0,0,0,0,0): rơi item or vật phẩm xuống đất
AddStackItem(số lượng,particular,id vật phẩm,1,1,0,0,0) : dùng để add vật phẩm xếp chồng
GetItemCountEx(id vat pham): dùng để đếm số lượng vật phẩm questkey
HaveItem(id vat pham): dùng để đếm số lượng vật phẩm questkey
DelItemEx(id vat pham): xóa vật phẩm questkey
AddEventItem(Id vat pham): add vật phẩm questkey
CheckStoreBoxState(thu tu ruong): kiểm tra đã mở rộng rương chưa
SubWorldName(MapIndex): return tên thành thị bằng SubWorld;
AddNpcSkillState(nNpcIndex, Skill ID, Level Skill, 1 (mặc định), thời gian phút * 18): dùng để add skill cho npc.
SetNpcAuraSkill(nNpcIndex, Skill ID, Level Skill): dùng để add skill trạng thái buff cho npc.
ChangeOwnFeature(0, 0, -1, -1, -1, -1, -1): ẩn mình nhân vật chỉ hiện tên nv thôi, out ra là hết.
GetLoginTime(): lấy thời gian login vào sv của nhân vật
Time2Tm(GetLoginTime()): dùng để convert thời gian login hay logout của nhân vật qua ngày tháng năm. ví dụ: local tb = Time2Tm(GetLoginTime()) str = format("%d/%d/%d-%d/%d/%d", tb[3], tb[2], tb[1], tb[4], tb[5], tb[6])
Tm2Time(2010,7,15,0,0,0): dùng để convert sang theo ngày tháng: 15/17/2010-0/0/0
Ladder_NewLadder(LadderID,tên giá trị,giá trị,type,giá tri 1, giá trị 2): dùng để add ladder (type (0 là update liên tục, 1 update 1 lần))
local tên giá trị, giá trị,giá trị 1,giá trị 2 = Ladder_GetLadderInfo(LadderID, k): dùng để return lại các giá trị ladder.
ForbidEnmity(0); cấm cừu sát (1 là cấm, 0 là có thể cừu sát);
AddItemEx(nItemVer, nRandseed, nQ, nG, nD, nL, nS, nLucky, nMagic0, nMagic1, nMagic2, nMagic3, nMagic4, nMagic5, nMagic6);
--====cách dùng hàm dropitem===----
tbItem = {6,1,ItemID,1,0,0};
local x, y, world = GetNpcPos(nNpcIndex);
DropItem(world, x, y, -1, tbItem[1],tbItem[2], tbItem[3], tbItem[4], tbItem[5], tbItem[6], 0, 0, 0, 0, 0, 0);
----end cách dùng hàm dropitem-------
g_AskClientNumberEx(1, 50, "Xin mời nhập số", {self.goi, {self,50}} ) : ask player for number dưới dạng class function : 1 là hiện thị số nhập, self.goi la function , {self,50} : self là default parameter, 50 là max count có thể nhập vào.
Include("\\script\\dailogsys\\dialogsay.lua"
g_GiveItemUI("Thay đổi ngoại hình trang bị", "Xin hãy bỏ vào trang bị cần thay đổi ngoại hình", {self.goi, {self,3}}): UI giao trang bị dùng để gọi function class, self.goi(3,INDEX): INDEX: self, max input 3
-----------------------------------------------------------------------------------------
=============================================
---dailog: Include("\\script\\dailogsys\\g_dialog.lua")
if NpcName2Replace then
have to use : NpcName2Replace(szNpcName) : return chính xác tên npc đối thoại.
end
local tbDailog = DailogClass:new(szNpcName)
tbDailog.szTitleMsg = ""
tbDailog:AddOptEntry(string option,function) : dùng cho function ko có parameter
tbDailog:AddOptEntry(string option,function,{para1,para2,para3,...}): dùng cho function có parameter
tbDailog:Show() : show list AddOption
--Add Npc tự động: Include("\\script\\global\\autoexec_head.lua")
AutoFunctions: Add(function addnpc) :nó sẽ tự add npc bằng cách bỏ function npc vào para
cách dùng: gọi hàm ra cuối file AutoFunctions:Add(LoadNpc_ViDu)
------------------------------------
Cách dùng hàm DropTemplet:
Include("\\script\\lib\\droptemplet.lua") : header để dùng đươc hàm DropTemplet
tbItem =
{
{szName = "",tbProp = {0,1},nCount = 1, nRate = 20,nQuality = 1, nExpiredTime = 10080} --cho hoàng kim trang bi
{szName = "",tbProp = {4 or 6,1,id vat pham,1,0,0},nCount = 1, nRate = 20, nExpiredTime = 10080}
}
tbDropTemplet:GiveAwardByList(nNpcIndex, -1, tbItem,TitleStr, 1)
: hàm rơi (TitleStr : "Boss death" or bất cứ gì)
-------------------------------------------------------------------
==========================================
Các hàm liên quan đến ~ tống kim
bt_setnormaltask2type() --set task cho cái bảng
BT_SetView(PL_TOTALPOINT); --điểm
BT_SetView(PL_KILLPLAYER); --giết người
BT_SetView(PL_KILLNPC);--giết npc
BT_SetView(PL_BEKILLED); --bị người khác giết
-- BT_SetView(PL_SNAPFLAG); --đoạt cờ
BT_SetView(PL_GETITEM); --Bảo vật lụm được
BT_SetView(PL_MAXSERIESKILL); --liên trảm
BT_SetGameData()
BT_LeaveBattle() : tat ~ clear thong tin
BT_ClearPlayerData() --xoa data cua ~ trong tong kim
BT_SortLadder() : sort thứ hạng
BT_BroadSelf() : mở lên cho nhìn thấy thông tin trong bảng ~
------------------------------------------------------------------------------
==============================================
Các hàm liên quan đến chỉnh thời gian trong s3relay
TaskName("name"):
TaskInterval(time) : số phút
TaskTime(giờ, phút):
TaskCountLimit(0);
------------------------------------------------------------------------------
================================================
Hàm add đồ tím + add option đồ tím.
--add option đồ tím và hàm
--add ra đồ tìm 6 dòng: AddQualityItem(2,0,1,2,10,4,0,-1,-1,-1,-1,-1,-1)
--AddItemEx(nItemVer, nRandseed, nQuality, nG, nD, nL, nS, nLucky, nMagic0, nMagic1, nMagic2, nMagic3, nMagic4, nMagic5, nMagic6);
--randsed: trong đồ tím nếu để 0 nó sẽ random tỉ lệ option của trang bị từ 1% - 100% tuỳ theo option thuộc loại nào.
--ví dụ: magic id 126 (sát thương) trong file magicattriblevel_index.txt có tỷ lệ min là 1 và 10 là max tượng trưng cho 1% - 100% nếu để randomseed là 0 và magic level 1 thì sát thương sẽ random trong khoảng 1%-10%
AddItemEx(4,ransed,2,nGenre, nDetailType, nParticular, nLevel, nSeries, nLuck,290,maglevel[2],maglevel[3],maglevel[4],maglevel[5],maglevel[6])
GetGiveItemUnit(index); return lại itemindex (index là vật phẩm được lấy index từ GiveItemUi());
ITEM_GetItemRandSeed(itemindex): lấy randsed
GetItemAllParams(itemindex): lấy magiclevel từng option có thể thay đổi min max bằng->(liên quan đến file magicattriblevel_index.txt (cách coi file idmagic - minopt - maxopt))
GetItemProp(itemindex): return tất cả nGenre, nDetailType, nParticular, nLevel, nSeries, nLuck của 1 trang bị
==================================
Chưa có thời gian nên mới test đc vài cái
Cẩm nang hoàng kim: OK
Dã tẩu như mấy sv win: OK
Skill: OK
Chức năng đổi đồ xanh (Kiếm đổi thành Đao, KHÔNG thay đổi OP): OK
Ép an bang bác này viết lại: OK
Event cho tân thủ: OK
Hầu như bác ấy viết lại theo ý bác ấy vậy nên anh em vào game test cho dễ
Chủ thớt cho em hỏi muốn công thành thì sao
Thằng công thành quan ko cho chơi
==================================
jxser\server1\script\darkscript\item\ruongchua_ngu yenlieu.lua
==================================
GM: jxser\server1\script\gm_tool\gm_tool.lua
Tm dòng 12: GMSYS.ListGM = ở dưới là id acc gm muốn thêm. Khi tạo nhân vật vào sẽ có đạo cụ cho GM như hiện thân, tàng hình, lấy vật phẩm từ magicscrip, queskey, quản lý nhân vật, thông báo.....
NPC tân thủ: tất cả sửa trong file jxser\server1\script\darkscript\hotro_test.lua
GMSYS.ListGM =
{
["darkmoon"] = 08011989,
["damonphan"] = 29072012,
["Admin11"] = 29072012,
}
Là tên account chứ không phải tên nhân vật.
==================================
script\darkscript\global\hotro\hotro_tanthu.lua
==================================
Xóa Skill
Bạn dùng hàm del skill
DelMagic(idskill)
==================================
==================================