Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie

Każdy na każdego bez CSDM


Najlepsza odpowiedź Skull., 20.02.2017 21:19

To mój stary kod który kiedyś sam używałem (myślę że że to jest ta ostatnia wersja w której wszystko było naprawione).

#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>

#define PLUGIN "Free For All"
#define AUTHOR "ConnorMcLeod @Skull"
#define VERSION "0.7c"

#define fm_get_user_team(%1)	get_pdata_int(%1,114)
#define fm_set_user_team(%1,%2)	set_pdata_int(%1,114,%2)

new gmsgRadar;
new g_iMaxPlayers;
new mp_friendlyfire;
new HamHook:g_hTraceAttack, HamHook:g_hTakeDamage, HamHook:g_hKilled, g_mRadarHook;
new bool:g_bFFA;

public plugin_init()
{
	register_plugin( PLUGIN, VERSION, AUTHOR );

	mp_friendlyfire = get_cvar_pointer("mp_friendlyfire");
	gmsgRadar = get_user_msgid("Radar");
}

public plugin_cfg()
{
	g_iMaxPlayers = get_maxplayers();
	set_pcvar_num(mp_friendlyfire, 1);
	client_cmd(0, "hideradar");
	Register_Forwards((g_bFFA = true));
}

public client_connect(id)
{
	if(g_bFFA)
		client_cmd(id, "hideradar");
}

public TraceAttack(victim, attacker, Float:damage, Float:direction[3], tracehandle, damagebits)
{
	if(victim != attacker && (1 <= attacker <= g_iMaxPlayers))
	{
		new vteam = fm_get_user_team(victim);
		
		if(vteam == fm_get_user_team(attacker))
		{
			fm_set_user_team(victim, vteam == 1 ? 2 : 1);
			ExecuteHamB(Ham_TraceAttack, victim, attacker, damage, direction, tracehandle, damagebits);
			fm_set_user_team(victim, vteam);
			return HAM_SUPERCEDE;
		}
	}
	return HAM_IGNORED;
}

public TakeDamage(victim, idinflictor, attacker, Float:damage, damagebits)
{
	if(victim != attacker && (1 <= attacker <= g_iMaxPlayers))
	{
		new vteam = fm_get_user_team(victim);
		
		if(vteam == fm_get_user_team(attacker))
		{
			fm_set_user_team(victim, vteam == 1 ? 2 : 1);
			ExecuteHamB(Ham_TakeDamage, victim, idinflictor, attacker, damage, damagebits);
			fm_set_user_team(victim, vteam);
			return HAM_SUPERCEDE;
		}
	}
	return HAM_IGNORED;
}

public Killed(victim, attacker, shouldgib)
{
	if(victim != attacker && (1 <= attacker <= g_iMaxPlayers))
	{
		new vteam = fm_get_user_team(victim);
		
		if(vteam == fm_get_user_team(attacker))
		{
			fm_set_user_team(victim, vteam == 1 ? 2 : 1);
			ExecuteHamB(Ham_Killed, victim, attacker, shouldgib);
			fm_set_user_team(victim, vteam);
			return HAM_SUPERCEDE;
		}
	}
	return HAM_IGNORED;
}

public Message_Radar(iMsgId, MSG_DEST, id)
	return PLUGIN_HANDLED;

Register_Forwards(bool:bState)
{
	if(bState)
	{
		if(g_hTraceAttack)
			EnableHamForward(g_hTraceAttack);
		else
			g_hTraceAttack = RegisterHam(Ham_TraceAttack, "player", "TraceAttack");

		if(g_hTakeDamage)
			EnableHamForward(g_hTakeDamage);
		else
			g_hTakeDamage = RegisterHam(Ham_TakeDamage, "player", "TakeDamage");

		if(g_hKilled)
			EnableHamForward(g_hKilled);
		else
			g_hKilled = RegisterHam(Ham_Killed, "player", "Killed");

		if(!g_mRadarHook)
			g_mRadarHook = register_message( gmsgRadar, "Message_Radar");
	}
	else
	{
		if(g_hTraceAttack)
			DisableHamForward(g_hTraceAttack);

		if(g_hTakeDamage)
			DisableHamForward(g_hTakeDamage);

		if(g_hKilled)
			DisableHamForward(g_hKilled);

		if(g_mRadarHook)
		{
			unregister_message(gmsgRadar, g_mRadarHook);
			g_mRadarHook = 0;
		}
	}
}
Przejdź do postu


  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
6 odpowiedzi w tym temacie

#1 Robiin

    Godlike

  • Support Team

Reputacja: 1 107
Super Hero

  • Postów:2 051
  • Imię:Robert
  • Lokalizacja:Wrocław
Offline

Napisano 20.02.2017 00:24

Cześć,

szukam pluginu (Zależy mi na tym, żeby nie był to CSDM [to całe FFA]) od "każdy na każdego" czyli:

 

- DMG w teamm8tów jak w przeciwników,

- Brak wiadomości na czacie

- +1 frag za zabicie Teamm8ta

 


  • +
  • -
  • 0

Nie dołączam do żadnej sieci, nie pomagam z tworzeniem paczek, nie napisze pluginów za zero.


#2 Robiin

    Godlike

  • Autor tematu
  • Support Team

Reputacja: 1 107
Super Hero

  • Postów:2 051
  • Imię:Robert
  • Lokalizacja:Wrocław
Offline

Napisano 20.02.2017 15:11

Czy dynamiczna zmiana drużyny gracza może pomóc? Jeżeli tak, to jakiś przykład? Z pluginów wyciągnąłem:


#define OFFSET_TEAM	114
#define fm_get_user_team(%1)	get_pdata_int(%1,OFFSET_TEAM)
#define fm_set_user_team(%1,%2)	set_pdata_int(%1,OFFSET_TEAM,%2)

public TakeDamage(victim, idinflictor, attacker, Float:damage, damagebits)
{
	if( victim != attacker && (1 <= attacker <= g_iMaxPlayers) )
	{
		new vteam = fm_get_user_team(victim)
		if( vteam == fm_get_user_team(attacker) )
		{
			fm_set_user_team(victim, vteam == 1 ? 2 : 1)
			ExecuteHamB(Ham_TakeDamage, victim, idinflictor, attacker, damage, damagebits)
			fm_set_user_team(victim, vteam)
			return HAM_SUPERCEDE
		}
	}
	return HAM_IGNORED
}


  • +
  • -
  • 0

Nie dołączam do żadnej sieci, nie pomagam z tworzeniem paczek, nie napisze pluginów za zero.


#3 _McHappy

    Wszechwiedzący

  • Support Team

Reputacja: 243
Wszechwidzący

  • Postów:501
  • GG:
  • Imię:Radek
  • Lokalizacja:Tak
Offline

Napisano 20.02.2017 18:51

Kod pochodzi stąd https://forums.allie...ad.php?p=711129

Potestuj ;)


  • +
  • -
  • 0

#4 Robiin

    Godlike

  • Autor tematu
  • Support Team

Reputacja: 1 107
Super Hero

  • Postów:2 051
  • Imię:Robert
  • Lokalizacja:Wrocław
Offline

Napisano 20.02.2017 20:39

Kod pochodzi stąd https://forums.allie...ad.php?p=711129

Potestuj ;)

Nie szukam źródła kodu, tylko proszę o nowy, właśnie nie pochodzący z DMa, a przykład w 2 poście, który napisałem miał być pytaniem, czy dynamiczna zmiana drużyny pomoże.

 

Potrzebuję wyodrębnionego kodu na zadawanie DMG, usunięcie wiadomości i dodanie fragów, a kiedy próbowałem przyciąć kod pluginu, który Ty podałeś, to crashowało mi serwer z "invalid plugin".


  • +
  • -
  • 0

Nie dołączam do żadnej sieci, nie pomagam z tworzeniem paczek, nie napisze pluginów za zero.


#5 _McHappy

    Wszechwiedzący

  • Support Team

Reputacja: 243
Wszechwidzący

  • Postów:501
  • GG:
  • Imię:Radek
  • Lokalizacja:Tak
Offline

Napisano 20.02.2017 21:05

A czym się różni ten plugin, od tego, którego szukasz?

Z tego co czytałem, podany plugin usuwa wiadomości, nie kara za strzelanie do sojuszników oraz dodaje frag za zabójstwo.


  • +
  • -
  • 0

#6 Robiin

    Godlike

  • Autor tematu
  • Support Team

Reputacja: 1 107
Super Hero

  • Postów:2 051
  • Imię:Robert
  • Lokalizacja:Wrocław
Offline

Napisano 20.02.2017 21:09

A czym się różni ten plugin, od tego, którego szukasz?

Z tego co czytałem, podany plugin usuwa wiadomości, nie kara za strzelanie do sojuszników oraz dodaje frag za zabójstwo.

 

FFA od CSDM crashuje serwer, to po pierwsze. (Tak, wiem, że wygląda to jak 0 doświadczenia, ale próbowałem wielu sposobów i na "invalid plugin" sposobu nie znalazłem, a innego error logu mi nie wywala)

Szukam kodu, który robi to samo, ale jest zoptymalizowany i wyodrębniony (osobno wiadomość, fragi i dmg)


  • +
  • -
  • 0

Nie dołączam do żadnej sieci, nie pomagam z tworzeniem paczek, nie napisze pluginów za zero.


#7 Skull.

    Wszechpomocny

  • Użytkownik

Reputacja: 70
Pomocny

  • Postów:314
  • Steam:steam
  • Imię:Tajemnica
  • Lokalizacja:Woj. Wielkopolskie
Offline

Napisano 20.02.2017 21:19   Najlepsza odpowiedź

To mój stary kod który kiedyś sam używałem (myślę że że to jest ta ostatnia wersja w której wszystko było naprawione).

#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>

#define PLUGIN "Free For All"
#define AUTHOR "ConnorMcLeod @Skull"
#define VERSION "0.7c"

#define fm_get_user_team(%1)	get_pdata_int(%1,114)
#define fm_set_user_team(%1,%2)	set_pdata_int(%1,114,%2)

new gmsgRadar;
new g_iMaxPlayers;
new mp_friendlyfire;
new HamHook:g_hTraceAttack, HamHook:g_hTakeDamage, HamHook:g_hKilled, g_mRadarHook;
new bool:g_bFFA;

public plugin_init()
{
	register_plugin( PLUGIN, VERSION, AUTHOR );

	mp_friendlyfire = get_cvar_pointer("mp_friendlyfire");
	gmsgRadar = get_user_msgid("Radar");
}

public plugin_cfg()
{
	g_iMaxPlayers = get_maxplayers();
	set_pcvar_num(mp_friendlyfire, 1);
	client_cmd(0, "hideradar");
	Register_Forwards((g_bFFA = true));
}

public client_connect(id)
{
	if(g_bFFA)
		client_cmd(id, "hideradar");
}

public TraceAttack(victim, attacker, Float:damage, Float:direction[3], tracehandle, damagebits)
{
	if(victim != attacker && (1 <= attacker <= g_iMaxPlayers))
	{
		new vteam = fm_get_user_team(victim);
		
		if(vteam == fm_get_user_team(attacker))
		{
			fm_set_user_team(victim, vteam == 1 ? 2 : 1);
			ExecuteHamB(Ham_TraceAttack, victim, attacker, damage, direction, tracehandle, damagebits);
			fm_set_user_team(victim, vteam);
			return HAM_SUPERCEDE;
		}
	}
	return HAM_IGNORED;
}

public TakeDamage(victim, idinflictor, attacker, Float:damage, damagebits)
{
	if(victim != attacker && (1 <= attacker <= g_iMaxPlayers))
	{
		new vteam = fm_get_user_team(victim);
		
		if(vteam == fm_get_user_team(attacker))
		{
			fm_set_user_team(victim, vteam == 1 ? 2 : 1);
			ExecuteHamB(Ham_TakeDamage, victim, idinflictor, attacker, damage, damagebits);
			fm_set_user_team(victim, vteam);
			return HAM_SUPERCEDE;
		}
	}
	return HAM_IGNORED;
}

public Killed(victim, attacker, shouldgib)
{
	if(victim != attacker && (1 <= attacker <= g_iMaxPlayers))
	{
		new vteam = fm_get_user_team(victim);
		
		if(vteam == fm_get_user_team(attacker))
		{
			fm_set_user_team(victim, vteam == 1 ? 2 : 1);
			ExecuteHamB(Ham_Killed, victim, attacker, shouldgib);
			fm_set_user_team(victim, vteam);
			return HAM_SUPERCEDE;
		}
	}
	return HAM_IGNORED;
}

public Message_Radar(iMsgId, MSG_DEST, id)
	return PLUGIN_HANDLED;

Register_Forwards(bool:bState)
{
	if(bState)
	{
		if(g_hTraceAttack)
			EnableHamForward(g_hTraceAttack);
		else
			g_hTraceAttack = RegisterHam(Ham_TraceAttack, "player", "TraceAttack");

		if(g_hTakeDamage)
			EnableHamForward(g_hTakeDamage);
		else
			g_hTakeDamage = RegisterHam(Ham_TakeDamage, "player", "TakeDamage");

		if(g_hKilled)
			EnableHamForward(g_hKilled);
		else
			g_hKilled = RegisterHam(Ham_Killed, "player", "Killed");

		if(!g_mRadarHook)
			g_mRadarHook = register_message( gmsgRadar, "Message_Radar");
	}
	else
	{
		if(g_hTraceAttack)
			DisableHamForward(g_hTraceAttack);

		if(g_hTakeDamage)
			DisableHamForward(g_hTakeDamage);

		if(g_hKilled)
			DisableHamForward(g_hKilled);

		if(g_mRadarHook)
		{
			unregister_message(gmsgRadar, g_mRadarHook);
			g_mRadarHook = 0;
		}
	}
}

  • +
  • -
  • 3




Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych