[Aporte] Sistema de pintado de vehículos vía Spray(Sencillo)

Aprende lo que no sabes de este lenguaje y encuentra herramientas y códigos útiles.

Moderador: Ayudantes

Reglas del Foro
  • Si tu código es corto, no crees un tema nuevo para liberarlo, publica un mensaje en el tema [Funciones] ¡Publica tu código aquí!.
  • Si creas una guía, debes explicar el código claramente. Evita poner la explicación en forma de comentarios dentro del mismo y no olvides utilizar el BBCode correspondiente: [Pawn]Código aquí[/Pawn].
  • No postear códigos sin probar. Publicar códigos con errores (que impidan compilar el script para el cual está destinado) en este apartado es motivo de sanción.
  • Si tu código necesita plugins, includes u otros códigos adicionales para funcionar, debes mencionarlo en el mensaje.
  • Si has utilizado códigos de otros autores, recuerda colocar los créditos correspondientes. (El plagio es motivo de sanción).
  • Si tu aporte es para un GameMode en específico, debes publicar el tema en el apartado "Guías y Aportes para GameModes específicos".
Responder
Avatar de Usuario
MattHudson
Moderador Global
Moderador Global
Mensajes: 1666
Registrado: 31 Oct 2015 18:16
Ubicación: Argentina, Buenos Aires, San Miguel.
Contactar:
Reputación: 89

21 Ene 2017 18:19

Que tal -hi

No voy a repetir lo que dice el titulo, ya saben de que va a tratar el aporte -happy

Vídeo

Includes usados:
 Codigo Pawno:
1
2
3

#include <a_samp>// Créditos: SA-MP Team.
#include <sscanf2>// Créditos: Emmet_, Y_Less, y todos los que trabajaron en el.
#include <zcmd>// Créditos: ZeeX.
  Cantidad de llaves: Abiertas(0)-Cerradas(0) | Lineas Totales: 3
Codigo:
 Codigo Pawno:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86

new Spray[MAX_PLAYERS][3];
new Float:Coche[MAX_PLAYERS][3];

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
    if(newkeys & KEY_FIRE)
    {
        if(IsPlayerInRangeOfPoint(playerid, 3.0, Coche[playerid][0], Coche[playerid][1], Coche[playerid][2]))
        {
            if(Spray[playerid][2] >= 1)
            {
                SetTimerEx("OnPlayerSpray", 5000, false, "i", playerid);
            }
        }
    }
    else return 1;
    return 1;
}

CMD:spray(playerid, params[])
{
    new color1, color2;
    if(sscanf(params, "ii", color1, color2)) return SendClientMessage(playerid, -1, "USO: /spray [ID del color 1)][ID del color 2]");
    if(color2 > 126 || color2 < 0) return SendClientMessage(playerid, 0xFF0000FF,"El color2 no puede ser menor a 0 o mayor a 126");
    if(color1 > 126 || color1 < 0) return SendClientMessage(playerid, 0xFF0000FF,"El color1 no puede ser menor a 0 o mayor a 126");
    Spray[playerid][0] = color1;
    Spray[playerid][1] = color2;

    new VehiculoCercano = GetClosestCar(playerid), Float:X, Float:Y, Float:Z;
      GetVehiclePos(VehiculoCercano, X, Y, Z);
    if(IsPlayerInRangeOfPoint(playerid, 5.0, X, Y , Z))
    {
           Coche[playerid][0] = X;
           Coche[playerid][1] = Y;
           Coche[playerid][2] = Z;
           Spray[playerid][2] = VehiculoCercano;
           SendClientMessage(playerid, -1, "¡Ahora rocía el vehículo con el spray para pintarlo!");
           GivePlayerWeapon(playerid, 41, 1500);
           SetPlayerArmedWeapon(playerid, 41);
    }
    else SendClientMessage(playerid, -1, "No estas cerca de ningún vehículo para pintar");
    return 1;
}

forward OnPlayerSpray(playerid);
public OnPlayerSpray(playerid)
{
    if(Spray[playerid][2] >= 1)
    {
        ChangeVehicleColor(Spray[playerid][2], Spray[playerid][0], Spray[playerid][1]);
        Spray[playerid][0] = 0;
        Spray[playerid][1] = 0;
         Spray[playerid][2] = 0;
           Coche[playerid][0] = 0;
           Coche[playerid][1] = 0;
           Coche[playerid][2] = 0;
         SendClientMessage(playerid, 0x00FF00FF, "¡Vehículo Pintado!");
    }
     return 1;
}

stock GetClosestCar(playerid, exception = INVALID_VEHICLE_ID) { //Lo saque de la primer ZC que encontré en mi disco duro, ni idea de quien sera :V
    new Float:Distance, target = -1;
    for(new v; v < MAX_VEHICLES; v++) if(doesVehicleExist(v)) {
        if(v != exception && (target < 0 || Distance > GetDistancePlayerVeh(playerid, v))) {
            target = v;
            Distance = GetDistancePlayerVeh(playerid, v);
        }
    }
    return target;
}

stock doesVehicleExist(vehicleid) { //Lo saque de la primer ZC que encontré en mi disco duro, ni idea de quien sera :V
    if(GetVehicleModel(vehicleid) >= 400) {
        return 1;
    }
    return 0;
}

stock GetDistancePlayerVeh(playerid, veh) { //Lo saque de la primer ZC que encontré en mi disco duro, ni idea de quien sera :V
    new Float:Floats[7];
    GetPlayerPos(playerid, Floats[0], Floats[1], Floats[2]);
    GetVehiclePos(veh, Floats[3], Floats[4], Floats[5]);
    Floats[6] = floatsqroot((Floats[3]-Floats[0])*(Floats[3]-Floats[0])+(Floats[4]-Floats[1])*(Floats[4]-Floats[1])+(Floats[5]-Floats[2])*(Floats[5]-Floats[2]));
    return floatround(Floats[6]);
}
  Cantidad de llaves: Abiertas(14)-Cerradas(14) | Lineas Totales: 86

Tiempo de realización: Puede ser que hayan sido 10-15 minutos.
Idea: Lo vi en un sistema de tunning de B-Matt(Sí, irónico...) y quise hacer algo propio y que no valla por IDs del jugador o del coche(Como es en el sistema de B-Matt)
¿Porque lo hice?: Estaba aburrido, me acorde que mucha gente no sabe del uso de Timers y OnPlayerKeyStateChange, asi que cree esto.
Avatar de Usuario
FailLout
Avanzado
Avanzado
Mensajes: 1385
Registrado: 10 Abr 2014 14:09
Ubicación: Estados Unidos
Contactar:
Reputación: 40

21 Ene 2017 18:24

Esta muy bueno para hacerle modificaciones!!

Gran aporte Matt!! -hi
[img]http://i.imgur.com/ewTFkYP.jpg[/img]

[url=http://pawnscript.com/foro/viewtopic.php?f=41&t=7263&p=42268#p42268]Roleplay Base v0.2 Beta[/url]

Innovando, Imaginando y creando así nacen los mejores sistemas
Luego vienen los bugs
Nacion Zombie RPG
Battlerine Royale SA-MP

Avatar de Usuario
MattHudson
Moderador Global
Moderador Global
Mensajes: 1666
Registrado: 31 Oct 2015 18:16
Ubicación: Argentina, Buenos Aires, San Miguel.
Contactar:
Reputación: 89

21 Ene 2017 18:32

FailLout escribió:Esta muy bueno para hacerle modificaciones!!

Gran aporte Matt!! -hi
Yo en mi gamemode personal le saque un buen jugo al sistema -punk

¡Gracias!
Avatar de Usuario
FailLout
Avanzado
Avanzado
Mensajes: 1385
Registrado: 10 Abr 2014 14:09
Ubicación: Estados Unidos
Contactar:
Reputación: 40

21 Ene 2017 18:58

MattHudson escribió:
FailLout escribió:Esta muy bueno para hacerle modificaciones!!

Gran aporte Matt!! -hi
Yo en mi gamemode personal le saque un buen jugo al sistema -punk

¡Gracias!

Es que el sistema esta bastante adaptable a muchos cambios y bastante bueno para hacerle muchas cositas -dance4

hahaha -laughing
[img]http://i.imgur.com/ewTFkYP.jpg[/img]

[url=http://pawnscript.com/foro/viewtopic.php?f=41&t=7263&p=42268#p42268]Roleplay Base v0.2 Beta[/url]

Innovando, Imaginando y creando así nacen los mejores sistemas
Luego vienen los bugs
Nacion Zombie RPG
Battlerine Royale SA-MP

JoseJoaquinZc
Avanzado
Avanzado
Mensajes: 1286
Registrado: 07 Jul 2014 10:32
Reputación: 40

21 Ene 2017 19:37

Muy buen sistema, con un poco más de cosas le vendrán bien.
Lo usare de base, lo re-modelare un poco más.
Avatar de Usuario
MattHudson
Moderador Global
Moderador Global
Mensajes: 1666
Registrado: 31 Oct 2015 18:16
Ubicación: Argentina, Buenos Aires, San Miguel.
Contactar:
Reputación: 89

21 Ene 2017 20:19

JoseJoaquinZc escribió:Muy buen sistema, con un poco más de cosas le vendrán bien.
Lo usare de base, lo re-modelare un poco más.
Esta hecho así con dos fines:

-Usarlo como base para scripts mas imponentes.
-Usarlo para aprender un poco sobre el uso de SetTimerEx, condicionales, y simples variables 2D.

[EDIT]

Me olvide.. ¡Gracias! -nosweat
elrobagmxD
Baneado
Baneado
Mensajes: 491
Registrado: 13 Mar 2015 20:56
Ubicación: Argentina-Salta
Contactar:
Reputación: 0

22 Ene 2017 13:36

Excelente Aporte, esta bien proo para editarlo en algo mas funcional EJ: Taller de Pintura XD.. -hi
GM Totalmente de 0 al %86

Proximamente Re-Apuerta de Ciudad Roleplay
Grupo FB:Ciudad Roleplay Grupo Oficial

Ayudo con Mappeos Gratis Aquí

[/u]
Aportes Nuevos (28/11/2016)

Spoiler:
1)Nuevo LSPD Clickeame.
2) Mecanico Clickeame.

CloZ
Baneado
Baneado
Mensajes: 51
Registrado: 22 Abr 2016 06:38
Reputación: 0

25 Ene 2017 17:38

elrobagmxD escribió:Excelente Aporte, esta bien proo para editarlo en algo mas funcional EJ: Taller de Pintura XD.. -hi
Si.

Matthudson.

parece que es este? https://www.youtube.com/watch?v=KBpb-OY-BMA

si de casualidad fuera, deberías dejar créditos..
"Es necesario criticar al que quiere aprender?, es necesario criticar a quien se esfuerza?, es necesario criticar, pero al que critica al quien quiere aprender.
Avatar de Usuario
MattHudson
Moderador Global
Moderador Global
Mensajes: 1666
Registrado: 31 Oct 2015 18:16
Ubicación: Argentina, Buenos Aires, San Miguel.
Contactar:
Reputación: 89

25 Ene 2017 18:00

franco-samp escribió:
Si.

Matthudson.

parece que es este? https://www.youtube.com/watch?v=KBpb-OY-BMA

si de casualidad fuera, deberías dejar créditos..
No voy a repetir lo que ya dije en el tema principal(que ademas esta relacionado con la acusacion que das...), lo cual deberias haber leido antes de publicar esa respuesta.
SALAS
Aprendiz
Aprendiz
Mensajes: 656
Registrado: 03 Jul 2016 19:57
Reputación: 4

25 Ene 2017 18:12

franco-samp escribió:
elrobagmxD escribió:Excelente Aporte, esta bien proo para editarlo en algo mas funcional EJ: Taller de Pintura XD.. -hi
Si.

Matthudson.

parece que es este? https://www.youtube.com/watch?v=KBpb-OY-BMA

si de casualidad fuera, deberías dejar créditos..
Si de casualidad fuera....

Que la funcion sea la misma no quiere decir que esto no sea suyo.

El scripter de un servidor trucho puede crear un comando /motor. Lo que hara este cmd es prender el motor del auto.
El scripter de LS-RP.es puede crear el comando /motor. Lo que hara este cmd es prender el motor del auto.
En fin. SI miras los codigos, son totalmente diferentes.
Entiendes?
Avatar de Usuario
FailLout
Avanzado
Avanzado
Mensajes: 1385
Registrado: 10 Abr 2014 14:09
Ubicación: Estados Unidos
Contactar:
Reputación: 40

25 Ene 2017 18:51

franco-samp escribió:
elrobagmxD escribió:Excelente Aporte, esta bien proo para editarlo en algo mas funcional EJ: Taller de Pintura XD.. -hi
Si.

Matthudson.

parece que es este? https://www.youtube.com/watch?v=KBpb-OY-BMA

si de casualidad fuera, deberías dejar créditos..

Los codigos son diferentes .... Tal vez la idea sea la misma pero en codigo no se parece. A mi parecer

-hi
[img]http://i.imgur.com/ewTFkYP.jpg[/img]

[url=http://pawnscript.com/foro/viewtopic.php?f=41&t=7263&p=42268#p42268]Roleplay Base v0.2 Beta[/url]

Innovando, Imaginando y creando así nacen los mejores sistemas
Luego vienen los bugs
Nacion Zombie RPG
Battlerine Royale SA-MP

Avatar de Usuario
zarcort
Baneado
Baneado
Mensajes: 536
Registrado: 31 Oct 2016 13:28
Ubicación: Pawnoscript
Reputación: 4

28 Ene 2017 00:45

buena guia
Cada Día Se Aprende Algo Nuevo


Scripter:25%
WebMaster:12%
Mapper:100%
Diseñador:12
Texturizador:0
Mi aporte




SandK1ng
Aprendiz
Aprendiz
Mensajes: 9
Registrado: 01 Abr 2017 00:20
Reputación: 0

01 Abr 2017 01:01

Muchas gracias :D
Responder