Jump to content

triggerClientEvent для одного человека через серверную часть


Recommended Posts

клиент

function greetingHandler ( message ) 
    outputChatBox ( "The server says: " .. message ) 
end 
addEvent( "onGreeting", true ) 
addEventHandler( "onGreeting", getRootElement(), greetingHandler ) 

сервре

function greetingCommandOne ( playerSource, commandName, playerName ) 
    if playerName then 
        local thePlayer = getPlayerFromName ( playerName ) 
        if thePlayer then 
            triggerClientEvent ( thePlayer, "onGreeting", getRootElement(), "Превед медвед!" ) 
        else 
            -- указано неправильное имя 
        end 
    else 
        -- не указано имя 
    end  
end 
addCommandHandler ( "greet_one", greetingCommandOne ) 

Куда и как прописать ник игрока который сможет выполнять данный запрос, подскажите плз

Link to comment

Если я правильно понял, ты хочешь, чтобы данную команду мог использовать только игрок с определенным ником? Если да, то получится у тебя вот так (на серверной стороне):

  
function greetingCommandOne ( playerSource, commandName, playerName ) 
    if playerName then 
        if getPlayerName(playerSource) ~= "Ололош" then 
            return outputChatBox("Ты не Ололош!", thePlayerSource) 
        end 
        local thePlayer = getPlayerFromName ( playerName ) 
        if thePlayer then 
            triggerClientEvent ( thePlayer, "onGreeting", getRootElement(), "Превед медвед!" ) 
        else 
            -- указано неправильное имя 
        end 
    else 
        -- не указано имя 
    end 
end 
addCommandHandler ( "greet_one", greetingCommandOne ) 
  

Link to comment

Сделал проще, если не ошибаюсь в твоём варианте нет смыслаа в строке с "Ты не Ололош" - т.к. ответ придёт челу с указанным ником, даже если комманду введёт другой. Хотя хз я не проверял. Спасибо за ответ, но я его не дождался и решил проблему сам:

function greetingCommandOne ( playerSource, commandName, playerName ) 
        local thePlayer = getPlayerFromName ( "НИК" ) 
        if thePlayer then 
             triggerClientEvent ( thePlayer, "onGreeting", getRootElement(), "Превед медвед!" ) 
        else 
        end 
end 
addCommandHandler ( "blabla", greetingCommandOne ) 

Link to comment

Твой вариант не совсем то, что ты хотел... Ты не проверяешь этот ли игрок ввел команду, ты проверяешь существует ли игрок с таким ником...

В варианте Vamp1r'а, есть проверка на валидность игрока...

Link to comment

Проверил ваш вариант, ничего не происходит при вводе команды.. Спасибо за помощь. Я не ясно наверное объяснил что хочу сделать, нужно было сделать что бы команда выполнялась только для одного человека. Возможно я сделал что-то неправильно, но главное что работает.

Link to comment
Проверил ваш вариант, ничего не происходит при вводе команды.. Спасибо за помощь. Я не ясно наверное объяснил что хочу сделать, нужно было сделать что бы команда выполнялась только для одного человека. Возможно я сделал что-то неправильно, но главное что работает.

:D

x_c4e9f6bc.jpg

Ну ладно, пусть работает)

А вобще вот посмотри:

-- SERVER 
local tPlayerHasAccess = { 
  --['PLAYER_NICK'] = true; 
    ['Vaca'] = true; 
    ['Lol'] = true; 
} 
  
function commandHandler( thePlayer, cmd, targetPlayerName ) 
    if ( targetPlayerName and targetPlayerName ~= "" ) then 
        local targetPlayerElem = getPlayerFromName( targetPlayerName ); 
        if ( tPlayerHasAccess[getPlayerName( thePlayer )] and isElement(targetPlayerElem) ) then 
            triggerClientEvent ( targetPlayerName, "clientCommandHandler", thePlayer, "Привет, Медведев!" ); 
        else 
            outputChatBox("Error: Игрока, с таким ником, не существует или вы не имеете доступа!", thePlayer, 255, 0, 0); 
        end 
    else 
        outputChatBox("Error: Игрока, с таким ником, не существует!", thePlayer, 255, 0, 0); 
    end 
end 
addCommandHandler ( "COMMAND_NAME", greetingCommand ) 
  
  
  
--CLIENT 
addEvent( "clientCommandHandler", true ) 
addEventHandler( "clientCommandHandler", root, 
    function (msg) 
        outputChatBox ( "The server says: "..msg ); 
    end 
) 

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