天堂2单机交流论坛

标题: 天堂2 如何写区域脚本方法 [打印本页]

作者: L2CN管理员    时间: 2018-5-17 21:56
标题: 天堂2 如何写区域脚本方法
天堂II单机群号:398120010 欢迎爱好天堂II朋友一起来学习交流!


什么叫区域脚本 , 区域脚本就是当有玩家进入区域时系统会自动执行的脚本
l2j将天堂2世界分成了无数个不同的区域,每个区域都有不同的编号
具体需要设置DP里
zone 文件夹下的 zone.xml文件 和 数据库 zone_vertices
这样一个新的区域就出现了。。。并且新区域还拥有相应的编号 ~。那怎么写区域脚本呢 ?。
其实区域脚本和一般的脚本大体相同。
举个例子吧。
在DP中加入 data/scripts/custom/MuteZone/MuteZone.java文件
MuteZone.java内容为
==============================================================================


package custom.MuteZone;


import net.sf.l2j.gameserver.model.actor.L2Character;
import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
import net.sf.l2j.gameserver.model.quest.Quest;
import net.sf.l2j.gameserver.model.zone.L2ZoneType;
public class MuteZone extends Quest
{
private static final String qn = "MuteZone";//任务名
private static final int[] ZONES = {zoneid1,zoneid2};//区域ID
//玩家进入该区域的作用
public String onEnterZone(L2Character character, L2ZoneType zone)
{
if (character instanceof L2PcInstance)
{
switch(zone.getId())
case zoneid1:
//这个设置了 当玩家进入该区域时将会收到系统信息
character.sendMessage("哇,进入了SZLY区域,你开心了。。");
action...//这里写你想要的其他功能。。
break;
case zoneid2:
character.sendMessage("走错地方了吧,你完蛋了。。");
action...//这里写你想要的其他功能。。
break;
default:
return super.onEnterZone(character,zone);
}
return super.onEnterZone(character,zone);
}
//玩家离开区域时的作用
public String onExitZone(L2Character character, L2ZoneType zone)
{
switch(zone.getId())
case zoneid1:
//这个设置了 当玩家离开该区域时将会收到系统信息
character.sendMessage("你已经离开了SZLY区域,欢迎下次再来。。");
action...//这里写你想要的其他功能。。
break;
case zoneid2:
character.sendMessage("算你走运,跑的到快。。");
action...//这里写你想要的其他功能。。
break;
default:
return super.onExitZone(character,zone);
}
return super.onExitZone(character,zone);
}
public MuteZone(int questId, String name, String descr)
{
super(questId, name, descr);
for (int zones : ZONES)
{
addEnterZoneId(zones);
addExitZoneId(zones);
}
}
public static void main(String[] args)
{
new MuteZone(-1,qn,"custom");
}
}
到此你的区域脚本就写完了吧MuteZone.java放到data/scripts/custom/下面设置scripts.cfg文件就可以用了
当玩家进入这个区域的时候就会激活脚本,但是值得注意的是 脚本执行只会是一次即进入时和离开时~


作者: k032579    时间: 2021-1-8 05:42
學習了!! 不過還是不太理解! 希望能出更全面的教學
作者: ootoo001    时间: 2021-3-2 12:51
不清楚具体什么作用
作者: birb001    时间: 2021-10-2 15:56
完全看不懂啊~~~~~~~~~~~~
作者: hhy123123    时间: 2021-10-9 10:55
大神牛叉  好好学习  天天向上
作者: 15504908656    时间: 2021-10-9 16:47
大神牛叉  好好学习  天天向上
作者: gembox    时间: 2021-10-21 11:26
這個可能要略懂程式設計才能看得比較懂 哈..
敬收




欢迎光临 天堂2单机交流论坛 (http://www.l2cn.com/) Powered by Discuz! X3.2