Jump to content

Не наносится урон и прочие ошибки (Dayz)


Recommended Posts

Привет всем!

Не наносится урон игрокам, выводит ошибки:

Spoiler

Кто может это исправить и хочет помочь, а так же подзаработать - пишите.

Я уже почти руки наложил на сервер..

2 месяца уже настраиваю мод и сервер в целом.

Spoiler

(icq 1184015 / skype drewsteka (без точки) / ЛС)

Спасибо за внимание!

 

Link to comment

@MyArena, вы бы приложили участки кода, вокруг 299,564 и 679 строк. Скорее всего не учтено получение false перед getElementData на 564, и как следствие урон не может быть посчитан на 679, и нечего выводить на 299.

  • Like 1
Link to comment
Just now, fabervox said:

@MyArena, вы бы приложили участки кода, вокруг 299,564 и 679 строк. Скорее всего не учтено получение false перед getElementData на 564, и как следствие урон не может быть посчитан на 679, и нечего выводить на 299.

Спасибо за ответ, вот код (299):

Spoiler



function refreshDebugMonitor()
if getElementData(getLocalPlayer(),"logedin") then
            local value = getElementData(getLocalPlayer(),getElementData(statsLabel["zombieskilled"],"identifikation"))
            guiSetText(statsLabel["zombieskilled"],"Убито зомби: "..value)
            
            local value = getElementData(getLocalPlayer(),getElementData(statsLabel["headshots"],"identifikation"))
            guiSetText(statsLabel["headshots"],"Выстрелов в голову: "..value)
            
            local value = getElementData(getLocalPlayer(),getElementData(statsLabel["banditskilled"],"identifikation"))
            guiSetText(statsLabel["banditskilled"],"Убито мародеров: "..value)
            
            local value = getElementData(getLocalPlayer(),getElementData(statsLabel["murders"],"identifikation"))
            guiSetText(statsLabel["murders"],"Мародерство: "..value)
            
            local value = getElementData(getLocalPlayer(),getElementData(statsLabel["blood"],"identifikation"))
299         guiSetText(statsLabel["blood"],"Кровь: "..value)
            
            local value = getElementData(getRootElement(),"zombiesalive") or 0
            local value2 = getElementData(getRootElement(),"zombiestotal") or 0
            guiSetText(statsLabel["zombies"],"Зомби (живы/всего): "..value.."/"..value2)
            
            local value = getElementData(getLocalPlayer(),getElementData(statsLabel["temperature"],"identifikation"))
            guiSetText(statsLabel["temperature"],"Температура: "..math.round(value,2).."°C")
            
            local value = getElementData(getLocalPlayer(),getElementData(statsLabel["humanity"],"identifikation"))
            guiSetText(statsLabel["humanity"],"Карма: "..math.round(value,2))
            
            guiSetText(statsLabel["name"],"Ник: "..getPlayerName(getLocalPlayer()))
end         
end


 

 

Код функции со строками 564 и 679:

Spoiler

function playerGetDamageDayZ ( attacker, weapon, bodypart, loss )
    cancelEvent()
    damage = 100
    headshot = false
    if weapon == 37 then
        return
    end
564    if getElementData(attacker,"zombie") then
        setElementData(getLocalPlayer(),"blood",(getElementData(getLocalPlayer(),"blood") or 12000)-math.random(400,900)) -- Damage output - Default: 400,900
        local number = math.random(1,7)
        if number == 4 then
            setElementData(getLocalPlayer(),"bleeding",getElementData(getLocalPlayer(),"bleeding") + math.floor(loss*10))
        end
    end
    if weapon == 49 then
        if loss > 30 then
            setElementData(getLocalPlayer(),"brokenbone",true)
            setControlState ("jump",true)
            setElementData(getLocalPlayer(),"blood",getElementData(getLocalPlayer(),"blood")-math.floor(loss*10))
        end
        setElementData(getLocalPlayer(),"blood",getElementData(getLocalPlayer(),"blood")-math.floor(loss*5))
    elseif weapon == 63 or weapon == 51 or weapon == 19 then
    setElementData(getLocalPlayer(),"blood",0)
        if getElementData(getLocalPlayer(),"blood") <= 0 then
            if not getElementData(getLocalPlayer(),"isDead") == true then
            setElementData(getLocalPlayer(),"isDead",true)
                triggerServerEvent("kilLDayZPlayer",getLocalPlayer(),attacker,headshot)
            end
        end
    elseif weapon and weapon > 1 and attacker and getElementType(attacker) == "player" then
    
        if getElementData(getLocalPlayer(),"InGreenZone") then
                return
        triggerServerEvent("kilLDayZPlayer",attacker)
        end
        
triggerServerEvent( 'server_OnPlayerDamage',
 localPlayer );
        local number = math.random(1,8)
        if number >= 6 or number <= 8 then
            setElementData(getLocalPlayer(),"bleeding",getElementData(getLocalPlayer(),"bleeding") + math.floor(loss*10))
        end
        local number = math.random(1,7)
        if number == 2 then
            setElementData(getLocalPlayer(),"pain",true)
        end
        damage = getWeaponDamage (weapon)
        if bodypart == 9 then
            damage = damage*12
            headshot = true
        end
        if bodypart == 7 or bodypart == 8 then
            setElementData(getLocalPlayer(),"brokenbone",true)
        end
        playRandomHitSound()
        setElementData(getLocalPlayer(),"blood",getElementData(getLocalPlayer(),"blood")-math.random(damage*0.75,damage*1.25))
        if not getElementData(getLocalPlayer(),"bandit") then
            setElementData(attacker,"humanity",getElementData(attacker,"humanity")-math.random(40,200))
            if getElementData(attacker,"humanity") < 0 then
                setElementData(attacker,"bandit",true)
            end
        else
            setElementData(attacker,"humanity",getElementData(attacker,"humanity")+math.random(40,200))
            if getElementData(attacker,"humanity") > 5000 then
                setElementData(attacker,"humanity",5000)
            end
            if getElementData(attacker,"humanity") > 2000 then
                setElementData(attacker,"bandit",false)
            end
        end 
        
                    if weapon == 2 then
        weapName = "с помощью Лома"
        elseif weapon == 4 then
        weapName = "с помощью Охотничий нож"
        elseif weapon == 5 then
        weapName = "с помощью Бейсбольной Биты"
        elseif weapon == 6 then
        weapName = "с помощью Мачете"
        elseif weapon == 8 then
        weapName = "с помощью Топора"
        elseif weapon == 16 then
        weapName = "с помощью Гранаты"
        elseif weapon == 22 then
        weapName = "с помощью Glock-17"
        elseif weapon == 23 then
        weapName = "с помощью M9 SD"
        elseif weapon == 25 then
        weapName = "с помощью M11-87"
        elseif weapon == 24 then
        weapName = "с помощью Revolver"
        elseif weapon == 26 then
        weapName = "с помощью Обреза"
        elseif weapon == 28 then
        weapName = "с помощью PDW"
        elseif weapon == 27 then
        weapName = "с помощью M1014"
        elseif weapon == 29 then
        weapName = "с помощью АКС-74У"
        elseif weapon == 30 then
        weapName = "с помощью AКС-74"
        elseif weapon == 31 then
        weapName = "с помощью M4A1 M203 RCO"
        elseif weapon == 32 then 
        weapName = "с помощью TEC-9"
        elseif weapon == 33 then
        weapName = "с помощью M14 EP1"
        elseif weapon == 34 then
        weapName = "с помощью AS-50"
        elseif weapon then 
        weapName=false
        end
        
        if getElementData(getLocalPlayer(),"blood") <= 0 then
            if not getElementData(getLocalPlayer(),"isDead")  then
            if bodypart==9 then
            end
                triggerServerEvent("kilLDayZPlayer",getLocalPlayer(),attacker,headshot,weapName)
                setElementData(getLocalPlayer(),"isDead",true)
            end
        end
    elseif weapon == 54 or weapon == 63 or weapon == 49 or weapon == 51 then
679         setElementData(getLocalPlayer(),"blood",getElementData(getLocalPlayer(),"blood")-math.random(100,1000))
        local number = math.random(1,5)
        if loss > 30 then
            setElementData(getLocalPlayer(),"brokenbone",true)
            setControlState ("jump",true)
        end
        if loss >= 100 then
            setElementData(getLocalPlayer(),"blood",49)
            setElementData(getLocalPlayer(),"bleeding",50)
        end
        local number = math.random(1,11)
        if number == 3 then
            setElementData(getLocalPlayer(),"pain",true)
        end
        if getElementData(getLocalPlayer(),"blood") <= 0 then
            if not getElementData(getLocalPlayer(),"isDead") == true then
        
            
                triggerServerEvent("kilLDayZPlayer",getLocalPlayer(),attacker,headshot,weapName)
                setElementData(getLocalPlayer(),"isDead",true)
            end
        end
    end
end
addEventHandler ( "onClientPlayerDamage", getLocalPlayer (), playerGetDamageDayZ )

 

Строки отмечены.

Link to comment

Ну я ж не знаю что там должно быть.

По идее если с value все в порядке то и выводится будет только оно.

А вот если увидишь rusty vagina, значит где-то еще в коде у тебя сидит vagina.

  • Like 2
Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...