Jump to content
Sign in to follow this  
sinn

проблема в выдаче лута за смерть моба

Recommended Posts

подскажите пожалуйста, где закралась ошибка

    local map_name = GetChaMapName ( atk )-- получаем карту
    if map_name_atk == "garner" or map_name == "magicsea" or map_name == "garner" or map_name == "darkblue" or map_name == "puzzleworld" or map_name == "puzzleworld2" or map_name == "lonetower" or map_name == "jialebi" or map_name == "winterland" or map_name == "heilong" or map_name == "eastgoaf" or map_name == "hell" then
    local lv_mob = Lv(dead) -- получаем лвл моба
        if        lv_mob > 1 and lv_mob<=60 then --если уровень моба с 1 по 10, то
            local rnd = math.random(1,1) 
                if rnd < 1 then 
                    GiveItem ( role , 0 , 8141  , 1 , 4 )
                elseif rnd > 1 and rnd < 2 then
                    GiveItem ( role , 0 , 8141  , 1 , 4 )
                end
        end
    -------
    end

 

заранее спасибо

Share this post


Link to post
Share on other sites

Привет, @sinn!

 

Условие никогда не выполнится:

    if rnd < 1 then 
         GiveItem ( role , 0 , 8141  , 1 , 4 )
    elseif rnd > 1 and rnd < 2 then
         GiveItem ( role , 0 , 8141  , 1 , 4 )
    end

Lua справочник:

Quote

-- с двумя аргументами m и n, возвращает псевдослучайное целое число из отрезка [m, n]

math.random([m [, n]])

Код

local rnd = math.random(1,1) 

всегда будет помещать в переменную rnd значение 1.

 

Условие "rnd > 1 and rnd < 2" вообще не имеет смысла, потому что в переменной rnd всегда находится целое число.


Share this post


Link to post
Share on other sites
43 minutes ago, sinn said:

Тоесть (1,2) и заработает?

У тебя два условия:

если значение переменной rnd меньше 1, то дать предмет с ID 8141.

если значение переменной rnd больше 1 и меньше 2, то дать предмет с ID 8141.

 

Если ты заменишь math.random(1,1) на math.random(1,2), то эти условия так же не будут выполняться, потому что ты будешь получать числа 1 и 2 в переменной rnd.

 

Можно сделать, например, так:

local rnd = math.random(1, 2)
if (rnd == 1) then
	-- с 50% вероятностью выдаем игроку предмет ID 8141
	GiveItem (role, 0, 8141, 1, 4)
end

 


Share this post


Link to post
Share on other sites

Мне бы шанс выдачи сделать 0,5%

Значит значение 2 можно увеличить до 200, тоесть чем больше разброс от 1 до 200 тем меньше шанс, так как rnd равное 1 и получается 1 к 200 что выпадет 1

local map_name = GetChaMapName ( atk )-- получаем карту
    if map_name_atk == "garner" or map_name == "magicsea" or map_name == "garner" or map_name == "darkblue" or map_name == "puzzleworld" or map_name == "puzzleworld2" or map_name == "lonetower" or map_name == "jialebi" or map_name == "winterland" or map_name == "heilong" or map_name == "eastgoaf" or map_name == "hell" then
    local lv_mob = Lv(dead) -- получаем лвл моба
        if        lv_mob > 1 and lv_mob<=60 then --если уровень моба с 1 по 10, то
            local rnd = math.random(1,200) 
                if (rnd == 1) then
                GiveItem ( role , 0 , 8141  , 1 , 4 )
                end
        end
    -------
    end

 

По идее теперь за убийство моба с 1 по 60 лвл есть шанс 1 к 200 что выпадет предмет 8141?

 

Ставлю в сервер, при поднятии уровня персонажа нет анимации и не переходя на персонажа не увидеть результат

Share this post


Link to post
Share on other sites

@sinn

 

Quote

По идее теперь за убийство моба с 1 по 60 лвл есть шанс 1 к 200 что выпадет предмет 8141?

Верно

Quote

Ставлю в сервер, при поднятии уровня персонажа нет анимации и не переходя на персонажа не увидеть результат

Проверь, что в консоли GameSever.exe нет ошибок


Share this post


Link to post
Share on other sites
13 часов назад, V3ct0r сказал:

@sinn

 

Верно

Проверь, что в консоли GameSever.exe нет ошибок

Вроде без ошибок запустились, появилась анимация при взятии лвл

Спасибо большое

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.

Sign in to follow this  

×
×
  • Create New...