їPorque me dб Unknown command?
#1

Os dejarй todo.

pawn Код:
//Comando que da Unknown command.
CMD:crearauto(playerid,params[])
{
   if(sscanf(params,"ii",params[0],params[1])) return SendClientMessage(playerid,-1,"/crearauto [id] [precio]");//sscanf detecta que los parбmetros utilizen C formato (recomiendo ver un tutorial sobre este si no sabes su funcionamiento)
   new
      i = SlotVehLibre();//almacenamos en "i" el slot de auto que halla libre

   if(!i)
   {
      return SendClientMessage(playerid,-1,"ЎNo hay mas espacio!");//el slot retorna 0 si no encuentra un valor disponible
   }

   GetPlayerPos(playerid,Vehiculo[i][PosX],Vehiculo[i][PosY],Vehiculo[i][PosZ]);//almacenamos la posicion del jugador en la cordenada del auto
   GetPlayerFacingAngle(playerid,Vehiculo[i][Rot]);//almacenamos en las variablesdel auto el angulo del jugador.
   Vehiculo[i][Precio] = params[1];//almacenamos el parametro [1] ( si es un integrer cuenta los espacios)
   Vehiculo[i][Modelo] = params[0];

   new
      VehID = CreateVehicle(Vehiculo[i][Modelo],Vehiculo[i][PosX],Vehiculo[i][PosY],Vehiculo[i][PosZ],Vehiculo[i][Rot],0,0,600000);//creamos el vehiculo segun lso datos q nos da el array

   IDVeh[VehID] = i;
   ActualizarAuto(i);//el stock de antes, guardamos en el .INI
   SendClientMessage(playerid,-1,"Creaste el vehiculo correctamente");//mensaje al jugador
   return 1;
}

//stocks

stock CargarAutos()
{
   new
      S[60];//donde almacenaremos el archivo.

   for(new i; i < TOTAL_AUTOS; i++)//un loop
   {
      format(S,sizeof S,"Autos/%d.ini",i);//formateamos el archivo, segun el id del auto que guardamos, osea el valor de I
      if(fexist(S))//si el archivo que formateamos antes, existe (el auto es creado)
      {
         INI_ParseFile(S,"CargarVeh_%s",.bExtra = true, .extra = i);//cargamos los datos del .INI, esta funciуn extrae desde el archivo los datos, y usamos el parбmetro "Extra" ya que elejimos donde almacenarlo (en que celda del array)
         new
            VehID = CreateVehicle(Vehiculo[i][Modelo],Vehiculo[i][PosX],Vehiculo[i][PosY],Vehiculo[i][PosZ],Vehiculo[i][Rot],0,0,600000);//creamos el vehiculo segun lso datos q nos da el archivo

         Iter_Add(fVeh,i);//agregamos al loop de foreach, el valor "i" (osea agrega totao de valores como autos halla)
         IDVeh[VehID] = i;//almacenamos el ID de venta de el auto, osea VehID es el original, lo que retorno createVehicle y i es el ID del auto de venta..
      }
   }
   return 1;
}

stock ActualizarAuto(i)
{
   new
      S[40];//creamos el array.

   format(S,sizeof S,"Autos/%d.ini",i);//formateamos el archivo,

   new
      INI:Arch = INI_Open(S);//abrios el archivo que formateamos arriba

   INI_SetTag(Arch,"data");//el TAG del archivo (sale como [TAG])
   INI_WriteString(Arch,"Dueсo",Vehiculo[i][Dueno]);
   INI_WriteInt(Arch,"Modelo",Vehiculo[i][Modelo]);//escribimos el archivo segъn los datos del array
   INI_WriteInt(Arch,"Precio",Vehiculo[i][Precio]);
   INI_WriteFloat(Arch,"Pos_x",Vehiculo[i][PosX]);
   INI_WriteFloat(Arch,"Pos_y",Vehiculo[i][PosY]);
   INI_WriteFloat(Arch,"Pos_z",Vehiculo[i][PosZ]);
   INI_WriteFloat(Arch,"Rot",Vehiculo[i][Rot]);
   INI_Close(Arch);//cerramos el archivo (y lo guardamos)
   return 1;
}

stock SlotVehLibre()//este stock sirve para encontrar un slot de auto libre.
{
   for(new i = 1; i < TOTAL_AUTOS; i++)//un loop con todos los autos
   {
      if(!Vehiculo[i][Modelo]) return i;//si movelo == 0 significa que el dato estб en blanco, osea estб vacнo
   }
   return 0;//si no encuentra, retorna 0
}
Reply
#2

En algun lugar del codigo (no me detuve a mirarlo) hay algun error (no necesariamente de script) el cual hace que la ejecucion de ese codigo termine sin alcanzar el 'return 1;' y por ende te dice que el comando no existe.
Reply
#3

Tienes que hacer que el proceso logre alcanzar "return 1;" de lo contrario te saldra ese error siempre.
Reply
#4

Quote:
Originally Posted by estacuy
Посмотреть сообщение
Tienes que hacer que el proceso logre alcanzar "return 1;" de lo contrario te saldra ese error siempre.
Dile como hacerlo, no le repitas lo mismo que ya le dijeron.

pawn Код:
printf("linea ...");
usa printf para saber hasta donde llega la ejecucion del comando y asi sabras donde esta el problema
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)