Saltar al contenido

-EnzoMetlc-

Usuario
  • Contenido

    29
  • Ingreso

  • Última visita

  • Días ganados

    1

-EnzoMetlc- ganó por última vez el día 2 Enero 2014

¡-EnzoMetlc- tenía el contenido más querido!

1 Seguidor

Acerca de -EnzoMetlc-

  • Cumpleaños 04/08/1997

Profile Information

  • Sexo
    Hombre
  • Desde
    Italia (?
  • Nick
    [S]ky[L]
  • Habilidades
    Drifting
  • País
    Argentina

Contact Methods

  • Skype
    zardock9

-EnzoMetlc-'s Achievements

Ciyei

Ciyei (1/15)

2

Reputación comunidad

  1. Te hago todo el código y también quieres que te busque las cosas cuando tú podrías hacerlo en 1 segundo?? Yo no soy tan paciente, pero bueno. http://wiki.sa-mp.com/wiki/OnPlayerKeyStateChange http://wiki.sa-mp.com/wiki/IsPlayerInAnyVehicle http://wiki.sa-mp.com/wiki/AddVehicleComponent PD: te recomiendo ir a un foro en donde se enfoquen en PAWN, el mejor que te recomiendo es Forum SA-MP: http://forum.sa-mp.com/forumdisplay.php?f=29.
  2. Entonces añádela: public OnPlayerKeyStateChange(playerid, newkeys, oldkeys) // Es llamada cuando un jugador pulsa una tecla. { if(newkeys & KEY_FIRE) // Si la tecla es 'Click'. { if(IsPlayerInAnyVehicle(playerid)) // Si el jugador está dentro de cualquier vehículo. { AddVehicleComponent(GetPlayerVehicleID(playerid), 1010); // Añadimos el componente número 1010 (Nitro). } } return 1; } Te recomiendo buscar las funciones en la Wiki para aprender más de ellas.
  3. No le veo nada raro. Seguro que está en 'OnPlayerKeyStateChange'?
  4. Se supone que también deberías pasarme el código de dicha línea, o sino me es imposible saber el error que tiene...
  5. Cuál es la línea en donde te da el error?
  6. Sí, ya sé. Con sscanf me refiero a esto: http://forum.sa-mp.com/showthread.php?t=120356.
  7. Fácil. En 'OnPlayerKeyStateChange' pon esto: if(newkeys & KEY_FIRE) // Si la tecla es 'Click'. { if(IsPlayerInAnyVehicle(playerid)) // Si el jugador está dentro de cualquier vehículo. { AddVehicleComponent(GetPlayerVehicleID(playerid), 1010); // Añadimos el componente número 1010 (Nitro). } } Un saludo.
  8. Utilizas sscanf?
  9. Sacas las coordenadas que deseas, luego creas el comando, y dentro de los comandos utiliza http://wiki.sa-mp.com/wiki/SetPlayerPos.
  10. Claro. Como he dicho actúa como 'if'. Supón que lo que está entre el '?' y ':' es una if: if(Valor == 5) Valor = 3; Y la otra parte es 'else': else if(Valor == 3) Valor = 5; Con dicho operador sería lo mismo, pero más optimizado: /*if(*/Valor ?/*==*/ (5)/*El valor que deseamos que tenga*/ :/*else*/ (3)/*Ahora el valor de 'Valor' es 3*/; // Pruébalo en el Pawno para distinguirlo mejor. Si lo hacemos con 'if' y 'else': if(Valor == 5) Valor = 4; // Un ejemplo. else Valor = 3; Otro ejemplo: new a = random(5); a = (a == 3) ? (5) : (4); // A 'a' le queremos asignar un valor. // Si el valor de 'a' es '3'. // Ahora el valor de 'a' será '5'. // Si el valor de 'a' no fue '3', su valor ahora será '4'. No es tan complicado, pero si sigues teniendo dudas no dudes en decírmelo.
  11. Las estructuras de control en PAWN son primordiales a la hora de usarlos en un script. Existen varias estructuras, entre ellas: if, else, else if, switch y ? (operador terciario). if Verifica si una variable tiene 'X' valor. Ejemplo: new Valor = random(3); // Creamos la variable 'Valor' y le asignamos un valor random entre el '0-2'. if(Valor == 2) print("* El valor de 'Valor' es: 2."); Dicha condicional acepta los siguientes operadores: [Operador] [significado] [uso] == Verifica si el valor de una variable es igual a... if(Valor1 == Valor2) <= Verifica si el valor de una variable es igual o menor a... if(Valor1 <= Valor2) >= Verifica si el valor de una variable es igual o mayor a... if(Valor1 >= Valor2) < Verifica si el valor de una variable es menor a... if(Valor1 < Valor2) > Verifica si el valor de una variable es mayor a... if(Valor1 > Valor2) != Verifica si el valor de una variable no es igual a... if(Valor1 != Valor2) else Verifica si la condición anterior a él no se cumplió. Ejemplo: if(Valor == 2) print("* El valor de 'Valor' es: 2."); else print("* El valor de 'Valor' no es: 2."); else if Hace otra verificación si la condicional anterior a él no se cumplió. Ejemplo: if(Valor == 2) print("* El valor de 'Valor' es: 2."); else if(Valor == 1) print("* El valor de 'Valor' es: 1."); switch Trabaja más rápido que 'if', ya que digamos que 'If lee uno por uno hasta llegar a su valor, pero switch va directo al valor (Es mejor buscar en el índice que página por página). Ojo, dicha estructura sólo trabaja con constantes. Ejemplo: new Valor = random(3); // Creamos la variable 'Valor' y le asignamos un valor random entre el '0-2'. switch(Valor) { case 0: print("* El valor de 'Valor' es: 0."); case 1: print("* El valor de 'Valor' es: 1."); case 2: print("* El valor de 'Valor' es: 2."); } También trabaja con binarios. Otros ejemplos son: new Valor = (random(3) ? ('A') : ('B'); // Creamos la variable 'Valor' y le asignamos un valor random entre 'A-B'. switch(Valor) { case 'A': print("* El valor de 'Valor' es: A."); case 'B': print("* El valor de 'Valor' es: B."); } //==== new bool:Valor = (random(2) ? (true) : (false); // Creamos la variable 'Valor' y le asignamos un valor random entre el 'true-false'. switch(Valor) { case true: print("* El valor de 'Valor' es: true."); case false: print("* El valor de 'Valor' es: false."); } Esta estructura también tiene otra expresión llamada 'default' que verifica si ninguna de las anteriores verificaciones eran ciertas. Ejemplo: new Valor = random(50) // Creamos la variable 'Valor' y le asignamos un valor random entre '0-49'. switch(Valor) { case 34: print("* El valor de 'Valor' es: 34."); case 22: print("* El valor de 'Valor' es: 22."); default: print("* El valor de 'Valor' no es ni '34' y ni '22'."); } ? Actúa como la condicional 'if'. Con este operador podemos acortar códigos y hacerlo más fácil. Ejemplo: new bool:Valor = (random(2) ? (true) : (false)); if(Valor == true) print("* El valor de 'Valor' es verdadero."); else if(Valor == false) print("* El valor de 'Valor' es falso."); Eso es poco eficaz, con dicho operador podríamos acortar el código y hacerlo de esta manera: new bool:Valor = (random(2) ? (true) : (false)); printf("* El valor de 'Valor' es %b.", Valor ? (true) : (false)); Lo que está entre el '?' y el ':' es lo que devolvería si la condición es verdadera, la otra parte es lo que devolvería si es falsa. _____________________ Eso fue todo, cualquier duda o error relacionado con el tópico házmelo saber! Saludos.
  12. Sólo mencioné que su código está mal, no le veo lo malo de corregir a los demás. Es lo mismo hacer estas 2 cosas: for(new i = 0; i != GetMaxPlayers(); i++) for(new i = 0; i < GetMaxPlayers(); i++) Crees que eso está bien? Prueba esto y dime hasta dónde llegó el valor: for(new i = 0; i < GetMaxPlayers(); i++) { printf("Valor de 'i': %i.", i); } PD: No es para dármelas de pro, lo contrario, yo siempre intento enseñar, y de que los demás aprendan. No aclaro que yo sé todo, pero yo trato de enseñar todo lo que sé.
  13. Si dices eso, ¿para qué le das el código completo en vez de al menos explicarle algo? En verdad, algunas veces, es mejor dar un código completo para que el autor se guíe de dicho código para así aprender en próximas ocasiones. Además, tu código está mal. Sería así: for(new i = 0; i <= GetMaxPlayers(); i++) // Un bucle que recorrerá a todos los jugadores. { if(IsPlayerConnected(i)) // Si 'i' es la ID de un jugador conectado. { if(EnEvento[i] != 0) // Si el valor de 'i' no es igual a 0. { SpawPlayer(i); // Respawneamos al jugador que haya cumplido con las anteriores condiciones. EnEvento[i] = 0; // Le damos el valor a '0'. } } } Es un poco menos de iteracciones y la diferencia es mínima, pero siempre hay que buscar la manera más optimizada de hacer las cosas. PD: Si quieres algo más rápido que un bucle, te recomiendo y_iterate de Y_Less: http://forum.sa-mp.com/showthread.php?t=92679&highlight=foreach.
  14. Es algo sencillo: // El cuerpo de tu comando. if(EnEvento[playerid] != 0) return SendClientMessage(playerid, -1, "* No estás en un evento!"); // Si no está en un evento o minijuego (úsalo para que no abusen). else // De lo contrario. { SpawPlayer(playerid); EnEvento[playerid] = 0; SendClientMessage(playerid, -1, "* Saliste de un evento."); } // Otras cosas si deseas... Recuerda cambiar 'EnEvento' a la variable que usas para los eventos.
×
×
  • Crear nuevo...