Bir events tanımı, karakterlere eklenebilen bir dizi tetikleyici komut dosyası içerir. Bir karaktere veya karakter kümesine olay bloğu eklemek için kullanılabilecek farklı özellikler vardır:
• TEVENTS özelliği aracılığıyla karakter tanımları
• EVENTS özellikleri aracılığıyla karakterler,
• Sphere.ini'daki EVENTSPLAYER ayarı aracılığıyla tüm oyuncular.
• Sphere.ini'daki EVENTSPET ayarı aracılığıyla tüm NPC'ler
SYNTAX
Bir olayı tanımlamak için sözdizimi şöyledir:
[EVENTS defname]
ON=trigger_name
script
ON=trigger_name
scriptHerhangi bir sayıda tetikleyici tek bir EVENTS tanımı tarafından işlenebilir, ancak birden çok tanım kullanmadan aynı tetikleyiciyi iki kez işlemek mümkün değildir.Tetikleyici adı, herhangi bir karakter tetikleyicisinin adı olabilir. Komut dosyasından döndürülen değer, Sphere'ın sabit kodlanmış davranışını farklı şekillerde etkileyebilir. Her tetikleyiciye hangi parametrelerin geçirildiğini ve dönüş değerlerinin ne yaptığını keşfetmek için tetikleyicinin belgelerine bakın.
EXAMPLES
//
// Bir karaktere eklendiğinde, karakter çift tıklandığında konuşur
//
[EVENTS e_exampleevent]
ON=@Dclick
SAY I have been double clicked!
RETURN 2
//
// e_Human_Environ varsayılan kod paketinden
// Gece boyunca meşale yakmalarını sağlamak için NPC'lere takılır
//
[EVENTS e_Human_Environ]
ON=@EnvironChange
IF (<FLAGS> & statf_war)
RETURN 0
ENDIF
IF !(<SECTOR.ISDARK>) || (<FLAGS> & statf_nightsight)
IF (<FINDLAYER.layer_hand2>)
IF (<FINDLAYER.layer_hand2.TYPE> == t_light_lit)
FINDLAYER.layer_hand2.BOUNCE
ENDIF
ENDIF
RETURN 0
ENDIF
// Zaten yanan bir ışık var mı?
IF (<FINDLAYER.layer_hand2>)
IF (<FINDLAYER.layer_hand2.TYPE> == t_light_lit)
RETURN 0
ENDIF
ENDIF
// eğer varsa bir fener ya da ışık kaynağı kullanmaya çalışıyorum. (ve hava karanlıksa)
IF (<FINDTYPE.t_light_out>)
FINDTYPE.t_light_out.EQUIP
FINDTYPE.t_light_out.USE
ENDIF
RETURN 0
