SA-MP Forums Archive
Problems with /warn asking for a return - 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: Problems with /warn asking for a return (/showthread.php?tid=97440)



Problems with /warn asking for a return - MisterTickle - 14.09.2009

Whole Code:

Код:
dcmd_warn(playerid,params[])
{
  new str[128], reason[128];
  new giveplayerid;
  if(PlayerInfo[playerid][pAdmin] == 0) return SystemMsg(playerid, "You must be a admin to use this command!");
  if(sscanf(params, "us", giveplayerid, reason)) return SystemMsg(playerid, " Usage : /warn [playerid / name] [reason]");
  if(!IsPlayerConnected(giveplayerid)) return SystemMsg(playerid, "That player is not connected!");
  format(str, sizeof(str), "ADMIN %s has warned %s [Reason: %s]", PlayerName(playerid), PlayerName(giveplayerid), reason);
  SendClientMessageToAll(COLOR_RED, str); PlayerInfo[giveplayerid][pWarns]++; dUserSetINT(PlayerName(playerid)).("pWarns",PlayerInfo[playerid][pWarns]);
  	new str2[MAX_STRING], second, minute, hour, day, month, year;
  	gettime(hour, minute, second);
	getdate(year, month, day);
  format(str2, sizeof(str2), "ADMIN %s (%s) warned %s (%s) on %d/%d/%d at %d:%d:%d. (Reason: '%s')", PlayerName(playerid), GetIp(playerid), PlayerName(giveplayerid), GetIp(giveplayerid), month, day, year, hour, minute, second, reason);
  AdminLog(str2);
  if(PlayerInfo[playerid][pWarns] == 3)
  {
	PlayerInfo[playerid][pBanned] = 1;
	format(str, sizeof(str), "..: SERVER kicked %s. Reason: Reached 3 Warnings :..", PlayerName(playerid));
	SendClientMessageToAll(COLOR_RED, str);
  new str3[MAX_STRING];
  gettime(hour, minute, second);
  getdate(year, month, day);
  format(str3, sizeof(str3), "PLAYER %s (%s) got auto-banned on %d/%d/%d at %d:%d:%d. (Reason: 'Reached 3 Warnings')", PlayerName(playerid), GetIp(playerid), month, day, year, hour, minute, second);
  return 1; }}
Line Erroring:

return 1; }}

Error Code:

C:\Documents and Settings\EPRP (3).pwn(880) : warning 209: function "dcmd_warn" should return a value


Re: Problems with /warn asking for a return - Correlli - 14.09.2009

Use this:
pawn Код:
dcmd_warn(playerid,params[])
{
  new str[128], reason[128];
  new giveplayerid;
  if(PlayerInfo[playerid][pAdmin] == 0) return SystemMsg(playerid, "You must be a admin to use this command!");
  if(sscanf(params, "us", giveplayerid, reason)) return SystemMsg(playerid, " Usage : /warn [playerid / name] [reason]");
  if(!IsPlayerConnected(giveplayerid)) return SystemMsg(playerid, "That player is not connected!");
  format(str, sizeof(str), "ADMIN %s has warned %s [Reason: %s]", PlayerName(playerid), PlayerName(giveplayerid), reason);
  SendClientMessageToAll(COLOR_RED, str); PlayerInfo[giveplayerid][pWarns]++; dUserSetINT(PlayerName(playerid)).("pWarns",PlayerInfo[playerid][pWarns]);
  new str2[MAX_STRING], second, minute, hour, day, month, year;
  gettime(hour, minute, second);
  getdate(year, month, day);
  format(str2, sizeof(str2), "ADMIN %s (%s) warned %s (%s) on %d/%d/%d at %d:%d:%d. (Reason: '%s')", PlayerName(playerid), GetIp(playerid), PlayerName(giveplayerid), GetIp(giveplayerid), month, day, year, hour, minute, second, reason);
  AdminLog(str2);
  if(PlayerInfo[playerid][pWarns] == 3)
  {
    PlayerInfo[playerid][pBanned] = 1;
    format(str, sizeof(str), "..: SERVER kicked %s. Reason: Reached 3 Warnings :..", PlayerName(playerid));
    SendClientMessageToAll(COLOR_RED, str);
    new str3[MAX_STRING];
    gettime(hour, minute, second);
    getdate(year, month, day);
    format(str3, sizeof(str3), "PLAYER %s (%s) got auto-banned on %d/%d/%d at %d:%d:%d. (Reason: 'Reached 3 Warnings')", PlayerName(playerid), GetIp(playerid), month, day, year, hour, minute, second);
  }
  return 1;
}



Re: Problems with /warn asking for a return - MisterTickle - 14.09.2009

You've been a bit of a saint today, Thanks.


Re: Problems with /warn asking for a return - MisterTickle - 14.09.2009

For some reason it isnt banning me after 3 warns


Re: Problems with /warn asking for a return - Correlli - 14.09.2009

I don't see the Ban function in your code, is this it?
pawn Код:
PlayerInfo[playerid][pBanned] = 1;
And the timer checks if you're pBanned?


Re: Problems with /warn asking for a return - Calgon - 14.09.2009

You're checking if the admin has 3 warns, not the specified playerid.

pawn Код:
dcmd_warn(playerid,params[])
{
  new str[128], reason[128];
  new giveplayerid;
  if(PlayerInfo[playerid][pAdmin] == 0) return SystemMsg(playerid, "You must be a admin to use this command!");
  if(sscanf(params, "us", giveplayerid, reason)) return SystemMsg(playerid, " Usage : /warn [playerid / name] [reason]");
  if(!IsPlayerConnected(giveplayerid)) return SystemMsg(playerid, "That player is not connected!");
  format(str, sizeof(str), "ADMIN %s has warned %s [Reason: %s]", PlayerName(playerid), PlayerName(giveplayerid), reason);
  SendClientMessageToAll(COLOR_RED, str); PlayerInfo[giveplayerid][pWarns]++; dUserSetINT(PlayerName(playerid)).("pWarns",PlayerInfo[playerid][pWarns]);
  new str2[MAX_STRING], second, minute, hour, day, month, year;
  gettime(hour, minute, second);
  getdate(year, month, day);
  format(str2, sizeof(str2), "ADMIN %s (%s) warned %s (%s) on %d/%d/%d at %d:%d:%d. (Reason: '%s')", PlayerName(playerid), GetIp(playerid), PlayerName(giveplayerid), GetIp(giveplayerid), month, day, year, hour, minute, second, reason);
  AdminLog(str2);
  if(PlayerInfo[giveplayerid][pWarns] == 3)
  {
    PlayerInfo[giveplayerid][pBanned] = 1;
    format(str, sizeof(str), "..: SERVER kicked %s. Reason: Reached 3 Warnings :..", PlayerName(playerid));
    SendClientMessageToAll(COLOR_RED, str);
    new str3[MAX_STRING];
    gettime(hour, minute, second);
    getdate(year, month, day);
    format(str3, sizeof(str3), "PLAYER %s (%s) got auto-banned on %d/%d/%d at %d:%d:%d. (Reason: 'Reached 3 Warnings')", PlayerName(giveplayerid), GetIp(giveplayerid), month, day, year, hour, minute, second);
    Kick(giveplayerid); // or Ban().
  }
  return 1;
}



Re: Problems with /warn asking for a return - MisterTickle - 14.09.2009

Ah yes, Stupid stupid stupid error. Guess being new to Pawn you sometimes overlook things like that eh?