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
Klasa

Prośba o dodanie umiejętności do klas.

klasa

Najlepsza odpowiedź DealeR^^, 19.07.2014 18:52

Dzięki Panowie.

Przejdź do postu


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

#1 DealeR^^

    Pomocny

  • Użytkownik

Reputacja: 4
Nowy

  • Postów:57
  • GG:
  • Imię:Kamil
  • Lokalizacja:Bytom
Offline

Napisano 19.07.2014 10:09

Siema, jeśli ktoś potrafi to proszę o dodanie do klasy Grenadier 1/2 tych dodatkowych obrażeń (one już są dodane ale są tak jakby 1/1 a chce 1/2) i do klasy terrorysta odporność na miny, z góry dziękuję.
 

#include <amxmodx>
#include <codmod>
#include <hamsandwich>

#define DMG_HEGRENADE (1<<24)
#define DMG_BULLET (1<<1)

new const nazwa[] = "Grenadier";
new const opis[] = "Posiada 2 HE 1/3 z nich, 1/2 na zadanie dodatkowych obrazen z TMP 500 + (20 prc. z int.)";
new const bronie = 1<<CSW_TMP | 1<<CSW_USP | 1<<CSW_HEGRENADE | 1<<CSW_HEGRENADE;
new const zdrowie = 1000;
new const kondycja = 0;
new const inteligencja = 0;
new const wytrzymalosc = 0;

new ma_klase[33];


public plugin_init()
{
    cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
    RegisterHam(Ham_TakeDamage, "player", "TakeDamage");
}

public cod_class_enabled(id)
{
    ma_klase[id] = true;

}

public cod_class_disabled(id)
{
        ma_klase[id] = false;

}

public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits)
{
    if(!is_user_connected(idattacker))
        return HAM_IGNORED;
        
    if(!ma_klase[idattacker])
        return HAM_IGNORED;      
        
    if(get_user_team(this) != get_user_team(idattacker) && get_user_weapon(idattacker) == CSW_HEGRENADE && damagebits & DMG_HEGRENADE && random_num(1, 3) == 1)
        cod_inflict_damage(idattacker, this, float(get_user_health(this))-damage+1.0, 0.0, idinflictor, damagebits);
        
    if(get_user_team(this) != get_user_team(idattacker) && get_user_weapon(idattacker) == CSW_TMP && damagebits & DMG_BULLET)
        cod_inflict_damage(idattacker, this, 500.0, 0.2, idinflictor, damagebits);
            
    return HAM_IGNORED;
}
#include <amxmodx>
#include <codmod>
#include <engine>
#include <hamsandwich>

#define DMG_BULLET (1<<1)

new const nazwa[] = "Terrorysta";
new const opis[] = "Jest odporny na miny, posiada rakiete, 1/8 z GLOCK18.";
new const bronie = 1<<CSW_SG552 | 1<<CSW_GLOCK18;
new const zdrowie = 1000;
new const kondycja = 0;
new const inteligencja = 0;
new const wytrzymalosc = 0;

new ma_klase[33];

new ilosc_rakiet_gracza[33];

new sprite_blast;

new poprzednia_rakieta_gracza[33];


public plugin_init()
{
    cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
    RegisterHam(Ham_TakeDamage, "player", "TakeDamage");
    register_plugin(nazwa, "1.0", "autor");

    register_touch("rocket", "*" , "DotykRakiety");
    register_event("ResetHUD", "ResetHUD", "abe");
}

public plugin_precache()
{
    sprite_blast = precache_model("sprites/dexplo.spr");
    precache_model("models/rpgrocket.mdl");
}

public cod_class_enabled(id)
{
    ilosc_rakiet_gracza[id] = 1;
    ma_klase[id] = true;

}

public cod_class_disabled(id)
{
        ma_klase[id] = false;

}

public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits)
{
    if(!is_user_connected(idattacker))
        return HAM_IGNORED;
        
    if(!ma_klase[idattacker])
        return HAM_IGNORED;      
        
    if(get_user_team(this) != get_user_team(idattacker) && get_user_weapon(idattacker) == CSW_GLOCK18 && damagebits & DMG_BULLET && random_num(1, 8) == 1)
        cod_inflict_damage(idattacker, this, float(get_user_health(this))-damage+1.0, 0.0, idinflictor, damagebits);
            
    return HAM_IGNORED;
}

public cod_class_skill_used(id)
{
    if (!ilosc_rakiet_gracza[id])
    {
        client_print(id, print_center, "Wykorzystales juz wszystkie rakiety!");
        return PLUGIN_CONTINUE;
    }
    
    if(poprzednia_rakieta_gracza[id] + 2.0 > get_gametime())
    {
        client_print(id, print_center, "Rakiet mozesz uzywac co 2 sekundy!");
        return PLUGIN_CONTINUE;
    }
    
    if (is_user_alive(id))
    {
        poprzednia_rakieta_gracza[id] = floatround(get_gametime());
        ilosc_rakiet_gracza[id]--;

        new Float: Origin[3], Float: vAngle[3], Float: Velocity[3];
        
        entity_get_vector(id, EV_VEC_v_angle, vAngle);
        entity_get_vector(id, EV_VEC_origin , Origin);
    
        new Ent = create_entity("info_target");
    
        entity_set_string(Ent, EV_SZ_classname, "rocket");
        entity_set_model(Ent, "models/rpgrocket.mdl");
    
        vAngle[0] *= -1.0;
    
        entity_set_origin(Ent, Origin);
        entity_set_vector(Ent, EV_VEC_angles, vAngle);
    
        entity_set_int(Ent, EV_INT_effects, 2);
        entity_set_int(Ent, EV_INT_solid, SOLID_BBOX);
        entity_set_int(Ent, EV_INT_movetype, MOVETYPE_FLY);
        entity_set_edict(Ent, EV_ENT_owner, id);
    
        VelocityByAim(id, 1000 , Velocity);
        entity_set_vector(Ent, EV_VEC_velocity ,Velocity);
    }    
    return PLUGIN_CONTINUE;
}

public DotykRakiety(ent)
{
    if (!is_valid_ent(ent))
        return;

    new attacker = entity_get_edict(ent, EV_ENT_owner);
    

    new Float:fOrigin[3];
    entity_get_vector(ent, EV_VEC_origin, fOrigin);    
    
    new iOrigin[3];
    for(new i=0;i<3;i++)
        iOrigin[i] = floatround(fOrigin[i]);
    
    message_begin(MSG_BROADCAST,SVC_TEMPENTITY, iOrigin);
    write_byte(TE_EXPLOSION);
    write_coord(iOrigin[0]);
    write_coord(iOrigin[1]);
    write_coord(iOrigin[2]);
    write_short(sprite_blast);
    write_byte(32);
    write_byte(20);
    write_byte(0);
    message_end();

    new entlist[33];
    new numfound = find_sphere_class(ent, "player", 190.0, entlist, 32);
    
    for (new i=0; i < numfound; i++)
    {        
        new pid = entlist[i];
        
        if (!is_user_alive(pid) || get_user_team(attacker) == get_user_team(pid))
            continue;
        cod_inflict_damage(attacker, pid, 20.0, 0.9, ent, (1<<24));
    }
    remove_entity(ent);
}    

public ResetHUD(id)
    ilosc_rakiet_gracza[id] = 1;

public client_disconnect(id)
{
    new ent = find_ent_by_class(0, "rocket");
    while(ent > 0)
    {
        if(entity_get_edict(id, EV_ENT_owner) == id)
            remove_entity(ent);
        ent = find_ent_by_class(ent, "rocket");
    }
}

  • +
  • -
  • 0

Zapraszam na sieć serwer Counter-Strike 1.6, Pogromcy-skilla.xaa.pl! Przyjmę serwer do sieci, pisać!
Serwer ProCodMod 80001 lvl, klasy zwykle, od poziomu, extra, super i xxl, konto vip, unikatowa paczka.
b_350_20_151515_151515_4CD23E_151515.png IP: 31.186.82.99:27829

Piszę: Klasy, perki, własne motd (wyświetlane okienko na komendę)

Modyfikuję: Klasy, perki, silniki, pluginy.


#2 Alelluja

    Miszcz jotbe

  • Power User

Reputacja: 491
Wszechobecny

  • Postów:981
  • GG:
Offline

Napisano 19.07.2014 10:53

Proszę

 

 

Załączone pliki


  • +
  • -
  • 0

Moje Pluginy | Paczki:
------> http://amxx.pl/topic...od/#entry687942 <------ 500 Postów 27.05.2015
------> http://amxx.pl/topic...monety-lombard/<------
------> http://amxx.pl/topic...-na-ammo-packi/<------


#3 DealeR^^

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 4
Nowy

  • Postów:57
  • GG:
  • Imię:Kamil
  • Lokalizacja:Bytom
Offline

Napisano 19.07.2014 11:40

Dzięki, jeszcze tylko grenadier.


Użytkownik DealeR^^ edytował ten post 19.07.2014 11:41

  • +
  • -
  • 0

Zapraszam na sieć serwer Counter-Strike 1.6, Pogromcy-skilla.xaa.pl! Przyjmę serwer do sieci, pisać!
Serwer ProCodMod 80001 lvl, klasy zwykle, od poziomu, extra, super i xxl, konto vip, unikatowa paczka.
b_350_20_151515_151515_4CD23E_151515.png IP: 31.186.82.99:27829

Piszę: Klasy, perki, własne motd (wyświetlane okienko na komendę)

Modyfikuję: Klasy, perki, silniki, pluginy.


#4 Mr.Blue

    Życzliwy

  • Użytkownik

Reputacja: 0
Nowy

  • Postów:24
  • GG:
  • Imię:Jakub
  • Lokalizacja:Chojnice
Offline

Napisano 19.07.2014 12:20

Proszę. Powinno działać :)

Załączone pliki


  • +
  • -
  • 0

#5 kakus002

    (-.(-.(-.-).-).-)

  • Zbanowany

Reputacja: 164
Profesjonalista

  • Postów:209
  • Lokalizacja:OS
Offline

Napisano 19.07.2014 14:31

takie coś "1<<CSW_HEGRENADE | 1<<CSW_HEGRENADE;" nie da Ci dwóch granatów.
Zamień cały pubilic "TakeDamage" na to:
public TakeDamage(id, ent, attacker, Float:damage, damagebits)
{
	if(!is_user_alive(id) || !is_user_connected(attacker) || !ma_klase[attacker] || get_user_team(id) == get_user_team(attacker))	return HAM_IGNORED
	
	if(damagebits & DMG_BULLET && ent == attacker && get_user_weapon(attacker) == CSW_TMP && !random(2))
	{
		SetHamParamFloat(4,damage+500.0+float(cod_get_user_intelligence(attacker,1,1,1))*0.2)
		return HAM_HANDLED
	}
	else if(damagebits & DMG_HEGRENADE && ent != attacker && !random(3))	KillPlayer(id,ent,attacker,CSW_HEGRENADE,HIT_GENERIC,0,DMG_HEGRENADE)
	
	return HAM_IGNORED
}

KillPlayer(id,inflictor,attacker,weapon,body,shouldgib,damagebits)
{
	if(weapon > 30 || !is_user_alive(id) || !is_user_connected(attacker))	return
	
	const GrenadeWeapon = 1<<CSW_HEGRENADE | 1<<CSW_C4 | 1<<CSW_SMOKEGRENADE | 1<<CSW_FLASHBANG
	const m_LastHitGroup = 75
	const m_bitsDamageType = 76
	const m_fHasTakenHighDamage = 107
	static DeathMsgId
	new msgblock,weaponname[32],effect
	if (!DeathMsgId)	DeathMsgId = get_user_msgid("DeathMsg")
	
	set_pdata_int(id,m_LastHitGroup,body,5)
	set_pdata_int(id,m_bitsDamageType,damagebits,5)
	set_pdata_int(id,m_fHasTakenHighDamage,1,5)
	set_pev(id,pev_dmg_inflictor,inflictor)
	msgblock = get_msg_block(DeathMsgId)
	set_msg_block(DeathMsgId, BLOCK_SET)
	ExecuteHamB(Ham_Killed,id,attacker,shouldgib)
	set_msg_block(DeathMsgId, msgblock)
	effect = pev(id,pev_effects)
	if(effect & 128)	set_pev(id,pev_effects,effect-128)
	
	new len
	if(get_weaponname(weapon,weaponname,31))
	{
		if(~GrenadeWeapon & 1<<weapon) len = 7
		else weaponname = "grenade"
	}
	else if(weapon == 2)	weaponname = "tracktrain"
	else	weaponname = "world"
	
	emessage_begin(MSG_ALL, DeathMsgId)
	ewrite_byte(attacker)
	ewrite_byte(id)
	ewrite_byte(body == HIT_HEAD ? 1:0)
	ewrite_string(weaponname[len])
	emessage_end()
}


#6 DealeR^^

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 4
Nowy

  • Postów:57
  • GG:
  • Imię:Kamil
  • Lokalizacja:Bytom
Offline

Napisano 19.07.2014 18:52   Najlepsza odpowiedź

Dzięki Panowie.


  • +
  • -
  • 0

Zapraszam na sieć serwer Counter-Strike 1.6, Pogromcy-skilla.xaa.pl! Przyjmę serwer do sieci, pisać!
Serwer ProCodMod 80001 lvl, klasy zwykle, od poziomu, extra, super i xxl, konto vip, unikatowa paczka.
b_350_20_151515_151515_4CD23E_151515.png IP: 31.186.82.99:27829

Piszę: Klasy, perki, własne motd (wyświetlane okienko na komendę)

Modyfikuję: Klasy, perki, silniki, pluginy.






Również z jednym lub większą ilością słów kluczowych: klasa

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

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