在传奇gom引擎的脚本编写中,合理利用对象常量和变量是提升脚本灵活性和交互性的关键。本文将介绍如何在攻击触发等场景中,通过在变量前添加“C.”前缀来引用当前对象的常量和变量。

C.前缀的使用

在传奇gom引擎中,当前对象的大部分私有常量都可以通过在变量名前加上“C.”来引用。对于私有变量,则可以使用<$CSTR(S1)>和<$STR(S1)>这样的格式,其中CSTR表示当前对象的变量,而STR表示自己的变量。在攻击触发、被攻击触发、死亡触发以及查看出售角色信息等触发事件中,这种方式尤其有用。

当前对象的常量示例:

<$C.HP>:当前对象的血量

<$C.PKPOINT>:当前对象的PK值

<$C.GOLDCOUNT>:当前对象的元宝数量

<$C.GAMEGOLD>:当前对象的游戏金币

当前对象的变量示例:

<$CSTR(S1)>:当前对象的S1变量

<$CSTR(A1)>:当前对象的A1变量

<$CSTR(T1)>:当前对象的T1变量

<$CSTR(U1)>:当前对象的U1变量

魔法攻击触发示例

; 魔法攻击触发

[@MagicStruck]

#IF

CHECKCURRTARGETRACE = 0

#ACT

SENDMSG 6 你被人物【<$CURRRTARGETNAME>】攻击了。使用魔法ID=<$CURRRUSEMAGICID> 255 253

SENDMSG 6 你被人物【<$C.USERNAME>】攻击了。使用魔法ID=<$CURRRUSEMAGICID>。对方HP=<$C.HP>对方PK值=<$C.PKPOINT>对方元宝=<$C.GAMEGOLD> 255 253

BREAK

#IF

#ACT

SENDMSG 6 你被怪物【<$CURRRTARGETNAME>】攻击了。使用魔法ID=<$CURRRUSEMAGICID> 255 253

BREAK

Copy

物理攻击触发示例

; 物理攻击触发

[@Struck]

#IF

CHECKCURRTARGETRACE = 0

#ACT

SENDMSG 6 你被人物【<$CURRRTARGETNAME>】攻击了。使用魔法ID=<$CURRRUSEMAGICID> 255 253

BREAK

#IF

#ACT

SENDMSG 6 你被怪物【<$CURRRTARGETNAME>】攻击了。使用魔法ID=<$CURRRUSEMAGICID> 255 253

BREAK

[@Attack]

#IF

CHECKCURRTARGETRACE = 0

#ACT

MOV <$CSTR(S1)> <$STR(S1)>

SENDMSG 6 把我的S1变量值传递给攻击人的S1变量里,使用“CSTR”代表当前对象的变量比自己的“STR”前面多一个“C”

MOV <$STR(N1)> <$CSTR(N1)>

SENDMSG 6 把对方的N1变量值传递给我的N1变量里,使用“CSTR”代表当前对象的变量比自己的“STR”前面多一个“C”

SENDMSG 6 你攻击了人物【<$C.USERNAME>】。使用魔法ID=<$CURRRUSEMAGICID> 255 249

BREAK

#IF

#ACT

SENDMSG 6 你攻击了怪物【<$CURRRTARGETNAME>】。使用魔法ID=<$CURRRUSEMAGICID> 255 249

BREAK

当前对象的大部分私人的常量都可以使用在前面加“C.”的方式

当前对象的大部分私人的变量使用<$CSTR(S1)>和查看自己的变量<$STR(S1)>多一个“C”

比如在攻击触发,被攻击触发,死亡触发,还有查看出售角色的其他信息的触发时

当前对象的常量,例如:<$C.HP> <$C.PKPOINT> <$C.GOLDCOUNT> <$C.GAMEGOLD>

当前对象的变量,例如:<$CSTR(S1)> <$CSTR(A1)> <$CSTR(T1)> <$CSTR(U1)>

;大部分触发只有攻击到怪物才会触发,有些魔法不会触发,如魔法盾

;======================魔法攻击触发==========================

[@MagicStruck]

#IF

CHECKCURRTARGETRACE = 0

#ACT

SENDMSG 6 你被人物【<$CURRRTARGETNAME>】攻击了。使用魔法ID=<$CURRRUSEMAGICID> 255 253

SENDMSG 6 你被人物【<$C.USERNAME>】攻击了。使用魔法ID=<$CURRRUSEMAGICID>。对方HP=<$C.HP>对方PK值=<$C.PKPOINT>对方元宝=<$C.GAMEGOLD> 255 253

BREAK

#IF

#ACT

SENDMSG 6 你被怪物【<$CURRRTARGETNAME>】攻击了。使用魔法ID=<$CURRRUSEMAGICID> 255 253

BREAK

[@MagicAttack]

#IF

CHECKCURRTARGETRACE = 0

#ACT

SENDMSG 6 你攻击了人物【<$CURRRTARGETNAME>】。使用魔法ID=<$CURRRUSEMAGICID>。魔法攻击的鼠标指向的坐标【<$STR(N98)>:<$STR(N99)>】 255 249

SENDMSG 6 你攻击了人物【<$C.USERNAME>】。使用魔法ID=<$CURRRUSEMAGICID>。对方HP=<$C.HP>对方PK值=<$C.PKPOINT>对方元宝=<$C.GAMEGOLD> 255 249

BREAK

#IF

#ACT

SENDMSG 6 你攻击了怪物【<$CURRRTARGETNAME>】。使用魔法ID=<$CURRRUSEMAGICID> 255 249

BREAK

;======================物理攻击触发==========================

[@Struck]

#IF

CHECKCURRTARGETRACE = 0

#ACT

SENDMSG 6 你被人物【<$CURRRTARGETNAME>】攻击了。使用魔法ID=<$CURRRUSEMAGICID> 255 253

BREAK

#IF

#ACT

SENDMSG 6 你被怪物【<$CURRRTARGETNAME>】攻击了。使用魔法ID=<$CURRRUSEMAGICID> 255 253

BREAK

[@Attack]

#IF

CHECKCURRTARGETRACE = 0

#ACT

MOV <$CSTR(S1)> <$STR(S1)>

SENDMSG 6 把我的S1变量值传递给攻击人的S1变量里,使用“CSTR”代表当前对象的变量比自己的“STR”前面多一个“C”

MOV <$STR(N1)> <$CSTR(N1)>

SENDMSG 6 把对方的的N1变量值传递给我的的N1变量里,使用“CSTR”代表当前对象的变量比自己的“STR”前面多一个“C”

SENDMSG 6 你攻击了人物【<$C.USERNAME>】。使用魔法ID=<$CURRRUSEMAGICID> 255 249

BREAK

#IF

#ACT

SENDMSG 6 你攻击了怪物【<$CURRRTARGETNAME>】。使用魔法ID=<$CURRRUSEMAGICID> 255 249

BREAK

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。