Quote Originally Posted by serthy View Post
In the maps/mp/gametypes/_callbacksetup.gsc call the init():

PHP Code:
CodeCallback_StartGameType()
{
    
// If the gametype has not beed started, run the startup
    
if(!isDefined(level.gametypestarted) || !level.gametypestarted)
    {
        [[
level.callbackStartGameType]]();

        
level.gametypestarted true// so we know that the gametype has been started up
    
}

    
setcvar("scr_testclients" );
    
thread maps\mp\gametypes\_teams::addTestClients(); // bots for testing only

    
maps\mp\gametypes\_scorepopup::init(); // <-------------------------

Create a file in maps/mp/gametypes called _scorepopup.gsc and add IzNoGod's code (https://killtube.org/showthread.php?1208-plusscore):

PHP Code:
// See: https://killtube.org/showthread.php?1208-plusscore

init()
{
    
precachestring(&"");
    
precachestring(&"+");
    
game["precached_plusscore_strings"] = true;
}

OnPlayerKilledattacker victim sMeansOfDeath sHitLoc )
{
    
score 10;

    if( !
isDefinedattacker ) || !isDefinedvictim ) )
        return;
    else if( !
isPlayerattacker ) || !isPlayervictim ) )
        return;
    else if( 
attacker == victim )
        return;

    if( 
isDefinedsMeansOfDeath ) && isDefinedsHitLoc ) )
    {
        if( 
sHitLoc == "head" && sMeansOfDeath != "MOD_MELEE" )
            
sMeansOfDeath "MOD_HEAD_SHOT";

        if( 
sMeansOfDeath == "MOD_HEAD_SHOT" )
            
score 50;
        else if( 
sMeansOfDeath == "MOD_MELEE" )
            
score 25;
    }

    if( 
isDefinedattacker.pers"team" ] ) &&
        
isDefinedvictim.pers"team" ] ) &&
        
attacker.pers"team" ] == victim.pers"team" ] &&
        
getcvar"g_gametype" ) != "dm" )
    {
        
score *= -1;
    }

    if( 
score score += 1;
    else                 
score -= 1;

    
attacker.score += score;

    
attacker thread plusscorescore );
}


plusscore(score)
{
    if(!
isdefined(game["precached_plusscore_strings"]))
    {
        
iprintln("Plusscore strings not precached. Call init() on startgametype...");
        return;
    }
    if(!
isplayer(self))
    {
        
iprintln("Plusscore not called on a player. Go fix this before you try anything else!");
        return;
    }
    if(!
isdefined(self.izno_plusscore)) //first run
    
{
        
self.izno_plusscore newclienthudelem(self);
        
self.izno_plusscore.instance 0;
        
self.izno_plusscore.score score;
        
self.izno_plusscore.horzAlign "center";
        
self.izno_plusscore.vertAlign "middle";
        
self.izno_plusscore.alignX "center";
        
self.izno_plusscore.alignY "middle";
        
self.izno_plusscore.0//middle of screen
        
self.izno_plusscore.= -40//just above middle of screen
        
self.izno_plusscore.alpha 0.3;
        
self.izno_plusscore.fontscale 0.5;
    }
    else 
//not first-run
    
{
        if(
self.izno_plusscore.alpha 0.3 || self.izno_plusscore.score == 0)
            
self.izno_plusscore.alpha 0.3;
        if(
self.izno_plusscore.fontscale 0.5 || self.izno_plusscore.score == 0)
            
self.izno_plusscore.fontscale 0.5;
        
self.izno_plusscore.instance++;
        
self.izno_plusscore.score += score;
    }
    if(
self.izno_plusscore.score 0)
    {
        
self.izno_plusscore.color = (235/255,10/255,10/255); //negative scores are red
        
self.izno_plusscore.label = &"";
    }
    else
    {
        
self.izno_plusscore.color = (1,230/255,125/255); //yellow-ish
        
self.izno_plusscore.label = &"+";
    }
    
self.izno_plusscore setvalue(self.izno_plusscore.score);    

    
current_instance self.izno_plusscore.instance;
    
make_bigger true;
    
more_opaque true;
    
steady_opaque_timer 0;
    
alpha_done false;
    
size_done false;
    while(
isdefined(self) && current_instance == self.izno_plusscore.instance && !(alpha_done && size_done))
    {
        if(
make_bigger && self.izno_plusscore.fontscale 2)
            
self.izno_plusscore.fontscale += 0.35;
        else if(
make_bigger)
            
make_bigger false;
        else if(
self.izno_plusscore.fontscale 2)
            
self.izno_plusscore.fontscale -= 0.2;
        else
        {
            
size_done true;
            
self.izno_plusscore.fontscale 1.5;
        }

        if(
more_opaque && self.izno_plusscore.alpha <= 0.9//dont overflow this
            
self.izno_plusscore.alpha += 0.1;
        else if(
more_opaque && steady_opaque_timer == 20)
            
more_opaque false;
        else if(
more_opaque)
            
steady_opaque_timer++;
        else if(
self.izno_plusscore.alpha >= 0.1//dont underflow this
            
self.izno_plusscore.alpha -= 0.1;
        else
        {
            
alpha_done true;
            
self.izno_plusscore.alpha 0;
        }
        
wait 0.05;
    }
    if(!
isdefined(self))
        return;
    if(
current_instance == self.izno_plusscore.instance)
    {
        
wait 0.5;
        if(
isdefined(self) && self.izno_plusscore.instance == current_instance)
            
self.izno_plusscore.score 0;
    }

Call the scorepopup on every kill in the _callbacksetup::CallBack_OnPlayerKilled() (insert this function call as the last line):

PHP Code:
level thread maps\mp\gametypes\_scorepopup::OnPlayerKilledeAttacker self sMeansOfDeath sHitLoc ); 
Here is how you setup CoD2 for your own mod: https://youtu.be/9-n75APn81g or just edit the Pam mod yourself

Many thanks you made my day!! now it's working i also added the code to recognize if it's a self kill or not!!

Just another question i think for you its really simple. I also added some sound that i want to play but i found a pack with all killingspree etc sound but it doesnt work even if i edit the file in soundaliases by adding in the csv with the same format as other files!

Thanks a lot