Русское сообщество по скриптингу

BIO Custom Flashlight для biohazard мода

Все вопросы по скриптингу для AMXX, помощь в редактировании плагинов.

Модераторы: Subb98, liFe iS GoOD

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

В данном разделе форума разрешено создавать темы, касающие только скриптинга для AMX Mod X.

Правила при создании новой темы:
1. При вставке кода плагина необходимо использовать тег [code=php].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. При описании проблемы или запросе на помощь в редактировании плагина обязательно выкладывайте исходник sma плагина.

BIO Custom Flashlight для biohazard мода

Сообщение Don Corleone » 24 мар 2017, 10:53

Всем привет. Не могу решится с проблемой такой, квар flashlight_color_type", "0" почему то сбивается при смене карте. заместо 0 ставиться 1, вопрос почему? хотя в исходнике 0 стоит.

Код: Выделить всё
#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <xs>
#tryinclude <biohazard>

#if !defined _biohazard_included
        #assert Biohazard functions file required!
#endif

#define PLUGIN "BIO Custom Flashlight"
#define AUTHOR "ConnorMcLeod"
#define VERSION "0.3.1"

/* **************************** CUSTOMIZATION AREA ******************************** */

new const SOUND_FLASHLIGHT_ON[] = "items/flashlight1.wav"
new const SOUND_FLASHLIGHT_OFF[] = "items/flashlight1.wav"

#define LIFE    1    // try 2 if light is flickering

/* ******************************************************************************** */

#define MAX_PLAYERS    32
#define OFFSET_TEAM    114
#define fm_cs_get_user_team(%1) get_pdata_int(%1,OFFSET_TEAM)
#define write_coord_f(%1) engfunc(EngFunc_WriteCoord,%1)

enum {
    
Red,
    
Green,
    
Blue
}

new Array:
g_aColors
new g_iColorsNum

new g_iMaxPlayers

new bool:g_bFlashLight[MAX_PLAYERS+1]
new 
g_iFlashBattery[MAX_PLAYERS+1]
new 
Float:g_flFlashLightTime[MAX_PLAYERS+1]
new 
g_iColor[MAX_PLAYERS+1][3]

new 
g_msgidFlashlightg_msgidFlashBat

new g_pcvarCustomFlashLightg_pcvarShowAll,
    
g_pcvarFlashDraing_pcvarFlashCharge,
    
g_pcvarColorTypeg_pcvarFlashColorTeg_pcvarFlashColorCt,
    
g_pcvarFlashRadiusg_pcvarFlashMaxDistg_pcvarFlashAttn

public plugin_precache()
{
    if(
is_biomod_active())
    {
        
precache_sound(SOUND_FLASHLIGHT_ON)
        
precache_sound(SOUND_FLASHLIGHT_OFF)
    }
}

public 
plugin_init()
{
    
register_pluginPLUGINVERSIONAUTHOR )
    
is_biomod_active() ? plugin_init2() : pause("ad")
}

public 
plugin_init2()
{
    
g_pcvarCustomFlashLight register_cvar("flashlight_custom""1")

    
g_pcvarShowAll register_cvar("flashlight_show_all""1")

    
g_pcvarFlashDrain register_cvar("flashlight_fulldrain_time""120"// def : 120 (0 for no drain)
    
g_pcvarFlashCharge register_cvar("flashlight_fullcharge_time""20"// def : 20

    
g_pcvarColorType register_cvar("flashlight_color_type""0"// 0:random , 1:teamcolor
    
g_pcvarFlashColorCt register_cvar("flashlight_color_ct""255255255"// RRRGGGBBB
    
g_pcvarFlashColorTe register_cvar("flashlight_color_te""255255255"// RRRGGGBBB

    
g_pcvarFlashRadius register_cvar("flashlight_radius""9")

    
g_pcvarFlashMaxDist register_cvar("flashlight_distance_max""2000")
    
g_pcvarFlashAttn register_cvar("flashlight_attenuation""5")


    
register_forward(FM_PlayerPreThink"PlayerPreThink")
    
register_forward(FM_CmdStart"CmdStart")

    
register_event("HLTV""Event_HLTV_newround""a""1=0""2=0")
    
register_event("DeathMsg""Event_DeathMsg""a")

    
plugin_precfg()
}

plugin_precfg()
{
    
g_msgidFlashlight get_user_msgid("Flashlight")
    
g_msgidFlashBat get_user_msgid("FlashBat")

    
g_iMaxPlayers get_maxplayers()

    new 
szConfigFile[64]
    
get_configsdir(szConfigFile63)
    
format(szConfigFile63"%s/flashlight_colors.ini"szConfigFile)

    new 
iFile fopen(szConfigFile"rt")
    if(!
iFile)
    {
        return
    }

    
g_aColors ArrayCreate(3)

    new 
szColors[12], szRed[4], szGreen[4], szBlue[4], iColor[3]
    while(!
feof(iFile))
    {
        
fgets(iFileszColors11)
        
trim(szColors)
        if(!
szColors[0] || szColors[0] == ';' || (szColors[0] == '/' && szColors[1] == '/'))
            continue
        
parse(szColorsszRed3szGreen3szBlue3)
        
iColor[Red] = str_to_num(szRed)
        
iColor[Green] = str_to_num(szGreen)
        
iColor[Blue] = str_to_num(szBlue)
        
ArrayPushArray(g_aColorsiColor)
    }
    
fclose(iFile)

    
g_iColorsNum ArraySize(g_aColors)
}

public 
client_putinserver(id)
{
    
reset(id)
}

public 
event_infect(victimattacker)
{
    if(
g_bFlashLight[victim])
        
FlashlightTurnOff(victim)
}

public 
Event_HLTV_newround()
{
    for(new 
id=1id<=g_iMaxPlayersid++)
    {
        
reset(id)
    }
}

public 
Event_DeathMsg()
{
    
reset(read_data(2))
}

reset(id)
{
    
g_iFlashBattery[id] = 100
    g_bFlashLight
[id] = false
    g_flFlashLightTime
[id] = 0.0
}

public 
CmdStart(iduc_handleseed)
{
    if( !
get_pcvar_num(g_pcvarCustomFlashLight) )
        return 
FMRES_IGNORED

    
if(get_uc(uc_handleUC_Impulse) == 100)
    {
        if( 
get_user_flags (id) & ADMIN_CHAT && is_user_alive(id))
        {
            if( 
g_bFlashLight[id] )
            {
                
FlashlightTurnOff(id)
            }
            else
            {
                
FlashlightTurnOn(id)
            }
        }
        
set_uc(uc_handleUC_Impulse0)
        return 
FMRES_HANDLED
    
}
    return 
FMRES_IGNORED
}

public 
PlayerPreThink(id)
{
    static 
Float:flDrainFloat:flTime
    flDrain 
get_pcvar_floatg_pcvarFlashDrain ) / 100
    global_get
(glb_timeflTime)    
    if(
flDrain && g_flFlashLightTime[id] && g_flFlashLightTime[id] <= flTime)
    {
        if(
g_bFlashLight[id])
        {
            if(
g_iFlashBattery[id])
            {
                
g_flFlashLightTime[id] = flDrain flTime
                g_iFlashBattery
[id]--
                
                if(!
g_iFlashBattery[id])
                    
FlashlightTurnOff(id)
            }
        }
        else
        {
            if(
g_iFlashBattery[id] < 100)
            {
                
g_flFlashLightTime[id] = get_pcvar_float(g_pcvarFlashCharge) / 100 flTime
                g_iFlashBattery
[id]++
            }
            else
                
g_flFlashLightTime[id] = 0.0
        
}

        
message_begin(MSG_ONE_UNRELIABLEg_msgidFlashBat_id)
        
write_byte(g_iFlashBattery[id])
        
message_end()

    }
    if(
g_bFlashLight[id])
    {
        
Make_FlashLight(id)
    }
}

Float:Get_StarEndPos(idFloat:flStart[3], Float:flAim[3])
{
    
pev(idpev_originflStart)
    
pev(idpev_view_ofsflAim)
    
xs_vec_add(flStartflAimflStart)

    
pev(idpev_v_angleflAim)    
    
engfunc(EngFunc_MakeVectorsflAim)
    
global_get(glb_v_forwardflAim)
    
xs_vec_mul_scalar(flAim9999.0flAim)
    
xs_vec_add(flStartflAimflAim)
    
engfunc(EngFunc_TraceLineflStartflAim0id0)
    
get_tr2(0TR_vecEndPosflAim)
}

Make_FlashLight(id)
{
    static 
Float:flStart[3], Float:flAim[3], Float:flDistFloat:flMaxDist

    Get_StarEndPos
(idflStartflAim)

    
flDist get_distance_f(flStartflAim)
    
flMaxDist get_pcvar_float(g_pcvarFlashMaxDist)

    if( 
flDist flMaxDist )
        return

    static 
iDecayiAttn

    iDecay 
floatroundflDist 255.0 flMaxDist )
    
iAttn 256 iDecay get_pcvar_num(g_pcvarFlashAttn// barney/dontaskme

    
if(get_pcvar_num(g_pcvarShowAll))
        
message_begin(MSG_BROADCASTSVC_TEMPENTITY)
    else
        
message_begin(MSG_ONE_UNRELIABLESVC_TEMPENTITY_id)
    
write_byteTE_DLIGHT )
    
write_coord_fflAim[0] )
    
write_coord_fflAim[1] )
    
write_coord_fflAim[2] )
    
write_byteget_pcvar_num(g_pcvarFlashRadius) )
    
write_byte( (g_iColor[id][Red]<<8) / iAttn )
    
write_byte( (g_iColor[id][Green]<<8) / iAttn )
    
write_byte( (g_iColor[id][Blue]<<8) / iAttn )
    
write_byteLIFE )
    
write_byteiDecay )
    
message_end()
}

FlashlightTurnOff(id)
{
    
engfuncEngFunc_EmitSoundidCHAN_WEAPONSOUND_FLASHLIGHT_OFFVOL_NORMATTN_NORM0PITCH_NORM )

    
g_bFlashLight[id] = false

    FlashlightHudDraw
(id0)

    
g_flFlashLightTime[id] = get_pcvar_float(g_pcvarFlashCharge) / 100 get_gametime()
}

FlashlightTurnOn(id)
{
    
engfuncEngFunc_EmitSoundidCHAN_WEAPONSOUND_FLASHLIGHT_ONVOL_NORMATTN_NORM0PITCH_NORM )

    
g_bFlashLight[id] = true

    FlashlightHudDraw
(id1)

    if( 
get_pcvar_num(g_pcvarColorType) || !g_iColorsNum )
    {
        static 
szColor[10], iColor
        get_pcvar_string
fm_cs_get_user_team(id) == 
                                
g_pcvarFlashColorTe 
                                
g_pcvarFlashColorCt,
                                    
szColor)
        
iColor str_to_num(szColor)
        
g_iColor[id][Red] = (iColor 1000000)
        
iColor %= 1000000 
        g_iColor
[id][Green] = (iColor 1000)
        
g_iColor[id][Blue] = (iColor 1000)
    }
    else
    {
        
ArrayGetArray(g_aColorsrandom(g_iColorsNum), g_iColor[id])
    }

    
g_flFlashLightTime[id] = get_pcvar_float(g_pcvarFlashDrain) / 100 get_gametime()
}

FlashlightHudDraw(idiFlag)
{
    if( 
get_pcvar_num(g_pcvarShowAll) )
    {
        
emessage_begin(MSG_ONE_UNRELIABLEg_msgidFlashlight_id)
        
ewrite_byte(iFlag)
        
ewrite_byte(g_iFlashBattery[id])
        
emessage_end()
    }
    else
    {
        
message_begin(MSG_ONE_UNRELIABLEg_msgidFlashlight_id)
        
write_byte(iFlag)
        
write_byte(g_iFlashBattery[id])
        
message_end()
    }
Аватара пользователя
Don Corleone
 
Сообщения: 79
Зарегистрирован: 23 окт 2016, 16:13
Благодарил (а): 5 раз.
Поблагодарили: 0 раз.
Опыт программирования: Около 3 месяцев
Языки программирования: Pawn
SourcePawn
C++
Php
Ruby
Python
C#

Re: BIO Custom Flashlight для biohazard мода

Сообщение 3BEPb » 24 мар 2017, 11:14

Возможно где то указано другое значение.
Аватара пользователя
3BEPb
 
Сообщения: 141
Зарегистрирован: 16 авг 2014, 22:02
Откуда: Пряжа
Благодарил (а): 22 раз.
Поблагодарили: 17 раз.
Опыт программирования: Больше трех лет
Языки программирования: Pawn

Re: BIO Custom Flashlight для biohazard мода

Сообщение Lethargy » 24 мар 2017, 11:34

Возможно нету flashlight_colors.ini файла с набором а-ля рандомных цветов.
Lawful evil ]:->

Были бы в языке pawn объекты, было бы круто. Почему нет объектов в павне?
Аватара пользователя
Lethargy
 
Сообщения: 179
Зарегистрирован: 12 мар 2017, 17:25
Благодарил (а): 34 раз.
Поблагодарили: 15 раз.
Языки программирования: За 3-4 часа любой язык

Re: BIO Custom Flashlight для biohazard мода

Сообщение Don Corleone » 24 мар 2017, 11:42

Есть вот
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
Don Corleone
 
Сообщения: 79
Зарегистрирован: 23 окт 2016, 16:13
Благодарил (а): 5 раз.
Поблагодарили: 0 раз.
Опыт программирования: Около 3 месяцев
Языки программирования: Pawn
SourcePawn
C++
Php
Ruby
Python
C#

Re: BIO Custom Flashlight для biohazard мода

Сообщение Lethargy » 24 мар 2017, 11:53

Костыли в студию!

Код: Выделить всё

 if
( get_pcvar_num(g_pcvarColorType) || !g_iColorsNum )


Меняем на

Код: Выделить всё

 if
(false)


:yahoo: :yahoo: :-D

Но лучше не надо
Lawful evil ]:->

Были бы в языке pawn объекты, было бы круто. Почему нет объектов в павне?
Аватара пользователя
Lethargy
 
Сообщения: 179
Зарегистрирован: 12 мар 2017, 17:25
Благодарил (а): 34 раз.
Поблагодарили: 15 раз.
Языки программирования: За 3-4 часа любой язык

Re: BIO Custom Flashlight для biohazard мода

Сообщение tempo » 24 мар 2017, 22:26

?
Аватара пользователя
tempo
 
Сообщения: 198
Зарегистрирован: 19 фев 2016, 15:23
Благодарил (а): 60 раз.
Поблагодарили: 9 раз.
Опыт программирования: Около года

Re: BIO Custom Flashlight для biohazard мода

Сообщение Don Corleone » 25 мар 2017, 01:08

Так кто нибудь поможешь нет?
Аватара пользователя
Don Corleone
 
Сообщения: 79
Зарегистрирован: 23 окт 2016, 16:13
Благодарил (а): 5 раз.
Поблагодарили: 0 раз.
Опыт программирования: Около 3 месяцев
Языки программирования: Pawn
SourcePawn
C++
Php
Ruby
Python
C#

Re: BIO Custom Flashlight для biohazard мода

Сообщение NEoMASTERR » 25 мар 2017, 01:42

Полазить по вашим конфигам у нас нет возможности. Посмотрите внимательно по файлам, может где то квар меняется. В этом плагине изменение квара не происходит.
Аватара пользователя
NEoMASTERR
 
Сообщения: 832
Зарегистрирован: 05 янв 2015, 16:38
Благодарил (а): 43 раз.
Поблагодарили: 188 раз.
Опыт программирования: Около года
Языки программирования: Counter-Strike 1.6


Вернуться в Скриптинг

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7