свечение модели

cruze

Только чтение
Заблокированные
Пользователь
Регистрация
16 Авг 2017
Сообщения
36
Симпатии
0
Предупреждения
400
Пол
Мужской
Уважаемые, что отвечает за свечение данной модели? не могу найти в исходнике, хочу взять этот код и приделать к другой модели
Код:
/*
    Плагин: VIP Bonus time
    Автор: DUKKHAZ0R | Сайт: http://aimbat.ru/plugins/
    
    Описание:
    В нужное время, к примеру 30/08/2015 в 18:00 на карте появляются 4 сундука. Перед появлением сундуков сверху висит худ отсчет времени.
    Как только все четыре сундука будут найдены, то произойдет отсчет о розыгрыше между ними, отсчет будет писать снизу экрана 10 секунд.
    Победителю выскочит motd окно с поздравлениями и будет dhud оповещение по середине экрана (все это будут видеть).
    Победитель пишется в лог файл: addons/amxmodx/logs/winner.log
    По умолчанию точки расставлены на 10-ти картах, но администратор с флагом ADMIN_RCON сможет расставить точки через команду: amx_ps_spawn
    
    Квары:
    bonus_time "18:00:00 30/08/2015" - Время спавна сундуков на карте.
    
*/

#include <amxmodx>
#include <engine>
#include <dhudmessage>

#define MENU_LEVEL_ACCESS ADMIN_RCON
#define SIZE_SPAWN 4    //Сколько сундучков будет спавнить.
//#define FIX_TIME        //Раскомментировать, если сундуки появляются на 1 час раньше розыгрыша.

new const PREFIX[] = "^1[^4BonusTime^1]";

new bool:g_bBonusEnable, bool:g_bRandomEnable, bool:g_bHasBonus[33], g_iPlayerId[SIZE_SPAWN], Float:g_fvOrigin[SIZE_SPAWN][3];
new g_iCaseCount, g_pCvarTime, gHudSync, g_szCfgDir[96], g_iRandomCounter = 10;

public plugin_init()
{
    register_plugin("VIP bonus time", "1.0", "DUKKHAZ0R");
    register_cvar("vip_bonustime", "1.0", FCVAR_SERVER|FCVAR_SPONLY);
    
    register_touch("info_present", "player", "fw_TouchPresent");
    register_clcmd("amx_ps_spawn", "ClCmdSpawnMenu");
    
    g_pCvarTime = register_cvar("bonus_time", "04:00 08/05/2015");
    gHudSync = CreateHudSyncObj();
}

public plugin_precache()
    precache_model("models/supplybox.mdl");

public client_disconnect(id)
    g_bHasBonus[id] = false;

public plugin_cfg()
{
    if(!get_overtime())
    {
        log_amx("Current time bigger then time in cvar!");
        pause("ad");
    }
    new szMap[32]; get_mapname(szMap, charsmax(szMap));
    get_localinfo("amxx_configsdir", g_szCfgDir, charsmax(g_szCfgDir));
    formatex(g_szCfgDir, charsmax(g_szCfgDir), "%s/presents_origin/%s.ini", g_szCfgDir, szMap);
    
    if(!file_exists(g_szCfgDir))
    {
        log_amx("Can't find origin for this map! Stopped.");
        pause("ad");
    }
    new i, fp, szLine[64], szOrigin[3][10];
    fp = fopen(g_szCfgDir, "rt");
    
    while(g_iCaseCount < SIZE_SPAWN && fp && !feof(fp))
    {
        fgets(fp, szLine, charsmax(szLine));
        if(szLine[0] && szLine[0] != ';' && parse(szLine, szOrigin[0], charsmax(szOrigin[]), szOrigin[1], charsmax(szOrigin[]), szOrigin[2], charsmax(szOrigin[])))
        {
            for(i = 0; i < 3; i++) g_fvOrigin[g_iCaseCount][i] = str_to_float(szOrigin[i]);
            ++g_iCaseCount;
        }
    }
    fclose(fp);
    set_task(1.0, "Informer", 77123, .flags="b");
}

public Informer(taskId)
{
    new iOverTime = get_overtime();
    
    if(iOverTime < 1 && g_bBonusEnable)
    {
        if(g_bRandomEnable) ShowRandomHudInfo();
        else
        {
            set_dhudmessage(0, 255, 0, -1.0, 0.06, 0, 6.0, 1.0);
            show_dhudmessage(0, "Внимание! Сундуки появились на карте!^nИщите их!");
        }
        return;
    }
    else if(iOverTime < 1 && !g_bBonusEnable)
    {
        g_bBonusEnable = true;
        SpawnPresents();
    }
    
    static iHour, iMinute, iSecond, iDay, iLen, szMessage[192];
    iDay = iOverTime / 86400;
    iHour = iOverTime % 86400 / 3600;
    iMinute = iOverTime % 86400 % 3600 / 60;
    iSecond = iOverTime % 86400 % 3600 % 60;
    
    iLen = formatex(szMessage, charsmax(szMessage), "Розыгрыш VIP через ");
    if(iDay)     iLen += formatex(szMessage[iLen], charsmax(szMessage) - iLen, "%d дней ", iDay);
    if(iHour)     iLen += formatex(szMessage[iLen], charsmax(szMessage) - iLen, "%d часов ", iHour);
    if(iMinute) iLen += formatex(szMessage[iLen], charsmax(szMessage) - iLen, "%d минут ", iMinute);
    if(iSecond) iLen += formatex(szMessage[iLen], charsmax(szMessage) - iLen, "%d секунд", iSecond);
    set_hudmessage(255, 0, 0, -1.0, 0.08, 0, 6.0, 1.0);
    ShowSyncHudMsg(0, gHudSync, szMessage);
}

public ClCmdSpawnPresents(id)
{
    g_bBonusEnable = true;
    SpawnPresents();
    return PLUGIN_HANDLED;
}

public ClCmdSpawnMenu(id)
{
    if(!(get_user_flags(id) & MENU_LEVEL_ACCESS))
        return;
    
    new menu = menu_create("\yVIP Bonus time:", "MenuSpawn");
    
    menu_additem(menu, "Добавить эту позицию");
    menu_additem(menu, "Удалить последнюю позицию");
    menu_additem(menu, "Сохранить позиции");
    menu_display(id, menu);
}

public MenuSpawn(id, menu, iItem)
{
    switch(iItem)
    {
        case 0:
        {
            if(g_iCaseCount >= SIZE_SPAWN)
            {
                ChatColor(id, "%s Превышен лимит на количество подарков.", PREFIX);
                return PLUGIN_HANDLED;
            }
            entity_get_vector(id, EV_VEC_origin, g_fvOrigin[g_iCaseCount++]);
            ChatColor(id, "%s Точка успешно сохранена.", PREFIX);
            ClCmdSpawnMenu(id);
        }
        case 1:
        {
            ChatColor(id, "%s Точка успешно удалена.", PREFIX);
            g_iCaseCount--;
            ClCmdSpawnMenu(id);
        }
        case 2:
        {
            delete_file(g_szCfgDir);
            new szText[64];
            for(new i; i < g_iCaseCount; i++)
            {
                formatex(szText, charsmax(szText), "^"%f^" ^"%f^" ^"%f^"", g_fvOrigin[i][0], g_fvOrigin[i][1], g_fvOrigin[i][2]);
                write_file(g_szCfgDir, szText, i);
            }
            ChatColor(id, "^4[VBT] ^1Точки успешно сохранены.");
            ClCmdSpawnMenu(id);
        }
        case MENU_EXIT: {}
    }
    menu_destroy(menu);
    return PLUGIN_HANDLED;
}

public SpawnPresents()
{
    for(new i; i < g_iCaseCount; i++)
    {
        new iEnt = create_entity("info_target");
        
        if(!is_valid_ent(iEnt))
            continue;
        
        entity_set_vector(iEnt, EV_VEC_origin, g_fvOrigin[i]);
        entity_set_string(iEnt, EV_SZ_classname, "info_present");
        entity_set_int(iEnt, EV_INT_solid, SOLID_TRIGGER);
        entity_set_int(iEnt, EV_INT_movetype, MOVETYPE_NONE);
        entity_set_model(iEnt, "models/supplybox.mdl");
        entity_set_size(iEnt, Float:{-16.0,-16.0,-16.0}, Float:{16.0,16.0,16.0});
        drop_to_floor(iEnt);
    }
}

public ShowRandomHudInfo()
{
    if(g_iRandomCounter < 1)
    {
        remove_task(77123);
        GiveRandomWinner();
    }
    set_hudmessage(255, 212, 0, -1.0, 0.78, 0, 6.0, 1.0);
    ShowSyncHudMsg(0, gHudSync, "Выбор рандомного победителя через %d сек.", --g_iRandomCounter);
}

stock GiveRandomWinner()
{
    new pPlayer = g_iPlayerId[random(g_iCaseCount)];
    show_motd(pPlayer, "winner.txt", "Вы победили!");
    
    new name[32], authid[32], ip[16];
    get_user_name(pPlayer, name, charsmax(name));
    get_user_authid(pPlayer, authid, charsmax(authid));
    get_user_ip(pPlayer, ip, charsmax(ip), 1);
    log_to_file("winners.log", "Winner! name: '%s' steamid: '%s' IP: '%s'", name, authid, ip);
    
    set_dhudmessage(0, 255, 0, -1.0, 0.35, 0, 6.0, 10.0);
    show_dhudmessage(0, "В розыгрыше выиграл %s, поздравляем его!", name);
}

public fw_TouchPresent(iEnt, id)
{
    static iTouchedCases;
    
    if(!is_valid_ent(iEnt) || g_bHasBonus[id])
        return PLUGIN_HANDLED;
        
    g_bHasBonus[id] = true;
    entity_set_int(iEnt, EV_INT_flags, FL_KILLME);
    g_iPlayerId[iTouchedCases++] = id;
    ChatColor(id, "%s Вы подняли сундук.", PREFIX);
    if(iTouchedCases >= g_iCaseCount)
        g_bRandomEnable = true;
    return PLUGIN_HANDLED;
}

stock get_overtime()
{
    static iCurrentTime, iSpawntime, iOvertime, szSpawntime[32];
    get_pcvar_string(g_pCvarTime, szSpawntime, charsmax(szSpawntime));
    iCurrentTime = get_systime();
    iSpawntime = parse_time(szSpawntime, "%H:%M:%S %d/%m/%Y");
#if defined FIX_TIME
    iOvertime = iSpawntime - iCurrentTime + 3600;
#else
    iOvertime = iSpawntime - iCurrentTime;
#endif
    return iOvertime ? iOvertime : 0;
}

stock ChatColor(const id, const szRawMessage[], any:...)
{
    static szMessage[191], apPlayers[32], iPlayers;
    vformat(szMessage, charsmax(szMessage), szRawMessage, 3);
    if(id)
    {
        if(!is_user_connected(id)) return;
        apPlayers[0] = id;
        iPlayers = 1;
    }
    else get_players(apPlayers, iPlayers, "ch");
    for(new i; i < iPlayers; i++)
    {
        message_begin(MSG_ONE_UNRELIABLE, 76, .player = apPlayers[i]);
        write_byte(apPlayers[i]);
        write_string(szMessage);
        message_end();
    }
}
 

Вложения

Carrion

Пользователь
Регистрация
28 Мар 2020
Сообщения
12
Симпатии
1
must be this...
public SpawnPresents()
{
for(new i; i < g_iCaseCount; i++)
{
new iEnt = create_entity("info_target");

if(!is_valid_ent(iEnt))
continue;

entity_set_vector(iEnt, EV_VEC_origin, g_fvOrigin[i]);
entity_set_string(iEnt, EV_SZ_classname, "info_present");
entity_set_int(iEnt, EV_INT_solid, SOLID_TRIGGER);
entity_set_int(iEnt, EV_INT_movetype, MOVETYPE_NONE);
entity_set_model(iEnt, "models/supplybox.mdl");
entity_set_size(iEnt, Float:{-16.0,-16.0,-16.0}, Float:{16.0,16.0,16.0});
drop_to_floor(iEnt);
}
}
 
Сверху Снизу