cege 发表于 2009-11-3 22:16:24

初步理解EVT的CODING~,学编写EVT

本帖最后由 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:}

cege 发表于 2009-11-3 22:41:03

最简单应用的例子,龙洞地图中加入传送NPC,只需要在K_NPCPOS中加入1个 byType为137的NPC(2个种族的话需要加两个NPC),66.EVT这样编写:

EVENT 22001
E SELECT_MSG 35568 51000 50008 22010 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1;可能找不到NPC_ID为35568的NPC,但是没关系,只要byType为137的NPC都会响应此事件。
END
EVENT 22010 ;
E ZONE_CHANGE 21 292 347;传送到21区,就是MLD。
END

langziming 发表于 2009-11-3 23:46:28

多谢翻译,对我们E文不好的大有益处啊!

f9365431 发表于 2009-11-4 01:33:31

EVENT 22001 對應 137

我試了好幾個
大概幾個有回應
EVENT 1   對應   37
EVENT 2100134
EVENT 1001    36
EVENT 3000139
你們試看看
表裡我真的找不到可以對應的了
我也猜是要到AI或EB裡去找

28085279 发表于 2009-11-4 13:09:38

谢谢,翻译得很好,我正愁看不懂呢

天赐熊资 发表于 2009-11-5 12:46:56

我已经另存为一个文本了,怕以后找不到,哈哈

leonjaykai 发表于 2009-11-9 18:40:22

好東西~~~~學

214550663 发表于 2009-11-9 22:03:11

楼主的办法让我领略到了编写EVT的风范啊!

⑦埰媣汸 发表于 2010-3-8 17:16:19

学习了 领悟了 哈哈

laoyou456 发表于 2010-3-9 18:43:30

有人发过对应的EVT~~~~~~~~~~
页: [1] 2
查看完整版本: 初步理解EVT的CODING~,学编写EVT