Jump to content

Blip для определенных игроков.


Recommended Posts

Здравствуйте, подскажите пожалуста, как поставить blip на определенного игрока, после совершенного им действия (сел в машину). И что-бы этот blip виден был, только определенным скинам.

Link to comment

Создаем блип по срабатыванию 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

Я вот сделал примерно так:

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
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

ARMSCar,sell_marker,car1 - определенны

Blip при въезде на маркер "sell_marker" не удаляется(

А как проверить, находится ли игрок в определенной машине при въезде на маркер?

И еще, как выдавать деньги именно водителю машины, на которой въезжаешь на маркер?

Link to comment

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

image.png

Вобще попытался сделать проверку: если игрок на машине 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 

36707608.image433

Link to comment
   destroyElement ( car1_blip ) --удаление блипа1 
                    destroyElement ( armsdealer_blip] )  --удаление блипа2 

uLement?Щито это?

И это скрипт доставщика оружия?:)

Попробуй)

Зачем ты написал uElement?

Если не тяжело-объясни.

Link to comment

Вот код у меня щас такой:

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

Дебаг?

Покажи весь код.

root убери.

sell_marker поставь

Вот,если что-набросок :D

--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

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...