Skocz do zawartości

  • Zaloguj korzystając z Facebooka Zaloguj korzystając z Twittera Zaloguj przez Steam Zaloguj poprzez Google      Logowanie »   
  • Rejestracja

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

Termalne google


  • Zamknięty Temat jest zamknięty
6 odpowiedzi w tym temacie

#1 Wizzardius

    Pomocny

  • Użytkownik

Reputacja: 61
Pomocny

  • Postów:41
  • Lokalizacja:Sieardz
Offline

Napisano 10.07.2009 11:02

Przerobi mi ktoś te google? Bo teraz Każdego Widzi sie na niebiesko, a ja chce żeby TT patrząc przez nie, widzi swoich (czyli TT) na czerwono a CT standardowo na niebiesko.


#include <amxmodx>
#include <engine>
#include <xs>

new Float:g_fDelay[33]
new g_ThermalOn[33]
new sprite_playerheat

new cvar_enable
new cvar_maxdistance
new cvar_updatedelay

static const PLUGIN_NAME[] 	= "Thermal Imaging Goggle"
static const PLUGIN_AUTHOR[] 	= "Cheap_Suit"
static const PLUGIN_VERSION[]	= "1.0"

public plugin_init()
{
	register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR)
	register_cvar(PLUGIN_NAME, PLUGIN_VERSION, FCVAR_SPONLY|FCVAR_SERVER)
	
	cvar_enable	 = register_cvar("amx_tig_enable", 	"1")
	cvar_maxdistance = register_cvar("amx_tig_distance", 	"1000")
	cvar_updatedelay = register_cvar("amx_tig_updatedelay", "0.2")
	
	register_event("NVGToggle", "Event_NVGToggle", "be")
}

public plugin_precache()
	sprite_playerheat = precache_model("sprites/poison.spr")

public Event_NVGToggle(id)
	g_ThermalOn[id] = read_data(1)

public client_PostThink(id)
{
	if(!is_user_alive(id) || !g_ThermalOn[id] || !get_pcvar_num(cvar_enable))
		return PLUGIN_CONTINUE
		
	if((g_fDelay[id] + get_pcvar_float(cvar_updatedelay)) > get_gametime())
		return PLUGIN_CONTINUE
	
	g_fDelay[id] = get_gametime()
	
	new Float:fMyOrigin[3]
	entity_get_vector(id, EV_VEC_origin, fMyOrigin)
	
	static Players[32], iNum
	get_players(Players, iNum, "a")
	for(new i = 0; i < iNum; ++i) if(id != Players[i])
	{
		new target = Players[i]
		
		new Float:fTargetOrigin[3]
		entity_get_vector(target, EV_VEC_origin, fTargetOrigin)
		
		if((get_distance_f(fMyOrigin, fTargetOrigin) > get_pcvar_num(cvar_maxdistance)) 
		|| !is_in_viewcone(id, fTargetOrigin))
			continue

		new Float:fMiddle[3], Float:fHitPoint[3]
		xs_vec_sub(fTargetOrigin, fMyOrigin, fMiddle)
		trace_line(-1, fMyOrigin, fTargetOrigin, fHitPoint)
								
		new Float:fWallOffset[3], Float:fDistanceToWall
		fDistanceToWall = vector_distance(fMyOrigin, fHitPoint) - 10.0
		normalize(fMiddle, fWallOffset, fDistanceToWall)
		
		new Float:fSpriteOffset[3]
		xs_vec_add(fWallOffset, fMyOrigin, fSpriteOffset)
		new Float:fScale, Float:fDistanceToTarget = vector_distance(fMyOrigin, fTargetOrigin)
		if(fDistanceToWall > 100.0)
			fScale = 8.0 * (fDistanceToWall / fDistanceToTarget)
		else
			fScale = 2.0
	
		te_sprite(id, fSpriteOffset, sprite_playerheat, floatround(fScale), 125)
	}
	return PLUGIN_CONTINUE
}

stock te_sprite(id, Float:origin[3], sprite, scale, brightness)
{
	message_begin(MSG_ONE, SVC_TEMPENTITY, _, id)
	write_byte(TE_SPRITE)
	write_coord(floatround(origin[0]))
	write_coord(floatround(origin[1]))
	write_coord(floatround(origin[2]))
	write_short(sprite)
	write_byte(scale) 
	write_byte(brightness)
	message_end()
}

stock normalize(Float:fIn[3], Float:fOut[3], Float:fMul)
{
	new Float:fLen = xs_vec_len(fIn)
	xs_vec_copy(fIn, fOut)
	
	fOut[0] /= fLen, fOut[1] /= fLen, fOut[2] /= fLen
	fOut[0] *= fMul, fOut[1] *= fMul, fOut[2] *= fMul
}

  • +
  • -
  • 0

#2 mgr inż. Pavulon

    C35H60Br2N2O4

  • Przyjaciel

Reputacja: 1725
Godlike

  • Postów:6881
  • Steam:steam
  • Imię:Konrad
  • Lokalizacja:Koniecpol
Offline

Napisano 10.07.2009 11:28

sprite sprites/poison.spr to właśnie jest taka niebieska chmurka, więc jeżeli chciałbyś inny kolor to potrzebujesz innego sprite'a
poza tym tylko terro ma widzieć terro na czerwono czy ct też ma ich tak widzieć ?
  • +
  • -
  • 0

#3 Wizzardius

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 61
Pomocny

  • Postów:41
  • Lokalizacja:Sieardz
Offline

Napisano 10.07.2009 11:56

Coś mi sie zdaje że nie znajde czerwonego sprita :( Dobra to już nie chce przeróbek, ale powiedz mi czy ta niebieska plamka jest tylko na wrogach czy na swoich też?
  • +
  • -
  • 0

#4 mgr inż. Pavulon

    C35H60Br2N2O4

  • Przyjaciel

Reputacja: 1725
Godlike

  • Postów:6881
  • Steam:steam
  • Imię:Konrad
  • Lokalizacja:Koniecpol
Offline

Napisano 10.07.2009 12:00

Coś mi sie zdaje że nie znajde czerwonego sprita :(

a ja już znalazłem :P dokładnie to samo, tylko inny kolor - explode1.spr

Sprawdź ten kod(nie testowałem):
#include <amxmodx>
#include <engine>
#include <xs>

new Float:g_fDelay[33]
new g_ThermalOn[33]
new sprite_blue
new sprite_red

new cvar_enable
new cvar_maxdistance
new cvar_updatedelay

static const PLUGIN_NAME[]     = "Thermal Imaging Goggle"
static const PLUGIN_AUTHOR[]     = "Cheap_Suit"
static const PLUGIN_VERSION[]    = "1.0"

public plugin_init()
{
	register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR)
	register_cvar(PLUGIN_NAME, PLUGIN_VERSION, FCVAR_SPONLY|FCVAR_SERVER)
	
	cvar_enable    = register_cvar("amx_tig_enable",     "1")
	cvar_maxdistance = register_cvar("amx_tig_distance",     "1000")
	cvar_updatedelay = register_cvar("amx_tig_updatedelay", "0.2")
	
	register_event("NVGToggle", "Event_NVGToggle", "be")
}

public plugin_precache()
{
	sprite_blue = precache_model("sprites/poison.spr")
	sprite_red = precache_model("sprites/explode1.spr")
}

public Event_NVGToggle(id)
	g_ThermalOn[id] = read_data(1)

public client_PostThink(id)
{
	if(!is_user_alive(id) || !g_ThermalOn[id] || !get_pcvar_num(cvar_enable))
		return PLUGIN_CONTINUE
	
	if((g_fDelay[id] + get_pcvar_float(cvar_updatedelay)) > get_gametime())
		return PLUGIN_CONTINUE
	
	g_fDelay[id] = get_gametime()
	
	new Float:fMyOrigin[3]
	entity_get_vector(id, EV_VEC_origin, fMyOrigin)
	
	new userteam = get_user_team(id)
	
	static Players[32], iNum
	get_players(Players, iNum, "a")
	for(new i = 0; i < iNum; ++i) if(id != Players[i])
	{
		new target = Players[i]
		
		new Float:fTargetOrigin[3]
		entity_get_vector(target, EV_VEC_origin, fTargetOrigin)
		
		if((get_distance_f(fMyOrigin, fTargetOrigin) > get_pcvar_num(cvar_maxdistance))
		|| !is_in_viewcone(id, fTargetOrigin))
		continue
		
		new Float:fMiddle[3], Float:fHitPoint[3]
		xs_vec_sub(fTargetOrigin, fMyOrigin, fMiddle)
		trace_line(-1, fMyOrigin, fTargetOrigin, fHitPoint)
		
		new Float:fWallOffset[3], Float:fDistanceToWall
		fDistanceToWall = vector_distance(fMyOrigin, fHitPoint) - 10.0
		normalize(fMiddle, fWallOffset, fDistanceToWall)
		
		new Float:fSpriteOffset[3]
		xs_vec_add(fWallOffset, fMyOrigin, fSpriteOffset)
		new Float:fScale, Float:fDistanceToTarget = vector_distance(fMyOrigin, fTargetOrigin)
		
		if(fDistanceToWall > 100.0)
			fScale = 8.0 * (fDistanceToWall / fDistanceToTarget)
		else
			fScale = 2.0
		if (userteam == 2 && get_user_team(target) == 2)
			te_sprite(id, fSpriteOffset, sprite_red, floatround(fScale), 125)
		else
			te_sprite(id, fSpriteOffset, sprite_blue, floatround(fScale), 125)
	}
	return PLUGIN_CONTINUE
}

stock te_sprite(id, Float:origin[3], sprite, scale, brightness)
{
	message_begin(MSG_ONE, SVC_TEMPENTITY, _, id)
	write_byte(TE_SPRITE)
	write_coord(floatround(origin[0]))
	write_coord(floatround(origin[1]))
	write_coord(floatround(origin[2]))
	write_short(sprite)
	write_byte(scale)
	write_byte(brightness)
	message_end()
}

stock normalize(Float:fIn[3], Float:fOut[3], Float:fMul)
{
	new Float:fLen = xs_vec_len(fIn)
	xs_vec_copy(fIn, fOut)
	
	fOut[0] /= fLen, fOut[1] /= fLen, fOut[2] /= fLen
	fOut[0] *= fMul, fOut[1] *= fMul, fOut[2] *= fMul
}
teoretycznie terro powinien widzieć swoich na czerwono, a CT na niebiesko, a CT wszystkich na niebiesko.
  • +
  • -
  • 1

#5 Abes Mapper

    Repulsion Gel

  • Przyjaciel

Reputacja: 1996
Godlike

  • Postów:7356
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Sulejówek
Offline

Napisano 10.07.2009 12:57

W CT: terro na niebiesko, CT mają ten explode1.spr
W TT: terro na niebiesko, CT na niebiesko
  • +
  • -
  • 0

#6 mgr inż. Pavulon

    C35H60Br2N2O4

  • Przyjaciel

Reputacja: 1725
Godlike

  • Postów:6881
  • Steam:steam
  • Imię:Konrad
  • Lokalizacja:Koniecpol
Offline

Napisano 10.07.2009 13:18

W CT: terro na niebiesko, CT mają ten explode1.spr
W TT: terro na niebiesko, CT na niebiesko

czyli do zamiany 2 na 1 w:
if (userteam == 2 && get_user_team(target) == 2)
ma być:
if (userteam == 1 && get_user_team(target) == 1)

  • +
  • -
  • 0

#7 Wizzardius

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 61
Pomocny

  • Postów:41
  • Lokalizacja:Sieardz
Offline

Napisano 10.07.2009 13:59

Dobra daje pomógł :)
  • +
  • -
  • 0




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

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