[CS: GO] Custom Skins v1.0.4

-LeXuS-

Участник
Сообщения
120
Реакции
60
Скачать тестовую версию с менюшкой - Custom Skins v2.1 Спасибо (R1KO)

Описание:
Плагин автоматически устанавливает админам скины.

Настройки:
Если хотите поменять на свои скины, то прописываем файлы, которые нужно загрузить в addons/sourcemod/configs/sm_csgo_skins/downloads.txt

В той же папке открываем файл skins.ini, и меняем значения строк на свои.

В строке flag указываем с каким флагом должен быть админ чтобы получить скин, если поле оставить пустым, то скины получат админы с любыми флагами.

Модели для CS GO
v1.0
- Релиз.

v1.0.1
- Исправлены мелкие недочеты.

v1.0.2
- Добавлен файл skins.ini, который содержит пути к моделям T и CT, и пути к моделям рук.

v1.0.3
- Добавлена установка скинов по флагам.

v1.0.4
- Плагин переименован на Custom Skins
- Добавлена защита от падения сервера, в случае если строки arms оставались пустыми.
- Теперь строки arms можно оставлять пустыми, в этом случае игроку установится только модель игрока (модели рук будут стандартными).
- Сделать поддержку большего кол-ва скинов.
- Добавить меню выбора скинов.
- Добавить установку скинов по флагам.
Обо всех ошибках и недочетах пишем в этой теме. Также предлагайте Ваши идеи.
 

Вложения

  • CSGO Custom Skins v1.0.4.rar
    8.2 КБ · Просмотры: 1,647
Последнее редактирование:

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
Re: [CS:GO] Skins v1.0

прописываем файлы, которые нужно загрузить в csgo/cfg/skins/downloads.txt
Открываем sm_csgo_skins.sp, и меняем значения
Как-то тогда бессмысленно загружать из файла, если всё равно в исходник лезть нужно.
И, есть ошибки и просто "не желательности":
PHP:
public OnMapStart() HookEvent("player_spawn", Player_Spawn);
Нельзя делать отлов события каждый раз на карте - создаются новые копии, функция обрабатывается всё чаще, когда это вовсе не нужно (и даже вредно). Может привести к падению сервера в итоге, тем более, с моделями.
PHP:
public Action:Player_Spawn(Handle:event, const String:name[], bool:dontBroadcast)
Приставка Action: здесь не нужна.
PHP:
decl String:path[150];
while (!IsEndOfFile(file) && ReadFileLine(file, path, 150))
150? А почему не MAX_FILE_LEN, тем более, что оно у тебя больше по значению?
PHP:
new team = GetClientTeam(client);
if(GetUserAdmin(client) != INVALID_ADMIN_ID)
Сначала проверь на админа, а уже после создавай переменные и проверяй команду админа. И делай это через switch.
 

-LeXuS-

Участник
Сообщения
120
Реакции
60
Re: [CS:GO] Skins v1.0

Как-то тогда бессмысленно загружать из файла, если всё равно в исходник лезть нужно.
И, есть ошибки и просто "не желательности":
PHP:
public OnMapStart() HookEvent("player_spawn", Player_Spawn);
Нельзя делать отлов события каждый раз на карте - создаются новые копии, функция обрабатывается всё чаще, когда это вовсе не нужно (и даже вредно). Может привести к падению сервера в итоге, тем более, с моделями.
PHP:
public Action:Player_Spawn(Handle:event, const String:name[], bool:dontBroadcast)
Приставка Action: здесь не нужна.
PHP:
decl String:path[150];
while (!IsEndOfFile(file) && ReadFileLine(file, path, 150))
150? А почему не MAX_FILE_LEN, тем более, что оно у тебя больше по значению?
PHP:
new team = GetClientTeam(client);
if(GetUserAdmin(client) != INVALID_ADMIN_ID)
Сначала проверь на админа, а уже после создавай переменные и проверяй команду админа. И делай это через switch.

Долго мучался над файлами, смог сделать только загрузку. Когда научусь - сделаю остальное.

Исправлю все мелкие ошибки позже. А что тогда делать с хукевентом?
 

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
Re: [CS:GO] Skins v1.0

что тогда делать с хукевентом
Засунуть в public OnPluginStart() естественно. SetFailState всё равно полностью остановит плагин, если файл загрузок не найден, так что, Unhook-нуть не потребуется - ничего лишнего.
А админов стоит проверять и запоминать ещё на входе. Если ни одного админа нет на сервере, то тут можно и отключить Player_Spawn (но, это уже для профи - расширенное выполнение кода/оптимизация).
 

-LeXuS-

Участник
Сообщения
120
Реакции
60
Re: [CS:GO] Skins v1.0.1

Исправил все недочеты, перезалил архив CSGO Skins v1.0.1
 
Последнее редактирование:

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #6
Re: [CS:GO] Skins v1.0.1

-LeXuS-,
PHP:
if(GetUserAdmin(client) != INVALID_ADMIN_ID)
Зачем каждый раз проверять, при входе проверил и сохранил в bool


И после спавна создавай желательно таймер хоть на 0,1 чтобы не было проблем.

PHP:
new String:TSkin[MAX_FILE_LEN] = "models/player/kuristaja/duke/duke.mdl";
new String:CTSkin[MAX_FILE_LEN] = "models/player/kuristaja/nanosuit/nanosuit.mdl";
new String:TSkinArms[MAX_FILE_LEN] = "models/player/kuristaja/duke/duke_arms.mdl";
new String:CTSkinArms[MAX_FILE_LEN] = "models/player/kuristaja/nanosuit/nanosuit_arms.mdl";

PHP:
new const String:
 

-LeXuS-

Участник
Сообщения
120
Реакции
60
Re: [CS:GO] Skins v1.0.1

-LeXuS-,
PHP:
if(GetUserAdmin(client) != INVALID_ADMIN_ID)
Зачем каждый раз проверять, при входе проверил и сохранил в bool


И после спавна создавай желательно таймер хоть на 0,1 чтобы не было проблем.

PHP:
new String:TSkin[MAX_FILE_LEN] = "models/player/kuristaja/duke/duke.mdl";
new String:CTSkin[MAX_FILE_LEN] = "models/player/kuristaja/nanosuit/nanosuit.mdl";
new String:TSkinArms[MAX_FILE_LEN] = "models/player/kuristaja/duke/duke_arms.mdl";
new String:CTSkinArms[MAX_FILE_LEN] = "models/player/kuristaja/nanosuit/nanosuit_arms.mdl";

PHP:
new const String:
Вот обновил немного. С этим кодом все в порядке? Почему-то, когда ставлю таймер плагин не хочет ставить террористу модельку рук, а без таймера все нормально работает, проверял несколько раз. И с булом пока что-то не очень.
PHP:
#include <sourcemod>
#include <sdktools>

#define MAX_FILE_LEN 256

new String:g_TModel[MAX_FILE_LEN], String:g_TArms[MAX_FILE_LEN], String:g_CTModel[MAX_FILE_LEN], String:g_CTArms[MAX_FILE_LEN];

public OnPluginStart()
{
	new Handle:kv = CreateKeyValues("Models");

	if (!FileToKeyValues(kv, "addons/sourcemod/configs/sm_csgo_skins/skins.ini"))
	PrintToServer("Не удалось загрузить addons/sourcemod/configs/sm_csgo_skins/skins.ini");

	else if (KvJumpToKey(kv, "Admin", false))
	{
		decl String:model_t[MAX_FILE_LEN], String:arms_t[MAX_FILE_LEN], String:model_ct[MAX_FILE_LEN], String:arms_ct[MAX_FILE_LEN];
		KvGetString(kv, "t_model", model_t, sizeof(model_t), "");
		KvGetString(kv, "t_arms", arms_t, sizeof(arms_t), "");
		KvGetString(kv, "ct_model", model_ct, sizeof(model_ct), "");
		KvGetString(kv, "ct_arms", arms_ct, sizeof(arms_ct), "");
		g_TModel = model_t;
		g_TArms = arms_t;
		g_CTModel = model_ct;
		g_CTArms = arms_ct;
	}
	else PrintToServer("Не удалось найти ключ: Admin");

	CloseHandle(kv);

	HookEvent("player_spawn", Player_Spawn);
}

public OnMapStart()
{
	new Handle:file = OpenFile("addons/sourcemod/configs/sm_csgo_skins/downloads.txt", "r");
	if (file == INVALID_HANDLE)
	{
		SetFailState("Не удалось открыть addons/sourcemod/configs/sm_csgo_skins/downloads.txt");
		return;
	}
	decl String:path[MAX_FILE_LEN];
	while (!IsEndOfFile(file) && ReadFileLine(file, path, MAX_FILE_LEN))
	{
		TrimString(path);
		if (IsCharAlpha(path[0])) AddFileToDownloadsTable(path);
	}
	CloseHandle(file);

	PrecacheModel(g_TModel, true);
	PrecacheModel(g_TArms, true);
	PrecacheModel(g_CTModel, true);
	PrecacheModel(g_CTArms, true);
}

public Player_Spawn(Handle:event, const String:name[], bool:dontBroadcast)
{
	new client = GetClientOfUserId(GetEventInt(event, "userid"));

	if(IsClientInGame(client) && GetUserAdmin(client) != INVALID_ADMIN_ID)
	{
		CreateTimer(0.1, Timer_Spawn, client);
	}
}

public Action:Timer_Spawn(Handle:timer, any:client)
{
	new team = GetClientTeam(client);

	switch (team)
	{
		case 2:
		{
			SetEntityModel(client, g_TModel);
			SetEntPropString(client, Prop_Send, "m_szArmsModel", g_TArms);
		}
		case 3:
		{
			SetEntityModel(client, g_CTModel);
			SetEntPropString(client, Prop_Send, "m_szArmsModel", g_CTArms);
		}
	}
}
 
Последнее редактирование:

Rusqa

Участник
Сообщения
1
Реакции
0
Re: [CS:GO] Skins v1.0.1

Хорошая работа, один вопрос от "не местного", как выдать скин по steamid-админа? Чтобы, например, можно было каждому выдать индивидуальный скин.
 

-LeXuS-

Участник
Сообщения
120
Реакции
60
Re: [CS:GO] Skins v1.0.1

Хорошая работа, один вопрос от "не местного", как выдать скин по steamid-админа? Чтобы, например, можно было каждому выдать индивидуальный скин.

Пока что - никак. Плагин еще сырой, его нужно дописывать. Да и поддерживает он пока что всего два скина.
 

AZA

/reset
Сообщения
883
Реакции
162
Re: [CS:GO] Skins v1.0.2

-LeXuS-, сделай в кфг на какой флаг будет скин,если значение кваро пустое то на любой флаг будет скин
 

-LeXuS-

Участник
Сообщения
120
Реакции
60
Re: [CS:GO] Skins v1.0.3

Вышло обновление Skins v1.0.3
 
Последнее редактирование:

-LeXuS-

Участник
Сообщения
120
Реакции
60
Re: [CS:GO] Skins v1.0.3

Добавь установку скинов по стим айди.

Попробую. У игрока тогда будет один скин в любой команде? Или нужно, чтобы было два разных скина, по одному на каждую команду?
 

AZA

/reset
Сообщения
883
Реакции
162
Re: [CS:GO] Skins v1.0.3

-LeXuS-, добавь еще нужну фишку для zm,а именно установки скинам людям,и зомби админам =)
 

Hackers

Участник
Сообщения
6
Реакции
0
Re: [CS:GO] Skins v1.0.3

-LeXuS-,
Спасибо больше за твой труд :)

Мне такой вопрос, когда установил Skins v1.0.2
Скачал два скина установил зашел на сервер работало но когда с игроками играл но мой скин они не видели как бы говорили, видели какой то квадратик с error и на следующим раунд он видели скин и опять не видели скин в чем может быть проблема в самом плагине или же с моделими или если есть возможность дать ссылку на рабочий скин....
 

-LeXuS-

Участник
Сообщения
120
Реакции
60
Re: [CS:GO] Skins v1.0.3

-LeXuS-,
Спасибо больше за твой труд :)

Мне такой вопрос, когда установил Skins v1.0.2
Скачал два скина установил зашел на сервер работало но когда с игроками играл но мой скин они не видели как бы говорили, видели какой то квадратик с error и на следующим раунд он видели скин и опять не видели скин в чем может быть проблема в самом плагине или же с моделими или если есть возможность дать ссылку на рабочий скин....

С этим проблем не было. На сервере стоит быстрая скачка? Делали ли какие-то изменения в файлах? Возможно просто у самих игроков не скачались модели, или пути прописаны не правильно.

Вот ссылка на модели для cs go.
 
Сверху Снизу