У данного нпс вы получите все скиллы, на данную профессию персонажа сразу 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