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

hamsandwich i ent broni


  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
3 odpowiedzi w tym temacie

#1 Stachuu :D ??

    Wszechobecny

  • Użytkownik

Reputacja: 237
Wszechwidzący

  • Postów:476
  • GG:
  • Steam:steam
  • Imię:Dawid
  • Lokalizacja:Karsznice
Offline

Napisano 13.12.2011 20:55

Witam.
Opisze cala sprawę mam u siebie coś typu rakiety

iteraz chodzi mi jak zapisać jej nazwę ("rakieta") aby w czasie śmierci została ona złapana przez Deathmsg

kod rakiety

public fw_Touch(ent, id)
{
if(!pev_valid(ent))
	return FMRES_IGNORED

new class[32]
pev(ent, pev_classname, class, charsmax(class))

if(!equal(class, "rakieta"))
	return FMRES_IGNORED

new attacker = pev(ent, pev_owner);
new Float:entOrigin[3], Float:fDamage, Float:Origin[3];
pev(ent, pev_origin, entOrigin);
entOrigin[2] += 1.0;

new Float:g_damage = 180.0
new Float:g_radius = 350.0

new victim = -1
while((victim = engfunc(EngFunc_FindEntityInSphere, victim, entOrigin, g_radius)) != 0)
{	  
	if(!is_user_alive(victim) || get_user_team(attacker) == get_user_team(victim))
		continue;
  
	pev(victim, pev_origin, Origin);
	fDamage = g_damage - floatmul(g_damage, floatdiv(get_distance_f(Origin, entOrigin), g_radius));
	fDamage *= estimate_take_hurt(entOrigin, victim);
	if(fDamage>0.0)
		ExecuteHamB(Ham_TakeDamage, victim,ent, attacker, fDamage, DMG_BULLET );
	if(player_misja[attacker] == 2||player_misja[attacker] == 7) player_expstat[attacker] += floatround(fDamage,floatround_ceil)
}
fm_remove_entity(ent);
return FMRES_IGNORED
}


np.
public DeathMsg(id)
{
	new weaponname[20]

	new headshot = read_data(3)
	read_data(4,weaponname,31)

weaponname ma sie rownac "rakieta"

dzięki za pomoc.

@ref

Użytkownik Zielarz. edytował ten post 13.12.2011 20:54

  • +
  • -
  • 0

#2 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

  • Postów:5 411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 13.12.2011 21:00

Sprawdź sobie to -> http://amxx.pl/topic...post__p__252255
  • +
  • -
  • 0

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo


#3 Stachuu :D ??

    Wszechobecny

  • Autor tematu
  • Użytkownik

Reputacja: 237
Wszechwidzący

  • Postów:476
  • GG:
  • Steam:steam
  • Imię:Dawid
  • Lokalizacja:Karsznice
Offline

Napisano 13.12.2011 21:59

chodzi dokladnie o to ??

new clip, ammo, weapon;
        if(idinflictor == idattacker) weapon = get_user_weapon(idattacker, clip, ammo);
        else if(damagebits & (1<<24)) weapon = CSW_HEGRENADE;
        else{
                new szClass[32];
                pev(idinflictor, pev_classname, szClass, 31);
                
                if(equal(szClass, "MojeObrazenia")){
                        weapon = MojeObrazeniaWeaponid;
                }
        }


ale jak pobrac idinflictor
w deathmsg jesli to wg mozliwe ??
  • +
  • -
  • 0

#4 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

  • Postów:5 411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 13.12.2011 22:38

chodzi dokladnie o to ??

new clip, ammo, weapon;
        if(idinflictor == idattacker) weapon = get_user_weapon(idattacker, clip, ammo);
        else if(damagebits & (1<<24)) weapon = CSW_HEGRENADE;
        else{
                new szClass[32];
                pev(idinflictor, pev_classname, szClass, 31);

                if(equal(szClass, "MojeObrazenia")){
                        weapon = MojeObrazeniaWeaponid;
                }
        }

Nie, używasz tego
stock TakeDamage(victim, attacker, Float:fDamage, bits, const szWeaponName[] = ""){
static info_target = 0;
if(!info_target)
info_target = engfunc( EngFunc_AllocString, "info_target");

new inflictor;
if(szWeaponName[0]){
inflictor = engfunc( EngFunc_CreateNamedEntity, info_target);
set_pev(inflictor, pev_classname, szWeaponName);
ExecuteHamB(Ham_TakeDamage, victim, inflictor, attacker, fDamage, bits);
engfunc(EngFunc_RemoveEntity, inflictor);
}else{
ExecuteHamB(Ham_TakeDamage, victim, attacker, attacker, fDamage, bits);
}
}

czyli, np.
TakeDamage(victim, attacker, 100.0, 0, "rakieta");

I wtedy pobierając nazwę broni z "DeathMsg", będziesz miał "rakieta", a chyba o to Ci chodziło.
  • +
  • -
  • 0

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo





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

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