←  Problemy z pluginami

AMXX.pl: Support AMX Mod X i SourceMod

»

Problem z pluginem - statystyki na koniec...


Najlepsza odpowiedź Toldi 16.04.2019 20:27

Kod wyżej miał wyeliminować naliczanie samobójstw. Nadal nalicza?

 

@edit: Masz z użyciem DeathMsg. Nie wiem czy sie skompiluje bo nie mam biblioteki biohazard ale powinno.

#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>
#include <biohazard>
#include <colorchat>

#define PLUGIN "Biohazard stats"
#define VERSION "1.0"
#define AUTHOR "Sn!ff3r"

enum {
	kills = 0,
	infects
}

new stats[33][3] // 0 - zabojstwa, 1 - infekcje, 2 - damage
new g_maxplayers

public plugin_init() 
{
	register_plugin(PLUGIN, VERSION, AUTHOR)
	
	RegisterHam(Ham_Spawn, "player", "cl_spawn", 1)         
	register_event("DeathMsg", "DeathMsg", "a")
	
	register_logevent("round_end", 2, "1=Round_End")
	
	g_maxplayers = get_maxplayers()
}

public cl_spawn(id)
{
	stats[id][0] = stats[id][1] = 0
}

public DeathMsg()
{
	new attacker = read_data(1)	// zabojca
	new victim = read_data(2)	// ofiara
	
	if(attacker != victim)
		stats[attacker][kills]++;
}

public event_infect(victim, attacker)
{
	stats[attacker][infects] ++
}

public round_end()
{
	for(new id = 1; id <= g_maxplayers; id++)
	{
		if(!is_user_connected(id))
			continue
		
		ColorChat(id, GREEN, "~ Twoje statystyki: (zabojstw - ^3%d^4) (infekcji - ^3%d^4)", stats[id][kills],stats[id][infects])        
	}    
}
Przejdź do postu

  • +
  • -
Dirr - zdjęcie Dirr 16.04.2019

Mam taki kod jak poniżej problem tkwi w statystykach zabójstw nie nalicza ich tylko samobójstwo, czyli kill w konsoli zalicza mogę zabić 5 zombie, a w statystykach na koniec rundy jest 0 zabójstw.

Infekcje zalicza normalnie tylko te zabójstwa do poprawy byłby ktoś w stanie to poprawić?

#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>
#include <biohazard>
#include <colorchat>

#define PLUGIN "Biohazard stats"
#define VERSION "1.0"
#define AUTHOR "Sn!ff3r"

enum {
    kills = 0,
    infects
}

new stats[33][3] // 0 - zabojstwa, 1 - infekcje, 2 - damage
new g_maxplayers

public plugin_init() 
{
    register_plugin(PLUGIN, VERSION, AUTHOR)
    
    RegisterHam(Ham_Spawn, "player", "cl_spawn", 1)            
    RegisterHam(Ham_Killed, "player", "cl_killed", 1)    
    
    register_logevent("round_end", 2, "1=Round_End")
    
    g_maxplayers = get_maxplayers()
}

public cl_spawn(id)
{
    stats[id][0] = stats[id][1] = 0
}

public cl_killed(victim, attacker)
{
    stats[attacker][kills] ++    
}

public event_infect(victim, attacker)
{
    stats[attacker][infects] ++
}

public round_end()
{
    for(new id = 1; id <= g_maxplayers; id++)
    {
        if(!is_user_connected(id))
            continue
            
        ColorChat(id, GREEN, "~ Twoje statystyki: (zabojstw - ^3%d^4) (infekcji - ^3%d^4)", stats[id][kills],stats[id][infects])        
    }    
}

Załączone pliki

Odpowiedz

  • +
  • -
Toldi - zdjęcie Toldi 16.04.2019

Spr,

public cl_killed(victim, attacker)
{
	if(victim != attacker)
		stats[attacker][kills] ++   
}
Odpowiedz

  • +
  • -
Dirr - zdjęcie Dirr 16.04.2019

Nadal nie nalicza zabójstw 

Odpowiedz

  • +
  • -
Najlepsza odpowiedź Toldi - zdjęcie Toldi 16.04.2019

Kod wyżej miał wyeliminować naliczanie samobójstw. Nadal nalicza?

 

@edit: Masz z użyciem DeathMsg. Nie wiem czy sie skompiluje bo nie mam biblioteki biohazard ale powinno.

#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>
#include <biohazard>
#include <colorchat>

#define PLUGIN "Biohazard stats"
#define VERSION "1.0"
#define AUTHOR "Sn!ff3r"

enum {
	kills = 0,
	infects
}

new stats[33][3] // 0 - zabojstwa, 1 - infekcje, 2 - damage
new g_maxplayers

public plugin_init() 
{
	register_plugin(PLUGIN, VERSION, AUTHOR)
	
	RegisterHam(Ham_Spawn, "player", "cl_spawn", 1)         
	register_event("DeathMsg", "DeathMsg", "a")
	
	register_logevent("round_end", 2, "1=Round_End")
	
	g_maxplayers = get_maxplayers()
}

public cl_spawn(id)
{
	stats[id][0] = stats[id][1] = 0
}

public DeathMsg()
{
	new attacker = read_data(1)	// zabojca
	new victim = read_data(2)	// ofiara
	
	if(attacker != victim)
		stats[attacker][kills]++;
}

public event_infect(victim, attacker)
{
	stats[attacker][infects] ++
}

public round_end()
{
	for(new id = 1; id <= g_maxplayers; id++)
	{
		if(!is_user_connected(id))
			continue
		
		ColorChat(id, GREEN, "~ Twoje statystyki: (zabojstw - ^3%d^4) (infekcji - ^3%d^4)", stats[id][kills],stats[id][infects])        
	}    
}
Odpowiedz

  • +
  • -
Dirr - zdjęcie Dirr 16.04.2019

Wszystko działa jak powinno

Odpowiedz