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
Perk

Prośba o 2 perki - m.in "Bazooka artylerzysty"

perk

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

#1 none1947

    Początkujący

  • Użytkownik

Reputacja: 0
Nowy

  • Postów:15
  • GG:
  • Lokalizacja:Wroclove
Offline

Napisano 26.01.2013 18:43

Witam,
Mam do zrobienia 2 perki, mianowicie chodzi mi o :

Nazwa -> Bazooka Artylerzysty:
Opis: Dostajesz bazooke + 2 rakiety (obrażenia są zależne od inteligencji)

Nazwa -> Tarcza Artylerzysty:
Opis -> Jesteś odporny na rakiety Artylerzysty

Z gory dzięki :)

Użytkownik none1947 edytował ten post 26.01.2013 18:44

  • +
  • -
  • 0
Dołączona grafika
Dołączona grafika

Serwer FASTXP, UNIKAT! Zapraszam do gry!
Serwer DM+HS, kazdy na kazdego. Stabilny, 0 lagow, HSy wchodza bez zarzutu ;-) (KONKURSY!)

#2 SKCr0well

    Zaawansowany

  • Użytkownik

Reputacja: 2
Nowy

  • Postów:99
  • Imię:Mariusz
  • Lokalizacja:Konin
Offline

Napisano 26.01.2013 20:49

Ale jaką bazooke? Bo nie rozumiem , takie coś jak rakieta przy wsparciu .

@ żart NONE:P Do roboty, a nie się amx wysługujesz :P

Użytkownik SKCr0well edytował ten post 26.01.2013 21:05

  • +
  • -
  • 0

#3 none1947

    Początkujący

  • Autor tematu
  • Użytkownik

Reputacja: 0
Nowy

  • Postów:15
  • GG:
  • Lokalizacja:Wroclove
Offline

Napisano 27.01.2013 14:06

up
  • +
  • -
  • 0
Dołączona grafika
Dołączona grafika

Serwer FASTXP, UNIKAT! Zapraszam do gry!
Serwer DM+HS, kazdy na kazdego. Stabilny, 0 lagow, HSy wchodza bez zarzutu ;-) (KONKURSY!)

#4 SKCr0well

    Zaawansowany

  • Użytkownik

Reputacja: 2
Nowy

  • Postów:99
  • Imię:Mariusz
  • Lokalizacja:Konin
Offline

Napisano 27.01.2013 20:10

Powinno działać :


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

new const perk_name[] = "Tarcza Artylerzysty";
new const perk_desc[] = "Jesteś odporny na rakiety Artylerzysty";
new bool:ma_perk[33];
public plugin_init()
{
register_plugin(perk_name, "1.0", "QTM_Peyote");

cod_register_perk(perk_name, perk_desc);

RegisterHam(Ham_TakeDamage, "player", "TakeDamage")
}
public cod_perk_enabled(id)
ma_perk[id] = true;
public cod_perk_disabled(id)
ma_perk[id] = false;
public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits)
{
if(!ma_perk[this])
return HAM_IGNORED;

new classname[10]
pev(idinflictor, pev_classname, classname, 9);

if(equal(classname, "tutaj nazwe tej rakiety"))
return HAM_SUPERCEDE;
return HAM_IGNORED;
}




w if(equal(classname, "tutaj nazwe tej rakiety")) dodaj nazwę rakiety, bo nie wiem jak sie nazywa u Ciebie

Drugi perk :

#include <amxmodx>
#include <cstrike>
#include <fakemeta_util>
#include <hamsandwich>
#include <codmod>

#define MAX 32

new const perk_name[] = "Bazooka Artylerzysty";
new const perk_desc[] = "Dostajesz Bazuke + 2 rakiety";

new bool:wystrzelony[MAX+1][MAX+1];

new bool:ma_perk[MAX+1], bool:has_weapon[MAX+1], bool:reloading[MAX+1], rockets[MAX+1], Float:idle[MAX+1];

new sprite_blast, sprite_nadeexp, sprite_smoke, sprite_trail;

public plugin_init()
{
register_plugin(perk_name, "1.0", "Cypis edit by Cr0well");

cod_register_perk(perk_name, perk_desc);

RegisterHam(Ham_Spawn, "player", "Odrodzenie", 1);
RegisterHam(Ham_Item_Deploy, "weapon_p228", "Weapon_Deploy", 1);
RegisterHam(Ham_Weapon_WeaponIdle, "weapon_p228", "Weapon_WeaponIdle");

register_forward(FM_CmdStart, "CmdStart");
register_forward(FM_SetModel, "SetModel");
register_forward(FM_Touch, "fw_Touch")

register_message(get_user_msgid("DeathMsg"), "message_DeathMsg")

register_cvar("bazooker_damage", "120.0");
register_cvar("bazooker_radius", "250.0");
register_cvar("bazooker_rockets", "2");
}

public plugin_precache()
{
sprite_blast = precache_model("sprites/dexplo.spr");
sprite_smoke = precache_model("sprites/steam1.spr");
sprite_nadeexp = precache_model("sprites/law_exp.spr");
sprite_trail = precache_model("sprites/smoke.spr");

precache_model("models/p_law.mdl");
precache_model("models/w_law.mdl");
precache_model("models/v_law.mdl");
precache_model("models/s_grenade.mdl");
precache_sound("weapons/law_shoot1.wav");
}

public cod_perk_enabled(id, wartosc)
{
cod_give_weapon(id, CSW_P228);
ma_perk[id] = true;
Odrodzenie(id)
}

public cod_perk_disabled(id)
{
cod_take_weapon(id, CSW_P228);
ma_perk[id] = false;
has_weapon[id] = false;
rockets[id] = 0;
}

public Odrodzenie(id)
{
if(is_user_alive(id) && ma_perk[id])
{
has_weapon[id] = true;
rockets[id] = get_cvar_num("bazooker_rockets");
}
}

public CmdStart(id, uc)
{
if(!is_user_alive(id))
return FMRES_IGNORED;

new weapon = get_user_weapon(id);
if(weapon == 1 && has_weapon[id])
{
new button = get_uc(uc, UC_Buttons);
new ent = fm_find_ent_by_owner(-1, "weapon_p228", id);

if(button & IN_ATTACK)
{
button &= ~IN_ATTACK;
set_uc(uc, UC_Buttons, button);

if(!rockets[id] || reloading[id] || !idle[id])
return FMRES_IGNORED;
if(idle[id] && (get_gametime()-idle[id]<=0.4))
return FMRES_IGNORED;

new Float:Origin[3], Float:Angle[3], Float:Velocity[3];
pev(id, pev_origin, Origin);
pev(id, pev_v_angle, Angle);
velocity_by_aim(id, 1000, Velocity);

Angle[0] *= -1.0

new ent = fm_create_entity("info_target")
set_pev(ent, pev_classname, "rocket");
engfunc(EngFunc_SetModel, ent, "models/s_grenade.mdl");

set_pev(ent, pev_solid, SOLID_BBOX);
set_pev(ent, pev_movetype, MOVETYPE_TOSS);
set_pev(ent, pev_owner, id);
set_pev(ent, pev_mins, Float:{-1.0, -1.0, -1.0});
set_pev(ent, pev_maxs, Float:{1.0, 1.0, 1.0});
set_pev(ent, pev_gravity, 0.35);

set_pev(ent, pev_origin, Origin);
set_pev(ent, pev_velocity, Velocity);
set_pev(ent, pev_angles, Angle);

message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
write_byte(TE_BEAMFOLLOW)
write_short(ent)
write_short(sprite_trail)
write_byte(6)
write_byte(3)
write_byte(224)
write_byte(224)
write_byte(255)
write_byte(100)
message_end()

set_pev(id, pev_weaponanim, 7);
new entwpn = fm_find_ent_by_owner(-1, "weapon_p228", id)
if(entwpn)
set_pdata_float(entwpn, 48, 1.5+3.0, 4)
set_pdata_float(id, 83, 1.5, 4)

reloading[id] = true;
emit_sound(id, CHAN_WEAPON, "weapons/law_shoot1.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)

if(task_exists(id+3512))
remove_task(id+3512)

set_task(1.5, "task_launcher_reload", id+3512)
rockets[id]--;
}
else if(button & IN_RELOAD)
{
button &= ~IN_RELOAD;
set_uc(uc, UC_Buttons, button);

set_pev(id, pev_weaponanim, 0);
set_pdata_float(id, 83, 0.5, 4);
if(ent)
set_pdata_float(ent, 48, 0.5+3.0, 4);
}

if(ent)
cs_set_weapon_ammo(ent, -1);
cs_set_user_bpammo(id, 1, rockets[id]);
}
else if(weapon != 1 && has_weapon[id])
idle[id] = 0.0;

return FMRES_IGNORED;
}

public Weapon_Deploy(ent)
{
new id = get_pdata_cbase(ent, 41, 4);
if(has_weapon[id])
{
set_pev(id, pev_viewmodel2, "models/v_law.mdl");
set_pev(id, pev_weaponmodel2, "models/p_law.mdl");
}
return PLUGIN_CONTINUE;
}

public Weapon_WeaponIdle(ent)
{
new id = get_pdata_cbase(ent, 41, 4);
if(get_user_weapon(id) == 1 && has_weapon[id])
{
if(!idle[id])
idle[id] = get_gametime();
}
}

public SetModel(ent, model[])
{
if(!pev_valid(ent))
return FMRES_IGNORED

if(!equal(model, "models/w_p228.mdl"))
return FMRES_IGNORED;

new id = pev(ent, pev_owner);
if(!has_weapon[id])
return FMRES_IGNORED;

engfunc(EngFunc_SetModel, ent, "models/w_law.mdl");
set_pev(ent, pev_iuser4, rockets[id]);
has_weapon[id] = false;
return FMRES_SUPERCEDE;
}

public task_launcher_reload(id)
{
id -= 3512;
reloading[id] = false;
set_pev(id, pev_weaponanim, 0);
}

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, "rocket"))
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 = get_cvar_float("bazooker_damage");
new Float:g_radius = get_cvar_float("bazooker_radius");

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)
UTIL_Kill(attacker, victim, fDamage, DMG_BULLET);
}
message_begin(MSG_BROADCAST,SVC_TEMPENTITY);
write_byte(TE_EXPLOSION);
write_coord(floatround(entOrigin[0]));
write_coord(floatround(entOrigin[1]));
write_coord(floatround(entOrigin[2]));
write_short(sprite_nadeexp);
write_byte(40);
write_byte(30);
write_byte(14);
message_end();

message_begin(MSG_BROADCAST,SVC_TEMPENTITY);
write_byte(TE_EXPLOSION);
write_coord(floatround(entOrigin[0]));
write_coord(floatround(entOrigin[1]));
write_coord(floatround(entOrigin[2]));
write_short(sprite_blast);
write_byte(40);
write_byte(30);
write_byte(TE_EXPLFLAG_NONE);
message_end();

message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
write_byte(5)
write_coord(floatround(entOrigin[0]));
write_coord(floatround(entOrigin[1]));
write_coord(floatround(entOrigin[2]));
write_short(sprite_smoke);
write_byte(35);
write_byte(5);
message_end();
fm_remove_entity(ent);
return FMRES_IGNORED
}

public message_DeathMsg()
{
static killer, victim;
killer = get_msg_arg_int(1);
victim = get_msg_arg_int(2);

if(wystrzelony[killer][victim])
{
wystrzelony[killer][victim] = false;
set_msg_arg_string(4, "grenade");
return PLUGIN_CONTINUE;
}
return PLUGIN_CONTINUE;
}

stock Float:estimate_take_hurt(Float:fPoint[3], ent)
{
new Float:fOrigin[3], tr, Float:fFraction;
pev(ent, pev_origin, fOrigin);
engfunc(EngFunc_TraceLine, fPoint, fOrigin, DONT_IGNORE_MONSTERS, 0, tr);
get_tr2(tr, TR_flFraction, fFraction);
if(fFraction == 1.0 || get_tr2(tr, TR_pHit) == ent)
return 1.0;
return 0.6;
}


stock UTIL_Kill(atakujacy, obrywajacy, Float:damage, damagebits)
{
if(get_user_health(obrywajacy) <= floatround(damage))
wystrzelony[atakujacy][obrywajacy] = true;

cod_inflict_damage(atakujacy, obrywajacy, damage, 1.0, atakujacy, damagebits);
}


Jest to z edytowana klasa czołgista , nie wiem czy poasuje:P
Cvary do perku :


bazooker_damage "120.0" - ile ma zadawać dmg rakieta
bazooker_radius
"250.0" - odległość rażenia rakiety
bazooker_rockets
"2" - ile rakiet posiada bazuka
  • +
  • -
  • 0





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

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

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