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

Kolejka do TT - blokowanie zadanych obrażeń



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

#1 SuchyBGC

    Początkujący

  • Użytkownik

Reputacja: 0
Nowy

  • Postów:12
  • Imię:Damian
  • Lokalizacja:Wrocław
Offline

Napisano 30.08.2014 21:36

Mam ten plugin - http://amxx.pl/topic...tt-na-deathrun/

Chciałbym aby ktoś przerobił mi ten plugin - chodzi o blokowanie zadanych obrażeń.

Plugin blokuje tylko obrażenia zadane z broni, a takich rzeczy jak rakiety, miny, trutki nie blokuje.

Przez to gracz który nie jest pierwszy w kolejce może zabić np. z rakiety terrorystę.

Proszę Was o przerobienie go na blokowanie każdego typu obrażeń dla tego kto nie jest pierwszy w kolejce.

Tutaj sma:

#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>
#include <cstrike>
#include <fakemeta_util>

#include <deathrun_stats>

#define PLUGIN "Kolejka do TT"
#define VERSION "1.0"
#define AUTHOR "DarkGL"

#define dmg(%1,%2) (ArraySize(arKolejka) > 0 && ArrayGetCell(arKolejka,0) == %2 && get_user_team(%1) == 1)
#define dmg2(%1,%2) (ArraySize(arKolejka) > 0 && ArrayGetCell(arKolejka,0) == %1 && get_user_team(%2) == 1)

new Array: arKolejka;
new kolor;
new hud;

public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	
	arKolejka = ArrayCreate(1,32);
	
	kolor = register_cvar("kolejka_kolorek", "0 255 0");
	
	register_event("HLTV", "event_RoundStart", "a", "1=0", "2=0"); 
	
	RegisterHam(Ham_TakeDamage, "player", "HamTakeDamage");
	RegisterHam(Ham_Spawn,"player","HamSpawned",1)
	
	register_event("DeathMsg", "DeathMsg", "a", "1=0")
	
	hud = CreateHudSyncObj();
	
	set_task(1.0, "wyswietl",.flags = "b");
}

public DeathMsg(){
	new victim = read_data(2)
	
	new iRet = iFind(victim);
	if(iRet != -1){
		ArrayDeleteItem(arKolejka,iRet);
		
		if(iRet	== 0 && ArraySize(arKolejka) > 0 && ArrayGetCell(arKolejka,0) == victim){
			ArrayDeleteItem(arKolejka,0);
			if(ArraySize(arKolejka) > 0)	fm_set_user_rendering(ArrayGetCell(arKolejka,0), kRenderFxGlowShell, 0, 255, 0, kRenderNormal, 40);
		}
	}
	
	return PLUGIN_HANDLED;
}

public HamSpawned(id){
	if(!is_user_alive(id))	return ;
	
	fm_set_user_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderNormal, 40);
}

public event_RoundStart() {
	ArrayClear(arKolejka);
}

public HamTakeDamage(victim, inflictor, attacker)
	return (dmg(victim, attacker) || dmg2(victim, attacker) || !is_user_connected(attacker)) ? HAM_IGNORED : HAM_SUPERCEDE;

public fwPlayerFinished(id) {
	if( is_user_alive( id ) && cs_get_user_team( id ) == CS_TEAM_CT ){
		new iRet = iFind(id);
		if(iRet == -1)	ArrayPushCell(arKolejka,id);
		
		if(is_user_alive(ArrayGetCell(arKolejka,0)))	fm_set_user_rendering(ArrayGetCell(arKolejka,0), kRenderFxGlowShell, 0, 255, 0, kRenderNormal, 40);
		else ArrayDeleteItem( arKolejka , 0 );
	}
}

public wyswietl() {
	
	new msg[512];
	new bool: bNone = true;
	new szName[64]
	
	for(new i = 0;i<ArraySize(arKolejka);i++){
		if(!is_user_alive(ArrayGetCell(arKolejka,i))){
			ArrayDeleteItem(arKolejka,i)
			continue;
		}
		
		get_user_name(ArrayGetCell(arKolejka,i), szName,charsmax(szName));
		
		formatex(msg, 511, "%s%d. %s^n", msg, i+1, szName); 
		bNone = false;
	}
	
	if(bNone) formatex(msg, 511, "Lista jest pusta");
	
	new color[15], rgb[3][4]; get_pcvar_string(kolor, color, 14);
	parse(color, rgb[0], 3, rgb[1], 3, rgb[2], 3);
	
	set_hudmessage(str_to_num(rgb[0]), str_to_num(rgb[1]), str_to_num(rgb[2]), 0.78, 0.3, 0, 6.0, 1.0);
	ShowSyncHudMsg(0, hud, "Kolejka:^n%s^n^n", msg);
}

public client_disconnect(id)	arClear(id);
public client_connect(id)	arClear(id);

arClear(id){
	new iRet = iFind(id);
	
	if(iRet == -1)	return	;
	
	ArrayDeleteItem(arKolejka,iRet)
}

iFind(id){
	for(new i = 0;i<ArraySize(arKolejka);i++){
		if(ArrayGetCell(arKolejka,i) == id)	return i;
	}
	return -1;
}


  • +
  • -
  • 0

#2 GwynBleidD

    Godlike

  • Przyjaciel

Reputacja: 1 869
Godlike

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

Napisano 31.08.2014 08:14

Automatyczna wiadomość


Ten temat został przeniesiony z forum

Scripting AMXXPytania

do

Scripting AMXXPluginy
  • +
  • -
  • 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


#3 SeeK

    Wszechobecny

  • Użytkownik

Reputacja: 192
Profesjonalista

  • Postów:438
Offline

Napisano 01.09.2014 14:21

Nie zrobisz tego bez przerobienia klas / pluginów, które zadają niestandardowe obrażenia, albo przynajmniej bez przerobienia silnika codmoda.


  • +
  • -
  • 0
https://sklep-sms.pl - Sklep SMS pozwala zarabiać na swoich serwerach gier opartych o silniki AMX Mod X oraz SOURCEMOD
https://nalunch.com - A Ty, gdzie pójdziesz dziś na lunch?





Również z jednym lub większą ilością słów kluczowych:

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

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