Ein neues Thema erstellen  Auf das Thema antworten  [ 8 Beiträge ] 
Autor Nachricht
BeitragVerfasst: 25.10.2004, 16:40 

Registriert: 17.10.2004, 12:11
Beiträge: 171
Wohnort: nähe Bielefeld
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;
}


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 25.10.2004, 17:20 
AM.de Team
Benutzeravatar

Registriert: 27.11.2001, 01:00
Beiträge: 3564
Wohnort: In der Nähe von Bonn
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...

_________________
Fehleranalyse: Poste den Inhalt Deiner liblist.gam, (listen)server.cfg, adminmod.cfg, users.ini, vault.ini, plugin.ini von adminmod und plugins.ini von metamod. Benutze auch die Such-Funktion


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 25.10.2004, 19:39 

Registriert: 17.10.2004, 12:11
Beiträge: 171
Wohnort: nähe Bielefeld
also

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


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 25.10.2004, 20:08 
AM.de Team
Benutzeravatar

Registriert: 27.11.2001, 01:00
Beiträge: 3564
Wohnort: In der Nähe von Bonn
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 ); 
		} 
	} 
} 

_________________
Fehleranalyse: Poste den Inhalt Deiner liblist.gam, (listen)server.cfg, adminmod.cfg, users.ini, vault.ini, plugin.ini von adminmod und plugins.ini von metamod. Benutze auch die Such-Funktion


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 25.10.2004, 21:09 

Registriert: 17.10.2004, 12:11
Beiträge: 171
Wohnort: nähe Bielefeld
ok ich werde es grad mal testen und dir berichten...DANKE DIR


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 26.10.2004, 23:56 

Registriert: 17.10.2004, 12:11
Beiträge: 171
Wohnort: nähe Bielefeld
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 ???


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 27.10.2004, 19:24 
AM.de Team
Benutzeravatar

Registriert: 27.11.2001, 01:00
Beiträge: 3564
Wohnort: In der Nähe von Bonn
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 ); 
		} 
	} 
} 

_________________
Fehleranalyse: Poste den Inhalt Deiner liblist.gam, (listen)server.cfg, adminmod.cfg, users.ini, vault.ini, plugin.ini von adminmod und plugins.ini von metamod. Benutze auch die Such-Funktion


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 27.10.2004, 19:31 

Registriert: 17.10.2004, 12:11
Beiträge: 171
Wohnort: nähe Bielefeld
BBOOOOHHHHHH SUPER.....du bist mein GOTT 8) Danke dir


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 ]"