本帖最后由 cege 于 2009-11-3 14:29 编辑
如何加入传送NPC,如何打开商城,如何让你的队伍进入一个区域,如果NPC听你使唤,这些都不成问题;指挥NPC,你需要编写EVT,首先让我们来理解EVT的含义:
所有EVT必须大写;
A 等于 IF ,如果的意思;
E 等于RUN,运行的意思;
; 的作用是加注释
-1的作用是占位,如果你使用的命令有你未使用的参数,需要使用-1占位;至于命令多少个参数尚未研究清楚。
E RUN_EVENT 10601 ;就是 运行10601号事件。
执行动作命令有:
ROB_EXAM
GIVE_ITEM_INPUT_COUNT
ROB_ITEM_INPUT_COUNT
OPEN_INPUT_COUNT
LOG_OLYMPIC_ACCOUNT
CHECK_OLYMPIC_ACCOUNT
MOVE_MIDDLE_STATUE
GIVE_LOGTIME_ITEM
CHECK_LOGTIME_ACCOUNT
GIVE_KJWAR_ITEM
CHECK_KJWAR_ACCOUNT
CHECK_PCBANG_OWNER
GIVE_PCBANG_ITEM
CHECK_PCBANG_ITEM
SHOW_PCBANG_ITEM
CHANGE_MANNER
EMIGRATION_ACCEPT
STATE_CHANGE
ZONE_CHANGE_PARTY
ROB_ALLITEM_PARTY
SEND_WEBPAGE_ADDRESS
CHANGE_NAME
STAT_POINT_FREE
SKILL_POINT_FREE
CHANGE_LOYALTY
ZONE_CHANGE_CLAN
ROLL_DICE
CHANGE_POSITION
PROMOTE_KNIGHT
DESTROY_ITEM
EXP_CHANGE
LEVEL_UP
STAT_POINT_DISTRIBUTE
SKILL_POINT_DISTRIBUTE
PROMOTE_USER_NOVICE
ZONE_CHANGE
KISS_USER
RUN_EXCHANGE
GIVE_PROMOTION_QUEST
PROMOTE_USER
SAVE_EVENT
GIVE_PPCARD_ITEM
RETURN
REQUEST_PERSONAL_RANK_REWARD
REQUEST_REWARD
ROB_NOAH
SAVE_COM_EVENT
LOG_COUPON_ITEM
GIVE_NOAH
OPEN_EDITBOX
ROB_ITEM
GIVE_ITEM
RUN_EVENT
SELECT_MSG
SAY
检查动作命令有:
CHECK_BEEF_ROAST_NO_VICTORY
CHECK_BEEF_ROAST_ELMORAD_VICTORY
CHECK_BEEF_ROAST_KARUS_VICTORY
CHECK_EXAM_COUNT
CHECK_WEIGHT_INPUT_COUNT
CHECK_EXIST_ITEM_INPUT_COUNT
CHECK_INPUT_COUNT
CHECK_MIDDLE_STATUE_NOCAPTURE
CHECK_MIDDLE_STATUE_CAPTURE
CHECK_CLAN_RANKING
CHECK_LOYALTY_RANK
CHECK_LOYALTY_RANK_MONTHLY
CHECK_EMPTY_SLOT
CHECK_STAT_TOTAL
CHECK_SKILL_TOTAL
CHECK_NO_CASTLE
CHECK_CASTLE
CHECK_MONSTER_CHALLENGE_USERCOUNT
CHECK_MONSTER_CHALLENGE_TIME
CHECK_MANNER
CHECK_NO_CLAN
CHECK_CLAN
CHECK_DICE
CHECK_KNIGHT
CHECK_CLAN_GRADE
CHECK_NO_CHIEF
CHECK_CHIEF
CHECK_LOYALTY
CHECK_NOCLASS
CHECK_ITEMCHANGE_NUM
CHECK_EXCHANGE
CHECK_PROMOTION_ELIGIBLE
CHECK_EXIST_EVENT
CHECK_NOEXIST_EVENT
CHECK_NOEXIST_ITEM_OR
CHECK_NOEXIST_ITEM_AND
CHECK_EXIST_ITEM_OR
CHECK_EXIST_ITEM_AND
CHECK_PPCARD_TYPE
CHECK_PPCARD_SERIAL
CHECK_NATION
CHECK_NOAH
EXIST_COM_EVENT
NOEXIST_COM_EVENT
HOWMUCH_ITEM
CHECK_LV
RAND
CHECK_EDITBOX
CHECK_WEIGHT
CHECK_CLASS
CHECK_NOEXIST_ITEM
CHECK_EXIST_ITEM
CHECK_SKILL_POINT
CHECK_OVER_WEIGHT
CHECK_UNDER_WEIGHT
一些执行命令的解释:
ZONE_CHANGE_PARTY:将你的队伍传送到目的区域;
SEND_WEBPAGE_ADDRESS,将打开游戏内浏览器,打开'Web_address_us.tbl'中的网址,例如:
E SEND_WEBPAGE_ADDRESS 4;将打开你的Web_Address_us.tbl 中的序号为4的的网址;
GIVE_ITEM: 给你指定的物品,例如:
E GIVE_ITEM 10100000 1;给你1个ITEM表中NUM为10100000的物品。
一些检查命令的解释:
CHECK_EXIST_EVENT,检查某EVENT是否已经启动,例如:
A CHECK_EXIST_EVENT 30 0 ;如果 event 30 未启动,则...
A CHECK_EXIST_EVENT 30 1 ; 如果event 30 已经启动, 但是尚未完成,则....
A CHECK_EXIST_EVENT 30 2 ; 如果event 30已经完成,则.....
CHECK_EXIST_ITEM 用来检查你身上是否有某物品,例如
: A CHECK_EXIST_ITEM 205002007 1 ; 如果你有 205002007 物品,则...
大部分命令,可以根据名字猜出个大概,如果猜不出来,可以从EVT例子中学习;
还有另一个问题,NPC与EVT中EVENT对应的关系,至今未发现有对应的表可以查,不过经过观察,发现EVENT 22001与KNPC中 byType为137的NPC对应。有人认为对应关系在ebenezer中设定。
看下边的例子:
EVENT 22001
E SELECT_MSG 16084 61000 60000 42010 60001 42020 60002 42030 60003 22040 60004 42050 60005 42060 60006 42070 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ;
END
16084 - NPC代号,但是不是一定对应的,可能你找不到代号为16084的NPC,因为EVENT 22001对应于byType为137的NPC,只要NPC的byType为137都会响应EVENT 22001;
61000 - NPC响应你打开的菜单的注释,菜单的注释显示的内容为 in 'Quest_Talk_us.tbl'中61000编号的内容;
60000 - 菜单中的第一个选项,选项显示 'Quest_Menu_us.tbl'中60000编号的内容;
42010 - 这是响应你对60000 选项作出选择后执行的事件;
60001 - 同上T菜单中的第二个选项,选项显示 'Quest_Menu_us.tbl'中60000编号的内容;
52020 - 又是事件, 这是响应你对60001 选项作出选择后执行的事件;
现在大概可以明白大多数EVT中的事件,但是EVENT 编号与与KNPC中 byType对应关系可能需要大量经验,才能顺利的编写EVT。 以上大部分翻译自英文的解释。希望大家能顺利编写EVT,叫NPC听你使唤,{:1_209:} |