Como Puedo Hacer Este Comando
#1

Hola ,Pues como puedo crear un comando asi /v [Id/nombre] [Color1 [Color2]
Pero Para Que Lo Usen Todos Pues intente sacarlo de un fs pero me marca Error en el stock GetVehicleModelIDFromName. Pues si tienen ese comando me lo podran pasar por favor :$.

Saludos
Reply
#2

Ese comando es solo para los vehiculos que tienen la variable de venta, si lo usas con un vehiculo del pawno obviamente votara error ya que la funsion guarda el cambio del color via scriptfile.
Reply
#3

Quote:
Originally Posted by SeQualX
Посмотреть сообщение
Ese comando es solo para los vehiculos que tienen la variable de venta, si lo usas con un vehiculo del pawno obviamente votara error ya que la funsion guarda el cambio del color via scriptfile.
FAIL, no es asi.

mira el Ladmin4v2 que tiene un comando similar que cumple con lo que vos pedis. creo q es "/car"
Reply
#4

pawn Код:
else if(strcmp(x_nr,"color",true) == 0)
            {
                if(PlayerInfo[playerid][pPcarkey] == 999 && PlayerInfo[playerid][pPcarkey2] == 999 && PlayerInfo[playerid][pPcarkey3] == 999)
                {
                    SendClientMessage(playerid, COLOR_GREY,"No tienes un coche para pintar!");
                    return 1;
                }
                if(GetPlayerMoney(playerid) < 99)
                {
                    SendClientMessage(playerid, COLOR_GREY,"No Tienes Tanto Dinero Para Pintar Este Coche.");
                    return 1;
                }
                tmp = strtok(cmdtext, idx);
                if(!strlen(tmp))
                {
                    SendClientMessage(playerid, COLOR_WHITE, "Utiliza: /V Color [Color 1] [Color 2]");
                    return 1;
                }
                new color1;
                color1 = strval(tmp);
                if(color1 < 0 && color1 > 126)
                {
                    SendClientMessage(playerid, COLOR_GREY, "Color Erronea. Utilize: Numero 0 ~ 126.");
                    return 1;
                }
                tmp = strtok(cmdtext, idx);
                if(!strlen(tmp))
                {
                    SendClientMessage(playerid, COLOR_WHITE, "Utiliza: /V Color [Color 1] [Color 2]");
                    return 1;
                }
                new color2;
                color2 = strval(tmp);
                if(color2 < 0 && color2 > 126)
                {
                    SendClientMessage(playerid, COLOR_GREY, "Color Erronea. Utilize: Numero 0 ~ 126.");
                    return 1;
                }

                new vehid;
                if(GetPlayerVehicleID(playerid) == PlayerInfo[playerid][pPcarkey]) { vehid = PlayerInfo[playerid][pPcarkey]; }
                else if(GetPlayerVehicleID(playerid) == PlayerInfo[playerid][pPcarkey2]) { vehid = PlayerInfo[playerid][pPcarkey2]; }
                else if(GetPlayerVehicleID(playerid) == PlayerInfo[playerid][pPcarkey3]) { vehid = PlayerInfo[playerid][pPcarkey3]; }
                else { return 1; }

                if(IsPlayerInVehicle(playerid, vehid))
                {
                    CarInfo[vehid][cColorOne] = color1;
                    CarInfo[vehid][cColorTwo] = color2;
                    SafeGivePlayerMoney(playerid, -100);
                    GameTextForPlayer(playerid, "~w~Vehiculo Pintado Por~n~~r~-$100", 5000, 1);
                    ChangeVehicleColor(vehid, color1, color2);
                    OnPropUpdate();
                    OnPlayerUpdate(playerid);
                    return 1;
                }
                else
                {
                    SendClientMessage(playerid, COLOR_GREY," Este Coche No Es Tuyo.");
                    return 1;
                }
            }
Si es asi

CarInfo[vehid][cColorOne] = color1;
CarInfo[vehid][cColorTwo] = color2;

esa es la info de cada color que modifica en el script poreso no se puede usar con carros que no sean de venta...
Reply
#5

Mm Solo define lo que te tira error

pawn Код:
GetVehicleModelIDFromName(vname[])
{
   for(new i = 0; i < 211; i++)
   {
      if(strfind(aVehicleNames[i], vname, true) != -1)
      return i + 400;
   }
   return -1;
}
Y si kieres todo el comando

pawn Код:
if(strcmp(cmd, "/v", true, 10) == 0)//Comando!
{
      new String[200];
      new tmp[256];
      new Float:x, Float:y, Float:z;
      new v[MAX_PLAYERS];
      DestroyVehicle(v[playerid]);
      tmp = strtok(cmdtext, idx);
      if(!strlen(tmp)) return SendClientMessage(playerid, BLANCO, "Use /v [Nombre/Modelo]");

      new vehicle = GetVehicleModelIDFromName(tmp);
      if(vehicle < 400 || vehicle > 611) return SendClientMessage(playerid, COLOR_ROJO, "Nombre invalido.");


      new Float:a;
      GetPlayerFacingAngle(playerid, a);
      GetPlayerPos(playerid, x, y, z);
      DestroyVehicle(v[playerid]);
      if(IsPlayerInAnyVehicle(playerid) == 1)
      {
         GetXYInFrontOfPlayer(playerid, x, y, 8);
      }
      else
      {
         GetXYInFrontOfPlayer(playerid, x, y, 5);
      }
      if(strcmp(cmd, "/v", true, 10) == 0)
      DestroyVehicle(v[playerid]);
      v[playerid] = CreateVehicle(vehicle, x, y, z, a, -1, -1, 60);
      LinkVehicleToInterior(v[playerid], GetPlayerInterior(playerid));
      PutPlayerInVehicle(playerid,v[playerid],0);

      format(String, sizeof(String), "Toma tu %s", aVehicleNames[vehicle - 400]);
      SendClientMessage(playerid, COLOR_VERDE, String);
      return 1;
}
Reply
#6

Es esto?
pawn Код:
if(strcmp(cmd, "/veh", true) == 0)
    {
        if(IsPlayerConnected(playerid))
        {
            if (PlayerInfo[playerid][pAdmin] < 4)
            {
                SendClientMessage(playerid, COLOR_GRAD1, "   No estas autorizado a usar ese comando!");
                return 1;
            }
            tmp = strtok(cmdtext, idx);
            if(!strlen(tmp))
            {
                SendClientMessage(playerid, COLOR_GRAD2, "USO: /veh [carid] [color1] [color2]");
                return 1;
            }
            new car;
            car = strval(tmp);
            if(car < 400 || car > 611) { SendClientMessage(playerid, COLOR_GREY, "   El numero de vehiclo solo puede estar entre 400 y 611 !"); return 1; }
            tmp = strtok(cmdtext, idx);
            if(!strlen(tmp))
            {
                SendClientMessage(playerid, COLOR_GRAD2, "USO: /veh [carid] [color1] [color2]");
                return 1;
            }
            new color1;
            color1 = strval(tmp);
            if(color1 < 0 || color1 > 126) { SendClientMessage(playerid, COLOR_GREY, "   El numero de la pintura solo puede estar entre 0 y 126!"); return 1; }
            tmp = strtok(cmdtext, idx);
            if(!strlen(tmp))
            {
                SendClientMessage(playerid, COLOR_GRAD2, "USO: /veh [carid] [color1] [color2]");
                return 1;
            }
            new color2;
            color2 = strval(tmp);
            if(color2 < 0 || color2 > 126) { SendClientMessage(playerid, COLOR_GREY, "   El numero de la pintura solo puede estar entre 0 y 126"); return 1; }
            new Float:X,Float:Y,Float:Z;
            GetPlayerPos(playerid, X,Y,Z);
            new carid = CreateVehicle(car, X,Y,Z, 0.0, color1, color2, 600000);
            CreatedCars[CreatedCar] = carid;
            CreatedCar ++;
            format(string, sizeof(string), "   Vehiculo %d spawneado.", carid);
            SendClientMessage(playerid, COLOR_GREY, string);
        }
        return 1;
    }
Versiуn Para RP
Reply
#7

mamc_crazy Me Da Los Mismo Errores El Que Tenia

SuperMarioRol Sii ese es pero no lo tendras para no version de rp??

Saludos
Reply
#8

No, no lo tengo pero solo quitando lo de admin y poco mбs deberia ir...o no...no lo sй

Leyendo el codigo tal vez sea con la funcion createdcars, luego te lo miro mejor
Reply
#9

Por que no vas por partes?? ...

-Crea un comando que sea /v [id] y te cree el vehiculo en negro. (funciones que vas a usar strtok y strcmp)
NOTA: Puede que no tengas strtok en tu gm... intenta conseguirlo de algun

-Una vez hecho esto estoy podes agregarle los nombres: Los ordenas alfabeticamente y vas reduciendo los nombres al minimo hasta para que sean lo mas cortos posibles, pero no se "choquen" con otros nombres de autos similares. ("infernus" va a pasar a ser "inf", no podria ser "in" porque chocaria con "intruder")
Les definis el modelo a cada nombre...
Finalmente unis el comando anterior con este.

-Ahora podes agregarle el [color1] y [color2]...
Es realmente muy simple. Ya teniendo de base que los autos que creas salgan negros tenes ya habilitada que si el jugador no llena los casilleros de color le salga negro.
Para crear los casilleros tenes que usar la misma funcion que en el primer paso: strtok. Tambien vas a tener que usar strval para pasar el texto en donde dice el color a un numero.

Si pudiste hacer que el comando funcione correctamente lo unico que queda es restringir los modelos para admins .. etc ...

suerte!.
Reply
#10

Talves Te falto definir esto:

pawn Код:
stock GetXYInFrontOfPlayer(playerid, &Float:x2, &Float:y2, Float:distance)
{
   new Float:a;

   GetPlayerPos(playerid, x2, y2, a);
   GetPlayerFacingAngle(playerid, a);

   if(GetPlayerVehicleID(playerid))
   {
      GetVehicleZAngle(GetPlayerVehicleID(playerid), a);
   }

   x2 += (distance * floatsin(-a, degrees));
   y2 += (distance * floatcos(-a, degrees));
}
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)