07-08-2011, 01:31 PM
(Сообщение последний раз редактировалось: 07-08-2011, 04:38 PM BopoHangel.)
За основу сборки взяты серверные файлы PKO 1.36(клиент 1.39) не из шары.
Содержится:
- Сделана анжела младшая и фрукты к ней
- Разные плюшки за удержание портов в подземельях ,а так же флагов.
- Множество NPC с плюшками
- Выполнен 95% перевод.Переведено всё от ItemInfo и до всяких skilleffect.lua и AttrCalculate.lua
- Все карты в рабочем состоянии и без неисправностей.
- Содержатся все самоцветы +2 +3 +4 +5 +8,нью самоцветы,нефриты
- Добавлены свои самоцветы +20 бега,+10 востановление хп и сп, +15 аспид.
- Данж - Захват флага Барбароссы
- Данж - Искупление и Утопь Демона
- Оптимальный баланс классов немного уклонный на маг.классы
- Самописаное Баунти.
- Системы апдрейда БС до деза и деза до 85 ансилов.
- Хаос Ледыни 61-64 лвл с вкусным дропом
- Много вариантов заработка
- Добавлены 35 ансилы всем классам и они даются из сундука новичка.
- Изменены немного феи.2 ген феи теперь дают опыт и дроп как джуниор.
- А так же многое другое,всё описывать не охото сами всё посмотрите
Пример перевода:
skilleffect.lua
Код:
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――--
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――--
―――――――――――――――――――――-Мистическая сила перерождения―――――――――――――――――――――――――――--
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――--
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――--
function Skill_Rbmp_Use( role , sklv )
local statelv = sklv
local rb_bonus = (-1) * ( 0.070 + 0.005 * statelv ) -- Бонус 7.5%
local mnatksa = math.floor ( (MnatkSa (role) - rb_bonus ) * ATTR_RADIX ) --Бонус минимальной атаки
local mxatksa = math.floor ( (MxatkSa (role) - rb_bonus ) * ATTR_RADIX ) --Бонус максимальной атаки
local defsa = math.floor ( (DefSa (role) - rb_bonus ) * ATTR_RADIX ) --Бонус защиты
local ResistSa = math.floor ( (ResistSa(role) - rb_bonus ) * ATTR_RADIX ) --Бонус физического сопротивления
SetCharaAttr( mnatksa , role , ATTR_STATEC_MNATK )
SetCharaAttr( mxatksa , role , ATTR_STATEC_MXATK )
SetCharaAttr( defsa , role , ATTR_STATEC_DEF )
SetCharaAttr( ResistSa , role , ATTR_STATEC_PDEF )
ALLExAttrSet(role)
end
function Skill_Rbmp_Unuse( role , sklv )
local statelv = sklv
local rb_bonus = (-1) * ( 0.050 + 0.005 * statelv ) -- Бонус 7.5%
local mnatksa = math.floor ( (MnatkSa (role) + rb_bonus ) * ATTR_RADIX ) --Бонус минимальной атаки
local mxatksa = math.floor ( (MxatkSa (role) + rb_bonus ) * ATTR_RADIX ) --Бонус максимальной атаки
local defsa = math.floor ( (DefSa (role) + rb_bonus ) * ATTR_RADIX ) --Бонус защиты
local ResistSa = math.floor ( (ResistSa(role) + rb_bonus ) * ATTR_RADIX ) --Бонус физического сопротивления
SetCharaAttr( mnatksa , role , ATTR_STATEC_MNATK )
SetCharaAttr( mxatksa , role , ATTR_STATEC_MXATK )
SetCharaAttr( defsa , role , ATTR_STATEC_DEF )
SetCharaAttr( ResistSa , role , ATTR_STATEC_PDEF )
ALLExAttrSet(role)
end
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――--
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――--
―――――――――――――――――――――-Дистанционная атака――――――――――――――――――――――――――――――――――--
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――--
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――--
function Skill_lackart_Begin ( role , sklv )
end
function Skill_lackart_End ( ATKER , DEFER , sklv )
Skill_Melee_End ( ATKER , DEFER , sklv )
end
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――--
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――--
―――――――――――――――――――――-Узы Любви――――――――――――――――――――――――――――――――――--
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――--
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――--
--Узы любви
function Skill_Qlzx_End ( ATKER , DEFER , sklv )
local NocLock = KitbagLock( ATKER, 0 )
if NocLock == LUA_FALSE then
SystemNotice( ATKER , "\200\237\226\229\237\242\224\240\252 \231\224\225\235\238\234\232\240\238\226\224\237")
--SystemNotice( ATKER , "Инвентарь заблокирован")
return
end
local item_count = CheckBagItem ( ATKER , 2520 )
if item_count <= 0 then
SystemNotice( ATKER , "\211 \194\224\241 \237\229\242 \202\238\235\252\246\224 \194\235\254\225\235\229\237\237\251\245")
--SystemNotice( ATKER , "У Вас нет Кольца Влюбленных")
return
else
local ring = GetChaItem2 ( ATKER , 2 , 2520 )
local Num_ATK_JZ = GetItemForgeParam ( ring , 1 )
Num_ATK_JZ = TansferNum ( Num_ATK_JZ )
local ID_ATK_Num = GetRoleID(ATKER)
local t = {}
t[0] = DEFER
t[1] = GetTeamCha(DEFER, 0 )
t[2] = GetTeamCha(DEFER, 1 )
t[3] = GetTeamCha(DEFER, 2 )
t[4] = GetTeamCha(DEFER, 3 )
local i = 1
for i = 1 , 4 , 1 do
if t[i] ~= nil then
local item_count = CheckBagItem ( t[i] , 2520 )
if item_count == 1 then
local Item = GetChaItem2 ( t[i] , 2 , 2520 )
local Num_JZ = GetItemForgeParam ( Item , 1 )
Num_JZ = TansferNum ( Num_JZ )
if Num_JZ == ID_ATK_Num then
local ID_Num = GetRoleID(t[i])
if Num_ATK_JZ==ID_Num then
local x, y = GetChaPos(t[i])
local map_name = GetChaMapName (t[i])
x = math.floor (x*0.01)
y = math.floor (y*0.01)
if map_name == "prisonisland" or map_name == "mingyun" or map_name == "guildwar" or map_name == "guildwar2" or map_name == "darkswamp" or map_name == "abandonedcity" or map_name == "abandonedcity2" or map_name == "abandonedcity3" then
SystemNotice ( ATKER , "\194\238\231\236\238\230\237\238, \194\224\248\224 \239\238\235\238\226\232\237\234\224 \237\224\245\238\228\232\242\241\255 \237\224 \234\224\240\242\229, \227\228\229 \237\229\235\252\231\255 \232\241\239\238\235\252\231\238\226\224\242\252 \228\224\237\237\238\229 \243\236\229\237\232\229" )
--SystemNotice ( ATKER , "Возможно, Ваша половинка находится на карте, где нельзя использовать данное умение" )
UseItemFailed ( ATKER )
return
else
local map_name2 = GetChaMapName ( ATKER )
if map_name2 == "prisonisland" or map_name2 == "mingyun" or map_name2 == "guildwar" or map_name2 == "guildwar2" or map_name2 == "darkswamp" or map_name2 == "abandonedcity" or map_name2 == "abandonedcity2" or map_name2 == "abandonedcity3" then
SystemNotice ( ATKER , "\205\229\235\252\231\255 \232\241\239\238\235\252\231\238\226\224\242\252 \243\236\229\237\232\229 \237\224 \228\224\237\237\238\233 \234\224\240\242\229" )
--SystemNotice ( ATKER , Нельзя использовать умение на данной карте" )
UseItemFailed ( ATKER )
return
end
end
GoTo(ATKER, x,y, map_name)
return
end
end
end
end
if i == 4 then
SystemNotice( ATKER , "\194 \194\224\248\229\236 \238\242\240\255\228\229 \237\229\242 \194\224\248\229\233 \239\238\235\238\226\232\237\234\232")
--SystemNotice( ATKER , "В Вашем отряде нет Вашей половинки")
end
end
end
end
functions.lua
Код:
-- Роль функции: Таймер,отсчёт времени
-- Параметры: функции выполняются раз в секунду
function cha_timer(role, freq, time)
local resume_freq = 5
local now_tick = GetChaParam(role, 1)
local is_role_living = -1
SetChaParam(role, 1, now_tick + freq * time)
-- Восстановление ЖЗ
if math.mod(now_tick, resume_freq) == 0 and now_tick > 0 then
if is_role_living == -1 then
is_role_living = IsChaLiving(role)
end
if is_role_living == 1 then
Resume(role)
end
end
-- Восстановление ЖЗ (конец)
-- Свечение 95 ансилов
local mxhp = GetChaAttr (role, ATTR_MXHP)
if math.mod(now_tick, resume_freq) == 0 and now_tick > 0 then
ZhongShenTaoZhuang(role, now_tick)
end
-- Свечение 95 ансилов(конец)
-- Свечение 85 колец
local Dina_xl = GetEquipItemP(role,8)
local Dina_xl_ID= GetItemID (Dina_xl)
local Dina_x2 = GetEquipItemP(role,2)
local Dina_x2_ID= GetItemID (Dina_x2)
if Dina_xl_ID==2577 and Dina_x2_ID==2817 then
local statelv = 1
local statetime = 3600
AddState ( role , role , STATE_BBRING1 , statelv , statetime )
elseif Dina_xl_ID==2578 and Dina_x2_ID==2820 then
local statelv = 1
local statetime = 3600
AddState ( role , role , STATE_BBRING2 , statelv , statetime )
elseif Dina_xl_ID==2579 and Dina_x2_ID==2823 then
local statelv = 1
local statetime = 3600
AddState ( role , role , STATE_BBRING3 , statelv , statetime )
elseif Dina_xl_ID==2580 and Dina_x2_ID==2826 then
local statelv = 1
local statetime = 3600
AddState ( role , role , STATE_BBRING4 , statelv , statetime )
elseif Dina_xl_ID==2581 and Dina_x2_ID==2832 then
local statelv = 1
local statetime = 3600
AddState ( role , role , STATE_BBRING5 , statelv , statetime )
elseif Dina_xl_ID==2582 and Dina_x2_ID==2829 then
local statelv = 1
local statetime = 3600
AddState ( role , role , STATE_BBRING6 , statelv , statetime )
else
local statelv_bbring1 = GetChaStateLv ( role , STATE_BBRING1 )
if statelv_bbring1~=0 then
RemoveState ( role , STATE_BBRING1 )
end
local statelv_bbring2 = GetChaStateLv ( role , STATE_BBRING2 )
if statelv_bbring2~=0 then
RemoveState ( role , STATE_BBRING2 )
end
local statelv_bbring3 = GetChaStateLv ( role , STATE_BBRING3 )
if statelv_bbring3~=0 then
RemoveState ( role , STATE_BBRING3 )
end
local statelv_bbring4 = GetChaStateLv ( role , STATE_BBRING4 )
if statelv_bbring4~=0 then
RemoveState ( role , STATE_BBRING4 )
end
local statelv_bbring5 = GetChaStateLv ( role , STATE_BBRING5 )
if statelv_bbring5~=0 then
RemoveState ( role , STATE_BBRING5 )
end
local statelv_bbring6 = GetChaStateLv ( role , STATE_BBRING6 )
if statelv_bbring6~=0 then
RemoveState ( role , STATE_BBRING6 )
end
end
-- Свечение 85 колец (конец)
-- Сила в сердце
local Eric_XZDLL = GetEquipItemP(role,8)
local Eric_XZDLL_ID = GetItemID (Eric_XZDLL)
if Eric_XZDLL_ID == 5827 then
local statelv = 1
local statetime = 3600
AddState ( role , role , STATE_XZDLL , statelv , statetime )
else
local statelv_XZDLL = GetChaStateLv ( role , STATE_XZDLL )
if statelv_XZDLL~=0 then
RemoveState ( role , STATE_XZDLL )
end
end
-- Сила в цердце (конец)
--Бонус за удержание порта в фс\дс
local map_cha = GetChaMapName(role) --Карта, на которой находится персонаж
local bonus_type = ATTR_GD --Репутация (ATTR_GD - золото; ATTR_FAME - репутация)
local character = GetChaAttr(role, bonus_type) --Кол-во выбранного атрибута у персонажа
local bonus_add = 150 --Сколько очков добавить
local bonus_calc = character + bonus_add
if map_cha == "darkswamp" then
local x,y = GetChaPos(role)
x = math.floor(x/100)
y = math.floor(y/100)
if x >= 290 and x <= 330 and y >= 325 and y <= 350 then
SystemNotice(role, "Получено золота: ("..bonus_add..")") --Сообщение "Получены очки чести..."
SetChaAttrI(role, bonus_type, bonus_calc)
end
end
if map_cha == "abandonedcity" then
local x,y = GetChaPos(role)
x = math.floor(x/100)
y = math.floor(y/100)
if x >= 300 and x <= 315 and y >= 305 and y <= 320 then
SystemNotice(role, "Получено золота: ("..bonus_add..")") --Сообщение "Получены очки чести..."
SetChaAttrI(role, bonus_type, bonus_calc)
end
end
-- Функция обратного отсчета времени Тюремного протокола
local juluka_freq = 60
local energy_resume = 60
if math.mod(now_tick, juluka_freq) == 0 and now_tick > 0 then
local map_name = GetChaMapName ( role )
if map_name == "prisonisland" then
local item_jiluka = GetChaItem( role, 2, 2)
local item_id = GetItemID( item_jiluka )
if item_id == 5724 then
local energy = GetItemAttr(item_jiluka, ITEMATTR_ENERGY)
if energy < 0 then
energy = 0
elseif energy ==0 then
SystemNotice ( role , "\209\240\238\234 \194\224\248\229\227\238 \242\254\240\229\236\237\238\227\238 \231\224\234\235\254\247\229\237\232\255 \231\224\234\238\237\247\232\235\241\255. \207\238\227\238\226\238\240\232\242\229 \241 \237\224\247\224\235\252\237\232\234\238\236 \242\254\240\252\236\251." )
--SystemNotice ( role , "Срок Вашего тюремного заключения закончился. Поговорите с начальником тюрьмы." )
else
energy = energy - energy_resume
SetItemAttr(item_jiluka, ITEMATTR_ENERGY, energy )
end
end
end
end
-- Функция обратного отсчета времени Тюремного протокола (конец)
-- Функция Священного Факела
local one_minite=60 -- Устанавливаем one_minite как 60 секунд
if math.mod(now_tick, one_minite) == 0 and now_tick > 0 then
local num_huoju=0
local item_huoju=0
num_huoju = CheckBagItem( role, 5825 )
if num_huoju==1 then
item_huoju = GetChaItem2 ( role , 2 , 5825 )
local item_huoju_ure=GetItemAttr(item_huoju,ITEMATTR_URE)
if item_huoju_ure>=50 then
item_huoju_ure=item_huoju_ure-50
SetItemAttr(item_huoju,ITEMATTR_URE,item_huoju_ure)
end
end
end
-- Функция Священного Факела (конец)
-- Неизвестная функция (Fireworks Durable)
local el_nj = GetEquipItemP(role,9)
local el_nj_ID= GetItemID (el_nj)
-- SystemNotice ( role , "el_nj_ID=="..el_nj_ID )
if el_nj_ID==3669 then
local ure = GetItemAttr(el_nj, ITEMATTR_URE)
-- SystemNotice ( role , "ure=="..ure )
local ure_resume = 1000
ure = ure - ure_resume
-- SystemNotice ( role , "ure1=="..ure )
SetItemAttr(el_nj, ITEMATTR_URE, ure )
SynChaKitbag(role,13)
if ure <1000 then
RemoveChaItem ( role , 3669 , 1 , 1 , -1, 2 , 1 )
end
end
local Max_xl = GetEquipItemP(role,5)
local Max_xl_ID= GetItemID (Max_xl)
-- SystemNotice ( role , "Max_xl_ID=="..Max_xl_ID )
if Max_xl_ID==2980 then
local statelv = 1
local statetime = 1
AddState ( role , role , STATE_ILOVEDAD , statelv , statetime )
-- SystemNotice ( role , "You love my father, I also love!" )
end
-- Неизвестная функция (Fireworks Durable)(конец)
--Функция свадебного бонуса
local cha = TurnToCha ( role )
local now_tick = GetChaParam(role, 1)
local ring_bg = CheckBagItem ( cha , 2520 )
if ring_bg ~= 0 then
local ring = GetChaItem2 ( cha , 2 , 2520 )
local mate_id = GetItemForgeParam ( ring , 1 )
if IsInTeam(cha) == 1 then
local Role_ID = GetRoleID(cha)
local t = {}
t[0] = cha
t[1] = GetTeamCha(cha, 0 )
t[2] = GetTeamCha(cha, 1 )
t[3] = GetTeamCha(cha, 2 )
t[4] = GetTeamCha(cha, 3 )
for i = 1 , 4 do
if t[i] ~= nil then
local Have_Ring = CheckBagItem( t[i] , 2520 )
if Have_Ring == 1 then
local Item = GetChaItem2 ( t[i] , 2 , 2520 )
local party_mate_id = GetItemForgeParam ( Item , 1 )
if Role_ID == party_mate_id then
local party_ID = GetRoleID(t[i])
if mate_id==party_ID then
local pos_cha_x, pos_cha_y = GetChaPos(cha)
local mate = TurnToCha ( t[i] )
local pos_mate_x, pos_mate_y = GetChaPos(mate)
local distance = Distance( pos_cha_x , pos_cha_y , pos_mate_x , pos_mate_y )
if distance <= 500 then
AddState ( role , role , 234 , 1 , 3600 )
RefreshCha(role)
elseif distance >= 500 then
RemoveState ( role , 234 )
end
end
end
end
end
end
end
end
--Функция свадебного бонуса(конец)
-- Автоматический Фрукт роста
local Item_bg = GetChaItem ( role , 2 , 1 ) -- Получение содержимого 2ой ячейки рюкзака
local Get_Item_Type = GetItemType ( Item_bg )
local Item_AutoSpeed = GetChaItem ( role , 2 , 2 ) -- Получение содержимого 3ей ячейки рюкзака
local Item_AutoSpeed_ID = GetItemID ( Item_AutoSpeed )
if Get_Item_Type == 59 then
local ChaStateLv = GetChaStateLv ( role , STATE_JLJSGZ)
if ChaStateLv > 1 then
SystemNotice ( role , "\200\241\239\238\235\252\231\243\229\242\241\255 \225\238\235\229\229 \236\238\249\237\251\233 \243\241\232\235\229\242\232\229\235\252. \207\238\239\240\238\225\243\233\242\229 \239\238\231\230\229." )
--SystemNotice ( role , "Используется более мощный усилетиель. Попробуйте позже." )
UseItemFailed ( role )
end
if ChaStateLv == 1 then
SystemNotice ( role , "\200\241\239\238\235\252\231\243\229\242\241\255 \225\238\235\229\229 \236\238\249\237\251\233 \243\241\232\235\232\242\232\229\235\252. \207\238\239\240\238\225\243\233\242\229 \239\238\231\230\229." )
--SystemNotice ( role , "Используется более мощный усилитиель. Попробуйте позже." )
UseItemFailed ( role )
end
if ChaStateLv == 0 and Item_AutoSpeed_ID ==5643 then
local k = TakeItem( role,0,5643,1)
if k==0 then
SystemNotice ( role , "\205\229 \243\228\224\235\238\241\252 \232\241\239\238\235\252\231\238\226\224\242\252 \192\226\242\238\236\224\242\232\247\229\241\234\232\233 \212\240\243\234\242 \240\238\241\242\224!" )
--SystemNotice ( role , "Не удалось использовать Автоматический Фрукт роста!" )
else
local statetime = 900
local statelv =1
AddState( role , role , STATE_JLJSGZ , statelv , statetime )
SystemNotice ( role , "\200\241\239\238\235\252\231\238\226\224\237 \192\226\242\238\236\224\242\232\247\229\241\234\232\233 \212\240\243\234\242 \240\238\241\242\224! \211\228\226\238\229\237 \242\229\236\239 \240\238\241\242\224 \244\229\232." )
--SystemNotice ( role , "Использован Автоматический Фрукт роста! Удвоен темп роста феи." )
end
end
end
-- Автоматический Фрукт роста(конец)
-- Феи
local pet_freq = 60
local Item_Elf = GetChaItem ( role , 2 , 1 )
local Get_Elf_Type = GetItemType ( Item_Elf )
if Get_Elf_Type == 59 then
local ure_type = GetItemAttr( Item_Elf ,ITEMATTR_URE )
if ure_type<=49 then
SetChaKbItemValid2(role , Item_Elf , 0 , 1)
else
SetChaKbItemValid2(role , Item_Elf , 1 , 1)
end
local str = GetItemAttr( Item_Elf ,ITEMATTR_VAL_STR ) -- Сила
local con = GetItemAttr( Item_Elf ,ITEMATTR_VAL_CON ) -- Телосложение
local agi = GetItemAttr( Item_Elf ,ITEMATTR_VAL_AGI ) -- Ловкость
local dex = GetItemAttr( Item_Elf ,ITEMATTR_VAL_DEX ) -- Точность
local sta = GetItemAttr( Item_Elf ,ITEMATTR_VAL_STA ) -- Дух
local Lv = str + agi + dex + con + sta -- Уровень феи
if Lv > 27 then
pet_freq = pet_freq + ( Lv - 27 ) * 5 -- Если уровень феи выше 27, то время увеличивается
end
end
local sklv = GetChaStateLv ( role , STATE_JLJSGZ ) -- Если применен Фрукт роста феи, время сокращается в 2 раза
if sklv~=0 then
pet_freq =math.floor( pet_freq*0.5 )
end
if math.mod(now_tick, pet_freq) == 0 and now_tick > 0 then
if is_role_living == -1 then
is_role_living = IsChaLiving(role)
end
if is_role_living == 1 then
local Item_bg = GetChaItem ( role , 2 , 1 )
local Get_Item_Type = GetItemType ( Item_bg )
local Item_siliao = GetChaItem ( role , 2 , 2 )
local Item_siliao_ID = GetItemID ( Item_siliao )
if Get_Item_Type == 59 then
local Elf_URE = GetItemAttr( Item_bg ,ITEMATTR_URE )
local Num_JLone = GetItemForgeParam ( Item_bg , 1 )
local Part1_JLone = GetNum_Part1 ( Num_JLone )
-- Стандартный паек / Большой Авто-Рацион
if Elf_URE<=2550 and ItemUse_siliao_ID==2312 then
local j = TakeItem( role,0,2312,1)
if j==0 then
SystemNotice ( role , "\209\242\224\237\228\224\240\242\237\251\233 \239\224\229\234 \237\229 \232\241\239\238\235\252\231\238\226\224\237!" )
--SystemNotice ( role , "Стандартный паек не использован!" )
else
Elf_URE = Elf_URE + 2500
SystemNotice ( role , "\212\229\255 \224\226\242\238\236\224\242\232\247\229\241\234\232 \237\224\234\238\240\236\235\229\237\224." )
--SystemNotice ( role , "Фея автоматически накормлена." )
SetItemAttr ( Item_bg , ITEMATTR_URE , Elf_URE )
end
elseif Elf_URE<=5000 and Item_numeneat_ID==5645 then
local j = TakeItem( role,0,5645,1)
if j==0 then
SystemNotice ( role , "\193\238\235\252\248\238\233 \192\226\242\238-\240\224\246\232\238\237 \237\229 \232\241\239\238\235\252\231\238\226\224\237!" )
--SystemNotice ( role , "Большой Авто-рацион не использован!" )
else
Elf_URE = Elf_URE + 5000
SystemNotice ( role , "\212\229\255 \224\226\242\238\236\224\242\232\247\229\241\234\232 \237\224\234\238\240\236\235\229\237\224." )
--SystemNotice ( role , "Фея автоматически накормлена." )
SetItemAttr ( Item_bg , ITEMATTR_URE , Elf_URE )
end
end
-- Стандартный паек / Большой Авто-Рацион (конец)
-- Получение Монет фей, Эльф. печаток, Кор.эльф.печаток
local star_num = GetItemAttr( Item_bg ,ITEMATTR_VAL_FUSIONID )
star_num=star_num+1
if math.mod( star_num , 1) == 0 and Elf_URE>=50 and Part1_JLone==1 then
GiveItemX ( role , 0 , 855 , 1 , 4 )
end
if math.mod( star_num , 2) == 0 and Elf_URE>=50 and Part1_JLone~=1 then
GiveItemX ( role , 0 , 855 , 1 , 4 )
end
if math.mod( star_num , 30) == 0 and Elf_URE>=50 and Part1_JLone==1 then
GiveItemX ( role , 0 , 2588 , 1 , 4 )
end
if math.mod( star_num , 60) == 0 and Elf_URE>=50 and Part1_JLone~=1 then
GiveItemX ( role , 0 , 2588 , 1 , 4 )
end
if math.mod( star_num , 120) == 0 and Elf_URE>=50 then
GiveItemX ( role , 0 , 2588 , 1 , 4 )
end
if math.mod( star_num , 1200) == 0 and Elf_URE>=50 then
GiveItemX ( role , 0 , 2589 , 1 , 4 )
end
if star_num==1200 then
star_num=0
end
SetItemAttr ( Item_bg , ITEMATTR_VAL_FUSIONID , star_num )
Take_ElfURE ( role , Item_bg , 1 , 0 )
Give_ElfEXP ( role , Item_bg , 1 , 0 )
-- Получение Монет фей, Эльф. печаток, Кор.эльф.печаток (конец)
end
end
end
-- Феи (конец)
-- Захват флага
local map = GetChaMapName ( role ) --Получаем название карты где находяться игроки
if map == "starena33" then --Если игрок на карте захвата флага, то...
local flag = GetChaStateLv ( role , 204 ) --Переменная хранящая значение флага
if flag > 0 then --Если на игроке флаг есть, то...
id_char = role --Записать его ID в переменную "носитель флага"
AddMoney ( role , 0 , 400 )
end
end
local cha_map = GetChaMapName ( id_char ) --Получаем карту нахождения носителя флага
if cha_map ~= "starena33" then --Если он находиться не на карте захвата флага, то...
local name_char = GetChaDefaultName ( id_char ) --Получаем его ник
Notice("["..name_char.."] убежал что аж пятки засверкали и выбросил флаг. Первый вошедший на локацию получит его." ) --Выводим сообщение, о потери флага
id_char = 0 --Удаляем его ID из переменной "носитель флага"
end
-- Захват флага(конец)
end
forge.lua
Код:
function can_unite_item_main ( Table )
local role = 0
local ItemBag = {}
local ItemCount = {}
local ItemBagCount = {}
local Get_Count = 4
local ItemReadCount = 0
local ItemReadNow = 1
local ItemReadNext = 0
local ItemBag_Now = 0
local ItemCount_Now = 0
local ItemBagCount_Num = 0
role , ItemBag , ItemCount , ItemBagCount , ItemBag_Now , ItemCount_Now , ItemBagCount_Num = Read_Table ( Table )
local i = 0
for i = 0 , 2 , 1 do
if ItemBagCount[i] ~= 1 or ItemCount[i] ~= 1 then
return 0
end
end
local BagItem1 = ItemBag [0]
local BagItem2 = ItemBag [1]
local BagItem3 = ItemBag [2]
local Item1 = GetChaItem ( role , 2 , BagItem1 )
local Item2 = GetChaItem ( role , 2 , BagItem2 )
local Item3 = GetChaItem ( role , 2 , BagItem3 )
local ItemID1 = GetItemID ( Item1 )
local ItemID2 = GetItemID ( Item2 )
local ItemID3 = GetItemID ( Item3 )
local ItemType1 = GetItemType ( Item1 )
local ItemType2 = GetItemType ( Item2 )
local ItemType3 = GetItemType ( Item3 )
if ItemType1 ~= 47 then
SystemNotice( role ,"\221\242\238 \237\229 \241\226\232\242\238\234 \238\225\250\229\228\232\237\229\237\232\255")
--SystemNotice( role ,"Это не свиток объединения")
return 0
end
if ItemType2 ~= 49 or ItemType3 ~= 49 then
if ItemType2 ~= 50 or ItemType3 ~= 50 then
SystemNotice( role , "\221\242\238 \237\229 \241\224\236\238\246\226\229\242")
--SystemNotice( role , "Это не самоцвет")
return 0
end
end
if ItemID2 ~= ItemID3 then
SystemNotice(role ,"\209\224\236\238\246\226\229\242 \237\229 \241\238\238\242\226\229\242\241\242\226\243\229\242")
--SystemNotice(role ,"Самоцвет не соответствует")
return 0
end
local Item2_Lv = Get_StoneLv ( Item2 )
local Item3_Lv = Get_StoneLv ( Item3 )
if ItemType2 == 49 and ItemType3 == 49 then
if Item2_Lv >= 9 or Item3_Lv >= 9 then
SystemNotice ( role , "\211\240\238\226\229\237\252 \241\224\236\238\246\226\229\242\224 \236\224\234\241\232\236\224\235\252\237\251\233")
--SystemNotice ( role , "Уровень самоцвета максимальный")
return 0
end
end
if Item2_Lv ~= Item3_Lv then
SystemNotice(role ,"\211\240\238\226\229\237\252 2 \241\224\236\238\246\226\229\242\224 \237\229 \241\238\226\239\224\228\224\229\242 \241 1")
--SystemNotice(role ,"Уровень 2 самоцвета не совпадает с 1")
return 0
end
local Money_Need = getunite_money_main ( Table )
local Money_Have = GetChaAttr ( role , ATTR_GD )
if Money_Need > Money_Have then
SystemNotice( role ,"\205\229\245\226\224\242\224\229\242 \231\238\235\238\242\224 \228\235\255 \238\225\250\229\228\232\237\229\237\232\255")
--SystemNotice( role ,"Нехватает золота для объединения")
return 0
end
return 1
end
Ссылки:
Серверные файлы: http://rghost.ru/11243961
Патч: http://rghost.ru/6991971
ВНИМАНИЕ: в StringSet`e и в Group Server`e обязательно изменяем Argent,Shaitan City на русские ,а точней на Аргент,Шайтан,Ледынь ,а то достали бл*ть
Копирование на другие ресурсы строго запрещено.