nikitafloy Posted August 15, 2013 Share Posted August 15, 2013 Мне нужно локализовать одно авто из всех, а не восстанавливать все авто на сервере, т.к. я имею еще и личный транспорт, они должны платить, если авто взорвется. Т.е. есть все авто, из них 10% - такси и лимузины для работы, если 1 машина взрывается или ее положение изменяется, то через опр. время она должна среспауниться. Вот что я получил, но я не знаю как вытащить всю строку из таблицы, чтобы задать аргумент одной локальной машины (а1, a2,.. и vehicle[1],... не считайте как правильные, т.к. одних уже не существует, другие здесь не уместны): local carsR = { { 420, 1714.30005, 1470.5, 10.6, 0, 0, 342.498 }, { 420, 1711.59998, 1460.5, 10.6, 0, 0, 344.493 }, { 420, 1708.5, 1450.40002, 10.6, 0, 0, 344.993 }, { 420, 1706.90002, 1420.59998, 10.6, 0, 0, 5.493 }, { 420, 1708.40002, 1412.09998, 10.6, 0, 0, 11.488 }, { 420, 1710.09998, 1404.5, 10.6, 0, 0, 5.493 }, { 420, 1719.40002, 1411.80005, 10.6, 0, 0, 10.736 }, { 420, 1717.40002, 1434.69995, 10.4, 0, 0, 358.734 }, { 409, 2040.09998, 1008.59998, 10.6, 0, 0, 180 }, { 409, 2040.09961, 999.59961, 10.6, 0, 0, 180 }, { 409, 2040.09961, 1017.7998, 10.6, 0, 0, 180 } } function createVeh () for _, vehicle in ipairs ( carsR ) do local id, x, y, z, rx, ry, rz = unpack ( vehicle ) veh = createVehicle( id, x, y, z, rx, ry, rz ) end end addEventHandler("onResourceStart", resourceRoot, createVeh) function respawnExplodedVehicle() for _, vehicle in ipairs ( carsR ) do if isVehicleBlown ( vehicle[1] ) == true then setTimer(function() respawnVehicle ( vehicle[1] ) end, 10000, 1, source) else return end if isVehicleBlown ( vehicle[2] ) == true then setTimer(function() respawnVehicle ( vehicle[2] ) end, 10000, 1, source) else return end if isVehicleBlown ( vehicle[3] ) == true then setTimer(function() respawnVehicle ( vehicle[3] ) end, 10000, 1, source) else return end if isVehicleBlown ( vehicle[4] ) == true then setTimer(function() respawnVehicle ( vehicle[4] ) end, 10000, 1, source) else return end if isVehicleBlown ( vehicle[5] ) == true then setTimer(function() respawnVehicle ( vehicle[5] ) end, 10000, 1, source) else return end if isVehicleBlown ( vehicle[6] ) == true then setTimer(function() respawnVehicle ( vehicle[6] ) end, 10000, 1, source) else return end if isVehicleBlown ( vehicle[7] ) == true then setTimer(function() respawnVehicle ( vehicle[7] ) end, 10000, 1, source) else return end if isVehicleBlown ( vehicle[8] ) == true then setTimer(function() respawnVehicle ( vehicle[8] ) end, 10000, 1, source) else return end if isVehicleBlown ( vehicle[9] ) == true then setTimer(function() respawnVehicle ( vehicle[9] ) end, 10000, 1, source) else return end if isVehicleBlown ( vehicle[10] ) == true then setTimer(function() respawnVehicle ( vehicle[10] ) end, 10000, 1, source) else return end if isVehicleBlown ( vehicle[11] ) == true then setTimer(function() respawnVehicle ( vehicle[11] ) end, 10000, 1, source) else return end end end addEventHandler("onVehicleExplode", getRootElement(), respawnExplodedVehicle) function respPosVehicle ( ) for _, vehicle in ipairs ( carsR ) do local a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11 = unpack ( vehicle ) if getElementPosition ( a1 ) ~= a1 then setTimer(function() respawnVehicle ( a1 ) end, 10000, 1, source) else return end if getElementPosition ( a2 ) ~= a2 then setTimer(function() respawnVehicle ( a2 ) end, 10000, 1, source) else return end if getElementPosition ( a3 ) ~= a3 then setTimer(function() respawnVehicle ( a3 ) end, 10000, 1, source) else return end if getElementPosition ( a4 ) ~= a4 then setTimer(function() respawnVehicle ( a4 ) end, 10000, 1, source) else return end if getElementPosition ( a5 ) ~= a5 then setTimer(function() respawnVehicle ( a5 ) end, 10000, 1, source) else return end if getElementPosition ( a6 ) ~= a6 then setTimer(function() respawnVehicle ( a6 ) end, 10000, 1, source) else return end if getElementPosition ( a7 ) ~= a7 then setTimer(function() respawnVehicle ( a7 ) end, 10000, 1, source) else return end if getElementPosition ( a8 ) ~= a8 then setTimer(function() respawnVehicle ( a8 ) end, 10000, 1, source) else return end if getElementPosition ( a9 ) ~= a9 then setTimer(function() respawnVehicle ( a9 ) end, 10000, 1, source) else return end if getElementPosition ( a10 ) ~= a10 then setTimer(function() respawnVehicle ( a10 ) end, 10000, 1, source) else return end if getElementPosition ( a11 ) ~= a11 then setTimer(function() respawnVehicle ( a11 ) end, 10000, 1, source) else return end end end addEventHandler("onPlayerQuit", getRootElement(), respPosVehicle) Link to comment
CocaColaBear Posted August 16, 2013 Share Posted August 16, 2013 Такой вопрос. Как разумнее хранить дату различных элементов. Через setElementData или в специально созданных таблицах? Какой способ будет предоставлять наибольшее быстродействие? Link to comment
Elengar Posted August 16, 2013 Share Posted August 16, 2013 Мне нужно локализовать одно авто из всех, а не восстанавливать все авто на сервере, т.к. я имею еще и личный транспорт, они должны платить, если авто взорвется.Т.е. есть все авто, из них 10% - такси и лимузины для работы, если 1 машина взрывается или ее положение изменяется, то через опр. время она должна среспауниться. Вот что я получил, но я не знаю как вытащить всю строку из таблицы, чтобы задать аргумент одной локальной машины (а1, a2,.. и vehicle[1],... не считайте как правильные, т.к. одних уже не существует, другие здесь не уместны): local carsR = { { 420, 1714.30005, 1470.5, 10.6, 0, 0, 342.498 }, { 420, 1711.59998, 1460.5, 10.6, 0, 0, 344.493 }, { 420, 1708.5, 1450.40002, 10.6, 0, 0, 344.993 }, { 420, 1706.90002, 1420.59998, 10.6, 0, 0, 5.493 }, { 420, 1708.40002, 1412.09998, 10.6, 0, 0, 11.488 }, { 420, 1710.09998, 1404.5, 10.6, 0, 0, 5.493 }, { 420, 1719.40002, 1411.80005, 10.6, 0, 0, 10.736 }, { 420, 1717.40002, 1434.69995, 10.4, 0, 0, 358.734 }, { 409, 2040.09998, 1008.59998, 10.6, 0, 0, 180 }, { 409, 2040.09961, 999.59961, 10.6, 0, 0, 180 }, { 409, 2040.09961, 1017.7998, 10.6, 0, 0, 180 } } function createVeh () for _, vehicle in ipairs ( carsR ) do local id, x, y, z, rx, ry, rz = unpack ( vehicle ) veh = createVehicle( id, x, y, z, rx, ry, rz ) end end addEventHandler("onResourceStart", resourceRoot, createVeh) function respawnExplodedVehicle() for _, vehicle in ipairs ( carsR ) do if isVehicleBlown ( vehicle[1] ) == true then setTimer(function() respawnVehicle ( vehicle[1] ) end, 10000, 1, source) else return end if isVehicleBlown ( vehicle[2] ) == true then setTimer(function() respawnVehicle ( vehicle[2] ) end, 10000, 1, source) else return end if isVehicleBlown ( vehicle[3] ) == true then setTimer(function() respawnVehicle ( vehicle[3] ) end, 10000, 1, source) else return end if isVehicleBlown ( vehicle[4] ) == true then setTimer(function() respawnVehicle ( vehicle[4] ) end, 10000, 1, source) else return end if isVehicleBlown ( vehicle[5] ) == true then setTimer(function() respawnVehicle ( vehicle[5] ) end, 10000, 1, source) else return end if isVehicleBlown ( vehicle[6] ) == true then setTimer(function() respawnVehicle ( vehicle[6] ) end, 10000, 1, source) else return end if isVehicleBlown ( vehicle[7] ) == true then setTimer(function() respawnVehicle ( vehicle[7] ) end, 10000, 1, source) else return end if isVehicleBlown ( vehicle[8] ) == true then setTimer(function() respawnVehicle ( vehicle[8] ) end, 10000, 1, source) else return end if isVehicleBlown ( vehicle[9] ) == true then setTimer(function() respawnVehicle ( vehicle[9] ) end, 10000, 1, source) else return end if isVehicleBlown ( vehicle[10] ) == true then setTimer(function() respawnVehicle ( vehicle[10] ) end, 10000, 1, source) else return end if isVehicleBlown ( vehicle[11] ) == true then setTimer(function() respawnVehicle ( vehicle[11] ) end, 10000, 1, source) else return end end end addEventHandler("onVehicleExplode", getRootElement(), respawnExplodedVehicle) function respPosVehicle ( ) for _, vehicle in ipairs ( carsR ) do local a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11 = unpack ( vehicle ) if getElementPosition ( a1 ) ~= a1 then setTimer(function() respawnVehicle ( a1 ) end, 10000, 1, source) else return end if getElementPosition ( a2 ) ~= a2 then setTimer(function() respawnVehicle ( a2 ) end, 10000, 1, source) else return end if getElementPosition ( a3 ) ~= a3 then setTimer(function() respawnVehicle ( a3 ) end, 10000, 1, source) else return end if getElementPosition ( a4 ) ~= a4 then setTimer(function() respawnVehicle ( a4 ) end, 10000, 1, source) else return end if getElementPosition ( a5 ) ~= a5 then setTimer(function() respawnVehicle ( a5 ) end, 10000, 1, source) else return end if getElementPosition ( a6 ) ~= a6 then setTimer(function() respawnVehicle ( a6 ) end, 10000, 1, source) else return end if getElementPosition ( a7 ) ~= a7 then setTimer(function() respawnVehicle ( a7 ) end, 10000, 1, source) else return end if getElementPosition ( a8 ) ~= a8 then setTimer(function() respawnVehicle ( a8 ) end, 10000, 1, source) else return end if getElementPosition ( a9 ) ~= a9 then setTimer(function() respawnVehicle ( a9 ) end, 10000, 1, source) else return end if getElementPosition ( a10 ) ~= a10 then setTimer(function() respawnVehicle ( a10 ) end, 10000, 1, source) else return end if getElementPosition ( a11 ) ~= a11 then setTimer(function() respawnVehicle ( a11 ) end, 10000, 1, source) else return end end end addEventHandler("onPlayerQuit", getRootElement(), respPosVehicle) В function createVeh () for _, vehicle in ipairs ( carsR ) do local id, x, y, z, rx, ry, rz = unpack ( vehicle ) veh = createVehicle( id, x, y, z, rx, ry, rz ) end end addEventHandler("onResourceStart", resourceRoot, createVeh) Можно сделать что-то типа function createVeh () number = 0 for _, vehicle in ipairs ( carsR ) do local id, x, y, z, rx, ry, rz = unpack ( vehicle ) veh = createVehicle( id, x, y, z, rx, ry, rz ) number = number + 1 setElementData(veh,"nomer",number) end end addEventHandler("onResourceStart", resourceRoot, createVeh) Потом не нужно будет делать 100500 проверок на "взорваность" nom = getElementData(source,"nomer") respawnVehicle(vehicle[nom]) Link to comment
nikitafloy Posted August 16, 2013 Share Posted August 16, 2013 Мне нужно локализовать одно авто из всех, а не восстанавливать все авто на сервере, т.к. я имею еще и личный транспорт, они должны платить, если авто взорвется.Т.е. есть все авто, из них 10% - такси и лимузины для работы, если 1 машина взрывается или ее положение изменяется, то через опр. время она должна среспауниться. Вот что я получил, но я не знаю как вытащить всю строку из таблицы, чтобы задать аргумент одной локальной машины (а1, a2,.. и vehicle[1],... не считайте как правильные, т.к. одних уже не существует, другие здесь не уместны): local carsR = { { 420, 1714.30005, 1470.5, 10.6, 0, 0, 342.498 }, { 420, 1711.59998, 1460.5, 10.6, 0, 0, 344.493 }, { 420, 1708.5, 1450.40002, 10.6, 0, 0, 344.993 }, { 420, 1706.90002, 1420.59998, 10.6, 0, 0, 5.493 }, { 420, 1708.40002, 1412.09998, 10.6, 0, 0, 11.488 }, { 420, 1710.09998, 1404.5, 10.6, 0, 0, 5.493 }, { 420, 1719.40002, 1411.80005, 10.6, 0, 0, 10.736 }, { 420, 1717.40002, 1434.69995, 10.4, 0, 0, 358.734 }, { 409, 2040.09998, 1008.59998, 10.6, 0, 0, 180 }, { 409, 2040.09961, 999.59961, 10.6, 0, 0, 180 }, { 409, 2040.09961, 1017.7998, 10.6, 0, 0, 180 } } function createVeh () for _, vehicle in ipairs ( carsR ) do local id, x, y, z, rx, ry, rz = unpack ( vehicle ) veh = createVehicle( id, x, y, z, rx, ry, rz ) end end addEventHandler("onResourceStart", resourceRoot, createVeh) function respawnExplodedVehicle() for _, vehicle in ipairs ( carsR ) do if isVehicleBlown ( vehicle[1] ) == true then setTimer(function() respawnVehicle ( vehicle[1] ) end, 10000, 1, source) else return end if isVehicleBlown ( vehicle[2] ) == true then setTimer(function() respawnVehicle ( vehicle[2] ) end, 10000, 1, source) else return end if isVehicleBlown ( vehicle[3] ) == true then setTimer(function() respawnVehicle ( vehicle[3] ) end, 10000, 1, source) else return end if isVehicleBlown ( vehicle[4] ) == true then setTimer(function() respawnVehicle ( vehicle[4] ) end, 10000, 1, source) else return end if isVehicleBlown ( vehicle[5] ) == true then setTimer(function() respawnVehicle ( vehicle[5] ) end, 10000, 1, source) else return end if isVehicleBlown ( vehicle[6] ) == true then setTimer(function() respawnVehicle ( vehicle[6] ) end, 10000, 1, source) else return end if isVehicleBlown ( vehicle[7] ) == true then setTimer(function() respawnVehicle ( vehicle[7] ) end, 10000, 1, source) else return end if isVehicleBlown ( vehicle[8] ) == true then setTimer(function() respawnVehicle ( vehicle[8] ) end, 10000, 1, source) else return end if isVehicleBlown ( vehicle[9] ) == true then setTimer(function() respawnVehicle ( vehicle[9] ) end, 10000, 1, source) else return end if isVehicleBlown ( vehicle[10] ) == true then setTimer(function() respawnVehicle ( vehicle[10] ) end, 10000, 1, source) else return end if isVehicleBlown ( vehicle[11] ) == true then setTimer(function() respawnVehicle ( vehicle[11] ) end, 10000, 1, source) else return end end end addEventHandler("onVehicleExplode", getRootElement(), respawnExplodedVehicle) function respPosVehicle ( ) for _, vehicle in ipairs ( carsR ) do local a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11 = unpack ( vehicle ) if getElementPosition ( a1 ) ~= a1 then setTimer(function() respawnVehicle ( a1 ) end, 10000, 1, source) else return end if getElementPosition ( a2 ) ~= a2 then setTimer(function() respawnVehicle ( a2 ) end, 10000, 1, source) else return end if getElementPosition ( a3 ) ~= a3 then setTimer(function() respawnVehicle ( a3 ) end, 10000, 1, source) else return end if getElementPosition ( a4 ) ~= a4 then setTimer(function() respawnVehicle ( a4 ) end, 10000, 1, source) else return end if getElementPosition ( a5 ) ~= a5 then setTimer(function() respawnVehicle ( a5 ) end, 10000, 1, source) else return end if getElementPosition ( a6 ) ~= a6 then setTimer(function() respawnVehicle ( a6 ) end, 10000, 1, source) else return end if getElementPosition ( a7 ) ~= a7 then setTimer(function() respawnVehicle ( a7 ) end, 10000, 1, source) else return end if getElementPosition ( a8 ) ~= a8 then setTimer(function() respawnVehicle ( a8 ) end, 10000, 1, source) else return end if getElementPosition ( a9 ) ~= a9 then setTimer(function() respawnVehicle ( a9 ) end, 10000, 1, source) else return end if getElementPosition ( a10 ) ~= a10 then setTimer(function() respawnVehicle ( a10 ) end, 10000, 1, source) else return end if getElementPosition ( a11 ) ~= a11 then setTimer(function() respawnVehicle ( a11 ) end, 10000, 1, source) else return end end end addEventHandler("onPlayerQuit", getRootElement(), respPosVehicle) В function createVeh () for _, vehicle in ipairs ( carsR ) do local id, x, y, z, rx, ry, rz = unpack ( vehicle ) veh = createVehicle( id, x, y, z, rx, ry, rz ) end end addEventHandler("onResourceStart", resourceRoot, createVeh) Можно сделать что-то типа function createVeh () number = 0 for _, vehicle in ipairs ( carsR ) do local id, x, y, z, rx, ry, rz = unpack ( vehicle ) veh = createVehicle( id, x, y, z, rx, ry, rz ) number = number + 1 setElementData(veh,"nomer",number) end end addEventHandler("onResourceStart", resourceRoot, createVeh) Потом не нужно будет делать 100500 проверок на "взорваность" nom = getElementData(source,"nomer") respawnVehicle(vehicle[nom]) Благодарю за ответ. И извиняюсь за то, что не допонимаю здесь всё. local carsR = { { 420, 1714.30005, 1470.5, 10.6, 0, 0, 342.498 }, { 420, 1711.59998, 1460.5, 10.6, 0, 0, 344.493 }, { 420, 1708.5, 1450.40002, 10.6, 0, 0, 344.993 }, { 420, 1706.90002, 1420.59998, 10.6, 0, 0, 5.493 }, { 420, 1708.40002, 1412.09998, 10.6, 0, 0, 11.488 }, { 420, 1710.09998, 1404.5, 10.6, 0, 0, 5.493 }, { 420, 1719.40002, 1411.80005, 10.6, 0, 0, 10.736 }, { 420, 1717.40002, 1434.69995, 10.4, 0, 0, 358.734 }, { 409, 2040.09961, 1008.59998, 10.6, 0, 0, 180 }, -- Создается не лимузин, а такси, который указан выше под ID 420 :\ Должно быть все ОК, но это не так... { 409, 2040.09961, 999.59961, 10.6, 0, 0, 180 }, -- Создается не лимузин, а такси, который указан выше под ID 420 :\ Должно быть все ОК, но это не так... { 409, 2040.09961, 1017.7998, 10.6, 0, 0, 180 } -- Создается не лимузин, а такси, который указан выше под ID 420 :\ Должно быть все ОК, но это не так... } function createVeh () number = 0 -- nil изначально for _, vehicle in ipairs ( carsR ) do local id, x, y, z, rx, ry, rz = unpack ( vehicle ) veh = createVehicle( id, x, y, z, rx, ry, rz ) number = number + 1 -- Коробка 'number' в которой идет счет всех созданых авто setElementData(veh,"nomer",number) -- задаем ключ 'nomer' для данных авто, прикрепляем к ним свой номер (Если можно, расскажите про 2-ой аргумент поподробнее, не совсем понимаю) end end addEventHandler("onResourceStart", resourceRoot, createVeh) function respawnExplodedVehicle() nom = getElementData(source,"nomer") -- Извлекаем данные из ключа 'nomer', т.к. идет посылка запроса 'source', то он будет считываться из данных, которые мы присвоили if isVehicleBlown ( vehicle[nom] ) == true then -- Проверка всех автомобилей, если взорваны, то установить таймер и зареспаунить все авто. Я так понимаю. setTimer(function() respawnVehicle ( vehicle[nom] ) end, 10000, 1, source) else return end end addEventHandler("onVehicleExplode", getRootElement(), respawnExplodedVehicle) function respPosVehicle ( ) nom = getElementData(source,"nomer") -- Здесь вообще неразбериха получается какая-то if getElementPosition ( vehicle[nom] ) ~= vehicle[nom] then setTimer(function() respawnVehicle( vehicle[nom] ) end, 10000, 1, source) else return end end addEventHandler("onPlayerQuit", getRootElement(), respPosVehicle) Link to comment
Elengar Posted August 16, 2013 Share Posted August 16, 2013 Для респПос не подойдет.А остальное, что там обьяснять то ? Link to comment
nikitafloy Posted August 16, 2013 Share Posted August 16, 2013 Для респПос не подойдет.А остальное, что там обьяснять то ? Я привел свое объяснение '--', правильно ли я рассуждаю? В данном коде мне пишет строку красным цветом, не помню, что там написано. Link to comment
Elengar Posted August 16, 2013 Share Posted August 16, 2013 Для респПос не подойдет.А остальное, что там обьяснять то ? Я привел свое объяснение '--', правильно ли я рассуждаю? В данном коде мне пишет строку красным цветом, не помню, что там написано. На счет лимузинов - хз. На счет проверки взрыва - там не все тачки. Мы берем ее номер и по этому номеру с ей что-либо делаем Link to comment
kino Posted August 17, 2013 Share Posted August 17, 2013 я написал простой скрипт при убийстве выпадают пикапы с оружием,но проблема в том что если убитый стоял рядом за стеной иногда пикапы создаются за текстурой! как это избежать? Есть вариант создать пикапы точно на координатах убитого но не красиво все в одном пикапе Link to comment
LoveFist Posted August 17, 2013 Share Posted August 17, 2013 Проверяй при помощи https://wiki.multitheftauto.com/wiki/IsLineOfSightClear Link to comment
kino Posted August 17, 2013 Share Posted August 17, 2013 Проверяй при помощи https://wiki.multitheftauto.com/wiki/IsLineOfSightClear пример даш? Link to comment
LoveFist Posted August 17, 2013 Share Posted August 17, 2013 --clientside --x1,y1,z1 - координаты умершего игрока --x2,y2,z2 - предполагаемые координаты пикапа if isLineOfSightClear(x1,y1,z1,x2,y2,z2) then --createPickup --можно ставить пикап else --скорее всего пикап попадет внутрь другого элемента end Можно исключить из проверки машины, других игроков и т.п. (подробнее на вики) Link to comment
kino Posted August 18, 2013 Share Posted August 18, 2013 тут опять проблема может я не чего не понимаю есть код local x,y,z =getElementPosition(killed) for i=1,12 do local ammo=getPedWeapon(killed,i) local tammo=getPedTotalAmmo(killed,i) if ammo~=0 and tammo >1 then createPickup(x+math.random(),y-math.random(0.1,0.9),z,2,ammo,0,tammo) end end они даже не крутиться и не берутся! я думал что если указан тип, ид оружия,0 это без респавна, патроны то игра все сделает сама; хрен надо вешать обработчик пикапа? Link to comment
H1TM4N Posted August 18, 2013 Share Posted August 18, 2013 Как сделать проверку по наведению курсора на кнопку? или это через позицию курсора самому делать? Link to comment
TheNormalnij Posted August 18, 2013 Share Posted August 18, 2013 (edited) Это надо? Edited August 18, 2013 by Guest Link to comment
CocaColaBear Posted August 19, 2013 Share Posted August 19, 2013 Как сделать проверку по наведению курсора на кнопку? или это через позицию курсора самому делать? addEventHandler( "onClientMouseEnter", root, function ( x, y ) if ( source == Button ) then -- курсор попал на кнопку Button end end ) Link to comment
Kernell Posted August 19, 2013 Share Posted August 19, 2013 Как сделать проверку по наведению курсора на кнопку? или это через позицию курсора самому делать? addEventHandler( "onClientMouseEnter", root, function ( x, y ) if ( source == Button ) then -- курсор попал на кнопку Button end end ) А ещё чтобы не сравнивать source с Button, нужно вешать событие на сам Button, тем самым сэкономив ресурсы CPU Как сделать проверку по наведению курсора на кнопку? или это через позицию курсора самому делать? Есть событие входа\выхода курсора, оно показано выше. Но ты говоришь о проверке - сравнивай координаты. Link to comment
H1TM4N Posted August 19, 2013 Share Posted August 19, 2013 Сделал два dxDrawText, один основной текст, второй как тень основного. Как убрать коды цветов RRGGBB из второго текста? Они тень тоже красят. Link to comment
CocaColaBear Posted August 19, 2013 Share Posted August 19, 2013 Сделал два dxDrawText, один основной текст, второй как тень основного. Как убрать коды цветов RRGGBB из второго текста? Они тень тоже красят. Не могу понять что ты хочешь сделать, объясни. Как вариант, могу предложить аргумент у dxDrawText - colorCoded Link to comment
H1TM4N Posted August 19, 2013 Share Posted August 19, 2013 Сделал два dxDrawText, один основной текст, второй как тень основного. Как убрать коды цветов RRGGBB из второго текста? Они тень тоже красят. Не могу понять что ты хочешь сделать, объясни. Как вариант, могу предложить аргумент у dxDrawText - colorCoded Смотри. Два текста Тень dxDrawText ( text, 21, posY+1, 200, 400, tocolor ( 0, 0, 0, 255 ), 1.0, "default-bold", "left","top",false,false,false,true ) и оригинальный текст dxDrawText ( text, 20, posY, 200, 400, tocolor ( 255, 255, 255, 255 ), 1.0, "default-bold", "left","top",false,false,false,true ) Тест используется одинаковый. Тень нужна только черного цвета, а при использовании кодов #FFFFFF меняется цвет у обоих текстов. Последний парамерт включает цветовые коды (true), но если его выключить он пишет коды текстом (#FFFFFF). Дак вот как сделать чтобы в теневом тексте не писало эти коды и не меняло цвета текстов? Link to comment
CocaColaBear Posted August 19, 2013 Share Posted August 19, 2013 Только что попробовал твой код. Все работает. Тень черного цвета, основной текст белого. Разве что если прибавлять +1, то это не так заметно, при +2 заметно куда лучше. Link to comment
TheNormalnij Posted August 19, 2013 Share Posted August 19, 2013 Возможно, ты сначала рисуешь текст, а потом тень. Link to comment
Jonathan.P Posted August 19, 2013 Share Posted August 19, 2013 Здравствуйте. Когда время анимации ставишь на нуль, то пед получает возможность бегать и вообще передвигаться с анимацией. Так вот, а если я ставлю параметр loop на false, то в конце анимации у педа "замораживаются" руки, и отмораживаются только когда он прыгнет, сядет в машину и пр. Так вот, как разморозить их в конце анимации без физ. манипуляций? Пробовал таймером обнулить анимку: setPedAnimation(source) - не помогает. Желательно конечно обнулить её в самом конце. Link to comment
H1TM4N Posted August 19, 2013 Share Posted August 19, 2013 Только что попробовал твой код. Все работает. Тень черного цвета, основной текст белого. Разве что если прибавлять +1, то это не так заметно, при +2 заметно куда лучше. ууууу блин... да я говорю что вставка цветовых кодов все косячит. ты попробуй text сделать "тестовый #FFFF00текст" Link to comment
CocaColaBear Posted August 19, 2013 Share Posted August 19, 2013 Только что попробовал твой код. Все работает. Тень черного цвета, основной текст белого. Разве что если прибавлять +1, то это не так заметно, при +2 заметно куда лучше. ууууу блин... да я говорю что вставка цветовых кодов все косячит. ты попробуй text сделать "тестовый #FFFF00текст" Если у тебя в text содержится строка уже с кодом, т.е. text = "#FFFF00Ололо", то тебе понадобится string.gsub. С помощью ее убираешь все коды и выводишь чистый черный текст. Вот, как сделай: dxDrawText ( string.gsub(text, "%#%w%w%w%w%w%w", ""), 21, posY+1, 200, 400, tocolor ( 0, 0, 0, 255 ), 1.0, "default-bold", "left","top",false,false,false,true ) Может кто даст короче регулярку. Просто я не нашел инфы, как захватывать определенное кол-во символов. Link to comment
H1TM4N Posted August 19, 2013 Share Posted August 19, 2013 Только что попробовал твой код. Все работает. Тень черного цвета, основной текст белого. Разве что если прибавлять +1, то это не так заметно, при +2 заметно куда лучше. ууууу блин... да я говорю что вставка цветовых кодов все косячит. ты попробуй text сделать "тестовый #FFFF00текст" Если у тебя в text содержится строка уже с кодом, т.е. text = "#FFFF00Ололо", то тебе понадобится string.gsub. С помощью ее убираешь все коды и выводишь чистый черный текст. Вот, как сделай: dxDrawText ( string.gsub(text, "%#%w%w%w%w%w%w", ""), 21, posY+1, 200, 400, tocolor ( 0, 0, 0, 255 ), 1.0, "default-bold", "left","top",false,false,false,true ) Может кто даст короче регулярку. Просто я не нашел инфы, как захватывать определенное кол-во символов. я уже разобрался) спасибо 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