Jump to content
Sign in to follow this  
Александр

НПС "Получение скиллов"

Recommended Posts

У данного нпс вы получите все скиллы, на данную профессию персонажа сразу 10 уровня.
Функия проверяет профессию и изученность скиллов.
Отлично подходит для фан сервера.
Для лоу не рассматривалась.
Если возникнут, какие-либо затруднения пишите на форуме или в скайп - phard78

Открываем garnernpc.txt(resource/garner) и добавляем нашего НПС:
 

20    Скиллы    1    450    7    217400,278800    217400,278800    360    Argent City    1    0    AddSkillNPC1    0

Теперь необходимо добавить функцию нашему нпс.
Открываем resource/script/Misscript и в любой NpcScript вставляем нашу фунцкию для НПС:
 

function AddSkillNPC1()
    Talk( 1,  "Джимберри: Привет, у меня можно изучать умения! " )
    Text( 1,  "Изучить навык ", AddSkillNPC)
    Text( 1,  "Закрыть ", CloseTalk )
end

 

Открываем NpcSdk.lua(resource/script/Missdk) и добавляем нашу фукнцию, чтобы НПС мог её выполнять:
  

 elseif item.func == AddSkillNPC then
            return AddSkillNPC(character)

Открываем functions.lua(resource/script/calculate) и в конец вставляем нашу функцию:
 

function AddSkillNPC ( role )
    local job = GetChaAttr(role, ATTR_JOB)    -- Проверям профессию персонажа
    if (job == 1) then                        -- Мечник
        -- Тело функции
    elseif (job == 2) then                    -- Охотник
        -- Тело функции
    elseif (job == 4) then                    -- Мореплавотель
        -- Тело функции
    elseif (job == 5) then                    -- Знахарка
        -- Тело функции
    elseif (job == 8) then                    -- Чемпион
        -- Тело функции
        local sk_add = {}
sk_add[0] = SK_CHF;
sk_add[1] = SK_PAX;
sk_add[2] = SK_JDZZ;
sk_add[3] = SK_JSSL;
sk_add[4] = SK_GTYZ;
sk_add[5] = SK_HYZ;
sk_add[6] = SK_PJ;
sk_add[7] = SK_KB;
sk_add[8] = SK_HX;
sk_add[9] = SK_JJSL;
sk_add[10] = SK_QHTZ;
sk_add[11] = SK_ZJ;
sk_add[12] = SK_LH;
sk_add[13] = SK_MNRX;
sk_add[14] = SK_SWZQ;
 
local sk_lvl = 10    -- Уровень умения
 
for i = 0, 14 do
    local form_sklv = GetSkillLv( role , sk_add[i] )
 
    if form_sklv ~= 0 then
        SystemNotice( role, "У вас уже изучено умение " )
    else
        AddChaSkill( role, sk_add[i], sk_lvl, 1, 1 )
        SystemNotice( role, "Умение ("..sk_lvl.." уровень) изучено! " )
    end
end
    elseif (job == 9) then                    -- Воитель
        -- Тело функции
        local sk_add = {}
sk_add[0] = SK_CHF;
sk_add[1] = SK_JDZZ;
sk_add[2] = SK_JSSL;
sk_add[3] = SK_GTYZ;
sk_add[4] = SK_HYZ;
sk_add[5] = SK_PJ;
sk_add[6] = SK_KB;
sk_add[7] = SK_HX;
sk_add[8] = SK_FSZ;
sk_add[9] = SK_LQHB;
sk_add[10] = SK_PXKG;
sk_add[11] = SK_DB;
sk_add[12] = SK_GWZ;
sk_add[13] = SK_YS;
 
local sk_lvl = 10    -- Уровень умения
 
for i = 0, 13 do
    local form_sklv = GetSkillLv( role , sk_add[i] )
 
    if form_sklv ~= 0 then
        SystemNotice( role, "У вас уже изучено умение " )
    else
        AddChaSkill( role, sk_add[i], sk_lvl, 1, 1 )
        SystemNotice( role, "Умение ("..sk_lvl.." уровень) изучено! " )
    end
end
    elseif (job == 12) then                    -- Стрелок
        -- Тело функции
        local sk_add = {}
sk_add[0] = SK_GJSL;
sk_add[1] = SK_JFB;
sk_add[2] = SK_LZJ;
sk_add[3] = SK_FNQ;
sk_add[4] = SK_BDJ;
sk_add[5] = SK_LXJY;
sk_add[6] = SK_DJ;
sk_add[7] = SK_HQSL;
sk_add[8] = SK_RSD;
sk_add[9] = SK_TJ;
sk_add[10] = SK_SJ;
sk_add[11] = SK_BT;
 
local sk_lvl = 10    -- Уровень умения
 
for i = 0, 11 do
    local form_sklv = GetSkillLv( role , sk_add[i] )
 
    if form_sklv ~= 0 then
        SystemNotice( role, "У вас уже изучено умение " )
    else
        AddChaSkill( role, sk_add[i], sk_lvl, 1, 1 )
        SystemNotice( role, "Умение ("..sk_lvl.." уровень) изучено! " )
    end
end
    elseif (job == 13) then                    -- Целительница
        --Тело функции
        local sk_add = {}
sk_add[0] = SK_XZY;
sk_add[1] = SK_XLCZ;
sk_add[2] = SK_XLZH;
sk_add[3] = SK_SHPF;
sk_add[4] = SK_JSJC;
sk_add[5] = SK_HFS;
sk_add[6] = SK_FZLZ;
sk_add[7] = SK_FH;
sk_add[8] = SK_SY;
sk_add[9] = SK_SYZY;
sk_add[10] = SK_JSFB;
sk_add[11] = SK_XLPZ;
sk_add[12] = SK_TSHD;
sk_add[13] = SK_HFWQ;
local sk_lvl = 10    -- Уровень умения
 
for i = 0, 13 do
    local form_sklv = GetSkillLv( role , sk_add[i] )
 
    if form_sklv ~= 0 then
        SystemNotice( role, "У вас уже изучено умение " )
    else
        AddChaSkill( role, sk_add[i], sk_lvl, 1, 1 )
        SystemNotice( role, "Умение ("..sk_lvl.." уровень) изучено! " )
    end
end
    elseif (job == 14) then                    -- Колдунья
        -- Тело функции
        local sk_add = {}
sk_add[0] = SK_XZY;
sk_add[1] = SK_XLCZ;
sk_add[2] = SK_XLZH;
sk_add[3] = SK_SHPF;
sk_add[4] = SK_JSJC;
sk_add[5] = SK_HFS;
sk_add[6] = SK_FZLZ;
sk_add[7] = SK_FH;
sk_add[8] = SK_SY;
sk_add[9] = SK_SYZY;
sk_add[10] = SK_ZZZH;
sk_add[11] = SK_SYNZ;
sk_add[12] = SK_AYZZ;
sk_add[13] = SK_XZFY;
 
sk_name = {}
sk_name[0] = "Все скилы были изучены ";
sk_name[1] = "Призрачный удар ";
sk_name[2] = "Призрачный огонь ";
sk_name[3] = "Закалка ";
sk_name[4] = "Сила ";
sk_name[5] = "Восстановление ";
sk_name[6] = "Мощь бури ";
sk_name[7] = "Воскрешение ";
sk_name[8] = "Благодать господня ";
sk_name[9] = "Истиное зрение ";
sk_name[10] = "Проклятый огонь ";
sk_name[11] = "Бездонное болото ";
sk_name[12] = "Росчерк тени ";
sk_name[13] = "Печать старейшины ";

 
local sk_lvl = 10    -- Уровень умения
 
for i = 0, 13 do
    local form_sklv = GetSkillLv( role , sk_add[i] )
 
    if form_sklv ~= 0 then
        SystemNotice( role, "У вас уже изучено умение " ..sk_name[i] )
    else
        AddChaSkill( role, sk_add[i], sk_lvl, 1, 1 )
        SystemNotice( role, "Умение " ..sk_name[i].. " ("..sk_lvl.." уровень) изучено! " )
    end
end
    elseif (job == 16) then                    -- Покоритель Морей
        -- Тело функции
local sk_add = {}
sk_add[0] = SK_JR;
sk_add[1] = SK_LJ;
sk_add[2] = SK_SL;
sk_add[3] = SK_BKZJ;
sk_add[4] = SK_JF;
sk_add[5] = SK_HZCR;
sk_add[6] = SK_BKCJ;
sk_add[7] = SK_SF;
sk_add[8] = SK_XW;
sk_add[9] = SK_LM;
sk_add[10] = SK_MW;
 
local sk_lvl = 10    -- Уровень умения
 
for i = 0, 10 do
    local form_sklv = GetSkillLv( role , sk_add[i] )
 
    if form_sklv ~= 0 then
        SystemNotice( role, "У вас уже изучено умение " )
    else
        AddChaSkill( role, sk_add[i], sk_lvl, 1, 1 )
        SystemNotice( role, "Умение ("..sk_lvl.." уровень) изучено! " )
    end
end
    end
end


 

Edited by Александр
  • Like 1

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...