Jump to content

Kenix

Retired Staff
  • Posts

    4,121
  • Joined

  • Last visited

  • Days Won

    2

Everything posted by Kenix

  1. Xeno,Use setElementData for sync client side <-> server side. It's better. Example: Server addEvent( "data:event",true ) addEventHandler( "onPlayerLogin",root, function( ) local ac = getPlayerAccount( soruce ) if ac then if not isGuestAccount( ac ) then setElementData( source,"Zkills", tonumber( getAccountData( acc,"Zombie kills" ) ) or 0 ) end end end ) addEventHandler( "onPlayerQuit",root, function( ) local ac = getPlayerAccount( soruce ) if ac then if not isGuestAccount( ac ) then setAccountData( ac,"Zombie kills", tonumber( getElementData( source,"Zkills" ) ) or 0 ) end end end ) addEventHandler( "data:event",root, function( t,v ) setElementData( source,t,v ) end ) Client local lvl = { img = { [50] = "Newbie!", [500] = "Normal", [1000] = "Pro" }, points = { [50] = true, [500] = true, [1000] = true } } function _setElementData( el,t,v ) if isElement( el ) and type( t ) == "string" and v then return triggerServerEvent( "data:event",el,t,v ) end return false end addEventHandler( "onClientPedWasted",root, function( killer ) if getElementType( killer ) == "player" and getElementType( source ) == "ped" then _setElementData( killer,"Zkills",tonumber( getElementData( killer,"Zkills" ) or 0 ) + 1 ) if lvl["points"][ tonumber( getElementData( killer,"Zkills" ) or 0 ) ] then dxDrawText( tostring( lvl["img"][ tonumber( getElementData( killer,"Zkills" ) or 0 ) ] ),200,200,200,200,tocolor ( 255, 255, 255, 255 ), 1, "pricedown" ) end outputChatBox( "You killing: "..tostring( getElementData( killer,"Zkills" ) or 0 ).." zombies!" ) end end ) Here's an example we have.
  2. Kenix

    Cursor

    https://wiki.multitheftauto.com/wiki/OnElementClicked ?
  3. 1.https://wiki.multitheftauto.com/wiki/AddEventHandler getPropagated = false 2. addEventHandler( "onClientMarkerHit",test, function( player ) if player == localPlayer then if RentBicycleWin then guiSetVisible( RentBicycleWin, true ) end showCursor( true ) guiSetInputEnabled( true ) end end ,false ) И ещё Это не правильно client не может быть аттачен к обработчику события и функция и так вызывается addEventHandler("onClientResourceStart", client, GUISpawnVehicleQ()) Правильно вот так: addEventHandler( "onClientResourceStart", resourceRoot, GUISpawnVehicleQ ) P.S Код не весь посмотрел.
  4. Nope,wrong. It return string ,i test it in lua demo. Yeah,but if player not use arguments in command ( just /some ) we can check it with type function or with condition if ... then ( this is same ). Example addCommandHandler( "some", function( soruce,_,a ) if type( a ) == 'string' then outputChatBox( "string" ) else outputChatBox( "WRONG:Use /some and arguments" ) end end ) P.S If he need test this in mta: print( type( "1" ) ) Just outputChatBox( type( "1" ) )
  5. No problem Test this in lua demo http://www.lua.org/cgi-bin/demo
  6. You mean this? print( type( 1 ) ) -- print number Example: function main( arg ) if type( arg ) == 'number' then return true end return false end print( main( 1 ) ) --> true
  7. You not know what you creating. Read please https://wiki.multitheftauto.com/wiki/Scr ... troduction http://www.lua.org/manual/5.1/ And learn local Marcklbara = createMarker( 1367.8377685547, -1279.7449951172, 14.446875, 'arrow', 1.5, 255, 255, 0, 150 ) local Marcklde5el = createMarker( 285.8000, -86.5470, 1002.6390, 'arrow', 1.5, 255, 255, 0, 150 ) setElementInterior( Marcklde5el, 4 ) function Entrer( hitElement, matchingDimension ) if getElementType( hitElement ) == "player" then ---fadeCamera( hitElement,false ) -- idk why you create it setElementInterior( hitElement, 4, 287.8000, -84.5470, 1001.5390 ) end end addEventHandler( "onMarkerHit", Marcklbara, Entrer ) function Sortie( hitElement, matchingDimension ) if getElementType( hitElement ) == "player" then --fadeCamera( hitElement,false ) -- idk why you create it setElementInterior( hitElement,0,1363.8331298828,-1280.0424804688,13.546875 ) end end addEventHandler( "onMarkerHit", Marcklde5el, Sortie ) P.S I tested it now.
  8. Because you create it in code. fadeCamera( hitElement,false ) Learn please https://wiki.multitheftauto.com/wiki/Scr ... troduction http://www.lua.org/manual/5.1/ It should work,you create error maybe.
  9. Server local Marcklbara = createMarker( 1367.8377685547, -1279.7449951172, 14.446875, 'arrow', 1.5, 255, 255, 0, 150 ) local Marcklde5el = createMarker( 285.8000, -86.5470, 1002.6390, 'arrow', 1.5, 255, 255, 0, 150 ) setElementInterior( Marcklde5el, 4 ) function Entrer( hitElement, matchingDimension ) if getElementType( hitElement ) == "player" then fadeCamera( hitElement,false ) setElementInterior( hitElement, 4, 287.8000, -84.5470, 1001.5390 ) end end addEventHandler( "onMarkerHit", Marcklbara, Entrer ) function Sortie( hitElement, matchingDimension ) if getElementType( hitElement ) == "player" then fadeCamera( hitElement,false ) setElementInterior( hitElement,0,1363.8331298828,-1280.0424804688,13.546875 ) end end addEventHandler( "onMarkerHit", Marcklde5el, Sortie ) https://wiki.multitheftauto.com/wiki/Scr ... troduction http://www.lua.org/manual/5.1/ Learn it. P.S Tabulate code in next time. P.S I update code.
  10. Maybe you need this: function handling ( ) for _,veh in pairs( getElementsByType( "vehicle" ) ) do setVehicleHandling(veh, "mass", 1600) setVehicleHandling(veh, "turnMass", 3921.3) setVehicleHandling(veh, "dragCoeff", 1.8 ) setVehicleHandling(veh, "centerOfMass", { 0, -0.4, 0 } ) setVehicleHandling(veh, "percentSubmerged", 75) setVehicleHandling(veh, "tractionMultiplier", 0.75) setVehicleHandling(veh, "tractionLoss", 0.85) setVehicleHandling(veh, "tractionBias", 0.52) setVehicleHandling(veh, "numberOfGears", 5) setVehicleHandling(veh, "maxVelocity", 200) setVehicleHandling(veh, "engineAcceleration", 8.8 ) setVehicleHandling(veh, "engineInertia", 10) setVehicleHandling(veh, "driveType", "rwd") setVehicleHandling(veh, "engineType", "petrol") setVehicleHandling(veh, "brakeDeceleration", 10) setVehicleHandling(veh, "brakeBias", 0.53) setVehicleHandling(veh, "ABS", 0) setVehicleHandling(veh, "steeringLock", 35) setVehicleHandling(veh, "suspensionForceLevel", 1.3) setVehicleHandling(veh, "suspensionDamping", 0.12) setVehicleHandling(veh, "suspensionHighSpeedDamping", 0) setVehicleHandling(veh, "suspensionUpperLimit", 0.28 ) setVehicleHandling(veh, "suspensionLowerLimit", -0.12) setVehicleHandling(veh, "suspensionFrontRearBias", 0.38 ) setVehicleHandling(veh, "suspensionAntiDiveMultiplier", 0) setVehicleHandling(veh, "seatOffsetDistance", 0.2) setVehicleHandling(veh, "collisionDamageMultiplier", 0.24) setVehicleHandling(veh, "monetary", 25000) setVehicleHandling(veh, "modelFlags", 0x40000000) setVehicleHandling(veh, "handlingFlags", 0x10200008 ) setVehicleHandling(veh, "headLight", 0) setVehicleHandling(veh, "tailLight", 1) setVehicleHandling(veh, "animGroup", 0) end end addEventHandler ( "onResourceStart", resourceRoot, handling ) P.S Better create table with settings. P.S source in this event ( is started resource ( not vehicle ) ) P.S Xeno player is not element,player is nil in argument function.
  11. Kenix

    Infopanel..

    Why you use 14 some events name? And you should use source instead of thePlayer( if source player element )
  12. Клиентский скрипт это код который выполнятется на компьютере у игрока. http://ru.wikipedia.org/wiki/Клиент_(информатика) Такое мало вероятно. Функция getRootElement или root возвращает дерево всех элементов. Т.е к примеру есть событие onClientGUIClick Если мы аттачим к обработчику события элемент ( например гуи-кнопку ) то событие будет срабатывать именно когда мы жмём на эту гуи-кнопку , а если мы будем использовать root( getRootElement ) то при нажатие например на любые гуи элементы событие будет срабатывать. Таблицы P.S Я не мастер объяснять что-либо.
  13. Listen to my advice. Otherwise, in the future will spare this.
  14. Senselessly this create zero effect. You need learn it. If you want write scripts further. This is council listen to him.
  15. This is not your script. You need learn lua http://www.lua.org/manual/5.1/ and this https://wiki.multitheftauto.com/wiki/Scr ... troduction
  16. We can't use return value in function guiCreateColorLabel because is returned value nil. http://lua-users.org/wiki/FunctionsTutorial Understand?
  17. Example -- server side addEvent ( "onStopMoveCamera",true ) local tCamera = { } local tPos = { } local function moveCamera( source ) tPos[ source ]["x"] = tPos[ source ]["x"] + 1 if tPos[ source ]["x"] > 50 then tPos[ source ]["x"] = 0 end setCameraMatrix( source,tPos[ source ]["x"],tPos[ source ]["y"],tPos[ source ]["z"] ) end addEventHandler( "onPlayerJoin",root, function( ) tPos[ source ] = { } tPos[ source ]["x"] = 0 tPos[ source ]["y"] = 0 tPos[ source ]["z"] = 0 tCamera[ source ] = setTimer( moveCamera,50,0,source ) end ) addEventHandler( "onStopMoveCamera",root, function( ) if isTimer( tCamera[ source ] ) then killTimer( tCamera[ source ] ) end end ) addEventHandler( "onPlayerQuit",root, function( ) if isTimer( tCamera[ source ] ) then killTimer( tCamera[ source ] ) end tCamera[ source ] = nil tPos[ source ] = nil end ) -- client side triggerServerEvent( "onStopMoveCamera",localPlayer ) LOL P.S Update code
  18. Player connect -> downloading -> can use client side scripts.( If player downloading you can't use client side scripts ) You need if player downloading move camera?
  19. Yes,because he not returned gui element in function.
  20. Kenix

    error

    You are sure? Try update resources http://code.google.com/p/mtasa-resources/downloads/list And show your mtaserver.conf Show server.log
  21. --Server side addEvent( "createAnim",true ) giovanna = createPed( 258, 2135.662109375, -1739.5107421875, 17.281345367432 ) setElementData( giovanna,"anim",true ) --[[ setElementInterior( giovanna, 0 ) setElementDimension( giovanna, 0 ) ]] -- is default 0 setPedRotation( giovanna, 87 ) setElementFrozen( giovanna, true ) addEventHandler( "createAnim",root, function( ) setPedAnimation ( source, "INT_OFFICE", "OFF_Sit_Idle_Loop", -1, false, false, false ) end ) -- Client side addEventHandler( "onClientElementStreamIn",root, function( ) if getElementType( source ) == "ped" and getElementData( source,"anim" ) then triggerServerEvent( "createAnim",source ) end end )
  22. More better Server local timer = { } local counts = { } local repeats = 3 addCommandHandler( "countdown", function( source ) if isTimer( timer[ source ] ) then return end counts[ source ] = repeats + 1 timer[ source ] = setTimer( function( player ) counts[ player ] = counts[ player ] - 1 if counts[ player ] == 0 then return outputChatBox( "GO!" ) end outputChatBox( "countdown: "..counts[ player ] ) end, 1000, repeats+1,source ) end ) addEventHandler( "onPlayerQuit",root, function( ) counts[ source ] = nil if isTimer( timer[ source ] ) then killTimer( timer[ source ] ) end timer[ source ] = nil end )
×
×
  • Create New...