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

Weapon Skin System 0.7.0-55

Нет прав для скачивания
Сообщения
2
Реакции
0
Кто цену назовет что бы допилить плагин до уровня меню как в этом посту + нужно добавить сохранение, возможность включить выбор скина рандомно + возможность выбора модели игрока + привязка к флагу.
 
Сообщения
264
Реакции
80
Помог
1 раз(а)
плагин супер но может кто сделает чтоб в меню были пункты например скины для awp нажимаешь и выбираешь скин а то все перемешано долга гор тать выбирать все скины в а дном может кто сделает
sergei, // "AK-47 Frontside" - имя требуемой модели, указанное в weapon_skins.ini
список скинов вы можете сами формировать
а можно чуть подробней? как именно?
 
Сообщения
52
Реакции
67
isss67wtf, Открываем weapon_skins.ini и формируем как нам нужно
"weapon_knife" "knife Skin Xmas" "models/weapon_skins/v_knife.mdl" "models/weapon_skins/p_knife.mdl" "models/weapon_skins/w_knife.mdl"
"weapon_knife" "knife Skin griff" "models/weapon_skins1/v_knife.mdl" "models/weapon_skins1/p_knife.mdl" "models/weapon_skins1/w_knife.mdl"
"weapon_knife" "knife Skin katana" "models/weapon_skins2/v_knife.mdl" "models/weapon_skins2/p_knife.mdl" "models/weapon_skins2/w_knife.mdl"
"weapon_knife" "knife Skin bayonet" "models/weapon_skins3/v_knife.mdl" "models/weapon_skins3/p_knife.mdl" "models/weapon_skins3/w_knife.mdl"
Снимок экрана (3).png
 
Сообщения
143
Реакции
68
Помог
1 раз(а)
wopox1337,
ade888, после 270 строки нужно ввести проверку на наличие флага.
Помогите разобраться до конца, пожалуйста.
Как делаю:
Код:
#define vip_flag ADMIN_LEVEL_H


Код:
#if defined DEFAULT_SKIN_MENU
public Command_ChangeSkin(id)
{
if(!is_user_connected(id))
return false;

if((get_user_flags(id) & vip_flag))
return true;

new menu = menu_create("Skin Menu", "SkinMenu_Handler");

new skin_info[SkinInfo];
for(new i; i < g_iWeaponSkinsCount; i++)
{
ArrayGetArray(g_aWeaponSkins, i, skin_info);
menu_additem(menu, skin_info[SkinName]);
}
menu_display(id, menu);

return false;
}

Но тут один нюанс, вместо того чтоб давало доступ по флагу "t" оно доступ блокирует. А всем тем кто не с флагом "t" доступ есть. А должно быть наоборот. Подскажите что не так делаю.
 
Сообщения
143
Реакции
68
Помог
1 раз(а)
Mistrick, большое спс. Моя неосторожность. Упустил...
 
Сообщения
264
Реакции
80
Помог
1 раз(а)
Mistrick, привет! я сделаю, ты мне только подскажи хоть чуть чуть прошу.
мне нужно всего лишь что бы по моим заданным командам /ak47 /m4a1 и т.д, открывался нужный мне ini файл со скинами

например делаю так
Код:
new const FILE_MODELS[] = "weapon_skins.ini";
new const FILE_MODELS2[] = "weapon_skins2.ini";

Код:
#if defined DEFAULT_SKIN_MENU
register_clcmd("say /ak47", "Command_ChangeSkin");
register_clcmd("say /m4a1", "Command_ChangeSkin");
register_clcmd("say /skinreset", "Command_ResetSkin");
#endif // DEFAULT_SKIN_MENU

Код:
public plugin_precache()
{
new file_path[128]; get_localinfo("amxx_configsdir", file_path, charsmax(file_path));
format(file_path, charsmax(file_path), "%s/%s", file_path, FILE_MODELS);
format(file_path, charsmax(file_path), "%s/%s", file_path, FILE_MODELS2);

вот как плагину сказать что бы при /m4a1 он открывал именно: weapon_skins2.ini
 
Последнее редактирование:
Сообщения
584
Реакции
1,006
Помог
18 раз(а)
isss67wtf, зачем городить кучу ини файлов, если можно выводить в меню только определенное оружие?
 
Сообщения
264
Реакции
80
Помог
1 раз(а)
Mistrick, Дело в том что в меню, все в перемешку. Я рак, и сделать под меню я не могу.
Но вот если получится сделать то что мне нужно ini. То я сделаю под меню через другой плагин!
 
Сообщения
584
Реакции
1,006
Помог
18 раз(а)
Код:
register_clcmd("say /ak47", "Command_ChangeSkinAk");
register_clcmd("say /m4a1", "Command_ChangeSkinM4");

public Command_ChangeSkinM4(id)
{
Command_ChangeSkin(id, CSW_M4A1);
}
public Command_ChangeSkinAk(id)
{
Command_ChangeSkin(id, CSW_AK47);
}
Код:
public Command_ChangeSkin(id, weapon)
{
new menu = menu_create("Skin Menu", "SkinMenu_Handler");

new skin_info[SkinInfo];
for(new i; i < g_iWeaponSkinsCount; i++)
{
ArrayGetArray(g_aWeaponSkins, i, skin_info);
if(skin_info[WeaponID] != weapon) continue;
menu_additem(menu, skin_info[SkinName]);
}
menu_display(id, menu);
}
 
Сообщения
264
Реакции
80
Помог
1 раз(а)
В общем скин m4a1 не меняется! Выбирается и не меняется!
Если после этого вызвать меню сброса скина, предлагает сбросить скин: ak47

Еще заметил, захожу за Теров, вызываю меню, выбираю скин m4a1, покупаю ak47 и мне уже назначен скин ak47.. бред..
28 Окт 2017
Если меняю местами с ak то m4 выберу, но ak уже нет!
"weapon_ak47" "AK-47 Bloodsport" "models/wss/v_ak47_1.mdl" "models/wss/p_ak47_1.mdl" "models/wss/w_ak47_1.mdl"
"weapon_ak47" "AK-47 Elite Build" "models/wss/v_ak47_2.mdl" "models/wss/p_ak47_2.mdl" "models/wss/w_ak47_2.mdl"
"weapon_ak47" "AK-47 Frontside Misty" "models/wss/v_ak47_3.mdl" "models/wss/p_ak47_3.mdl" "models/wss/w_ak47_3.mdl"
"weapon_ak47" "AK-47 Neon Revolution" "models/wss/v_ak47_4.mdl" "models/wss/p_ak47_4.mdl" "models/wss/w_ak47_4.mdl"
"weapon_ak47" "AK-47 Polar Bear" "models/wss/v_ak47_5.mdl" "models/wss/p_ak47_5.mdl" "models/wss/w_ak47_5.mdl"
"weapon_ak47" "AK-47 Propaganda" "models/wss/v_ak47_6.mdl" "models/wss/p_ak47_6.mdl" "models/wss/w_ak47_6.mdl"
"weapon_ak47" "AK-47 Rise" "models/wss/v_ak47_7.mdl" "models/wss/p_ak47_7.mdl" "models/wss/w_ak47_7.mdl"
"weapon_m4a1" "M4A1 Condor" "models/wss/v_m4a1_1.mdl" "models/wss/p_m4a1_1.mdl" "models/wss/w_m4a1_1.mdl"
"weapon_m4a1" "M4A1 Cyrex" "models/wss/v_m4a1_2.mdl" "models/wss/p_m4a1_2.mdl" "models/wss/w_m4a1_2.mdl"
"weapon_m4a1" "M4A1 Decimator" "models/wss/v_m4a1_3.mdl" "models/wss/p_m4a1_3.mdl" "models/wss/w_m4a1_3.mdl"
"weapon_m4a1" "M4A1 Flashback" "models/wss/v_m4a1_4.mdl" "models/wss/p_m4a1_4.mdl" "models/wss/w_m4a1_4.mdl"
"weapon_m4a1" "M4A1 Mecha Instrudes" "models/wss/v_m4a1_5.mdl" "models/wss/p_m4a1_5.mdl" "models/wss/w_m4a1_5.mdl"
"weapon_m4a1" "M4A4 Musica" "models/wss/v_m4a1_6.mdl" "models/wss/p_m4a1_6.mdl" "models/wss/w_m4a1_6.mdl"
"weapon_m4a1" "M4A4 Sharks Carnage" "models/wss/v_m4a1_7.mdl" "models/wss/p_m4a1_7.mdl" "models/wss/w_m4a1_7.mdl"
 
Сообщения
584
Реакции
1,006
Помог
18 раз(а)
Код:
public Command_ChangeSkin(id)
{
new menu = menu_create("Skin Menu", "SkinMenu_Handler");

new skin_info[SkinInfo];
for(new i, key[2]; i < g_iWeaponSkinsCount; i++)
{
ArrayGetArray(g_aWeaponSkins, i, skin_info);
if(skin_info[WeaponID] != weapon) continue;
key[0] = i;
menu_additem(menu, skin_info[SkinName], key);
}
menu_display(id, menu);
}
public SkinMenu_Handler(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu);
return PLUGIN_HANDLED;
}

new info[2], stuff;
menu_item_getinfo(menu, item, stuff, info, charsmax(info), _, _, stuff);

new skin = info[0];

new skin_info[SkinInfo];
ArrayGetArray(g_aWeaponSkins, skin, skin_info);

g_iPlayerSkins[id][skin_info[WeaponID]] = skin + 1;

new weapon, weaponid;
new cur_weapon = get_pdata_cbase(id, m_pActiveItem, XO_CBASEPLAYER);

#define MAX_ITEM_SLOTS 6

for(new i; i < MAX_ITEM_SLOTS; i++)
{
weapon = get_pdata_cbase(id, m_rgpPlayerItems_CBasePlayer + i, XO_CBASEPLAYER);

while (is_valid_pev(weapon))
{
weaponid = get_pdata_int(weapon, m_iId, XO_CBASEPLAYERWEAPON);

if(weaponid == skin_info[WeaponID])
{
set_weapon_skin(weapon, skin + 1);

if(weapon == cur_weapon)
{
if(skin_info[ModelV]) set_pev(id, pev_viewmodel, skin_info[ModelV]);
if(skin_info[ModelP]) set_pev(id, pev_weaponmodel, skin_info[ModelP]);
}
// stop cycles
i = MAX_ITEM_SLOTS; break;
}

weapon = get_pdata_cbase(weapon, m_pNext, XO_CBASEPLAYERWEAPON);
}
}

menu_destroy(menu);
return PLUGIN_HANDLED;
}
 
Сообщения
264
Реакции
80
Помог
1 раз(а)
Mistrick, Ошибки при компиляции
Код:
//AMXXPC compile.exe
// by the AMX Mod X Dev Team


//// weapon_skin_system.sma
//
// C:\test\cstrike\addons\amxmodx\scripting\weapon_skin_system.sma(78) : warning
217: loose indentation
// C:\test\cstrike\addons\amxmodx\scripting\weapon_skin_system.sma(79) : warning
217: loose indentation
// C:\test\cstrike\addons\amxmodx\scripting\weapon_skin_system.sma(101) : error
088: number of arguments does not match definition
// C:\test\cstrike\addons\amxmodx\scripting\weapon_skin_system.sma(105) : error
088: number of arguments does not match definition
// C:\test\cstrike\addons\amxmodx\scripting\weapon_skin_system.sma(287) : error
017: undefined symbol "weapon"
//
// 3 Errors.
// Could not locate output file C:\test\cstrike\addons\amxmodx\scripting\compile
d\weapon_skin_system.amx (compile failed).
//
// Compilation Time: 0,28 sec
// ----------------------------------------

Press enter to exit ...
 
Сообщения
264
Реакции
80
Помог
1 раз(а)
Mistrick, Вот теперь всё работает! Огромное человеческое тебе спасибо! :yes3:
28 Окт 2017
Я поделюсь мне не жалко, знаю многие хотели себе подменю со скинами!
Расскажу как себе это сделал я! (смотрите скриншоты)
Правда под-меню, я сделал с помощью плагина MenuSystem: https://dev-cs.ru/threads/1023/
Код:
[\w Меню моделей оружия]
say = /wss
cmd = player_menu1
"\wAK-47" "say /ak47"
"\wM4A1-4" "say /m4a1"
"\wСбросить скин" "say /skinreset"

Также в плагине сделана проверка на флаг!
Код:
#define FLAG_ACCESS (ADMIN_BAN|ADMIN_LEVEL_H)

Если нету флага, игрок увидит сообщение в чате.
У меня плагин работает исправно, всё чётко.. :hunter:
31 Окт 2017
Mistrick, Никак не получается избавится от: warning (Появляются они если сделать, проверку: админ/вип)
//// weapon_skin_system.sma
//
// D:\rehlds_public\cstrike\addons\amxmodx\scripting\weapon_skin_system.sma(308)
: warning 209: function "Command_ChangeSkin" should return a value
// D:\rehlds_public\cstrike\addons\amxmodx\scripting\weapon_skin_system.sma(371)
: warning 217: loose indentation
Что не так сделано, быть может есть вариант лучше?
Код:
#if AMXX_VERSION_NUM < 183
#include <colorchat>
#endif

#define FLAG_ACCESS (ADMIN_BAN|ADMIN_LEVEL_H)

new bool:has_used[32];

has_used[id] = true;

Код:
#if defined DEFAULT_SKIN_MENU
public Command_ChangeSkin(id, weapon)
{
if (!has_used[id])
{
if (!(get_user_flags(id) & FLAG_ACCESS))
{
client_print_color(id, print_team_default, "^1[^4WSS^1] ^3Скины оружий доступны только ^4VIP ^3игрокам^1.");
return PLUGIN_HANDLED;
}
}
new menu = menu_create("Skin Menu", "SkinMenu_Handler");

new skin_info[SkinInfo];
for(new i, key[2]; i < g_iWeaponSkinsCount; i++)
{
ArrayGetArray(g_aWeaponSkins, i, skin_info);
if(skin_info[WeaponID] != weapon) continue;
key[0] = i;
menu_additem(menu, skin_info[SkinName], key);
}
menu_display(id, menu);
}
public SkinMenu_Handler(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu);
return PLUGIN_HANDLED;
}

new info[2], stuff;
menu_item_getinfo(menu, item, stuff, info, charsmax(info), _, _, stuff);

new skin = info[0];

new skin_info[SkinInfo];
ArrayGetArray(g_aWeaponSkins, skin, skin_info);

g_iPlayerSkins[id][skin_info[WeaponID]] = skin + 1;

new weapon, weaponid;
new cur_weapon = get_pdata_cbase(id, m_pActiveItem, XO_CBASEPLAYER);

#define MAX_ITEM_SLOTS 6

for(new i; i < MAX_ITEM_SLOTS; i++)
{
weapon = get_pdata_cbase(id, m_rgpPlayerItems_CBasePlayer + i, XO_CBASEPLAYER);

while (is_valid_pev(weapon))
{
weaponid = get_pdata_int(weapon, m_iId, XO_CBASEPLAYERWEAPON);

if(weaponid == skin_info[WeaponID])
{
set_weapon_skin(weapon, skin + 1);

if(weapon == cur_weapon)
{
if(skin_info[ModelV]) set_pev(id, pev_viewmodel, skin_info[ModelV]);
if(skin_info[ModelP]) set_pev(id, pev_weaponmodel, skin_info[ModelP]);
}
// stop cycles
i = MAX_ITEM_SLOTS; break;
}

weapon = get_pdata_cbase(weapon, m_pNext, XO_CBASEPLAYERWEAPON);
}
}

menu_destroy(menu);
return PLUGIN_HANDLED;
}

public Command_ResetSkin(id)
{
if (!has_used[id])
{
if (!(get_user_flags(id) & FLAG_ACCESS))
{
client_print_color(id, print_team_default, "^1[^4WSS^1] ^3Команда доступна только ^4VIP ^3игрокам^1.");
return PLUGIN_HANDLED;
}
}
static weapons[][] =
{
"", "weapon_p228", "weapon_shield", "weapon_scout", "weapon_hegrenade", "weapon_xm1014", "weapon_c4",
"weapon_mac10", "weapon_aug", "weapon_smokegrenade", "weapon_elite", "weapon_fiveseven", "weapon_ump45",
"weapon_sg550", "weapon_galil", "weapon_famas", "weapon_usp", "weapon_glock18", "weapon_awp", "weapon_mp5navy",
"weapon_m249", "weapon_m3", "weapon_m4a1", "weapon_tmp", "weapon_g3sg1", "weapon_flashbang", "weapon_deagle",
"weapon_sg552", "weapon_ak47", "weapon_knife", "weapon_p90"
};

new menu = menu_create("Skin Reset", "SkinReset_Handler");

for(new i = 1, num[2]; i < 32; i++)
{
if(g_LoadedWeapons & (1 << i) && g_iPlayerSkins[id])
{
num[0] = i;
menu_additem(menu, weapons, num);
}
}

menu_display(id, menu);
return PLUGIN_HANDLED;
}

public SkinReset_Handler(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu);
return PLUGIN_HANDLED;
}

new info[2], buffer;
menu_item_getinfo(menu, item, buffer, info, charsmax(info), .callback = buffer);

new weaponid = info[0];

g_iPlayerSkins[id][weaponid] = 0;

has_used[id] = true;
menu_destroy(menu);
return PLUGIN_HANDLED;
}
#endif // DEFAULT_SKIN_MENU

 

Download all Attachments

Сообщения
263
Реакции
335
Помог
4 раз(а)
REVO, Я далеко не спец, и возможно не прав, но всё же.

1. 209: function "Command_ChangeSkin" should return a value
Добавь return PLUGIN_HANDLED;
Код:
public Command_ChangeSkin(id, weapon)
{
if (!has_used[id])
{
if (!(get_user_flags(id) & FLAG_ACCESS))
{
client_print_color(id, print_team_default, "^1[^4WSS^1] ^3Скины оружий доступны только ^4VIP ^3игрокам^1.");
return PLUGIN_HANDLED;
}
}
new menu = menu_create("Skin Menu", "SkinMenu_Handler");

new skin_info[SkinInfo];
for(new i, key[2]; i < g_iWeaponSkinsCount; i++)
{
ArrayGetArray(g_aWeaponSkins, i, skin_info);
if(skin_info[WeaponID] != weapon) continue;
key[0] = i;
menu_additem(menu, skin_info[SkinName], key);
}
menu_display(id, menu);
}
==>
public Command_ChangeSkin(id, weapon)
{
if (!has_used[id])
{
if (!(get_user_flags(id) & FLAG_ACCESS))
{
client_print_color(id, print_team_default, "^1[^4WSS^1] ^3Скины оружий доступны только ^4VIP ^3игрокам^1.");
return PLUGIN_HANDLED;
}
}
new menu = menu_create("Skin Menu", "SkinMenu_Handler");

new skin_info[SkinInfo];
for(new i, key[2]; i < g_iWeaponSkinsCount; i++)
{
ArrayGetArray(g_aWeaponSkins, i, skin_info);
if(skin_info[WeaponID] != weapon) continue;
key[0] = i;
menu_additem(menu, skin_info[SkinName], key);
}
menu_display(id, menu);
return PLUGIN_HANDLED;
}


2. warning 217: loose indentation
Наведи порядок в табуляции
Screenshot_2.png

3. А еще есть чудо статья от Tranquillity, https://dev-cs.ru/threads/1018/
 

Download all Attachments

Сообщения
264
Реакции
80
Помог
1 раз(а)
SonG, Скачал исходник который ты прикрепил! Варнингов нету..:yes3:
Но вот, команда: /wss не работает. А если я обычный игрок, она работает. (пишет скины только випам)
Команды: /ak47, /m4a1, /skinreset работают.
 
Сообщения
264
Реакции
80
Помог
1 раз(а)
SonG, /wss работает, но скины вперемешку! И в чат игры, пишет ещё.. :scratch_one-s_head:(скриншот прилагается)

В общем я выяснил. Убрав все варнинги получаем проблему как я писал выше: /wss
Но если не исправлять этот варнинг, то всё работает!
// D:\rehlds_public\cstrike\addons\amxmodx\scripting\weapon_skin_system.sma(308)
: warning 209: function "Command_ChangeSkin" should return a value
Стоит его только поправить
Код:
return PLUGIN_HANDLED;

/wss не работает.
 

Вложения

Последнее редактирование:
Сообщения
162
Реакции
4
Помог
3 раз(а)
Подскажите как сделать сохранение скина?Так и не разобрался как реализовать.
 

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

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