-
Posts
4,121 -
Joined
-
Last visited
-
Days Won
2
Everything posted by Kenix
-
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.
-
https://wiki.multitheftauto.com/wiki/OnElementClicked ?
-
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 Код не весь посмотрел.
-
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" ) )
-
No problem Test this in lua demo http://www.lua.org/cgi-bin/demo
-
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
-
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.
-
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.
-
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.
-
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.
-
Why you use 14 some events name? And you should use source instead of thePlayer( if source player element )
-
Клиентский скрипт это код который выполнятется на компьютере у игрока. http://ru.wikipedia.org/wiki/Клиент_(информатика) Такое мало вероятно. Функция getRootElement или root возвращает дерево всех элементов. Т.е к примеру есть событие onClientGUIClick Если мы аттачим к обработчику события элемент ( например гуи-кнопку ) то событие будет срабатывать именно когда мы жмём на эту гуи-кнопку , а если мы будем использовать root( getRootElement ) то при нажатие например на любые гуи элементы событие будет срабатывать. Таблицы P.S Я не мастер объяснять что-либо.
-
Listen to my advice. Otherwise, in the future will spare this.
-
Senselessly this create zero effect. You need learn it. If you want write scripts further. This is council listen to him.
-
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
-
We can't use return value in function guiCreateColorLabel because is returned value nil. http://lua-users.org/wiki/FunctionsTutorial Understand?
-
No problem
-
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
-
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?
-
Yes,because he not returned gui element in function.
-
--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 )
-
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 )