SA-MP Forums Archive
How to make this with ZCMD? - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (https://sampforum.blast.hk/forumdisplay.php?fid=12)
+---- Forum: Help Archive (https://sampforum.blast.hk/forumdisplay.php?fid=89)
+---- Thread: How to make this with ZCMD? (/showthread.php?tid=272853)



How to make this with ZCMD? - Harry_Sandhu - 30.07.2011

How to make these Commands with ZCMD?

/freeze, /unfreeze, /goto, /gethere?


Re: How to make this with ZCMD? - Gazmull - 30.07.2011

https://sampwiki.blast.hk/wiki/Fast_Commands


Re: How to make this with ZCMD? - iPLEOMAX - 30.07.2011

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.


Re: How to make this with ZCMD? - Basicz - 30.07.2011

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;
}



Re: How to make this with ZCMD? - iPLEOMAX - 30.07.2011

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


Re: How to make this with ZCMD? - Zh3r0 - 30.07.2011

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'