Ruga Posted April 26, 2013 Share Posted April 26, 2013 ребят такой вопрос есть маркер и таблица, local x,y,z = unpack ( busoit [ math.random ( #busoit ) ] ) setElementPosition(markers,x,y,z) т.е. при условиях маркер будет перенесен по рандомному адресу из таблицы нужно что бы ид выбраного адреса записался в setElementData(localPlayer,"gyt", ? ) как определить рандомное выбранное число для данных?... таблица busoit = {[1]= {-2476.234375,2320.2734375,4.984375}, [2]= {-699.7919921875,952.4130859375,12.334638595581}, [3]= {-2651.3740234375,27.869140625,4.3359375} } Link to comment
Scripting Moderators Sarrum Posted April 26, 2013 Scripting Moderators Share Posted April 26, 2013 local random = math.random ( #busoit ) local x,y,z = unpack ( busoit [ random ] ) setElementPosition(markers,x,y,z) -- ... setElementData ( localPlayer, "gyt", random ) Вот так? Link to comment
TheNormalnij Posted April 26, 2013 Share Posted April 26, 2013 это было бы лишком легко для вопроса, тут надо, чтобы автор разъяснил понятнее, что ему нужно... Link to comment
Ruga Posted April 26, 2013 Share Posted April 26, 2013 Sarrum, да все так)) все именно так)) спасибо, просто скрипт писал довольно долго без перевывов почти, потом увидел недочет, решил спросить, после нескольких проб и ошибок Link to comment
TaHkep Posted April 29, 2013 Share Posted April 29, 2013 Вот список компонентов:special_1 special_2 special_3 special_4 special_5 bonnet boot bumper_1 bumper_2 chassis door_1 door_2 door_3 door_4 exhaust windscreen У каждой машины свои компоненты, поэтому лучше смотреть функцией. а как и куда можно вывести эту таблицу? и такой еще вопрос: как связать между собой скрипты? вот часть клиента одного скрипта function smoke() g_Data = getElementData ( player, "createSmoke" ) if (g_Data == true) then -- основная часть скрипта else return end end function startData() setElementData ( player, "createSmoke", true ) end addEventHandler( "onClientResourceStart", getRootElement(), startData ) function setSmokeData () getSmokeData = getElementData ( player, "createSmoke" ) if ( getSmokeData == true ) then setElementData ( player, "createSmoke", false ) elseif ( getSmokeData == false ) then setElementData ( player, "createSmoke", true ) end end addCommandHandler ( "smoke", setSmokeData ) а вот к примеру, клиент freeroam'a function smokeSelect () if guiCheckBoxGetSelected(getControl(wndMain, 'smoke')) then --TO DO end end у меня была идея написать так, но фрироам не видит данные игрока, которые я выставил в первом скрипте и наоборот. Первый скрипт не видит данные, которые я выставляю в фрироаме. function smokeSelect () if guiCheckBoxGetSelected(getControl(wndMain, 'smoke')) then setElementData ( g_Me, "createSmoke", true ) else setElementData ( g_Me, "createSmoke", false ) end end как это можно осуществить? Link to comment
freeangel Posted April 30, 2013 Share Posted April 30, 2013 Всем привет. Можно ли как-нибудь убрать всплывающие названия местностей? Если да, то каким образом?) http://img14.imageshost.ru/img/2013/04/ ... 68b640.jpg Link to comment
Scripting Moderators Sarrum Posted April 30, 2013 Scripting Moderators Share Posted April 30, 2013 Всем привет. Можно ли как-нибудь убрать всплывающие названия местностей? Если да, то каким образом?)http://img14.imageshost.ru/img/2013/04/ ... 68b640.jpg showPlayerHudComponent На wiki есть пример. Link to comment
freeangel Posted April 30, 2013 Share Posted April 30, 2013 Всем привет. Можно ли как-нибудь убрать всплывающие названия местностей? Если да, то каким образом?)http://img14.imageshost.ru/img/2013/04/ ... 68b640.jpg showPlayerHudComponent На wiki есть пример. Спасибо, всё работает) Link to comment
TaHkep Posted May 2, 2013 Share Posted May 2, 2013 Вот список компонентов:special_1 special_2 special_3 special_4 special_5 bonnet boot bumper_1 bumper_2 chassis door_1 door_2 door_3 door_4 exhaust windscreen У каждой машины свои компоненты, поэтому лучше смотреть функцией. а как и куда можно вывести эту таблицу? и такой еще вопрос: как связать между собой скрипты? вот часть клиента одного скрипта function smoke() g_Data = getElementData ( player, "createSmoke" ) if (g_Data == true) then -- основная часть скрипта else return end end function startData() setElementData ( player, "createSmoke", true ) end addEventHandler( "onClientResourceStart", getRootElement(), startData ) function setSmokeData () getSmokeData = getElementData ( player, "createSmoke" ) if ( getSmokeData == true ) then setElementData ( player, "createSmoke", false ) elseif ( getSmokeData == false ) then setElementData ( player, "createSmoke", true ) end end addCommandHandler ( "smoke", setSmokeData ) а вот к примеру, клиент freeroam'a function smokeSelect () if guiCheckBoxGetSelected(getControl(wndMain, 'smoke')) then --TO DO end end у меня была идея написать так, но фрироам не видит данные игрока, которые я выставил в первом скрипте и наоборот. Первый скрипт не видит данные, которые я выставляю в фрироаме. function smokeSelect () if guiCheckBoxGetSelected(getControl(wndMain, 'smoke')) then setElementData ( g_Me, "createSmoke", true ) else setElementData ( g_Me, "createSmoke", false ) end end как это можно осуществить? мне кто-то ответит? Link to comment
Scripting Moderators Sarrum Posted May 3, 2013 Scripting Moderators Share Posted May 3, 2013 Вот список компонентов:special_1 special_2 special_3 special_4 special_5 bonnet boot bumper_1 bumper_2 chassis door_1 door_2 door_3 door_4 exhaust windscreen У каждой машины свои компоненты, поэтому лучше смотреть функцией. а как и куда можно вывести эту таблицу? addCommandHandler ( "gvc", function ( ) local theVehicle = getPedOccupiedVehicle ( localPlayer ) if ( theVehicle ) then for k in pairs ( getVehicleComponents ( theVehicle ) ) do outputChatBox ( k ) end end end ) и такой еще вопрос: как связать между собой скрипты? вот часть клиента одного скрипта function smoke() g_Data = getElementData ( player, "createSmoke" ) if (g_Data == true) then -- основная часть скрипта else return end end function startData() setElementData ( player, "createSmoke", true ) end addEventHandler( "onClientResourceStart", getRootElement(), startData ) function setSmokeData () getSmokeData = getElementData ( player, "createSmoke" ) if ( getSmokeData == true ) then setElementData ( player, "createSmoke", false ) elseif ( getSmokeData == false ) then setElementData ( player, "createSmoke", true ) end end addCommandHandler ( "smoke", setSmokeData ) а вот к примеру, клиент freeroam'a function smokeSelect () if guiCheckBoxGetSelected(getControl(wndMain, 'smoke')) then --TO DO end end у меня была идея написать так, но фрироам не видит данные игрока, которые я выставил в первом скрипте и наоборот. Первый скрипт не видит данные, которые я выставляю в фрироаме. function smokeSelect () if guiCheckBoxGetSelected(getControl(wndMain, 'smoke')) then setElementData ( g_Me, "createSmoke", true ) else setElementData ( g_Me, "createSmoke", false ) end end как это можно осуществить? В первом скрипте переменная player не задана. Link to comment
TaHkep Posted May 4, 2013 Share Posted May 4, 2013 addCommandHandler ( "gvc", function ( ) local theVehicle = getPedOccupiedVehicle ( localPlayer ) if ( theVehicle ) then for k in pairs ( getVehicleComponents ( theVehicle ) ) do outputChatBox ( k ) end end end ) спасибо В первом скрипте переменная player не задана. задана. я скопировал лишь основную часть. то есть, скрипт вполне рабочий, вопрос только в том, как пользоваться функцией call. Link to comment
TheNormalnij Posted May 4, 2013 Share Posted May 4, 2013 Хмм... Народ, а как вы решаете проблему написания текстов в командах, кроме как function callToPlayerPager( source, commandname, ... ) local Ttext = { ... } local text for _, string in ipairs ( Ttext ) do text = text .. ' ' .. string end --body end ? Link to comment
Flaker Posted May 4, 2013 Share Posted May 4, 2013 Хмм... Народ, а как вы решаете проблему написания текстов в командах, кроме как function callToPlayerPager( source, commandname, ... ) local Ttext = { ... } local text for _, string in ipairs ( Ttext ) do text = text .. ' ' .. string end --body end ? table.concat Link to comment
TheNormalnij Posted May 4, 2013 Share Posted May 4, 2013 Спасибо, был уверен, что есть что-то хорошее, удобное. Link to comment
Jonathan.P Posted May 5, 2013 Share Posted May 5, 2013 Здравствуйте. Такая ситуация: на сервере имеются некоторые файлы, которые игрок загружает при заходе на сервер (текстуры и пр.). Нужно сделать так, чтобы при заходе игрок не спавнился, а просто пусть видел бы некоторую часть карты и чат. (пусть это будет некоторый фрагмент кода который бы выполнялся при загрузке файлов или до) А после загрузки файлов игрок спавнится уже и пр., т.е. выполняется остальной фрагмент кода. Как реализовать? П.С.: есть догадки, что для начала надо бы запихать эти файлы в отдельный ресурс... Link to comment
Kenix Posted May 5, 2013 Share Posted May 5, 2013 Сервер addEvent ( 'onPlayerReady', true ); -- Игрок зашёл на сервер, показываем и направляем камеру на координаты x = 500, y = 120, z = 50 addEventHandler ( 'onPlayerJoin', root, function() fadeCamera ( source, true, 5 ); setCameraMatrix ( source, 500, 120, 50 ); end ); addEventHandler( 'onPlayerReady', root, function() -- Код end ); Клиент -- Игрок скачал все файлы, вызываем событие, которое находится на сервере. addEventHandler( 'onClientResourceStart', resourceRoot, function() triggerServerEvent( 'onPlayerReady', localPlayer ); end ); Link to comment
Jonathan.P Posted May 6, 2013 Share Posted May 6, 2013 Спасибо! Работает . Еще небольшой вопрос: существуют ли функции, отключающие автоматическое включение фар вечером и включение движка, когда игрок садится в машину? Link to comment
TheNormalnij Posted May 6, 2013 Share Posted May 6, 2013 setVehicleLightState setVehicleEngineState 'onPlayerVehicleEnter' 'onPlayerVehicleExit' Link to comment
Jonathan.P Posted May 7, 2013 Share Posted May 7, 2013 Не то. Например в SAMP есть ManualVehicleEngineAndLights(); Link to comment
Other Languages Moderators Disinterpreter Posted May 7, 2013 Other Languages Moderators Share Posted May 7, 2013 Не то. Например в SAMP есть ManualVehicleEngineAndLights(); Пройдись циклом по всем машинам, с выключением движка. Link to comment
Ruga Posted May 7, 2013 Share Posted May 7, 2013 такой вот вопрос, при входе в определенный тип машин создаеться маркер виден коий только thePlayer тому кто сел, и при выходе из машины должен уничтожаться, как определить его для leaveElement, а то получаеться что любой кто выйдет из опр. типа машины удаляет маркер, мб дать маркеру ид игрока и при выходе проверять? и так же как можно определять hitElement только для того кто создал маркер тоесть что бы удаляло и хитилась только для того и тем кто создал, function oiu (thePlayer,seat,jacked) if pizacars [getElementModel(source)] then -- это тип машины if isElement (marker) then destroyElement(marker) end if isElement (blip) then destroyElement(blip) end end end addEventHandler("onVehicleExit",getRootElement(),oiu) Link to comment
Kenix Posted May 7, 2013 Share Posted May 7, 2013 https://wiki.multitheftauto.com/wiki/Se ... tVisibleTo Или переписать весь код на клиентскую сторону. Link to comment
Ruga Posted May 7, 2013 Share Posted May 7, 2013 спасибо, только вот вопрос, с блипом который на маркер атачится можно подобное сделать? Link to comment
TheNormalnij Posted May 7, 2013 Share Posted May 7, 2013 последний аргумент blip createBlip ( float x, float y, float z, [int icon=0, int size=2, int r=255, int g=0, int b=0, int a=255, int ordering=0, float visibleDistance=99999.0, visibleTo = getRootElement()] ) 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