SA-MP Forums Archive
Making rob command into commands at server - 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: Making rob command into commands at server (/showthread.php?tid=59346)



Making rob command into commands at server - Markus1337 - 26.12.2008

Код:
#define dcmd(%1,%2,%3) if (!strcmp((%3)[1], #%1, true, (%2)) && ((((%3)[(%2) + 1] == '\0') && (dcmd_%1(playerid, ""))) || (((%3)[(%2) + 1] == ' ') && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1
//*****EDIT BELOW THIS LINE:*****
//------------------------------------------------------------------------------------------------------------------------------------------------------------
#define DISTANCE_BETWEEN_PLAYERS 5 //The minimum distance between players to be able to rob           |
#define COLOR_ROB 0x00FFFFFF //The color of the text send to the players when made a successfull rob       |
#define COLOR_FAIL 0x00FFFFFF //Color of the text displayed to the players when a rob has failed            |
#define COLOR_ERROR 0xFF0000FF //Color of the text when there is an error                                 |
#define ROB_TIME 7000 //Time between rob commands to prevent spam (in milliseconds)                   |
//*****NO NEED TO EDIT BELOW THIS LINE:*****                                                            |
//------------------------------------------------------------------------------------------------------------------------------------------------------------

new robtime[MAX_PLAYERS];
new ID;


stock Float:GetDistanceBetweenPlayers(p1,p2){
	new Float:x1,Float:y1,Float:z1,Float:x3,Float:y3,Float:z3;
	if (!IsPlayerConnected(p1) || !IsPlayerConnected(p2)){
		return -1.00;
	}
	GetPlayerPos(p1,x1,y1,z1);
	GetPlayerPos(p2,x3,y3,z3);
	return floatsqroot(floatpower(floatabs(floatsub(x3,x1)),2)+floatpower(floatabs(floatsub(y3,y1)),2)+floatpower(floatabs(floatsub(z3,z1)),2));
}

forward robtimer(id);

dcmd_rob(playerid, params[])
	{
		new pname[MAX_PLAYER_NAME];
		GetPlayerName(playerid, pname, sizeof(pname));
		if(!strlen(params))
		{
			SendClientMessage(playerid, COLOR_ERROR, "Correct usage: /rob [ID]");
		}
		else 
		{
			ID = strval(params);
			if(robtime[playerid] == 0)
			{
				if(ID != playerid)
				{
					if(IsPlayerConnected(ID))
					{
						new oname[MAX_PLAYER_NAME];
						GetPlayerName(ID, oname, sizeof(oname));
						if(GetDistanceBetweenPlayers(playerid, ID) <= DISTANCE_BETWEEN_PLAYERS)
						{
							if(!GetPlayerVehicleID(ID) || GetPlayerVehicleID(ID) == GetPlayerVehicleID(ID))
							{
								if(GetPlayerMoney(ID) > 0)
								{
									new rob = random(11);
									if(rob == 1 || rob == 2 || rob == 10 || rob == 11)
									{
										new string[256];
										format(string, sizeof(string), "%s (%i) noticed you trying to rob him. Attempt failed!",oname, ID);
										SendClientMessage(playerid, COLOR_ROB, string);
										format(string, sizeof(string), "~w~%s Noticed you trying to rob him.~n~Attempt failed!.",oname, ID);
										GameTextForPlayer(playerid, string, 5000, 4);
										GetPlayerName(playerid,pname,sizeof(pname));
										format(string, sizeof(string), "You noticed %s (%i) trying to rob you. His attempt has failed!", pname, playerid);
										SendClientMessage(ID, COLOR_ROB, string);
										format(string, sizeof(string), "~w~You noticed %s trying to rob you.~n~His attempt has failed!", pname, playerid);
										GameTextForPlayer(ID, string, 5000, 4);
									}
									else if(rob == 3)
									{
										new pcash = GetPlayerMoney(ID);
										new robcash = random(pcash);
  									GivePlayerMoney(ID, -robcash);
										GivePlayerMoney(playerid, robcash);
										GetPlayerName(playerid, pname, sizeof(pname));
										new string[256];
										format(string, sizeof(string), "You have robbed $%i from %s (%i).", robcash, oname, ID);
										SendClientMessage(playerid, COLOR_ROB, string);
										format(string, sizeof(string), "~w~Robbed $%i from %s.", robcash, oname);
										GameTextForPlayer(playerid, string, 5000, 4);
										format(string, sizeof(string), "%s (%i) has robbed $%i from you.", pname, playerid, robcash);
										SendClientMessage(ID, COLOR_ROB, string);
										format(string, sizeof(string), "~w~%s has robbed $%i from you.", pname, robcash);
										GameTextForPlayer(ID, string, 5000, 4);
									}
									else if(rob == 4 || rob == 5 || rob == 8)
									{
										new pcash = GetPlayerMoney(ID);
										new robcash = random(pcash);
										new robcash2 = robcash-random(robcash);
  									GivePlayerMoney(ID, -robcash2);
										GivePlayerMoney(playerid, robcash2);
										new string[256];
										GetPlayerName(playerid, pname, sizeof(pname));
										format(string, sizeof(string), "You have robbed $%i from %s (%i).", robcash2, oname, ID);
										SendClientMessage(playerid, COLOR_ROB, string);
										format(string, sizeof(string), "~w~Robbed $%i from %s.", robcash2, oname);
										GameTextForPlayer(playerid, string, 5000, 4);
										format(string, sizeof(string), "%s (%i) has robbed $%i from you.", pname, playerid, robcash2);
										SendClientMessage(ID, COLOR_ROB, string);
										format(string, sizeof(string), "~w~%s has robbed $%i from you.", pname, robcash2);
										GameTextForPlayer(ID, string, 5000, 4);
									}
									else if(rob == 6 || rob == 7)
									{
										new pcash = GetPlayerMoney(ID);
										new robcash = random(pcash);
										new robcash2 = robcash-random(robcash);
										new robcash3 = robcash2-random(robcash2);
  									GivePlayerMoney(ID, -robcash3);
										GivePlayerMoney(playerid, robcash3);
										new string[256];
										GetPlayerName(playerid, pname, sizeof(pname));
										format(string, sizeof(string), "You have robbed $%i from %s (%i).", robcash3, oname, ID);
										SendClientMessage(playerid, COLOR_ROB, string);
										format(string, sizeof(string), "%s (%i) has robbed $%i from you.", pname, playerid, robcash3);
										SendClientMessage(ID, COLOR_ROB, string);
										format(string, sizeof(string), "~w~Robbed $%i from %s.", robcash3, oname);
										GameTextForPlayer(playerid, string, 5000, 4);
										format(string, sizeof(string), "~w~%s has robbed $%i from you.", pname, robcash3);
										GameTextForPlayer(ID, string, 5000, 4);
									}
									else
									{
										SetPlayerHealth(playerid, -69);
										new string[256];
										GetPlayerName(playerid, pname, sizeof(pname));
										format(string, sizeof(string), "Your hand has stuck to %s (%i)'s pocket. ", oname, ID);
										SendClientMessage(playerid, COLOR_FAIL, string);
										SendClientMessage(playerid, COLOR_FAIL, "He noticed it and ripped your arms off.");
										format(string, sizeof(string), "%s (%i)'s hand has stuck to your pocket while trying to rob you.", pname, playerid);
										SendClientMessage(ID, COLOR_FAIL, string);
										SendClientMessage(ID, COLOR_FAIL, "You noticed it and ripped his arms off.");
										format(string, sizeof(string), "*** %s (%i) has bled to death.", pname, playerid);
										SendClientMessageToAll(0x880000FF, string);
										format(string, sizeof(string), "~w~%s has ripped your arms off.", oname, ID);
										GameTextForPlayer(playerid, string, 5000, 4);
										format(string, sizeof(string), "~w~Ripped %s's arms off.", oname, ID);
										GameTextForPlayer(ID, string, 5000, 4);
									}
									robtime[playerid] = 1;
									SetTimerEx("robtimer", ROB_TIME, false, "i", playerid);
								}
								else
								{
									new string[256];
									format(string, sizeof(string), "%s (%i) has no money to rob!", oname, ID);
									SendClientMessage(playerid, COLOR_ERROR, string);
								}
							}
							else
							{
								new string[256];
								format(string, sizeof(string), "%s (%i) has to be in the same vehicle as you to be able to rob!", oname, ID);
								SendClientMessage(playerid, COLOR_ERROR, string);
							}
						}
						else
						{
							new string[256];
							format(string, sizeof(string), "%s (%i) is not close enough to rob.", oname, ID);
							SendClientMessage(playerid, COLOR_ERROR, string);
						}
					}
					else
					{
						SendClientMessage(playerid, COLOR_ERROR, "That player is not connected!");
					}
				}
				else
				{
					SendClientMessage(playerid, COLOR_ERROR, "You cannot rob yourself!");
				}
			}
			else
			{
				SendClientMessage(playerid, COLOR_ERROR, "Please wait before robbing someone again.");
			}
		}
	return 1;
}

public OnPlayerCommandText(playerid, cmdtext[])
{
	dcmd(rob, 3, cmdtext);
	return 0;
}
public robtimer(id)
{
	robtime[id] = 0;
}
It's a filterscript but i really want it to be scripted into the gamemode instead.


Re: Making rob command into commands at server - Thehunter[SU] - 27.12.2008

just copy past in your script lol on the right sections


Re: Making rob command into commands at server - SampFreak09 - 19.07.2009

Quote:
Originally Posted by Mazzer
Код:
#define dcmd(%1,%2,%3) if (!strcmp((%3)[1], #%1, true, (%2)) && ((((%3)[(%2) + 1] == '\0') && (dcmd_%1(playerid, ""))) || (((%3)[(%2) + 1] == ' ') && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1
//*****EDIT BELOW THIS LINE:*****
//------------------------------------------------------------------------------------------------------------------------------------------------------------
#define DISTANCE_BETWEEN_PLAYERS 5 //The minimum distance between players to be able to rob          |
#define COLOR_ROB 0x00FFFFFF //The color of the text send to the players when made a successfull rob      |
#define COLOR_FAIL 0x00FFFFFF //Color of the text displayed to the players when a rob has failed            |
#define COLOR_ERROR 0xFF0000FF //Color of the text when there is an error                                |
#define ROB_TIME 7000 //Time between rob commands to prevent spam (in milliseconds)                   |
//*****NO NEED TO EDIT BELOW THIS LINE:*****                                                           |
//------------------------------------------------------------------------------------------------------------------------------------------------------------

new robtime[MAX_PLAYERS];
new ID;


stock Float:GetDistanceBetweenPlayers(p1,p2){
	new Float:x1,Float:y1,Float:z1,Float:x3,Float:y3,Float:z3;
	if (!IsPlayerConnected(p1) || !IsPlayerConnected(p2)){
		return -1.00;
	}
	GetPlayerPos(p1,x1,y1,z1);
	GetPlayerPos(p2,x3,y3,z3);
	return floatsqroot(floatpower(floatabs(floatsub(x3,x1)),2)+floatpower(floatabs(floatsub(y3,y1)),2)+floatpower(floatabs(floatsub(z3,z1)),2));
}

forward robtimer(id);

dcmd_rob(playerid, params[])
	{
		new pname[MAX_PLAYER_NAME];
		GetPlayerName(playerid, pname, sizeof(pname));
		if(!strlen(params))
		{
			SendClientMessage(playerid, COLOR_ERROR, "Correct usage: /rob [ID]");
		}
		else 
		{
			ID = strval(params);
			if(robtime[playerid] == 0)
			{
				if(ID != playerid)
				{
					if(IsPlayerConnected(ID))
					{
						new oname[MAX_PLAYER_NAME];
						GetPlayerName(ID, oname, sizeof(oname));
						if(GetDistanceBetweenPlayers(playerid, ID) <= DISTANCE_BETWEEN_PLAYERS)
						{
							if(!GetPlayerVehicleID(ID) || GetPlayerVehicleID(ID) == GetPlayerVehicleID(ID))
							{
								if(GetPlayerMoney(ID) > 0)
								{
									new rob = random(11);
									if(rob == 1 || rob == 2 || rob == 10 || rob == 11)
									{
										new string[256];
										format(string, sizeof(string), "%s (%i) noticed you trying to rob him. Attempt failed!",oname, ID);
										SendClientMessage(playerid, COLOR_ROB, string);
										format(string, sizeof(string), "~w~%s Noticed you trying to rob him.~n~Attempt failed!.",oname, ID);
										GameTextForPlayer(playerid, string, 5000, 4);
										GetPlayerName(playerid,pname,sizeof(pname));
										format(string, sizeof(string), "You noticed %s (%i) trying to rob you. His attempt has failed!", pname, playerid);
										SendClientMessage(ID, COLOR_ROB, string);
										format(string, sizeof(string), "~w~You noticed %s trying to rob you.~n~His attempt has failed!", pname, playerid);
										GameTextForPlayer(ID, string, 5000, 4);
									}
									else if(rob == 3)
									{
										new pcash = GetPlayerMoney(ID);
										new robcash = random(pcash);
  									GivePlayerMoney(ID, -robcash);
										GivePlayerMoney(playerid, robcash);
										GetPlayerName(playerid, pname, sizeof(pname));
										new string[256];
										format(string, sizeof(string), "You have robbed $%i from %s (%i).", robcash, oname, ID);
										SendClientMessage(playerid, COLOR_ROB, string);
										format(string, sizeof(string), "~w~Robbed $%i from %s.", robcash, oname);
										GameTextForPlayer(playerid, string, 5000, 4);
										format(string, sizeof(string), "%s (%i) has robbed $%i from you.", pname, playerid, robcash);
										SendClientMessage(ID, COLOR_ROB, string);
										format(string, sizeof(string), "~w~%s has robbed $%i from you.", pname, robcash);
										GameTextForPlayer(ID, string, 5000, 4);
									}
									else if(rob == 4 || rob == 5 || rob == 8)
									{
										new pcash = GetPlayerMoney(ID);
										new robcash = random(pcash);
										new robcash2 = robcash-random(robcash);
  									GivePlayerMoney(ID, -robcash2);
										GivePlayerMoney(playerid, robcash2);
										new string[256];
										GetPlayerName(playerid, pname, sizeof(pname));
										format(string, sizeof(string), "You have robbed $%i from %s (%i).", robcash2, oname, ID);
										SendClientMessage(playerid, COLOR_ROB, string);
										format(string, sizeof(string), "~w~Robbed $%i from %s.", robcash2, oname);
										GameTextForPlayer(playerid, string, 5000, 4);
										format(string, sizeof(string), "%s (%i) has robbed $%i from you.", pname, playerid, robcash2);
										SendClientMessage(ID, COLOR_ROB, string);
										format(string, sizeof(string), "~w~%s has robbed $%i from you.", pname, robcash2);
										GameTextForPlayer(ID, string, 5000, 4);
									}
									else if(rob == 6 || rob == 7)
									{
										new pcash = GetPlayerMoney(ID);
										new robcash = random(pcash);
										new robcash2 = robcash-random(robcash);
										new robcash3 = robcash2-random(robcash2);
  									GivePlayerMoney(ID, -robcash3);
										GivePlayerMoney(playerid, robcash3);
										new string[256];
										GetPlayerName(playerid, pname, sizeof(pname));
										format(string, sizeof(string), "You have robbed $%i from %s (%i).", robcash3, oname, ID);
										SendClientMessage(playerid, COLOR_ROB, string);
										format(string, sizeof(string), "%s (%i) has robbed $%i from you.", pname, playerid, robcash3);
										SendClientMessage(ID, COLOR_ROB, string);
										format(string, sizeof(string), "~w~Robbed $%i from %s.", robcash3, oname);
										GameTextForPlayer(playerid, string, 5000, 4);
										format(string, sizeof(string), "~w~%s has robbed $%i from you.", pname, robcash3);
										GameTextForPlayer(ID, string, 5000, 4);
									}
									else
									{
										SetPlayerHealth(playerid, -69);
										new string[256];
										GetPlayerName(playerid, pname, sizeof(pname));
										format(string, sizeof(string), "Your hand has stuck to %s (%i)'s pocket. ", oname, ID);
										SendClientMessage(playerid, COLOR_FAIL, string);
										SendClientMessage(playerid, COLOR_FAIL, "He noticed it and ripped your arms off.");
										format(string, sizeof(string), "%s (%i)'s hand has stuck to your pocket while trying to rob you.", pname, playerid);
										SendClientMessage(ID, COLOR_FAIL, string);
										SendClientMessage(ID, COLOR_FAIL, "You noticed it and ripped his arms off.");
										format(string, sizeof(string), "*** %s (%i) has bled to death.", pname, playerid);
										SendClientMessageToAll(0x880000FF, string);
										format(string, sizeof(string), "~w~%s has ripped your arms off.", oname, ID);
										GameTextForPlayer(playerid, string, 5000, 4);
										format(string, sizeof(string), "~w~Ripped %s's arms off.", oname, ID);
										GameTextForPlayer(ID, string, 5000, 4);
									}
									robtime[playerid] = 1;
									SetTimerEx("robtimer", ROB_TIME, false, "i", playerid);
								}
								else
								{
									new string[256];
									format(string, sizeof(string), "%s (%i) has no money to rob!", oname, ID);
									SendClientMessage(playerid, COLOR_ERROR, string);
								}
							}
							else
							{
								new string[256];
								format(string, sizeof(string), "%s (%i) has to be in the same vehicle as you to be able to rob!", oname, ID);
								SendClientMessage(playerid, COLOR_ERROR, string);
							}
						}
						else
						{
							new string[256];
							format(string, sizeof(string), "%s (%i) is not close enough to rob.", oname, ID);
							SendClientMessage(playerid, COLOR_ERROR, string);
						}
					}
					else
					{
						SendClientMessage(playerid, COLOR_ERROR, "That player is not connected!");
					}
				}
				else
				{
					SendClientMessage(playerid, COLOR_ERROR, "You cannot rob yourself!");
				}
			}
			else
			{
				SendClientMessage(playerid, COLOR_ERROR, "Please wait before robbing someone again.");
			}
		}
	return 1;
}

public OnPlayerCommandText(playerid, cmdtext[])
{
	dcmd(rob, 3, cmdtext);
	return 0;
}
public robtimer(id)
{
	robtime[id] = 0;
}
It's a filterscript but i really want it to be scripted into the gamemode instead.
Hey I Tried making this into a filterscript all i did was Copy & Paste And i compiled it and got 11 errors? i never touched it either..


Re: Making rob command into commands at server - craponnaruto - 15.08.2009

It looks like it has some custom parts that you have to edit...then again I'm just a noob so I don't really know