Flaker Posted February 25, 2012 Share Posted February 25, 2012 Здравствуйте, подскажите пожалуста, как поставить blip на определенного игрока, после совершенного им действия (сел в машину). И что-бы этот blip виден был, только определенным скинам. Link to comment
TEDERIs Posted February 25, 2012 Share Posted February 25, 2012 Создаем блип по срабатыванию onPlayerVehicleEnter. Серверная сторона. Например: local SKIN = 23 addEventHandler ( "onPlayerVehicleEnter", root, function ( ) local blip = createBlipAttachedTo ( source, 56 ) clearElementVisibleTo ( blip ) for _, player in ipairs ( getElementsByType ( "player" ) ) do if getElementModel ( player ) == SKIN then setElementVisibleTo ( blip, player, true ) end end end ) Код нужно дописать и добавить проверки например на созданный ранее блип. Link to comment
Flaker Posted February 25, 2012 Author Share Posted February 25, 2012 Я вот сделал примерно так: function vehicleStartEnterCheck(thePlayer, seat, jacked) if ( source == car1) then if getElementModel ( thePlayer ) == 11 then armsdealer_blip = createBlip ( -931.522,2031.7,60.1, 41, 0, 0, 0, 255, thePlayer ) setElementVisibleTo ( armsdealer_blip, thePlayer, true ) car1_blip = createBlipAttachedTo ( source, 51 ) end end end addEventHandler("onVehicleStartEnter",root,vehicleStartEnterCheck) А как сделать удаление blip при въезде в другой маркер на машине?(именно на машине) Вот у меня не работает: function sell_marker_hit(thePlayer, hitElement) local skin = getElementModel (thePlayer) if source == sell_marker then if ( skin == 11) then outputChatBox ( "Thanks for weps dude! Hope this fucking police never get you!", thePlayer, 155, 100, 82, true ) givePlayerMoney(thePlayer,1500) setVehicleLocked ( ARMSCar, false ) destroyElement( sell_marker) destroyElement( car1) --удаление машины destroyElement ( car1_blip ) --удаление блипа1 destroyElement ( armsdealer_blip ) --удаление блипа2 end end end addEventHandler ("onMarkerHit",getRootElement(),sell_marker_hit) З.Ы. Все функции в одном файле Link to comment
Kenix Posted February 25, 2012 Share Posted February 25, 2012 local armsdealer_blip = { } local car1_blip = { } function vehicleStartEnterCheck(thePlayer, seat, jacked) if ( source == car1) then if getElementModel ( thePlayer ) == 11 then armsdealer_blip[ thePlayer ] = createBlip ( -931.522,2031.7,60.1, 41, 0, 0, 0, 255, thePlayer ) setElementVisibleTo ( armsdealer_blip[ thePlayer ], thePlayer, true ) car1_blip[ thePlayer ] = createBlipAttachedTo ( source, 51 ) end end end addEventHandler( "onVehicleStartEnter",root,vehicleStartEnterCheck ) function sell_marker_hit( uElement, dim ) if getElementType( uElement ) == 'player' then local skin = getElementModel ( uElement ) if source == sell_marker then if skin == 11 then outputChatBox ( "Thanks for weps dude! Hope this police never get you!", uElement, 155, 100, 82, true ) givePlayerMoney( uElement,1500 ) setVehicleLocked ( ARMSCar, false ) destroyElement( sell_marker ) destroyElement( car1 ) --удаление машины destroyElement ( car1_blip[ uElement ] ) --удаление блипа1 destroyElement ( armsdealer_blip[ uElement ] ) --удаление блипа2 end end end end addEventHandler ( "onMarkerHit",root,sell_marker_hit ) addEventHandler( 'onPlayerQuit',root, function( ) if isElement( car1_blip[ source ] ) then destroyElement( car1_blip[ source ] ) end if isElement( armsdealer_blip[ source ] ) then destroyElement( armsdealer_blip[ source ] ) end armsdealer_blip[ source ] = nil car1_blip[ source ] = nil end ) Просто таблицы юзай .. В качестве индекса юзай игрока. Переменные ARMSCar,sell_marker,car1 определены? Link to comment
Flaker Posted February 25, 2012 Author Share Posted February 25, 2012 ARMSCar,sell_marker,car1 - определенны Blip при въезде на маркер "sell_marker" не удаляется( А как проверить, находится ли игрок в определенной машине при въезде на маркер? И еще, как выдавать деньги именно водителю машины, на которой въезжаешь на маркер? Link to comment
Mc_Trekkie Posted February 25, 2012 Share Posted February 25, 2012 2. addEventHandler ( "onMarkerHit",sell_marker,sell_marker_hit ) -... 3.Можно так: Vehicles = { [IDМашины]=true,[IDМашины]=true } if ( Vehicles[getElementModel ( source )] then --Твой код,если он в машине 4. if (theVehicleID == 420) and (seat ~= 0) then d = getVehicleOccupant(source, 0) givePlayerMoney(d, 30) Link to comment
Flaker Posted February 25, 2012 Author Share Posted February 25, 2012 Что-то насчет первого я не уверен. Я ставил так, в дебагере ошибка вылезает, и когда на маркер заезжаешь, вобще ничего не происходит Link to comment
Flaker Posted February 25, 2012 Author Share Posted February 25, 2012 Вобще попытался сделать проверку: если игрок на машине 433 и со скином 11 то удалить blip с машины и с игрока: function sell_marker_hit( uElement, dim ) if getElementType( uElement ) == 'player' then local skin = getElementModel ( uElement ) if source == sell_marker then Vehicles = { [433]=true,[433]=true } if ( Vehicles[getElementModel ( source )]) then if skin == 11 then d = getVehicleOccupant(car1, 0) givePlayerMoney(d, 1000) outputChatBox ( "Thanks for weps dude! Hope that police never get you!", uElement, 155, 100, 82, true ) setVehicleLocked ( ARMSCar, false ) destroyElement( sell_marker ) destroyElement( car1 ) --удаление машины destroyElement ( car1_blip[ uElement ] ) --удаление блипа1 destroyElement ( armsdealer_blip[ uElement ] ) --удаление блипа2 end end end end end addEventHandler ( "onMarkerHit",root,sell_marker_hit ) Но ошибки пишет при: destroyElement ( car1_blip[ uElement ] ) --удаление блипа1 destroyElement ( armsdealer_blip[ uElement ] ) --удаление блипа2 433 Link to comment
Mc_Trekkie Posted February 25, 2012 Share Posted February 25, 2012 destroyElement ( car1_blip ) --удаление блипа1 destroyElement ( armsdealer_blip] ) --удаление блипа2 uLement?Щито это? И это скрипт доставщика оружия? Попробуй) Зачем ты написал uElement? Если не тяжело-объясни. Link to comment
Flaker Posted February 25, 2012 Author Share Posted February 25, 2012 Kenix, скидывал скрипт(повыше), я оттуда взял. Link to comment
Mc_Trekkie Posted February 25, 2012 Share Posted February 25, 2012 Проверь без uElement. ИМХО,вот почему не работает. Link to comment
Flaker Posted February 25, 2012 Author Share Posted February 25, 2012 Вот код у меня щас такой: function sell_marker_hit( uElement, dim ) if getElementType( uElement ) == 'player' then local skin = getElementModel ( uElement ) if source == sell_marker then Vehicles = { [433]=true,[433]=true } if ( Vehicles[getElementModel ( source )]) then if skin == 11 then d = getVehicleOccupant(car1, 0) givePlayerMoney(d, 1000) outputChatBox ( "Thanks for weps dude! Hope that fucking police never get you!", uElement, 155, 100, 82, true ) setVehicleLocked ( ARMSCar, false ) destroyElement( sell_marker ) destroyElement( car1 ) --удаление машины destroyElement ( car1_blip ) --удаление блипа1 destroyElement ( armsdealer_blip ) --удаление блипа2 end end end end end addEventHandler ( "onMarkerHit",root,sell_marker_hit ) При заезде на маркер ничего не случается вобще( Link to comment
Mc_Trekkie Posted February 26, 2012 Share Posted February 26, 2012 Дебаг? Покажи весь код. root убери. sell_marker поставь Вот,если что-набросок --Server Side function settings (nSeat) if nVehicleID == 420 and nSeat ~= 0 then local uDriver = getVehicleOccupant( source, 0 ) triggerClientEvent(uDriver, "lol") end end addEvent("giveMoney",true) function giveMoney (uDriver) ( uDriver, math.random(500, 3000) ) outputChatBox ( "Спасибо за оружие!Надеюсь копы тебя не словят!", uDriver, 255, 0, 0, true ) setPlayerWantedLevel (uDriver, getPlayerWantedLevel (uDriver) math.random(1, 2) ) end addEventHandler("giveMoney", getRootElement(), giveMoney) Client Side: addEvent("lol", true) function createBM () armsdealerB = createBlip ( 0, 0, 0, 37 ) armsdealerM = createMarker ( 0, 0, 3, "cylinder", 2.5, 255, 0, 255, 117) addEventHandler("lol",getRootElement(), createBM) function onMarkerHit () if nVehicleID == 420 and nSeat ~= 0 then local uDriver = getVehicleOccupant( source, 0 ) triggerServerEvent(uDriver,"giveMoney") destroyElement(armsdealerM) destroyElement(armsdealerB) end end end addEventHandler("onClientMarkerHit", armsdealerM, onMarkerHit) Если работает-сделай как тебе надо. 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