Skocz do zawartości
uSzanowankoo!

Nieśmiertelność dla jednej z drużyn.

Rekomendowane odpowiedzi

Witajcie, poszukuję pluginu, który blokowałby otrzymywanie obrażenia jednej z drużyn [dokładnie drużyna CT nie mogłaby zadawać obrażenia przeciwnikom w Terrorystach].
Potrzebuje tego na serwer Hide and Seek, by chowający się nie zabili osób z drużyny przeciwnej czyli szukających. 

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Widzę, że nikt jeszcze nie odpisał 😛. Na szybko coś napisałem ale nie wiem czy będzie działać. 

#pragma semicolon 1

#define DEBUG

#define PLUGIN_AUTHOR "ASzaz"
#define PLUGIN_VERSION "0.1"

#include <sourcemod>
#include <sdktools>
#include <cstrike>
#include <sdkhooks>

#pragma newdecls required

int team[MAXPLAYERS + 1];

public Plugin myinfo = 
{
	name = "DMG Block",
	author = PLUGIN_AUTHOR,
	description = "Blokuje dmg dla jednej drużyny",
	version = PLUGIN_VERSION,
	url = ""
};


public Action OnTakeDamage(int victim, int &attacker, int &inflictor, float &damage, int &damagetype) 
{
	team[attacker] = GetClientTeam(attacker);
	
	if (team[attacker]==CS_TEAM_CT && team[victim]==CS_TEAM_T)

	damage = 0.0;
	return Plugin_Changed;
}

Możesz dać znać 😛 ew na pw żeby nie spamić. 

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Tylko to trzeba najpierw zadeklarować.

 

public void OnPluginStart()
{
	for(int i = 1; i <= MaxClients; i++)
	{
		if(IsClientInGame(i))
		{
			SDKHook(i, SDKHook_OnTakeDamage, OnTakeDamage);
		}
	}
}


public void OnClientPutInServer(int i)
{
	SDKHook(i, SDKHook_OnTakeDamage, OnTakeDamage);
}

 

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
#include <sourcemod>
#include <cstrike>
#include <sdktools>
#include <sdkhooks>

bool g_iJestWlaczony = false;

public void OnPluginStart()
{
    HookEvent("round_start", Start);
    HookEvent("player_hurt", Hurt);
}

public Action Start(Event event, char[] name, bool dontBroadcast)
{
    g_iJestWlaczony = false;
    CreateTimer(2.0, GodMode);
}
public Action GodMode(Handle timer)
{
    g_iJestWlaczony = true;
}
public Action Hurt(Event event, const char[] name, bool dontBroadcast)
{
    int client = GetClientOfUserId(event.GetInt ("userid"));
    new gValue = GetEntProp(client, Prop_Data, "m_takedamage", 1);

    if(!g_iJestWlaczony && gValue && GetClientTeam(client) == CS_TEAM_T)
    {
        SetEntProp(client, Prop_Data, "m_takedamage", 0, 1) // to raczej blokue dmg a to nizej nie jesli nie bedzie dzialac to zamien z linijka nizej
    }
    else 
    {
        SetEntProp(client, Prop_Data, "m_takedamage", 2, 1)
    }
    
    return Plugin_Continue; 
} // masz taki plugin moze on zadziala tylko zmien czas w timerze na np 1000 
Edytowane przez Grafit

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić obrazków. Dodaj lub załącz obrazki z adresu URL.


×
×
  • Dodaj nową pozycję...