Jump to content

Команда назначения лидера на фракцию.


Recommended Posts

Помогите добрые люди, суть в том что нужно переделать команду чтобы назначать лидера фракции не через ид, а через ник игрока. вот скрипт:

  
function setPlayerLeader ( source, cmd, ident, faction ) 
    local accName = getAccountName ( getPlayerAccount ( source ) ) 
    if isObjectInACLGroup ( "user." .. playerName, aclGetGroup ( "Admin" ) ) then 
        for id, player in ipairs ( getElementsByType ( "player" ) ) do 
            if ident == getElementData ( player, "playerid" ) then 
                setElementData ( player, "faction", tonumber(faction) ) 
                setElementData ( player, "rank", 5 ) 
                setElementModel ( player, factions[tonumber(faction)][16] ) 
            end  
        end 
    end 
end 
addCommandHandler ("makeleader", setPlayerLeader) 

Link to comment

Ну помоему в коде отражена попытка проверки нахождения аккаунта в ACL группе Admin... Попытка не удачная, на сколько я вижу...

Вобще у тебя слова с кодом не связаны...

Link to comment

я не в курсе кто писал, скорее всего тот кто делал весь мод. У меня просьба помочь сделать скрипт фракций или дать ссылочку на скрипт\ мод. Или-же напишите как заменить вместо ида на ник как указано в первом посте.

Link to comment
У меня просьба помочь сделать скрипт фракций или дать ссылочку на скрипт\ мод.

Тебе могут разве что помочь по каким-то нюансам твоего скрипта, если ты его решишь сам писать. В чужих системах с коммьюнити никто копаться не будет, лучше уж свяжись с автором. А вообще использовать, имхо, в своем моде чужой скрипт, да еще и фракций - это гиблое дело.

Link to comment

Вот я и прошу команду на то, чтобы вводить не ид, а ник для назначения, без разницы что с этим скриптом который я выложил, мне нужна помощь которую я описал в первом посту. Заранее спасибо.

Link to comment

Если я правильно понял, то вы хотите сделать что-то типо такого.

А вобще разобрались бы с некоторыми простыми функциями сами. В wiki они все есть.

function setPlayerLeader ( source, cmd, ident, faction ) 
    local accName = getAccountName ( getPlayerAccount ( source ) ) 
    local targetPlayer = getPlayerFromName ( ident ) 
    if isObjectInACLGroup ( "user."..accName, aclGetGroup ( "Admin" ) ) then 
    if ( targetPlayer ) then  
                setElementData ( targetPlayer, "faction", tonumber(faction) ) 
                setElementData ( targetPlayer, "rank", 5 ) 
                setElementModel ( targetPlayer, factions[tonumber(faction)][16] ) 
        outputChatBox( "#00ff00[успешно] #ffffff"..ident .. " #00ff00новый лидер", source, 255, 255, 255, true)  
         else  
                outputChatBox( ident .. " #ff0000не найден", source, 255, 255, 255, true) 
         end 
     else 
         outputChatBox( "У вас нет прав администратора.", source, 255, 255, 255, true) 
    end 
end 
addCommandHandler ("makeleader", setPlayerLeader) 

Link to comment

Благодарствую, все отлично пошло, буду знать данную команду. И вопросик еще. Можно-ли сделать так чтобы игрок с определенным ником мог заходить только в определенный промежуток времени?

Link to comment
Можно-ли сделать так чтобы игрок с определенным ником мог заходить только в определенный промежуток времени?

Да, можно. Создать файл/базу (или использовать имеющуюся), в которой бы хранился этот промежуток времени для определенного ника. И когда игрок входит на сервер, сравнивать информацию из файла/базы с текущим временем (getRealTime()).

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