Weapon Skin System by Mistrick

Gudaus

Пользователь
Регистрация
8 Июн 2017
Сообщения
95
Симпатии
84
Пол
Мужской
#1
Автор: Mistrick
Источник: Dev-Cs
Версия: 0.6.0-50

Тестовые версии можете качать на свой страх и риск с GitHub

Описание:
Плагин добавляет на сервер систему скинов для оружия. В CS:GO тема зашла, почему мы не сделать подобное для старушки 1.6? Позволяет каждому игроку выбрать скин. Скин сохраняется в оружии, что позволяет после его дропа и подбора сохранить измененную модель.

Требования:
  • AmxModX 1.8.2 или выше
Команды чата:
PHP:
/skins - вывод меню со скинами.
/skinreset - сброс модели для оружия.
Настройки:
в конфиге weapon_skins.ini добавляем модели скинов. Не забываем добавленные модели залить на сервер!
PHP:
; Syntax: "weapon name" "skin name" "model_v" "model_p" "model_w"
; "weapon_ak47" "AK-47 Skin 1" "models/weapon_skins/v_ak47_1.mdl" "models/weapon_skins/p_ak47_1.mdl" "models/weapon_skins/w_ak47_1.mdl"
Инфа для разработчиков:
#if defined _weapon_skin_system_included
#endinput
#endif
#define _weapon_skin_system_included

#if AMXX_VERSION_NUM >= 175
#pragma reqlib weapon_skin_system
#if !defined AMXMODX_NOAUTOLOAD
#pragma loadlib weapon_skin_system
#endif
#else
#pragma library weapon_skin_system
#endif

enum
{
WEAPON_CAN_PICKUP,
WEAPON_BLOCK_PICKUP
};

/**
* Called when load skins from file.
*
* @param index Skin index
* @param weaponid Skin CSW_ const
* @param name Skin name
*/
forward wss_loaded_skin(index, weaponid, name[]);

/**
* Get weapon skin.
*
* @param weapon Weapon enity index
*/
native wss_get_weapon_skin_index(weapon);

/**
* Get skin name by index.
*
* @param skin_index Skin index
* @param name String for name
* @param len Max string len
*/
native wss_get_skin_name(skin_index, name[], len);

/**
* Change player weapon skin.
* If weaponid is NULL then reset all player skins.
*
* wss_set_user_skin(id, 0) - reset all player's skins
* wss_set_user_skin(id, CSW_AK47) - reset only ak47 skin
*
* @param id Player index
* @param weaponid Weapon CSW_ const
* @param skin_index Skin index from wss_loaded_skin()
*/
native wss_set_user_skin(id, weaponid, skin_index = 0);

/**
* Called when weapon deployed.
*
* @param id Player index.
* @param weapon Weapon entity index.
* @param weaponid CSW_ const.
* @param skin Skin index.
*/
forward wss_weapon_deploy(id, weapon, weaponid, skin);

/**
* Called when weapon holstered.
*
* @param id Player index.
* @param weapon Weapon entity index.
* @param weaponid CSW_ const.
* @param skin Skin index.
*/
forward wss_weapon_holster(id, weapon, weaponid, skin);

/**
* Called when weapon droped.
* Forward should return WEAPON_BLOCK_PICKUP for block pickup
*
* @param id Player index.
* @param weaponbox Weaponbox entity index.
* @param weapon Weapon entity index.
* @param weaponid CSW_ const.
* @param skin Skin index.
*/
forward wss_weapon_can_pickup(id, weaponbox, weapon, weaponid, skin);

/**
* Called when weapon droped.
*
* @param id Player index.
* @param weaponbox Weaponbox entity index.
* @param weapon Weapon entity index.
* @param weaponid CSW_ const.
* @param skin Skin index.
*/
forward wss_weapon_drop(id, weaponbox, weapon, weaponid, skin);
#include <amxmodx>
#include <weapon_skin_system>

#define PLUGIN "Weapon Skins: Addon"
#define VERSION "0.1"
#define AUTHOR "Mistrick"

#pragma semicolon 1

enum SkinInfo
{
SkinIndex,
SkinWeaponid
};

enum Skins
{
SKIN_FRONTSIDE
};

new g_iWeaponSkins[Skins][SkinInfo];

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR);
}

public wss_loaded_skin(index, weaponid, name[])
{
// "AK-47 Frontside" - имя требуемой модели, указанное в weapon_skins.ini
if(equal(name, "AK-47 Frontside"))
{
g_iWeaponSkins[SKIN_FRONTSIDE][SkinIndex] = index;
g_iWeaponSkins[SKIN_FRONTSIDE][SkinWeaponid] = weaponid;
}
}

public client_putinserver(id)
{
if(is_user_steam(id))
{
wss_set_user_skin(id, g_iWeaponSkins[SKIN_FRONTSIDE][SkinWeaponid], g_iWeaponSkins[SKIN_FRONTSIDE][SkinIndex]);
}
}

stock is_user_steam(id)
{
static dp_pointer;
if(dp_pointer || (dp_pointer = get_cvar_pointer("dp_r_id_provider")))
{
server_cmd("dp_clientinfo %d", id); server_exec();
return (get_pcvar_num(dp_pointer) == 2) ? true : false;
}
return false;
}

Установка:
  1. Скачать архив, распаковать
  2. Найти в интернете модели под свои виды оружия, залить на сервер
  3. Прописать замену стандартных скинов в конфиге
  4. Скомпилировать плагин, залить на сервер, прописать в списке плагинов
 

Вложения

Vesuvius

Команда форума
Модератор
Регистрация
8 Июн 2017
Сообщения
367
Симпатии
143
Пол
Мужской
#2
а можно дописать чтоб еще менялся и звук к модельке....?
ато некоторие модельки идут со звуком
 

REVO

Заблокированные
Пользователь
Регистрация
9 Июн 2017
Сообщения
278
Симпатии
70
Пол
Мужской
#3
Всем привет!

Подскажите, в чем проблема? Плагин работает, все хорошо.
Но вот если я с включенным этим плагином меняю карту на: de_morningstar, сервер падает с ошибкой!
 

Вложения

  • 12,2 KB 43
  • 25,1 KB 40

Vesuvius

Команда форума
Модератор
Регистрация
8 Июн 2017
Сообщения
367
Симпатии
143
Пол
Мужской
#5
а можно както дописать подменю...?
например пишеш в чат /skins
появляеться меню в котором пишет название оружие
например
AK47
M16
AWP
Deagle
knife
потом вибираеш например АК47
а там уже вибор модели
АК47-1
АК47-2
АК47-3
можно так доделать?
ато если накидать много моделий...
тогда в главном меню не удобно искать другое оружие...
 

REVO

Заблокированные
Пользователь
Регистрация
9 Июн 2017
Сообщения
278
Симпатии
70
Пол
Мужской
#6
xopoIIIuu, я уже разобрался, что дело не в карте, и не в плагине. дело в самом движке! лимит у него 512 и пипец
 

glokk

Пользователь
Регистрация
9 Июн 2017
Сообщения
169
Симпатии
58
Пол
Мужской
#7
REVO, как это не в карте. в карте как раз. двигло запрекешить не может браши, ибо их очень много. просто криворукий карту делал.
2 Сен 2017
если она вылезает за 512, то карта с кучей шлака ниаптимизированого0))0
 

REVO

Заблокированные
Пользователь
Регистрация
9 Июн 2017
Сообщения
278
Симпатии
70
Пол
Мужской
#8
glokk, хм.. ладно сегодня проверю на других картах.
 

glokk

Пользователь
Регистрация
9 Июн 2017
Сообщения
169
Симпатии
58
Пол
Мужской
#9
REVO, хотя погоди. а до установки этого плагина было такое с этой картой?
 

REVO

Заблокированные
Пользователь
Регистрация
9 Июн 2017
Сообщения
278
Симпатии
70
Пол
Мужской
#10
glokk, вот именно! что без плагина, все замечательно! сервер не падаетCherna24
 

glokk

Пользователь
Регистрация
9 Июн 2017
Сообщения
169
Симпатии
58
Пол
Мужской
#11
REVO, тогда хз.. мб модели оружий кривые. Либо карта тяжелая,плюс модели, вот и не вывозит.
2 Сен 2017
для сравнения - de_inferno довольно тяжелая мапа, а de_morningstar тяжелее в 2,5 раза..
короче, я подобные мапы не юзаю в принципе, даже если она суперпупер крутая..
 

REVO

Заблокированные
Пользователь
Регистрация
9 Июн 2017
Сообщения
278
Симпатии
70
Пол
Мужской
#12
glokk, я считаю что не вывозит! ибо на обычном дасте все норм. значит модели оружий ровные!
 

glokk

Пользователь
Регистрация
9 Июн 2017
Сообщения
169
Симпатии
58
Пол
Мужской
#13
REVO, просто говно модели в сочетании с тяжелой картой - вылет. Даст то понятно, она лайт. А говно модели в сочетании с лайт картой - не вылет. Поэтому это такое. Надо чтоб кто-то из знающих просветил)
 

Vesuvius

Команда форума
Модератор
Регистрация
8 Июн 2017
Сообщения
367
Симпатии
143
Пол
Мужской
#14
Weapon Skin System by Mistrick можно доделать?
только у меня не роботает /skinreset - сброс модели для оружия.
а и почемуто дублирует пункти в меню
20170903092238_1.jpg
 

BalbuR

Пользователь
Регистрация
26 Июл 2017
Сообщения
124
Симпатии
23
Пол
Мужской
#15
xopoIIIuu, я уже разобрался, что дело не в карте, и не в плагине. дело в самом движке! лимит у него 512 и пипец
чем больше моделей вы грузите тем больше вероятность того, что на одной из карт вы поймаете забор 512
Можно заблочить стандартные модели и звуки, которые не используются в игре с помощью unprecacher'а (лично у меня стоит модуль от In-Line'a), компоновать модели друг в друга, прекэшить звуки, которые проигрываются у клиента, через precache_generic, ну и конечно же нужно дописывать сам плагин, чтобы все описанное выше работало как надо. Это все тысячи раз обсуждалось и прожевывалось
 

neygomon

Его Темнейшество :j
Заблокированные
Пользователь
Регистрация
8 Июн 2017
Сообщения
840
Симпатии
390
Пол
Мужской
#16

HolySaint

Пользователь
Регистрация
28 Авг 2017
Сообщения
4
Симпатии
1
Пол
Мужской
#18
Кто цену назовет что бы допилить плагин до уровня меню как в этом посту + нужно добавить сохранение, возможность включить выбор скина рандомно + возможность выбора модели игрока + привязка к флагу.
 

REVO

Заблокированные
Пользователь
Регистрация
9 Июн 2017
Сообщения
278
Симпатии
70
Пол
Мужской
#19
HolySaint, да никто. я там даже тему сделал, денег предлагал. никто не хочет.
 

HolySaint

Пользователь
Регистрация
28 Авг 2017
Сообщения
4
Симпатии
1
Пол
Мужской
#20