石器时代npc脚本制作教学,石器时代发布网,石器技术交流站!
石器时代npc脚本制作教学
作者: 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 我最猛
上一篇;石器时代NPC脚本的template模板格式
下一篇;石器时代私服Gm命令大全