Tails
Пользователь
- Сообщения
- 475
- Решения
- 14
- Реакции
- 63
Всем большой привет народ! 
Это статья поможет тем, кто не хочет заморачиваться с поиском плагина, я заметил что плагин мало кому известен, но большинство людей в поиске его и с хорошими тестурами неба. Тестировал на своих серверах, плагин хорошо работает! Прикрепил плагин к статье.
Плагин называется Effect DayNight 1.1 - AUTHOR "Destro" - Архив прикрепил Red Foxxx Edition - так как я внёс изменения в плагин!
Данный плагин меняет освещение и небо на карте в зависимости от времени суток.
Важно знать!!!
Пример настройки:
Скомпилировать .sma или установить уже скомпилированный .amxx
Это статья поможет тем, кто не хочет заморачиваться с поиском плагина, я заметил что плагин мало кому известен, но большинство людей в поиске его и с хорошими тестурами неба. Тестировал на своих серверах, плагин хорошо работает! Прикрепил плагин к статье.
1.8.3 , 1.9.0 , 1.10.0
Плагин называется Effect DayNight 1.1 - AUTHOR "Destro" - Архив прикрепил Red Foxxx Edition - так как я внёс изменения в плагин!
Данный плагин меняет освещение и небо на карте в зависимости от времени суток.
Важно знать!!!
Изменил текстуры неба, так как они были не красивые, я заменил файлы env, и отключил освещения "amx_dn_lights_on", "0" в исходнике day_night.sma , skys.ini тоже переделал, плагин я предоставлю со своими настройками, так же прикрепил заранее скомпилировал плагин amxx для 1.9.0
Пример настройки:
;sky - Небо (Пример:[sky 1])
Hour - время включения и отключения неба (Пример: hour:0,12)
С 12 ночи будет до 12 дня определенное небо, не забываем использовать "," между числами
sky_name - название текстуры неба (Пример: sky_name:space)
lights_level-отвечает за освещение карты (Пример: lights_level:0)
0 - выключить, a - самое тёмное, Z - самое яркое
Вы можете выставлять несколько текстур небо в разное время
Примеры:
[sky 1]
hour:8,14
sky_name:des
lights_level:0
[sky 2]
hour:15,19
sky_name:des
lights_level:0
[sky 3]
hour:20,4
sky_name
olarnight1
lights_level:0
[sky 4]
hour:5,8
sky_name
olarnight1
lights_level:0
Hour - время включения и отключения неба (Пример: hour:0,12)
С 12 ночи будет до 12 дня определенное небо, не забываем использовать "," между числами
sky_name - название текстуры неба (Пример: sky_name:space)
lights_level-отвечает за освещение карты (Пример: lights_level:0)
0 - выключить, a - самое тёмное, Z - самое яркое
Вы можете выставлять несколько текстур небо в разное время
Примеры:
[sky 1]
hour:8,14
sky_name:des
lights_level:0
[sky 2]
hour:15,19
sky_name:des
lights_level:0
[sky 3]
hour:20,4
sky_name
lights_level:0
[sky 4]
hour:5,8
sky_name
lights_level:0
#include <amxmodx>
#include <amxmisc>
#include <engine>
#define PLUGIN "effect day/night"
#define VERSION "1.1"
#define AUTHOR "Destro" // Архив RedFoxxx Edition
new g_skyname[32]
new const g_arg[][] = { "bk", "dn", "ft", "lf", "rt", "up" }
new sky_on, lights_on
new g_lights_level[2]
public plugin_init()
set_effect() //no funciona en plugin precache
public plugin_precache()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
sky_on = register_cvar("amx_dn_sky_on", "1")
lights_on = register_cvar("amx_dn_lights_on", "0")
if(!load_data()) return
new precache[64]
for(new i; i < sizeof g_arg; i++)
{
formatex(precache, 63, "gfx/env/%s%s.tga", g_skyname, g_arg)
precache_generic(precache)
}
}
load_data()
{
new file[64]
get_configsdir(file, 63)
format(file, charsmax(file), "%s/skys.ini", file)
if(!file_exists(file))
{
log_amx("skys.ini not found")
return 0
}
new str_hour[3], hour
format_time(str_hour, charsmax(str_hour), "%H")
hour = str_to_num(str_hour)
new buff[36], key[16], value[16], fo_hour[3], to_hour[3], sky_num
new open=fopen(file,"r")
while(!feof(open))
{
buff[0]='^0'
fgets(open, buff, charsmax(buff))
trim(buff)
if(!buff[0] || buff[0] == ';')
continue
if (buff[0] == '[')
{
sky_num++
continue
}
strtok(buff, key, charsmax(key), value, charsmax(value), ':')
trim(key)
trim(value)
if(sky_num)
{
sky_num = 0
if(check_hour(hour, fo_hour, to_hour) && g_skyname[0] && g_lights_level[0])
{
fclose(open)
return 1
}
}
if(equal(key, "hour"))
strtok(value, fo_hour, 2, to_hour, 2, ',')
else if(equal(key, "sky_name"))
copy(g_skyname, charsmax(g_skyname), value)
else if(equal(key, "lights_level"))
copy(g_lights_level, charsmax(g_lights_level), value)
}
if(check_hour(hour, fo_hour, to_hour) && g_skyname[0] && g_lights_level[0])
{
fclose(open)
return 1
}
log_amx("misconfigured sky.inil")
fclose(open)
return 0
}
stock check_hour(hour, fo_hour[3], to_hour[3]){
if(str_to_num(fo_hour) <= hour <= str_to_num(to_hour))
return 1
return 0
}
set_effect()
{
if(g_skyname[0] && get_pcvar_num(sky_on))
set_cvar_string("sv_skyname", g_skyname)
if(g_lights_level[0] && get_pcvar_num(lights_on))
set_lights(g_lights_level)
else set_lights("#OFF")
}
#include <amxmisc>
#include <engine>
#define PLUGIN "effect day/night"
#define VERSION "1.1"
#define AUTHOR "Destro" // Архив RedFoxxx Edition
new g_skyname[32]
new const g_arg[][] = { "bk", "dn", "ft", "lf", "rt", "up" }
new sky_on, lights_on
new g_lights_level[2]
public plugin_init()
set_effect() //no funciona en plugin precache
public plugin_precache()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
sky_on = register_cvar("amx_dn_sky_on", "1")
lights_on = register_cvar("amx_dn_lights_on", "0")
if(!load_data()) return
new precache[64]
for(new i; i < sizeof g_arg; i++)
{
formatex(precache, 63, "gfx/env/%s%s.tga", g_skyname, g_arg)
precache_generic(precache)
}
}
load_data()
{
new file[64]
get_configsdir(file, 63)
format(file, charsmax(file), "%s/skys.ini", file)
if(!file_exists(file))
{
log_amx("skys.ini not found")
return 0
}
new str_hour[3], hour
format_time(str_hour, charsmax(str_hour), "%H")
hour = str_to_num(str_hour)
new buff[36], key[16], value[16], fo_hour[3], to_hour[3], sky_num
new open=fopen(file,"r")
while(!feof(open))
{
buff[0]='^0'
fgets(open, buff, charsmax(buff))
trim(buff)
if(!buff[0] || buff[0] == ';')
continue
if (buff[0] == '[')
{
sky_num++
continue
}
strtok(buff, key, charsmax(key), value, charsmax(value), ':')
trim(key)
trim(value)
if(sky_num)
{
sky_num = 0
if(check_hour(hour, fo_hour, to_hour) && g_skyname[0] && g_lights_level[0])
{
fclose(open)
return 1
}
}
if(equal(key, "hour"))
strtok(value, fo_hour, 2, to_hour, 2, ',')
else if(equal(key, "sky_name"))
copy(g_skyname, charsmax(g_skyname), value)
else if(equal(key, "lights_level"))
copy(g_lights_level, charsmax(g_lights_level), value)
}
if(check_hour(hour, fo_hour, to_hour) && g_skyname[0] && g_lights_level[0])
{
fclose(open)
return 1
}
log_amx("misconfigured sky.inil")
fclose(open)
return 0
}
stock check_hour(hour, fo_hour[3], to_hour[3]){
if(str_to_num(fo_hour) <= hour <= str_to_num(to_hour))
return 1
return 0
}
set_effect()
{
if(g_skyname[0] && get_pcvar_num(sky_on))
set_cvar_string("sv_skyname", g_skyname)
if(g_lights_level[0] && get_pcvar_num(lights_on))
set_lights(g_lights_level)
else set_lights("#OFF")
}
Скомпилировать .sma или установить уже скомпилированный .amxx
Закинуть в:
addons/amxmodx/plugins - day_night.amxx
addons/amxmodx/configs - skys.ini
gfx/env - polarnight1bk.tga , polarnight1dn.tga , polarnight1ft.tga , polarnight1lf.tga , polarnight1rt.tga , polarnight1up.tga
addons/amxmodx/plugins - day_night.amxx
addons/amxmodx/configs - skys.ini
gfx/env - polarnight1bk.tga , polarnight1dn.tga , polarnight1ft.tga , polarnight1lf.tga , polarnight1rt.tga , polarnight1up.tga
Вложения
Последнее редактирование модератором: