Animations, Updated.

Place all new suggestions here, for easy viewing.

Moderators: Forum Moderators, Server Moderators

Forum rules
Suggestions is a moderated OOC forum.

Inflammatory bullshit, thread de-railing, or anything other than suggestions or constructive criticism may result in punitive action.
Post Reply
Andrew_David
Server Moderator
Server Moderator
Posts: 671.0
Joined: April 21st, 2009, 7:24 am
Game Name(s): Andrew_David
Location: Fantasy World

Animations, Updated.

Post by Andrew_David »

Image: Image
Download: http://download503.mediafire.com/1wxedd ... or+szr.rar
If you support/agree this post it.

P.S: this is same, i just added others some Animations: add it to the sever please.

Code: Select all

//-------------------------------------------------
//
// Generic Special Actions And Anims
// kyeman 2007
// edited by Andrew_David Special For SZR Roleplay.
//-------------------------------------------------

#pragma tabsize 0
#include <a_samp>
#include <core>
#include <float>

new gPlayerUsingLoopingAnim[MAX_PLAYERS];
new gPlayerAnimLibsPreloaded[MAX_PLAYERS];

new Text:txtAnimHelper;

//-------------------------------------------------

// ********** INTERNAL FUNCTIONS **********

strtok(const string[], &index)
{
	new length = strlen(string);
	while ((index < length) && (string[index] <= ' '))
	{
		index++;
	}

	new offset = index;
	new result[20];
	while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
	{
		result[index - offset] = string[index];
		index++;
	}
	result[index - offset] = EOS;
	return result;
}

//------------------------------------------------

IsKeyJustDown(key, newkeys, oldkeys)
{
	if((newkeys & key) && !(oldkeys & key)) return 1;
	return 0;
}

//-------------------------------------------------

OnePlayAnim(playerid,animlib[],animname[], Float:Speed, looping, lockx, locky, lockz, lp)
{
	ApplyAnimation(playerid, animlib, animname, Speed, looping, lockx, locky, lockz, lp);
}

//-------------------------------------------------

LoopingAnim(playerid,animlib[],animname[], Float:Speed, looping, lockx, locky, lockz, lp)
{
    gPlayerUsingLoopingAnim[playerid] = 1;
    ApplyAnimation(playerid, animlib, animname, Speed, looping, lockx, locky, lockz, lp);
    TextDrawShowForPlayer(playerid,txtAnimHelper);
}

//-------------------------------------------------

StopLoopingAnim(playerid)
{
	gPlayerUsingLoopingAnim[playerid] = 0;
    ApplyAnimation(playerid, "CARRY", "crry_prtial", 4.0, 0, 0, 0, 0, 0);
}

//-------------------------------------------------

PreloadAnimLib(playerid, animlib[])
{
	ApplyAnimation(playerid,animlib,"null",0.0,0,0,0,0,0);
}

//-------------------------------------------------

// ********** CALLBACKS **********

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
	if(!gPlayerUsingLoopingAnim[playerid]) return;

	if(IsKeyJustDown(KEY_SPRINT,newkeys,oldkeys)) {
	    StopLoopingAnim(playerid);
        TextDrawHideForPlayer(playerid,txtAnimHelper);
    }
}

//------------------------------------------------

public OnPlayerDeath(playerid, killerid, reason)
{
	// if they die whilst performing a looping anim, we should reset the state
	if(gPlayerUsingLoopingAnim[playerid]) {
        gPlayerUsingLoopingAnim[playerid] = 0;
        TextDrawHideForPlayer(playerid,txtAnimHelper);
	}

 	return 1;
}

//-------------------------------------------------

public OnPlayerSpawn(playerid)
{
	if(!gPlayerAnimLibsPreloaded[playerid]) {
   		PreloadAnimLib(playerid,"BOMBER");
   		PreloadAnimLib(playerid,"RAPPING");
    	PreloadAnimLib(playerid,"SHOP");
   		PreloadAnimLib(playerid,"BEACH");
   		PreloadAnimLib(playerid,"SMOKING");
    	PreloadAnimLib(playerid,"FOOD");
    	PreloadAnimLib(playerid,"ON_LOOKERS");
    	PreloadAnimLib(playerid,"DEALER");
		PreloadAnimLib(playerid,"CRACK");
		PreloadAnimLib(playerid,"CARRY");
		PreloadAnimLib(playerid,"COP_AMBIENT");
		PreloadAnimLib(playerid,"PARK");
		PreloadAnimLib(playerid,"INT_HOUSE");
		PreloadAnimLib(playerid,"FOOD");
		gPlayerAnimLibsPreloaded[playerid] = 1;
	}
	return 1;
}

//-------------------------------------------------

public OnPlayerConnect(playerid)
{
    gPlayerUsingLoopingAnim[playerid] = 0;
	gPlayerAnimLibsPreloaded[playerid] = 0;
	
	return 1;
}

//-------------------------------------------------

public OnFilterScriptInit()
{
	// Init our text display
	txtAnimHelper = TextDrawCreate(610.0, 400.0,
	"~r~~k~~PED_SPRINT~ ~w~to stop the animation");
	TextDrawUseBox(txtAnimHelper, 0);
	TextDrawFont(txtAnimHelper, 2);
	TextDrawSetShadow(txtAnimHelper,0); // no shadow
    TextDrawSetOutline(txtAnimHelper,1); // thickness 1
    TextDrawBackgroundColor(txtAnimHelper,0x000000FF);
    TextDrawColor(txtAnimHelper,0xFFFFFFFF);
    TextDrawAlignment(txtAnimHelper,3); // align right
}

//-------------------------------------------------

public OnPlayerCommandText(playerid, cmdtext[])
{
	new cmd[256];
	new idx;
	new dancestyle;
	cmd = strtok(cmdtext, idx);

	if(strcmp(cmd,"/animlist",true)==0)
	{
		SendClientMessage(playerid,0xAFAFAFAA,"Available Animations:");
	    SendClientMessage(playerid,0xAFAFAFAA,"/handsup /drunk /bomb /getarrested /laugh /lookout /robman");
        SendClientMessage(playerid,0xAFAFAFAA,"/crossarms /lay /sup /vomit /eat /wave /taichi /hide ");
        SendClientMessage(playerid,0xAFAFAFAA,"/deal /lean /crack /groundsit /chat /dance /fucku /smoke");
	}
	
	if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) {
        // We don't handle anything here that can be used InVehicle
        return 0;
	}
    // Leaning animation
    if(strcmp(cmd, "/lean", true) == 0)
    {
        if (!strlen(cmdtext[6])) return SendClientMessage(playerid,0xAFAFAFAA,"USAGE: /lean [1-2]");
    	switch (cmdtext[6])
    	{
        	case '1': LoopingAnim(playerid,"GANGS","leanIDLE",4.0,0,1,1,1,0);
        	case '2': LoopingAnim(playerid,"MISC","Plyrlean_loop",4.0,0,1,1,1,0);
        	default: SendClientMessage(playerid,0xAFAFAFAA,"USAGE: /lean [1-2]");
    	}
    	return 1;
    }
	// HANDSUP
 	if(strcmp(cmd, "/handsup", true) == 0) {
		SetPlayerSpecialAction(playerid,SPECIAL_ACTION_HANDSUP);
        return 1;
    }
    // Smoking animations
	if(strcmp(cmd, "/smoke", true) == 0)
    {
        if (!strlen(cmdtext[7])) return SendClientMessage(playerid,0xAFAFAFAA,"USAGE: /smoke [1-3]");
    	switch (cmdtext[7])
    	{
        	case '1': LoopingAnim(playerid,"SMOKING", "M_smklean_loop", 4.0, 1, 0, 0, 0, 0); // male
        	case '2': LoopingAnim(playerid,"SMOKING", "F_smklean_loop", 4.0, 1, 0, 0, 0, 0); //female
        	case '3': LoopingAnim(playerid,"SMOKING","M_smkstnd_loop", 4.0, 1, 0, 0, 0, 0); // standing-fucked
        	default: SendClientMessage(playerid,0xAFAFAFAA,"USAGE: /smoke [1-3]");
    	}
    	return 1;
    }
    // CELLPHONE IN
 	if(strcmp(cmd, "/cellin", true) == 0) {
		SetPlayerSpecialAction(playerid,SPECIAL_ACTION_USECELLPHONE);
        return 1;
    }
    
     // Homie animations
    if(strcmp(cmd, "/sup", true) == 0)
    {
        if (!strlen(cmdtext[5])) return SendClientMessage(playerid,0xAFAFAFAA,"USAGE: /sup [1-2]");
    	switch (cmdtext[5])
    	{
        	case '1': OnePlayAnim(playerid,"GANGS","hndshkba",4.0,0,0,0,0,0);
         	case '2': OnePlayAnim(playerid,"GANGS","hndshkfa_swt",4.0,0,0,0,0,0);
        	default: SendClientMessage(playerid,0xAFAFAFAA,"USAGE: /sup [1-2]");
    	}
    	return 1;
    }
    // CELLPHONE OUT
 	if(strcmp(cmd, "/cellout", true) == 0) {
		SetPlayerSpecialAction(playerid,SPECIAL_ACTION_STOPUSECELLPHONE);
        return 1;
    }

    // Drunk
    if(strcmp(cmd, "/drunk", true) == 0) {
		LoopingAnim(playerid,"PED","WALK_DRUNK",4.0,1,1,1,1,0);
		return 1;
    }
    
	// Place a Bomb
    if (strcmp("/bomb", cmdtext, true) == 0) {
		ClearAnimations(playerid);
		OnePlayAnim(playerid, "BOMBER", "BOM_Plant", 4.0, 0, 0, 0, 0, 0); // Place Bomb
		return 1;
	}
	// Police Arrest
    if (strcmp("/getarrested", cmdtext, true, 7) == 0) {
	      LoopingAnim(playerid,"ped", "ARRESTgun", 4.0, 0, 1, 1, 1, -1); // Gun Arrest
		  return 1;
    }
	// Laugh
    if (strcmp("/laugh", cmdtext, true) == 0) {
          OnePlayAnim(playerid, "RAPPING", "Laugh_01", 4.0, 0, 0, 0, 0, 0); // Laugh
		  return 1;
	}
	// Rob Lookout
    if (strcmp("/lookout", cmdtext, true) == 0) {
          OnePlayAnim(playerid, "SHOP", "ROB_Shifty", 4.0, 0, 0, 0, 0, 0); // Rob Lookout
		  return 1;
	}
	// Rob Threat
    if (strcmp("/robman", cmdtext, true) == 0) {
          LoopingAnim(playerid, "SHOP", "ROB_Loop_Threat", 4.0, 1, 0, 0, 0, 0); // Rob
		  return 1;
	}
	// Arms crossed
    if (strcmp("/crossarms", cmdtext, true) == 0) {
          LoopingAnim(playerid, "COP_AMBIENT", "Coplook_loop", 4.0, 0, 1, 1, 1, -1); // Arms crossed
		  return 1;
	}
	// Lay Down
    if (strcmp("/lay", cmdtext, true, 6) == 0) {
          LoopingAnim(playerid,"BEACH", "bather", 4.0, 1, 0, 0, 0, 0); // Lay down
		  return 1;
    }
	// Take Cover
    if (strcmp("/hide", cmdtext, true, 3) == 0) {
          LoopingAnim(playerid, "ped", "cower", 3.0, 1, 0, 0, 0, 0); // Taking Cover
		  return 1;
	}
	// Vomit
    if (strcmp("/vomit", cmdtext, true) == 0) {
	      OnePlayAnim(playerid, "FOOD", "EAT_Vomit_P", 3.0, 0, 0, 0, 0, 0); // Vomit BAH!
		  return 1;
	}
	// Eat Burger
    if (strcmp("/eat", cmdtext, true) == 0) {
	      OnePlayAnim(playerid, "FOOD", "EAT_Burger", 3.0, 0, 0, 0, 0, 0); // Eat Burger
		  return 1;
	}
	// Wave
    if (strcmp("/wave", cmdtext, true) == 0) {
	      LoopingAnim(playerid, "ON_LOOKERS", "wave_loop", 4.0, 1, 0, 0, 0, 0); // Wave
		  return 1;
	}
	// Slap Ass
    if (strcmp("/slapass", cmdtext, true) == 0) {
         OnePlayAnim(playerid, "SWEET", "sweet_ass_slap", 4.0, 0, 0, 0, 0, 0); // Ass Slapping
		  return 1;
	}
	// Dealer
    if (strcmp("/deal", cmdtext, true) == 0) {
          OnePlayAnim(playerid, "DEALER", "DEALER_DEAL", 4.0, 0, 0, 0, 0, 0); // Deal Drugs
		  return 1;
	}
	// Crack Dieing
    if (strcmp("/crack", cmdtext, true, 6) == 0) {
          LoopingAnim(playerid, "CRACK", "crckdeth2", 4.0, 1, 0, 0, 0, 0); // Dieing of Crack
		  return 1;
	}
	// Sit
    if (strcmp("/groundsit", cmdtext, true, 4) == 0) {
          LoopingAnim(playerid,"BEACH", "ParkSit_M_loop", 4.0, 1, 0, 0, 0, 0); // Sit
		  return 1;
    }
    // Idle Chat
    if(strcmp(cmd, "/chat", true) == 0) {
		 OnePlayAnim(playerid,"PED","IDLE_CHAT",4.0,0,0,0,0,0);
         return 1;
    }
    // Fucku
    if(strcmp(cmd, "/fucku", true) == 0) {
		 OnePlayAnim(playerid,"PED","fucku",4.0,0,0,0,0,0);
         return 1;
    }
    // TaiChi
    if(strcmp(cmd, "/taichi", true) == 0) {
		 LoopingAnim(playerid,"PARK","Tai_Chi_Loop",4.0,1,0,0,0,0);
         return 1;
    }
    
    // ChairSit
    if(strcmp(cmd, "/chairsit", true) == 0) {
		 LoopingAnim(playerid,"BAR","dnk_stndF_loop",4.0,1,0,0,0,0);
         return 1;
    }
    
    /* Would allow people to troll... but would be cool as a script
	   controlled function
    // Bed Sleep R
    if(strcmp(cmd, "/inbedright", true) == 0) {
		 LoopingAnim(playerid,"INT_HOUSE","BED_Loop_R",4.0,1,0,0,0,0);
         return 1;
    }
    // Bed Sleep L
    if(strcmp(cmd, "/inbedleft", true) == 0) {
		 LoopingAnim(playerid,"INT_HOUSE","BED_Loop_L",4.0,1,0,0,0,0);
         return 1;
    }*/
    

	// START DANCING
 	if(strcmp(cmd, "/dance", true) == 0) {
		    new tmp[256];

			// Get the dance style param
      		tmp = strtok(cmdtext, idx);
			if(!strlen(tmp)) {
				SendClientMessage(playerid,0xFF0000FF,"USAGE: /dance [style 1-4]");
				return 1;
			}
			
			dancestyle = strval(tmp);
			if(dancestyle < 1 || dancestyle > 4) {
			    SendClientMessage(playerid,0xFF0000FF,"USAGE: /dance [style 1-4]");
			    return 1;
			}
			
			if(dancestyle == 1) {
			    SetPlayerSpecialAction(playerid,SPECIAL_ACTION_DANCE1);
			} else if(dancestyle == 2) {
			    SetPlayerSpecialAction(playerid,SPECIAL_ACTION_DANCE2);
			} else if(dancestyle == 3) {
			    SetPlayerSpecialAction(playerid,SPECIAL_ACTION_DANCE3);
			} else if(dancestyle == 4) {
			    SetPlayerSpecialAction(playerid,SPECIAL_ACTION_DANCE4);
			}
 	  		return 1;
	}
	
	return 0;
}
//-------------------------------------------------
// EOF
Last edited by Andrew_David on November 25th, 2009, 1:57 pm, edited 2 times in total.
Image
Infernus Club #1
[00:01:50] ** Newbie Donald_Hamburger: I hear you coding now, you think you can take people's jobs motherfucker? Huh?! **
John_Pendergast
Posts: 693.0
Joined: March 28th, 2009, 11:50 pm
Location: Hungary

Post by John_Pendergast »

Don't we have more anims already? Oh yes we do.

+ You shoudln't start helping SZR by creating FSs. If you have a code, post it somewhere, but I doubt a FS would be installed just by asking it...
John Pendergast
Andrew_David
Server Moderator
Server Moderator
Posts: 671.0
Joined: April 21st, 2009, 7:24 am
Game Name(s): Andrew_David
Location: Fantasy World

Re:

Post by Andrew_David »

John_Pendergast wrote:Don't we have more anims already? Oh yes we do.

+ You shoudln't start helping SZR by creating FSs. If you have a code, post it somewhere, but I doubt a FS would be installed just by asking it...
where i can post the code so?
Image
Infernus Club #1
[00:01:50] ** Newbie Donald_Hamburger: I hear you coding now, you think you can take people's jobs motherfucker? Huh?! **
John_Pendergast
Posts: 693.0
Joined: March 28th, 2009, 11:50 pm
Location: Hungary

Post by John_Pendergast »

Code: Select all

[code]here
[/code]

or to pastebin
John Pendergast
Andrew_David
Server Moderator
Server Moderator
Posts: 671.0
Joined: April 21st, 2009, 7:24 am
Game Name(s): Andrew_David
Location: Fantasy World

Re:

Post by Andrew_David »

John_Pendergast wrote:

Code: Select all

[code]here
[/code]

or to pastebin
ah ok. i thinked in put it at other forum part lol sorry
Image
Infernus Club #1
[00:01:50] ** Newbie Donald_Hamburger: I hear you coding now, you think you can take people's jobs motherfucker? Huh?! **
Andrew_David
Server Moderator
Server Moderator
Posts: 671.0
Joined: April 21st, 2009, 7:24 am
Game Name(s): Andrew_David
Location: Fantasy World

Re: [filterscript]- Animations.

Post by Andrew_David »

Yo, i made this video showing what this animations have not errors. etc.
Youtube Video: show
Image
Infernus Club #1
[00:01:50] ** Newbie Donald_Hamburger: I hear you coding now, you think you can take people's jobs motherfucker? Huh?! **
User avatar
Tyrone_Phillips
Abuses Ads for Free
Posts: 650.0
Joined: August 28th, 2009, 6:45 pm
Game Name(s): Tyrone_Phillips
Location: Boulder, Colorado (USA)

Re: [filterscript]- Animations.

Post by Tyrone_Phillips »

Support :circlejerk:
Image

"[1/4/13] * @RPTV (~[email protected]) Quit (Quit: sorry bro mom has to check email)"
User avatar
brains
live from the moon
live from the moon
Posts: 293.0
Joined: December 31st, 2007, 11:04 am
Location: the moon
Contact:

Re: [filterscript]- Animations.

Post by brains »

okey, added new stuff it to our anim fs
James_Walker
Posts: 205.0
Joined: September 13th, 2008, 9:18 pm

Re: [filterscript]- Animations.

Post by James_Walker »

suggestion for the /sup animation.

player 1 does /sup 1/2 id
player 2 does /supaccept (/supa) so both players do the animation at the same time.
User avatar
Tyrone_Phillips
Abuses Ads for Free
Posts: 650.0
Joined: August 28th, 2009, 6:45 pm
Game Name(s): Tyrone_Phillips
Location: Boulder, Colorado (USA)

Re: [filterscript]- Animations.

Post by Tyrone_Phillips »

See what my suggestion brings :)

I agree with James, but it seems like it would be a hassle.....
Image

"[1/4/13] * @RPTV (~[email protected]) Quit (Quit: sorry bro mom has to check email)"
Andrew_David
Server Moderator
Server Moderator
Posts: 671.0
Joined: April 21st, 2009, 7:24 am
Game Name(s): Andrew_David
Location: Fantasy World

Re: [filterscript]- Animations.

Post by Andrew_David »

James_Walker wrote:suggestion for the /sup animation.

player 1 does /sup 1/2 id
player 2 does /supaccept (/supa) so both players do the animation at the same time.
man i know about FS but no as that i am not pro like salmon or brains. sorry but that a perfect idea.
Image
Infernus Club #1
[00:01:50] ** Newbie Donald_Hamburger: I hear you coding now, you think you can take people's jobs motherfucker? Huh?! **
Andrew_David
Server Moderator
Server Moderator
Posts: 671.0
Joined: April 21st, 2009, 7:24 am
Game Name(s): Andrew_David
Location: Fantasy World

Re: [filterscript]- Animations.

Post by Andrew_David »

thanks brains :D
Image
Infernus Club #1
[00:01:50] ** Newbie Donald_Hamburger: I hear you coding now, you think you can take people's jobs motherfucker? Huh?! **
Andrew_David
Server Moderator
Server Moderator
Posts: 671.0
Joined: April 21st, 2009, 7:24 am
Game Name(s): Andrew_David
Location: Fantasy World

Re: [filterscript]- Animations.

Post by Andrew_David »

ah i need help with my fucking game. it do not intall fuck. my bro deleted the folder game and i cant re-install it now, and when i start the intalling that give me an error............................................................ so i cant join....


The anims is working now?
Image
Infernus Club #1
[00:01:50] ** Newbie Donald_Hamburger: I hear you coding now, you think you can take people's jobs motherfucker? Huh?! **
User avatar
voodoo
kinda dump
Posts: 39.0
Joined: September 8th, 2009, 1:54 am

Re: [filterscript]- Animations.

Post by voodoo »

Yeah, they were added.
Castro Wilson - LSPD; Officer
BigAssGoat
Posts: 838.0
Joined: September 29th, 2009, 4:03 am

Re: [filterscript]- Animations.

Post by BigAssGoat »

Would be cool to have /sup that u can accept because RPing some gayass meeting where you want to do use this shit needs vent and alot of luck. Also there could be something like handshakes and stuff ya know, would be cool
Image
John_Pendergast
Posts: 693.0
Joined: March 28th, 2009, 11:50 pm
Location: Hungary

Post by John_Pendergast »

SZR lacks roleplay, admit it.

Also, I doubt that your fun would be up to how much you can synch your anims.
John Pendergast
BigAssGoat
Posts: 838.0
Joined: September 29th, 2009, 4:03 am

Re: [filterscript]- Animations.

Post by BigAssGoat »

True
Image
Andrew_David
Server Moderator
Server Moderator
Posts: 671.0
Joined: April 21st, 2009, 7:24 am
Game Name(s): Andrew_David
Location: Fantasy World

Re: [filterscript]- Animations.

Post by Andrew_David »

Update:
PreloadAnimLibs:

Code: Select all

   PreloadAnimLib(playerid,"BD_FIRE");
   PreloadAnimLib(playerid,"BAR");
   PreloadAnimLib(playerid,"CAR");
   PreloadAnimLib(playerid,"CAR");
Anim command and text:

Code: Select all

    // Wash Hands new
 	if(strcmp(cmd, "/washands", true) == 0) {
		LoopingAnim(playerid,"BD_FIRE","wash_up",4.0,1,0,0,1,1);
        return 1;
    }
    // MChairSit new
    if(strcmp(cmd, "/mchairsit", true) == 0) {
		 LoopingAnim(playerid,"BAR","dnk_stndm_loop",4.0,1,0,0,0,0);
         return 1;
    }
    // FixcarIN new
 	if(strcmp(cmd, "/fixcarin", true) == 0) {
		LoopingAnim(playerid,"CAR","Fixn_Car_Loop",4.0,1,0,0,1,1);
        return 1;
    }
    // FixcarOUT new
 	if(strcmp(cmd, "/fixcarout", true) == 0) {
		LoopingAnim(playerid,"CAR","Fixn_Car_Out",4.0,1,0,0,1,1);
        return 1;
    }
		// UPDATE: Smoking with a Cigar and Animation, same time
    	if(strcmp(cmd, "/smoke 2", true) == 0) {
		LoopingAnim(playerid,"SMOKING", "M_smklean_loop", 4.0, 1, 0, 0, 0, 0); // male
        SetPlayerSpecialAction(playerid,SPECIAL_ACTION_SMOKE_CIGGY); // Giving a Cigar
        if(strcmp(cmd, "f", true) == 0 || strcmp(cmd, "f", true) == 0)
		ClearAnimations(playerid);
	    return 1;
    }
/washands: this command is for do something; i mean simply wash the hands or a salmon kitchens.
/mchairsit: for a Male Chairsit.
/fixcarin: is for be in a car fixing it. (Mechanic RP)
/fixcarout: is for is for get out from the car. (Mechanic RP)
P.s: with this ''/smoke 2'' the person will appear be smoking a cigarette, now is not only the animation it will have a real cigarette.!
P.ss: I did this and verify if they do not have bugs, script by me.
Image
Infernus Club #1
[00:01:50] ** Newbie Donald_Hamburger: I hear you coding now, you think you can take people's jobs motherfucker? Huh?! **
Post Reply