TA的每日心情 | 怒 10 小时前 |
---|
签到天数: 1590 天 [LV.Master]伴坛终老
版主
  
- 积分
- 10379
|
发表于 2021-11-13 15:08:51
|
显示全部楼层
我簡單拿剛出生時第一個任務來解說好了
\game\data\scripts\quests\Q11024_PathOfDestinyBeginning.java (腳本文件)
public class Q11024_PathOfDestinyBeginning extends Quest (任務層)
{
// NPCs (過程需要加載的NPC 及任務怪物)
private static final int TARTI = 34505;
private static final int SILVAN = 33178;
private static final int NASTY_EYE = 24380;
private static final int NASTY_BUGGLE = 24381;
private static final int NASTY_ZOMBIE = 24382;
private static final int NASTY_ZOMBIE_LORD = 24383;
// Items (過程中需要的物品 比方回捲 以及轉職的通知音效)
private static final int SOE_SILVAN = 80678;
private static final int SOE_TARTI = 80677;
private static final int SS_NG_NOVICE = 5789;
private static final int BSS_NG_NOVICE = 5790;
// Locations (過程要去的地點)
private static final Location TRAINING_GROUNDS_TELEPORT = new Location(-17916, 143630, -3904);
private static final Location TRAINING_GROUNDS_TELEPORT2 = new Location(-16744, 140209, -3872);
在接下來的語法就不是文字能解釋得懂得了 ~ 還包含堆棧 ~ 變數 ~ 等一些JAVA語法 ~
// Misc
private static final String SHOTS_REWARD_CHECK_VAR = "SHOTS_REWARD_CHECK";
private static final String REWARD_CHECK_VAR1 = "Q11024_REWARD_1";
private static final String REWARD_CHECK_VAR2 = "Q11024_REWARD_2";
private static final String KILL_COUNT_VAR = "KillCount";
private static final String KILL_COUNT_VAR2 = "KillCount2";
private static boolean INSTANT_LEVEL_20 = false;
public Q11024_PathOfDestinyBeginning()
{
super(11024);
addStartNpc(TARTI);
addTalkId(TARTI, SILVAN);
addKillId(NASTY_EYE, NASTY_BUGGLE, NASTY_ZOMBIE, NASTY_ZOMBIE_LORD);
setQuestNameNpcStringId(NpcStringId.LV_1_PATH_OF_DESTINY_BEGINNING);
}
@Override
public String onAdvEvent(String event, Npc npc, PlayerInstance player)
{
String htmltext = null;
final QuestState qs = getQuestState(player, false);
if (qs == null)
{
return htmltext;
}
switch (event)
{
case "34505-02.htm":
{
htmltext = event;
break;
}
case "34505-03.html":
{
qs.startQuest();
qs.setCond(1, true);
htmltext = event;
player.sendPacket(new ExTutorialShowId(9)); // Quest
break;
}
case "34505-05.html":
{
if (qs.isCond(2))
{
qs.setCond(3, true);
htmltext = event;
giveStoryBuffReward(npc, player);
player.sendPacket(new ExTutorialShowId(25)); // Adventurer Guide
}
break;
}
case "34505-10.html":
{
if (qs.isCond(3))
{
htmltext = event;
}
break;
}
case "34505-07.html":
{
if (qs.isCond(7))
{
qs.setCond(8, true);
if (!player.getVariables().getBoolean(REWARD_CHECK_VAR2, false))
{
player.getVariables().set(REWARD_CHECK_VAR2, true);
if (INSTANT_LEVEL_20 && (player.getLevel() < 20))
{
addExpAndSp(player, (ExperienceData.getInstance().getExpForLevel(20) + 100) - player.getExp(), 708);
}
語法太多了....... 給你個大概方向 讓你知道怎麼去摸索吧
|
|