Static 1 Report post Posted March 6, 2018 Всем привет, интересует такая тема, как можно сделать, чтобы когда гем вытаскиваешь, он с рефом вытаскивался? Кто шарит и сможет помочь? Код в 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
WVWMK 121 Report post Posted March 6, 2018 Повтори такое же с гемом: r1,r2 =MakeItem ( role , item_tureID , 1 , 2 ) local Item_ture = GetChaItem ( role , 2 , r2 ) SetItemAttr ( Item_ture , ITEMATTR_VAL_BaoshiLV , Item_Lv ) 1 Делай добро и бросай его в воду Share this post Link to post Share on other sites
Static 1 Report post Posted March 6, 2018 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
WVWMK 121 Report post Posted March 6, 2018 18 минут назад, Static сказал: Можешь помочь, скинуть готовый код? Я что-то совсем запутался... тебе по факту тут 2 значения заменить и добавить после таких же строчек Делай добро и бросай его в воду Share this post Link to post Share on other sites
BETEP/macs509 87 Report post Posted March 7, 2018 (edited) Считать lvl обычного гема и поместить в инвентарь такого же лвл реф. Ну и еще расширить проверку на свободный слот в инвентаре Edited March 7, 2018 by BETEP/macs509 Share this post Link to post Share on other sites
Graf 210 Report post Posted March 7, 2018 Тему можно закрывать. 1 Share this post Link to post Share on other sites
Static 1 Report post Posted March 7, 2018 Всем спасибо, разобрался. Тема закрыта. Share this post Link to post Share on other sites