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

Precache modelu tylko dla danego teamu


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

#1 becometa

    Życzliwy

  • Użytkownik

Reputacja: 1
Nowy

  • Postów:33
  • GG:
  • Lokalizacja:Łódź
Offline

Napisano 28.11.2010 12:01

Cały czas zastanawiam się czy jest możliwe aby precache'owany model działał tylko na graczy z danego team'u.

new entity = fm_create_entity("info_target")
	set_pev(entity, pev_classname, "wgz")
	fm_entity_set_model(entity, "models/gib_skull.mdl")
	fm_entity_set_origin(entity, position)

	set_pev(entity, pev_movetype, MOVETYPE_FLY)
	new id = pev(entity, ZID)
	if (editor)
	{
		set_pev(entity, pev_solid, SOLID_NOT)
	} else
	{
		set_pev(entity, pev_solid, solidtyp[ZM:id])
	}
	
	fm_entity_set_size(entity, mins, maxs)
	
	fm_set_entity_visibility(entity, 0)
	
	set_pev(entity, ZONE, zm)
	set_pev(entity, CTIME, campt)
dajmy na to, że chcę aby był widoczny tylko dla teamu CT, w jaki sposób tego dokonać?

Użytkownik becometa edytował ten post 28.11.2010 12:02

  • +
  • -
  • 0

#2 ShoWmaN

    Życzliwy

  • Użytkownik

Reputacja: 5
Nowy

  • Postów:28
  • Lokalizacja:Toruń
Offline

Napisano 28.11.2010 12:33

Łap ;D w tym przypadku tt dostaje inna kose.
zmień se nazwę modelu bo tu jest pod base bulidera

#include < amxmodx >
#include < cstrike >
#include < engine >
#include < hamsandwich >

const m_pPlayer = 41;

new const g_szTerrKnife[ ] = "models/v_knife_zombie.mdl";

public plugin_precache( ) {
precache_model( g_szTerrKnife );
}

public plugin_init( ) {
register_plugin( "Terrorist Knife Model", "0.0.1", "Exolent" );
RegisterHam( Ham_Item_Deploy, "weapon_knife", "FwdKnifeDeploy", 1 );
}

public FwdKnifeDeploy( iEntity ) {
new client = get_pdata_cbase( iEntity, m_pPlayer, 4 );
if( cs_get_user_team( client ) == CS_TEAM_T ) {
entity_set_string( client, EV_SZ_viewmodel, g_szTerrKnife );
}
}

  • +
  • -
  • 0

#3 R3X

    Godlike

  • Przyjaciel

Reputacja: 2 987
Godlike

  • Postów:4 248
  • Lokalizacja:Nie
Offline

Napisano 28.11.2010 14:08

chyba nie o to chodzi :P

Jest taka funkcja, która decyduje o wysłanym do konkretnego gracza stanie bytu, tzn jednemu możesz go wysłać z normalnym renderowaniem i innemu z TransAlfa+0 - czyli niewidzialny. Ta funkcja nazywa się FM_AddToFullPack, jest to bardzo często wywolywany forward i nie powinieneś tam używać zbyt wielu funkcji, dlatego przyda Ci się tablica drużyn

giTeams[] - każdy gracz ma tam wpisane do której drużyny należy (Event TeamInfo)

oraz tablica bytów
giEnts[512] - każdy byt ma tam wpisane 0, jeśli każdy ma go zobaczyć i 1 jeśli tylko CT


register_forward(FM_AddToFullPack, "fwAddToFullPack", 1);

public fwAddToFullPack(es_handle, e, ENT, HOST, hostflags, player, set){
	if(player) return FMRES_IGNORED;
	if(giTeams[HOST] == 1 && giEnts[ENT]){
		set_es( es_handle, ES_RenderMode, kRenderTransAlpha ); 
		set_es( es_handle, ES_RenderAmt, 0);
		return FMRES_HANDLED;
	}
	return FMRES_IGNORED;
}

  • +
  • -
  • 0

#4 becometa

    Życzliwy

  • Autor tematu
  • Użytkownik

Reputacja: 1
Nowy

  • Postów:33
  • GG:
  • Lokalizacja:Łódź
Offline

Napisano 28.11.2010 15:28

Ogółem to chodzi mi o przerobienie oryginalnego walkguarda, aby funkcja numer 5

new zonemode[ZONEMODE][] = { "ZONE_MODE_NONE", "ZONE_MODE_CAMPER", "ZONE_MODE_CAMPER_T1", "ZONE_MODE_CAMPER_T2", "ZONE_MODE_BLOCKING", "ZONE_MODE_CHEATER", "ZONE_MODE_CHEATER_T1", "ZONE_MODE_CHEATER_T2" }

nie blokowała wszystkich graczy ale tylko team 2(CT), tym samym przepuszczając team 1(TT) przez precache'owany model.

Prościej mówiąc chcę stworzyć niewidzialną ścianę oddziaływającą tylko na team 2.

R3X, dzięki za wytłumaczenie, cenię sobie to ale wiedzę to ja mam praktycznie zerową, cały czas lecę na dokumentacji i gotowych funkcjach ;f
Gdybyś ty bądź ktokolwiek inny był w stanie takie coś wykonać i wytłumaczyć po ludzku co za co odpowiada i dlaczego akurat to tutaj, byłbym arcy wdzięczny :)

Użytkownik becometa edytował ten post 28.11.2010 15:33

  • +
  • -
  • 0




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

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