Иконка ресурса

Sky change helper 0.1

Нет прав для скачивания
Сообщения
1,536
Реакции
2,324
Помог
39 раз(а)
Пользователь Tranquillity разместил новый ресурс:

Sky change helper - Смена неба

Данный плагин предназначен для замены текстуры неба (skybox) на сервере. Эту задачу можно реализовать и без плагина, посредством квара sv_skyname, если необходимо установить стандартное небо, которое, как предполагается, уже есть на клиентах игроков и загружать его нет необходимости. Плагин же позволяет организовать загрузку и установку новых текстур неба наиболее удобным образом.
Узнать больше об этом ресурсе...
 
Сообщения
142
Реакции
23
Помог
1 раз(а)
а как сделать чтоб на ад ной карте было одно небо на других другое?
 
Сообщения
1,032
Реакции
828
Помог
10 раз(а)
sergei, оригинальный код был Subb98, что я там менял уже не помню.
C++:
#include <amxmodx>
#include <reapi>

#pragma semicolon 1

enum _:SKY_DATA_SIZE {
szMapName[32],
szSkyName[32]
}

new const ENV_DATA[][] = {"bk", "dn", "ft", "lf", "rt", "up"};

new const SKY_DATA_LIST[][SKY_DATA_SIZE] = {
{"de_dust2", "gmf_de_dust_9"},
{"de_dust", "gmf_de_dust_9"},
{"awp_dust", "gmf_awp_india_1"},
{"awp_india", "gmf_awp_india_1"},
{"cs_assault", "gmf_cs_assault_1"},
{"cs_assault_1337", "gmf_cs_assault_1"},
{"cs_italy", "gmf_cs_italy_1"},
{"cs_mansion", "gmf_cs_mansion_1"},
{"cs_office", "gmf_cs_office_1"},
{"de_aztec", "gmf_de_aztec_1"},
{"de_cbble", "gmf_de_cbble_1"},
{"de_clan1_mill", "gmf_de_clan1_mill_1"},
{"de_dust2002", "gmf_de_dust2002_1"},
{"de_inferno", "gmf_de_inferno_1"},
{"de_mirage", "gmf_de_mirage_1"},
{"de_nuke", "gmf_de_nuke_1"},
{"de_train", "gmf_de_train_1"},
{"de_tuscan", "gmf_de_tuscan_1"},
{"de_westwood", "gmf_de_westwood_1"}
};

public plugin_precache() {
register_plugin("Sky Setting", "2.0", "Javekson");

new szCurrentMapName[32], szSetSkyName[32];
rh_get_mapname(szCurrentMapName, charsmax(szCurrentMapName), MNT_TRUE);
for(new i; i < sizeof SKY_DATA_LIST; i++) {
if(equal(szCurrentMapName, SKY_DATA_LIST[szMapName])) {
formatex(szSetSkyName, charsmax(szSetSkyName), SKY_DATA_LIST[szSkyName]);
break;
}
}

for(new i, szFile[64]; i < sizeof ENV_DATA; i++) {
formatex(szFile, charsmax(szFile), "gfx/env/%s%s.tga", szSetSkyName, ENV_DATA);
if(file_exists(szFile))
precache_generic(szFile);
else {
szSetSkyName[0] = 0;
return PLUGIN_HANDLED;
}
}
if(szSetSkyName[0]) set_cvar_string("sv_skyname", szSetSkyName);
return PLUGIN_HANDLED;
}
 
Сообщения
219
Реакции
184
Помог
3 раз(а)
Javekson, а как ты там в авторстве появился тогда и куда делся субб?
 
Сообщения
1,032
Реакции
828
Помог
10 раз(а)
gyxoBka, нашел оригинальный, там еще рандом был каждую карту.
Писал он мне на заказ, потом я переписал для себя его, когда начал изучать amx.
В благодарности за алгоритм забыл указать, ибо не собирался выкладывать, валялся на компе просто, как-то так и получилось.
C++:
/* Random sky 0.1 [16.09.2016] */

#include <amxmodx>

#pragma semicolon 1

const MAP_STRLEN = 32;
const SKY_STRLEN = 24;

enum _:SKY_DATA {
sd_map_name[MAP_STRLEN],
sd_sky_names[512]
}

new g_SkyName[SKY_STRLEN];

public plugin_precache() {
register_plugin("Random sky", "0.1", "Subb98");
new const SKY_LIST[][SKY_DATA] = {
{"de_dust2", "gmf_dedast gmf_dedast3 gmf_dedast4 gmf_dedast5 gmf_dedast6 gmf_dedast7 gmf_dedast8"},
{"de_dust2_2x2", "gmf_dedast gmf_dedast3 gmf_dedast4 gmf_dedast5 gmf_dedast6 gmf_dedast7 gmf_dedast8"},
{"de_dust", "gmf_dedast gmf_dedast3 gmf_dedast4 gmf_dedast5 gmf_dedast6 gmf_dedast7 gmf_dedast8"}
};
new Data[SKY_DATA];
get_mapname(Data[sd_map_name], charsmax(Data[sd_map_name]));
for(new i; i < sizeof SKY_LIST; i++) {
if(equali(Data[sd_map_name], SKY_LIST[sd_map_name])) {
copy(Data[sd_sky_names], charsmax(Data[sd_sky_names]), SKY_LIST[sd_sky_names]);
ParseString(Data[sd_map_name], Data[sd_sky_names], strlen(Data[sd_sky_names]));
return;
}
}
}

public plugin_cfg() {
if(g_SkyName[0]) {
set_cvar_string("sv_skyname", g_SkyName);
}
pause("d");
}

ParseString(const mapname[], const string[], const len) {
new Array:SkyList = ArrayCreate(SKY_STRLEN), Temp[SKY_STRLEN], CurLen, Num;
while(CurLen < len) {
Temp[0] = 0;
parse(string[CurLen], Temp, charsmax(Temp));
if(Temp[0]) {
ArrayPushString(SkyList, Temp);
CurLen += strlen(Temp) + 1;
}
}
if((Num = ArraySize(SkyList))) {
ArrayGetString(SkyList, random(Num), g_SkyName, charsmax(g_SkyName));
PrecacheSkyName(g_SkyName);
} else {
log_amx("Arguments are set incorrectly for map %s", mapname);
}
ArrayDestroy(SkyList);
}

PrecacheSkyName(skyname[]) {
new const ENV_DATA[][] = {"bk", "dn", "ft", "lf", "rt", "up"};
for(new i, File[64]; i < sizeof ENV_DATA; i++) {
formatex(File, charsmax(File), "gfx/env/%s%s.tga", skyname, ENV_DATA);
if(file_exists(File)) {
precache_generic(File);
} else {
skyname[0] = 0;
log_amx("File ^"%s^" not found", File);
return;
}
}
}
 

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу