el_motoblock Posted November 3, 2012 Share Posted November 3, 2012 Cпс, круто. Но деньги не вычитаются Link to comment
Memory Posted November 6, 2012 Share Posted November 6, 2012 Помогите исправить код, заранее спасибо function vipinfernus(player) acc = getAccountName(getPlayerAccount(player)) if(isObjectInACLGroup("user."..acc,aclGetGroup("Admin"))) then txd = engineLoadTXD ( "infernus.txd" ) engineImportTXD ( txd, 411 ) dff = engineLoadDFF ( "infernus.dff", 411 ) engineReplaceModel ( dff, 411 ) end Link to comment
Flaker Posted November 6, 2012 Share Posted November 6, 2012 Помогите исправить код, заранее спасибо function vipinfernus(player) acc = getAccountName(getPlayerAccount(player)) if(isObjectInACLGroup("user."..acc,aclGetGroup("Admin"))) then txd = engineLoadTXD ( "infernus.txd" ) engineImportTXD ( txd, 411 ) dff = engineLoadDFF ( "infernus.dff", 411 ) engineReplaceModel ( dff, 411 ) end Его невозможно исправить, так как он логически неверен! А если ты имеешь ввиду синтаксис, то end забыл поставить! Но это тебе debugscript может подсказать! Link to comment
Kenix Posted November 6, 2012 Share Posted November 6, 2012 Помогите исправить код, заранее спасибо function vipinfernus(player) acc = getAccountName(getPlayerAccount(player)) if(isObjectInACLGroup("user."..acc,aclGetGroup("Admin"))) then txd = engineLoadTXD ( "infernus.txd" ) engineImportTXD ( txd, 411 ) dff = engineLoadDFF ( "infernus.dff", 411 ) engineReplaceModel ( dff, 411 ) end Вы не знаете Lua! Вам сюда. Так же вы не знаете, что код на сервере должен выполняться серверными функциями, но не как не клиентскими. Вы можете невооруженным глазом увидеть, что цвета функций в BB коде определяет где она может выполняться ( красный - на клиенте, оранжевый - на сервере, синий - на клиенте и на сервере ). Link to comment
Memory Posted November 7, 2012 Share Posted November 7, 2012 красный - на клиенте, оранжевый - на сервере, синий - на клиенте и на сервере О, спасибо, я дествительно этого не знал. Так насчёт скрипта, может надо использовать triggerClientEvent, я опять попробовал, но не работает. local root = getRootElement() function vip(player) acc = getAccountName(getPlayerAccount(player)) if(isObjectInACLGroup("user."..acc,aclGetGroup("Admin"))) then triggerClientEvent ( "oninfernus", getRootElement()) end end addEventHandler("onPlayerLogin", root, vip) function infernus() txd = engineLoadTXD ( "infernus.txd" ) engineImportTXD ( txd, 411 ) dff = engineLoadDFF ( "infernus.dff", 411 ) engineReplaceModel ( dff, 411 ) end addEvent( "oninfernus", true ) addEventHandler( "oninfernus", getRootElement(), infernus ) Link to comment
Flaker Posted November 7, 2012 Share Posted November 7, 2012 красный - на клиенте, оранжевый - на сервере, синий - на клиенте и на сервере О, спасибо, я дествительно этого не знал. Так насчёт скрипта, может надо использовать triggerClientEvent, я опять попробовал, но не работает. local root = getRootElement() function vip(player) acc = getAccountName(getPlayerAccount(player)) if(isObjectInACLGroup("user."..acc,aclGetGroup("Admin"))) then triggerClientEvent ( "oninfernus", getRootElement()) end end addEventHandler("onPlayerLogin", root, vip) function infernus() txd = engineLoadTXD ( "infernus.txd" ) engineImportTXD ( txd, 411 ) dff = engineLoadDFF ( "infernus.dff", 411 ) engineReplaceModel ( dff, 411 ) end addEvent( "oninfernus", true ) addEventHandler( "oninfernus", getRootElement(), infernus ) Во первых почитай это: https://wiki.multitheftauto.com/wiki/Debugging Во вторых если ты написал player, то это не значит что это игрок, это просто переменная! У эвента onPlayerLogin, игроком является source. function vip() acc = getAccountName(getPlayerAccount(source)) if(isObjectInACLGroup("user."..acc,aclGetGroup("Admin"))) then triggerClientEvent (source, "oninfernus", source) end end Короче почитай побольше о создании скриптов, прежде чем создавать их! https://wiki.multitheftauto.com/wiki/Scripting_Introduction https://wiki.multitheftauto.com/wiki/Introduction_to_Scripting_the_GUI Link to comment
H1TM4N Posted November 8, 2012 Share Posted November 8, 2012 есть функция запрещающая двигать игроку гуй окно? Link to comment
Vamp1r Posted November 9, 2012 Share Posted November 9, 2012 есть функция запрещающая двигать игроку гуй окно? https://wiki.multitheftauto.com/wiki/GuiWindowSetMovable Link to comment
H1TM4N Posted November 10, 2012 Share Posted November 10, 2012 статическое изображение созданое через гуй при старте сервера, перекрывает изображения создаваемые клиент рендером. Как сделать чтобы изображения клиентрендера были поверх статических? Link to comment
Kenix Posted November 10, 2012 Share Posted November 10, 2012 postGUI на истину ( true ) в аргументе dx функции. Link to comment
N1kS Posted November 11, 2012 Share Posted November 11, 2012 Здравствуйте, имеем простую функцию вывода текста из таблицы: local table = {"1", "2"} function _f100(thePlayer, cmd) for key, value in pairs(table) do outputChatBox(value, source) end end addCommandHandler("qqq", _f100) Каждое следующее значение выводиться с новой строчки. Вопрос - можно, чтобы числа 1 и 2 вывелись в 1 строке через пробел? Link to comment
Kenix Posted November 11, 2012 Share Posted November 11, 2012 local a = { '0', '1', 1, 2, 3 } function ShowValues( pPlayer ) outputChatBox( table.concat( a, ' ' ), pPlayer ) end addCommandHandler( 'show_v', ShowValues ) На заметку: table.concat работает тока с массивами. Link to comment
N1kS Posted November 11, 2012 Share Posted November 11, 2012 local a = { '0', '1', 1, 2, 3 } function ShowValues( pPlayer ) outputChatBox( table.concat( a, ' ' ), pPlayer ) end addCommandHandler( 'show_v', ShowValues ) На заметку: table.concat работает тока с массивами. Спасибо и еще - нужно добавлять имя игрока в массив, при коннекте. local table = {} function _f3() table.insert(table, getPlayerName(source)) end addEventHandler("onPlayerConnect", getRootElement(), _f3) Но почему то данная функция не работает. Link to comment
Kenix Posted November 11, 2012 Share Posted November 11, 2012 local a = {} function OnPlayerConnect( sPlayerNick ) table.insert( a, sPlayerNick ) end addEventHandler( 'onPlayerConnect', root, OnPlayerConnect ) table.insert(table, getPlayerName(source)) Это не будет работать т.к источник этого события - корень клиента. Link to comment
N1kS Posted November 11, 2012 Share Posted November 11, 2012 local a = {} function OnPlayerConnect( sPlayerNick ) table.insert( a, sPlayerNick ) end addEventHandler( 'onPlayerConnect', root, OnPlayerConnect ) table.insert(table, getPlayerName(source)) Это не будет работать т.к источник этого события - root. Спасибо, 1 вопрос - что такое sPlayerNick? Сокращения какие то? Link to comment
Kenix Posted November 11, 2012 Share Posted November 11, 2012 Это переменная. Смотрите аргументы этого события на вики. https://wiki.multitheftauto.com/wiki/OnPlayerConnect Link to comment
N1kS Posted November 12, 2012 Share Posted November 12, 2012 Собственно начал делать скрипт, который отображает всех админов онлайн, сделал команду для дебага, но она выводит не то, что нужно... local Moderators = {} local SuperModerators = {} local Admins = {} --логин function _f1() local acc = getAccountName(getPlayerAccount(source)) if(isObjectInACLGroup("user."..acc,aclGetGroup("Admin"))) then table.insert(Admins, getPlayerName(source)) elseif(isObjectInACLGroup("user."..acc,aclGetGroup("SuperModerator"))) then table.insert(SuperModerators, getPlayerName(source)) elseif(isObjectInACLGroup("user."..acc,aclGetGroup("Moderator"))) then table.insert(Moderators, getPlayerName(source)) end end addEventHandler("onPlayerLogin", root, _f1) --логаут function _f2() local acc = getAccountName(getPlayerAccount(source)) if(isObjectInACLGroup("user."..acc,aclGetGroup("Admin"))) then table.remove(Admins, getPlayerName(source)) elseif(isObjectInACLGroup("user."..acc,aclGetGroup("SuperModerator"))) then table.remove(SuperModerators, getPlayerName(source)) elseif(isObjectInACLGroup("user."..acc,aclGetGroup("Moderator"))) then table.remove(Moderators, getPlayerName(source)) end end addEventHandler("onPlayerLogout", root, _f2) function _f3() outputChatBox(table.concat(Admins, ", "), source) end addCommandHandler("qqq", _f3) Но после логаута не удаляет из таблицы. Как я понял - из таблицы удаляет только по номеру, но как задавать каждому залогиневшемуся номер в таблице? Помогите с этим, пожалуйста. Link to comment
Flaker Posted November 12, 2012 Share Posted November 12, 2012 https://wiki.multitheftauto.com/wiki/GetOnlineAdmins Link to comment
N1kS Posted November 12, 2012 Share Posted November 12, 2012 https://wiki.multitheftauto.com/wiki/GetOnlineAdmins Да все почти готово, мне бы только удалять из таблиц их и все. Все же вопрос остается актуальным. Link to comment
N1kS Posted November 14, 2012 Share Posted November 14, 2012 https://wiki.multitheftauto.com/wiki/GetOnlineAdmins Да все почти готово, мне бы только удалять из таблиц их и все. Все же вопрос остается актуальным. Никто не подскажет что ли? Link to comment
Flaker Posted November 14, 2012 Share Posted November 14, 2012 Возможно подсказали бы, если бы поняли, что ты хочешь вобще? Зечем тебе из таблиц удалять что то? Короче смысл такой: 1) При запуске скрипта получаешь онлайн админов сколько 2) Записываешь в переменную, и показываешь, где ты хочешь 3) При изменении игроков на сервере, перезаписываешь переменную... Вот вобщем то и все... Зачем ты с массивами заморачиваешься, я не понимаю( Link to comment
N1kS Posted November 14, 2012 Share Posted November 14, 2012 Возможно подсказали бы, если бы поняли, что ты хочешь вобще?Зечем тебе из таблиц удалять что то? При логине, если игрок админ, смодер или модер, в зависимости его ник добавляется в определенную таблицу. Он то добавляется, но talbe.remove только по номеру ячейки, так? Так вот как мне определенный ник удалять при логауте? Link to comment
Flaker Posted November 14, 2012 Share Posted November 14, 2012 Возможно подсказали бы, если бы поняли, что ты хочешь вобще?Зечем тебе из таблиц удалять что то? При логине, если игрок админ, смодер или модер, в зависимости его ник добавляется в определенную таблицу. Он то добавляется, но talbe.remove только по номеру ячейки, так? Так вот как мне определенный ник удалять при логауте? Конкретно в данном случае, если очень хочешь, то можешь использовать ассоциативный массив. То есть записываешь в таблицу не с помощью table.insert, а таким образом: admins[thePlayer] = true, где thePlayer является игроком (Именно игроком, а не его ником и тд!) Соответственно удалить из таблицы можешь так: admins[thePlayer] = nil 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