Welcome Soldier.



[Trouble in Terrorist Town] [TTT] Item: Teleport Gun

GabsHp Sin conexión
Lord Gabs
#1
[TTT] Item: Teleport Gun
Me gustaría que se revisara el código este, y que se tomara en cuenta como Item para traidor en el [TTT]. (No lo pongo en la zona de scripting porque nadie pela esa zona xd)
Es un plugin sencillo que se me ocurrió, y llevé a cabo mediante la ayuda de Totopizza (créditos pa él por el stock del screen fade y me enseño lo de los origin aparte de la corrección de un putero de errores xd)

Descripción fast: Un item para traidor, una Deagle de teletransporte. Al golpear a cualquier usuario con esta Deagle, intercambiarás de lugar con la victima, permitiéndote un escape de una situación difícil. Así como también le aplicará una ceguera por ciertos segundos para que la victima no sepa quien ha sido el que usó el arma en contra de él. En caso de ser usada por algún otro jugador que no sea Traidor, este explotará Pacman.
Dejó el código aquí, para quien guste revisarlo. Se aceptan críticas, sugerencias, ideas y mentadas de madre:

Código PHP:
#include <amxmodx>
#include <engine>
#include <cs_weapons_api>
#include <ttt>

//CREDITOS: Totopizza

#define WEAPON_CSWID CSW_DEAGLE
#define WEAPON_NAME "weapon_deagle"

new g_szModels[3][TTT_FILELENGHT];
new 
g_TpGun;
new 
cvar_weapon_damagecvar_weapon_ammocvar_weapon_clipcvar_weapon_pricecvar_weapon_reloadcvar_weapon_recoilcvar_weapon_blindg_MaxPlayers;
new 
g_iAttacker_Coord[33] = {-1, -1, ...}, g_iVictim_Coord[33] = {-1, -1, ...};
new 
Float:g_fPlayerOrigin[33][3];
new const 
tp_wav[] = { "events/tutor_msg.wav" } 
new g_msgScreenFade;


public 
plugin_precache()
{
    if(!amx_load_setting_string(TTT_SETTINGSFILE"TELEPORT GUN""MODEL_V"g_szModels[0], charsmax(g_szModels[])))
    {
        g_szModels[0] = "models/ttt/v_tpgun.mdl";
        amx_save_setting_string(TTT_SETTINGSFILE"TELEPORT GUN""MODEL_V"g_szModels[0]);
    }
    precache_model(g_szModels[0]);
    
    
if(!amx_load_setting_string(TTT_SETTINGSFILE"TELEPORT GUN""MODEL_P"g_szModels[1], charsmax(g_szModels[])))
    {
        g_szModels[1] = "models/ttt/p_tpgun.mdl";
        amx_save_setting_string(TTT_SETTINGSFILE"TELEPORT GUN""MODEL_P"g_szModels[1]);
    }
    precache_model(g_szModels[1]);
    
    
if(!amx_load_setting_string(TTT_SETTINGSFILE"TELEPORT GUN""MODEL_W"g_szModels[2], charsmax(g_szModels[])))
    {
        g_szModels[2] = "models/ttt/w_tpgun.mdl";
        amx_save_setting_string(TTT_SETTINGSFILE"TELEPORT GUN""MODEL_W"g_szModels[2]);
    }
    precache_model(g_szModels[2]);
    precache_sound(tp_wav);
}

public 
plugin_init()
{
    register_plugin("[TTT] Item: Teleport Gun"TTT_VERSION"GabsHp");
    

    
    cvar_weapon_clip    
my_register_cvar("ttt_tpgun_clip",        "1",    "Teleport Gun clip(s). (Default: 2)");
    cvar_weapon_ammo    my_register_cvar("ttt_tpgun_ammo",        "0",    "Teleport Gun ammo (Default: 0)");
    cvar_weapon_damage    my_register_cvar("ttt_tpgun_damage",    "0.0",    "Teleport Gun damage multiplier. (Default: 0.0)");
    cvar_weapon_reload    my_register_cvar("ttt_tpgun_reload",    "0.0",    "Teleport Gun reload speed. (Default: 0.0)");
    cvar_weapon_recoil    my_register_cvar("ttt_tpgun_recoil",    "0.0",    "Teleport Gun recoil. (Default: 0.0)");
    cvar_weapon_price    my_register_cvar("ttt_tpgun_price",    "2",    "Teleport Gun price. (Default: 3)");
    cvar_weapon_blind    my_register_cvar("ttt_tpgun_blind",    "1",    "Le provoca ceguera por cierto tiempo a la victima");

    g_MaxPlayers get_maxplayers();
    g_msgScreenFade get_user_msgid("ScreenFade");
}

public 
ttt_plugin_cfg()
{
    g_FakeGolden ttt_buymenu_add"Teleport Gun"get_pcvar_num(cvar_weapon_price), PC_TRAITOR);
}

public 
ttt_item_selected(iditemname[], price)
{
    
    
if(g_TpGun== item)
    {    
    
            
if(user_has_weapon(idWEAPON_CSWID))
                engclient_cmd(id"drop"WEAPON_NAME);
            
            
static data[STOREABLE_STRUCTURE];
            if(!data[STRUCT_CSWA_CSW])
            {
                data[STRUCT_CSWA_ITEMID] = g_FakeGolden;
                data[STRUCT_CSWA_CSW] = WEAPON_CSWID;
                data[STRUCT_CSWA_CLIP] = get_pcvar_num(cvar_weapon_clip);
                data[STRUCT_CSWA_MAXCLIP] = get_pcvar_num(cvar_weapon_clip);
                data[STRUCT_CSWA_AMMO] = get_pcvar_num(cvar_weapon_ammo);
                data[STRUCT_CSWA_STACKABLE] = true;
                data[STRUCT_CSWA_SILENCED] = -1;
                data[STRUCT_CSWA_DAMAGE] = _:get_pcvar_float(cvar_weapon_damage);
                data[STRUCT_CSWA_RELOADTIME] = _:get_pcvar_float(cvar_weapon_reload);
                data[STRUCT_CSWA_RECOIL] = _:get_pcvar_float(cvar_weapon_recoil);
                data[STRUCT_CSWA_MODEL_V] = g_szModels[0];
                data[STRUCT_CSWA_MODEL_P] = g_szModels[1];
                data[STRUCT_CSWA_MODEL_W] = g_szModels[2];
            }
            
            cswa_give_specific
(iddata);
            
            client_print_color
(idprint_team_default"%s Compraste: !g'Teleport Gun'"TTT_TAG);
            return PLUGIN_HANDLED;
    

    
}
    return PLUGIN_CONTINUE;
}


public 
cswa_damage(weapon_idvictimattackerFloat:damage)
{
    if(get_weapon_edict(weapon_idREPL_CSWA_ITEMID) == g_TpGun)
    {
        
        
if(ttt_get_playerstate(attacker) != PC_TRAITOR ){
            new szAttackerName[32]; get_user_name(attackerszAttackerName31);
            ExecuteHamB(Ham_Killedattackerattacker2);
            client_print_color(attackerprint_team_default"%s !nExplotaste por tratar de usar un arma exclusiva de traidores");
            client_print_color(0print_team_default"%s !g%s Exploto al tratar de usar una Teleport Gun"TTT_TAGszAttackerName);
            return HAM_IGNORED
        
}else{
        
            
            
new Float:vAttacker[3], Float:vVictim[3];
            entity_get_vector(attackerEV_VEC_originvAttacker);
            entity_get_vector(victimEV_VEC_originvVictim);
        
            entity_set_origin
(victimvAttacker);
            entity_set_origin(attackervVictim);
        
            
new szVictimName[32]; get_user_name(victimszVictimName31);
            client_print_color(attackerprint_team_default"%s ^x01Has sido intercambiado de lugar con ^x04%s "TTT_TAGszVictimName);
            client_print_color(victimprint_team_default"%s ^x01Has sido intercambiado de lugar mediante una ^x04Teleport Gun"TTT_TAG);
            emit_sound (attackerCHAN_AUTOtp_wavVOL_NORMALATTN_NORM0PITCH_NORM)
            emit_sound (victimCHAN_AUTOtp_wavVOL_NORMALATTN_NORM0PITCH_NORM)
            
            
if(get_pcvar_num(cvar_weapon_blind) == 1) {
                
                set_user_screenfade
(victim);
            }
            
        
}    
    
}
}

stock set_user_screenfade(idrrr=255ggg=255bbb=255alpha=5duration=4)
{
    message_begin(id MSG_ONE_UNRELIABLE MSG_BROADCASTg_msgScreenFade, .player id);
    write_shortduration 4096 );
    write_shortduration 4096 );
    
    write_short
0x0000 );
    write_byterrr );
    write_byteggg );
    write_bytebbb );
    write_bytealpha );
    message
}  
Responder





Usuarios navegando en este tema:
1 invitado(s)



Sobre M X E M E X I C O

Comunidad MxE © 2020 - La mejorar comunidad de Counter Strike 1.6 .