Jump to content

-Gus-

Members
  • Posts

    120
  • Joined

  • Last visited

Posts posted by -Gus-

  1. the map is too easy, i'm not saying that is has to be like pure skills paradise but this... it's just too easy, the deco saves you

    deco doesn't matter

    i know, that's why i said that. he had some good comments just because of the deco.

  2. bueno, les explico, yo cree un gui para cambiar la tecla que llama a una funcion, es decir, y introduzco el nombre de la tecla que quiero en el gui, clickeo en "ok" y entonces cambia la anterior tecla que estaba y pone la que introduci en el gui, asi a partir de ahora puedo llamar a la funcion con la nueva tecla que puse. el problema es que si pongo cualquier cosa (por ejemplo: 348374847) me bindea "eso" como si fuera una tecla para llamar la funcion. entonces lo que yo hice fue crear una tabla con la lista de teclas permitidas, pero lo que no se es como comprobar que lo que escribi en el campo de la tecla, esta en la tabla, les muestro el script:

      
    --creo la tabla con la lista de teclas permitidas 
    allowedKeys = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9",  
     "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", 
     "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", 
     "num_0", "num_1", "num_2", "num_3", "num_4", "num_5", 
     "num_6", "num_7", "num_8", "num_9", "F1", "F2", "F3", "F4", "F5", 
     "F6", "F7", "F8", "F9", "F10", "F11", "F12"} 
      
    --creo todos los elementos del gui 
    window = guiCreateWindow(0.1941,0.306,0.1934,0.2318,"Position Saver",true) 
    savelabel = guiCreateLabel(0.057,0.191,0.4144,0.0899,"Save Position Key:",true,window) 
    guiLabelSetColor(savelabel,0,255,0) 
    guiSetFont(savelabel,"default-bold-small") 
    loadlabel = guiCreateLabel(0.0532,0.5899,0.4144,0.1067,"Load Position Key:",true,window) 
    guiLabelSetColor(loadlabel,0,255,0) 
    guiSetFont(loadlabel,"default-bold-small") 
    editload = guiCreateEdit(0.0456,0.7528,0.3916,0.1404,"",true,window) 
    editsave = guiCreateEdit(0.0456,0.3596,0.384,0.1404,"",true,window) 
    okbtn = guiCreateButton(0.5323,0.3202,0.403,0.2528,"OK",true,window) 
    guiSetFont(okbtn,"default-bold-small") 
    cancelbtn = guiCreateButton(0.5323,0.6461,0.403,0.2528,"Cancel",true,window) 
    guiSetFont(cancelbtn,"default-bold-small") 
      
    -- y los oculto para que el gui aparezca cuando llame la funcion 
    guiSetVisible (window, false) 
    guiSetInputEnabled (false) 
      
    function clickok () --creo la funcion que se va a llamar cuando el cliente clickee el boton "OK". 
      
      
    loadkey1 = guiGetText (editload) -- defino el texto del "editload" del gui como loadkey1 
    savekey1 = guiGetText (editsave) -- defino el texto del "editsave" del gui como savekey1 
      
    --[[aca tendria que poner una condicion, si lo que esta en el "editload" y "editsave" esta en la tabla creada anteriormente entonces ejecutar lo que esta abajo, y si no lo estan, dar un mensaje como "invalid keys" o algo asi, pero no se como hacer eso. ]] 
      
    triggerServerEvent ("changeBinds", getRootElement(), savekey1, loadkey1) -- llamo al evento server, ya que la funcion que quiero que llame la tecla que pongo en el gui esta serverside. 
      
    outputChatBox ("#AAAAAAKeys successfully changed to:" , 0, 0, 0, true) -- pongo en el chat lo que paso 
      
    outputChatBox ("#AAAAAASave:#00FF00 "..savekey1 , 0, 0, 0, true) 
    outputChatBox ("#AAAAAALoad:#00FF00 "..loadkey1 , 0, 0, 0, true)   
      
    guiSetVisible (window, false) --oculto el gui 
    guiSetInputEnabled (false) 
      
    end 
    end 
      
    function clickcan () 
    guiSetVisible (window, false) --oculto el gui cuando clickeen en cancel 
    guiSetInputEnabled (false) 
    end 
      
    function openp () 
    guiSetVisible (window, true) 
    guiSetInputEnabled (true) 
    end 
      
    bindKey ("F6", "down", openp) 
    addEventHandler ("onClientGUIClick", okbtn, clickok, false) 
    addEventHandler ("onClientGUIClick", cancelbtn, clickcan, false) 
      
    

    estuve pensando toda la tarde como hacer que compruebe si lo que puse en el GUI esta en al tabla, probe varias cosas pero nada, si me pueden ayudar se los agradeceria mucho.

  3. modifique el script, hice esto:

    --client side

    function getstuff (key, keyState) 
      
    player = getLocalPlayer () 
    vehicle = getPedOccupiedVehicle (player)  
    --obtener el vehiculo actual del jugador 
      
    px,py,pz = getElementPosition (vehicle) 
    rx,ry,rz = getElementRotation (vehicle) 
    vx,vy,vz = getElementVelocity (vehicle) 
    model = getElementModel (vehicle) 
    --obtener posicion, rotacion, velocidad y modelo de vehiculo 
      
    if (model) then 
    outputChatBox ("#~Position saved Successfully!", 0, 255, 0, true) 
    else 
    outputChatBox ("#~#FF0000You are not in a vehicle!", 0, 255, 0, true) 
    end 
    end 
      
    function teleporter (key, keyState) 
    setElementModel (vehicle, model) 
    setElementPosition (vehicle,px,py,pz) 
    setElementRotation (vehicle,rx,ry,rz) 
    fixVehicle (vehicle) 
    addVehicleUpgrade (vehicle, 1010) 
    setVehicleFrozen (vehicle, true) 
    outputChatBox ("#~Position loaded Successfully!", 0, 255, 0, true) 
    end 
    function timerf () 
    setVehicleFrozen (vehicle, false) 
    setElementVelocity (vehicle,vx,vy,vz) 
    end 
      
    setTimer (timerf, 1000, 1) 
      
    end 
      
    bindKey ("z", "down", getstuff) 
    bindKey ("x", "down", teleporter) 
    

    y funciona bien, pero tengo otro problema, explico:

    si yo guardo mi posicion, sigo la carrera normalmente, pero en el trayecto agarro un pickup de "vehiclechange" y despues cargo la posicion, cuando vuelvo a agarrar el pickup ya no funciona.

  4. bueno, hoy cree un script para modo race DM, que lo que hace es que cuando pongas cierto comando, guarda tu vehiculo actual, posicion, rotacion y velocidad, entonces cuando pones el segundo comando te lleva a ese lugar, con el vehiculo que tenias en ese momento, seria como para ir "guardando" el progreso de la carrera, asi poder testear mapas mas facil y rapido, pero el problema es que, cuando pongo el segundo comando, para volver al punto de "guardado" sale esto:

    Race integrity test fail (client): Your vehicle has been destroyed. Please panic.

    Race integrity test fail: Invalid vehicle for player **mi nombre**

    segun tengo entendido eso pasa cuando el vehiculo de un jugador es destruido, pero yo ya habia sido warpeado a otro vehiculo antes de que este fuera destruido :|

    este es el script:

    --server side

    function getstuff (playerSource) 
      
    vehicle = getPedOccupiedVehicle (playerSource)  
    --obtener el vehiculo actual del jugador 
      
    px,py,pz = getElementPosition (vehicle) 
    rx,ry,rz = getElementRotation (vehicle) 
    vx,vy,vz = getElementVelocity (vehicle) 
    model = getElementModel (vehicle) 
    --obtener posicion, rotacion, velocidad y modelo de vehiculo 
      
    -- avisarle al jugador que cosas se guardaron 
    if (model) then --si se obtuvo un modelo valido entonces... 
    outputChatBox ('Model:#AAAAAA '.. model ..'', playerSource, 255, 0, 0, true) 
    outputChatBox ('Position:#AAAAAA '.. px .. ', '.. py .. ', '.. pz .. '', playerSource, 255, 0, 0, true) 
    outputChatBox ('Rotation:#AAAAAA '.. rx .. ', '.. ry .. ', '.. rz .. '', playerSource, 255, 0, 0, true) 
    outputChatBox ('Velocity:#AAAAAA '.. vx .. ', '.. vy .. ', '.. vz .. '', playerSource, 255, 0, 0, true) 
    else --pero si no, avisar. 
    outputChatBox ("You're not in a vehicle!", playerSource, 255, 0, 0, true) 
    end 
    end 
      
      
    function teleporter (playerSource) 
    newvehicle = createVehicle (model,px,py,pz,rx,ry,rz)-- crear un vehiculo con todo lo que se guardo antes 
    warpPedIntoVehicle (playerSource, newvehicle) --meter al jugador en ese vehiculo 
      
    setElementVelocity (newvehicle,vx,vy,vz) --poner la velocidad guardada  
    destroyElement (vehicle) --destruir el vehiculo anterior 
    end 
      
    -- agregar los comandos 
    addCommandHandler ("savepos", getstuff) 
    addCommandHandler ("loadpos", teleporter) 
    

    a ver si me pueden ayudar.

  5. there's no error in debugscript, it just doesn't work, but is still working on race, this is what i did to test the script:

    1. start the resource (race_ghost)

    2. start a new dm map

    3. reach the hunter

    4. restart the map

    and no ghost appears

×
×
  • Create New...