Jump to content

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

Posted Image Posted Image

Guest Message by DevFuse
 

Photo

Gdy nie widzimy gracza


  • You cannot start a new topic
  • Please log in to reply
4 replies to this topic

#1 Yakashi

    Wszechpomocny

  • Zbanowany

Reputacja: 32
Życzliwy

  • Postów:332
  • Imię:Krzysiek
  • Lokalizacja:Public Respawn(id)
Offline

Posted 30.07.2013 19:20

Witam zrobilem ifa w TakeDamage ze :

if(!can_see_fm(idattacker, this) 
damage+=50;
bool:can_see_fm(entindex1, entindex2) {
	if (!entindex1 || !entindex2)
		return false;
	
	if (pev_valid(entindex1) && pev_valid(entindex1)) {
		new flags = pev(entindex1, pev_flags);
		if (flags & EF_NODRAW || flags & FL_NOTARGET) {
			return false;
		}
		
		new Float:lookerOrig[3];
		new Float:targetBaseOrig[3];
		new Float:targetOrig[3];
		new Float:temp[3];
		
		pev(entindex1, pev_origin, lookerOrig);
		pev(entindex1, pev_view_ofs, temp);
		lookerOrig[0] += temp[0];
		lookerOrig[1] += temp[1];
		lookerOrig[2] += temp[2];
		
		pev(entindex2, pev_origin, targetBaseOrig);
		pev(entindex2, pev_view_ofs, temp);
		targetOrig[0] = targetBaseOrig [0] + temp[0];
		targetOrig[1] = targetBaseOrig [1] + temp[1];
		targetOrig[2] = targetBaseOrig [2] + temp[2];
		
		engfunc(EngFunc_TraceLine, lookerOrig, targetOrig, 0, entindex1, 0);
		if (get_tr2(0, TraceResult:TR_InOpen) && get_tr2(0, TraceResult:TR_InWater)) {
			return false;
		} 
		else {
			new Float:flFraction;
			get_tr2(0, TraceResult:TR_flFraction, flFraction);
			if (flFraction == 1.0 || (get_tr2(0, TraceResult:TR_pHit) == entindex2)) {
				return true;
			}
			else {
				targetOrig[0] = targetBaseOrig [0];
				targetOrig[1] = targetBaseOrig [1];
				targetOrig[2] = targetBaseOrig [2];
				engfunc(EngFunc_TraceLine, lookerOrig, targetOrig, 0, entindex1, 0);
				get_tr2(0, TraceResult:TR_flFraction, flFraction);
				if (flFraction == 1.0 || (get_tr2(0, TraceResult:TR_pHit) == entindex2)) {
					return true;
				}
				else {
					targetOrig[0] = targetBaseOrig [0];
					targetOrig[1] = targetBaseOrig [1];
					targetOrig[2] = targetBaseOrig [2] - 17.0;
					engfunc(EngFunc_TraceLine, lookerOrig, targetOrig, 0, entindex1, 0);
					get_tr2(0, TraceResult:TR_flFraction, flFraction);
					if (flFraction == 1.0 || (get_tr2(0, TraceResult:TR_pHit) == entindex2)) {
						return true;
					}
				}
			}
		}
	}
	return false;
}

i z tego co mi sie wydaje ze jak skanuje te jednal damage nie wzrasta.. gdzie lezy blad ?



#2 GT Team

    Ten lepszy xD

  • Zbanowany

Reputacja: 321
Wszechpomocny

  • Postów:1,435
  • GG:
  • Imię:Tomasz i Grzegorz
  • Lokalizacja:Wojkowice
Offline

Posted 03.08.2013 12:24

użyj wbudowanego w fakemeta_util fm_is_visible
bool:fm_is_visible(kto, const Float:origin_celu[3], 0 )

Nowa wersja Tower Defense 0.2 Alpha | Inne Mody -> Nowości

 


#3 Yakashi

    Wszechpomocny

  • Autor tematu
  • Zbanowany

Reputacja: 32
Życzliwy

  • Postów:332
  • Imię:Krzysiek
  • Lokalizacja:Public Respawn(id)
Offline

Posted 03.08.2013 12:36

czyli przykladowo tak :

 

if(!fm_is_visible(attacker,this,0)) ?


#4 Droso

    Dawniej HubertTM

  • Support Team

Reputacja: 1,291
Godlike

  • Postów:2,371
  • Steam:steam
  • Imię:Hubert
  • Lokalizacja:Wrocław
Offline

Posted 03.08.2013 14:44

raczej tak:

new origin[3];
new Float:forigin[3]; 
get_user_origin(this, origin)

for(new i=0; i<3; i++)
forigin[i] = origin[i]*1.0

if(!fm_is_visible(attacker,forigin,0)) 

Pisane z pamięci


Edited by HubertTM, 03.08.2013 14:44.

  • +
  • -
  • 0

Piszę pluginy pod: AMX MOD X oraz SOURCE MOD!

Na zlecenie i bez zlecenia zresztą też!


#5 BlackPerfum

    Pseudo interakcja??

  • Power User

Reputacja: 459
Wszechobecny

  • Postów:575
  • Lokalizacja:...
Offline

Posted 03.08.2013 15:21

Hubert Fakemetą szybciej ;D

new Float:origin[3]; 
pev(this,pev_origin,origin)

if(!fm_is_visible(attacker,forigin,0))

  • +
  • -
  • 1
Chcesz napisać do mnie na PW to:
Spoiler

Mój tok myślenia jest błędny? Wskaż mi błąd zmienie to!

Aktualnie bije limit 32 graczy (łącze serwery) ale nadal są lagi przy zbyt dużym przesyłu informacji Dołączona grafika
Gra się płynnie do 40~50 graczy potem łącze pada i zamiast biegać ludzie się teleportują Dołączona grafika




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users