Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
передача скиллов классам
#1
Например я захотел сделать интересный баланс и автоматически раздать скиллы разным классам при получении 3 профессии. Например: танку дать френзи, гладу дэш и так далее. Как это можно сделать?
Ответ
#2
В \data\scripts\quests\SagasScripts\SagasSuperClass
Когда заканчивается квест и даются награды дописать добавление скилов.
Код:
                if (player.getLevel() >= 76)
                {
                    st.exitQuest(false);
                    st.set("cond","0");
                    htmltext = "0-07.htm";
                    st.takeItems(Items[10],-1);
                    st.addExpAndSp(2299404,0);
                    st.giveItems(57,5000000);
                    st.giveItems(6622,1);
                    int Class = getClassId(player);
[B]                                        int id_ = 0;
                                        int level_ = 0;
                                        if (Class == id класса )
                                        id_ = id скила; level =  ;
                                        else if (Class == id др.класса)
                                        id_ = id скила; level =  ;
                                        итд. . .
                                        if (id_ != 0 )
                                        final L2Skill AutoSkill = SkillTable.getInstance().getInfo(id_, level_);
                                        st.addSkill(AutoSkill, true);[/B]
                    int prevClass = getPrevClass(player);
                    player.setClassId(Class);
                    if (!player.isSubClassActive() && player.getBaseClass() == prevClass)
                        player.setBaseClass(Class);
                    player.broadcastUserInfo();
                    Cast(npc,player,4339,1);

                    Quest q = QuestManager.getInstance().getQuest("SkillTransfer");
                    if (q != null)
                        q.startQuestTimer("givePormanders", 1, npc, player);
                }
// поправил
Ответ
#3
спс, получается у одного скилла разного лвла разные id?
Ответ
#4
grif333 Написал:спс, получается у одного скилла разного лвла разные id?
Нет, просто я неправильно написал Smile
Сейчас исправлю. (исправил)
Ещё нужно добавить импорты:
Код:
import net.sf.l2j.gameserver.datatables.SkillTable;
import net.sf.l2j.gameserver.datatables.SkillTreeTable;
Может ещё что-то забыл Smile
Ответ
#5
ясн) а для чего это если не секрет? =)

if (id_ != 0 )
final L2Skill AutoSkill = SkillTable.getInstance().getInfo(id_, level_);
st.addSkill(AutoSkill, true);

и где можно найти списки с id профессий а то списки со скиллами нашол а профы нет(
Ответ
#6
grif333 Написал:ясн) а для чего это если не секрет? =)
if (id_ != 0 ) // на всякий случай ( если бонусы будут для всех проф. то можно убрать. )
final L2Skill AutoSkill = SkillTable.getInstance().getInfo(id_, level_); // берется инфа о скиле из базы
st.addSkill(AutoSkill, true); // добавляет скилл
grif333 Написал:где можно найти списки с id профессий
class_list.sql
Ответ


Перейти к форуму:


Пользователи, просматривающие эту тему: 3 Гость(ей)