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

Zmiana damage przy własnym bycie


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

#1 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 553
Godlike

  • Postów:11 976
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Warszawa
Offline

Napisano 12.08.2011 23:58

Chce móc edytować / zablokować dmg dla bytu stworzonego przezemnie
registerham nie przejdzie bo nie akceptuje on niestandardowych classname
funkcja tworzenia bytu
public bool:StawDzialo(Float:origin[3],id){
	if (fm_point_contents(origin) != CONTENTS_EMPTY || is_hull_default(origin, 32.0)){
		return false
	}
	new Float:hitPoint[3], Float:originDown[3]
	originDown = origin
	originDown[2] = -5000.0
	fm_trace_line(0, origin, originDown, hitPoint)
	new Float:DistanceFromGround = vector_distance(origin, hitPoint)
	
	new Float:difference = 36.0 - DistanceFromGround
	if (difference < -1 * 10.0 || difference > 10.0) return false
	
	new sentry_base = engfunc(EngFunc_CreateNamedEntity,engfunc(EngFunc_AllocString,"func_breakable"))
	if (!sentry_base){
		return false
	}	
	set_pev(sentry_base, pev_classname, "sentry_base")
	
	engfunc(EngFunc_SetModel, sentry_base, "models/base2.mdl")
	engfunc(EngFunc_SetSize, sentry_base, {-16.0, -16.0, 0.0}, {16.0, 16.0, 25.0})
	engfunc(EngFunc_SetOrigin, sentry_base, origin)
	new Float:fAngle[3];
	pev(id, pev_v_angle, fAngle)
	fAngle[0] = 0.0
	fAngle[1] += 180.0
	fAngle[2] = 0.0
	set_pev(sentry_base, pev_angles, fAngle)
	set_pev(sentry_base, pev_solid, SOLID_BBOX)
	set_pev(sentry_base, pev_movetype, MOVETYPE_TOSS)
	set_pev(sentry_base, pev_iuser1, id)
	set_pev(sentry_base, pev_iuser2, 0)
	set_pev(sentry_base, pev_iuser3, 0)
	
	return true;
}

  • +
  • -
  • 0

#2 A może sma?

    Godlike

  • Power User

Reputacja: 546
Wszechwiedzący

  • Postów:1 464
  • Steam:steam
  • Imię:Tomasz
  • Lokalizacja:Polska
Offline

Napisano 13.08.2011 00:07

new Float:p_cvar_health = get_pcvar_float(phealth)+float(cod_get_user_intelligence(id, 1, 1, 1));
switch(p_cvar_health)
{
case 0.0 :
{
set_pev(ent,pev_takedamage,DAMAGE_NO);
}
default :
{
set_pev(ent,pev_health,p_cvar_health);
set_pev(ent,pev_takedamage,DAMAGE_YES);
}
}


Nie wiem czy Ci to coś da, ale ja mam tak zrobione w jednej klasie :D (jeżeli cvar od zdrowia = 0.0 - nie do rozwalenia)
Edit: A chciałem pomóc :D
Aczkolwiek zablokować tak można :P

Użytkownik A może sma? edytował ten post 13.08.2011 00:29

  • +
  • -
  • 0

#3 DarkGL

    Nie oddam ciasteczka !

  • Autor tematu
  • Administrator

Reputacja: 6 553
Godlike

  • Postów:11 976
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Warszawa
Offline

Napisano 13.08.2011 00:17

nie przyda się bo nie to chce osiągnąć

Chce móc edytować / zablokować dmg


  • +
  • -
  • 0

#4 Dwdov

    Profesjonalista

  • Zbanowany

Reputacja: 59
Pomocny

  • Postów:172
  • Imię:Dawid
  • Lokalizacja:Jawor
Offline

Napisano 13.08.2011 07:59

Najłatwiej przy pomocy orpheu offsety takedamage windows: 12 linux: 14, ale skoro to do cod-moda to nie za bardzo, bo instalacja orpheu wykracza za możliwości niektórych osobników. A z orpheu chyba śmignie tak o:

new OrpheuFunction:Hook_TakeDamage = OrpheuGetFunctionFromClass( "sentry_base", "sygnatura~~", "CBaseEntity" );
OrpheuRegisterHook( Hook_TakeDamage, "OrpheuTakeDamage" );

Mogłem się pomylić z CBaseEntity, ale strzelam że jest dobrze ;P
#edit
Możliwe też że tak się po prostu nie da, za mało się tym bawiłem jeszcze, ale skoro ham nie trawi to bardzo możliwe że to też nie ruszy :P

Inny sposób sprawdzać w thinku czy dostało obrażenia i wtedy odpowiednio zadziałać, ale to chyba nie najlepszy sposób ;d

Użytkownik Dawedov edytował ten post 13.08.2011 08:04

Nie pomagam na PW, tylko na forum.


#5 Cyferki

    Początkujący

  • Użytkownik

Reputacja: 10
Początkujący

  • Postów:14
  • Lokalizacja:Narnia
Offline

Napisano 13.08.2011 10:51

Chcesz zablokować / modyfikować obrażenia zadawane przez działko, czy zadawane działku przez gracza?
  • +
  • -
  • 0

#6 A może sma?

    Godlike

  • Power User

Reputacja: 546
Wszechwiedzący

  • Postów:1 464
  • Steam:steam
  • Imię:Tomasz
  • Lokalizacja:Polska
Offline

Napisano 13.08.2011 10:58

Działku przez gracza :P
  • +
  • -
  • 0

#7 DarkGL

    Nie oddam ciasteczka !

  • Autor tematu
  • Administrator

Reputacja: 6 553
Godlike

  • Postów:11 976
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Warszawa
Offline

Napisano 13.08.2011 10:58

czy zadawane działku przez gracza

doładnie
  • +
  • -
  • 0

#8 Cyferki

    Początkujący

  • Użytkownik

Reputacja: 10
Początkujący

  • Postów:14
  • Lokalizacja:Narnia
Offline

Napisano 13.08.2011 11:34

To może tak.
RegisterHam( Ham_TakeDamage, "func_breakable", "fwHamTakeDamage" );


public fwHamTakeDamage( this, idinflictor, idattacker, Float:damage, damagebits ) {
static classname[ 20 ];
pev( this, pev_classname, classname, 19 );

if( equal( classname, "sentry_base" ) && is_user_connected( idattacker ) ) {
client_print( 0, 3, "Obrazenia zablokowane!" );
return HAM_SUPERCEDE;
}
return HAM_IGNORED;

}

  • +
  • -
  • 1

#9 DarkGL

    Nie oddam ciasteczka !

  • Autor tematu
  • Administrator

Reputacja: 6 553
Godlike

  • Postów:11 976
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Warszawa
Offline

Napisano 13.08.2011 11:50

dziwne
RegisterHam( Ham_TakeDamage, "func_breakable", "fwHamTakeDamage" );
wykryło dmg ta gra działa czasami naprawde dziwnie ;)
  • +
  • -
  • 0

#10 Adminek AMXX.PL

    Admin :)

  • Bot

Reputacja: 156
Profesjonalista

  • Postów:7 476
  • Lokalizacja:AMXX.PL
Offline

Napisano 13.08.2011 11:52

Wiadomość wygenerowana automatycznie


Ten temat został zamknięty przez moderatora.

Powód: Rozwiązane

Jeśli się z tym nie zgadzasz, Dołączona grafika raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.


Z pozdrowieniami,
Zespół AMXX.PL




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

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