Михаил Хуртин
Участник
- Сообщения
- 25
- Реакции
- 0
ну я думаю не все баганые если я 9 по 4 сменил
Сам на свой вопрос ответил..ну я думаю не все баганые если я 9 по 4 сменил
Я не работаю с картами.А вы с картами так же работаете?)
#pragma semicolon 1
#include <sourcemod>
#include <sdktools_functions>
new String:wS_ModeL[9][250], Handle:wS_Cvar[9], bool:g_Enabled = false;
new String:s_DownListPath[PLATFORM_MAX_PATH];
new Handle:h_DownListPath;
public OnPluginStart()
{
wS_Cvar[1] = CreateConVar("model_phoenix", "");
wS_Cvar[2] = CreateConVar("model_leet", "");
wS_Cvar[3] = CreateConVar("model_arctic", "");
wS_Cvar[4] = CreateConVar("model_guerilla", "");
wS_Cvar[5] = CreateConVar("model_seal_team", "");
wS_Cvar[6] = CreateConVar("model_gsg9", "");
wS_Cvar[7] = CreateConVar("model_sas", "");
wS_Cvar[8] = CreateConVar("model_gign", "");
h_DownListPath = CreateConVar("sm_player_class_model_dl", "cfg/sourcemod/player_class_model_dl.txt", "Путь к скачкам");
AutoExecConfig(true, "player_class_model", "sourcemod");
HookEvent("player_spawn", player_spawn);
}
public OnMapStart()
{
for (new class = 1; class < 9; class++)
{
GetConVarString(wS_Cvar[class], wS_ModeL[class], 75);
if (wS_ModeL[class][0] == 'm' && FileExists(wS_ModeL[class])) PrecacheModel(wS_ModeL[class], true);
else wS_ModeL[class][0] = '\0';
}
}
public OnConfigsExecuted()
{
GetConVarString(h_DownListPath, s_DownListPath, sizeof(s_DownListPath));
HookConVarChange(h_DownListPath, CvarChanges);
if (FileExists(s_DownListPath))
File_ReadDownloadList(s_DownListPath);
else
LogError("Downloadslist '%s' not found", s_DownListPath);
g_Enabled = false;
for (new class = 1; class < 9; class++)
{
GetConVarString(wS_Cvar[class], wS_ModeL[class], 250);
if (wS_ModeL[class][0] == 'm' && FileExists(wS_ModeL[class]))
{
PrecacheModel(wS_ModeL[class], true);
g_Enabled = true;
}
else
wS_ModeL[class][0] = '\0';
}
}
public CvarChanges(Handle:convar, const String:oldValue[], const String:newValue[])
{
if (convar == h_DownListPath)
{
strcopy(s_DownListPath, sizeof(s_DownListPath), newValue);
if (FileExists(s_DownListPath))
File_ReadDownloadList(s_DownListPath);
}
}
public player_spawn(Handle:event, const String:name[], bool:silent)
{
if (!g_Enabled)
return;
new client = GetClientOfUserId(GetEventInt(event, "userid"));
new xclass = GetEntProp(client, Prop_Send, "m_iClass");
if (0 < xclass < 9 && wS_ModeL[xclass][0] == 'm') SetEntityModel(client, wS_ModeL[xclass]);
}
stock File_ReadDownloadList(const String:path[])
{
new Handle:file = OpenFile(path, "r");
if (file == INVALID_HANDLE) {
return;
}
new String:buffer[PLATFORM_MAX_PATH];
while (!IsEndOfFile(file)) {
ReadFileLine(file, buffer, sizeof(buffer));
new pos;
pos = StrContains(buffer, "//");
if (pos != -1) {
buffer[pos] = '\0';
}
pos = StrContains(buffer, "#");
if (pos != -1) {
buffer[pos] = '\0';
}
pos = StrContains(buffer, ";");
if (pos != -1) {
buffer[pos] = '\0';
}
TrimString(buffer);
if (buffer[0] == '\0') {
continue;
}
File_AddToDownloadsTable(buffer);
}
CloseHandle(file);
}
new String:_smlib_empty_twodimstring_array[][] = { { '\0' } };
stock File_AddToDownloadsTable(const String:path[], bool:recursive=true, const String:ignoreExts[][]=_smlib_empty_twodimstring_array, size=0)
{
if (path[0] == '\0') {
return;
}
if (FileExists(path)) {
new String:fileExtension[4];
File_GetExtension(path, fileExtension, sizeof(fileExtension));
if (StrEqual(fileExtension, "bz2", false) || StrEqual(fileExtension, "ztmp", false)) {
return;
}
if (Array_FindString(ignoreExts, size, fileExtension) != -1) {
return;
}
}}
stock File_GetExtension(const String:path[], String:buffer[], size)
{
new extpos = FindCharInString(path, '.', true);
if (extpos == -1) {
buffer[0] = '\0';
return;
}
strcopy(buffer, size, path[++extpos]);
}
stock Array_FindString(const String:array[][], size, const String:str[], bool:caseSensitive=true, start=0)
{
if (start < 0) {
start = 0;
}
for (new i=start; i < size; i++) {
if (StrEqual(array[i], str, caseSensitive)) {
return i;
}
}
return -1;
}
Danyas, я не скриптер, просто вшил в плагин автоскачку. Код не изменен, оригинал от wS.
Скинь постом sp, smx закреплю в первом посте.
А на CS:GO работает???
будет работать на сервере в cs:GO?
Нет, не будет.
Пойдёт))на Cssv86 пойдут??
В смысле перебивает?Почему этот плагин перебивает скины админов?
Есть всего 8 классов игроков, у каждого из которых собственный скин. С помощью этого плагина, вы можете изменить скин для некоторых/всех классов.
Указывайте полный путь к модели от models/ до .mdl, если хотите установить новый скин. Или оставьте поле пустым, чтобы была стандартная модель.
Пример настройки .../cstrike/cfg/sourcemod/player_class_model.cfg:
C-подобный:model_phoenix "models/player/slow/aot/salem/slow.mdl" model_leet "models/player/adidas/t_leet.mdl" model_arctic...
1. Плагин обновлён до версии 1.4
2. Теперь переменные отлавливаются иначе, их можно изменять в любой момент игры, в моём случаи через mapconfig
3. Плагин имеет не много иной файл настроек, при обновлении выключите сервер, удалите файл и включите вновь для новой версии с описанием каждой переменной
4. Более не нужно использовать сторонние способы подгрузки файлов, достаточно просто вписать путь mdl в настройки и вся модель полностью скачается (пути загрузок моделей писать никуда не надо)
5...