/setbadgenumber - 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)
+--- Thread: /setbadgenumber (
/showthread.php?tid=523974)
/setbadgenumber -
CodyAlzack - 04.07.2014
PROBLEM SOLVED
Re : /setbadgenumber -
S4t3K - 04.07.2014
Use sscanf, store the badge number in the player stats and use it each time you want.
Re: /setbadgenumber -
CodyAlzack - 04.07.2014
............
Re: /setbadgenumber -
greentarch - 04.07.2014
Untested; but compiles
Change
pawn Код:
if ( !department_leader[ playerid ] )
to your own variable
pawn Код:
new
badgeNumber[ MAX_PLAYERS ][ 7 ];
public OnPlayerConnect( playerid )
{
badgeNumber[ playerid ][ 0 ] = EOS;
return 1;
}
CMD:setbadgenumber( playerid, params[ ] )
{
if ( !department_leader[ playerid ] ) // Change this to your own variable.
return SendClientMessage( playerid, -1, "{FF3333}[ERROR]: {FFFFFF}You cannot use this command!" );
if ( !strlen( params ) )
return SendClientMessage( playerid, -1, "{FF3333}[ERROR]: {FFFFFF}/setbadgenumber <ID>" );
if ( strlen( params ) > 6 )
return SendClientMessage( playerid, -1, "{FF3333}[ERROR]: {FFFFFF}Badge ID can't be longer than 6 characters!" );
badgeNumber[ playerid ][ 0 ] = EOS;
strcat( badgeNumber[ playerid ], params );
new
fmat[ 128 ];
format( fmat, sizeof ( fmat ), "{33FFFF}[INFO]: {FFFFFF}Badge set to %s.", badgeNumber[ playerid ] );
SendClientMessage( playerid, -1, fmat );
return 1;
}
CMD:d( playerid, params[ ] ) // Local IC chat?
{
if ( !strlen( params ) )
return SendClientMessage( playerid, -1, "{FF3333}[ERROR]: {FFFFFF}/d <message>" );
new
fmat[ 128 ],
pName[ MAX_PLAYER_NAME ];
GetPlayerName( playerid, pName, MAX_PLAYER_NAME );
if ( badgeNumber[ playerid ][ 0 ] != EOS )
format( fmat, sizeof ( fmat ), "%s [Badge number: %s]: %s", pName, badgeNumber[ playerid ], params );
else
format( fmat, sizeof ( fmat ), "%s: %s", pName, params );
new
Float: pPos[ 3 ];
GetPlayerPos( playerid, pPos[ 0 ], pPos[ 1 ], pPos[ 2 ] );
for ( new i; i < MAX_PLAYERS; ++ i )
{
if ( ( GetPlayerDistanceFromPoint( i, pPos[ 0 ], pPos[ 1 ], pPos[ 2 ] ) < 10.0 ) )
{
SendClientMessage( i, -1, fmat );
continue;
}
}
return 1;
}
Re: /setbadgenumber -
DamonD - 04.07.2014
My attempt using zcmd, sscanf. Untested. Replace variables, colors, etc to work with your own script.
pawn Код:
CMD:setbadgeno(playerid, params[])
{
new giveplayerid, badgeno, string[126], str[128];
if(!IsLeader(playerid)) return SendClientMessage(playerid, COLOR_NOTAUTH, "Only faction leaders can use this command.");
if(sscanf(params, "ud", giveplayerid, badgeno)) return SendClientMessage(playerid, COLOR_GREY, "USAGE: /setbadgeno [id] [badge#]");
if(!IsPlayerConnected(giveplayerid)) return 1;
if(badgeno >= INVALID_BADGE_NUMBER) {
new string[64];
format(string, sizeof(string), "That badge number is too high! The biggest badge number you can use is %d.", INVALID_BADGE_NUMBER-1);
SendClientMessage(playerid, COLOR_RED, string);
return 1; }
if(IsInSameFaction(playerid, giveplayerid) {
BadgeNumber[giveplayerid] = badgeno;
format(str, sizeof(string), "Your badge number has been set to %d by %s.", badgeno, getname(playerid));
SendClientMessage(giveplayerid, COLOR_WHITE, str);
format(str, sizeof(string), "You have set %s's badge number to %d.", getname(giveplayerid), badgeno);
SendClientMessage(giveplayerid, COLOR_WHITE, str); }
return 1;
}
Re: /setbadgenumber -
CodyAlzack - 05.07.2014
.........