NS1.1 Дроп снаряжения

  • Автор темы Автор темы CBAT
  • Дата начала Дата начала
Статус
В этой теме нельзя размещать новые ответы.

CBAT

Пользователь
Проверенный
Собственно, сделал я броню. Во избежание дюпов хочу запретить выкидывать броню из инвентаря, как это можно осуществить ?
 
Броня должна выкидываться только в том случае, если предмет не экипирован, так ведь?
Который именно дюп тебя гложет с броней?
 
Броня должна выкидываться только в том случае, если предмет не экипирован, так ведь?
Который именно дюп тебя гложет с броней?
Ну, насчет дюпа, когда броня снята, то характеристики не обнуляются, а я не знаю, как это пофиксить. По этому мне пришла гениальная идея : запретить выкидывать её из инвентаря (т.е, чтобы нельзя было выкинуть её из инвентаря и передать другому игроку)
 
Ну, насчет дюпа, когда броня снята, то характеристики не обнуляются, а я не знаю, как это пофиксить. По этому мне пришла гениальная идея : запретить выкидывать её из инвентаря (т.е, чтобы нельзя было выкинуть её из инвентаря и передать другому игроку)
Характеристика хранится в таблицах? Иль для них содержится определенное условие?
Если смогешь предоставить часть исходного кода именно самой таблицы/условия/etc, то, возможно, сможем и пофиксить без запрета на выбрасывание.
 
Характеристика хранится в таблицах? Иль для них содержится определенное условие?
Если смогешь предоставить часть исходного кода именно самой таблицы/условия/etc, то, возможно, сможем и пофиксить без запрета на выбрасывание.
Собственно, вопрос остался только по поводу возвращения стандартной модели игроку после снятия/дропа брони.

Функция надевания брони :
Код:
ITEM.functions.Equipid = {
    name = "Equip",
    tip = "equipTip",
    icon = "icon16/tick.png",
    onRun = function(item)
    local client = item.player
        client:EmitSound("npc/combine_soldier/gear2.wav", 80)
        client:SetModel("models/stalkertnb/bandit_cultist1.mdl")
        client:SetBodygroup( item.bodygroupId, item.bodygroupN )
        item:setData("equip", true)

        return false
    end,
    onCanRun = function(item)
        return (!IsValid(item.entity) and item:getData("equip") != true)
    end
}

функция снятия брони :
Код:
ITEM.functions.EquipidUn = {
    name = "Снять",
    tip = "equipTip",
    icon = "icon16/cross.png",
    onRun = function(item)
    local client = item.player
        client:EmitSound("npc/combine_soldier/gear1.wav", 80)
        client:SetBodygroup( item.bodygroupId, 0 )
        item:setData("equip", false)
       
        return false
    end,
    onCanRun = function(item)
        return (!IsValid(item.entity) and item:getData("equip") == true)
    end
}

хук дропа брони :
Код:
ITEM:hook("drop", function(item)
    if (item:getData("equip")) then
        item:setData("equip", nil)
            item.player:EmitSound("npc/combine_soldier/gear3.wav", 80)
            item.player:SetBodygroup( item.bodygroupId, 0 )
    end
end)
 
Возвращение старой модели можно сделать следующим образом:
Код:
item.player:SetModel(item.player:getChar():getModel())

Попросту накинь его как в хук дропа, так и в функцию снятия брони.
 
Возвращение старой модели можно сделать следующим образом:
Код:
item.player:SetModel(item.player:getChar():getModel())

Попросту накинь его как в хук дропа, так и в функцию снятия брони.
Огромное спасибо, ты мой спаситель :)
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху