SPHERE脚本语法

Sphere脚本语法

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

创世纪服务端提供了trigger系统供admin可以预先为客户书写quest,或者是给怪物和npc设定特殊的AI。triggers被event驱动。就是说,triggers不会自动发生,玩家必须做一些事。玩家的动作就被称为”event”,可以用event关键词来触发event。

Trigger Events

Action: Explanation:
DAMAGE The item is damaged in battle, thereby triggering the action.
DCLICK The player double clicks an item which triggers the action.
DROPON_CHAR I have been dropped on this char
DROPON_GROUND I have been dropped on the ground here
DROPON_TYPE I have been dropped on this ITEM_TYPE item
DROPON_ITEM I have been dropped on this item
EQUIP The player equips an item in their paperdoll, which triggers the action.
HEAR not functional, but planned The player says a specific trigger word in the immediate presence of the item, or NPC.
PICKUP_GROUND picked up from ground
PICKUP_PACK picked up from inside some container
SPELL The player casts a spell on the NPC or Item, triggering an action.
STEP The player walks over (or shoves) a trigger set item, thus triggering an action.
TARGON_CHAR I have targeted a char
TARGON_GROUND I have targeted something on the ground
TARGON_ITEM I am being combined with an item
TARGON_TYPE I have been targetted to this ITEM_TYPE item
TIMER After an item’s decay timer has expired, an action is triggered.
UNEQUIP The player un-equips an item in their paperdoll, which triggers the action.

还有一些过程可以使用
IF-ELSE-ENDIF-ELSEIF
SRC.xxx 检查对一个物品进行event的玩家的属性状态,或者设定属性状态,下面是一些例子
SRC.HITPOINTS = 40
SRC.DAMAGE = 10-20
SRC.KILL
SRC.RESURRECT
SRC.TINKERING = 30
SRC.ADDITEM 14a3
SRC.MESSAGE Hello men!!
Other attributes 象src一样可以设定属性
SOUND = [something]
EFFECT = [something]
TIMER = [something]
RETURN 0/1 1时不管玩家正在做什么都会停止,而0则会继续进行。如果不使用return,服务器会挂起。
TRIGGER 调用其他trigger(trigger=dclick等等)
VAR xxx = ??? 变量设置。当到达一个return状态时变量会被破坏。
ONTRIGGER 当event发生时执行下面操作(如ONTRIGGER = STEP等)

例子:
根据玩家的声望和善恶创建秩序或者混乱之盾
ONTRIGGER = DCLICK
IF <8000 //检查声望是否足够来获得盾
RETURN 1
IF =<0 //检查善恶值
SRC.ADDITEM = CHAOS_SHIELD
ELSE
SRC.ADDITEM = LB_SHIELD
ENDIF
RETURN 0

反杀人犯的复活门
ONTRIGGER = STEP
IF >10 //如果杀人数大于10
SRC.MESSAGE Murderers may not resurrect here!
RETURN 1
ELSEIF ! (&2) //检查是否死去,如果没有,加满hp
SRC.MESSAGE You feel energized!
VAR TEMP =
SRC.HITPOINTS =
ELSE //不是杀人犯并且死了
SRC.MESSAGE Your body and soul reunite!!
SRC.RESURRECT
ENDIF

更多的技术说明:
语法
表达式:
DORAND# #是接下去线条的数量
ENDRAND 和dorand配对使用
BEGIN END
IF ELSE ELSEIF ELIF ENDIF
RAND 随机数
STRLEN 返回字符串长度
SRC.xx
UID.x 返回客户id

物体:
所有物体有三种类型属性:Attributes, Verbs和Evaluators

CObjBase

Attributes
TYPEDEF
NAME
TIMER
COLOR
SERIAL or UID
P 位置坐标(或者为物品时在哪一个容器中)
Z

Verbs

REMOVE
MESSAGE 传递消息
SPEAK or SAY 说话时所有人都能听到
SFX or SOUND
EFFECT
FIX
FLIP
SHOW
MOVE or M
SPELLEFFECT
EDIT
NUDGEUP
NUDGEDOWN

Evaluators
DISTANCE 从物品到src.的距离

CItem基于CObjBase
说明:
LINK. 是一个被连接的citem说明

Attributes
ID
AMOUNT
TYPE
ATTR
LINK 被连接的物品uid
MORE or MORE1
MORE2
MOREP x,y,z
MOREX MOREP.X
MOREY MOREP.Y
MOREZ MOREP.Z
HITPOINTS
FRUIT

Verbs
DUPE
BOUNCE

Evaluators
LAYER
CONT
LINK.
DISPID
DISPIDDEC

CChar基于CObjBase
Attributes
DIR 正在处理的路径
BODY 现在身体类型
XBODY 身体本来面目
XSKIN 皮肤本来颜色
HOME 出生地
FONT 说话的字体
FLAGS 魔法效果,战斗状态,等等
ACTION 现在使用的技能
TITLE
HITPOINTS
STAMINA
MANA
FOOD
CREATE
ACTARG1
ACTARG2
STR
DEX
INT
KARMA
FAME
–Skills–

Verbs
REMOVE
DUPE
DAMAGE
POLY
RESURRECT
GO or GOPLACE
GOUID
GOCHAR
GOSOCK
GOCLI
JAIL
KICK
KILL
GHOST
NEWITEM
COUNT
CONSUME
SUMMONCAGE
ANIM
SLEEP
FACE
DISCONNECT
ALLSKILLS
BANK
SELL
BUY
BYE
BOW
SALUTE
ATTACK
DRAWMAP
EMOTE
SKILL
INVUL或 INVULNERABLE
INVIS或INVISIBLE
SHRINK
FORGIVE或PARDON
UNDERWEAR
PETSTABLE
PETRETRIEVE
SUMMONTO
HUNGRY
WHERE
SUICIDE

Evaluators
SKILLCHECK 技能难度
RESTEST 资源列表
SEX 性别
KARMA.WICKED 布尔值 karma from -10000 to -6001
KARMA.BELLIGERENT -6000 to -2001
KARMA.NEUTRAL -2000 to 2000
KARMA.KINDLY 2001 to 6000
KARMA.GOODHEARTED 6001 to 10000
FAME.INFAMOUS 布尔值 fame from -10000 to -6001
FAME.OUTLAW -6000 to -2001
FAME.ANONYMOUS -2000 to 2000
FAME.KNOWN 2001 to 6000
FAME.FAMOUS 6001 to 10000
DISPIDDEC 对话
ID
BANKBALANCE
MEMORY
ISMYPET

CCharPlayer基于 CChar
CCharNPC基于CChar
CClient objec基于 CCharPlayer而后者基于CChar
Verbs
X or SET s 动作前缀
GMMENU # 从TUSMENU.SCP安置 GMMENU
ITEMMENU # 从TUSMENU.SCP安置 ITEMMENU 从TUSMENU.SCP
WEBLINK s 在王页上显示玩家列表。
SYSMESSAGE s 在左下脚发布信息
GMPAGE s 给gm发信
VERSION 查询版本号
INFORMATION
ADD或ADDITEM #
ADDNPC #
SUMMON #
REPAIR
PRIVSHOW
GOTARG p
ALLMOVE
DEBUG
LISTEN
HEARALL
GM
DETAIL
BANKSELF
RESEND,SYNC or RESYNC
CAST #
TELE
STATIC #

CStoneItem
Attributes
Verbs
Evaluators

CContainerItem基于CItem和CContainer
Attributes
Verbs
Evaluators

CMessageItem
Attributes
Verbs
Evaluators

trigger以及如何激活他们
主要的trigger类型为
[TRIG #]
[PLOTITEM #]
[REGION #]

留言

还没有留言,来坐个沙发吧。

留个言

留个言