Jump to content
RedMAN

Запрет на вставку самоцвета

Recommended Posts

Здравствуйте, интересует такая тема - можно ли создать запрет для определенного самоцвета в определенную вещь?

Пример: Самоцвет Ярости можно вставить в меч 55,65,75 лвл, но в 85,95 его уже вставить нельзя.

Точнее интересует реверсия этого примера - нужно чтобы самоцвет +8 нельзя было вставить в снаряжение ниже 75ур (типа такого)

Это возможно? Пытался вспомнить, кажется такое было со сломанными самоцветами на офе, их нельзя было вставить в шмотки выше 55 уровня, но могу ошибаться. По крайней мере в сборке, приближенной к офу, отыскал только строки запрещающие комбинировать самоцвет выше 3 уровня.

Прошу помощи, спасибо:)

Edited by RedMAN

Share this post


Link to post
Share on other sites

в forge.lua очень легко делает в функции там где вставка. Там уже есть проверки слотов формы, просто свои условия дописать и всё

  • Like 1

Share this post


Link to post
Share on other sites
8 часов назад, BETEP/macs509 сказал:

в forge.lua очень легко делает в функции там где вставка. Там уже есть проверки слотов формы, просто свои условия дописать и всё

Что-то никак не могу допереть, как передать уровень предмета,который собираемся форжить. Подскажи поподробнее пожалуйста

function can_forge_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_Jinglian = ItemBagCount [0]
	local ItemBag_Jinglian = ItemBag [0]
	local ItemNum_Jinglian = ItemCount [0]
	local Item_Jinglian = GetChaItem ( role , 2 , ItemBag_Jinglian )
	local Check = 0

	if ItemBagCount_Jinglian ~= 1 then
		SystemNotice( role , "\202\238\226\234\224 \239\240\229\228\236\229\242\224 \241\226\255\231\224\237\224\255 \241 \239\235\224\226\235\229\237\232\229\236 \237\238\226\238\227\238 \241\235\238\242\224 \237\229\231\224\234\238\237\224")
		--SystemNotice( role , "Ковка предмета связаная с плавлением нового слота незаконна")
		return 0
	end
	
	if ItemNum_Jinglian ~= 1 then
		SystemNotice( role , "\202\238\235\232\247\229\241\242\226\238 \234\243\254\249\232\245\241\255 \239\240\229\228\236\229\242\238\226 \237\229\231\224\234\238\237\238")
		--SystemNotice( role , "Количество кующихся предметов незаконно")
		return 0
	end

	Check = CheckItem_CanJinglian ( Item_Jinglian )

	if Check == 0 then
		SystemNotice( role ,"\205\229\226\238\231\236\238\230\237\238 \242\238\247\232\242\252 \239\240\229\228\236\229\242")
		--SystemNotice( role ,"Невозможно точить предмет")
		return 0
	end
	

	
	if ItemCount [1] ~= 1 or ItemCount [2] ~= 1 or ItemBagCount [1] ~= 1 or ItemBagCount [2] ~= 1 then
		SystemNotice ( role ,"\205\229\231\224\234\238\237\237\238\229 \234\238\235\232\247\229\241\242\226\238 \241\224\236\238\246\226\229\242\238\226")
		--SystemNotice ( role ,"Незаконное количество самоцветов")
		return 0
	end

	local Item_Stone1 = GetChaItem ( role , 2 , ItemBag [1] )
	local Item_Stone2 = GetChaItem ( role , 2 , ItemBag [2] )

	local Check_Hole = 0

	Check_Hole = CheckItem_HaveHole ( Item_Jinglian , Item_Stone1 , Item_Stone2)

	if Check_Hole == 0 then
		SystemNotice( role ,"\205\229\228\238\241\242\224\242\238\247\237\238 \241\235\238\242\238\226 \226 \239\240\229\228\236\229\242\229" )
		--SystemNotice( role ,"Недостаточно слотов в предмете" )
		return 0
	end
	

	local Check_Stone = 0

	Check_Stone = Check_StoneLv ( Item_Jinglian , Item_Stone1 , Item_Stone2 )

	if Check_Stone == 0 then
		SystemNotice ( role , "\209\224\236\238\246\226\229\242 \232\235\232 \243\240\238\226\229\237\252 \241\224\236\238\246\226\229\242\224 \237\229 \241\238\238\242\226\229\242\241\242\226\243\229\242" )
		--SystemNotice ( role , "Самоцвет или уровень самоцвета не соответствует" )
		return 0
	end

	local Check_StoneItem = 0

	Check_StoneItem = Check_StoneItemType ( Item_Jinglian , Item_Stone1 , Item_Stone2 )

	if Check_StoneItem == 0 then
		SystemNotice ( role , "\210\232\239 \209\224\236\238\246\226\229\242\224 \232 \242\232\239 \239\240\229\228\236\229\242\224 \237\229 \241\238\238\242\226\229\242\241\242\226\243\254\242" )
		--SystemNotice ( role , "Тип Самоцвета и тип предмета не соответствуют" )
		return 0
	end

	
	local Money_Need = getforge_money_main ( Table )
	local Money_Have = GetChaAttr ( role , ATTR_GD )
	if Money_Need > Money_Have then
		SystemNotice( role ,"\205\229\228\238\241\242\224\242\238\247\237\238 \231\238\235\238\242\224. \209\238\247\229\242\224\237\232\229 \237\229\226\238\231\236\238\230\237\238.")
		--SystemNotice( role ,"Недостаточно золота. Сочетание невозможно.")
		return 0
	end

	
--SystemNotice(role ,"determination completed ")
	return 1
end

Сам не справлюсь

Share this post


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

 

Смотри у тебя есть функция получения предмета :  local Item_Jinglian = GetChaItem ( role , 2 , ItemBag_Jinglian )
ItemBag_Jinglian  - твой предмет.
Далее берем - local lvl_item= GetItemAttr ( ItemBag_Jinglian , ITEMATTR_LV) -- хз есть ли такое или нет, нужно пробовать. 
потом все понятно

  • Like 1

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

Share this post


Link to post
Share on other sites

Не помню как там в старых файлах было сделано, но можно если не найдешь проверку по лвл шмотки (а она должна вроде как быть), можно просто указать в какие id шмоток можно плавить, только нужно будет не забыть сделать проверку на шмоток в апе по аналогии с бд бонусом (когда id считывает самой шмотки и базовой шмотки в апе).

  • Like 1

Share this post


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

 

Такой нету, но есть такая:

 

local item_lv =  GetItemAttr(Item, ITEMATTR_VAL_LEVEL)

О госпади. ну наверное парень разобрался бы что такой нет, я в слепую пишу обычно это и не помню что есть, а чего нет.

  • Like 1

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

Share this post


Link to post
Share on other sites

Из темы про самоцветы на МД:

 

Цитата

а как сделать чтобы гемы ковались в вещи не выше 55 лвл?

Файл forge.lua (.\resource\script\calculate). В функцию can_forge_item_main()
После (сообщение может отличаться)

    if Check_StoneItem == 0 then
        SystemNotice ( role , "Этот самоцвет нельзя вставить в этот тип оружия." )
        return 0
    end

добавить

    local GemID = GetItemID(Item_Stone1)
    local Itemlvl = GetItemLv(Item_Jinglian)
        if GemID >= 6817 and GemID <= 6831 then
            if Itemlvl > 55 then
                SystemNotice(role, "Этот самоцвет можно вковать в оружие для персонажей не выше 55 уровня.")
                return 0
            end
        end

 

Чтобы самоцветы можно было соединять только до 3-го уровня, в файл forge.lua в функцию can_unite_item_main() после

    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 ,"This is not a combining scroll")
        return 0
    end
 
    if ItemType2 ~= 49 or ItemType3 ~= 49 then
        if ItemType2 ~= 50 or ItemType3 ~= 50 then
            SystemNotice( role , "Это не самоцвет!")
            return 0
        end
    end

Добавить:

 if ItemID2 == 6718 or ItemID2 == 6717 then
        if Item2_Lv>=2 or Item3_Lv >= 2 then
            SystemNotice ( role , "Максимальный уровень этого самоцвета 2.")
            return 0
        end
    end
    if ItemID2 >= 6817 and ItemID2 <= 6831 then
        if Item2_Lv>=3 or Item3_Lv >= 3 then
            SystemNotice ( role , "Максимальный уровень этого самоцвета 3.")
            return 0
        end
    end

 

  • Like 1

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...