Все вопросы по скриптингу для AMXX, помощь в редактировании плагинов.
Модераторы: Subb98, liFe iS GoOD
Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.
В данном разделе форума разрешено создавать темы, касающие только скриптинга для AMX Mod X.
Правила при создании новой темы:
1. При вставке кода плагина необходимо использовать тег [code=php].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. При описании проблемы или запросе на помощь в редактировании плагина обязательно выкладывайте исходник sma плагина.
Don Corleone » 24 мар 2017, 10:53
Всем привет. Не могу решится с проблемой такой, квар flashlight_color_type", "0" почему то сбивается при смене карте. заместо 0 ставиться 1, вопрос почему? хотя в исходнике 0 стоит.
- Код: Выделить всё
new const SOUND_FLASHLIGHT_ON[] = "items/flashlight1.wav"
new const SOUND_FLASHLIGHT_OFF[] = "items/flashlight1.wav"
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_msgidFlashlight, g_msgidFlashBat
new g_pcvarCustomFlashLight, g_pcvarShowAll,
g_pcvarFlashDrain, g_pcvarFlashCharge,
g_pcvarColorType, g_pcvarFlashColorTe, g_pcvarFlashColorCt,
g_pcvarFlashRadius, g_pcvarFlashMaxDist, g_pcvarFlashAttn
public plugin_precache()
{
if(is_biomod_active())
{
precache_sound(SOUND_FLASHLIGHT_ON)
precache_sound(SOUND_FLASHLIGHT_OFF)
}
}
public plugin_init()
{
register_plugin( PLUGIN, VERSION, AUTHOR )
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") g_pcvarFlashCharge = register_cvar("flashlight_fullcharge_time", "20") g_pcvarColorType = register_cvar("flashlight_color_type", "0") g_pcvarFlashColorCt = register_cvar("flashlight_color_ct", "255255255") g_pcvarFlashColorTe = register_cvar("flashlight_color_te", "255255255") 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(szConfigFile, 63)
format(szConfigFile, 63, "%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(iFile, szColors, 11)
trim(szColors)
if(!szColors[0] || szColors[0] == ';' || (szColors[0] == '/' && szColors[1] == '/'))
continue
parse(szColors, szRed, 3, szGreen, 3, szBlue, 3)
iColor[Red] = str_to_num(szRed)
iColor[Green] = str_to_num(szGreen)
iColor[Blue] = str_to_num(szBlue)
ArrayPushArray(g_aColors, iColor)
}
fclose(iFile)
g_iColorsNum = ArraySize(g_aColors)
}
public client_putinserver(id)
{
reset(id)
}
public event_infect(victim, attacker)
{
if(g_bFlashLight[victim])
FlashlightTurnOff(victim)
}
public Event_HLTV_newround()
{
for(new id=1; id<=g_iMaxPlayers; id++)
{
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(id, uc_handle, seed)
{
if( !get_pcvar_num(g_pcvarCustomFlashLight) )
return FMRES_IGNORED
if(get_uc(uc_handle, UC_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_handle, UC_Impulse, 0)
return FMRES_HANDLED
}
return FMRES_IGNORED
}
public PlayerPreThink(id)
{
static Float:flDrain, Float:flTime
flDrain = get_pcvar_float( g_pcvarFlashDrain ) / 100
global_get(glb_time, flTime)
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_UNRELIABLE, g_msgidFlashBat, _, id)
write_byte(g_iFlashBattery[id])
message_end()
}
if(g_bFlashLight[id])
{
Make_FlashLight(id)
}
}
Float:Get_StarEndPos(id, Float:flStart[3], Float:flAim[3])
{
pev(id, pev_origin, flStart)
pev(id, pev_view_ofs, flAim)
xs_vec_add(flStart, flAim, flStart)
pev(id, pev_v_angle, flAim)
engfunc(EngFunc_MakeVectors, flAim)
global_get(glb_v_forward, flAim)
xs_vec_mul_scalar(flAim, 9999.0, flAim)
xs_vec_add(flStart, flAim, flAim)
engfunc(EngFunc_TraceLine, flStart, flAim, 0, id, 0)
get_tr2(0, TR_vecEndPos, flAim)
}
Make_FlashLight(id)
{
static Float:flStart[3], Float:flAim[3], Float:flDist, Float:flMaxDist
Get_StarEndPos(id, flStart, flAim)
flDist = get_distance_f(flStart, flAim)
flMaxDist = get_pcvar_float(g_pcvarFlashMaxDist)
if( flDist > flMaxDist )
return
static iDecay, iAttn
iDecay = floatround( flDist * 255.0 / flMaxDist )
iAttn = 256 + iDecay * get_pcvar_num(g_pcvarFlashAttn) if(get_pcvar_num(g_pcvarShowAll))
message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
else
message_begin(MSG_ONE_UNRELIABLE, SVC_TEMPENTITY, _, id)
write_byte( TE_DLIGHT )
write_coord_f( flAim[0] )
write_coord_f( flAim[1] )
write_coord_f( flAim[2] )
write_byte( get_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_byte( LIFE )
write_byte( iDecay )
message_end()
}
FlashlightTurnOff(id)
{
engfunc( EngFunc_EmitSound, id, CHAN_WEAPON, SOUND_FLASHLIGHT_OFF, VOL_NORM, ATTN_NORM, 0, PITCH_NORM )
g_bFlashLight[id] = false
FlashlightHudDraw(id, 0)
g_flFlashLightTime[id] = get_pcvar_float(g_pcvarFlashCharge) / 100 + get_gametime()
}
FlashlightTurnOn(id)
{
engfunc( EngFunc_EmitSound, id, CHAN_WEAPON, SOUND_FLASHLIGHT_ON, VOL_NORM, ATTN_NORM, 0, PITCH_NORM )
g_bFlashLight[id] = true
FlashlightHudDraw(id, 1)
if( get_pcvar_num(g_pcvarColorType) || !g_iColorsNum )
{
static szColor[10], iColor
get_pcvar_string( fm_cs_get_user_team(id) == 1 ?
g_pcvarFlashColorTe :
g_pcvarFlashColorCt,
szColor, 9 )
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_aColors, random(g_iColorsNum), g_iColor[id])
}
g_flFlashLightTime[id] = get_pcvar_float(g_pcvarFlashDrain) / 100 + get_gametime()
}
FlashlightHudDraw(id, iFlag)
{
if( get_pcvar_num(g_pcvarShowAll) )
{
emessage_begin(MSG_ONE_UNRELIABLE, g_msgidFlashlight, _, id)
ewrite_byte(iFlag)
ewrite_byte(g_iFlashBattery[id])
emessage_end()
}
else
{
message_begin(MSG_ONE_UNRELIABLE, g_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#
3BEPb » 24 мар 2017, 11:14
Возможно где то указано другое значение.
-
3BEPb
-
- Сообщения: 141
- Зарегистрирован: 16 авг 2014, 22:02
- Откуда: Пряжа
- Благодарил (а): 22 раз.
- Поблагодарили: 17 раз.
- Опыт программирования: Больше трех лет
- Языки программирования: Pawn
Lethargy » 24 мар 2017, 11:34
Возможно нету flashlight_colors.ini файла с набором а-ля рандомных цветов.
Lawful evil Были бы в языке pawn объекты, было бы круто. Почему нет объектов в павне?
-
Lethargy
-
- Сообщения: 179
- Зарегистрирован: 12 мар 2017, 17:25
- Благодарил (а): 34 раз.
- Поблагодарили: 15 раз.
- Языки программирования: За 3-4 часа любой язык
Don Corleone » 24 мар 2017, 11:42
Есть вот
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
Don Corleone
-
- Сообщения: 79
- Зарегистрирован: 23 окт 2016, 16:13
- Благодарил (а): 5 раз.
- Поблагодарили: 0 раз.
- Опыт программирования: Около 3 месяцев
- Языки программирования: Pawn
SourcePawn
C++
Php
Ruby
Python
C#
Lethargy » 24 мар 2017, 11:53
Костыли в студию!
- Код: Выделить всё
if( get_pcvar_num(g_pcvarColorType) || !g_iColorsNum )
Меняем на
- Код: Выделить всё
if(false)
Но лучше не надо
Lawful evil Были бы в языке pawn объекты, было бы круто. Почему нет объектов в павне?
-
Lethargy
-
- Сообщения: 179
- Зарегистрирован: 12 мар 2017, 17:25
- Благодарил (а): 34 раз.
- Поблагодарили: 15 раз.
- Языки программирования: За 3-4 часа любой язык
tempo » 24 мар 2017, 22:26
?
-
tempo
-
- Сообщения: 198
- Зарегистрирован: 19 фев 2016, 15:23
- Благодарил (а): 60 раз.
- Поблагодарили: 9 раз.
- Опыт программирования: Около года
Don Corleone » 25 мар 2017, 01:08
Так кто нибудь поможешь нет?
-
Don Corleone
-
- Сообщения: 79
- Зарегистрирован: 23 окт 2016, 16:13
- Благодарил (а): 5 раз.
- Поблагодарили: 0 раз.
- Опыт программирования: Около 3 месяцев
- Языки программирования: Pawn
SourcePawn
C++
Php
Ruby
Python
C#
NEoMASTERR » 25 мар 2017, 01:42
Полазить по вашим конфигам у нас нет возможности. Посмотрите внимательно по файлам, может где то квар меняется. В этом плагине изменение квара не происходит.
-
NEoMASTERR
-
- Сообщения: 832
- Зарегистрирован: 05 янв 2015, 16:38
- Благодарил (а): 43 раз.
- Поблагодарили: 188 раз.
- Опыт программирования: Около года
- Языки программирования: Counter-Strike 1.6
-
Вернуться в Скриптинг
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7