562141 Posted April 13, 2012 Share Posted April 13, 2012 Немного возращаясь назад ! Вот этот скипт function Countdown ( source ) guiSetVisible ( imagecount, false ) imagecount = guiCreateStaticImage (305,119,250,190,"images/3.png",false) setTimer ( Countdown2, 1000, 1 ) end function Countdown2 ( source ) guiSetVisible ( imagecount, false ) imagecount = guiCreateStaticImage(305,119,250,190,"images/2.png",false) setTimer ( Countdown1, 1000, 1 ) end function Countdown1 ( source ) guiSetVisible ( imagecount, false ) imagecount = guiCreateStaticImage(305,119,250,190,"images/1.png",false) setTimer ( Countdown0, 1000, 1 ) end function Countdown0 ( source ) guiSetVisible ( imagecount, false ) imagecount = guiCreateStaticImage(305,119,320,81,"images/go.png",false) setTimer ( CountdownEnd, 3000, 1 ) end function CountdownEnd ( source ) guiSetVisible ( imagecount, false ) end addCommandHandler ( "countdown", Countdown ) я переделал Marker = createMarker(-1652.9, -160.4, 1, 'cylinder', 30.0, 0, 255, 0, 500) function Countdown ( thePlayer ) guiSetVisible ( imagecount, false ) imagecount = guiCreateStaticImage (305,119,250,190,"images/3.png",false) setTimer ( Countdown2, 1000, 1 ) end function Countdown2 ( thePlayer ) guiSetVisible ( imagecount, false ) imagecount = guiCreateStaticImage(305,119,250,190,"images/2.png",false) setTimer ( Countdown1, 1000, 1 ) end function Countdown1 ( thePlayer ) guiSetVisible ( imagecount, false ) imagecount = guiCreateStaticImage(305,119,250,190,"images/1.png",false) setTimer ( Countdown0, 1000, 1 ) end function Countdown0 ( thePlayer ) guiSetVisible ( imagecount, false ) imagecount = guiCreateStaticImage(305,119,320,81,"images/go.png",false) setTimer ( CountdownEnd, 3000, 1 ) end function CountdownEnd ( thePlayer ) guiSetVisible ( imagecount, false ) end addCommandHandler ( "countdown", Countdown ) bindKey ( "=", "down", Countdown ) addEventHandler ( "onClientMarkerHit", getRootElement(), Countdown ) но вот в чём проблема если один человек зайдёт на маркер то Countdown видят все игроки а должен только тот кто зашол на маркер в чем проблема???? Link to comment
Aibo Posted April 13, 2012 Share Posted April 13, 2012 нужно проверять, должно быть thePlayer == localPlayer вообще все можно в 1 функцию свернуть. и раз уж создаются элементы каждый раз, то вместо guiSetVisible лучше юзать destroyElement. Link to comment
562141 Posted April 14, 2012 Share Posted April 14, 2012 тоесть в есто thePlayer поставить localPlayer Link to comment
562141 Posted April 14, 2012 Share Posted April 14, 2012 блин вроде нечего в скрипте такого а нервов забирает Link to comment
WilliJ Posted April 14, 2012 Share Posted April 14, 2012 562141: блин вроде нечего в скрипте такого а нервов забирает Нет. Вместо ( thePlayer ) должно быть ( thePlayer == localPlayer ) Может, кто пожомет с моей проблемой? https://forum.multitheftauto.com/viewtopic.php?f=141&t=38632&start=510#p428147 Link to comment
LoveFist Posted April 15, 2012 Share Posted April 15, 2012 При чтении строки из xml файла обрезается символ & Есть ли возможность это обойти? Link to comment
562141 Posted April 15, 2012 Share Posted April 15, 2012 поставил ( thePlayer == localPlayer ) вообще перестало работать Link to comment
Flaker Posted April 15, 2012 Share Posted April 15, 2012 562141, Твой Countdown, не самый оптимальный вариант. Я вот тут набросал тебе, как было бы более правильно сделать. (Не утверждаю, что данный вариант самый правильный) Если хочешь, забирай себе (Copy -> Past) P.S. Я не проверял, будут ли при попадании на маркер цифры для всех игроков, или только для источника. Но по идее только для источника должны (если я не ошибся с trigerClientEvent). * Для отображения цифр я использовал dxDrawText * Переменная n, отвечает за цифру, с которой начинается обратный отсчет * Я попытался сделать, что бы цифры были в центре экрана, но тоже не уверен что получилось. Client Side: local sWidth,sHeight = guiGetScreenSize() -- The variables n=5 --начало обратного отсчета nSize = 4 --Размер цифр nFont = "bankgothic" --Шрифт цифр nColor_R, nColor_G, nColor_B, nColor_A = 0, 255, 0, 255 --Цвет и прозрачность цифр (RGBA) function count_render () if not(n == -1) then dxDrawText ( tostring(n), sWidth, sHeight*0.37, 1, 1, tocolor ( nColor_R, nColor_G, nColor_B, nColor_A ), nSize,nFont,"center","top",false,false,true,false,false) else removeEventHandler("onClientRender", source, count_render) --Убираем рэндер end end function start_countdown () setTimer(function () n=n-1 end,1000,n+1) addEventHandler("onClientRender", source, count_render) --Запускаем Рэндер end addEvent( "start_countdown", true ) addEventHandler( "start_countdown", getRootElement(), start_countdown ) Server side: local marker_countdown = createMarker( -703.15, 955.92, 12.1, "cylinder", 2, 255, 255, 0, 200) function marker_countdown_hit( thePlayer ) if source == marker_countdown then triggerClientEvent (thePlayer, "start_countdown", getRootElement()) end end addEventHandler ( "onMarkerHit",getRootElement(),marker_countdown_hit ) Link to comment
LoveFist Posted April 15, 2012 Share Posted April 15, 2012 При чтении строки из xml файла обрезается символ &Есть ли возможность это обойти? Проблема решена. Символ & как некоторые другие является недопустимым в xml. Его можно заменить на & Более полный список Link to comment
562141 Posted April 16, 2012 Share Posted April 16, 2012 Мы не телепаты. Код покажи. local theMarker = createMarker(-1652.9, -160.4, 1, 'cylinder', 30.0, 0, 255, 0, 500) function Countdown ( thePlayer == localPlayer ) guiSetVisible ( imagecount, false ) imagecount = guiCreateStaticImage (305,119,250,190,"images/3.png",false) setTimer ( Countdown2, 1000, 1 ) end function Countdown2 ( thePlayer == localPlayer ) guiSetVisible ( imagecount, false ) imagecount = guiCreateStaticImage(305,119,250,190,"images/2.png",false) setTimer ( Countdown1, 1000, 1 ) end function Countdown1 ( thePlayer == localPlayer ) guiSetVisible ( imagecount, false ) imagecount = guiCreateStaticImage(305,119,250,190,"images/1.png",false) setTimer ( Countdown0, 1000, 1 ) end function Countdown0 ( thePlayer == localPlayer ) guiSetVisible ( imagecount, false ) imagecount = guiCreateStaticImage(305,119,320,81,"images/go.png",false) setTimer ( CountdownEnd, 3000, 1 ) end function CountdownEnd ( thePlayer == localPlayer ) guiSetVisible ( imagecount, false ) end addCommandHandler ( "countdown", Countdown ) bindKey ( "=", "down", Countdown ) addEventHandler ( "onClientMarkerHit", theMarker, Countdown ) Link to comment
562141 Posted April 16, 2012 Share Posted April 16, 2012 Флакер, а как ты сделал что у тебя гуи по другому виду или стилю кому как ? как сделал? Link to comment
Scripting Moderators Sarrum Posted April 16, 2012 Scripting Moderators Share Posted April 16, 2012 Хватит даблпостить! Есть кнопка "EDIT". Флакер, а как ты сделал что у тебя гуи по другому виду или стилю кому как ? как сделал? nFont = "bankgothic" --Шрифт цифр Link to comment
MX_Master Posted April 16, 2012 Author Share Posted April 16, 2012 ваще-то название переменной должно быть хотя бы sFont так как содержимое текст Link to comment
562141 Posted April 16, 2012 Share Posted April 16, 2012 ваще-то название переменной должно быть хотя бы sFont так как содержимое текст Помогите плжалуйста с этим кодом local theMarker = createMarker(-1652.9, -160.4, 1, 'cylinder', 30.0, 0, 255, 0, 500) function Countdown ( thePlayer == localPlayer ) guiSetVisible ( imagecount, false ) imagecount = guiCreateStaticImage (305,119,250,190,"images/3.png",false) setTimer ( Countdown2, 1000, 1 ) end function Countdown2 ( thePlayer == localPlayer ) guiSetVisible ( imagecount, false ) imagecount = guiCreateStaticImage(305,119,250,190,"images/2.png",false) setTimer ( Countdown1, 1000, 1 ) end function Countdown1 ( thePlayer == localPlayer ) guiSetVisible ( imagecount, false ) imagecount = guiCreateStaticImage(305,119,250,190,"images/1.png",false) setTimer ( Countdown0, 1000, 1 ) end function Countdown0 ( thePlayer == localPlayer ) guiSetVisible ( imagecount, false ) imagecount = guiCreateStaticImage(305,119,320,81,"images/go.png",false) setTimer ( CountdownEnd, 3000, 1 ) end function CountdownEnd ( thePlayer == localPlayer ) guiSetVisible ( imagecount, false ) end addCommandHandler ( "countdown", Countdown ) bindKey ( "=", "down", Countdown ) addEventHandler ( "onClientMarkerHit", theMarker, Countdown ) Link to comment
MX_Master Posted April 16, 2012 Author Share Posted April 16, 2012 thePlayer == localPlayer это как-то неправильно, лучше это ваще убрать из параметров функции, т.к. везде localPlayer юзаешь Link to comment
562141 Posted April 16, 2012 Share Posted April 16, 2012 вот только что неставь если ктото зашол на маркер отсчёт показует всем игрокам играющим на сервере Link to comment
Flaker Posted April 16, 2012 Share Posted April 16, 2012 Флакер, а как ты сделал что у тебя гуи по другому виду или стилю кому как ? как сделал? Settings -> Interface -> Skin: Lighter Blue Насчет кода Countdown: странно..., у меня работало все... Щас перепроверю полностью. ваще-то название переменной должно быть хотя бы sFont так как содержимое текст Полностью разделяю твое мнение. Link to comment
Flaker Posted April 16, 2012 Share Posted April 16, 2012 Хотя у меня все работало, я чуть изменил код. (Проверил. Работает.) Теперь осталось узнать, заработает ли у тебя... P.S. Копируй аккуратно! Server: local marker_countdown = createMarker( -703.15, 955.92, 12.1, "cylinder", 2, 255, 255, 0, 200) function marker_countdown_hit( thePlayer ) if source == marker_countdown then triggerClientEvent (thePlayer, "start_countdown", getRootElement()) end end addEventHandler ( "onMarkerHit",getRootElement(),marker_countdown_hit ) Client: local sWidth,sHeight = guiGetScreenSize() n=2 --начало обратного отсчета nSpeedCount = 1000 --Скорость смены цифр (Стандартно: 1000мс (1 секунда)) nSize = 4 --Размер цифр sFont = "bankgothic" --Шрифт цифр nColor_R, nColor_G, nColor_B, nColor_A = 0, 255, 0, 255 --Цвет и прозрачность цифр (RGBA) function count_render () if not(n <= -1) then dxDrawText ( tostring(n), sWidth, sHeight*0.37, 1, 1, tocolor ( nColor_R, nColor_G, nColor_B, nColor_A ), nSize,sFont,"center","top",false,false,true,false,false) else removeEventHandler("onClientRender", source, count_render) --Убираем рэндер end end function start_countdown () setTimer(function () n=n-1 end,nSpeedCount,n+1) addEventHandler("onClientRender", source, count_render) --Запускаем Рэндер end addEvent( "start_countdown", true ) addEventHandler( "start_countdown", getRootElement(), start_countdown ) Link to comment
MX_Master Posted April 16, 2012 Author Share Posted April 16, 2012 local sWidth,sHeight = guiGetScreenSize() -> local nWidth,nHeight = guiGetScreenSize() хотя не суть Link to comment
Flaker Posted April 16, 2012 Share Posted April 16, 2012 local sWidth,sHeight = guiGetScreenSize() -> local nWidth,nHeight = guiGetScreenSize() хотя не суть У меня просто эти переменные переходят из скрипта в скрипт. Как сначала назывались, так и называются по сей день. Но спасибо за такую заметку, теперь при названии буду учитывать тип переменной. Link to comment
Kenix Posted April 16, 2012 Share Posted April 16, 2012 Это префикс: n = число, s = строка, .. Link to comment
Flaker Posted April 16, 2012 Share Posted April 16, 2012 Подскажите, как работать с базами данных? Тут вот несколько вопросов накопилось по SQLite: 1) Как создать свою .bd (SQLite Database Browser имеется, я там создал, но она без расширения .bd создалась. Ошибка? Неправильно создал?) 2) При использовании: executeSQLCreateTable executeSQLDelete executeSQLDropTable executeSQLInsert executeSQLQuery executeSQLSelect executeSQLUpdate С какой базой работаешь? registry.db? 3) В каком порядке выполнять подключение и получение/сохранение данных в базу. P.S. Если есть какой то примерчик, был бы очень благодарен. Link to comment
Kenix Posted April 17, 2012 Share Posted April 17, 2012 Может быть db, а не bd? db = Database Почитать: http://www.mysql.ru/docs/ viewtopic.php?f=142&t=37482 http://www.spravkaweb.ru/mysql/ 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