Weapons Skins Manager 0.0.1

Статус
В этой теме нельзя размещать новые ответы.
Сообщения
3
Реакции
0
Ошибка
- 19:37:48: Start of error session.
L 08/30/2018 - 19:37:48: Info (map "de_dust2_2x2") (file "addons/amxmodx/logs/error_20180830.log")
L 08/30/2018 - 19:37:48: [HAMSANDWICH] Failed to retrieve classtype for ";", hook for "ItemDeploy_Post" not active.
L 08/30/2018 - 19:37:48: [AMXX] Displaying debug trace (plugin "weapons_skins_manager.amxx")
L 08/30/2018 - 19:37:48: [AMXX] Run time error 10: native error (native "RegisterHam")
L 08/30/2018 - 19:37:48: [AMXX] [0] weapons_skins_manager.sma::plugin_precache (line 79)
ОС
Windows
Amx Mod X
Amx Mod X1.8.2 dev
Билд
Protocol Version 48
exe version 1.6.3.7
Exe build:23:41:56 aug 15 2011 (5408)
ReGamedll
-
Версия Metamod
1.21.1-am 2013-09-26
Список метамодулей
Amx mod x
mmtimer
dproto ef
mysql
fun
engine
fake meta
cstrike
csx
Ham sandwich
Список плагинов
admin.amxx			; Админ плагин.
=============================================================================================
; ОСНОВНОЕ
advanced_bans.amxx ; Бан со скриншотом.
;admincmd.amxx ; консольные команды админа.
adminhelp.amxx ; помощь по консольным командам админа.
adminslots.amxx ; резервируемые слоты.
multilingual.amxx ; языки сервера.
=============================================================================================
; МЕНЮ
menufront.amxx ; конец админ меню.
cmdmenu.amxx ; командное меню.
plmenu.amxx ; меню игроков.
telemenu.amxx ; телепорт меню.
mapsmenu.amxx ; меню карт.
pluginmenu.amxx ; меню показывающее плагины.
menu_donata.amxx ; меню доброго админа
amx_gag.amxx ; глушилка адмена
weaponmenu_ru.amxx ; админ оружейка
admin_esp_mini.amxx ; админ спектатор
=============================================================================================
; ЧАТ / СООБЩЕНИЯ
adminchat.amxx ; консольные чат команды.
antiflood.amxx ; предупреждения игроков о флуде.
scrollmsg.amxx ; прокрутка сообщений.
imessage.amxx ; отображение сообщений на экране.
adminvote.amxx ; команды голосования.
=============================================================================================
; СМЕНА КАРТ
;nextmap.amxx ; показывает следующую карту из mapcycle.
;mapchooser.amxx ; голосование за карту.
;timeleft.amxx ; показывает оставшееся время игры на карте.
mapmanager_ru.amxx ; Заменяет то что выше. Голосование за карту и т.д.
=============================================================================================
; КОНФИГУРАЦИИ
pausecfg.amxx ; включает / выключает плагины.
statscfg.amxx ; позволяет управлять статистикой сервера через меню.
=============================================================================================
; COUNTER-STRIKE
restmenu.amxx ; меню ограничения оружия.
;statsx.amxx ; статистика смертей / убийств подряд.
;stats_logging.amxx ; Статистика оружия.
statsx_shell.amxx ; Статистика сервера.
=============================================================================================
; ДРУГИЕ ПЛАГИНЫ
ad_manager.amxx ; Реклама в чате.
Colored_Chat.amxx ; Русский, Английский чат.
AmxMenu.amxx ; Меню управления для обычных Админов.
AdminMenu.amxx ; Админ Меню.
VipMenu.amxx ; Вип Меню.
inforank.amxx ; Информация о ранге игрока.
rs_v1.3.amxx ; Обнуление счета.
fire_in_the_hole.amxx ; Обозначение брошенной гранаты (rus).
Voteban.amxx ; Голосование за бан игрока.
admin_check.amxx ; Админы, Випы On-Line.
csnadedrops.amxx ; После смерти игрока, остаются гранаты.
connecting.amxx ; Кто коннектится к серверу.
win_team.amxx ; Какая команда победила.
admins_online.amxx ; Количество онлайн Админов.
damager.amxx ; Показывает нанесенный урон.
Bomb_DhuD.amxx ; Таймет бомбы.
speclist_rus.amxx ; Показывает наблюдающих игроков.
knife_duel.amxx ; Дуэль на ножах (3 раза о стену).
killa_hp.amxx ; Сколько осталось HP у противника.
amx_autodemorec.amxx ; Автоматическая запись демо.
parachute.amxx ; Парашют.
knife_round.amxx ; Разминка на ножах!
welcome.amxx ; Приветствие игрока со звуком.
randomskies.amxx ; Смена неба.
mutemenu.amxx ; Меню затыкание игрока.
menu.amxx ; Меню сервера.
fwd_Skins.amxx ; админ скины
new_antireconnect.amxx ; анти реконект
weapons_skins_manager.amxx debug ; привязка скинов оружия
Автор плагина
Vaqtincha
Версия плагина
0.0.1
Исходный код
// Copyright © 2016 Vaqtincha
/******************************************************************
* Credits: to
*
* - ConnorMcLeod for plugin "Weapon Models"
*
*******************************************************************/

#define VERSION "0.0.1"

#define MAX_MODEL_LENGTH 64
#define MAX_PATH_LENGTH 128
#define MAX_PLAYERS 32
#define MAX_PARAMETERS 4

#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>

#define AllocString(%1) engfunc(EngFunc_AllocString,%1)
#define SetModel(%1,%2) engfunc(EngFunc_SetModel,%1,%2)
#define IsPlayer(%1) (1 <= %1 <= g_iMaxPlayers)

#define PEV_CUSTOM_MODEL pev_iuser3
#define PEV_ADD_COUNTER pev_iuser4

const m_rgpPlayerItems_CWeaponBox = 34;
const XO_CBASEPLAYERWEAPON = 4;

new Trie:g_tViewModels
new Trie:g_tWeaponModels
new Trie:g_tWorldModels
new g_iAccess, g_iMaxPlayers

public plugin_precache()
{
new szConfigFile[MAX_PATH_LENGTH], szMsg[128]
get_localinfo("amxx_configsdir", szConfigFile, charsmax(szConfigFile))
add(szConfigFile, charsmax(szConfigFile), "/weapons_skins.ini")

if(!file_exists(szConfigFile))
{
formatex(szMsg, charsmax(szMsg), "[ERROR] Config file ^"%s^" not found!", szConfigFile)
set_fail_state(szMsg)
return
}
new iFilePointer = fopen(szConfigFile, "rt")
if(!iFilePointer)
{
return
}

new Trie:tRegisterWeaponDeploy = TrieCreate()
new szDatas[192], szSetting[12], szSymb[3], szFlags[32]
new szWeaponClass[32]
new szViewModel[MAX_MODEL_LENGTH], szWeaponModel[MAX_MODEL_LENGTH], szWorldModel[MAX_MODEL_LENGTH]
new szOldWorldModel[MAX_MODEL_LENGTH]

while(!feof(iFilePointer))
{
fgets(iFilePointer, szDatas, charsmax(szDatas))
trim(szDatas)
if(!szDatas[0] || szDatas[0] == ';' || szDatas[0] == '#')
{
continue
}
if(equal(szDatas, "AccessFlag", 10))
{
parse(szDatas, szSetting, charsmax(szSetting), szSymb, charsmax(szSymb), szFlags, charsmax(szFlags))
g_iAccess = read_flags(szFlags)
continue
}
if(parse(szDatas, szWeaponClass, charsmax(szWeaponClass),
szViewModel, charsmax(szViewModel), szWeaponModel, charsmax(szWeaponModel),
szWorldModel, charsmax(szWorldModel)) == MAX_PARAMETERS)
{
if(!TrieKeyExists(tRegisterWeaponDeploy, szWeaponClass))
{
TrieSetCell
(
tRegisterWeaponDeploy,
szWeaponClass,
RegisterHam(Ham_Item_Deploy, szWeaponClass, "ItemDeploy_Post", true)
)
RegisterHam(Ham_AddPlayerItem, "player", "AddPlayerItem_Pre", 0)
}
format(szViewModel, charsmax(szViewModel), "models/%s.mdl", szViewModel)
if(file_exists(szViewModel))
{
if(!g_tViewModels)
{
g_tViewModels = TrieCreate()
}
TrieSetCell(g_tViewModels, szWeaponClass, AllocString(szViewModel))
precache_model(szViewModel)
}
format(szWeaponModel, charsmax(szWeaponModel), "models/%s.mdl", szWeaponModel)
if(file_exists(szWeaponModel))
{
if(!g_tWeaponModels)
{
g_tWeaponModels = TrieCreate()
}
TrieSetCell(g_tWeaponModels, szWeaponClass, AllocString(szWeaponModel))
precache_model(szWeaponModel)
}
format(szWorldModel, charsmax(szWorldModel), "models/%s.mdl", szWorldModel)
if(file_exists(szWorldModel))
{
if(!g_tWorldModels)
{
g_tWorldModels = TrieCreate()
}
if(szWeaponClass[10] == 'n') // weapon_mp5navy
{
// replace(szWeaponClass, charsmax(szWeaponClass), "navy", "")
szWeaponClass[10] = EOS
}
formatex(szOldWorldModel, charsmax(szOldWorldModel), "models/w_%s.mdl", szWeaponClass[7])
if(!TrieKeyExists(g_tWorldModels, szOldWorldModel))
{
TrieSetString(g_tWorldModels, szOldWorldModel, szWorldModel)
precache_model(szWorldModel)
}
}
}
}
fclose(iFilePointer)
TrieDestroy(tRegisterWeaponDeploy)
}

public plugin_init()
{
register_plugin("Weapons Skins Manager", VERSION, "Vaqtincha")

if(g_tWorldModels)
{
register_forward(FM_SetModel, "SetModel_Pre", 0)
}
g_iMaxPlayers = get_maxplayers()
}

public ItemDeploy_Post(wEnt)
{
if(wEnt <= 0)
return

const m_pPlayer = 41

new id = get_pdata_cbase(wEnt, m_pPlayer, .linuxdiff = 4)
if(IsPlayer(id) && pev(wEnt, PEV_CUSTOM_MODEL))
{
new iszNewModel, szWeaponClass[32]
pev(wEnt, pev_classname, szWeaponClass, charsmax(szWeaponClass))
if(g_tViewModels)
{
if(TrieGetCell(g_tViewModels, szWeaponClass, iszNewModel))
{
set_pev(id, pev_viewmodel, iszNewModel)
}
}
if(g_tWeaponModels)
{
if(TrieGetCell(g_tWeaponModels, szWeaponClass, iszNewModel))
{
set_pev(id, pev_weaponmodel, iszNewModel)
}
}
}
}

public AddPlayerItem_Pre(player, weapon)
{
if ((get_user_flags(player) & g_iAccess) && !pev(weapon, PEV_ADD_COUNTER)) {
set_pev(weapon, PEV_CUSTOM_MODEL, 1)
}

set_pev(weapon, PEV_ADD_COUNTER, 1)
}

public SetModel_Pre(iEnt, const szModel[])
{
// if(!pev_valid(iEnt))
// return FMRES_IGNORED

new id = pev(iEnt, pev_owner)
if(!IsPlayer(id))
return FMRES_IGNORED

#define MAX_ITEM_TYPES 6
for(new i, weapon; i < MAX_ITEM_TYPES; i++) {
weapon = get_pdata_cbase(iEnt, m_rgpPlayerItems_CWeaponBox + i, XO_CBASEPLAYERWEAPON);

if (pev_valid(weapon) == 2 && pev(weapon, PEV_CUSTOM_MODEL)) {
new szNewModel[MAX_MODEL_LENGTH]
if(TrieGetString(g_tWorldModels, szModel, szNewModel, charsmax(szNewModel)))
{
SetModel(iEnt, szNewModel)
return FMRES_SUPERCEDE
}
}
}

return FMRES_IGNORED
}

public plugin_end()
{
if(g_tViewModels)
TrieDestroy(g_tViewModels)
if(g_tWeaponModels)
TrieDestroy(g_tWeaponModels)
if(g_tWorldModels)
TrieDestroy(g_tWorldModels)
}
Добрый вечер,форумчане,столкнулся с проблемой,поставил плагин по инструкции,но при заходе на сервер никакие модели не докачиваются,соответственно в игре имею стандартные модели оружия,все данные указал в посте,помогите пожалуйста,кто может,спасибо.
 
Сообщения
3,023
Реакции
1,731
Помог
79 раз(а)
тема закрыта, ещё раз создавайте и заполните поля верно ( подсказка: читаем зеленый текст )
 
Статус
В этой теме нельзя размещать новые ответы.

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

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