How to make this with ZCMD?
#1

How to make these Commands with ZCMD?

/freeze, /unfreeze, /goto, /gethere?
Reply
#2

https://sampwiki.blast.hk/wiki/Fast_Commands
Reply
#3

pawn Код:
CMD:freeze(playerid, params[])
{
    if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xFF0000FF, "You are not an admin!");
    new iPlayer;
    if(sscanf(params, "i", iPlayer)) return SendClientMessage(playerid, 0xFF0000FF, "Usage: /freeze [Player ID]");
    if(!IsPlayerConnected(iPlayer)) return SendClientMessage(playerid, 0xFF0000FF, "Player is not connected.");
   
    TogglePlayerControllable(iPlayer, false);
    SendClientMessage(iPlayer, 0x00FFFF, "You are frozen!");
    return true;
}

CMD:goto(playerid, params[])
{
    if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xFF0000FF, "You are not an admin!");
    new iPlayer;
    if(sscanf(params, "i", iPlayer)) return SendClientMessage(playerid, 0xFF0000FF, "Usage: /goto [Player ID]");
    if(!IsPlayerConnected(iPlayer)) return SendClientMessage(playerid, 0xFF0000FF, "Player is not connected.");
   
    new Float:P[3];
    GetPlayerPos(iPlayer, P[0], P[1], P[2]);
    SetPlayerPos(playerid, P[0]+1, P[1]+1, P[2]);
    SendClientMessage(playerid, 0xFF0000FF, "You teleported to this player.");
    return true;
}
me haz no tyme por /getthere! Make It yourself after learning pawn coding.
Reply
#4

iPLEOMAX use "u" for player ID's ( partOfName or playerID )

With a reason part ( can be used without a reason or with a reason ).

pawn Код:
CMD:freeze( playerid, params[ ] )
{
    if ( !IsPlayerAdmin( playerid ) )
        return SendClientMessage( playerid, -1, "You are not an administrator." );

    new
        bool: useReason = false,
        pID,
        reason[ 64 ]
    ;

    if ( sscanf( params, "u", pID ) )
        return SendClientMessage( playerid, -1, "Usage: /Freeze [ playerid / partofname ] [ optional: reason ]" );

    if ( !sscanf( params, "us[64]", reason ) )
        useReason = true;

    if ( !useReason )
        reason = "Not specified";

    if ( pID == INVALID_PLAYER_ID )
        return SendClientMessage( playerid,  -1, "That player is not connected." );

    new
        szStr[ 128 ]
    ;

    format( szStr, sizeof szStr, "*** You have been frozed by admin %s. ( Reason: %s )", getName( playerid ), reason );

    TogglePlayerControllable( pID, false );

    SendClientMessage( pID, -1, szStr );

    SendClientMessage( playerid, -1, "Player has been freezed." );

    useReason = false;

    return 1;
}
Reply
#5

I didn't put "u" because it's bugged currently with latest server version. ^^
It wouldn't work and he would go all crazy on me.. xD
Reply
#6

Quote:
Originally Posted by Basicz
Посмотреть сообщение
iPLEOMAX use "u" for player ID's ( partOfName or playerID )

With a reason part ( can be used without a reason or with a reason ).

pawn Код:
CMD:freeze( playerid, params[ ] )
{
    if ( !IsPlayerAdmin( playerid ) )
        return SendClientMessage( playerid, -1, "You are not an administrator." );

    new
        bool: useReason = false,
        pID,
        reason[ 64 ]
    ;

    if ( sscanf( params, "u", pID ) )
        return SendClientMessage( playerid, -1, "Usage: /Freeze [ playerid / partofname ] [ optional: reason ]" );

    if ( !sscanf( params, "us[64]", reason ) )
        useReason = true;

    if ( !useReason )
        reason = "Not specified";

    if ( pID == INVALID_PLAYER_ID )
        return SendClientMessage( playerid,  -1, "That player is not connected." );

    new
        szStr[ 128 ]
    ;

    format( szStr, sizeof szStr, "*** You have been frozed by admin %s. ( Reason: %s )", getName( playerid ), reason );

    TogglePlayerControllable( pID, false );

    SendClientMessage( pID, -1, szStr );

    SendClientMessage( playerid, -1, "Player has been freezed." );

    useReason = false;

    return 1;
}
Instead of
pawn Код:
if ( !useReason )
        reason = "Not specified";
You could integrate that into the sscanf specified parameter.

pawn Код:
if ( !sscanf( params, "uS(Not specified)[64]", reason ) )



Also this is way simplified
pawn Код:
CMD:freeze( playerid, params[ ] )
{
    if ( !IsPlayerAdmin( playerid ) )
        return SendClientMessage( playerid, -1, "You are not an administrator." );

    new
        pID,
        reason[ 64 ]
    ;

    if ( sscanf( params, "uS(Not specified)[64]", pID, reason ) )
        return SendClientMessage( playerid, -1, "Usage: /Freeze [ playerid / partofname ] [ optional: reason ]" );

    if ( pID == INVALID_PLAYER_ID )
        return SendClientMessage( playerid,  -1, "That player is not connected." );

    new
        szStr[ 128 ]
    ;

    format( szStr, sizeof szStr, "*** You have been frozed by admin %s. ( Reason: %s )", getName( playerid ), reason );
    TogglePlayerControllable( pID, false );
    SendClientMessage( pID, -1, szStr );
    SendClientMessage( playerid, -1, "Player has been freezed." );
    return 1;
}
If you don't specify the reason parameter, the string 'reason' will get value 'Not specified'
Reply


Forum Jump:


Users browsing this thread: