📄 missionsdk.lua
字号:
------------------------------------------------------------
--MissionSdk.lua Created by knight 2004.12.10.
--
--任务系统函数接口定义
print( "loading missionsdk.lua" )
------------------------------------------------------------
--脚本系统返回值定义
LUA_TRUE = 1
LUA_FALSE = 0
LUA_ERROR = -1
LUA_NULL = 0
--任务系统脚本
TE_MAPINIT = 0 --出生
TE_NPC = 1 --npc携带
TE_KILL = 2 --摧毁物件
TE_GAMETIME = 3 --游戏时间
TE_CHAT = 4 --聊天关键字
TE_GETITEM = 5 --拾取物品
TE_EQUIPITEM = 6 --装备物品
TE_GOTO_MAP = 7 --到达目标点 (角色触发器存储)参数1,地图ID, 参数2,地图到达随机率,参数3,地图坐标x,参数4, 地图坐标y
TE_LEVELUP = 8 --升级 (角色触发器存储)参数1,是否主动关闭(触发器动作后关闭),参数2,是否每个等级都触发,参数3,指定等级触发
--触发器时间类型
TT_CYCLETIME = 0 --时间循环
TT_MULTITIME = 1 --循环运行n次
--触发器最大携带条件数量
TR_MAXNUM_CONDITIONS = 12
TR_MAXNUM_ACTIONS = 12
--npc任务状态信息定义
MIS_ACCEPT = 1 --有符合条件可以接的任务
MIS_DELIVERY = 2 --已完成可交付的任务
MIS_PENDING = 4 --已完成可交付的任务
MIS_IGNORE = 8 --不符合条件可以接的任务
--任务列表页操作命令
MIS_PREV = 0 --请求发送任务列表的上一页信息
MIS_NEXT = 1 --请求发送任务列表的下一页信息
MIS_PREV_END = 2 --任务列表没有上一页信息
MIS_NEXT_END = 3 --任务列表没有下一页信息
MIS_SEL = 4 --请求选择任务列表项目
MIS_TALK = 5 --请求任务对话信息
MIS_BTNACCEPT = 6 --请求接受任务
MIS_BTNDELIVERY= 7 --请求交付任务
MIS_BTNPENDING = 8 --未决任务请求(客户端禁止按钮)
MIS_LOG = 9 --请求任务日志信息
--任务信息定义
--完成 任务需求类型定义
MIS_NEED_ITEM = 0 --需要获取物品
MIS_NEED_KILL = 1 --需要摧毁物件
MIS_NEED_SEND = 2 --需要送给某人
MIS_NEED_CONVOY = 3 --需要护送到某的
MIS_NEED_EXPLORE = 4 --需要探索某的
MIS_NEED_DESP = 5 --文字表述的任务目标
--完成任务奖励类型定义
MIS_PRIZE_ITEM = 0 --奖励物品
MIS_PRIZE_MONEY = 1 --奖励金钱
MIS_PRIZE_FAME = 2 --奖励声望
MIS_PRIZE_CESS = 3 --奖励贸易税率
MIS_PRIZE_PETEXP = 4 --奖励宠物经验值
--角色职业类型
MIS_NOVICE = 0 --Newbie
MIS_FENCER = 1 --Swordsman
MIS_HUNTER = 2 --Hunter
MIS_EXPERIENCED = 2 --Sailor
MIS_RISKER = 4 --Explorer
MIS_DOCTOR = 5 --Herbalist
MIS_TECHNICIAN = 6 --Artisan
MIS_TRADER = 7 --Merchant
MIS_LARGE_FENCER = 8 --Champion
MIS_TWO_FENCER = 9 --Crusader
MIS_SHIELD_FENCER = 10 --White Knight
MIS_WILD_ANIMAL_TRAINER = 11 --Animal Tamer
MIS_GUNMAN = 12 --Sharpshooter
MIS_CLERGY = 13 --Cleric
MIS_SEALER = 14 --Seal Master
MIS_SHIPMASTER = 15 --Captain
MIS_VOYAGE = 16 --Voyager
MIS_ARRIVISTE = 17 --Upstart
MIS_ENGINEER = 18 --Engineer
--公会类型
MIS_GUILD_NAVY = 0 --海军公会
MIS_GUILD_PIRATE = 1 --海盗公会
--永远为假
function AlwaysFailure()
return LUA_FALSE
end
--永久为真
function AlwaysTrue()
return LUA_TRUE
end
--没有历史标签
function NoRecord( character, record )
if record == nil then
SystemNotice( character, "NoRecord:Function parameter error!" )
return LUA_ERROR
end
local ret = IsValidRecord( character, record )
if ret == LUA_FALSE then
SystemNotice( character, "NoRecord: Invalid story record index error or character index error!" )
return LUA_ERROR
end
ret = IsRecord( character, record )
if ret ~= LUA_TRUE then
return LUA_TRUE
end
return LUA_FALSE
end
--检测技能状态
function HasState( character, state_id )
if state_id == nil then
SystemNotice( character, "HasState:函数参数错误!" )
return LUA_ERROR
end
local ret = GetChaStateLv( character, state_id )
if ret ~= nil then
if ret > 0 then
return LUA_TRUE
end
end
return LUA_FALSE
end
--检测角色体型
function IsChaType( character, type_id )
if type_id == nil then
SystemNotice( character, "IsChaType:函数参数错误!" )
return LUA_ERROR
end
local ret = GetChaBody( character )
if ret == type_id then
return LUA_TRUE
end
return LUA_FALSE
end
--检测不是角色体型
function NoChaType( character, type_id )
if type_id == nil then
SystemNotice( character, "NoChaType:函数参数错误!" )
return LUA_ERROR
end
local ret = GetChaBody( character )
if ret ~= type_id then
return LUA_TRUE
end
return LUA_FALSE
end
--播放特效
function Starteffect( character, npc, tp )
if tp == nil then
PRINT( "Starteffect:函数参数错误!" )
SystemNotice( character, "Starteffect:函数参数错误!" )
return LUA_ERROR
end
PRINT( "Starteffect, p1 = "..tp )
PlayEffect( npc, tp )
return LUA_TRUE
end
--是否有历史标签
function HasRecord( character, record )
if record == nil then
SystemNotice( character, "HasRecord: Function parameter error!" )
return LUA_ERROR
end
local ret = IsValidRecord( character, record )
if ret == LUA_FALSE then
SystemNotice( character, "HasRecord: invalid history quest record index error or character index error!" )
return LUA_ERROR
end
return IsRecord( character, record )
end
--没有任务记录标签
function NoFlag( character, id, flag )
if id == nil or flag == nil then
SystemNotice( character, "NoFlag:Function parameter error!" )
return LUA_ERROR
end
local ret = IsValidFlag( character, flag )
if ret == LUA_FALSE then
SystemNotice( character, "NoFlag: Invalid quest record index error or character index error!" )
return LUA_ERROR
end
ret = IsFlag( character, id, flag )
if ret == LUA_TRUE then
return LUA_FALSE
end
return LUA_TRUE
end
--不能有该任务护送NPC
function NoConvoyNpc( character, misid )
if misid == nil then
SystemNotice( character, "NoConvoyNpc:Function parameter error!" )
return LUA_ERROR
end
local ret = HasConvoyNpc( character, misid )
if ret == LUA_TRUE then
return LUA_FALSE
end
return LUA_TRUE
end
--随机任务送物件给npc时,判断是否npc已经接受过该物品
--function NoRandNpcItemFlag( character, misid, npcid )
-- if misid == nil or npcid == nil then
-- SystemNotice( character, "NoRandNpcItemFlag:Function parameter error!" )
-- return LUA_ERROR
-- end
--
-- local ret = HasRandNpcItemFlag( character, misid, npcid )
-- if ret == LUA_TRUE then
-- return LUA_FALSE
-- end
-- return LUA_TRUE
--end
--没有任务标签
function NoMission( character, id )
if id == nil then
SystemNotice( character, "NoMission:Function parameter error!" )
return LUA_ERROR
end
local ret = HasMission( character, id )
if ret == LUA_TRUE then
return LUA_FALSE
end
return LUA_TRUE
end
--没有指定得随机任务
function NoRandMission( character, id )
if id == nil then
SystemNotice( character, "NoRandMission:function parameter error" )
return LUA_ERROR
end
local ret = HasRandMission( character, id )
if ret == LUA_TRUE then
return LUA_FALSE
end
return LUA_TRUE
end
--任务没有失败
function NoMisssionFailure( character, id )
if id == nil then
SystemNotice( character, "NoMisssionFailure:functionparameter error " )
return LUA_ERROR
end
local ret = HasMisssionFailure( character, id )
if ret == LUA_TRUE then
return LUA_FALSE
end
return LUA_TRUE
end
function IsMission( character, id )
if id == nil then
SystemNotice( character, "IsMission:Function parameter error!" )
return LUA_ERROR
end
return HasMission( character, id )
end
function NoGuild( character )
local ret = HasGuild( character )
if ret == LUA_TRUE then
return LUA_FALSE
end
return LUA_TRUE
end
function NoPfEqual( character, pf )
local ret = PfEqual( character, pf )
if ret == LUA_TRUE then
return LUA_FALSE
end
return LUA_TRUE
end
--添加指定的下一个任务记录标签
function AddNextFlag( character, id, startflag, count )
if id == nil or startflag == nil or count == nil then
SystemNotice( character, "AddNextFlag:Function parameter error!" )
end
local num = 0
for i = 1, count, 1 do
local ret = IsFlag( character, id, startflag + num )
if ret == LUA_FALSE then
PRINT( "AddNextFlag: flag = ", startflag + num )
ret = SetFlag( character, id, startflag + num )
if ret ~= LUA_TRUE then
SystemNotice( character, "AddNextFlag: Unable to set quest record label notice error!" )
return LUA_ERROR
end
return LUA_TRUE
end
num = num + 1
end
return LUA_TRUE
end
--设置下一个随机任务记录标签
function AddRMNextFlag( character, id, startflag, count )
if id == nil or startflag == nil or count == nil then
SystemNotice( character, "AddRMNextFlag:Function parameter error!" )
end
local num = 0
for i = 1, count, 1 do
local ret = HasFlag( character, id, startflag + num )
if ret == LUA_FALSE then
PRINT( "AddRMNextFlag: flag = ", startflag + num )
ret = SetFlag( character, id, startflag + num )
if ret ~= LUA_TRUE then
SystemNotice( character, "AddRMNextFlag: Unable to set quest record label notice error!" )
return LUA_ERROR
end
return LUA_TRUE
end
num = num + 1
end
return LUA_TRUE
end
-----------船或者在这个港口或者在那个港口
-- function HasAllBoatInBerth_eitheror( character, p1, p2 )
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -