Jump to content

Общий мини "HELP ME" топик по скриптингу


Recommended Posts

Вот код.Ошибка:Не записывает меня в снайперы.(!)

[sERVER]

function SpawnSniper () 
local account = getPlayerAccount ( source ) 
giveWeapon(source,24, 210) 
giveWeapon(source,29,210) 
giveWeapon(source,34,90) 
setPedSkin(source, 287) 
setAccountData(account,"Class.dm",Sniper) 
end 
  
addEvent("SpawnSniper",true) 
addEventHandler("SpawnSniper",getRootElement(),SpawnSniper) 
  
addEventHandler( "onPlayerLogin",root, 
    function( thePreviousAccount, theCurrentAccount, autoLogin ) 
        local account = getPlayerAccount ( source ) 
        if not getAccountData( account,"Class.dm" )  then 
            setAccountData( account,"Class.dm", Unknown ) 
            setAccountData( account,"Class.dm", Unknown) 
        end 
        setElementData( source,"Class",getAccountData( account,"Class.dm" )  ) 
    end 
 ) 

Клиент

addEventHandler ("onClientGUIClick", Sniper, --на нажатие кнопки  :DD 
  
function  ( ) 
  
  
    triggerServerEvent("SpawnSniper",getLocalPlayer()) 
    showCursor(false) 
    outputChatBox("Ты заспавнился Снайпером!!!", 0, 255, 255) 
    guiSetInputEnabled(false) 
  
    guiSetVisible(Classes, false) 
  
     
  
end, false ) 

Надпись: Ты заспавнился Снайпером выводит,потом Я релогинюсь,выбираю Снайпера,а в Scoreboard nil

Ячейку Я добавил(В Scoreboard)

Link to comment
setAccountData(account,"Class.dm",Sniper) 

Sniper это переменная или все таки текст? Подозреваю что забыл кавычки написать и естественно получаешь на выходе nil .

Link to comment
setAccountData(account,"Class.dm",Sniper) 

Sniper это переменная или все таки текст? Подозреваю что забыл кавычки написать и естественно получаешь на выходе nil .

Это всё таки текст.)

Спасибо)

Добавлено

Как сделать так,чтобы эта проверка выполнялась каждые 30 секунд или что-то в этом роде.На таймер ругается.

    function lolz ( ) 
        local account = getPlayerAccount ( source ) 
        if not getAccountData( account,"Class.dm" )  then 
            setAccountData( account,"Class.dm", "Unknown" ) 
        end 
        setElementData( source,"Class",getAccountData( account,"Class.dm" )  ) 
    end 
addEventHandler("onPlayerSpawn",getRootElement(), lolz) 
  
  

setTimer(lolz,1000,0) 

(После того как добавил таймер ругается на : "setAccountData","getPlayerAccount" и "getAccountData".)

Link to comment
  • Scripting Moderators
function lolz ( ) 
    for index, player in ipairs ( getElementsByType ( "player" ) ) do 
        local account = getPlayerAccount ( player ) 
        if not getAccountData ( account, "Class.dm" ) then 
            setAccountData ( account, "Class.dm", "Unknown" ) 
        end 
        setElementData ( player, "Class", getAccountData ( account, "Class.dm" ) ) 
    end 
end 
setTimer ( lolz, 1000, 0 ) 

Link to comment

Flaker

Вроде бы как да, так же есть экспорт фунции

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

Link to comment
Flaker

Вроде бы как да, так же есть экспорт фунции

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

Это не быдло код.Чувак.Это проверка на классы.Так как класс меняется при каждом спавне - надо сделать так,чтобы в ТАБе(В статистике) выводили его класс.А так как он работает onPlayerSpawn,то он будет ВСЕГДА показывать СТАРЫЙ класс.Ок?

Слоупок получается :mrgreen:

Link to comment

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

MacTrekkie, onPlayerSpawn выполняется каждый раз как игрок спавниться, соответственно, Account Data будет меняться каждый раз...

Link to comment
TwiX, в любом случае лучше использовать локальные) Хотя бы в силу их лучшего быстродействия :D

MacTrekkie, onPlayerSpawn выполняется каждый раз как игрок спавниться, соответственно, Account Data будет меняться каждый раз...

Аккаунт дата меняется каждый раз при Спавне,ГУИ высвечивается тоже при спавне,соответственно,мы выбираем свой класс ,а в табе имеем старый.Т.к ГУИ появилось ПОСЛЕ проверки.

Хорошо?

Link to comment
TwiX, в любом случае лучше использовать локальные) Хотя бы в силу их лучшего быстродействия :D

MacTrekkie, onPlayerSpawn выполняется каждый раз как игрок спавниться, соответственно, Account Data будет меняться каждый раз...

Аккаунт дата меняется каждый раз при Спавне,ГУИ высвечивается тоже при спавне,соответственно,мы выбираем свой класс ,а в табе имеем старый.Т.к ГУИ появилось ПОСЛЕ проверки.

Хорошо?

добавь в onPlayerSpawn , елемент дату на проверку (для таба), если данные изменились, меняй елемент дату (т.е езменится и таб)

exports.scoreboard:addScoreboardColumn("Class",gRoot,1,0.08) 
  
function lolz ( ) 
    local account = getPlayerAccount ( source ) 
    if not getAccountData( account,"Class.dm" )  then 
        setAccountData( account,"Class.dm", "Unknown" ) 
        setElementData( source,"Class","Unknown" ) 
    else 
        setElementData( source,"Class",getAccountData( account,"Class.dm" )  ) 
    end 
end 
addEventHandler("onPlayerSpawn",getRootElement(), lolz) 
  
  
  

Link to comment

MacTrekkie, никогда не именуй переменные таким образом: lolz, blablabla, ... В названии переменный должен быть смысл.

P.S Я чисто для справки, ибо тебе же легче будет в будущем.

Link to comment

Это же было для теста.Мы вообще щас это не юзаем)

Мы другое решение нашли)

Добавлено

Ребят,смотрите.

function addACLGroupObject ( thePlayer, commandName, groupName, objectName ) 
    local account = getPlayerAccount( thePlayer) 
    ourGroup = aclGetGroup ( groupName ) 

- Это отрывок из кода.Дальше он создаёт ACL и меняет accountData того чувака,который создал на Leader.

    setAccountData ( account, [b][i][u]"gang.ourGroup"[/u][/i][/b], Leader ) 

(ourGroup - группа которую мы создали,собсна,можно ли так пользоваться ЭТИМ?)

И,собсна вот так?

function InvitePlayerToGang ( thePlayer, groupName, objectName, ourGroup) 
local account = getPlayerAccount( thePlayer) 
local gangLeader = getAccountData ( account, "gang.ourGroup" ) 
if ( gangLeader == Leader ) then 
  
  
end 
end 

Link to comment
зачем тебе в акк записываить? если он уже берёт асл (если он вообще есть)

Смотри,это же система групп.Как банд,только групп.:D

Ну,короче,смотри,тут делится на 2 ранга (Пока что)

Member.

Leader.И когда чувак создаёт банду его записывает в Лидеры этой самой банды.Понимаешь?

И потом,когда он приглашает идёт проверка,лидер ли он этой группы или нет,и идёт проверка у того,кого он пригласил(member),если он уже в группе ACL(Кроме Everyone) - то лидеру пишет,мол так и так.Так вот вопрос.Как сделать проверку такую?

Дошло вроде.Получаем пользователя этой ACL Группы и проверяем,лидер ли он или нет.

Только как.Буду думать)

:shock:

Link to comment
зачем тебе в акк записываить? если он уже берёт асл (если он вообще есть)

Смотри,это же система групп.Как банд,только групп.:D

Ну,короче,смотри,тут делится на 2 ранга (Пока что)

Member.

Leader.И когда чувак создаёт банду его записывает в Лидеры этой самой банды.Понимаешь?

И потом,когда он приглашает идёт проверка,лидер ли он этой группы или нет,и идёт проверка у того,кого он пригласил(member),если он уже в группе ACL(Кроме Everyone) - то лидеру пишет,мол так и так.Так вот вопрос.Как сделать проверку такую?

Дошло вроде.Получаем пользователя этой ACL Группы и проверяем,лидер ли он или нет.

Только как.Буду думать)

:shock:

сделай функцию на определению лидера, там ранки и всё, запиши игрокам в аккаунт, потом

ourGroup = aclGetGroup ( groupName ) 

если у него группа есть, и он лидер или мембер в этой группе, то... тут чё то уже делай с ним

Link to comment

Возможно ли как-то скрыть отображение некоторых команд в табе?(Как бы они есть,но их нет :D)

Т.к Я думаю,легче будет запилить именно так.Там тебе сразу тим чат и всё другое:D.

Вопрос выше,TwiX,жду ответа.

Link to comment
Научишь меня так шутить?
Возможно ли как-то скрыть отображение некоторых команд в табе?(Как бы они есть,но их нет :D)

Научись сначала вопросы задавать

Я ничего не понял.

В этот раз не один ты

Link to comment
Научишь меня так шутить?
Возможно ли как-то скрыть отображение некоторых команд в табе?(Как бы они есть,но их нет :D)

Научись сначала вопросы задавать

Я ничего не понял.

В этот раз не один ты

Я вроде ясно сказал,не?

Возможно ли как-то скрыть команды в ТАБе?

Смотрите,Русское сообщество зашевелилось (:

Edited by Guest
Link to comment

Ты видимо ещё и читать не умеешь, 2 человека тебе дали понять что ни черта не ясно!

P.S. MacTrekkie, я смотрю ты у нас тут форумный тролль, который тем самым выражает свою любовь к MX_Master`у (только ему скорее всего на тебя пофиг).

P.S.S. Ты уже начинаешь под него косить

Смотрите,Русское сообщество зашевелилось (:
Link to comment
Ты видимо ещё и читать не умеешь, 2 человека тебе дали понять что ни черта не ясно!

P.S. MacTrekkie, я смотрю ты у нас тут форумный тролль, который тем самым выражает свою любовь к MX_Master`у (только ему скорее всего на тебя пофиг).

P.S.S. Ты уже начинаешь под него косить

Смотрите,Русское сообщество зашевелилось (:

может это он и есть :o

MacTrekkie вроде бы никак нельзя, если только удалить тим, потом его опять создавать, удалять, это будет бред

--edit

зачем тебе вообще удалять команду?

создал тим, получил его елемент дату, сделал на этом тим чат.. (можно скрыть тим если в нём на сервере никого нет (с помощью

destroyElement(team) 

))

Edited by Guest
Link to comment
Ты видимо ещё и читать не умеешь, 2 человека тебе дали понять что ни черта не ясно!

P.S. MacTrekkie, я смотрю ты у нас тут форумный тролль, который тем самым выражает свою любовь к MX_Master`у (только ему скорее всего на тебя пофиг).

P.S.S. Ты уже начинаешь под него косить

Смотрите,Русское сообщество зашевелилось (:

Чем же Я на него кошу.Объясните мне,сударь.

Повторю свой вопрос.Как можно скрыть отображение команд в Scoreboard.Вот,мы создали.

createTeam 

.

Указали цвет и др.Как её убрать из ScoreBoard.

По сути - она есть,В админки пишет всё,но в ScoreBoard не отображается.

Link to comment
Ты видимо ещё и читать не умеешь, 2 человека тебе дали понять что ни черта не ясно!

P.S. MacTrekkie, я смотрю ты у нас тут форумный тролль, который тем самым выражает свою любовь к MX_Master`у (только ему скорее всего на тебя пофиг).

P.S.S. Ты уже начинаешь под него косить

Смотрите,Русское сообщество зашевелилось (:

может это он и есть :o

MacTrekkie вроде бы никак нельзя, если только удалить тим, потом его опять создавать, удалять, это будет бред

Жаль.

Ну ладно :D

ЭТО ЧТО?

scoreboardForceTeamsVisible( bool enabled ) 

Нашёл.Спасибо.Сори за даблпост.

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