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

jak zrobić ograniczenie hp


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

#1 Basturek

    Początkujący

  • Zbanowany

Reputacja: 0
Nowy

  • Postów:13
  • Imię:Łukasz
  • Lokalizacja:Wołomin
Offline

Napisano 30.06.2014 19:03

Witam może wiecie jak zrobić ograniczenie żeby asyste zaliczało dopiero jak zabierze się 50% hp lub 50 HP poniżej podaje kodzik

#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>
#include <codmod>
#include <fun>
 
#define VERSION "0.1"
 
#define MAX 32
#define IsPlayer(%1) (1 <= %1 <= MAX && is_user_connected(%1))

new bool:g_bAsysta[MAX+1][MAX+1];
 
public plugin_init() {
	register_plugin("Dodatkowy Exp", VERSION, "DarkGL")
 
	register_event("DeathMsg", "eventDeath", "a");
	register_event("HLTV", "newRound", "a", "1=0", "2=0") 
 
	RegisterHam(Ham_TakeDamage, "player", "fwDamage", 1);
}
 
public newRound()
{
	for(new i = 0;i <= MAX;i++){
		for(new j = 0;j <= MAX;j++)
			g_bAsysta[i][j] = false;
	}
}

public client_connect(id){
	for(new j = 0;j <= MAX;j++)	g_bAsysta[id][j] = false;
}
 
public fwDamage(iVictim, iInflicter, iAttacker, Float:fDamage, iBitDamage){
	if( (IsPlayer(iAttacker) && IsPlayer(iVictim)) && !g_bAsysta[iAttacker][iVictim] && get_user_team(iVictim) != get_user_team(iAttacker) && iVictim != iAttacker)
		g_bAsysta[iAttacker][iVictim] = true;
 
	return HAM_IGNORED;
}
 
public eventDeath(){
	new iKiller = read_data(1);
	new iVictim = read_data(2);
 
	if(IsPlayer(iKiller) && IsPlayer(iVictim) && iKiller != iVictim)
	{
		new sName[32];
		get_user_name(iVictim, sName, sizeof sName - 1);
		
		for(new i = 0 ; i <= MAX; i ++){
			if(i == iKiller)	continue;
 
			if(g_bAsysta[i][iVictim]){		
 
				set_hudmessage(255, 16, 255, -1.0, 0.30, 0, 2.0, 2.0, 0.05, 0.05, 4)
				show_hudmessage(i, "Asystowales w zabiciu gracza %s^n^n+ 1 Frag", sName);

				set_user_frags(i, get_user_frags(i)+1)
			}
 
			g_bAsysta[i][iVictim] = false;
		}
	}
}


#2 Puchate

    Wszechobecny

  • Użytkownik

Reputacja: 204
Profesjonalista

  • Postów:433
  • Lokalizacja:Polska
Offline

Napisano 30.06.2014 20:59

Tutaj masz wersję że asystę możesz dostać tylko gdy zabierzesz minimum 50HP zabitemu.

 

Nie testowane :P

#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>
//#include <codmod>
#include <fun>

#define VERSION "0.1"

#define MAX 32
#define IsPlayer(%1) (1 <= %1 <= MAX && is_user_connected(%1))

new g_bAsysta[MAX+1][MAX+1];

public plugin_init() {
	register_plugin("Dodatkowy Exp", VERSION, "DarkGL")
	
	register_event("DeathMsg", "eventDeath", "a");
	register_event("HLTV", "newRound", "a", "1=0", "2=0") 
	
	RegisterHam(Ham_TakeDamage, "player", "fwDamage", 1);
}

public newRound()
{
	for(new i = 0;i <= MAX;i++){
		for(new j = 0;j <= MAX;j++)
			g_bAsysta[i][j] = 0;
	}
}

public client_connect(id){
	for(new j = 0;j <= MAX;j++)	g_bAsysta[id][j] = 0;
}

public fwDamage(iVictim, iInflicter, iAttacker, Float:fDamage, iBitDamage){
	if( (IsPlayer(iAttacker) && IsPlayer(iVictim)) && get_user_team(iVictim) != get_user_team(iAttacker) && iVictim != iAttacker)
		g_bAsysta[iAttacker][iVictim] += floatround(fDamage);
	
	return HAM_IGNORED;
}

public eventDeath(){
	new iKiller = read_data(1);
	new iVictim = read_data(2);
	
	if(IsPlayer(iKiller) && IsPlayer(iVictim) && iKiller != iVictim)
	{
		new sName[32];
		get_user_name(iVictim, sName, sizeof sName - 1);
		
		for(new i = 0 ; i <= MAX; i ++){
			if(i == iKiller)	continue;
			
			if(g_bAsysta[i][iVictim] >= 50){		
				
				set_hudmessage(255, 16, 255, -1.0, 0.30, 0, 2.0, 2.0, 0.05, 0.05, 4)
				show_hudmessage(i, "Asystowales w zabiciu gracza %s^n^n+ 1 Frag", sName);
				
				set_user_frags(i, get_user_frags(i)+1)
			}
			
			g_bAsysta[i][iVictim] = 0;
		}
	}
}

Użytkownik Puchate edytował ten post 30.06.2014 20:59

  • +
  • -
  • 1

#3 Basturek

    Początkujący

  • Autor tematu
  • Zbanowany

Reputacja: 0
Nowy

  • Postów:13
  • Imię:Łukasz
  • Lokalizacja:Wołomin
Offline

Napisano 06.07.2014 20:05

dzięki ziomuś wszystko śmiga ładnie a jak jeszcze zrobić żeby dodawało fraga do zabójstw na bf2?



#4 Puchate

    Wszechobecny

  • Użytkownik

Reputacja: 204
Profesjonalista

  • Postów:433
  • Lokalizacja:Polska
Offline

Napisano 12.07.2014 15:03

Tzn?


  • +
  • -
  • 0

#5 GwynBleidD

    Godlike

  • Przyjaciel

Reputacja: 1 869
Godlike

  • Postów:3 066
  • Steam:steam
  • Lokalizacja:Przemyśl
Offline

Napisano 12.07.2014 18:39

Chyba chodzi o statystyki BF2, żeby plugin za nie odpowiedzialny "łapał" zabójstwo i wliczał je do rankingu bf2 :)
  • +
  • -
  • 0

NIE pomagam na PW. Nie trudź się, na zlecenia nie odpiszę... Od pomagania jest forum.
NIE zaglądam w tematy wysłane na PW. Jeśli są na forum to prędzej czy później je przeczytam. Jeśli mam co w nich odpisać, to odpiszę.
 
1988650.png?theme=dark


#6 Basturek

    Początkujący

  • Autor tematu
  • Zbanowany

Reputacja: 0
Nowy

  • Postów:13
  • Imię:Łukasz
  • Lokalizacja:Wołomin
Offline

Napisano 13.07.2014 09:09

dokładnie tak jak napisał GwynBleidD chodfzi o to że jak dodaje na asyste to rankingu to żeby dodawało do statystyk BF2



#7 Puchate

    Wszechobecny

  • Użytkownik

Reputacja: 204
Profesjonalista

  • Postów:433
  • Lokalizacja:Polska
Offline

Napisano 13.07.2014 09:25

W brzydki sposób, ale spróbuj tak:

#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>
//#include <codmod>
#include <fun>

#define VERSION "0.1"

#define MAX 32
#define IsPlayer(%1) (1 <= %1 <= MAX && is_user_connected(%1))

new g_bAsysta[MAX+1][MAX+1];

public plugin_init() {
	register_plugin("Dodatkowy Exp", VERSION, "DarkGL")
	
	register_event("DeathMsg", "eventDeath", "a");
	register_event("HLTV", "newRound", "a", "1=0", "2=0") 
	
	RegisterHam(Ham_TakeDamage, "player", "fwDamage", 1);
}

public newRound()
{
	for(new i = 0;i <= MAX;i++){
		for(new j = 0;j <= MAX;j++)
			g_bAsysta[i][j] = 0;
	}
}

public client_connect(id){
	for(new j = 0;j <= MAX;j++)	g_bAsysta[id][j] = 0;
}

public fwDamage(iVictim, iInflicter, iAttacker, Float:fDamage, iBitDamage){
	if( (IsPlayer(iAttacker) && IsPlayer(iVictim)) && get_user_team(iVictim) != get_user_team(iAttacker) && iVictim != iAttacker)
		g_bAsysta[iAttacker][iVictim] += floatround(fDamage);
	
	return HAM_IGNORED;
}

public eventDeath(){
	new iKiller = read_data(1);
	new iVictim = read_data(2);
	
	if(IsPlayer(iKiller) && IsPlayer(iVictim) && iKiller != iVictim)
	{
		new sName[32];
		get_user_name(iVictim, sName, sizeof sName - 1);
		
		for(new i = 0 ; i <= MAX; i ++){
			if(i == iKiller)	continue;
			
			if(g_bAsysta[i][iVictim] >= 50){		
				
				set_hudmessage(255, 16, 255, -1.0, 0.30, 0, 2.0, 2.0, 0.05, 0.05, 4)
				show_hudmessage(i, "Asystowales w zabiciu gracza %s^n^n+ 1 Frag", sName);
				
				set_user_frags(i, get_user_frags(i)+1)
				
				if(callfunc_begin("client_death", "bf2rank.amxx")) {					
					
					callfunc_push_int(iKiller)
					callfunc_push_int(iVictim)
					callfunc_push_int(get_user_weapon(iKiller))
					callfunc_push_int(HIT_GENERIC)
					callfunc_push_int(0)
					callfunc_end()
				}
			}
			
			g_bAsysta[i][iVictim] = 0;
		}
	}
}

Użytkownik Puchate edytował ten post 13.07.2014 09:27

  • +
  • -
  • 0




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

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