Jump to content
kiberhack

[Код] Свиток форжа и бафа

Recommended Posts

[Код] Свиток форжа и бафа


Доброе время суток!
Решил разнообразить форум свитками "Переноса Форжа" и "Свиток Бафа".

- Что же делают эти свитки?

  • "Свиток Форжа" будет переносить форж из одной шмотки в другую. Не требую клещей, рефов и дырок.
  • "Свиток Бафа" будет бафать нашего персонажа, максимальным баффом (можно изменить).

 

1. "Свиток Форжа"



- Как же пользоваться?

1. Кладём, к примеру, 65 меч +7 в 3 слот инвентаря.
2. Кладём, к примеру, 75 меч +0(без форжа) в 4 слот инвентаря.
3. Клацаем 2 раза по свитку.
4. Получаем 75 +7 и 65 +0, мы перенесли форж.

Сам Код:


ItemInfo.txt

6351 Свиток форжа n1820 10130005 0 0 0 0 0 0 31 0 0 0 0 0 1 1 1 1 99 0 100 -1,-2,-2,-2 0 -1,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2 0 0 -1,-2,-2,-2,-2,-2,-2,-2,-2,-2 -1,-2,-2,-2,-2,-2,-2,-2,-2,-2 0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0 0,0 0,0 0 0 0 0 0 0 0 0 0 ItemUse_WaBao_HD45Box 0 0 0 0 0 0

ItemEffect.lua

-- Свиток перефоржа --


function ItemUse_WaBao_HD45Box ( role , Item )

local Item_One = GetChaItem ( role , 2 , 2  )
local NumOne = GetItemForgeParam ( Item_One , 1 )
local Item_Two = GetChaItem ( role , 2 , 3  )
local NumTwo = GetItemForgeParam ( Item_Two , 1 )
local ItemType_One = GetItemType ( Item_One )
local ItemType_Two = GetItemType ( Item_Two )
local star=0
if ItemType_One ~= 22 and ItemType_Two ~=27 then
star = 1
end
if ItemType_Two~=27  then
if ItemType_One ~= ItemType_Two then
SystemNotice( role ,"Неверный тип предмета!" )
UseItemFailed(role)
return 0
end

elseif ItemType_Two==27 and star == 1 then
SystemNotice( role ,"Неверный тип предмета!" )
UseItemFailed(role)
return 0
end

local i = 0
NumOne = TansferNum ( NumOne )
NumTwo = TansferNum ( NumTwo )
NumOne = SetNum_Part1 ( NumOne , 3 )
i = SetItemForgeParam ( Item_One , 1 , NumOne )

NumTwo = SetNum_Part1 ( NumTwo , 3 )
i = SetItemForgeParam ( Item_Two , 1 , NumTwo )

local ItemOne_Stone = {}
local ItemOne_StoneLv = {}
local ItemOne_StoneID = {}

ItemOne_Stone[0] = GetNum_Part2 ( NumOne )
ItemOne_Stone[1] = GetNum_Part4 ( NumOne )
ItemOne_Stone[2] = GetNum_Part6 ( NumOne )
ItemOne_StoneLv[0] = GetNum_Part3 ( NumOne )
ItemOne_StoneLv[1] = GetNum_Part5 ( NumOne )
ItemOne_StoneLv[2] = GetNum_Part7 ( NumOne )
ItemOne_StoneID[0] = StoneTpye_ID[ItemOne_Stone[0]]
ItemOne_StoneID[1] = StoneTpye_ID[ItemOne_Stone[1]]
ItemOne_StoneID[2] = StoneTpye_ID[ItemOne_Stone[2]]

NumTwo = SetNum_Part2 ( NumTwo , ItemOne_Stone[0] )
NumTwo = SetNum_Part3 ( NumTwo , ItemOne_StoneLv[0] )
NumTwo = SetNum_Part4 ( NumTwo , ItemOne_Stone[1] )
NumTwo = SetNum_Part5 ( NumTwo , ItemOne_StoneLv[1] )
NumTwo = SetNum_Part6 ( NumTwo , ItemOne_Stone[2] )
NumTwo = SetNum_Part7 ( NumTwo , ItemOne_StoneLv[2] )
SetItemForgeParam ( Item_Two , 1 , NumTwo )

NumOne = SetNum_Part2 ( NumOne , 0 )
NumOne = SetNum_Part3 ( NumOne , 0 )
NumOne = SetNum_Part4 ( NumOne , 0 )
NumOne = SetNum_Part5 ( NumOne , 0 )
NumOne = SetNum_Part6 ( NumOne , 0 )
NumOne = SetNum_Part7 ( NumOne , 0 )
SetItemForgeParam ( Item_One , 1 , NumOne )

SystemNotice( role ,"Перенос самоцветов успешно завершен!" )

end

 

2. "Свиток Баффа"


- Смысл этого?
 

"Данный предмет используется для удобства игроков, теперь не нужно подходить постоянно к баферу, таскать за собой саппорта, теперь это все в прошлом."
- Думаю пригодится для фан.


- Как же пользоваться?

1. Клацаем 2 раза по свитку.
2. Получаем фулл баф 10 уровня.

Сам Код:

ItemInfo.txt

6360 Свиток Бафа n1480 10130001 0 0 0 0 0 0 31 0 0 0 0 0 1 1 1 1 99 0 99 -1,-2,-2,-2 0 -1,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2 0 0 -1,-2,-2,-2,-2,-2,-2,-2,-2,-2 -1,-2,-2,-2,-2,-2,-2,-2,-2,-2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0 0,0 0,0 0 0 0 0 0 0 0 0 0 ItemUse_Buff 0 0 0 0,0 0,0 0,0

 

ItemEffect.lua

-- Свиток на Баф --      

function ItemUse_Buff(role)

        local StateType = GetChaStateLv (role, STATE_XLZH)
        local StateType = GetChaStateLv (role, STATE_SHPF)
        local StateType = GetChaStateLv (role, STATE_MLCH)
        local StateType = GetChaStateLv (role, STATE_FZLZ)
        local StateType = GetChaStateLv (role, STATE_JSFB)
        local StateType = GetChaStateLv (role, STATE_TSHD)
        if StateType == 0 or 10   then
        AddState (role, role, STATE_XLZH, 10, 1800)
        AddState (role, role, STATE_SHPF, 10, 1800)
        AddState (role, role, STATE_MLCH, 10, 1800)
        AddState (role, role, STATE_FZLZ, 10, 1800)      
        AddState (role, role, STATE_JSFB, 10, 1800)
        AddState (role, role, STATE_TSHD, 10, 1800)      
        SystemNotice (role, "Вам предоставлены все бафы 10 уровня на 30 минут , приятного фарма! ")
else
        SystemNotice (role, "Sorry Please Wait For The Current Buff To wear Off Before Buffing again.")
        end
end

 

Код был взят с Go Piratia.

Edited by kiberhack
  • Like 2

Share this post


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

Свиток баффа можно докрутить что бы он писал что бафф уже наложен.

Так там есть "else" 

Share this post


Link to post
Share on other sites
20 hours ago, Dimasik said:

Знаю но оно не работает так не знаю почему

1) Переменная "StateType" все время перезаписывается, поэтому проверка уровней эффектов STATE_XLZHSTATE_SHPFSTATE_MLCHSTATE_FZLZ и STATE_JSFB не выполняется;

2) Условие  "if StateType == 0 or 10 then" всегда истинно, а "else" никогда не выполнится.

 

Можно придумать что-нибудь такое*:

-- Свиток бафа		
function ItemUse_Buff(role)

	-- Если игрок на воде, то получим дескриптор его персонажа
	role = TurnToCha(role)

	-- Получим уровни бафов
	local state_xlzh_lv = GetChaStateLv(role, STATE_XLZH)
	local state_shpf_lv = GetChaStateLv(role, STATE_SHPF)
	local state_mlch_lv = GetChaStateLv(role, STATE_MLCH)
	local state_fzlz_lv = GetChaStateLv(role, STATE_FZLZ)
	local state_jsfb_lv = GetChaStateLv(role, STATE_JSFB)
	local state_tshd_lv = GetChaStateLv(role, STATE_TSHD)
	
	-- Вычислим суммарный уровень всех бафов
	local level = state_xlzh_lv + state_shpf_lv + state_mlch_lv 
		+ state_fzlz_lv + state_jsfb_lv + state_tshd_lv
	
	-- В сумме уровень всех бафов не должен быть "60",
	--  иначе свиток уже используется
	if (level ~= 60) then
	
		-- Накладываем на персонажа бафы
        	AddState (role, role, STATE_XLZH, 10, 1800)
       	 	AddState (role, role, STATE_SHPF, 10, 1800)
        	AddState (role, role, STATE_MLCH, 10, 1800)
        	AddState (role, role, STATE_FZLZ, 10, 1800)      
        	AddState (role, role, STATE_JSFB, 10, 1800)
        	AddState (role, role, STATE_TSHD, 10, 1800)      
		
		-- Напишем сообщение что свиток сработал
        	SystemNotice(role, "Вам предоставлены все бафы 10 уровня на 30 минут, приятного фарма!")
		
	else
		
		-- Свиток уже используется!
        	SystemNotice (role, "Свиток бафов уже используется!")
		UseItemFailed(role)
		
	end
	
end

 

*Примечание: Скрипт не тестировался.

 

  • Like 1

Share this post


Link to post
Share on other sites

Я решил вот так но на фансервере где либо есть бафф в 10 либо его нету:

function ItemUse_Buff( role, Item )
        local StateType = GetChaStateLv (role, STATE_XLZH)
        local StateType = GetChaStateLv (role, STATE_SHPF)
        local StateType = GetChaStateLv (role, STATE_MLCH)
        local StateType = GetChaStateLv (role, STATE_FZLZ)
        local StateType = GetChaStateLv (role, STATE_JSFB)
        local StateType = GetChaStateLv (role, STATE_TSHD)
        if StateType == 0  then
        AddState (role, role, STATE_XLZH, 10, 1800)
        AddState (role, role, STATE_SHPF, 10, 1800)
        AddState (role, role, STATE_MLCH, 10, 1800)
        AddState (role, role, STATE_FZLZ, 10, 1800)      
        AddState (role, role, STATE_JSFB, 10, 1800)
        AddState (role, role, STATE_TSHD, 10, 1800)      
        SystemNotice (role, "\194\224\236 \239\240\229\228\238\241\242\224\226\235\229\237 \225\224\244 \237\224 30 \236\232\237\243\242, \240\224\231\226\235\229\234\224\233\242\229\241\252!")
else
        SystemNotice (role, "\211 \226\224\241 \243\230\229 \229\241\242\252 \225\224\244!")
    UseItemFailed ( role )
    return
        end
end

Share this post


Link to post
Share on other sites
В 07.02.2022 в 22:05, Graf сказал:

Так там есть "else" 

пожалуйста отпишите мне в лс, я не могу писать, по очень важному вопросу(нужно создать лаунчер)
https://vk.com/dikosoln

Share this post


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

Граф в лс пожалуйста нужна твоя помощь

Добрый вечер. К сожалению, не имею времени на личную помощь. Если имеются вопросы по теме топика, обращайтесь здесь. 

Edited by Graf

Share this post


Link to post
Share on other sites

были ли проблемы у кого со свитком переноса форжа?
у меня к примеру, визуально форж переносится, но одеваешь старую вещь, статы дает как с форжем, а новая вещь не дает статы, хотя пишется +27
как это исправить знает кто?
все брал из этого гайда.

Share this post


Link to post
Share on other sites

Привет, @Pr10ritet!

 

Попробуй взять код для свитка переноса форжа из этой темы (Функция ItemUse_ReforgeNote):

 

 

 

  • Thanks 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...