Ein neues Thema erstellen  Auf das Thema antworten  [ 8 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: CM + AM + AMX? geht das?
BeitragVerfasst: 04.10.2003, 09:53 

Registriert: 12.08.2003, 09:15
Beiträge: 102
Hi,

würde diese 3er Kombination auf einen Server laufen, oder würden die sich gegenseitig "fressen"?

AM + CM läuft ja, doch wie sieht es aus, wenn dann auch noch AMX ins spiel kommt? Denn ich will die Kamikaze Funktion behalten, die AMX anbietet, bei AM hab ich diese noch nich gesehn :D


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 04.10.2003, 10:23 
Benutzeravatar

Registriert: 31.05.2003, 09:16
Beiträge: 790
jo, hab das mal für AM (das kamikaze)...

alles zusammen geht auch, ist aber sehr serverlastig... entscheide dich doch wenigstens für 2... die haben doch so ziemlich alle das selbe drinn...


Dateianhänge:
kamikaze.zip [5.92 KiB]
49-mal heruntergeladen
Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 04.10.2003, 20:03 

Registriert: 12.08.2003, 09:15
Beiträge: 102
ist diese Zip für Am gedacht? wenn ja, dann schmeiss ich AMX runter, denn AMX verträgt sic nic mit CM; beide sind menu gesteuert, und wenn ich bei CM die clientbefehle aufrufe, dann kick ich mich immer selber! :D

will ich n mapvote machen, dann kommen sich AMX und CM auch wieder in die Quere! Resultat, server bleibt hängen und schmiert dann ab!


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 04.10.2003, 20:42 
Benutzeravatar

Registriert: 31.05.2003, 09:16
Beiträge: 790
ja, ist für AM...

admin_timebombs 1/0
admin_timebomb Player


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 12.10.2003, 00:24 

Registriert: 12.08.2003, 09:15
Beiträge: 102
gibt es dafür auch ne art aliase, sodass die normalen user (keine admins) sich selber in eine Zeitbombe verwandeln können?


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 12.10.2003, 09:41 
Benutzeravatar

Registriert: 31.05.2003, 09:16
Beiträge: 790
ja, wenn admin_timebombs 1 ist, dann reicht im chat ein: kamikaze

dann wird der der das gesagt hat, zur zeitbombe...

(kleiner tipp: binde dir das auf ne taste, wenn dann mal ne brenzlige situation ist und du merkst das du erschossen wirst - schnell die taste drücken; bist dann zwar tot aber der andere auch :wink: :lol: , sehr gemein)


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 12.10.2003, 13:38 

Registriert: 12.08.2003, 09:15
Beiträge: 102
ok ich werde mich heute mal ransetzen und testen ;)


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 12.10.2003, 13:56 
Benutzeravatar

Registriert: 31.05.2003, 09:16
Beiträge: 790
anhang war übrigens für linux... hier nochmal die .sma, falls du noch was ändern möchtest... :arrow:
Code:
#include <core>
#include <console>
#include <string>
#include <admin>
#include <adminlib>

////////////////////////////////////////////////////////////////////////////
//
// Change these values below to whatever you want, but I did alot of testing
//  and I think they are actually best left alone.
//
////////////////////////////////////////////////////////////////////////////

// Sets the bomb's kill radius (default 500)(key = playerheight is about 95)
new BOMBKILL_RANGE = 500;

// Sets the timelimit between kamikaze runs for a player. (default 300 sec.)
#define TIMEBOMBER_DELAY 300

// Sets the vote ratio required to pass a timebomb vote (default 70 percent)
#define TIMEBOMB_VOTE_RATIO 70

// Who can call a timebomb vote  (default 1 = everyone)
#define ACCESS_VOTE_TIMEBOMB 1

// Admin access required to use admin_timebomb <target>   and admin_timebombs
#define ACCESS_TIMEBOMB 128

// TIMER fuse time (not intended to be set below 15)
#define TIMEBOMBER_TIME 15

/////////////////////////////////////////////////////////////////////////////
//
// Dont bother editing blow this point unless you know what you are doing.
// Its ok, however, change the messages between quotation marks if you want.
//
/////////////////////////////////////////////////////////////////////////////

new STRING_VERSION[MAX_DATA_LENGTH] = "2.50";

new bool:bIsBombing = false;
new LastBombTime[MAX_PLAYERS+1];
new bool:bBombsEnabled = true;

new LastBombedName[MAX_NAME_LENGTH];
new LastBomberIndex = 0;
new iTimebombed_Timer = 0;

new BlowemUpEarly = 0;
new BombRightGuy;

public plugin_init()
{
	plugin_registerinfo("Human Time-Bomb Plugin", "say: kamakaze", STRING_VERSION);
	plugin_registercmd("admin_timebombs", "admin_timebombs", ACCESS_TIMEBOMB, "admin_timebombs <on|off>: Controls whether players can kamikaze.");
	plugin_registercmd("admin_timebomb", "admin_timebomb", ACCESS_TIMEBOMB, "admin_timebomb <target>: Turns player into time-bomb.");
	plugin_registercmd("admin_vote_timebomb","admin_vote_timebomb",ACCESS_VOTE_TIMEBOMB,"admin_vote_timebomb <target>: Starts a vote to turn a target into a timebomb.");
	plugin_registercmd("say", "HandleSay", ACCESS_ALL);
	return PLUGIN_CONTINUE;
}

// I dont know precisely what this "plugin_connect" does, but sank_dice had it and thats what mine is based on.
public plugin_connect(HLUserName, HLIP, UserIndex)
{
	if (UserIndex >= 1 && UserIndex <= MAX_PLAYERS)
		LastBombTime[UserIndex] = 0;

	return PLUGIN_CONTINUE;
}

public admin_timebombs(HLCommand, HLData, HLUserName, UserIndex)
{
	new Data[MAX_DATA_LENGTH];
	new User[MAX_NAME_LENGTH];
	new Text[MAX_TEXT_LENGTH];

	new Red = random(256);
	new Green = random(256);
	new Blue = random(256);

	convert_string(HLData, Data, MAX_COMMAND_LENGTH);
	convert_string(HLUserName, User, MAX_NAME_LENGTH);

	if (check_param(Data) == 1)
	{
		bBombsEnabled = true;
		snprintf(Text, MAX_TEXT_LENGTH, "Ok, lets kamikaze!");
		centersay(Text, 5, Red, Green, Blue);
	}
	else
	{
		bBombsEnabled = false;
		snprintf(Text, MAX_TEXT_LENGTH, "No more kamikazes.");
		centersay(Text, 5, Red, Green, Blue);
	}

	snprintf(Text, MAX_TEXT_LENGTH, "admin_timebombs %d", bBombsEnabled);
	selfmessage(Text);

	return PLUGIN_HANDLED;
}

public admin_timebomb(HLCommand, HLData, HLUserName, UserIndex)
{
	new Data[MAX_DATA_LENGTH];
	new User[MAX_NAME_LENGTH];
	new Text[MAX_TEXT_LENGTH];
	new TargetName[MAX_NAME_LENGTH];
	new Command[MAX_COMMAND_LENGTH];
	new BombGuy[MAX_DATA_LENGTH];
	new Name[MAX_NAME_LENGTH];
	new SessionID, WONID;
	new UserTeam, UserDead;
	new TargetIndex;

	new Red = random(256);
	new Green = random(256);
	new Blue = random(256);

	convert_string(HLData, Data, MAX_DATA_LENGTH);
	convert_string(HLUserName, User, MAX_NAME_LENGTH);
	convert_string(HLCommand,Command,MAX_COMMAND_LENGTH);

	// is anyone else a bomb?
	if (bIsBombing == true)
		{
			selfmessage("Someone else is a time-bomb now, please wait.");
			return PLUGIN_CONTINUE;
		}
	// no, then we can check some more things
	else{
		if (check_user(Data) == 1) {
		get_username(Data,TargetName,MAX_NAME_LENGTH);
		get_userindex(Data,TargetIndex);
		strcpy(BombGuy, TargetName, MAX_NAME_LENGTH);
		if (UserIndex != LastBomberIndex || streq(LastBombedName, TargetName) == 0) {
	  		say_command(User,Command,TargetName);
		}
		if(check_immunity(TargetName)!=0) {
			snprintf(Text, MAX_TEXT_LENGTH, "Laf. You can't turn %s into a time-bomb, you silly bear.", TargetName);
			messageex(User, Text, print_chat);
			return PLUGIN_CONTINUE;
		}
		// we check to see if the target is a dead player and exit the plugin if dead
		if (playerinfo(TargetIndex, Name, MAX_NAME_LENGTH, SessionID, WONID, UserTeam, UserDead)){
			if (UserDead != 0){
				snprintf(Text, MAX_TEXT_LENGTH, "You can't turn %s into a time-bomb, he is already dead.", TargetName);
				messageex(User, Text, print_chat);
				return PLUGIN_CONTINUE;
			}
			// ok, now we are making a bomb because our target is alive and not immune
			else if (UserDead !=1){
				// BombRightGuy: I had problems name changing while they were bombs, this solved it (userindex).
				BombRightGuy = TargetIndex;
				snprintf(Text, MAX_TEXT_LENGTH, "%s has turned %s into a human time-bomb.", User, TargetName);
				say(Text);
				snprintf(Text, MAX_TEXT_LENGTH, "%s will explode in 10 seconds", TargetName);
				typesay(Text, 1, Red, Green, Blue);
				glow(TargetName, Red, Green, Blue);
				bIsBombing = true;
				new i;
				new iMaxPlayers = maxplayercount();
				for (i = 1; i <= iMaxPlayers; i++) {
					if (playerinfo(i,Name,MAX_NAME_LENGTH) == 1) {
  						execclient(Name, "speak ^"warning _comma detonation device activated^"");
					}
				}
				iTimebombed_Timer = set_timer("Timebombed_Timer", 1, TIMEBOMBER_TIME, BombGuy);
				LastBomberIndex = UserIndex;
				}
			else {
				selfmessage("Unrecognized player: ");
				selfmessage(Data);
			}
		}
		return PLUGIN_CONTINUE;
	}
}
	return PLUGIN_CONTINUE;
}

public HandleSay(HLCommand, HLData, HLUserName, UserIndex)
{
	new Data[MAX_DATA_LENGTH];
	new User[MAX_NAME_LENGTH];
	new Text[MAX_TEXT_LENGTH];
	new BombGuy[MAX_NAME_LENGTH];

	new Red = random(256);
	new Green = random(256);
	new Blue = random(256);

	convert_string(HLData, Data, MAX_DATA_LENGTH);
	convert_string(HLUserName, User, MAX_NAME_LENGTH);

	strcpy(BombGuy, User, MAX_DATA_LENGTH);

	// Remove quotes, if there are any
	strstripquotes(Data);

	// here is what we have to say to become a bomb -- any loose spelling of "kamikaze"
	// also we check to make sure admin didnt disable kamikaze runs
	if ( ((strcasestr(Data, "kamik") != -1) || (strcasestr(Data, "kamak") != -1))
		&& (bBombsEnabled == true) )
	{
		new Name[MAX_NAME_LENGTH];
		new SessionID, WONID;
		new UserTeam, UserDead;
		if (playerinfo(UserIndex, Name, MAX_NAME_LENGTH, SessionID, WONID, UserTeam, UserDead)){
		if (UserDead != 0){
			messageex(User, "<Server>  You cant be a time-bomb, you are dead already.", print_chat);
			return PLUGIN_CONTINUE;
				}
		else if (UserDead !=1){
		new CurTime = systemtime();
		// Limit bombing frequency
		if (CurTime < (LastBombTime[UserIndex] + TIMEBOMBER_DELAY))
		{
			messageex(User, "<Server>  Sorry, there is a 5 minute delay between your bombings.", print_chat);
			return PLUGIN_CONTINUE;
		}

		else if (bIsBombing == true)
		{
			messageex(User, "<Server>  Someone else is a time-bomb now, please wait.", print_chat);
			return PLUGIN_CONTINUE;
		}
		else
		{
			// Being the Bomb -- just like above
			BombRightGuy = UserIndex;
			snprintf(Text, MAX_TEXT_LENGTH, "<Server>  %s has become a human time-bomb. Everyone RUN for cover!", User);
			say(Text);
			snprintf(Text, MAX_TEXT_LENGTH, "%s will explode in %i seconds", User, TIMEBOMBER_TIME);
			typesay(Text, 1, Red, Green, Blue);
			glow(User, Red, Green, Blue);
			bIsBombing = true;
			new i;
			new iMaxPlayers = maxplayercount();
			for (i = 1; i <= iMaxPlayers; i++) {
				if (playerinfo(i,Name,MAX_NAME_LENGTH) == 1) {
   					execclient(Name, "speak ^"warning _comma detonation device activated^"");
				}
			}
			iTimebombed_Timer = set_timer("Timebombed_Timer", 1, TIMEBOMBER_TIME, BombGuy);
			LastBombTime[UserIndex] = CurTime;
			}
		}
		return PLUGIN_CONTINUE;
	}
}
	return PLUGIN_CONTINUE;
}

public admin_vote_timebomb(HLCommand,HLData,HLUserName,UserIndex) {
	new Command[MAX_COMMAND_LENGTH];
	new Data[MAX_DATA_LENGTH];
	new Text[MAX_TEXT_LENGTH];
	new User[MAX_NAME_LENGTH];
	new WONID;
	new strWONID[MAX_NUMBER_LENGTH];
	new Name[MAX_NAME_LENGTH];
	new SessionID, infoWONID;
	new UserTeam, UserDead;
	new TargetIndex;

	if (vote_allowed()!=1) {
		selfmessage( "Vote not allowed at this time.");
		return PLUGIN_HANDLED;
	}
	// is anyone else a bomb?
	if (bIsBombing == true){
		selfmessage("Someone else is a time-bomb now, please wait.");
		return PLUGIN_CONTINUE;
	}

	convert_string(HLCommand,Command,MAX_COMMAND_LENGTH);
	convert_string(HLData,Data,MAX_DATA_LENGTH);
	convert_string(HLUserName,User,MAX_NAME_LENGTH);

	if (check_user(Data) == 1) {
		new real_user[MAX_NAME_LENGTH];
		get_username(Data,real_user,MAX_NAME_LENGTH);
		say_command(User,Command,Data);
		if(check_immunity(real_user)!=0) {
			snprintf(Text, MAX_TEXT_LENGTH, "Laf. You can't turn %s into a timebomb you silly bear.", real_user);
			say(Text);
		} else {
			// we check to see if the target is a dead player and exit if dead
			get_userindex(Data,TargetIndex);
			if (playerinfo(TargetIndex, Name, MAX_NAME_LENGTH, SessionID, infoWONID, UserTeam, UserDead)){
				if (UserDead != 0){
					snprintf(Text, MAX_TEXT_LENGTH, "You can't turn %s into a time-bomb, he is already dead.", real_user);
					say(Text);
					return PLUGIN_CONTINUE;
				}
			}
			BombRightGuy = TargetIndex;
			bIsBombing = true;
			snprintf(Text, MAX_TEXT_LENGTH, "Should we blow up %s?", real_user);
			if(getvar("sv_lan")==1) {
				vote(Text,"Yes","No","HandleBombVote",real_user);
			} else {
				get_userWONID(real_user,WONID);
				numtostr(WONID,strWONID);
				vote(Text,"Yes","No","HandleBombVote",strWONID);
			}
		}
	} else {
		selfmessage("Unrecognized user name ");
		selfmessage(Data);
	}
	return PLUGIN_HANDLED;
}

/* Handle a timebomb vote's results. */
public HandleBombVote(WinningOption,HLUser,VoteCount,UserCount) {
	new strNumber[MAX_NUMBER_LENGTH];
	new Text[MAX_TEXT_LENGTH];
	new VoteUser[MAX_DATA_LENGTH];
	new BombGuy[MAX_DATA_LENGTH];
	new Name[MAX_NAME_LENGTH];
	new SessionID, WONID;
	new UserTeam, UserDead;

	new Red = random(256);
	new Green = random(256);
	new Blue = random(256);

	convert_string(HLUser,VoteUser,MAX_DATA_LENGTH);
	strcpy(BombGuy, VoteUser, MAX_NAME_LENGTH);

	if (WinningOption == 1) {
		new Ratio = TIMEBOMB_VOTE_RATIO;
		if (VoteCount >= Ratio*UserCount/100) {

			// we check to see if the target is a dead player and exit the plugin if dead
			if (playerinfo(BombRightGuy, Name, MAX_NAME_LENGTH, SessionID, WONID, UserTeam, UserDead)){
				strcpy(VoteUser, Name, MAX_NAME_LENGTH);
				if (UserDead != 0){
					snprintf(Text, MAX_TEXT_LENGTH, "<Server> Can't turn %s into a time-bomb, he died already.", VoteUser);
					say(Text);
					bIsBombing = false;
					BlowemUpEarly = 0;
					BombRightGuy = 0;
					return PLUGIN_CONTINUE;
				}
				// ok, now we are making a bomb because our target is alive and not immune
				else if (UserDead !=1){
					snprintf(Text, MAX_TEXT_LENGTH, "%s will explode in %i seconds", VoteUser,TIMEBOMBER_TIME);
					typesay(Text, 1, Red, Green, Blue);
					glow(VoteUser, Red, Green, Blue);
					new i;
					new iMaxPlayers = maxplayercount();
					for (i = 1; i <= iMaxPlayers; i++) {
						if (playerinfo(i,Name,MAX_NAME_LENGTH) == 1) {
  							execclient(Name, "speak ^"warning _comma detonation device activated^"");
						}
					}
					snprintf(Text, MAX_TEXT_LENGTH, "%s was turned into a timebomb due to a vote.", VoteUser);
					say(Text);
					message(Name,"You have been turned into a timebomb due to a vote.");
					iTimebombed_Timer = set_timer("Timebombed_Timer", 1, TIMEBOMBER_TIME, BombGuy);
					}
				}
				else {
					selfmessage("Unrecognized player: ");
					selfmessage(VoteUser);
					}
			} else {
				numtostr(Ratio*UserCount/100,strNumber);
				bIsBombing = false;
				BlowemUpEarly = 0;
				BombRightGuy = 0;
				snprintf(Text, MAX_TEXT_LENGTH, "Bomb vote succeeded, but not enough votes for bomb (needed %s)",strNumber);
				say(Text);
			}
		} else {
		bIsBombing = false;
		BlowemUpEarly = 0;
		BombRightGuy = 0;
		say("Bomb vote failed.");
	}
	return PLUGIN_CONTINUE;
}

///***************************************************************************/
///    Here is the Timer Function , the heart of the timebomb

public Timebombed_Timer(Timer, Repeat, HLUserName, BombGuy)
{
	new Text[MAX_TEXT_LENGTH];
	new TargetBombName[MAX_NAME_LENGTH];
	new TargetBomb[MAX_NAME_LENGTH];
	new Countdown[MAX_TEXT_LENGTH];
	new i;
	new iMaxPlayers = maxplayercount();
	new Name[MAX_NAME_LENGTH];
	new COUNTSPEAK[MAX_TEXT_LENGTH];
	new C4_SOUND[MAX_TEXT_LENGTH];
	new C4_BEEP[MAX_TEXT_LENGTH];

	new Dead;
	new maxplayers = maxplayercount();
	new SessionID;
	new Team;
	new WONID;
	new x,y,z;
	new X,Y,Z;

	new Red = random(256);
	new Green = random(256);
	new Blue = random(256);

	convert_string(BombGuy,TargetBomb,MAX_NAME_LENGTH);

	// if a player dies before the countdown, we use this to kill the countdown and blow the bomb
	// before I added this, a dead player in chase camera mode or free look mode could lock onto
	// any live player and blow them up. It was fun, but not right. No more ghost bombers.
	if (BlowemUpEarly == 1){
		Repeat = 1;
	}
	// time to blow up
	if (Repeat-1 == 0){
		// loop to get everyones location in a map and decide whether they are too close to the bomb
		// too close? well, kill em
		for (i=1; i<=maxplayers; i++) {
			if( playerinfo(i,Name,MAX_NAME_LENGTH,SessionID,WONID,Team,Dead)!=0){
				// make sure we still have the right guy's name
				if(i == BombRightGuy){
					TargetBomb = Name;
				}
				// find everyone X is bomb, x is everyone else (one at a time)
				get_userorigin(TargetBomb, X, Y, Z);
				get_userorigin(Name,x,y,z);
				if( ! (X-x > BOMBKILL_RANGE || X-x < - BOMBKILL_RANGE ||
				   Y-y > BOMBKILL_RANGE || Y-y < - BOMBKILL_RANGE ||
				   Z-z > BOMBKILL_RANGE || Z-z < - BOMBKILL_RANGE) ){
					if(Dead==0) {
						messageex(Name, "<Server>  Sorry, the bomb killed you.", print_chat);
						slay(Name);
						}
					}
				}
			}
		get_username(TargetBomb,TargetBombName,MAX_NAME_LENGTH);
		glow(TargetBomb, 0, 0, 0);
		snprintf(Text, MAX_TEXT_LENGTH, "%s has exploded.", TargetBombName);
		typesay(Text, 1, Red, Green, Blue);
		bIsBombing = false;
		BlowemUpEarly = 0;
		BombRightGuy = 0;
		kill_timer(iTimebombed_Timer);
	}
	else
	{
		// find out if the bomb guy is dead and set blowupearly to 1 if he is dead
		// but make sure we have the right guy first
		if (Repeat >= 13){
			for (i = 1; i <= iMaxPlayers; i++) {
				if (playerinfo(i,Name,MAX_NAME_LENGTH, SessionID, WONID, Team, Dead) == 1) {
					if(i == BombRightGuy){
						TargetBomb = Name;
					}
					if (!strcmp(TargetBomb, Name)){
						if (Dead != 0){
							BlowemUpEarly = 1;
						}
					}
					// find everyone X is bomb, x is everyone else (one at a time)
					// tells who should hear the c4 timer and then makes them hear it
					get_userorigin(TargetBomb, X, Y, Z);
					get_userorigin(Name,x,y,z);
					if( ! (X-x > BOMBKILL_RANGE || X-x < - BOMBKILL_RANGE ||
					   Y-y > BOMBKILL_RANGE || Y-y < - BOMBKILL_RANGE ||
					   Z-z > BOMBKILL_RANGE || Z-z < - BOMBKILL_RANGE) ){
						playsound(Name, "weapons/c4_beep1.wav");
					}
				}
			}
			get_username(TargetBomb,TargetBombName,MAX_NAME_LENGTH);
			glow(TargetBomb, Red, Green, Blue);
 			snprintf(Text, MAX_TEXT_LENGTH, "%s will explode in %d", TargetBombName, Repeat-1);
			typesay(Text, 1, Red, Green, Blue);
			return PLUGIN_CONTINUE;
		}
		// I love this countdown. here is where we tell half-life what words to speak
		// C4 timer sound gets more intense as countdown nears completion
		if (Repeat == 12){
			strcpy(Countdown, "remaining", 20);
			strcpy(C4_BEEP, "weapons/c4_beep1.wav", 30);
		}
		if (Repeat == 11){
			strcpy(Countdown, "ten", 10);
			strcpy(C4_BEEP, "weapons/c4_beep1.wav", 30);
		}
		if (Repeat == 10){
			strcpy(Countdown, "nine", 10);
			strcpy(C4_BEEP, "weapons/c4_beep1.wav", 30);
		}
		if (Repeat == 9){
			strcpy(Countdown, "eight", 10);
			strcpy(C4_BEEP, "weapons/c4_beep1.wav", 30);
		}
		if (Repeat == 8){
			strcpy(Countdown, "seven", 10);
			strcpy(C4_BEEP, "weapons/c4_beep2.wav", 30);
		}
		if (Repeat == 7){
			strcpy(Countdown, "six", 10);
			strcpy(C4_BEEP, "weapons/c4_beep2.wav", 30);
		}
		if (Repeat == 6){
			strcpy(Countdown, "five", 10);
			strcpy(C4_BEEP, "weapons/c4_beep4.wav", 30);
		}
		if (Repeat == 5){
			strcpy(Countdown, "four", 10);
			strcpy(C4_BEEP, "weapons/c4_beep4.wav", 30);
		}
		if (Repeat == 4){
			strcpy(Countdown, "three", 10);
			strcpy(C4_BEEP, "weapons/c4_beep4.wav", 30);
		}
		if (Repeat == 3){
			strcpy(Countdown, "two", 10);
			strcpy(C4_BEEP, "weapons/c4_beep5.wav", 30);
		}
		if (Repeat == 2){
			strcpy(Countdown, "one", 10);
			strcpy(C4_BEEP, "weapons/c4_beep5.wav", 30);
		}
		if (Repeat == 1){
			return PLUGIN_CONTINUE;
		}
		snprintf(COUNTSPEAK, MAX_DATA_LENGTH, "speak ^"fvox/%s^"", Countdown);
		snprintf(C4_SOUND, MAX_DATA_LENGTH, "^"%s^"", C4_BEEP);
		for (i = 1; i <= iMaxPlayers; i++) {
			if (playerinfo(i,Name,MAX_NAME_LENGTH, SessionID, WONID, Team, Dead) == 1) {
				// we gotta make sure we got the right guy
				if(i == BombRightGuy){
					TargetBomb = Name;
				}
				// if he is dead, blow him up early, we dont want spectators ghost bombing
				if (!strcmp(TargetBomb, Name)){
					// ok, is bomber dead early? if so, set blowemup early to 1 = so next pass we blow up.
					if (Dead != 0){
						BlowemUpEarly = 1;
						}
					}
				// find everyone X is bomb, x is everyone else (one at a time)
				// find out who should hear the c4 timer sound then make them hear it
				get_userorigin(TargetBomb, X, Y, Z);
				get_userorigin(Name,x,y,z);
				if( ! (X-x > BOMBKILL_RANGE || X-x < - BOMBKILL_RANGE ||
				   Y-y > BOMBKILL_RANGE || Y-y < - BOMBKILL_RANGE ||
				   Z-z > BOMBKILL_RANGE || Z-z < - BOMBKILL_RANGE) ){
					playsound(Name, C4_SOUND);
				}
				execclient(Name, COUNTSPEAK);
			}
		}
		get_username(TargetBomb,TargetBombName,MAX_NAME_LENGTH);
		glow(TargetBomb, Red, Green, Blue);
 		snprintf(Text, MAX_TEXT_LENGTH, "%s will explode in %d", TargetBombName, Repeat-1);
		typesay(Text, 1, Red, Green, Blue);
	}
	return PLUGIN_CONTINUE;
}


Nach oben
   
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen  Auf das Thema antworten  [ 8 Beiträge ] 


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Powered by phpBB® Forum Software © phpBB Limited
Deutsche Übersetzung durch phpBB.de
Original Design von "[ Half-Life Admin Mod © Alfred Reynolds 2000-2003 ] - [ site design by Jägermeister ]"