Memory Posted April 8, 2013 Share Posted April 8, 2013 Здравствуйте, помогите, пожалуйста, сделать проверку предыдущего значения state при onPlayerWasted. Допустим, если предыдущие значение игрока было alive, то функция выполняется, а если другое, в моём случае training, то ничего не выполняется. Так вот как получить oldValue, мне только приходит в голову через trigger вызвать onClientElementDataChange. function onWasted() получаем oldValue if oldValue == "alive" then ... end end addEventHandler("onPlayerWasted",getRootElement(), onWasted) Link to comment
Kenix Posted April 8, 2013 Share Posted April 8, 2013 Я ничего не понял, что ты хочешь сделать в итоге? Link to comment
Memory Posted April 8, 2013 Author Share Posted April 8, 2013 Вообщем, речь идёт о DM respawn, при wasted игрок получает деньги, поинты и т.п. Игрок нажимает кнопку респавна, чтобы опять сыграть (его state уже становиться не alive или dead, а training), когда он опять проигрывает, он всё-равно получает деньги. Так вот, надо сделать проверку предыдущего значения state и если оно было alive, то игрок получает деньги, а если нет, то ничего не получает. Надеюсь, что теперь стало понятнее. Link to comment
Arimance Posted April 8, 2013 Share Posted April 8, 2013 local state = "alive" function onWasted() if state == "alive" then state = "dead" givePlayerMoney( source, 1000 ) else state = "training" givePlayerMoney( source, 100 ) outputChatBox( "Криворукий нуб", source ) end end addEventHandler( "onPlayerWasted", getRootElement(), onWasted ) Link to comment
Kenix Posted April 8, 2013 Share Posted April 8, 2013 Только в виде set/getElementData Link to comment
Memory Posted April 9, 2013 Author Share Posted April 9, 2013 Как я и ожидал, это не работает, так как onPlayerWasted значение игрока само по себе меняется на dead, а в нашей функции он проверяет жив ли он, а не значение, которые было перед dead. Я попробовал через trigger, но не работает, ошибок не выдаёт. client addEvent("onClientElementDataChange", true) addEventHandler("onClientElementDataChange", getLocalPlayer(), function(dataName, oldValue) if(getElementType(source) ~= "player" or dataName ~= "state")then return end local oldValue = getElementData(source, dataName) end end) server function onWasted() triggerClientEvent(source, "onClientElementDataChange", getRootElement(), oldValue) if oldValue == "alive" then givePlayerMoney( source, 1000 ) outputChatBox( "Работает", source ) else givePlayerMoney( source, 100 ) outputChatBox( "Криворукий нуб", source ) end end addEventHandler( "onPlayerWasted", getRootElement(), onWasted ) Link to comment
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now