作者: CrazyHappy GM 我最猛
[NPC范本]
npcgen_warpman 传送员
npcgen_warp 传送点 多重判断 (无法直接当作传点?)
npcgen_savepoint 储存点 ID不能重覆
devilpk和sb_dou 战斗NPC
changeevent 任务NPC
npcgen_shop 商店NPC
npcgen_man 对话NPC enemy=npcgen_man|那个
npcgen_healer 竞技场型护士 enemy=npcgen_healer|1 (竞技场型 一次补满)
npcgen_winhealer 护士 enemy=npcgen_winhealer|10|1.5|3.0|2
npcgen_charm 美容师
npcgen_petshop 宠物商店 main_msg一定要超过两行
npcgen_signboard 告示板
npcgen_dengon 留言版
npcgen_poolitemshop 寄存店
transman 交易NPC
ITEMCHANGE 提炼师或精工师
ProfessionShop 职业技能商店
FreePetSkill 宠物技能商店A (有限制宠技)
npcgen_petskillshop 宠物技能商店B (无限制宠技)
npc_petfusion 融合宠助手
windowman 说明NPC conff:
npcgen_limitshop 专收道具NPC (肉店)
npcgen_timeman 特定时间说话NPC
npcgen_savepoint 储存点
luckyman 占卜师
familyman 家族管理员 conff:
bankman 家族银行 conff:
GambleBank 游乐场银行与兑换员
npcgen_timeman 特定时间出现型npc
[NPC.CREATE] #这是创造NPC的基本设定,修改要重新启动
#一般类型NPC
{
floorid=100 #所处的地图编号,用查询器查
borncenter=472,297(两个) #刚出生在地点x,y座标
borncorner=xx,xx,xx,xx(四个) #作用同上 设一即可 (可避免对话连动??)
movecenter=20,20,100,100 #出生後移动至地点x,y座标 後两个是修正图像位置?
createnum=1 #创造数量?
time=60000 #未知 无用? 抓时间?
dir=4 #面向 1=北 3=东 5=南 7=西 关系隔一格能否说话
action=5 #宠物型NPC的动作
1走动 2攻击 3投掷 4受伤 5晕倒 6(不设也是)站立
11坐下? 12挥手 13高兴 14生气 15悲伤
ignoreinvincible=1 #??
graphicname=100401 #NPC图像编号,用查询器查
name=坏心眼的愿藏 #NPC名称 ex:罗瑟琳 Lv:90
enemy=sb_ganzo|file:100/sb_ganzo.arg #NPC范本类型|参数档位置
}
#传送点
{
floorid=3021
borncenter=406,67,1,1
movecenter=20,20,2,2
createnum=1
time=60000
graphicname=0
name=跳跃点
enemy=npcgen_warp|3022|1|7
}
#储存点
{
name=避难所的储存点
floorid=5500
borncenter=35,19,1,1
dir=5
createnum=1
enemy=npcgen_savepoint|file:poru/sp_5500_35_19
graphicname=10048
borncorner=35,19,35,19
ignoreinvincible=1
}
[NPC.TEMPLATE] #战斗型NPC必加(如用sb_dou就不用),详细作用未知
{
templatename=sb_ganzo #范本ID,包括有 ID.arg ID.create ID.template
makeatnobody=1 #没有图像?
makeatnosee=1 #看不见?
type=100401 #类型?
loopfunctime=4000 #功能时间?
functionset=NPCEnemy #功能设定? 已知有:PetSkillShop,PetShop,ExChangeMan,Quiz,CheckMan,transmigration,
hp=100 #hp
mp=100 #mp
str=1 #str
tough=1 #tough
fly=
itemnum=
}
[NPC.ARG] #这是NPC的参数设定,修改不用重新启动
#战斗型 enemy=sb_dou
NEWNPCENEMY
entype:2 #型态? 0~2都有不同作用,要自己试
askbattlemsg1:赢过我的话就让你通过 #确认战斗对话
askbattlemsg1:
我是禁锢之阵的守护者!
startmsg:xxx
startmsg:呼拔吉,去吧! #确认後对话
dieact:1 #战败後npc传送,通常让npc传回原地
warpfl:0 #玩家战胜後npc传送地图,三项均0=不传送
warpx:0 #传送x座标
warpy:0 #传送y座标
end msg: #战斗结束对话?
enemyno:253,254 #出场宠物,enemy1.txt中的流水编号 从中间开始 左右
要站後排 enemybase1.txt中 大小要设0
item:2697 #战斗要求的道具,itemset6.txt中的道具编号
B_evnow:88 #启动战斗所要求的开标
B_evend:88 #启动战斗所要求的结束标
deniedmsg:有什麽事吗? #没带要求道具或没开标的对话
alreadymsg:想和我过招还怕没有机会吗 #其他玩家战斗中对话
onebattle:1 #一次只能一队玩家战斗,1=是 0=否
time=60 #玩家战胜後NPC消失多久时间(秒)? 要设dieact=0
但消失就无後面的判断
entype:2
dieact:1
warpfl:3021
warpx:400
warpy:90
gym:3 #百人道场型NPC等级
startmsg:我是第3个人
enemyno:564,565,566,567 #随机NPC
enemypetno:687,688,689,690,691,692,69 #随机宠物
OVER
#前置条件判断
NEWEVENT1:
FREEV>79&NOWEV=133&ENDEV!=133 #判断式,已知有:(>,=,!=,<,|,&) |的话 最前面要多一个LV>0| LV,ENDEV,NOWEV,ITEM,CLASS,PET,BBI,GOLD,
reITEM,rePET,DR?,TRANS(转生数),PARTY(团队人数)?
WARP:0,0,0 #传送玩家,後面如有物品指令,这边就一定要设
endmsg:果然是接班人,钥匙还给你吧! #判断对话
DelItem:1718,1719 #後置动作,已知有:AddItem?,DelItem
herobattlefield:120 #英雄战场相关
EvClr:153 #删任务标!
Event_Now:154 #开任务标
Event_End:154 #关任务标??
NPCPOINT:2030,63,12;3030,63,12 #NPC跳跃
OVER
#任务型 enemy=changeevent
NomalMainMsg:铸造是一门伟大的艺术! #预设对话,在无任何任务标与条件判断满足之对话,可以作成无生命物品之点选讯息
#REQUEST动作
EventNo:xxx #接哪xxx任务编号,-1通常是未接任务对话
TYPE:REQUEST #动作类型,已知有:REQUEST,MESSAGE,ACCEPT
EVENT:ITEM!=2367 #判断式,已知有:(>,=,!=,<)LV,ENDEV,NOWEV,ITEM=,
RequestMsg1:疑?找我一起去要糖吗? #REQUEST动作询问对话,只有NomalWindowMsg以0做开始
ThanksMsg1:谢谢!这个南瓜灯给你! #确认後对话
StopMsg:是不是我要求的太过分呢? #拒绝後对话,再次要求确认?
EndStopMsg:当你方便的话再来帮忙我好吗? #接续拒绝对话?
NoStopMsg:那就麻烦你了。 #接续确认对话?
ItemFullMsg:咦?物品满了! #物品满了提示对话
GetItem:2367 #後置动作,已知有:GetItem,DelItem,GetRandItem...详见最後整理
EventEnd
#MESSAGE动作
EventNo:-1
TYPE:MESSAGE
EVENT:ITEM=2366
NomalWindowMsg0:我梦寐以求的糖果! #符合条件对话
KeyWord:不给糖就捣蛋 #密语,通常会再设一个相同任务编号无密语的MESSAGE动作
ItemFullMsg:咦?物品满了! #物品满了提示对话
GetRandItem:1224,13092
DelItem:2366*1
EventEnd
#ACCEPT动作
EventNo:-1
TYPE:ACCEPT
EVENT:NOWEV=84&ET>79-810*1 #79为要求宠物大於等级,810为"enemybase1"中的宠物类型编号,*1为数量
AcceptMsg1:\n可以把这给我吗? #循问对话
ThanksMsg1:真是太谢谢你啦! #确认後对话
DelPetET>79-810*1 #拿走该宠物
GetPet:2474,1610 #随机得到宠物
AddPet:2474?? #直接得到宠物
PetFullMsg:你身上的宠物满了喔! #宠物栏已满讯息
DelItem:11848*1,11829*1
GetItem:19728 #AddItem是用在Free
ItemFullMsg:你身上东西太多了~
DelStone:50000 #拿走石币
StoneLessMsg:喂,你没给钱! #石币不够提示对话
NpcWarp:60029.4.17,60016.6.6 #NPC传送点
EndSetFlg:85 #结束关闭任务标
CleanFlg:178 #删任务
EventEnd
EventNo:-1
TYPE:ACCEPT
EVENTV>10
AcceptMsg:贩卖门票。\n你的话需要%8ds。 # %8d意义?
ThanksMsg:这张票若是登出会消失请注意。
DelStoneV*3 #LV=人物等级
StoneLessMsg:不好意思钱不够喔。
GetItem:2601
ItemFullMsg:道具已满无法交付给你
EventEnd
EventNo:-1
TYPE:REQUEST
EVENT:ENDEV=25,ENDEV=26
RequestMsg:族长已经都告诉我了。\n你是来买矿石的吧!\n一个矿石要3000S,可以吗?
ThanksMsg:那就请收下这个。\n今後还请多多关照。
StopMsg:不是来买矿石的吗?
EndStopMsg:我们不欢迎只问不买的客人。
NoStopMsg:是这样呀。
GetItem:2503
DelStone:3000
ItemFullMsg:你的袋子已满了。\n请空出位置来!\n这样我才能卖给你。
StoneLessMsg:你的钱不够呀!\n真抱歉可否请你准备好钱後再来呢?
EventEnd
EventNo:-1
TYPE:CLEAN
EVENT:NOWEV=36,ENDEV=36
CleanFlg:36
CleanMainMsg:\n\n 你已经拉过神签了吗?
CleanFlgMsg:\n\n 请从神社前的牌坊\n 再一次走往本殿。
EventEnd
EventNo:36
TYPE:REQUEST
EVENTV>0
RequestMsg:\n\n 把香油钱、放入捐献箱内吗?
ThanksMsg:\n\n 贡献了香油钱。
StopMsg:\n要终止现在的事件吗?
EndStopMsg:若是、随时想到都可以来喔
NoStopMsg:非常期待喔
StoneLessMsg:\n\n钱不够喔。
DelStone:50
EventEnd
#传送型,不需任务编号的条件处理NPC也可写成这类 enemy=npcgen_warpman
NEWWARPMAN
NOFREE #未满足下面各条件式之标准处理
FREEV>0 #判断式
WARP:0,0,0 #传送点
NomalMsg:……… #一般讯息
PartyMsg:……… #团队讯息
OVER
TALKEVENT1 #各除外条件判断式 可用,做两联立判断
WARP:0,0,0
FREEV=1&TRANS=0&ITEM=2623,LV=2&TRANS=0&ITEM=2623
FREE:BBI=101283 #形象代码=图案编号
FreeMsg:累了吗?想变回原来的样子吗? #显示对话
CHANGEBBI:MYBBI #更改形象:MYBBI=原本的形象
AddItem:1111
OVER
TALKEVENT2
WARP:0,0,0
FREEV>0
CHANGEBBI:101283
FreeMsg:万圣节快乐唷,我来帮你装扮一下。
OVER
TALKEVENT1
WARP:60032,4,20
FREE:ENDEV=82&ENDEV=83&NOWEV=84&ITEM=19726
DelItem:19726
CHECKPARTY:FALSE
FreeMsg:要把石头放在石柱上吗?
OVER
#一般传送型写法
NEWWARPMAN
NOFREE
FREEV>0
NomalMsg:园主有令,一般人不能进去~
OVER
TALKEVENT1
WARP:500,274,369
FREE:ITEM=2414&LV>79
FreeMsg:请进吧!另外贝壳千万不要掉了!
CHECKPARTY:TRUE #是否限制团队传送(非必要?)
PartyMsg:先解散团队再来吧~ #限制团队传送对话
MONEY:-1 #要求金额?
PayMsg:乌力~~乌力 #付钱对话?
OVER
TALKEVENT3
FREEV>90&ENDEV=81&ENDEV=88
FreeMsg:拿去吧,少这麽一只珍兽也没什麽了不起的!
Event_Now:89
Event_End:89
AddPet:1802
NPCPOINT:100,0,0 #此任务NPC传送自己至x,x,x
OVER
#地为界...
NEWWARPMAN
NOFREE
FREEV>0
NomalMsg:…
PartyMsg:淅里里…
OVER
TALKEVENT1
WARP:30621,25,22
FREE:ENDEV=4&ENDEV=69&ENDEV=70&NOWEV=71,ENDEV=4&ENDEV=69&ENDEV=70&NOWEV=71&NOWEV=72
CHECKPARTY:TRUE
warp_msg:地为界水为凭火为引风为信
FreeMsg:轰隆隆…
OVER
TALKEVENT2
WARP:30621,25,22
FREE:ENDEV=4&ENDEV=69&ENDEV=70&ENDEV=71&NOWEV=72,ENDEV=4&ENDEV=69&ENDEV=70&ENDEV=71&ENDEV=72
CHECKPARTY:TRUE
warp_msg:地为界水为凭火为引风为信
FreeMsg:轰隆隆…
OVER
#时间对话型 enemy=npcgen_timeman|file:genout/tman_400_88_102
time:AFTER
main_msg:有太阳的时候,不可以从这里进入梦幻洞窟
change_msg:太阳下山後,就可以从这里进入梦幻洞窟了。
change_no:16204
time:AFTER
main_msg:有太阳的时候,可以从这里进入梦幻洞窟
change_msg:晚上没办法从这里进入,请到另一边的入口。
change_no:16200
#需设置以下传点
#白天进入
{
floorid=400
borncorner=97,119,97,119
time=0
ignoreinvincible=1
createnum=1
enemy=npcgen_warp|41|11|8|A
}
#晚上进入?
{
floorid=400
borncorner=98,119,98,119
time=0
ignoreinvincible=1
createnum=1
enemy=npcgen_warp|41|11|8|M
}
{
floorid=400
borncorner=95,120,95,120
time=0
createnum=1
graphicname=16203
name=洞窟的守门人
dir=6
ignoreinvincible=1
enemy=npcgen_timeman|file:genout/tman_400_95_120
}
{
floorid=400
borncorner=98,120,98,120
time=0
createnum=1
graphicname=16202
name=洞窟的守门人
dir=6
ignoreinvincible=1
enemy=npcgen_timeman|file:genout/tman_400_98_120
}
time:ALLNOON
main_msg:哈哈老师不知道!
time:ALLNIGHT
main_msg:欢迎光临,我是新来的美露露,请多指教。,我笨手笨脚的常惹老板生气。
#交易型 enemy=transman|file:longzoro/xingshou/zheng1.arg
START_MSG:族长邀请函一份换一张骑证! #交易对话
MenuHead:选择骑乘学习同意书: #选单讯息
#伊甸庄园的骑乘学习同意书
{
MenuStr:伊甸庄园的骑乘学习同意书 #物品名称,可写成一套多种
FREE:ITEM=19001 #需要物品
AddItem:20224 #可交易物品
DelItem:19001*1 #删除物品
}
#尚青啤酒
{
MenuStr:尚青啤酒(人物属性反向改变1点)
FREE:ITEM=19001
AddItem:20599
DelItem:19001*1
}
#精工型,与交易型差别在多了说明功能 enemy=ITEMCHANGE|file:sa80/classeq/wizeq.arg
START_MSG:准备好材料来找我吧。
MenuHead:选择想要交换的装备
NeedHead:需要的材料 #说明选单
#月神之帽精工
{
CHANGEITEM:2262 #可交易物品
NeedItem:11889,11829 #需要物品
FREE:CLASS=2&ITEM=11889&ITEM=11829*2&GOLD>=5000&reITEM>0
DelGold:5000 #拿走石币,但并非用DelStone
DelItem:11889*1,11829*2
AddItem:2262 #避免没有物品空位,条件要先设reITEM>0
}
之前为了写DATA
有稍微研究一下各npc脚本语法
大概也整理了一下
不过仍然有很多地方不明
希望高手能帮大家补完~
如有程式高手能为大家写出相对应的npc制作器
那就再好不过了
转载请保留作者,感谢喔~
作者: CrazyHappy GM 我最猛