Давно не создавал сервер но тут решил вспомнить как это было. И сразу же появилась проблема. Не нашел ни где функцию про заточку аппарелей и поднятия %%%%. Побегал по форумам и везде видно что многие ищут данную функцию. Так вот вам пользуйтесь все ковыряйтесь делайте как вам нравиться.
Нашел!!!!!!!!! Поковырялся но добился свое кому ни то может пригодиться
файл forge.lua
function can_beuplv_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 ItemBagCount_beuplv = ItemBagCount [1]
local ItemBag_beuplv = ItemBag [1]
local ItemNum_beuplv = ItemCount [1]
local Item_beuplv = GetChaItem ( role , 2 , ItemBag_beuplv )
local Item_beuplv_Type = GetItemType ( Item_beuplv )
local Item_beuplv_ID = GetItemID ( Item_beuplv )
local Item_ScItem = GetChaItem ( role , 2 , ItemBag [0] )
local Item_YxItem = GetChaItem ( role , 2 , ItemBag [2] )
local Item_ScItem_ID = GetItemID ( Item_ScItem )
local Item_YxItem_ID = GetItemID ( Item_YxItem )
local Item_ScItem_Type = GetItemType ( Item_ScItem )
local Item_YxItem_Type = GetItemType ( Item_YxItem )
local Item_beuplv_Lv = Get_Itembeuplv_Lv ( Item_beuplv )
local ItemAttr_Val_Fusionid = GetItemAttr ( Item_beuplv , ITEMATTR_VAL_FUSIONID )
if Item_beuplv_ID < 5001 or Item_beuplv_ID > 6000 then
SystemNotice( role ,"Этот предмет нельзя плавить ")
return 0
end
if ItemAttr_Val_Fusionid == 0 then
SystemNotice( role , "Предмет невозможно улучшить ")
return 0
end
if Item_beuplv_Lv >= 50 then -- Максимальный уровень улучшения --( расчет идет +4 то есть 50*4=200 заточка получаеться 200%)
SystemNotice( role ,"Вы достигли максимального уровня заточки ")
return 0
end
if ItemBagCount_beuplv ~= 1 then
SystemNotice( role , "Недопустимый уровень улучшения ")
return 0
end
if Item_ScItem_Type ~= 62 then
SystemNotice( role , "У вас нет Улучшающего свитка ")
return 0
end
if Item_YxItem_Type ~= 63 then
SystemNotice( role , "У вас нет Усиливающего кристалла ")
return 0
end
if ItemNum_beuplv ~= 1 then
SystemNotice( role , "Неверный номер улучшения ")
return 0
end
if ItemCount [0] ~= 1 or ItemCount [2] ~= 1 or ItemBagCount [0] ~= 1 or ItemBagCount [2] ~= 1 then
SystemNotice ( role ,"Ошибка предмета из ИМ или игрового материала ")
return 0
end
local Money_Need = getupgrade_money_main ( Table )
local Money_Have = GetChaAttr ( role , ATTR_GD )
if Money_Need > Money_Have then
SystemNotice( role ,"У вас не хватает золота. Невозможно провести улучшение ")
return 0
end
return 1
end
function begin_upgrade_item (...)
local Check_Canbeuplv = 0
Check_Canbeuplv = can_beuplv_item_main ( arg )
if Check_Canbeuplv == 0 then
return 0
end
local role = 0
local ItemBag = {}
local ItemCount = {}
local ItemBagCount = {}
local Get_Count = 4
local ItemReadCount = 0
local ItemReadNow = 1
local ItemReadNext = 0
local ItemBag_Num = 0
local ItemCount_Num = 0
local ItemBagCount_Num = 0
role , ItemBag , ItemCount , ItemBagCount , ItemBag_Num , ItemCount_Num , ItemBagCount_Num = Read_Table ( arg )
local ItemBag_beuplv = ItemBag [1]
local Item_beuplv = GetChaItem ( role , 2 , ItemBag_beuplv )
local Item_ScItem = GetChaItem ( role , 2 , ItemBag [0] )
local Item_YxItem = GetChaItem ( role , 2 , ItemBag [2] )
local Item_ScItem_ID = GetItemID ( Item_ScItem )
local Item_YxItem_ID = GetItemID ( Item_YxItem )
local Item_beuplv_Lv = Get_Itembeuplv_Lv ( Item_beuplv )
local R1 = 0
local R2 = 0
R1 = RemoveChaItem ( role , Item_ScItem_ID , 1 , 2 , ItemBag [0] , 2 , 1 , 0 )
R2 = RemoveChaItem ( role , Item_YxItem_ID , 1 , 2 , ItemBag [2] , 2 , 1 , 0 )
if R1 == 0 or R2 == 0 then
LG( "beuplv" , "Удалить предмет не удалось " )
end
local Money_Need = getupgrade_money_main ( arg )
local Money_Have = GetChaAttr ( role , ATTR_GD )
Money_Have = Money_Have - Money_Need
SetCharaAttr ( Money_Have , role , ATTR_GD )
ALLExAttrSet( role )
local a = Check_CG_beuplv ( Item_beuplv_Lv )
if a == 0 then
R1 = RemoveChaItem ( role , Item_ScItem_ID , 1 , 2 , ItemBag [0] , 2 , 1 , 0 )
R2 = RemoveChaItem ( role , Item_YxItem_ID , 1 , 2 , ItemBag [2] , 2 , 1 , 0 )
if R1 == 0 or R2 == 0 then
LG( "beuplv" , "Удалить предмет не удалось " )
end
local cha_name = GetChaDefaultName ( role )
LG( "JingLian_ShiBai" , "Игрок "..cha_name.." не смог улучшить предмет " )
SystemNotice( role , "Извините, заточить аппарель неудалось ")
return
end
Item_beuplv_Lv = Item_beuplv_Lv + 50 ------(это сколько уровней сразу поднимется тоесть 1 уровень это 2% а 50 уровенй это 100% сразу )
SetChaKitbagChange( role , 1 )
Set_Itembeuplv_Lv ( Item_beuplv , Item_beuplv_Lv )
SynChaKitbag( role, 4 )
local LvD = GetItemAttr( Item_beuplv , ITEMATTR_VAL_LEVEL )
SynChaKitbag(role,13)
SystemNotice( role , "Вы заточили шмотку ")
local cha_name = GetChaDefaultName ( role )
LG( "JingLian_ShiBai" , "Игрок "..cha_name.." успешно провел усиление " )
return 1
end
function Get_Itembeuplv_Lv ( Item )
local Lv = GetItemAttr ( Item , ITEMATTR_VAL_LEVEL )
return Lv
end
function Set_Itembeuplv_Lv ( Item , Item_Lv )
local i = 0
i = SetItemAttr ( Item , ITEMATTR_VAL_LEVEL , Item_Lv )
if i == 0 then
LG( "Hecheng_BS","Failed to set gem level" )
end
end
------------------
-- Шанс Заточки --
------------------
function Check_CG_beuplv ( Item_Lv )
local ran = math.random ( 1, 100 )
if Item_Lv <= 10 then
return 1 -- 100%
end
if Item_Lv>10 and Item_Lv <= 15 then
if ran <= 50 then -- 50%
return 1
else
return 0
end
end
if Item_Lv>15 and Item_Lv <= 20 then
if ran <= 10 then --10%
return 1
else
return 0
end
end
end
Спасибо за такой отличный форум