Raised This Month: $32 Target: $400
 8% 

Colored Nightvision Help


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
forumm
Senior Member
Join Date: Nov 2013
Old 06-05-2014 , 10:55   Colored Nightvision Help
Reply With Quote #1

I want this add-in menu in case you want to collect colors

Colors In case you want to use a normal menu

sample; I want to use this way

PHP Code:

menu_additem
(menu"\w200 Hp + 100 Colete""1"0);

case 
1:
        {
        } 
PHP Code:

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

#define PLUGIN "[BIO] Colored NightVision"
#define VERSION "1.0"
#define AUTHOR "Slavvkko"

#define OFFSET_TEAM 114
#define OFFSET_NVG 129

new const g_Colors[][3] =
{
//    R    G    B
    
{150,    0,    0},    // 1
    
{0,    150,    0},    // 2
    
{0,    0,    150},    // 3
    
{0,    150,    150},    // 4
    
{102,    0,    255},    // 5
    
{202,    31,    123},    // 6
    
{255,    255,    0}    // 7
};

new 
g_UserColor[33][3];
new 
bool:g_Chose[33];
new 
bool:g_nvision[33];
new 
bool:g_nvisionenabled[33];
new 
g_playername[33][32];
new 
g_maxplayers;

// SaveColor written by type Zombie Plague 4.3
const MAX_STATS_SAVED 64;
new 
db_name[MAX_STATS_SAVED][32];
new 
db_user_nvg_color[MAX_STATS_SAVED][3];
new 
bool:db_chose[MAX_STATS_SAVED];
new 
db_slot_i;

new 
cvar_autonvgcvar_radius;

public 
plugin_init()
{
    
register_plugin(PLUGINVERSIONAUTHOR);
    
register_dictionary("bio_colored_nightvision.txt");
    
    
register_logevent("logevent_round_end"2"1=Round_End");
    
    
register_clcmd("say /nvg""clcmd_nvg");
    
register_clcmd("say_team /nvg""clcmd_nvg");
    
register_clcmd("nightvision""clcmd_nightvision");
    
    
cvar_autonvg get_cvar_pointer("bh_autonvg");
    
cvar_radius register_cvar("nvg_radius""80");
    
    
RegisterHam(Ham_Spawn"player""fw_PlayerSpawn_Post"1);
    
RegisterHam(Ham_Killed"player""fw_PlayerKilled");
    
register_forward(FM_ClientUserInfoChanged"fw_ClientUserInfoChanged");
    
    
g_maxplayers get_maxplayers();
    
    
register_message(get_user_msgid("NVGToggle"), "message_NVGToggle");
}

public 
logevent_round_end()
{
    static 
id;
    for (
id 1id <= g_maxplayersid++)
        
SaveColor(id);
}

public 
fw_PlayerSpawn_Post(id)
{
    if (!
is_user_alive(id) || !fm_cs_get_user_team(id))
        return;
        
    
remove_task(id);
    
g_nvision[id] = false;
}

public 
fw_PlayerKilled(victimattackershouldgib)
{
    
g_nvision[victim] = false;
    
set_task(0.1"spec_nvision"victim);
}

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

public 
client_putinserver(id)
{
    
get_user_name(idg_playername[id], charsmax(g_playername[]));
    
    
// Set color 2
    
g_UserColor[id] = g_Colors[1];
    
g_Chose[id] = false;
    
    
LoadColor(id);
}

public 
client_disconnect(id)
{
    
SaveColor(id);
    
remove_task(id);
}

public 
event_infect(victimattacker)
{
    if (!
g_Chose[victim])
        
ShowMenu(victim);
    
    if (
get_pcvar_num(cvar_autonvg))
    {
        
g_nvisionenabled[victim] = true;
        
remove_task(victim);
        
set_task(0.1"set_user_nvision"victim__"b");
    }
    
    
g_nvision[victim] = true;
}

public 
message_NVGToggle()
{
    return 
PLUGIN_HANDLED;
}

public 
clcmd_nvg(id)
{
    
ShowMenu(id);
    
    return 
PLUGIN_HANDLED;
}

public 
clcmd_nightvision(id)
{
    if (
g_nvision[id] || fm_get_user_nvg(id))
    {
        
g_nvisionenabled[id] = !(g_nvisionenabled[id]);
        
        
remove_task(id);
        if (
g_nvisionenabled[id])
            
set_task(0.1"set_user_nvision"id__"b");
    }
    
    return 
PLUGIN_HANDLED;
}

ShowMenu(id)
{
    static 
iMenuszMenu[64], iBuffer[2];
    
    
formatex(szMenucharsmax(szMenu), "%L"id"NVG_MENUTITLE");
    
    
iMenu menu_create(szMenu"handler_nvg");
    
    for (
0sizeof(g_Colors); i++)
    {
        
formatex(szMenucharsmax(szMenu), "NVG_COLOR_%d"1);
        
format(szMenucharsmax(szMenu), "%L"idszMenu);
        
Buffer[0] = i;
        
menu_additem(iMenuszMenuBuffer);
    }
    
    
formatex(szMenucharsmax(szMenu), "%L"id"NVG_MENUBACK");
    
menu_setprop(iMenuMPROP_BACKNAMEszMenu);
    
formatex(szMenucharsmax(szMenu), "%L"id"NVG_MENUNEXT");
    
menu_setprop(iMenuMPROP_NEXTNAMEszMenu);
    
formatex(szMenucharsmax(szMenu), "%L"id"NVG_MENUEXIT");
    
menu_setprop(iMenuMPROP_EXITszMenu);
    
    
menu_display(idiMenu);
}

public 
handler_nvg(idiMenuitem)
{
    if (
item == MENU_EXIT)
    {
        
menu_destroy(iMenu);
        return 
PLUGIN_HANDLED;
    }
    
    static 
Buffer[2], tempitemid;
    
menu_item_getinfo(iMenuitemtempBuffercharsmax(Buffer), __temp);
    
itemid Buffer[0];
    
    
g_UserColor[id] = g_Colors[itemid];
    
    
g_Chose[id] = true;
    
    
menu_destroy(iMenu);
    return 
PLUGIN_HANDLED;
}

SaveColor(id)
{
    if (!
g_Chose[id])
        return;

    if (
db_name[id][0] && !equal(g_playername[id], db_name[id]))
    {
        if (
db_slot_i >= sizeof(db_name))
            
db_slot_i g_maxplayers 1;
        
        
copy(db_name[db_slot_i], charsmax(db_name[]), db_name[id]);
        
db_user_nvg_color[db_slot_i] = db_user_nvg_color[id];
        
db_chose[db_slot_i] = g_Chose[id];
        
db_slot_i++;
    }
    
    
copy(db_name[id], charsmax(db_name[]), g_playername[id]);
    
db_user_nvg_color[id] = g_UserColor[id];
    
db_chose[id] = g_Chose[id];
}

LoadColor(id)
{
    static 
i;
    for (
0sizeof(db_name); i++)
    {
        if (
equal(g_playername[id], db_name[i]))
        {
            
g_Chose[id] = db_chose[i];
            if (
g_Chose[id])
                
g_UserColor[id] = db_user_nvg_color[i];
                
            return;
        }
    }
}

public 
spec_nvision(id)
{
    if (!
is_user_connected(id) || is_user_alive(id))
        return;
    
    
g_nvision[id] = true;
    
g_nvisionenabled[id] = true;
    
remove_task(id);
    
set_task(0.1"set_user_nvision"id__"b");
}

public 
set_user_nvision(id)
{
    static 
origin[3];
    
get_user_origin(idorigin);
    
    
message_begin(MSG_ONE_UNRELIABLESVC_TEMPENTITY_id);
    
write_byte(TE_DLIGHT);
    
write_coord(origin[0]);
    
write_coord(origin[1]);
    
write_coord(origin[2]);
    
write_byte(get_pcvar_num(cvar_radius));
    
write_byte(g_UserColor[id][0]);
    
write_byte(g_UserColor[id][1]);
    
write_byte(g_UserColor[id][2]);
    
write_byte(2);
    
write_byte(0);
    
message_end();
}

stock fm_cs_get_user_team(id)
{
    return 
get_pdata_int(idOFFSET_TEAM);
}

stock fm_get_user_nvg(index)
{
    return 
get_pdata_int(indexOFFSET_NVG);

forumm is offline
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 15:02.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode