Jump to content

KaMi

Members
  • Posts

    155
  • Joined

  • Last visited

  • Days Won

    1

Everything posted by KaMi

  1. Hello, welcome to lua. Your code is well done, the only problem is that you did not specify the "source" and anclasted the event badly to the function. Here is the solution : function msg ( source ) --Here you clarify that "source" would come as a player local joinedPlayerName = getPlayerName ( source ) local serverName = getServerName( ) -- and send him a greeting outputChatBox ( "Welcome " .. joinedPlayerName .. " to ".. serverName .."!" , source, 255, 255, 255 ) end addEventHandler ( "onPlayerJoin", getRootElement(), msg ) --Each time you anchor the event to the function, you must put the name of this
  2. function asdd(thePlayer) giveWeapon ( thePlayer, 46, 1 ) -- This function give one parachute to player setPedWeaponSlot ( thePlayer, 11 ) --This function set the weapon slot of the player end addEventHandler( "onPlayerJoin", root, function( ) setTimer( asdd, 200, 1, source ) end)
  3. Lo único que había que hacer era reemplazar el getElementType por un getElementData en la linea 95 y especificar que el elemento era el zombi.
  4. -- Advanced Anti Zombie by Kenix version 1.0.6 --[[ It's example how use it. Change this ]] local aSavePlaces = { Circle = { -- x, y, radius { 249, 1230, 10 }; { 2785, -2417, 20 }; }; Cuboid = { -- x, y, z, Width, Depth, Height { 249, 1230, 10, 10, 10, 10 }; }; Rectangle = { -- X, Y, Width, Height { 249, 1230, 10, 10 }; }; Sphere = { -- X, Y, Z, Radius { 249, 1230, 20, 10 }; }; Tube = { -- X, Y, Z, Radius, Height { 249, 1230, 20, 10, 10 }; }; Polygon = { -- X, Y, X1, Y1, X2, Y2, X3, Y3, ... -- You can add like X4, Y4 .. { 249, 1230, 10, 200, 700, 15, 19, 19 }; { 100, 200, 300, 400, 500, 600, 700, 800, 900, 1000 }; }; } local aRadarAreaPlaces = { -- x, y ,size 1, size 2, color: red, green, blue, alpha. { 249, 1230, 10, 10, 0, 255, 0, 255 }; { 2773, -2430, 30, 30, 0, 255, 0, 255 }; } local sResourceName = getResourceName ( resource ) local bUseGunsInSavePlace = get( sResourceName .. '.UseGunsInSaveZone' ) local bUseRadarArea = get( sResourceName .. '.UseRadarArea' ) local pColshape, pRadarArea local bUseRunInSaveZone = get( sResourceName .. '.UseRunInSaveZone' ) local bUseJumpInSaveZone = get( sResourceName .. '.UseJumpInSaveZone' ) local bUseWeaponHudInSaveZone = get( sResourceName .. '.UseWeaponHudInSaveZone' ) local bUseAmmoHudInSaveZone = get( sResourceName .. '.UseAmmoHudInSaveZone' ) local bUseDamageInSaveZone = get( sResourceName .. '.UseDamageInSaveZone' ) addEventHandler ( 'onResourceStart', resourceRoot, function ( ) for s, _ in pairs( aSavePlaces ) do for _, a in pairs( aSavePlaces[ s ] ) do pColshape = _G[ 'createCol' .. s ]( unpack( a ) ) setElementData( pColshape, 'zombieProof', true ) addEventHandler ( 'onColShapeHit', pColshape, function ( pHitElement ) if getElementType( pHitElement ) == 'player' then if not bUseGunsInSavePlace then toggleControl ( pHitElement, 'fire', false ) toggleControl ( pHitElement, 'aim_weapon', false ) toggleControl ( pHitElement, 'vehicle_fire', false ) end if not bUseRunInSaveZone then toggleControl ( pHitElement, 'sprint', false ) end if not bUseJumpInSaveZone then toggleControl ( pHitElement, 'jump', false ) end if not bUseWeaponHudInSaveZone then showPlayerHudComponent ( pHitElement, 'weapon', false ) end if not bUseAmmoHudInSaveZone then showPlayerHudComponent ( pHitElement, 'ammo', false ) end if not bUseDamageInSaveZone then setElementData( pHitElement, 'damage', 'no' ) end elseif (getElementData (pHitElement, "zombie") == true) then -- check if the entered ped kill it killPed( pHitElement ) -- kill ped end end ) addEventHandler ( 'onColShapeLeave', pColshape, function ( pLeaveElement ) if getElementType( pLeaveElement ) == 'player' then if not bUseGunsInSavePlace then toggleControl ( pLeaveElement, 'fire', true ) toggleControl ( pLeaveElement, 'aim_weapon', true ) toggleControl ( pLeaveElement, 'vehicle_fire', true ) end if not bUseRunInSaveZone then toggleControl ( pLeaveElement, 'sprint', true ) end if not bUseJumpInSaveZone then toggleControl ( pLeaveElement, 'jump', true ) end if not bUseWeaponHudInSaveZone then showPlayerHudComponent ( pLeaveElement, 'weapon', true ) end if not bUseAmmoHudInSaveZone then showPlayerHudComponent ( pLeaveElement, 'ammo', true ) end if not bUseDamageInSaveZone then setElementData( pLeaveElement, 'damage', 'yes' ) end elseif getElementType( pLeaveElement ) == 'zombie' then -- check if the entered ped kill it killPed( pLeaveElement ) -- kill ped end end ) end end if bUseRadarArea then for _, a in ipairs( aRadarAreaPlaces ) do pRadarArea = createRadarArea ( unpack( a ) ) end end end )
  5. Te recomiendo crear tu propia zona anti zombis usando las funciones onElementColShapeHit onElementColShapeLeave toggleControl getElementData
  6. Sí quieres hacer tus propias texturas, si.
  7. Si quieres crear ese tipo de objetos necesitaras alguna textura y usar un createPed
  8. Muchas gracias por la ayuda, me funcionó correctamente . ( perdón por las molestias )
  9. Hola , estoy intentando hacer que, mediante un comando, se cree un objeto enfrente del jugador. El problema es que el objeto no se adapta correctamente a la rotación del usuario o algo así . Para que se den una idea, dejaré este video que retrata lo que intento hacer : ( En el minuto 0:22 ) Acá está el código : function tabla1(player) local x,y,z = getElementPosition(player) local rx,ry,rz = getElementRotation(player) setPedAnimation( player, "knife", "knife_part") setPedWeaponSlot ( player, 10 ) triggerClientEvent("sonido", root ) setTimer ( function() createObject ( 3260, x - 1 , y, z, rx, 90, rz ) setPedAnimation( player, false) end, 1000, 1 ) end addCommandHandler("tabla", tabla1) Ayuda, por favor
  10. --CLIENT function loadSettingsRecursively(node, cache) local cache = cache or {}; for i, child in ipairs (xmlNodeGetChildren (node)) do local nodeName = xmlNodeGetName (child); local prefix = xmlNodeGetAttribute (child, "prefix"); if nodeName ~= "group" then local value = xmlNodeGetAttribute (child, "value"); if prefix then cache[prefix] = value; else cache = value; end else cache[prefix] = {}; loadSettingsRecursively(child, cache[prefix]); end end return cache; end local config = xmlLoadFile("config/settings.xml"); local settings = loadSettingsRecursively(config); xmlUnloadFile(config) local msg = settings.msg; local gm = settings.main.gm == "Cnr" and "Freeroam" or "RolePlay"; local players = {}; local valid_models = { [501] = "Drone", [465] = "Oyuncak Helikopter 2", [464] = "Drone", }; function startDrone(player, id) if players[player] then errMsg (msg.ALREADY_HAS_DRONE:format("droned"), player); return; end players[player] = {}; local x,y,z = getElementPosition(player) local drone = createVehicle(id, x+1.5, y+1.5, z) local ped = createPed(180, x+1.5, y+1.5, z) players[player].drone = drone; players[player].ped = ped setElementAlpha(ped, 0) warpPedIntoVehicle(ped, drone) giveWeapon(player, 40, 1, true) bindKey ( player, "x", "down", dronpro ) triggerClientEvent(player, "drone.start", resourceRoot, drone, ped) setPedAnimation(player, "CAMERA", "camstnd_lkabt",-1, false, false, false, true) toggleAllControls (player, false, true, false); addEventHandler ("onVehicleExplode", drone, function () stopDrone(player) end); addEventHandler ("onElementDestroy", drone, function () stopDrone(player) end); end function dronpro(player) triggerClientEvent(player, "onDronProject", player) end function stopDrone(player) if not players[player] then return false; end local ped = players[player].ped; local drone = players[player].drone; if isElement (drone) and isElement (ped) and eventName ~= "onElementDestroy" then drone:destroy(); ped:destroy(); end takeWeapon(player, 40); player:setAnimation(); if eventName ~= "onResourceStop" then triggerClientEvent (player, "drone.stop", player); end players[player] = nil; end function droneHelp(player) if gm == "CnR" then output (msg.HELP_CMD_START, player); output (msg.HELP_CMD_STOP, player); output (msg.HELP_VALID_MODEL_TEXT, player); for i, v in pairs (valid_models) do output (msg.HELP_VALID_MODELS:format(i, v), player); end else --gui end end addCommandHandler ("droneke", function (player) droneHelp(player); end ); addCommandHandler ("drone", function (player, cmd, ...) local id = arg[1] or 501; if tonumber (id) then id=tonumber(id); if valid_models[id] then startDrone (player, id); else errMsg (msg.INVALID_ID, player); end else errMsg (msg.INVALID_ID, player); end end ); addCommandHandler ("nodrone", function (player) if players[player] then stopDrone(player); end end ); addEvent ("drone.stop", true); addEvent ("drone.ctrl", true); addEventHandler ("drone.ctrl", root, function (ped, ctrl, state) triggerClientEvent (root, "drone.ctrl_c", resourceRoot, ped, ctrl, state); end ); addEventHandler ("drone.stop", root, function () stopDrone(client); end ); addEventHandler ("onResourceStop", resourceRoot, function () for i in pairs (players) do stopDrone(i); end end ); addEventHandler ("onPlayerQuit", root, function () stopDrone(source); end ); addEventHandler ("onPlayerWasted", root, function () stopDrone(source); end ); function errMsg(msg_, player) return outputChatBox(msg_, player, 255, 0, 0, true); end function output(msg_, player) return outputChatBox(msg_, player, 255, 255, 255, true); end --SERVER function moveDrone(key, por) if keys[key] then triggerServerEvent ("drone.ctrl", localPlayer, entity.ped, keys[key], por); end end function stopDrone() triggerServerEvent ("drone.stop", localPlayer); end function toggleDroneCamera() camera = not camera; end function startDrone(drone, ped) entity.drone = drone; entity.ped = ped; addEventHandler ("onClientPreRender", root, checkDrone); addEventHandler ("onClientKey", root, moveDrone); bindKey ("fire", "down", toggleDroneCamera); end addEvent ("drone.ctrl_c", true); addEventHandler ("drone.ctrl_c", root, function (ped, ctrl, state) if not isElement (ped) then return; end setPedControlState (ped, ctrl, state); end ); addEvent ("drone.start", true); addEventHandler ("drone.start", root, function (drone, ped) startDrone(drone, ped); setPlayerHudComponentVisible ("radar", false) end ); function terminateDroneOptions() removeEventHandler ("onClientKey", root, moveDrone); removeEventHandler ("onClientPreRender", root, checkDrone); mfx = nil; setCameraTarget (localPlayer); setPlayerHudComponentVisible ("radar", true) toggleAllControls(true); unbindKey ("fire", "down", toggleDroneCamera); for i, v in ipairs (getElementsByType"player") do setPlayerNametagShowing(v, true); end end addEventHandler ("onClientResourceStop", resourceRoot, terminateDroneOptions); addEvent ("drone.stop", true) addEventHandler ("drone.stop", root, terminateDroneOptions); addEventHandler ("onClientResourceStart", resourceRoot, function () local txd = engineLoadTXD ("files/drone.txd"); engineImportTXD(txd, 501); local dff = engineLoadDFF ("files/drone.dff"); engineReplaceModel(dff, 501); end ); function dronpro() local vehicle = getPedOccupiedVehicle(localPlayer) local x, y, z = getElementPosition(vehicle) --Toma la posición del dron. createProjectile(vehicle, 19, x, y + 2, z) --Crea el proyectil en frente del dron. end addEvent("onDronProject", true) addEventHandler("onDronProject", root, dronpro)
  11. Pues es fácil, solo debes tomar la posición del dron ( dependiendo si es un vehiculo/moto/aeronave con una textura reemplazada ) y debes usar las siguientes funciones function dronpro() local vehicle = getPedOccupiedVehicle(localPlayer) -- Detecta el modelo del vehiculo ( que vendria siendo el dron ). if(vehicle)then -- Detecta si el jugador está manejando el dron. local x, y, z = getElementPosition(vehicle) --Toma la posición del dron. createProjectile(vehicle, 19, x, y + 2, z) --Crea el proyectil en frente del dron. end end bindKey("tecla", "down", donpro) -- La bindKey ( debes reemplazar "tecla" por el boton que desees usar para disparar los proyectiles )
  12. O sea, ¿ tú quieres que el dron lanze misiles ?
  13. Ok, first... Open map editor find some object with a similar size of your model move the object to your model Click on the object, press f3, go downstairs and when you see "alpha", change to 0 Now your colision is right !
  14. No, you don´t understand me. I´m talking about "mapping" with the map editor in mta sa.
  15. Do you know about "changing the alpha (visibility) of an object"?
  16. Do you have basic knowledge in mapping? I'm trying to say that you change the visibility of an object (that has a collision) and put it in your creation (depending on the size).
  17. and if you do not use a .col file and you add collision with an object in alpha 0?
  18. KaMi

    Circle safezone

    what do you mean with "circle safezone " ? if you want a safezone, you need to use: createColCircle createRadarArea
  19. function height() local jet = doesPedHaveJetPack ( localPlayer ) if ( jet ) then dxDrawRectangle(40, 498, 20, 163, tocolor(0 , 0 , 0 , 100), false) local x,y,z = getElementPosition (getLocalPlayer()) local height = math.floor((z*001)) if height < 161 then dxDrawRectangle(30, 659-height, 45, 2, tocolor(255 , 255 , 255 , 115), false) elseif height < 322 then dxDrawRectangle(30, 820-height, 45, 2, tocolor(255 , 255 , 255 , 115), false) elseif height < 483 then dxDrawRectangle(30, 981-height, 45, 2, tocolor(255 , 255 , 255 , 115), false) elseif height < 644 then dxDrawRectangle(30, 1142-height, 45, 2, tocolor(255 , 255 , 255 , 115), false) elseif height < 803 then dxDrawRectangle(30, 1303-height, 45, 2, tocolor(255 , 255 , 255 , 115), false) elseif height < 962 then dxDrawRectangle(30, 1464-height, 45, 2, tocolor(255 , 255 , 255 , 115), false) end end end addEventHandler ( "onClientRender", getRootElement(), height ) PD : ¿ do you speak spanish ?
  20. exemple : addEventHandler("onClientGUIClick", root, function () if ( source == GUIEditor_Window[1] ) then --bla bla bla bla elseif ( source == GUIEditor_Window[2] ) then --bla bla bla bla end end )
  21. you do not need to give me the gamemode, you just have to correct the name of the file or add it (in case you do not have it)
  22. that happens because the meta can not find the file. I recommend changing the name of G36C-SDcamo.dff by a name easier
×
×
  • Create New...