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
CoD Nowy

Proszę o przerobienie klasy na premium

cod nowy

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

#1 kamiru71

    Pomocny

  • Użytkownik

Reputacja: -4
Nowy

  • Postów:47
  • Lokalizacja:Włocławek
Offline

Napisano 27.05.2012 08:58

Klasę którą chce by była premium to: Profesjonalny Grandier
Chciałbym aby ona nazywała się: Grandier (KlasaSuperPremium)
Bardzo pilne... oczywiście za pomoc WIELKI >"+"

Załączone pliki


Użytkownik kamiru71 edytował ten post 27.05.2012 08:58

  • +
  • -
  • 0
Dołączona grafika

#2 Szlendii

    Zaawansowany

  • Użytkownik

Reputacja: 13
Początkujący

  • Postów:89
  • Imię:Mateusz
  • Lokalizacja:Sławno
Offline

Napisano 27.05.2012 09:09

/* Plugin generated by AMXX-Studio */

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

#define TASK_TRANSFER 999

new const XM8_MODEL_V[] = "models/QTM_CodMod/v_xm8.mdl";
new const XM320_MODEL_V[] = "models/QTM_CodMod/v_xm8xm320.mdl";
new const XM8_MODEL_P[] = "models/QTM_CodMod/p_xm8.mdl";
new const XM320_MODEL_P[] = "models/QTM_CodMod/p_xm8xm320.mdl";
new const XM320_AMMO[] = "models/QTM_CodMod/s_grenade.mdl";
new const XM320_SHOOT2[] = "weapons/xm8xm320_shoot2.wav";
new const XM320_EXPLO[] = "weapons/xm8xm320_exp.wav";
new const XM8_FOLEY1[] = "weapons/xm8_foley1.wav";
new const XM8_FOLEY2[] = "weapons/xm8_foley2.wav";
new const XM8_FOLEY3[] = "weapons/xm8_foley3.wav";
new const XM8_FOLEY4[] = "weapons/xm8_foley4.wav";
new const XM8_FOLEY5[] = "weapons/xm8_foley5.wav";
new const XM8_FOLEY6[] = "weapons/xm8_foley6.wav";
new const XM8_DRAW[] = "weapons/xm8_draw.wav";
new const XM8_CLIPIN[] = "weapons/xm8_clipin.wav";
new const XM8_CLIPON[] = "weapons/xm8_clipon.wav";
new const XM8_CLIPOUT[] = "weapons/xm8_clipout.wav";
new const SPRITE_EXPLO[] = "sprites/xm8xm320_exp.spr";
new const SPRITE_SMOKE[] = "sprites/xm8xm320_smoke.spr";
new const SPRITE_BLAST[] = "sprites/xm8xm320_dexplo.spr";
new const SPRITE_TRAIL[] = "sprites/xm8xm320_trail.spr";

new const nazwa[] = "Profesjonalny Grenadier (KlasaSuperPremium)";
new const opis[] = "Posiada XM8 z granatnikiem XM320, klawiszem E przelacza miedzy granatnikiem a bronia";
new const bronie = 1<<CSW_SG552 | 1<<CSW_P228 | 1<<CSW_HEGRENADE | 1<<CSW_FLASHBANG | 1<<CSW_SMOKEGRENADE;
new const zdrowie = 25
new const kondycja = -15;
new const inteligencja = 0;
new const wytrzymalosc = 30;

new bool: ma_klase[33], bool: g_launcher[33], g_launcher_ammo[33], Float:weapon_idle[33], bool: zabity[33][33], magazynek[33], naboje[33], bool:weapon_reloading[33];
new explo, blast, trail, smoke;
new PCvarDamage, PCvarRadius, PCvarAmmo

public plugin_init()
{
register_plugin(nazwa, "1.0", "Hleb")
cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
RegisterHam(Ham_Item_Deploy, "weapon_sg552", "WeaponDeploy", 1);
RegisterHam(Ham_Weapon_WeaponIdle, "weapon_sg552", "Weapon_Idle");
RegisterHam(Ham_Spawn, "player", "Client_Spawn", 1);

register_forward(FM_CmdStart, "CmdStart");
register_forward(FM_Touch, "Nade_Touch")
register_event("CurWeapon","CurWeapon","be", "1=1");
register_message(get_user_msgid("DeathMsg"), "message_DeathMsg")

PCvarAmmo = register_cvar("cod_xm320_ammo", "10");
PCvarDamage = register_cvar("cod_xm320_damage", "250");
PCvarRadius = register_cvar("cod_xm320_radius", "300");

}
public cod_class_enabled(id)
{
if(!(get_user_flags(id) & ADMIN_LEVEL_H))
{
client_print(id, print_chat, "[GRENADIER] Te synek ! Nie mozesz wybrac tej klasy !.")
return COD_STOP;
}
return COD_CONTINUE
ma_klase[id] = true;
g_launcher_ammo[id] = get_pcvar_num(PCvarAmmo);
g_launcher[id] = false;
}
public cod_class_disabled(id)
{
ma_klase[id] = false;
}
public plugin_precache()
{
//dźwięki
engfunc(EngFunc_PrecacheSound, XM320_SHOOT2)
engfunc(EngFunc_PrecacheSound, XM320_EXPLO)
engfunc(EngFunc_PrecacheSound, XM8_FOLEY1)
engfunc(EngFunc_PrecacheSound, XM8_FOLEY2)
engfunc(EngFunc_PrecacheSound, XM8_FOLEY3)
engfunc(EngFunc_PrecacheSound, XM8_FOLEY4)
engfunc(EngFunc_PrecacheSound, XM8_FOLEY5)
engfunc(EngFunc_PrecacheSound, XM8_FOLEY6)
engfunc(EngFunc_PrecacheSound, XM8_DRAW)
engfunc(EngFunc_PrecacheSound, XM8_CLIPIN)
engfunc(EngFunc_PrecacheSound, XM8_CLIPON)
engfunc(EngFunc_PrecacheSound, XM8_CLIPOUT)

//sprites'y
explo = precache_model(SPRITE_EXPLO)
smoke = precache_model(SPRITE_SMOKE)
blast = precache_model(SPRITE_BLAST)
trail = precache_model(SPRITE_TRAIL)

//modele
engfunc(EngFunc_PrecacheModel, XM8_MODEL_V)
engfunc(EngFunc_PrecacheModel, XM320_MODEL_V)
engfunc(EngFunc_PrecacheModel, XM8_MODEL_P)
engfunc(EngFunc_PrecacheModel, XM320_MODEL_P)
engfunc(EngFunc_PrecacheModel, XM320_AMMO)
}
public WeaponDeploy(ent)
{
new id = get_pdata_cbase(ent, 41, 4)
if(!ma_klase[id])
return PLUGIN_CONTINUE

if(g_launcher[id])
{
set_pev(id, pev_viewmodel2, XM320_MODEL_V)
set_pev(id, pev_weaponmodel2, XM320_MODEL_P)
}
else
{
set_pev(id, pev_viewmodel2, XM8_MODEL_V)
set_pev(id, pev_weaponmodel2, XM8_MODEL_P)
}
set_pev(id, pev_weaponanim, 2);

return PLUGIN_CONTINUE;
}
public Weapon_Idle(ent)
{
new id = get_pdata_cbase(ent, 41, 4);
if(get_user_weapon(id) == 27 && ma_klase[id])
{
if(!weapon_idle[id])
weapon_idle[id] = get_gametime();
}
}
public cod_class_skill_used(id)
{
if(!ma_klase[id] && get_user_weapon(id) != CSW_SG552)
return PLUGIN_CONTINUE

set_pev(id, pev_weaponanim, 6)
set_task(2.0, "Transfer", id+TASK_TRANSFER);
return PLUGIN_CONTINUE;
}
public Transfer(id)
{
id-=TASK_TRANSFER;
new ent = fm_find_ent_by_owner(-1, "weapon_sg552", id)
if(!g_launcher[id])
{
magazynek[id] = cs_get_weapon_ammo(ent)
naboje[id] = cs_get_user_bpammo(id, CSW_SG552)
}
g_launcher[id] =(g_launcher[id])?false:true;
set_pev(id, pev_viewmodel2, (g_launcher[id])?XM320_MODEL_V:XM8_MODEL_V);
set_pev(id, pev_weaponanim, 0);
if(!g_launcher[id])
{
cs_set_weapon_ammo(ent, magazynek[id])
cs_set_user_bpammo(id, CSW_SG552, naboje[id])
}
}
public CurWeapon(id)
{
if(!ma_klase[id])
return PLUGIN_CONTINUE;

if(read_data(2) != CSW_SG552 && task_exists(id+TASK_TRANSFER))
remove_task(id+TASK_TRANSFER)

return PLUGIN_CONTINUE;
}
public Client_Spawn(id)
{
if(!ma_klase[id])
return PLUGIN_CONTINUE;

g_launcher_ammo[id] = get_pcvar_num(PCvarAmmo);
magazynek[id] = 30;
naboje[id] = 90;
return PLUGIN_CONTINUE;

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

if(get_user_weapon(id) == CSW_SG552 && ma_klase[id])
{
new button = get_uc(uc, UC_Buttons);
new ent = fm_find_ent_by_owner(-1, "weapon_sg552", id);

if(!g_launcher[id])
return FMRES_IGNORED

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

if(!g_launcher_ammo[id] || weapon_reloading[id] || !weapon_idle[id])
return FMRES_IGNORED;
if(weapon_idle[id] && (get_gametime()-weapon_idle[id]<=1.1))
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, 2000, Velocity);

Angle[0] *= -1.0

new ent = fm_create_entity("info_target")
set_pev(ent, pev_classname, "mortar");
engfunc(EngFunc_SetModel, ent, XM320_AMMO);

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.3);

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(trail)
write_byte(6)
write_byte(3)
write_byte(224)
write_byte(224)
write_byte(255)
write_byte(100)
message_end()

g_launcher_ammo[id]--;
set_pev(id, pev_weaponanim, (!g_launcher_ammo[id])?8:7)
new entwpn = fm_find_ent_by_owner(-1, "weapon_sg552", id)
if(entwpn)
set_pdata_float(entwpn, 48, 1.5+3.0, 4)
set_pdata_float(id, 83, 1.5, 4)

weapon_reloading[id] = true;
emit_sound(id, CHAN_WEAPON, XM320_SHOOT2, 1.0, ATTN_NORM, 0, PITCH_NORM)

if(task_exists(id+3000))
remove_task(id+3000)

set_task(3.4, "RELOADING", id+3000)
}
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, 27, g_launcher_ammo[id]);
}
else if(get_user_weapon(id) != CSW_SG552 && ma_klase[id])
weapon_idle[id] = 0.0;

return FMRES_IGNORED;
}
public RELOADING(id)
{
id -= 3000;
weapon_reloading[id] = false;
set_pev(id, pev_weaponanim, 0);
}
public Nade_Touch(ent, id)
{
if(!pev_valid(ent))
return FMRES_IGNORED

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

if(!equal(class, "mortar"))
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:xm320_damage = get_pcvar_float(PCvarDamage);
new Float:xm320_radius = get_pcvar_float(PCvarRadius);

new victim = -1
while((victim = engfunc(EngFunc_FindEntityInSphere, victim, entOrigin, xm320_radius)) != 0)
{
if(!is_user_alive(victim) || get_user_team(attacker) == get_user_team(victim))
continue;

pev(victim, pev_origin, Origin);
fDamage = xm320_damage - floatmul(xm320_damage, floatdiv(get_distance_f(Origin, entOrigin), xm320_radius));
fDamage *= estimate_take_hurt(entOrigin, victim);
if(fDamage>0.0)
UTIL_Kill(attacker, victim, fDamage, DMG_BULLET);
}
emit_sound(ent, CHAN_WEAPON, XM320_EXPLO, 1.0, ATTN_NORM, 0, PITCH_NORM)
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(explo);
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(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(smoke);
write_byte(35);
write_byte(5);
message_end();
fm_remove_entity(ent);
return FMRES_IGNORED
}
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.75;
}
stock UTIL_Kill(atakujacy, obrywajacy, Float:damage, damagebits)
{
if(get_user_health(obrywajacy) <= floatround(damage))
zabity[atakujacy][obrywajacy] = true;

cod_inflict_damage(atakujacy, obrywajacy, damage, 1.0, atakujacy, damagebits);
}
public message_DeathMsg()
{
static killer, victim;
killer = get_msg_arg_int(1);
victim = get_msg_arg_int(2);

if(zabity[killer][victim])
{
zabity[killer][victim] = false;
set_msg_arg_string(4, "grenade");
return PLUGIN_CONTINUE;
}
return PLUGIN_CONTINUE;
}
zobacz czy będzie działać. Nie kompilowałem tego.
  • +
  • -
  • 0

#3 kamiru71

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: -4
Nowy

  • Postów:47
  • Lokalizacja:Włocławek
Offline

Napisano 27.05.2012 09:16

tzn. Premium jest ale nie działa funkcja przełączenia na granatnik, i nieraz zmienia się model broni na standard
  • +
  • -
  • 0
Dołączona grafika





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

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

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