Compra admin en admin.mxemexico.com - !

Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
[APORTE] [TTT] Fake Golden

#1
Aporte/sugerencia para el servidor Trouble in Terrorist Town.


Créditos a:
  • Sthony (autor original del plugin Inverse Golden
  • Totopizza (completa asistencia y guía a la hora de recrear el plugin)
Este plugin es un edit del plugin Inverse Golden, puesto que usé la mayor parte del código original como guía. 


Descripción: Un item para traidor, de nombre Fake Golden. Lo que hace en pocas palabras es marcar como traidores 
a los inocentes que sean atacados con este item. 


Como sabrán, el nuevo [TTT] maneja un item de Detective llamado Golden Deagle que al atacar a los Traidores les crea un aura/glow Naranja para
que todos los jugadores que lo vean sepan que es un Traidor. Pues el item Fake Golden les creará el mismo glow a los Inocentes que sean 
golpeados con este arma, para así confundir a los demás y hacer que lo asesinen o desconfíen de él.



¿Qué pasa si le doy a un Inocente con la Fake Golden?
El inocente tomará un Glow Naranja identico al Glow de los traidores.
Pero los traidores lo mirarán de un color Amarillo para no confundirlo con sus compañeros.

¿Qué pasa si le doy a un Detective con la Fake Golden?
No pasará absolutamente nada, solo te mandará un mensaje advirtiendote que esa arma no funciona en detectives.

¿Qué pasa si le doy a un Traidor con la Fake Golden?
Al intentar darle con la Fake Golden a tu compañero, provocarás tu propia muerte explotando.
El plugin maneja una Cvar de TeamKill, en caso de estar activada, tu compañero también explotará al ser atacado con el item.
¿Qué pasa si un usuario que NO ES TRAIDOR usa el arma?
El usuario explotará al intentar usar el arma.

Aquí dejo el código abajo, para que lo pueda leer a quien le interese. Puede contener errores puesto que no ha sido probado aún.
Aclaración.. Ajustar el RGB del glow para que sea identico al del servidor. 


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

#define WEAPON_CSWID CSW_DEAGLE
#define WEAPON_NAME "weapon_deagle"

new g_szModels[3][TTT_FILELENGHT];
new 
g_FakeGolden;
new 
bool:g_iGlowing[33];
new 
cvar_weapon_damagecvar_weapon_ammocvar_weapon_clipcvar_weapon_pricecvar_weapon_reloadcvar_weapon_recoil
cvar_weapon_teamkillg_MaxPlayers;

public 
plugin_precache()
{
    if(!
amx_load_setting_string(TTT_SETTINGSFILE"FAKE GOLDEN""MODEL_V"g_szModels[0], charsmax(g_szModels[])))
    {
        
g_szModels[0] = "models/ttt/v_golden.mdl";
        
amx_save_setting_string(TTT_SETTINGSFILE"FAKE GOLDEN""MODEL_V"g_szModels[0]);
    }
    
precache_model(g_szModels[0]);
    
    if(!
amx_load_setting_string(TTT_SETTINGSFILE"FAKE GOLDEN""MODEL_P"g_szModels[1], charsmax(g_szModels[])))
    {
        
g_szModels[1] = "models/ttt/p_golden.mdl";
        
amx_save_setting_string(TTT_SETTINGSFILE"FAKE GOLDEN""MODEL_P"g_szModels[1]);
    }
    
precache_model(g_szModels[1]);
    
    if(!
amx_load_setting_string(TTT_SETTINGSFILE"FAKE GOLDEN""MODEL_W"g_szModels[2], charsmax(g_szModels[])))
    {
        
g_szModels[2] = "models/ttt/w_golden.mdl";
        
amx_save_setting_string(TTT_SETTINGSFILE"FAKE GOLDEN""MODEL_W"g_szModels[2]);
    }
    
precache_model(g_szModels[2]);
}

public 
plugin_init()
{
    
register_plugin("[TTT] Item: Fake Golden"TTT_VERSION"Sthony & GabsHp'");
    
    
register_forward(FM_AddToFullPack"AddToFullPackPost",1);
    
    
cvar_weapon_clip    my_register_cvar("ttt_fake_golden_clip",        "1",    "Fake Golden clip(s). (Default: 2)");
    
cvar_weapon_ammo    my_register_cvar("ttt_fake_golden_ammo",        "1",    "Fake Golden ammo (Default: 0)");
    
cvar_weapon_damage    my_register_cvar("ttt_fake_golden_damage",    "0.0",    "Fake Golden damage multiplier. (Default: 0.0)");
    
cvar_weapon_reload    my_register_cvar("ttt_fake_golden_reload",    "0.0",    "Fake Golden reload speed. (Default: 0.0)");
    
cvar_weapon_recoil    my_register_cvar("ttt_fake_golden_recoil",    "0.0",    "Fake Golden recoil. (Default: 0.0)");
    
cvar_weapon_price    my_register_cvar("ttt_fake_golden_price",    "2",    "Fake Golden price. (Default: 3)");
    
cvar_weapon_teamkill    my_register_cvar("ttt_fake_golden_teamkill",    "1"    "Tu compañero explotara si le disparas");
    
    
g_MaxPlayers get_maxplayers();
}

public 
ttt_plugin_cfg()
{
    
g_FakeGolden ttt_buymenu_add"Fake Golden"get_pcvar_num(cvar_weapon_price), PC_TRAITOR);
}

public 
ttt_gamemode(gamemode)
   
    if
(gamemode == GAME_ENDED || gamemode == GAME_RESTARTING)
 
      
        for
( new 1<= g_MaxPlayersi++ )
 
       {
 
           if(g_iGlowing[i])
 
           {
 
               g_iGlowing[i] = false;
 
           }
 
       }
 
   }
}

public 
ttt_item_selected(iditemname[], price)
{    
    if(
g_InverseGolden == 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'Fake Golden'"TTT_TAG);
            return 
PLUGIN_HANDLED;
    

    }
    return 
PLUGIN_CONTINUE;
}

public 
cswa_damage(weapon_idvictimattackerFloat:damage)
{
    if(
get_weapon_edict(weapon_idREPL_CSWA_ITEMID) == g_FakeGolden)
    {
        
        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 Fake Golden"TTT_TAGszAttackerName);
            return 
HAM_IGNORED
    
}

        switch(
ttt_get_playerstate(victim))
        {
 
                       new szAttackerName[32]; get_user_name(attackerszAttackerName31);
 
                       new szVictimName[32]; get_user_name(victimszVictimName31);
            case 
PC_INNOCENT:
            {
                
g_iGlowing[victim] = true;
                
client_print_color(victimprint_team_default"%s !nFuiste marcado como !gTraidor falso !ncon una !gFake Golden"TTT_TAG);
            }
            case 
PC_TRAITOR: {
                if(
get_pcvar_num(cvar_weapon_teamkill)) == {
                    
                    
ExecuteHamB(Ham_Killedvictimattacker2);
                    
client_print_color(victimprint_team_default"%s !nFuiste asesinado con una !gFake Golden !npor !g%s."TTT_TAGszAttackerName);
                    
                    
client_print_color(0print_team_default"%s !nUna !gFake Golden!n exploto en la mano de !g%s !npor matar a su compañero !g%s"TTT_TAGszAttackerNameszVictimName);
                }else{
                    
ExecuteHamB(Ham_Killedattackerattacker2);
                    
client_print_color(0print_team_default"%s !nUna !gFake Golden!n exploto en la mano de !g%s !npor intentar matar a su compañero"TTT_TAGszAttackerName);

                }
            }
            case 
PC_DETECTIVE: {
                
client_print_color(attackerprint_team_default"%s !nNo puedes marcar!gDETECTIVES !ncon esta arma"TTT_TAG);
            }
        }
    }
}
public 
AddToFullPackPost(es_handleeenthosthostflagsplayerpSet)
{
    if (!
player)
        return 
FMRES_IGNORED;


    if (
g_iGlowing[ent] && ttt_get_playerstate(ent) == PC_INNOCENT )
    {
        
set_es(es_handleES_RenderFxkRenderFxGlowShell);

        if(
ttt_get_playerstate(host) == PC_TRAITOR)
        
            
//SETEA UN COLOR DIFERENTE QUE VERÁN LOS TRAIDORES REALES PARA NO CONFUNDIRSE
            
set_es es_handleES_RenderColor, { 0255} );
        else
            
//SETEA EL GLOW DE TRAIDOR FAKE QUE VERÁN LOS DEMAS
            
set_es es_handleES_RenderColor, { 255255} );
    }
    
    return 
FMRES_IGNORED;







Kappa
Gracias por:

#2
ya que esta muy detallado por aca
el ROB1N anda baneando a lo tonto osea si es admi que no se pase[img=20x20]data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7[/img][img=20x20]data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7[/img][img=20x20]data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7[/img][img=20x20]data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7[/img][img=20x20]data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7[/img] bueno solo digo va o/
:yeah: Bones
Gracias por:


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)