N1kS Posted November 14, 2014 Share Posted November 14, 2014 1. Создаем педа на экране2. Вращаем педа 3. Пишем шейдер, который уменьшает размер элемента https://wiki.multitheftauto.com/wiki/Sh ... #Ped_morph (посмотреть и сделать на основе его, там используется уменьшение/увеличение частей всего тела, думаю можно поэкспериментировать) 4. Применяем шейдер к этому педу createPed setElementPosition setElementRotation getWorldFromScreenPosition dxCreateShader engineApplyShaderToWorldTexture И как же его потом запихнуть в гуи окно ? getScreenFromWorldPosition Link to comment
Elengar Posted November 14, 2014 Share Posted November 14, 2014 getScreenFromWorldPosition И как же этим сделать так, чтобы скин был выше(т.е. рисовался после) гуи окна ? Link to comment
Evolv Posted November 14, 2014 Share Posted November 14, 2014 Возникла проблема, клиент вызывает событие на сервере с помощью triggerServerEvent, как получить значение на клиенте, которое возвращает функция, прикрепленная к событию? Если через Elements, то элемент на клиенте не успевает синхронизироваться Link to comment
Kenix Posted November 14, 2014 Share Posted November 14, 2014 triggerServerEvent->triggerClientEvent->код Link to comment
Evolv Posted November 14, 2014 Share Posted November 14, 2014 С сервера вызывать ту функцию в которой происходил вызов серверного события? Если так, то я мало представляю подобную реализацию Link to comment
Elengar Posted November 14, 2014 Share Posted November 14, 2014 С сервера вызывать ту функцию в которой происходил вызов серверного события? Если так, то я мало представляю подобную реализацию Ну, можно и в которой происходил вызов, но это только лишние проверки на то, кто ее вызвал и не понятные ветвления. Лучше всего другую функцию. Т.е. разбить одну функцию на две: одна до ивента, другая после. Вот так, которая после, и должна вызываться ивентом. Link to comment
Evolv Posted November 15, 2014 Share Posted November 15, 2014 С сервера вызывать ту функцию в которой происходил вызов серверного события? Если так, то я мало представляю подобную реализацию Ну, можно и в которой происходил вызов, но это только лишние проверки на то, кто ее вызвал и не понятные ветвления. Лучше всего другую функцию. Т.е. разбить одну функцию на две: одна до ивента, другая после. Вот так, которая после, и должна вызываться ивентом. Да, сделал именно так. Глупый вопрос был( Опять напасть на ньюфага. Подключаюсь к MySQL серверу db = mysql_connect("******", "****", "*****", "****") В консоль ошибка: "attempt to call global 'mysql_connect' (a nil value)" В чем проблема? Не понятно, на wiki написано что эта MySQL библиотека включена в МТА. Не поверил, решил найти библиотеку .dll - не нашел. В чем дело, ребят? UPD: Решено. Все-таки модуль не встроен в МТА, нашел на Google Code, подключил и все хорошо Link to comment
iAxel Posted November 15, 2014 Share Posted November 15, 2014 С сервера вызывать ту функцию в которой происходил вызов серверного события? Если так, то я мало представляю подобную реализацию Ну, можно и в которой происходил вызов, но это только лишние проверки на то, кто ее вызвал и не понятные ветвления. Лучше всего другую функцию. Т.е. разбить одну функцию на две: одна до ивента, другая после. Вот так, которая после, и должна вызываться ивентом. Да, сделал именно так. Глупый вопрос был( Опять напасть на ньюфага. Подключаюсь к MySQL серверу db = mysql_connect("******", "****", "*****", "****") В консоль ошибка: "attempt to call global 'mysql_connect' (a nil value)" В чем проблема? Не понятно, на wiki написано что эта MySQL библиотека включена в МТА. Не поверил, решил найти библиотеку .dll - не нашел. В чем дело, ребят? UPD: Решено. Все-таки модуль не встроен в МТА, нашел на Google Code, подключил и все хорошо dbConnect dbExec dbQuery dbPoll dbFree db = dbConnect("type", "dbname= ; host= ", username, password) Link to comment
Evolv Posted November 15, 2014 Share Posted November 15, 2014 Ну, можно и в которой происходил вызов, но это только лишние проверки на то, кто ее вызвал и не понятные ветвления. Лучше всего другую функцию. Т.е. разбить одну функцию на две: одна до ивента, другая после. Вот так, которая после, и должна вызываться ивентом. Да, сделал именно так. Глупый вопрос был( Опять напасть на ньюфага. Подключаюсь к MySQL серверу db = mysql_connect("******", "****", "*****", "****") В консоль ошибка: "attempt to call global 'mysql_connect' (a nil value)" В чем проблема? Не понятно, на wiki написано что эта MySQL библиотека включена в МТА. Не поверил, решил найти библиотеку .dll - не нашел. В чем дело, ребят? UPD: Решено. Все-таки модуль не встроен в МТА, нашел на Google Code, подключил и все хорошо dbConnect dbExec dbQuery dbPoll dbFree db = dbConnect("type", "dbname= ; host= ", username, password) Это я знаю, и даже пробовал. Но для меня этот метод неудобен. Использую тот, где mysql_connnect, mysql_query и т.п Link to comment
iAxel Posted November 15, 2014 Share Posted November 15, 2014 Ну, можно и в которой происходил вызов, но это только лишние проверки на то, кто ее вызвал и не понятные ветвления. Лучше всего другую функцию. Т.е. разбить одну функцию на две: одна до ивента, другая после. Вот так, которая после, и должна вызываться ивентом. Да, сделал именно так. Глупый вопрос был(Опять напасть на ньюфага. Подключаюсь к MySQL серверу db = mysql_connect("******", "****", "*****", "****") В консоль ошибка: "attempt to call global 'mysql_connect' (a nil value)" В чем проблема? Не понятно, на wiki написано что эта MySQL библиотека включена в МТА. Не поверил, решил найти библиотеку .dll - не нашел. В чем дело, ребят? UPD: Решено. Все-таки модуль не встроен в МТА, нашел на Google Code, подключил и все хорошо dbConnect dbExec dbQuery dbPoll dbFree db = dbConnect("type", "dbname= ; host= ", username, password) Это я знаю, и даже пробовал. Но для меня этот метод неудобен. Использую тот, где mysql_connnect, mysql_query и т.п Из сампа? Link to comment
Kernell Posted November 15, 2014 Share Posted November 15, 2014 Из сампа? Что вообще значит "из сампа"? Как они могут быть из сампа? Если ты думаешь, что названия функций сворованы оттуда, то ты сильно ошибаешься: http://php.net/manual/ru/function.mysql-connect.php Link to comment
Other Languages Moderators Disinterpreter Posted November 15, 2014 Other Languages Moderators Share Posted November 15, 2014 Из сампа? Что вообще значит "из сампа"? Как они могут быть из сампа? Если ты думаешь, что названия функций сворованы оттуда, то ты сильно ошибаешься: http://php.net/manual/ru/function.mysql-connect.php В сампе нет mysql из-под коробки. Link to comment
iAxel Posted November 15, 2014 Share Posted November 15, 2014 Я не про функции а про самого скриптера, он из сампа ?) Link to comment
Elengar Posted November 15, 2014 Share Posted November 15, 2014 Я не про функции а про самого скриптера, он из сампа ?) Evolv - да. Link to comment
Other Languages Moderators Disinterpreter Posted November 15, 2014 Other Languages Moderators Share Posted November 15, 2014 Самое интересное с модулем начнется уже на предпродакшене так сказать, когда на дебик не найдешь нужный libmysql. Link to comment
iAxel Posted November 15, 2014 Share Posted November 15, 2014 Я ничего не пропустил?)) local hostname = "127.0.0.1" local username = "root" local password = "" local database = "mta" local port = 3306 local connection = nil addEventHandler("onResourceStart", resourceRoot, function() connection = dbConnect("mysql", "dbname="..database..";host="..hostname..";port="..port, username, password) if (not connection) then outputServerLog("Error: MySQL connection is established!") else outputServerLog("Notice: MySQL connection is established!") end end ) addEventHandler("onResourceStop", resourceRoot, function() if (isElement(connection)) then connection:destroy() end end Link to comment
Elengar Posted November 16, 2014 Share Posted November 16, 2014 Я ничего не пропустил?)) local hostname = "127.0.0.1" local username = "root" local password = "" local database = "mta" local port = 3306 local connection = nil addEventHandler("onResourceStart", resourceRoot, function() connection = dbConnect("mysql", "dbname="..database..";host="..hostname..";port="..port, username, password) if (not connection) then outputServerLog("Error: MySQL connection is established!") else outputServerLog("Notice: MySQL connection is established!") end end ) addEventHandler("onResourceStop", resourceRoot, function() if (isElement(connection)) then connection:destroy() end end Вроде бы - нет. Есть какие-то проблемы ? Link to comment
iAxel Posted November 16, 2014 Share Posted November 16, 2014 Вроде бы - нет. Есть какие-то проблемы ? Да, когда запускаю сервер не выводит сообщение в консоль о outputServerLog("Error: MySQL connection is established!") Link to comment
Elengar Posted November 16, 2014 Share Posted November 16, 2014 Вроде бы - нет. Есть какие-то проблемы ? Да, когда запускаю сервер не выводит сообщение в консоль о outputServerLog("Error: MySQL connection is established!") Может быть проблемы с самым mysql-сервером ? Link to comment
iAxel Posted November 16, 2014 Share Posted November 16, 2014 Вроде бы - нет. Есть какие-то проблемы ? Да, когда запускаю сервер не выводит сообщение в консоль о outputServerLog("Error: MySQL connection is established!") Может быть проблемы с самым mysql-сервером ? Уже решил проблему) Хотел сделать автологин, но когда нажимаю на "войти", ничего не происходит вот что выводит консоль: [2014-11-16 20:16:33] CONNECT: Axel connected (IP: 10.5.28.187 Serial: AF921EEAEF4F416B07912FE7123EF634 Version: 1.4.0-9.06928.0) [2014-11-16 20:16:39] JOIN: Axel joined the game (IP: 10.5.28.187) [2014-11-16 20:16:48] WARNING: [new_project]\project\Login\login_s.lua:32: dbPoll failed; Unknown column 'Axel' in 'where clause' [2014-11-16 20:16:48] WARNING: [new_project]\project\Login\login_s.lua:36: dbPoll failed; Unknown column 'Axel' in 'where clause' [2014-11-16 20:16:48] ERROR: [new_project]\project\Login\login_s.lua:38: bad argument #1 to 'pairs' (table expected, got boolean) [2014-11-16 20:24:05] QUIT: Axel left the game [Quit] Выручайте: addEvent("onSendPlayerJoin", true) addEventHandler("onSendPlayerJoin", root, function () local serial = source:getSerial() local name = source:getName() local ip = source:getIP() local query = dbQuery(connection, "SELECT `id` FROM `accounts` WHERE `username` = `"..name.."` LIMIT 1") if (query) then local result, num_affected_rows, errmsg = dbPoll(query, -1) if (num_affected_rows > 0) then local query = dbQuery(connection, "SELECT * FROM `accounts` WHERE `username` = `"..name.."` LIMIT 1") if (query) then local result, num_affected_rows = dbPoll(query, -1) if (num_affected_rows > 0) then for result, row in pairs(result) do local query = dbExec(connection, "UPDATE `accounts` SET `serial` = '"..serial.."' WHERE `id` = '"..row["id"].."'") if (query) then triggerClientEvent(source, "onPlayerDoneLogin", source) source:outputChat("Welcome back "..name) source:spawn(1450.32421875, -2287.287109375, 13.546875) source:fadeCamera(true) source:setCameraTarget() else source:outputChat("Error: MySQL query failed when trying to save new login date "..name) end break end else source:outputChat("Error: MySQL query failed when trying to save new login date1 "..name) end else source:outputChat("Error: MySQL query failed when trying to save new login date2 "..name) end else local pass = createRandomPassword(10) local realtime = getRealTime() local timestamp = realtime.timestamp local query = dbExec(connection, "INSERT INTO `accounts` (`username`, `password`, `serial`, `ip`, `registerdate`) VALUES ('"..name.."', '"..pass.."', '"..serial.."', '"..ip.."', '"..timestamp.."')") if (query) then triggerClientEvent(source, "onPlayerDoneLogin", source) source:outputChat("Register complate!") source:spawn(1450.32421875, -2287.287109375, 13.546875) source:fadeCamera(true) source:setCameraTarget() else source:outputChat("Register failed1!") end end else source:outputChat("Register failed2!") end end ) UPD: Разобрался сам, не правильно запросы отправлял) Link to comment
Evolv Posted November 16, 2014 Share Posted November 16, 2014 Немного не понял про Radio Buttons, у меня в одном окне две группы этих кнопок, но как сделать так, чтобы было два выбора? А то один скачет между группами Кстати, как вывести на экран сообщения с ошибками на клиентском скрипте? А то накосячу, и клиентский скрипт не грузится, и почему, искать нужно ручками( Link to comment
Strix Posted November 16, 2014 Share Posted November 16, 2014 (edited) xmlnode xmlCreateFile ( string filePath, string rootNodeName ) Эта клиент-функция создает XML файл у клиента? Создаёт, только для клиента, читай вики. Кстати, как вывести на экран сообщения с ошибками на клиентском скрипте? А то накосячу, и клиентский скрипт не грузится, и почему, искать нужно ручками( Используй команду debugscript 3 в консоли, чтобы показать все дебаг-сообщения. По этому поводу советую прочитать эту статью. Edited November 16, 2014 by Guest Link to comment
Evolv Posted November 16, 2014 Share Posted November 16, 2014 xmlnode xmlCreateFile ( string filePath, string rootNodeName ) Эта клиент-функция создает XML файл у клиента? Создаёт, только для клиента, читай вики. Кстати, как вывести на экран сообщения с ошибками на клиентском скрипте? А то накосячу, и клиентский скрипт не грузится, и почему, искать нужно ручками( Используй команду debugscript 3 в консоли, чтобы открыть просмотр сообщений дебага. По умолчанию работает, только если у тебя есть права администратора. Все таки не успел сообщение изменить) Опытным путем проверил, что на клиенте сохраняет, но спасибо) На счет Radio Button, сделал лэйбл, положение на верхнюю точку бокса лэйбла, а ниже создал кнопки, и прикрепил их к лэйблу) Link to comment
Strix Posted November 22, 2014 Share Posted November 22, 2014 Возникла проблема с расшифровкой файла с помощью teaDecode. Функция по непонятным причинам возвращает только один символ. При использовании base64Encode/Decode проблем нет. Код: http://pastebin.com/rncjCFSs Неисправность или кривизна моих рук? Возможно как-то связано с #8215 Link to comment
AMARANT Posted December 4, 2014 Share Posted December 4, 2014 Ребят, всем привет. Запостил вопрос в разделе "Scripting" основного форума, думал помогут, но нет. Видать там только на простенькие вопросы могут ответить. Поэтому прошу помощи здесь. Вопрос скорее математический, а не скриптовый. В общем, на картинке снизу изображены несколько DX-окружностей и курсор. Так вот мне нужно как-то вычислить что курсор находится в радиусе любой из окружностей. Т.е. грубо говоря, зная только координаты центра окружности и ее радиус, а также координаты курсора, мне нужно это каким-то образом определять. К сожалению, я сам это делать не умею, поэтому буду очень благодарен за помощь. 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