AdminMod.de
https://www.adminmod.de/

plugin_logd_killstreak umschreiben ????
https://www.adminmod.de/viewtopic.php?t=8926
Seite 1 von 1

Autor:  Ghost [ 25.10.2004, 16:40 ]
Betreff des Beitrags:  plugin_logd_killstreak umschreiben ????

ich hoffe das gehöhrt hier rein. wenn nicht bitte verschieben :wink:

unten hab ich den ganz normalen plugin_logd_killstreak.

jetzt möchte ich das aber so haben das (ich nenne es mal wav1, wav2 und wav3) wenn jemand 2 kills GLEICHZEITIG bzw innerhalb einer sec. hat kommt wav1 mit text, hat jemand 3 kills GLEICHZEITIG bzw kommt wav2 und text und mit 4 kills das gleiche.

jetzt ist es ja so das die wav`s und texte kommen wenn man die kills HINTEREINANDER hat (innerhalb einer zeitspanne)


ich hoffe ich konnte mein anliegen einigermassen erklären. :?


kann mir das jemand umschreiben oder mir sagen welche stellen ich umschreiben muss ????


Vielen Dank und lieben gruß

Marc


Code:
/*
* Bud-froggy Productions® -- July 26nd, 2001
* Killing Streak Announcer®
*
* Announces Kill streaks
*
* Place in logd_kill
*/

#pragma dynamic 16384

#include <core>
#include <console>
#include <string>
#include <admin>
#include <adminlib>

new STRING_VERSION[MAX_DATA_LENGTH] = "v2";

#define Level1 3
#define Level2 5
#define Level3 7


#define ACCESS_CONSOLE 131072
#define CLEAN_SLATE 0

new FragCount[ MAX_PLAYERS ] = {CLEAN_SLATE,...};


playFile( sFileName[ ] )
{
	new Name[ MAX_NAME_LENGTH ];
	new iUserID;
	new iWONID;
	new maxplayers = maxplayercount();

	for( new i = 1; i <= maxplayers; i++ )
	{
		if( playerinfo(i, Name, MAX_NAME_LENGTH, iUserID, iWONID ) ) {
			//if its not a bot
			//if( iWONID != 0 )
			 {
				playsound(Name, sFileName );
			}
		}
	}
	return 1;
}





public logd_killstreak( HLCommand,HLData,HLUserName,UserIndex )
{
	new iIDA;
	new iIDV;

	new sID1[3];
	new sID2[3];
	new Data[MAX_DATA_LENGTH];
	new Message[ MAX_TEXT_LENGTH ];
	new Name[MAX_NAME_LENGTH];

	convert_string( HLData, Data, MAX_DATA_LENGTH );
	strsplit( Data, " ", sID1, 3, sID2, 3 );

	iIDA = strtonum( sID1 );
	iIDV = strtonum( sID2 );

	if(!playerinfo(iIDA, Name, MAX_NAME_LENGTH)){
		return PLUGIN_FAILURE;
	}

	FragCount[ iIDV ] = CLEAN_SLATE;
	FragCount[ iIDA ] += 1;

	if( FragCount[ iIDA ] == Level1 )
	{
		playFile( "misc/multikill.wav" );
		snprintf( Message, MAX_TEXT_LENGTH, "%s: Multi Kill!!!", Name );
		typesay(Message, 6, 255, 255, 255 );
	}
	else if( FragCount[ iIDA ] == Level2 )
	{
		playFile( "misc/ultrakill.wav" );
		snprintf( Message, MAX_TEXT_LENGTH, "%s: Ultra Kill!!!", Name );
		typesay(Message, 6, 255, 10, 255 );
	}
	else if( FragCount[iIDA ] == Level3 )
	{
		playFile( "misc/killingspree.wav" );
		snprintf( Message, MAX_TEXT_LENGTH, "%s is on a Killing Spree!!!", Name );
		typesay(Message, 6, 255, 15, 15 );
	}

	return PLUGIN_HANDLED;
}


public plugin_connect(HLUserName, HLIP, UserIndex)
{
	if (UserIndex >= 1 && UserIndex <= MAX_PLAYERS) {
		FragCount[UserIndex] = CLEAN_SLATE;
	}
	return PLUGIN_CONTINUE;
}

public plugin_disconnect(HLUserName, UserIndex)
{
	if (UserIndex >= 1 && UserIndex <= MAX_PLAYERS) {
		FragCount[UserIndex] = CLEAN_SLATE;
	}
	return PLUGIN_CONTINUE;
}



public plugin_init()
{
	plugin_registerinfo("Kill Streak Announcer","Announces kill streaks.",STRING_VERSION);
	plugin_registercmd("logd_killstreak", "logd_killstreak", ACCESS_CONSOLE, "");

	exec( "logd_reg 57 admin_command logd_killstreak" );
	return PLUGIN_CONTINUE;
}

Autor:  Sir Drink a lot [ 25.10.2004, 17:20 ]
Betreff des Beitrags: 

erm...

Du hast doch den HL-Multiplayer Server.

Funktioniert das Plugin oben etwa in dieser Form auf Deinem Server?

In meinem Test mit HL-Multiplayer Server über Steam konnte ich doch kein LogD benutzen, da HL eine andere Log-Datei Struktur hat.

Hm...
allerdings konnte ich es nur mit listenserver ausprobieren...

*Edith:*
so..habs auch mit HL Dediserver ausprobiert. Keine Chance. LogD geht nicht, wenn man die Data von kills auswerten will. Nun. Aber die Funktion wird schon aufgerufen. Jetzt könnte man natürlich mit viel Aufwand ermitteln, welcher Spieler ein Frag gemacht hat....uiuiui...

Autor:  Ghost [ 25.10.2004, 19:39 ]
Betreff des Beitrags: 

also

das plugin wie es oben steht geht 100%ig, nur ich hätte es halt gerne so wie ich es beschrieben habe

Autor:  Sir Drink a lot [ 25.10.2004, 20:08 ]
Betreff des Beitrags: 

na dann....wenn es bei Dir 100% läuft...

Dann empfehle ich das plugin_impressive. :evil:

Aber wieso funktioniert es bei mir auf WIN nicht?
Ich bekomme nur Fehlermeldungen...

Daher habe ich das Plugin so umgeschrieben, dass es trotzdem funktioniert (wobei das Firstblood nach respawn etwas nervig ist..)
Code:
#include <string>
#include <admin>
#include <adminlib>


#define ACCESS_CONSOLE 131072


/////////////////////////////////
//KILLS IN TIME (No. of frags) //
/////////////////////////////////
new g_kstimer		=3;
new g_DOUBLEKILL	=2;
new g_MULTIKILL		=3;
new g_MONSTERKILL	=4;

/////////////////////////////
//KILLSTREAK (No. of frags)//
/////////////////////////////
new g_KILLINGSPREE	=3;
new g_DOMINATING	=4;
new g_GODLIKE		=5;

new g_CurrentKill[MAX_PLAYERS];
new g_CountKills[MAX_PLAYERS];
new g_TimeKills[MAX_PLAYERS];

public plugin_init(){
	plugin_registercmd("im_kill", "logd_handler", ACCESS_CONSOLE, "");
	exec( "logd_reg 57 admin_command im_kill" );
	plugin_registercmd("im_suicide", "logd_handler", ACCESS_CONSOLE, "");
	exec( "logd_reg 53 admin_command im_suicide" );
	return PLUGIN_CONTINUE;
}

public logd_handler(HLCommand,HLData,HLUserName,UserIndex){
	new Command[MAX_COMMAND_LENGTH];
	convert_string(HLCommand,Command,MAX_COMMAND_LENGTH);
	switch(Command[3]){
		case 'k': kill();
		case 's': kill();
	}
	return PLUGIN_CONTINUE;
}

kill(){
	new Data[MAX_DATA_LENGTH];
	new Player[MAX_NAME_LENGTH];
	new iKills;
	new i;
	new iDead;
	new maxplayers=maxplayercount();
	for(i=1;i<=maxplayers;i++){
		if(playerinfo(i,Player,MAX_NAME_LENGTH,_,_,_,iDead)){
			if(!iDead){
				get_userFrags(Player,iKills);
				if(g_CurrentKill[i]<iKills){
					g_CurrentKill[i]=iKills;
					g_CountKills[i]+=1;
					g_TimeKills[i]+=1;
					
					if(g_TimeKills[i]==1){
						set_timer("count_time_score",g_kstimer,0,Player);
					}
						
					if(g_CountKills[i]==1){
						snprintf(Data,MAX_DATA_LENGTH,"%s has made^nhis firstblood after respawn!",Player);
						playFile( "sound/misc/firstblood.wav", Data); 
					}else if(g_CountKills[i]==g_KILLINGSPREE){
						snprintf(Data,MAX_DATA_LENGTH,"%s is on^nkillingspree!",Player);
						playFile( "sound/misc/killingspree.wav", Data);
					}else if(g_CountKills[i]==g_DOMINATING){
						snprintf(Data,MAX_DATA_LENGTH,"%s is^ndominating!",Player);
						playFile( "sound/misc/dominating.wav", Data);
					}else if(g_CountKills[i]==g_GODLIKE){
						snprintf(Data,MAX_DATA_LENGTH,"%s is^ngodlike!",Player);
						playFile( "sound/misc/godlike.wav", Data);
					}
				}
			}else{
				if(g_CountKills[i]>0){
					g_CountKills[i]=0;
					g_TimeKills[i]=0;
				}
			}
		}
	}
}

public count_time_score(Timer,Repeat,HLName,HLParam) {
	new Data[MAX_DATA_LENGTH];
	new Player[MAX_NAME_LENGTH];
	new i;
	convert_string(HLParam,Player,MAX_NAME_LENGTH);
	get_userindex(Player,i);
	if(g_TimeKills[i]==g_DOUBLEKILL){
		snprintf(Data,MAX_DATA_LENGTH,"%s has made^na doublekill!",Player);
		playFile( "sound/misc/doublekill.wav",Data); 
	}else if(g_TimeKills[i]==g_MULTIKILL){
		snprintf(Data,MAX_DATA_LENGTH,"%s has made^na multikill!",Player);
		playFile( "sound/misc/multikill.wav", Data);
	}else if(g_TimeKills[i]==g_MONSTERKILL){
		snprintf(Data,MAX_DATA_LENGTH,"%s has made^na monsterkill!",Player);
		playFile( "sound/misc/monsterkill.wav", Data);
	}
	g_TimeKills[i]=0;
}
playFile( sFileName[ ],Data[] ) 
{ 
	new Name[ MAX_NAME_LENGTH ];
	new maxplayers = maxplayercount(); 
	typesay(Data,12,random(200),random(200),100);
	for( new i = 1; i <= maxplayers; i++ ) 
	{ 
		if( playerinfo(i, Name, MAX_NAME_LENGTH) ) {
			speakto(Name, sFileName ); 
		} 
	} 
} 

Autor:  Ghost [ 25.10.2004, 21:09 ]
Betreff des Beitrags: 

ok ich werde es grad mal testen und dir berichten...DANKE DIR

Autor:  Ghost [ 26.10.2004, 23:56 ]
Betreff des Beitrags: 

ok das ding geht echt super aber.........


jetzt sind die alten funktionen auch noch da. ich wollte NUR doublekill (2 kills gleichzeitig) und monsterkill (3 kills gleichzeitig).....und den firstblood nich nach jedem respawn von jedem spieler sonndern nur der ERSTE kill im map.....

sonnst ich das echt klasse und funzt auch.


könntest du mir das bitte nochmal so ändern ???

Autor:  Sir Drink a lot [ 27.10.2004, 19:24 ]
Betreff des Beitrags: 

Ok. Hab die anderen Sounds einfach auskommentiert.
Habe Dir den Monsterkill = 4 Frags innerhalb 3 Sekunden auch mal dringelassen. Du kannst ja die Zahlen so anpassen, wie Du möchtest. z.B. den g_kstimer erhöhen oder kleiner machen (steht z.Z. auf 3 Sekunden...zählt also die Frags innnerhalb 3 Sekunden) bzw. die Fraganzahl.

Code:
#include <string>
#include <admin>
#include <adminlib>


#define ACCESS_CONSOLE 131072


/////////////////////////////////
//KILLS IN TIME (No. of frags) //
/////////////////////////////////
new g_kstimer		=3;
new g_DOUBLEKILL	=2;
new g_MULTIKILL		=3;
new g_MONSTERKILL	=4;

/////////////////////////////
//KILLSTREAK (No. of frags)//
/////////////////////////////
/*
new g_KILLINGSPREE	=3;
new g_DOMINATING	=4;
new g_GODLIKE		=5;
*/
new g_firstkill;

new g_CurrentKill[MAX_PLAYERS];
new g_CountKills[MAX_PLAYERS];
new g_TimeKills[MAX_PLAYERS];

public plugin_init(){
	plugin_registercmd("im_kill", "logd_handler", ACCESS_CONSOLE, "");
	exec( "logd_reg 57 admin_command im_kill" );
	plugin_registercmd("im_suicide", "logd_handler", ACCESS_CONSOLE, "");
	exec( "logd_reg 53 admin_command im_suicide" );
	return PLUGIN_CONTINUE;
}

public logd_handler(HLCommand,HLData,HLUserName,UserIndex){
	new Command[MAX_COMMAND_LENGTH];
	convert_string(HLCommand,Command,MAX_COMMAND_LENGTH);
	switch(Command[3]){
		case 'k': kill();
		case 's': kill();
	}
	return PLUGIN_CONTINUE;
}

kill(){
	new Data[MAX_DATA_LENGTH];
	new Player[MAX_NAME_LENGTH];
	new iKills;
	new i;
	new iDead;
	new maxplayers=maxplayercount();
	for(i=1;i<=maxplayers;i++){
		if(playerinfo(i,Player,MAX_NAME_LENGTH,_,_,_,iDead)){
			if(!iDead){
				get_userFrags(Player,iKills);
				if(g_CurrentKill[i]<iKills){
					g_CurrentKill[i]=iKills;
					g_CountKills[i]+=1;
					g_TimeKills[i]+=1;
					
					if(g_TimeKills[i]==1){
						set_timer("count_time_score",g_kstimer,0,Player);
					}
						
					if(g_CountKills[i]==1 && !g_firstkill){
						g_firstkill=1;
						snprintf(Data,MAX_DATA_LENGTH,"%s has made^nthe firstblood!",Player);
						playFile( "sound/misc/firstblood.wav", Data); 
					}/*else if(g_CountKills[i]==g_KILLINGSPREE){
						snprintf(Data,MAX_DATA_LENGTH,"%s is on^nkillingspree!",Player);
						playFile( "sound/misc/killingspree.wav", Data);
					}else if(g_CountKills[i]==g_DOMINATING){
						snprintf(Data,MAX_DATA_LENGTH,"%s is^ndominating!",Player);
						playFile( "sound/misc/dominating.wav", Data);
					}else if(g_CountKills[i]==g_GODLIKE){
						snprintf(Data,MAX_DATA_LENGTH,"%s is^ngodlike!",Player);
						playFile( "sound/misc/godlike.wav", Data);
					}*/
				}
			}else{
				if(g_CountKills[i]>0){
					g_CountKills[i]=0;
					g_TimeKills[i]=0;
				}
			}
		}
	}
}

public count_time_score(Timer,Repeat,HLName,HLParam) {
	new Data[MAX_DATA_LENGTH];
	new Player[MAX_NAME_LENGTH];
	new i;
	convert_string(HLParam,Player,MAX_NAME_LENGTH);
	get_userindex(Player,i);
	if(g_TimeKills[i]==g_DOUBLEKILL){
		snprintf(Data,MAX_DATA_LENGTH,"%s has made^na doublekill!",Player);
		playFile( "sound/misc/doublekill.wav",Data); 
	}else if(g_TimeKills[i]==g_MULTIKILL){
		snprintf(Data,MAX_DATA_LENGTH,"%s has made^na multikill!",Player);
		playFile( "sound/misc/multikill.wav", Data);
	}else if(g_TimeKills[i]==g_MONSTERKILL){
		snprintf(Data,MAX_DATA_LENGTH,"%s has made^na monsterkill!",Player);
		playFile( "sound/misc/monsterkill.wav", Data);
	}
	g_TimeKills[i]=0;
}
playFile( sFileName[ ],Data[] ) 
{ 
	new Name[ MAX_NAME_LENGTH ];
	new maxplayers = maxplayercount(); 
	typesay(Data,12,random(200),random(200),100);
	for( new i = 1; i <= maxplayers; i++ ) 
	{ 
		if( playerinfo(i, Name, MAX_NAME_LENGTH) ) {
			speakto(Name, sFileName ); 
		} 
	} 
} 

Autor:  Ghost [ 27.10.2004, 19:31 ]
Betreff des Beitrags: 

BBOOOOHHHHHH SUPER.....du bist mein GOTT 8) Danke dir

Seite 1 von 1 Alle Zeiten sind UTC+01:00
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/