Hi
Also ich würde gerne bei dem Plugin Impressive nur die Sounds hören und keinen weißen tsay-text. Bei mir haben schon zu viele Plugin das tsay und dadurch überschneidet sich alles. Ich habe mir dann gedacht, es würden sicherlich nur die Sounds vom Plugin "Impressive" reichen. Kann das kurz jemand machen? Bitte
Hier die "sma":
Code:
/*******************************************************************
* *********
** Sir Drink a lots Impressive-Plugin v 4.0 ********
*** *******
**** INFO: Announces a headshot shot , when you hit the ******
***** the head of your enemy. *****
****** In this Version it announces only a headshot, if the ****
******* enemy died. Also new, it has its own Playeraward with ***
******* announcing the teamscore and the best Player of the ***
******* round with his number of headshots, he made. :-) ***
******* ***
******* Max. 3 sounds can be set in vault.ini: ***
******* ***
******* admin_impressivesound1 Folder/Filename.wav ***
******* admin_impressivesound2 Folder/Filename.wav ***
******* admin_impressivesound3 Folder/Filename.wav ***
******* The sound are played by chance. (random) ***
******* ***
******* admin_impressive ON/OFF enables/disables the sounds ***
******* ***
******* admin_impressivescore ON/OFF enables/disables the ***
******* scoreboard for announcing teamscore and best player ***
******* ***
******* These vault.ini values can be changed in game by using ***
******* following commands: ***
******* ***
******* admin_impscore ON/OFF ***
******* ***
******* admin_impsound <NUMBER> <WAVE-FILE/ON/OFF> ***
******* ***
******* For example: ***
******* Number:0 COMMAND:ON/OFF sets admin_impressive ON/OFF ***
******* NUMBER:1-3 COMMAND:FOLDER/Filename.wav sets the three ***
******* sounds in vault.ini ***
******* ***
******** Thanks to Warhead,Biohazard,[Cola]-Whiskey an the **
********* www.adminmod.de forumusers for help and the idea *
********* ALSO GREAT THANKS TO NETKOWALSKI FOR THE NEW CODE !!! *
******************************************************************/
#include <core>
#include <console>
#include <string>
#include <admin>
#include <adminlib>
new STRING_VERSION[MAX_DATA_LENGTH] = "4.0";
#define ACCESS_CONSOLE 131072
#define ACCESS_ALL 0
#define CLEAN_SLATE 0
new KillCount[ 100 ] = {CLEAN_SLATE,...};
new HeadCount[ 100 ] = {CLEAN_SLATE,...};
new ctscore [MAX_DATA_LENGTH];
new terrscore[MAX_DATA_LENGTH];
new SpielerID = 0;
soundall(KillerID,weapon[])
{
new Impressive[MAX_NUMBER_LENGTH];
get_vaultdata("admin_impressive",Impressive,MAX_NUMBER_LENGTH);
if(strcmp(Impressive,"OFF")==0)
{
return PLUGIN_CONTINUE;
}
new Name[ MAX_NAME_LENGTH ];
new Text[ MAX_TEXT_LENGTH ];
new sFileName[MAX_TEXT_LENGTH];
new ImpSound1[MAX_TEXT_LENGTH];
new ImpSound2[MAX_TEXT_LENGTH];
new ImpSound3[MAX_TEXT_LENGTH];
new iRand;
new iUserID;
new iWONID;
new maxplayers = maxplayercount();
get_vaultdata("admin_impressivesound1",ImpSound1,MAX_NUMBER_LENGTH);
get_vaultdata("admin_impressivesound2",ImpSound2,MAX_NUMBER_LENGTH);
get_vaultdata("admin_impressivesound3",ImpSound3,MAX_NUMBER_LENGTH);
iRand = random(3);
/*---- DEBUG: WATCH RANDOM-NUMBER ----
snprintf(Text,MAX_TEXT_LENGTH,"RandomSound: %i",iRand);
say(Text);
*/
switch(iRand)
{
case 0: sFileName = ImpSound1;
case 1: sFileName = ImpSound2;
case 2: sFileName = ImpSound3;
}
HeadCount[KillerID] += 1;
playerinfo(KillerID,Name,MAX_NAME_LENGTH);
snprintf( Text, MAX_TEXT_LENGTH, "%s made a headshot with the %s",Name,weapon);
typesay(Text, 6, 255, 255, 255 );
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 admin_impscore(HLCommand,HLData,HLUserName,UserIndex)
{
new Data[MAX_DATA_LENGTH];
new Text[MAX_TEXT_LENGTH];
convert_string(HLData,Data,MAX_DATA_LENGTH);
if(strcmp(Data,"OFF")==0 || strcmp(Data,"off")==0 || strcmp(Data,"Off")==0)
{
set_vaultdata("admin_impressivescore","OFF");
selfmessage("");
selfmessage("");
selfmessage("---------------- Impressive-Scoreboard-Display ---------------------");
selfmessage("");
selfmessage("Impressive Scoreboard Display is disabled!!!");
selfmessage("");
selfmessage("--------------------------------------------------------------------");
}
else if(strcmp(Data,"ON")==0 || strcmp(Data,"on")==0 || strcmp(Data,"On")==0)
{
set_vaultdata("admin_impressivescore","ON");
selfmessage("");
selfmessage("");
selfmessage("---------------- Impressive-Scoreboard-Display ---------------------");
selfmessage("");
selfmessage("Impressive Scoreboard Display is enabled!!!");
selfmessage("");
selfmessage("--------------------------------------------------------------------");
}
else
{
get_vaultdata("admin_impressivescore",Data,MAX_DATA_LENGTH);
snprintf(Text,MAX_TEXT_LENGTH,"Value of admin_impressivescore is set to %s",Data);
selfmessage("");
selfmessage("");
selfmessage("---------------- Impressive-Scoreboard-Display ---------------------");
selfmessage("");
selfmessage("Wrong value for admin_impressivescore.");
selfmessage("ON = Impressive ScoreBoard Display is enabled .");
selfmessage("OFF = Impressive ScoreBoard Display is disabled.");
selfmessage("Current setting:");
selfmessage(Text);
selfmessage("");
selfmessage("--------------------------------------------------------------------");
}
return PLUGIN_HANDLED;
}
public admin_impsound(HLCommand,HLData,HLUserName,UserIndex)
{
new Data[MAX_DATA_LENGTH];
new Text[MAX_TEXT_LENGTH];
new Number[MAX_NUMBER_LENGTH];
new Soundname[MAX_TEXT_LENGTH];
new Soundname1[MAX_TEXT_LENGTH];
new Soundname2[MAX_TEXT_LENGTH];
convert_string(HLData,Data,MAX_DATA_LENGTH);
strbreak(Data,Number,Soundname,MAX_NUMBER_LENGTH);
if (strcmp(Number,"1") == 0)
{
set_vaultdata("admin_impressivesound1",Soundname);
snprintf(Text,MAX_TEXT_LENGTH,"Sound No.1 is set to %s",Soundname);
selfmessage("");
selfmessage("");
selfmessage("------------------ Impressive-Sound-Settings -----------------------");
selfmessage("");
selfmessage(Text);
selfmessage("");
selfmessage("--------------------------------------------------------------------");
}
else if (strcmp(Number,"2") == 0)
{
set_vaultdata("admin_impressivesound2",Soundname);
snprintf(Text,MAX_TEXT_LENGTH,"Sound No.2 is set to %s",Soundname);
selfmessage("");
selfmessage("");
selfmessage("------------------ Impressive-Sound-Settings -----------------------");
selfmessage("");
selfmessage(Text);
selfmessage("");
selfmessage("--------------------------------------------------------------------");
}
else if (strcmp(Number,"3") == 0)
{
set_vaultdata("admin_impressivesound3",Soundname);
snprintf(Text,MAX_TEXT_LENGTH,"Sound No.3 is set to %s",Soundname);
selfmessage("");
selfmessage("");
selfmessage("------------------ Impressive-Sound-Settings -----------------------");
selfmessage("");
selfmessage(Text);
selfmessage("");
selfmessage("--------------------------------------------------------------------");
}
else if (strcmp(Number,"0") == 0)
{
if(strcmp(Soundname,"ON")==0 || strcmp(Soundname,"on")==0 || strcmp(Soundname,"On")==0)
{
set_vaultdata("admin_impressive","ON");
snprintf(Text,MAX_TEXT_LENGTH,"All Sounds are enabled and will be played by chance.(RANDOM)");
}
else
{
set_vaultdata("admin_impressive","OFF");
snprintf(Text,MAX_TEXT_LENGTH,"All Sounds are disabled.");
}
selfmessage("");
selfmessage("");
selfmessage("------------------ Impressive-Sound-Settings -----------------------");
selfmessage("");
selfmessage(Text);
selfmessage("");
selfmessage("--------------------------------------------------------------------");
}
else
{
get_vaultdata("admin_impressive",Number,MAX_NUMBER_LENGTH);
get_vaultdata("admin_impressivesound1",Soundname,MAX_TEXT_LENGTH);
get_vaultdata("admin_impressivesound2",Soundname1,MAX_TEXT_LENGTH);
get_vaultdata("admin_impressivesound3",Soundname2,MAX_TEXT_LENGTH);
selfmessage("");
selfmessage("");
selfmessage("------------------ Impressive-Sound-Settings -----------------------");
selfmessage("");
selfmessage("Wrong value for admin_impressivesound.");
selfmessage("For example: admin_impressivesound 1 misc/headshot.wav");
selfmessage("Max. three sounds can be stored in vault.ini.");
selfmessage("To Enable/Disable the sounds: admin_impressivesound 0 ON/OFF");
selfmessage("");
selfmessage("Current sound status:");
snprintf(Text,MAX_TEXT_LENGTH,"Sound No.1: admin_impressivesound1 %s",Soundname);
selfmessage(Text);
snprintf(Text,MAX_TEXT_LENGTH,"Sound No.2: admin_impressivesound2 %s",Soundname1);
selfmessage(Text);
snprintf(Text,MAX_TEXT_LENGTH,"Sound No.3: admin_impressivesound3 %s",Soundname2);
selfmessage(Text);
snprintf(Text,MAX_TEXT_LENGTH,"The Sound Announcing is set to: %s",Number);
selfmessage(Text);
selfmessage("");
selfmessage("--------------------------------------------------------------------");
}
return PLUGIN_HANDLED;
}
public im_injure( HLCommand,HLData,HLUserName,UserIndex )
{
new NameKiller[MAX_NAME_LENGTH];
new IsDead = 0,UserID,WONID,Team;
new Attacker[MAX_NUMBER_LENGTH];
new Victim[MAX_NUMBER_LENGTH];
new weapon[MAX_NAME_LENGTH];
new Damage[MAX_NUMBER_LENGTH];
new Damage_Armor[MAX_NUMBER_LENGTH];
new Rest_Health[MAX_NUMBER_LENGTH];
new Rest_Armor[MAX_NUMBER_LENGTH];
new dummy[MAX_NAME_LENGTH];
new Rest[MAX_DATA_LENGTH];
new Data[MAX_DATA_LENGTH];
new iIDA;
new iIDD;
new iDH;
new x;
convert_string( HLData, Data, MAX_DATA_LENGTH );
strsep(Data," ",Attacker,50,Victim,50,weapon,50,Rest,50);
strsplit(Rest," ",Damage,50,Damage_Armor,50,Rest_Health,50,Rest_Armor,50);
strsplit(Damage,"#",dummy,50,Damage,50);
strsplit(Damage_Armor,"#",dummy,50,Damage_Armor,50);
strsplit(Rest_Health,"#",dummy,50,Rest_Health,50);
strsplit(Rest_Armor,"#",dummy,50,Rest_Armor,50);
/*----- DEBUG: SPLITTING THE STRING -----
new Text[MAX_DATA_LENGTH];
snprintf(Text,MAX_TEXT_LENGTH,"Att:%s ;Vict:%s ;Weapon:%s ;Damage:%s ;DamArm:%s ;Health:%s ;Armor:%s ",Attacker,Victim,Weapon,Damage,Damage_Armor,Rest_Health,Rest_Armor);
say(Text);
*/
iIDA = strtonum(Attacker);
iIDD = strtonum(Damage);
iDH =strtonum(Rest_Health);
if(!playerinfo(iIDA,NameKiller,MAX_DATA_LENGTH,UserID,WONID,Team,IsDead))
{
return PLUGIN_FAILURE;
}
if( iDH <=0 )
{
if (strcmp(weapon,"deagle") == 0 && iIDD >=80 )
{
x=1;
}
else if (strcmp(weapon,"elite") == 0 && iIDD >=40)
{
x=1;
}
else if (strcmp(weapon,"glock18") == 0 && iIDD >=40 )
{
x=1;
}
else if (strcmp(weapon,"p228") == 0 && iIDD >=40 )
{
x=1;
}
else if (strcmp(weapon,"fiveseven") == 0 && iIDD >=40)
{
x=1;
}
else if (strcmp(weapon,"usp") == 0 && iIDD >=40)
{
x=1;
}
else if (strcmp(weapon,"m3") == 0 && iIDD >=200 )
{
x=1;
}
else if (strcmp(weapon,"xm1014") == 0 && iIDD >=200 )
{
x=1;
}
else if (strcmp(weapon,"mp5navy") == 0 && iIDD >=36 )
{
x=1;
}
else if (strcmp(weapon,"p90") == 0 && iIDD >=40)
{
x=1;
}
else if (strcmp(weapon,"tmp") == 0 && iIDD >=36 )
{
x=1;
}
else if (strcmp(weapon,"mac10") == 0 && iIDD >=40 )
{
x=1;
}
else if (strcmp(weapon,"ump40") == 0 && iIDD >=45 )
{
x=1;
}
else if (strcmp(weapon,"aug") == 0 && iIDD >=50 )
{
x=1;
}
else if (strcmp(weapon,"sg552") == 0 && iIDD >=50)
{
x=1;
}
else if (strcmp(weapon,"awp") == 0 && iIDD >=155 )
{
x=1;
}
else if (strcmp(weapon,"m4a1") == 0 && iIDD >=50 )
{
x=1;
}
else if (strcmp(weapon,"ak47") == 0 && iIDD >=50 )
{
x=1;
}
else if (strcmp(weapon,"scout") == 0 && iIDD >=95 )
{
x=1;
}
else if (strcmp(weapon,"sg550") == 0 && iIDD >=70 )
{
x=1;
}
else if (strcmp(weapon,"g3sg1") == 0 && iIDD >=70 )
{
x=1;
}
else if (strcmp(weapon,"m249") == 0 && iIDD >=50)
{
x=1;
}
}
if(x==1)
{
x=0;
soundall(iIDA,weapon);
}
return PLUGIN_CONTINUE;
}
public im_playeraward( HLCommand,HLData,HLUserName,UserIndex )
{
new iIDA;
new iIDV;
new sID1[3];
new sID2[3];
new iUserID;
new iWONID;
new iTeamA;
new iTeamV;
new Data[MAX_DATA_LENGTH];
new Victim[MAX_NAME_LENGTH];
new Killer[MAX_NAME_LENGTH];
new loop;
convert_string( HLData, Data, MAX_DATA_LENGTH );
strsplit( Data, " ", sID1, 3, sID2, 3 );
iIDA = strtonum( sID1 );
iIDV = strtonum (sID2 );
if(playerinfo(iIDA, Killer, MAX_NAME_LENGTH, iUserID, iWONID, iTeamA))
{
if(playerinfo(iIDV, Victim, MAX_NAME_LENGTH, iUserID, iWONID, iTeamV))
{
if(iTeamV != iTeamA)
KillCount[ iIDA ] += 1;
else
{
KillCount[iIDA] -=1;
}
}
}
for (loop = 1; loop < maxplayercount();loop++)
{
if (KillCount[SpielerID]< KillCount[loop])
SpielerID = strtonum (sID1);
}
return PLUGIN_CONTINUE;
}
public im_resetthescore(HLCommand,HLData,HLUserName,UserIndex)
{
new loop;
new Data[MAX_NAME_LENGTH];
convert_string(HLData,Data,MAX_NAME_LENGTH);
if( strcmp( "Round_Start", Data ) != 0 )
return PLUGIN_HANDLED;
for( loop = 1; loop < maxplayercount(); loop ++ )
{
if(SpielerID == 0)
{
return PLUGIN_HANDLED;
}
KillCount[loop] = CLEAN_SLATE;
HeadCount[loop] = CLEAN_SLATE;
}
return PLUGIN_CONTINUE;
}
public im_showintheend(HLCommand,HLData,HLUserName,UserIndex)
{
new ImpScore[MAX_NUMBER_LENGTH];
get_vaultdata("admin_impressivescore",ImpScore,MAX_NUMBER_LENGTH);
if(strcmp(ImpScore,"OFF")==0)
{
return PLUGIN_CONTINUE;
}
new Params[MAX_DATA_LENGTH];
new Msg[MAX_TEXT_LENGTH];
new Text[MAX_TEXT_LENGTH];
new Name[MAX_NAME_LENGTH];
new Name1[MAX_NAME_LENGTH];
new ct[MAX_DATA_LENGTH];
new terr[MAX_DATA_LENGTH];
new event[MAX_DATA_LENGTH];
new b[MAX_NAME_LENGTH];
new loop;
new a=1;
convert_string(HLData,Params,MAX_DATA_LENGTH);
new Data1[MAX_DATA_LENGTH];
new Data2[MAX_DATA_LENGTH];
strbreak(Params,Data1,Data2,MAX_DATA_LENGTH);
strsplit(Data2, "# " ,event,MAX_DATA_LENGTH,ct,MAX_DATA_LENGTH,ctscore,MAX_DATA_LENGTH,terr,MAX_DATA_LENGTH,terrscore,MAX_DATA_LENGTH);
if(strmatch(Data1, "CT", strlen("CT")) || strmatch(Data1, "TERRORIST", strlen("TERRORIST")))
{
if(SpielerID == 0)
{
return PLUGIN_HANDLED;
}
playerinfo(SpielerID,Name1,MAX_NAME_LENGTH);
snprintf(Text,MAX_TEXT_LENGTH,"Other Best Players: ");
for( loop = 1; loop < maxplayercount(); loop++ )
{
if (KillCount[SpielerID] == KillCount[loop] && loop != SpielerID )
{
a ++;
if(a==5)
{
break;
}
playerinfo(loop,Name,MAX_NAME_LENGTH);
snprintf(Name,MAX_NAME_LENGTH,"%i. %s,",a,Name);
strcat(Text,Name,MAX_TEXT_LENGTH);
}
}
snprintf(b,MAX_NAME_LENGTH," with %i kill(s)",KillCount[SpielerID]);
strcat(Text,b,MAX_TEXT_LENGTH);
snprintf( Msg, MAX_TEXT_LENGTH, "T: %s - CT: %s ^nBest: %s -Kills: %i -HS: %i",terrscore,ctscore,Name1,KillCount[SpielerID],HeadCount[SpielerID]);
if(strlen(Msg)>80)
{
return PLUGIN_HANDLED;
}
typesay(Msg,12,10,255,255);
if (a == 1)
{
return PLUGIN_HANDLED;
}
say(Text);
a = 1;
}
return PLUGIN_HANDLED;
}
public HandleSay(HLCommand,HLData,HLUserName,UserIndex)
{
new ImpScore[MAX_NUMBER_LENGTH];
get_vaultdata("admin_impressivescore",ImpScore,MAX_NUMBER_LENGTH);
if(strcmp(ImpScore,"OFF")==0)
{
return PLUGIN_CONTINUE;
}
new data[MAX_DATA_LENGTH];
new Name[MAX_NAME_LENGTH];
new Msg [MAX_TEXT_LENGTH];
new IsDead = 0,UserID,WONID,Team;
new User[MAX_DATA_LENGTH];
new iUser;
convert_string(HLData,data,MAX_DATA_LENGTH);
convert_string(HLUserName,User,MAX_DATA_LENGTH);
strstripquotes(data);
get_userindex( User, iUser );
if(streq(data, "score") ==1)
{
playerinfo(iUser,Name,MAX_NAME_LENGTH,UserID,WONID,Team,IsDead);
if(IsDead == 0)
{
return PLUGIN_CONTINUE;
}
else
{
if(SpielerID == 0)
{
return PLUGIN_HANDLED;
}
snprintf( Msg, MAX_TEXT_LENGTH, "T: %s -- CT: %s^nBest at the moment: %s Kills: %i",terrscore,ctscore,Name,KillCount[SpielerID]);
if(strlen(Msg)>80)
{
return PLUGIN_HANDLED;
}
typesay(Msg,12,10,255,255);
}
}
return PLUGIN_CONTINUE;
}
public plugin_connect(HLUserName,HLIP,UserIndex)
{
if (UserIndex >= 1 && UserIndex <= MAX_PLAYERS)
{
KillCount[UserIndex] = CLEAN_SLATE;
}
return PLUGIN_CONTINUE;
}
public plugin_disconnect(HLUserName, UserIndex)
{
if (UserIndex >= 1 && UserIndex <= MAX_PLAYERS)
{
KillCount[UserIndex] = CLEAN_SLATE;
}
return PLUGIN_CONTINUE;
}
public plugin_init()
{
plugin_registerinfo("Impressive-Script","Announces headshots with sound and shows the best player in the end of the round.",STRING_VERSION);
plugin_registercmd("im_injure", "im_injure", ACCESS_CONSOLE, "");
plugin_registercmd("im_playeraward", "im_playeraward", ACCESS_CONSOLE, "");
plugin_registercmd("im_resetthescore", "im_resetthescore", ACCESS_CONSOLE, "");
plugin_registercmd("im_showintheend", "im_showintheend", ACCESS_CONSOLE, "");
plugin_registercmd("admin_impsound", "admin_impsound", ACCESS_BAN, "admin_impsound <Number> <Wave/ON/OFF>:read manual");
plugin_registercmd("admin_impscore", "admin_impscore", ACCESS_BAN, "admin_impscore (ON/OFF): Turns Impressive Scoreboard Announcing on/off.");
plugin_registercmd("say","HandleSay",ACCESS_ALL);
plugin_registerhelp("say",ACCESS_ALL,"say score: Will announce the teamscore and current best player.");
exec( "logd_reg 57 admin_command im_playeraward" );
exec( "logd_reg 62 admin_command im_resetthescore" );
exec( "logd_reg 61 admin_command im_showintheend" );
exec( "logd_reg 58 admin_command im_injure" );
return PLUGIN_CONTINUE;