[Duda] como le saco el dcmd a este comando
#1

Buenas, este es el comando /v y me pregunto como le saco el dcmd a ese comando, ya que no uso esos procesadores, lo quiero tipo strcmp. espero que me ayuden .
pawn Код:
dcmd_v(playerid, params[])
{
new
idx,
iString[ 128 ];

if ( gPlayerStatus[ playerid ] != 0 )
{
format   ( iString, 128, "[ERROR]: You are already using "%s".", aSelNames[ gPlayerStatus[ playerid ] - 1 ] );
SendClientMessage   ( playerid, COLOR_RED, iString );

return true;
}

if ( params[ 0 ] == '' )    // Same effect as a !strlen check.
return SendClientMessage( playerid, COLOR_RED, "[USAGE]: /v MODELID/NAME or /vehicle MODELID/NAME" );

//***************
// Fix by Mike! *
//***************

idx = GetVehicleModelIDFromName( params );

if( idx == -1 )
{
idx = strval(iString);

if ( idx < MIN_VEHI_ID || idx > MAX_VEHI_ID )
return SendClientMessage(playerid, COLOR_RED, "[ERROR]: Invalid MODELID/NAME");
}

new
Float:x,
Float:y,
Float:z,
Float:a;

GetPlayerPos(playerid, x, y, z);
GetXYInFrontOfPlayer(playerid, x, y, VEHI_DIS);
GetPlayerFacingAngle(playerid, a);

curPlayerVehM[playerid] = idx;

curPlayerVehI[playerid] = CreateVehicle(idx, x, y, z + 2.0, a + 90.0, -1, -1, 5000);
LinkVehicleToInterior(curPlayerVehI[playerid], GetPlayerInterior(playerid));

curServerVehP[curPlayerVehI[playerid]][spawn] = true;
curServerVehP[curPlayerVehI[playerid]][vmodel]  = idx;
curServerVehP[curPlayerVehI[playerid]][vInt] = GetPlayerInterior(playerid);

format(iString, 128, "[SUCCESS]: Spawned a "%s" (MODELID: %d, VEHICLEID: %d)", aVehicleNames[idx - MIN_VEHI_ID], idx, curPlayerVehI[playerid]);

SendClientMessage(playerid, COLOR_GREEN, iString);

return true;
}
Reply
#2

Es mejor usar procesadores de comandos, mбs facil y rбpido.
Reply
#3

Ъsalo asн y ya (:
Reply
#4

Quote:
Originally Posted by MaRcOsWeB
Посмотреть сообщение
Es mejor usar procesadores de comandos, mбs facil y rбpido.
En cierto aspecto tienes razуn

Quote:
Originally Posted by murdoxix
Посмотреть сообщение
Ъsalo asн y ya (:
Si no vas a aportar algo ъtil no comentes, para eso estan las reglas LOL

Como vez zcmd contiene parбmetros diferentes a strcmp, en mi aspecto es mejor utilizarlo asн como esta para no modificar a raнz su estructura y no batallar, no es mбs que descargar un include y listo.

Suerte!

Puedes aprender a usarlos con tutoriales, en simples palabras, todos los procesadores tienen una misma funciуn, ejecutar un comando y ya, claro, cada uno con distintos parбmetros y estructuras, pero todo tiene relaciуn..
Saludos
Reply
#5

va en pedidos. para la proxima ya sabes

supongo q funciona:
pawn Код:
if(!strcmp(cmd, "/v", true)){
    new str[128], tmp[256];
    tmp = strtok(cmdtext, idx);

    if(gPlayerStatus[playerid] != 0){
        format(str,128,"[ERROR]: You are already using "%s".", aSelNames[gPlayerStatus[playerid]-1]);
        return SendClientMessage(playerid,COLOR_RED,str);
    }
    if(!strlen(tmp))return SendClientMessage( playerid, COLOR_RED, "[USAGE]: /v MODELID/NAME or /vehicle MODELID/NAME" );
    new veh = GetVehicleModelIDFromName(strval(tmp));
    if(veh<MIN_VEHI_ID || veh>MAX_VEHI_ID)return SendClientMessage(playerid, COLOR_RED, "[ERROR]: Invalid MODELID/NAME");
    new Float:x,Float:y,Float:z,Float:a;
    GetPlayerPos(playerid, x, y, z);
    GetXYInFrontOfPlayer(playerid, x, y, VEHI_DIS);
    GetPlayerFacingAngle(playerid, a);
    curPlayerVehM[playerid] = veh;
    curPlayerVehI[playerid] = CreateVehicle(veh, x, y, z + 2.0, a + 90.0, -1, -1, 5000);
    LinkVehicleToInterior(curPlayerVehI[playerid], GetPlayerInterior(playerid));
    curServerVehP[curPlayerVehI[playerid]][spawn] = true;
    curServerVehP[curPlayerVehI[playerid]][vmodel]  = veh;
    curServerVehP[curPlayerVehI[playerid]][vInt] = GetPlayerInterior(playerid);
    format(str,128,"[SUCCESS]: Spawned a "%s" (MODELID: %d, VEHICLEID: %d)", aVehicleNames[veh-MIN_VEHI_ID], veh, curPlayerVehI[playerid]);
    return SendClientMessage(playerid, COLOR_GREEN, iString);
}
Reply
#6

Chaoz creo que tuviste un error aquн

pawn Код:
format(str,128,"[ERROR]: You are already using "%s".", aSelNames[gPlayerStatus[playerid]-1]);
        return SendClientMessage(playerid,COLOR_RED,str);
Cerraste Comillas antes de % que le darб error

Serнa asн

pawn Код:
format(str,128,"[ERROR]: You are already using ''%s''.", aSelNames[gPlayerStatus[playerid]-1]);
        return SendClientMessage(playerid,COLOR_RED,str);
Y si mal no estoy tambiйn aquн

pawn Код:
format(str,128,"[SUCCESS]: Spawned a "%s" (MODELID: %d, VEHICLEID: %d)", aVehicleNames[veh-MIN_VEHI_ID], veh, curPlayerVehI[playerid]);
    return SendClientMessage(playerid, COLOR_GREEN, iString);
quedarнa asн

pawn Код:
format(str,128,"[SUCCESS]: Spawned a ''%'' (MODELID: %d, VEHICLEID: %d)", aVehicleNames[veh-MIN_VEHI_ID], veh, curPlayerVehI[playerid]);
    return SendClientMessage(playerid, COLOR_GREEN, iString);
Reply
#7

yo los mensajes no los toque solo edite lo q era necesario para que este en strtok, no corregi nada xD fijate q los mensajes son =, pero si tendria q usar ' \" ' para que aparecieran las comillas dobles o bien usar " ' "
Reply
#8

Para que aparezcan comillas hay que hacer asн "" (osea poner las comillas dos veces)
Reply
#9

o usar /"texto"/ (creo que era asi o con la barra al revйs \"texto"\)
Reply
#10

no me sirve, me sale errores, por algunas definiciones, ya que lo saque de un FS, alguien me lo pasa asi de esa manera?, si tiene que definir o poner algo gracias por su atencion
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)