Jump to content
Sign in to follow this  
Static

Вытащить гем

Recommended Posts

Всем привет, интересует такая тема, как можно сделать, чтобы когда гем вытаскиваешь, он с рефом вытаскивался? Кто шарит и сможет помочь?

Код в forge.lua

Скрытый текст

function can_getstone_item(...)
    if arg.n ~= 10 and arg.n ~= 14 then
        SystemNotice ( arg[1] , "parameter value illegal"..arg.n )
        return 0
    end
    local Check = 0
    Check = can_getstone_item_main ( arg )
    if Check == 1 then
        return 1
    else
        return 0
    end
end

function can_getstone_item_main( Table )
    local role = 0
    local ItemBag = {}                                        
    local ItemCount = {}                                        
    local ItemBagCount = {}                                        
    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 )
    if ItemCount [0] ~= 1 or ItemCount [1] ~= 1 or ItemBagCount [0] ~= 1 or ItemBagCount [1] ~= 1 then
        SystemNotice ( role ,"equipment quantity illegal ")
        return 0
    end
    local Item_CanGet = GetChaFreeBagGridNum ( role )    
    if Item_CanGet < 1 then
        SystemNotice(role ,"Вы должны иметь 1 свободный слот в инвентаре ")
        UseItemFailed ( role )
        return
    end
    local Item_mainitem = GetChaItem ( role , 2 , ItemBag [0] )    
    local Item_otheritem = GetChaItem ( role , 2 , ItemBag [1] )    
    local  ItemType_mainitem = GetItemType ( Item_mainitem )
    local  ItemType_otheritem = GetItemType ( Item_otheritem )
    local ItemID_mainitem = GetItemID ( Item_mainitem )
    local ItemID_otheritem = GetItemID ( Item_otheritem )
    local Item_mainitem_Lv =  GetItemLv ( Item_mainitem )
    local Item_Stone = {}
    local Item_StoneLv = {}
    local Jinglianxinxi = GetItemForgeParam ( Item_mainitem , 1 )
    Jinglianxinxi = TansferNum ( Jinglianxinxi )
    Item_Stone[0] = GetNum_Part2 ( Jinglianxinxi )
    Item_Stone[1] = GetNum_Part4 ( Jinglianxinxi )
    Item_Stone[2] = GetNum_Part6 ( Jinglianxinxi )
    Item_StoneLv[0] = GetNum_Part3 ( Jinglianxinxi )
    Item_StoneLv[1] = GetNum_Part5 ( Jinglianxinxi )
    Item_StoneLv[2] = GetNum_Part7 ( Jinglianxinxi )
    local checkstar=CheckItem_CanJinglian(Item_mainitem)
    if checkstar==0 then
    SystemNotice( role ,"Неверный тип предмета ")
        return 0    
    end
    if Item_Stone[0]==0 and Item_Stone[1]==0 and Item_Stone[2]==0 then
    SystemNotice( role ,"Предмет не ковался самоцветами ")
        return 0        
    end
    if ItemID_otheritem ~= 1020 then
        SystemNotice( role ,"Используйте Клещи кузнеца ")
        return 0            
    end
    local Money_Need = getstone_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_getstone_item(...)
    local Check_Cangetstone = 0
    Check_Cangetstone = can_getstone_item_main ( arg )
    if Check_Cangetstone == 0 then
        return 0
    end
    local role = 0
    local ItemBag = {}                                            
    local ItemCount = {}                                            
    local ItemBagCount = {}                                        
    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 Item_mainitem = GetChaItem ( role , 2 , ItemBag [0] )    
    local Item_otheritem = GetChaItem ( role , 2 , ItemBag [1] )    
    local Money_Need = getstone_money_main ( arg )
    local Money_Have = GetChaAttr ( role , ATTR_GD )
    TakeMoney(role,nil,Money_Need)
    Check_TiChun_Item = getstone_item ( arg )
    if Check_TiChun_Item == 0  then
        SystemNotice ( role ,"Не удалось вытащить самоцвет. Проверьте ход работы ")
    end
    return 1
end

function get_item_getstone_money(...)
    local Money = getstone_money_main ( arg )
    return Money
end

function getstone_money_main ( Table )
    local role = 0
    local ItemBag = {}                                        
    local ItemCount = {}                                        
    local ItemBagCount = {}                                    
    local ItemBag_Num = 0                                    
    local ItemCount_Num = 0                                    
    local ItemBagCount_Num = 0                                
    role , ItemBag , ItemCount , ItemBagCount , ItemBag_Num , ItemCount_Num , ItemBagCount_Num = Read_Table ( Table )
    local Item_mainitem = GetChaItem ( role , 2 , ItemBag [0] )    
    local Item_StoneLv = {}
    local Jinglianxinxi = GetItemForgeParam ( Item_mainitem , 1 )
    Jinglianxinxi = TansferNum ( Jinglianxinxi )
    Item_StoneLv[0] = GetNum_Part3 ( Jinglianxinxi )
    Item_StoneLv[1] = GetNum_Part5 ( Jinglianxinxi )
    Item_StoneLv[2] = GetNum_Part7 ( Jinglianxinxi )
    local Money_Need = (Item_StoneLv[0]+Item_StoneLv[1]+Item_StoneLv[2])*10000
    return Money_Need
end

function getstone_item ( Table )
    local role = 0
    local ItemBag = {}                                        
    local ItemCount = {}                                        
    local ItemBagCount = {}                                        
    local ItemBag_Num = 0
    local ItemCount_Num = 0
    local ItemBagCount_Num = 0
    local ItemID_Cuihuaji = 0
    role , ItemBag , ItemCount , ItemBagCount , ItemBag_Num , ItemCount_Num , ItemBagCount_Num = Read_Table ( Table )
    local Item_mainitem = GetChaItem ( role , 2 , ItemBag [0] )    
    local Item_otheritem = GetChaItem ( role , 2 , ItemBag [1] )    
    local  ItemType_mainitem = GetItemType ( Item_mainitem )
    local  ItemType_otheritem = GetItemType ( Item_otheritem )
        local ItemID_mainitem = GetItemID ( Item_mainitem )
        local ItemID_otheritem = GetItemID ( Item_otheritem )
    local Item_mainitem_Lv =  GetItemLv ( Item_mainitem )
    local Item_otheritem_Lv =  GetItemLv ( Item_otheritem )
    local Num = GetItemForgeParam ( Item_mainitem , 1 )
    Num = TansferNum ( Num )
    local lg_Num=Num
    local Item_Stone = {}
    local Item_StoneLv = {}
    local Item_StoneID = {}
    Item_Stone[0] = GetNum_Part2 ( Num )
    Item_Stone[1] = GetNum_Part4 ( Num )
    Item_Stone[2] = GetNum_Part6 ( Num )
    Item_StoneLv[0] = GetNum_Part3 ( Num )
    Item_StoneLv[1] = GetNum_Part5 ( Num )
    Item_StoneLv[2] = GetNum_Part7 ( Num )
    Item_StoneID[0] = StoneTpye_ID[Item_Stone[0]]
    Item_StoneID[1] = StoneTpye_ID[Item_Stone[1]]
    Item_StoneID[2] = StoneTpye_ID[Item_Stone[2]]
    local r1 = 0
    local r2 = 0
    local Item_Lv = 0
    local item_tureID=0    
    if Item_StoneID[0]~=0 then
        item_tureID = Item_StoneID[0]
        Item_Lv = Item_StoneLv[0]
        Item_StoneLv[0] = Item_StoneLv[0]-1
        if Item_StoneLv[0]==0 then
            Item_Stone[0] = 0
        end
    elseif Item_StoneID[0]==0 and Item_StoneID[1]~=0 then
        item_tureID = Item_StoneID[1]
        Item_Lv = Item_StoneLv[1]
        Item_StoneLv[1] = Item_StoneLv[1]-1
        if Item_StoneLv[1]==0 then
            Item_Stone[1] = 0
        end
    elseif Item_StoneID[0]==0 and Item_StoneID[1]==0  and Item_StoneID[2]~=0 then
        item_tureID = Item_StoneID[2]
        Item_Lv = Item_StoneLv[2]
        Item_StoneLv[2] = Item_StoneLv[2]-1
        if Item_StoneLv[2]==0 then
            Item_Stone[2] = 0
        end
    else 
        SystemNotice( role , "Gem Extraction tool ID error")
        return        
    end
    r1,r2 =MakeItem ( role , item_tureID , 1 , 2 )    
    local Item_ture = GetChaItem ( role , 2 , r2 ) 
    SetItemAttr ( Item_ture , ITEMATTR_VAL_BaoshiLV , Item_Lv )
    Num = SetNum_Part2 ( Num , Item_Stone[0] )
    Num = SetNum_Part3 ( Num , Item_StoneLv[0] )
    Num = SetNum_Part4 ( Num , Item_Stone[1] )
    Num = SetNum_Part5 ( Num , Item_StoneLv[1] )
    Num = SetNum_Part6 ( Num , Item_Stone[2] )
    Num = SetNum_Part7 ( Num , Item_StoneLv[2] )
    SetItemForgeParam ( Item_mainitem , 1 , Num )
    local cha_name = GetChaDefaultName ( role )
    LG( "star_tiqu_lg" ,cha_name, item_tureID , Item_Lv , lg_Num , Num )
    local R1 = 0
    R1 = RemoveChaItem ( role , ItemID_otheritem , 1 , 2 , ItemBag [1] , 2 , 1 , 0 )        
    if R1 == 0 then
        SystemNotice( role , "Переместить предмет не удалось ")
        return
    end
end

function can_manufacture_item (...)
    local ItemBagCount = arg[2]
    local Length = ItemBagCount+3
    if arg.n ~= Length then
        Notice("parameter value illegal"..arg.n)
        return 0
    end    
    local Check = 0
    Check = can_manufacture_item_main ( arg )
    if Check == 1 then        
        return 1
    else
        return 0
    end
end

 

Share this post


Link to post
Share on other sites

Повтори такое же с гемом:
r1,r2 =MakeItem ( role , item_tureID , 1 , 2 )    
local Item_ture = GetChaItem ( role , 2 , r2 ) 
SetItemAttr ( Item_ture , ITEMATTR_VAL_BaoshiLV , Item_Lv )
 

  • Like 1

Делай добро и бросай его в воду

Share this post


Link to post
Share on other sites
2 часа назад, NMS3RR сказал:

Повтори такое же с гемом:
r1,r2 =MakeItem ( role , item_tureID , 1 , 2 )    
local Item_ture = GetChaItem ( role , 2 , r2 ) 
SetItemAttr ( Item_ture , ITEMATTR_VAL_BaoshiLV , Item_Lv )
 

Можешь помочь, скинуть готовый код? Я что-то совсем запутался... 

Share this post


Link to post
Share on other sites
18 минут назад, Static сказал:

Можешь помочь, скинуть готовый код? Я что-то совсем запутался... 

тебе по факту тут 2 значения заменить и добавить после таких же строчек


Делай добро и бросай его в воду

Share this post


Link to post
Share on other sites

Считать lvl обычного гема и поместить в инвентарь такого же лвл реф. Ну и еще расширить проверку на свободный слот в инвентаре

Edited by BETEP/macs509

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
Sign in to follow this  

×
×
  • Create New...