Skocz do zawartości

Nowy szablon forum

mygo.pl

Stworzyliśmy dla Was nowy wygląd forum. Z pewnością znajdziesz rzeczy, które wg Ciebie mogą zostać zmienione - wspomnij o tym w specjalnym wątku.

Czytaj więcej

Jak założyć własną sieć

serwerów CS

Zastanawiasz się nad prowadzeniem własnej sieci serwerów? Przeczytaj podstawowe informacje, na które należy zwrócić uwagę, przy takim projekcie.

Czytaj więcej

Tworzymy spis sieci

dodaj swoją

Dodaj sieć do której należysz, pozwoli to na promocję i budowę ogólnopolskiej bazy sieci CS.

Czytaj więcej

RSSChange TE_BEAMENTPOINT to TE_USERTRACER


MYGO.pl
 Udostępnij

Rekomendowane odpowiedzi

  • RSSy
Hello guys and happy new year. Could someone help me use the TE_USERTRACER function instead of TE_BEAMENTPOINT? I'm trying to make the AK47 shots look like from the plugin: https://forums.alliedmods.net/showthread.php?p=544649
With colors.

PHP Code:

#include <amxmodx>
#include <amxmisc>
#include <engine>
#include <cstrike>
#include <fakemeta>
#include <hamsandwich>
#include <zombieplague>
#include <cs_ham_bots_api>

// Item Name
#define ITEM_NAME "Golden AK47"

// Item Cost
#define ITEM_COST 80

new const PLUGIN_VERSION[] = "v1.0";

new const 
V_AK_MDL[64] = "models/zombie_plague/v_golden_ak47.mdl";
new const 
P_AK_MDL[64] = "models/zombie_plague/p_golden_ak47.mdl";
new const 
W_AK_MDL[64] = "models/zombie_plague/w_golden_ak47.mdl";


new const 
AK_SOUNDS[][] = { "weapons/ak47-1.wav""weapons/ak47-2.wav""weapons/ak47_clipout.wav""weapons/ak47_clipin.wav""weapons/ak47_boltpull.wav" };

new 
g_has_minigun[33], g_minigung_xenobeamg_event_minigung_playername[33][32], g_maxplayersg_primary_attackg_minigun_rldclip[33], cvar_minigun_clipcvar_minigun_ammocvar_minigun_damagecvar_minigun_oneroundcvar_plasgun_infinit;

new const 
GUNSHOT_DECALS[] = { 4142434445 };

const 
m_iClip 51;
const 
m_flNextAttack 83;
const 
m_fInReload 54;

const 
OFFSET_WEAPON_OWNER 41;
const 
OFFSET_LINUX_WEAPONS 4;
const 
OFFSET_LINUX 5;
const 
OFFSET_ACTIVE_ITEM 373;

const 
MINIGUN_KEY 014657;

const 
WEAPON_BITSUM = ((1<<CSW_SCOUT) | (1<<CSW_XM1014) | (1<<CSW_MAC10) | (1<<CSW_AUG) | (1<<CSW_UMP45) | (1<<CSW_SG550) | (1<<CSW_P90) | (1<<CSW_FAMAS) | (1<<CSW_AWP) | (1<<CSW_MP5NAVY) | (1<<CSW_M249) | (1<<CSW_M3) | (1<<CSW_M4A1) | (1<<CSW_TMP) | (1<<CSW_G3SG1) | (1<<CSW_SG552) | (1<<CSW_AK47) | (1<<CSW_GALIL));

enum
{
    
idle 0,
    
reload,
    
draw,
    
shoot1,
    
shoot2,
    
shoot3
}

public 
plugin_init()
{
    
/* Plugin register */
    
register_plugin("[ZP] Extra Item: Golden AK47"PLUGIN_VERSION"Crazy");

    
/* Item register */
    
g_minigun zp_register_extra_item(ITEM_NAMEITEM_COSTZP_TEAM_HUMAN);

    
/* Events */
    
register_event("HLTV""event_round_start""a""1=0""2=0");

    
/* Messages */
    
register_message(get_user_msgid("CurWeapon"), "message_cur_weapon");

    
/* Admin command */
    
register_concmd("zp_give_goldenak""cmd_give_goldenak"0);

    
/* Forwards */
    
register_forward(FM_UpdateClientData"fw_UpdateData_Post"1);
    
register_forward(FM_SetModel"fw_SetModel");
    
register_forward(FM_PlaybackEvent"fw_PlaybackEvent");

    
/* Ham Forwards */
    
RegisterHam(Ham_TraceAttack"worldspawn""fw_TraceAttack_Post"1);
    
RegisterHam(Ham_TraceAttack"func_breakable""fw_TraceAttack_Post"1);
    
RegisterHam(Ham_TraceAttack"func_wall""fw_TraceAttack_Post"1);
    
RegisterHam(Ham_TraceAttack"func_door""fw_TraceAttack_Post"1);
    
RegisterHam(Ham_TraceAttack"func_door_rotating""fw_TraceAttack_Post"1);
    
RegisterHam(Ham_TraceAttack"func_plat""fw_TraceAttack_Post"1);
    
RegisterHam(Ham_TraceAttack"func_rotating""fw_TraceAttack_Post"1);
    
RegisterHam(Ham_Item_Deploy"weapon_ak47""fw_Item_Deploy_Post"1);
    
RegisterHam(Ham_Item_AddToPlayer"weapon_ak47""fw_Item_AddToPlayer_Post"1);
    
RegisterHam(Ham_Item_PostFrame"weapon_ak47""fw_Item_PostFrame");
    
RegisterHam(Ham_Weapon_PrimaryAttack"weapon_ak47""fw_PrimaryAttack");
    
RegisterHam(Ham_Weapon_PrimaryAttack"weapon_ak47""fw_PrimaryAttack_Post"1);
    
RegisterHam(Ham_Weapon_Reload"weapon_ak47""fw_Reload");
    
RegisterHam(Ham_Weapon_Reload"weapon_ak47""fw_Reload_Post"1);
    
RegisterHam(Ham_TakeDamage"player""fw_TakeDamage");
    
RegisterHamBots(Ham_TakeDamage"fw_TakeDamage");

    
/* Cvars */
    
cvar_minigun_clip register_cvar("zp_goldenak47_clip""30");
    
cvar_minigun_ammo register_cvar("zp_goldenak47_ammo""90");
    
cvar_minigun_damage register_cvar("zp_goldenak47_damage""3");
    
cvar_minigun_oneround register_cvar("zp_goldenak47_one_round""0");
    
cvar_plasgun_infinit register_cvar("zp_goldenak47_unlimited""0");

    
/* Max Players */
    
g_maxplayers get_maxplayers()
}

public 
plugin_precache()
{
    
engfunc(EngFunc_PrecacheModelV_AK_MDL);
    
engfunc(EngFunc_PrecacheModelP_AK_MDL);
    
engfunc(EngFunc_PrecacheModelW_AK_MDL);

    
g_xenobeam engfunc(EngFunc_PrecacheModel"sprites/dot.spr");
    
    for (new 
0sizeof AK_SOUNDSi++)
    
engfunc(EngFunc_PrecacheSoundAK_SOUNDS[i])

    
register_forward(FM_PrecacheEvent"fw_PrecacheEvent_Post"1);
}

public 
zp_user_infected_post(id)
{
    
g_has_minigun[id] = false;
}

public 
zp_user_humanized_post(id)
{
    
g_has_minigun[id] = false;
}

public 
client_putinserver(id)
{
    
g_has_minigun[id] = false;

    
get_user_name(idg_playername[id], charsmax(g_playername[]));
}

public 
event_round_start()
{
    for (new 
id 0id <= g_maxplayersid++)
    {
        if (
get_pcvar_num(cvar_minigun_oneround))
        
g_has_minigun[id] = false;
    }
}

public 
cmd_give_goldenak(idlevelcid)
{
    if ((
get_user_flags(id) & level) != level)
        return 
PLUGIN_HANDLED;

    static 
arg[32], player;
    
read_argv(1argcharsmax(arg));
    
player cmd_target(idarg, (CMDTARGET_ONLY_ALIVE CMDTARGET_ALLOW_SELF));
    
    if (!
player)
        return 
PLUGIN_HANDLED;

    if (
g_has_minigun[player])
    {
        
client_print_color(idprint_chat"^x01[^x04ZP^x01] The ^x04%s already have the ^x04%s."g_playername[player], ITEM_NAME);
        return 
PLUGIN_HANDLED;
    }

    
give_goldenak(player);
    
    
client_print_color(playerprint_chat"^x01[^x04ZP^x01] You won a ^x04%s from ^x04%s^x01!"ITEM_NAMEg_playername[id]);

    return 
PLUGIN_HANDLED;
}

public 
message_cur_weapon(msg_idmsg_destmsg_entity)
{
    if (!
is_user_alive(msg_entity))
        return;

    if (!
g_has_minigun[msg_entity])
        return;

    if (
get_user_weapon(msg_entity) != CSW_AK47)
        return;

    if (
get_msg_arg_int(1) != 1)
        return;

    if (
get_pcvar_num(cvar_plasgun_infinit))
    {
        static 
ent;
        
ent fm_cs_get_current_weapon_ent(msg_entity);

        if (!
pev_valid(ent))
            return;

        
cs_set_weapon_ammo(entget_pcvar_num(cvar_minigun_clip));
        
set_msg_arg_int(3get_msg_argtype(3), get_pcvar_num(cvar_minigun_clip));
    }
}

public 
zp_extra_item_selected(iditemid)
{
    if (
itemid != g_minigun)
        return;

    
give_goldenak(id);

    
client_print_color(idprint_chat"^x01[^x04ZP^x01] You bought the^x04 %s^x01!"ITEM_NAME);
}

public 
fw_UpdateData_Post(idsendweaponscd_handle)
{
    if (!
is_user_alive(id))
        return 
FMRES_IGNORED;

    if (!
g_has_minigun[id])
        return 
FMRES_IGNORED;

    if (
get_user_weapon(id) != CSW_AK47)
        return 
FMRES_IGNORED;

    
set_cd(cd_handleCD_flNextAttackhalflife_time() + 0.001);

    return 
FMRES_IGNORED;
}

public 
fw_SetModel(ent, const model[])
{
    if (!
pev_valid(ent))
        return 
FMRES_IGNORED;

    if (!
equal(model"models/w_ak47.mdl"))
        return 
HAM_IGNORED;

    static 
class_name[33];
    
pev(entpev_classnameclass_namecharsmax(class_name));

    if (!
equal(class_name"weaponbox"))
        return 
FMRES_IGNORED;

    static 
ownerweapon;
    
owner pev(entpev_owner);
    
weapon find_ent_by_owner(-1"weapon_ak47"ent);

    if (!
g_has_minigun[owner] || !pev_valid(weapon))
        return 
FMRES_IGNORED;

    
g_has_minigun[owner] = false;

    
set_pev(weaponpev_impulseMINIGUN_KEY);

    
engfunc(EngFunc_SetModelentW_AK_MDL);

    return 
FMRES_SUPERCEDE;
}

public 
fw_PlaybackEvent(flagsinvokereventidFloat:delayFloat:origin[3], Float:angles[3], Float:fparam1Float:fparam2iParam1iParam2bParam1bParam2)
{
    if ((
eventid != g_event_minigun) || !g_primary_attack)
        return 
FMRES_IGNORED;

    if (!(
<= invoker <= g_maxplayers))
        return 
FMRES_IGNORED;

    
playback_event(flags FEV_HOSTONLYinvokereventiddelayoriginanglesfparam1fparam2iParam1iParam2bParam1bParam2);

    return 
FMRES_SUPERCEDE;
}

public 
fw_PrecacheEvent_Post(type, const name[])
{
    if (!
equal("events/mp5n.sc"name))
        return 
HAM_IGNORED;

    
g_event_minigun get_orig_retval()

    return 
FMRES_HANDLED;
}

public 
fw_Item_Deploy_Post(ent)
{
    if (!
pev_valid(ent))
        return 
HAM_IGNORED;

    new 
id get_pdata_cbase(entOFFSET_WEAPON_OWNEROFFSET_LINUX_WEAPONS);

    if (!
is_user_alive(id))
        return 
HAM_IGNORED;

    if (!
g_has_minigun[id])
        return 
HAM_IGNORED;

    
set_pev(idpev_viewmodel2V_AK_MDL);
    
set_pev(idpev_weaponmodel2P_AK_MDL);

    
play_weapon_anim(iddraw);

    return 
HAM_IGNORED;
}

public 
fw_Item_AddToPlayer_Post(entid)
{
    if (!
pev_valid(ent))
        return 
HAM_IGNORED;

    if (!
is_user_connected(id))
        return 
HAM_IGNORED;

    if (
pev(entpev_impulse) == MINIGUN_KEY)
    {
        
g_has_minigun[id] = true;
        
set_pev(entpev_impulse0);
    }

    return 
HAM_IGNORED;
}

public 
fw_Item_PostFrame(ent)
{
    if (!
pev_valid(ent))
        return 
HAM_IGNORED;

    new 
id get_pdata_cbase(entOFFSET_WEAPON_OWNEROFFSET_LINUX_WEAPONS);

    if (!
is_user_alive(id))
        return 
HAM_IGNORED;

    if (!
g_has_minigun[id])
        return 
HAM_IGNORED;

    static 
cvar_clipcvar_clip get_pcvar_num(cvar_minigun_clip);

    new 
clip get_pdata_int(entm_iClipOFFSET_LINUX_WEAPONS);
    new 
bpammo cs_get_user_bpammo(idCSW_AK47);

    new 
Float:flNextAttack get_pdata_float(idm_flNextAttackOFFSET_LINUX);
    new 
fInReload get_pdata_int(entm_fInReloadOFFSET_LINUX_WEAPONS);

    if (
fInReload && flNextAttack <= 0.0)
    {
        new 
temp_clip min(cvar_clip clipbpammo);

        
set_pdata_int(entm_iClipclip temp_clipOFFSET_LINUX_WEAPONS);

        
cs_set_user_bpammo(idCSW_AK47bpammo-temp_clip);

        
set_pdata_int(entm_fInReload0OFFSET_LINUX_WEAPONS);

        
fInReload 0;
    }

    return 
HAM_IGNORED;
}

public 
fw_PrimaryAttack(ent)
{
    if (!
pev_valid(ent))
        return 
HAM_IGNORED;

    new 
id get_pdata_cbase(entOFFSET_WEAPON_OWNEROFFSET_LINUX_WEAPONS);

    if (!
is_user_alive(id))
        return 
HAM_IGNORED;

    if (!
g_has_minigun[id])
        return 
HAM_IGNORED;

    if (!
cs_get_weapon_ammo(ent))
        return 
HAM_IGNORED;

    
g_primary_attack true;

    return 
HAM_IGNORED;
}

public 
fw_PrimaryAttack_Post(ent)
{
    if (!
pev_valid(ent))
        return 
HAM_IGNORED;

    new 
id get_pdata_cbase(entOFFSET_WEAPON_OWNEROFFSET_LINUX_WEAPONS);

    if (!
is_user_alive(id))
        return 
HAM_IGNORED;

    if (!
g_has_minigun[id])
        return 
HAM_IGNORED;

    if (!
cs_get_weapon_ammo(ent))
        return 
HAM_IGNORED;

    
g_primary_attack false;

    
play_weapon_anim(idrandom_num(shoot1shoot3));
    
    
emit_sound(idCHAN_WEAPONAK_SOUNDS[random_num(01)], VOL_NORMATTN_NORM0PITCH_NORM);


    return 
HAM_IGNORED;
}

public 
fw_Reload(ent)
{
    if (!
pev_valid(ent))
        return 
HAM_IGNORED;

    new 
id get_pdata_cbase(entOFFSET_WEAPON_OWNEROFFSET_LINUX_WEAPONS);

    if (!
is_user_alive(id))
        return 
HAM_IGNORED;

    if (!
g_has_minigun[id])
        return 
HAM_IGNORED;

    
g_minigun_rldclip[id] = -1;

    static 
cvar_clipcvar_clip get_pcvar_num(cvar_minigun_clip);

    new 
clip get_pdata_int(entm_iClipOFFSET_LINUX_WEAPONS);
    new 
bpammo cs_get_user_bpammo(idCSW_AK47);

    if (
bpammo <= 0)
        return 
HAM_SUPERCEDE;

    if (
clip >= cvar_clip)
        return 
HAM_SUPERCEDE;
    
    
g_minigun_rldclip[id] = clip;

    return 
HAM_IGNORED;
}

public 
fw_Reload_Post(ent)
{
    if (!
pev_valid(ent))
        return 
HAM_IGNORED;

    new 
id get_pdata_cbase(entOFFSET_WEAPON_OWNEROFFSET_LINUX_WEAPONS);

    if (!
is_user_alive(id))
        return 
HAM_IGNORED;

    if (!
g_has_minigun[id])
        return 
HAM_IGNORED;

    if (
g_minigun_rldclip[id] == -1)
        return 
HAM_IGNORED;

    
set_pdata_int(entm_iClipg_minigun_rldclip[id], OFFSET_LINUX_WEAPONS);
    
set_pdata_int(entm_fInReload1OFFSET_LINUX_WEAPONS);

    
play_weapon_anim(idreload);

    return 
HAM_IGNORED;
}

public 
fw_TakeDamage(victiminflictorattackerFloat:damagedmg_bits)
{
    if (!
is_user_alive(attacker))
        return 
HAM_IGNORED;

    if (!
g_has_minigun[attacker])
        return 
HAM_IGNORED;

    if (
get_user_weapon(attacker) != CSW_AK47)
        return 
HAM_IGNORED;

    
SetHamParamFloat(OFFSET_LINUX_WEAPONSdamage get_pcvar_float(cvar_minigun_damage));

    return 
HAM_IGNORED;
}

public 
fw_TraceAttack_Post(entattackerFloat:damageFloat:dir[3], ptrdmg_bits)
{
    if (!
is_user_alive(attacker))
        return 
HAM_IGNORED;

    if (
get_user_weapon(attacker) != CSW_AK47)
        return 
HAM_IGNORED;

    if (!
g_has_minigun[attacker])
        return 
HAM_IGNORED;

    static 
Float:end[3];
    
get_tr2(ptrTR_vecEndPosend);

    if(
ent)
    {
        
message_begin(MSG_BROADCASTSVC_TEMPENTITY)
        
write_byte(TE_DECAL)
        
engfunc(EngFunc_WriteCoordend[0])
        
engfunc(EngFunc_WriteCoordend[1])
        
engfunc(EngFunc_WriteCoordend[2])
        
write_byte(GUNSHOT_DECALS[random_num (0sizeof GUNSHOT_DECALS -1)])
        
write_short(ent)
        
message_end()
    }
    else
    {
        
message_begin(MSG_BROADCASTSVC_TEMPENTITY)
        
write_byte(TE_WORLDDECAL)
        
engfunc(EngFunc_WriteCoordend[0])
        
engfunc(EngFunc_WriteCoordend[1])
        
engfunc(EngFunc_WriteCoordend[2])
        
write_byte(GUNSHOT_DECALS[random_num (0sizeof GUNSHOT_DECALS -1)])
        
message_end()
    }

    
message_begin(MSG_BROADCASTSVC_TEMPENTITY )
    
write_byte(c)
    
write_short(attacker 0x1000)
    
engfunc(EngFunc_WriteCoordend[0])
    
engfunc(EngFunc_WriteCoordend[1])
    
engfunc(EngFunc_WriteCoordend[2])
    
write_short(g_xenobeam)
    
write_byte(1// framerate
    
write_byte(5// framerate
    
write_byte(2// life
    
write_byte(5)  // width
    
write_byte(0)// noise
    
write_byte(255)// r, g, b
    
write_byte(215)// r, g, b
    
write_byte(0)// r, g, b
    
write_byte(100)    // brightness
    
write_byte(150)    // speed
    
message_end()

    return 
HAM_IGNORED;
}

give_goldenak(id)
{
    
drop_primary(id);

    
g_has_minigun[id] = true;

    new 
weapon fm_give_item(id"weapon_ak47");

    
cs_set_weapon_ammo(weaponget_pcvar_num(cvar_minigun_clip));
    
cs_set_user_bpammo(idCSW_AK47get_pcvar_num(cvar_minigun_ammo));
}

play_weapon_anim(idframe)
{
    
set_pev(idpev_weaponanimframe);

    
message_begin(MSG_ONE_UNRELIABLESVC_WEAPONANIM, .player id)
    
write_byte(frame)
    
write_byte(pev(idpev_body))
    
message_end()
}

drop_primary(id)
{
    static 
weapons[32], num;
    
get_user_weapons(idweaponsnum);

    for (new 
0numi++)
    {
        if (
WEAPON_BITSUM & (1<<weapons[i]))
        {
            static 
wname[32];
            
get_weaponname(weapons[i], wnamesizeof wname 1);

            
engclient_cmd(id"drop"wname);
        }
    }
}


stock fm_give_item(index, const item[])
{
    if (!
equal(item"weapon_"7) && !equal(item"ammo_"5) && !equal(item"item_"5) && !equal(item"tf_weapon_"10))
        return 
0;

    new 
ent engfunc(EngFunc_CreateNamedEntityengfunc(EngFunc_AllocStringitem));
    if (!
pev_valid(ent))
        return 
0;

    new 
Float:origin[3];
    
pev(indexpev_originorigin);
    
set_pev(entpev_originorigin);
    
set_pev(entpev_spawnflagspev(entpev_spawnflags) | SF_NORESPAWN);
    
dllfunc(DLLFunc_Spawnent);

    new 
save pev(entpev_solid);
    
dllfunc(DLLFunc_Touchentindex);
    if (
pev(entpev_solid) != save)
        return 
ent;

    
engfunc(EngFunc_RemoveEntityent);

    return -
1;
}

stock fm_cs_get_current_weapon_ent(id)
{
    if (
pev_valid(id) != 2)
        return -
1;
    
    return 
get_pdata_cbase(idOFFSET_ACTIVE_ITEMOFFSET_LINUX);


Przeczytaj cały wpis

Odnośnik do komentarza
Udostępnij na innych stronach

Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
 Udostępnij

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...