Jump to content

Почему GUI вызывается для всех...


Recommended Posts

Мне надо,что бы триггер был ТОЛЬКО для того,кто зашел на маркер,а не всех игроков подряд...

Что делать?

server

  
function GiveVehicle ( thePlayer ) 
findvehicle = createVehicle ( 445, -1301.1414794922, -176.54035949707, 15 ) 
findvehicleblip = createBlipAttachedTo (findvehicle,41) 
           function givePlayerMoneyAndMission2 (theVehicle) 
           if ( getElementModel ( theVehicle ) == 445 ) then 
           destroyElement ( findvehicle ) 
           destroyElement ( findvehicleblip ) 
           givePlayerMoney (source,15000) 
           outputChatBox ("[MISSION]You: Yes,i found money!",source,150,56,150,false) 
           triggerClientEvent ( source, "mission2",getRootElement() ) 
           removeEventHandler ( "newvehicle", getRootElement(),GiveVehicle ) 
           removeEventHandler ( "onPlayerVehicleEnter",getRootElement(),givePlayerMoneyAndMission2) 
           end 
           end 
           addEventHandler("onPlayerVehicleEnter",getRootElement(),givePlayerMoneyAndMission2)       
end 
addEvent( "newvehicle", true ) 
addEventHandler( "newvehicle", getRootElement(),GiveVehicle ) 
  
  
  
function Mission2Settings ( thePlayer ) 
VehicleOfMission2 = createVehicle ( 445, -1315.8223876953, -167.18829345703, 13.734149932861 ) 
VehicleOfMission2Blip = createBlipAttachedTo ( VehicleOfMission2,41) 
  
           function Mission2Property (theVehicle) 
             if ( getElementModel ( theVehicle ) == 445 ) then 
             outputChatBox ("[MISSION][HELP]Drive this vehicle to the 'flag' blip!",source,140,120,50,false) 
             outputChatBox ("[MISSION][HELP]Mission 2 Started",source,35,15,0,false) 
             MarkerOfMission2 = createMarker ( 154.13981628418, -1943.1120605469, 2.5, "cylinder", 1.5, 0, 255, 0, 170 ) 
             MarkerOfMission2Blip = createBlipAttachedTo ( MarkerOfMission2,53) 
                function EndThisMission (hitElement) 
                destroyElement(MarkerOfMission2) 
                destroyElement(VehicleOfMission2Blip) 
                destroyElement(VehicleOfMission2) 
                destroyElement(MarkerOfMission2Blip) 
                givePlayerMoney (hitElement,25000) 
                outputChatBox ("[MISSION][HELP]You are done all missions,wait new missions soon! \"{SMILIES_PATH}/icon_biggrin.gif\" alt=\"\" title=\"Very Happy\" />",hitElement,255,0,0,false) 
                outputChatBox ("[MISSION]You: Yes,i found it!! YEAH!!!",hitElement,255,255,0,false) 
                setPedArmor (hitElement,100) 
                setElementHealth(hitElement,100) 
                end 
                addEventHandler("onMarkerHit",MarkerOfMission2,EndThisMission) 
             end 
           end 
           addEventHandler("onPlayerVehicleEnter",getRootElement(),Mission2Property) 
end 
addEvent( "mission2settings", true ) 
addEventHandler( "mission2settings", getRootElement(),Mission2Settings  ) 
  
  
function TheArmyThe () 
killerPed = createPed (287, -1326.7757568359, -177.43579101563, 14 ) 
killPed (killerPed) 
end 
addEvent( "armyped", true ) 
addEventHandler( "armyped", getRootElement(),TheArmyThe  ) 
  

client

MissionMarker = createMarker ( 209.83544921875, 1921.2099609375, 16.5, "cylinder", 2.5, 0, 255, 0, 100 ) 
MissionMarkerBlip = createBlipAttachedTo ( MissionMarker, 6 ) 
  
function DestroyElementNeed () 
destroyElement ( MissionMarker ) 
destroyElement ( MissionMarkerBlip ) 
end 
addEventHandler ( "onClientMarkerHit", MissionMarker, DestroyElementNeed ) 
  
GUIEditor = { 
    button = {}, 
    window = {} 
} 
    function  MissionMarkerStart () 
       GUIEditor.window[1] = guiCreateWindow(487, 257, 317, 325, "Zombie Mod RPG Missions(F4)", false) 
        guiWindowSetSizable(GUIEditor.window[1], false) 
  
        GUIEditor.button[1] = guiCreateButton(9, 95, 132, 75, "Start", false, GUIEditor.window[1]) 
        GUIEditor.button[2] = guiCreateButton(151, 95, 143, 73, "Stop", false, GUIEditor.window[1])      
        showCursor ( true )  
         
        function SetVisible () 
        if ( guiGetVisible ( GUIEditor.window[1] ) == false ) then 
        guiSetVisible ( GUIEditor.window[1],true ) 
        showCursor ( true )  
        else 
        guiSetVisible ( GUIEditor.window[1],false )   
        showCursor ( false )  
        end 
        end 
        bindKey ("f4","down",SetVisible) 
         
        function StartMissionsButton () 
         guiSetVisible ( GUIEditor.window[1],false ) 
         showCursor ( false ) 
         outputChatBox ("[MISSION]Mission 1: Find the vehicle!",0,255,0,false) 
         outputChatBox ("[MISSION]You:I must find vehicle...i must to take it return!",255,255,0,false) 
         triggerServerEvent ( "newvehicle",getRootElement()) 
         end 
        addEventHandler ( "onClientGUIClick", GUIEditor.button[1], StartMissionsButton, false ) 
         
    end 
    addEventHandler ( "onClientMarkerHit", MissionMarker, MissionMarkerStart ) 
     
    function MissionSecoundStart () 
    Mission2Marker = createMarker ( -1326.7757568359, -174.43579101563, 13.5, "cylinder", 2.5, 0, 255, 0, 100 ) 
    triggerServerEvent ( "armyped",getRootElement()) 
        function Mission2MarkerStart (hitElement) 
        outputChatBox("[MISSION]You:Hmmm...ok",110,167,116) 
        outputChatBox("[MISSION][HELP]:Turn back and sit into the car!",120,0,0) 
        triggerServerEvent ( "mission2settings",hitElement) 
        outputChatBox ("[YOU]:Oh,he is died...he said that in LS i can find Vaccine",hitElement,255,0,0,false) 
        destroyElement( Mission2Marker ) 
        end 
        addEventHandler ( "onClientMarkerHit", Mission2Marker, Mission2MarkerStart ) 
    end 
    addEvent( "mission2", true ) 
    addEventHandler( "mission2", getRootElement(),MissionSecoundStart ) 

Link to comment

Твой код - не читаемый.

У тебя обработчики входа на маркер есть на сервере и клиенте, ты бы сказал, какой именно.

Единственное что я заметил - в triggerClientEvent у тебя первый параметр source, а в source, в данном случае, передается getRootElement, следовательно клиентский скрипт запускается у всех игроков.

Исправь в клиенте (38 строка):

triggerServerEvent ( "newvehicle",getRootElement()) 

Замени на:

triggerServerEvent ( "newvehicle",localPlayer) 

Link to comment
  • Other Languages Moderators
Чувак, удаляй все и пиши заново, учи синтаксис lua, если у тебя что-то и работает, то только через жуткие костыли, где баги компенсируют друг друга.

811898.gif

И табуляция хромает.

Link to comment
Чувак, удаляй все и пиши заново, учи синтаксис lua, если у тебя что-то и работает, то только через жуткие костыли, где баги компенсируют друг друга.

811898.gif

Впаять 3 дня в это все и переделать? Какие еще баги? (это не к тебе) ---- табуляция,лично мне,подходит,все,что здесь испорчено,это из-за форума,а не из-за меня,если я правильно понял,что это значит.

Поскольку я плохо понимаю trigger'ы так как о них написано аж столько много,столько в гугле даже 5 страниц о нем нет,а понять его нельзя,даже прочитав о нем все...

Link to comment
Твой код - не читаемый.

У тебя обработчики входа на маркер есть на сервере и клиенте, ты бы сказал, какой именно.

Единственное что я заметил - в triggerClientEvent у тебя первый параметр source, а в source, в данном случае, передается getRootElement, следовательно клиентский скрипт запускается у всех игроков.

Исправь в клиенте (38 строка):

triggerServerEvent ( "newvehicle",getRootElement()) 

Замени на:

triggerServerEvent ( "newvehicle",localPlayer) 

Спасибо,проблем меньше

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