Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

Models For Steam

Статус пользователя Andrei
сообщение 30.9.2012, 9:31
Сообщение #1


Стаж: 15 лет

Сообщений: 1335
Благодарностей: 693
Полезность: 740

MModels For Steam by Andrei | По просьбе https://c-s.net.ua/forum/topic43322.html?pi...mp;#entry339553

MОписание:
Плагин позволяет устанавливать на определенный Steam ID: модели игрока,модели ножа во всех плоскостях.

MУстановка:
Скомпилировать плагин. В папке \cstrike\addons\amxmodx\configs создать файл steam_models.ini
Внести в него содержимое: "STEAM_0:0:15256582" "vip" "models/v_knife.mdl" "models/p_knife.mdl" - где и есть ваши настройки.

Извиняюсь,но заливать влом.

Скрытый текст
Код
#include < amxmodx >
#include < fakemeta >
#include < cstrike >
#include < hamsandwich >

new const     PLUGIN_NAME[ ] = "Steam Models";
new const     PLUGIN_VERSION[ ] = "0.1";
new const     PLUGIN_AUTHOR[ ]     = "Bos93";

new const CUSTOMIZATION_FILE[] = "/steam_models.ini"

#define IsValidPrivateData(%0)     ( pev_valid( %0 ) == 2 )

const MAX_CLIENTS = 32
const MAX_MODEL_LENGTH = 64;

new szNewVModel[ MAX_MODEL_LENGTH ];
new szNewPModel[ MAX_MODEL_LENGTH ];
new szNewPlayerModel[ MAX_MODEL_LENGTH ];

new g_AuthID[MAX_CLIENTS];
new g_IP[MAX_CLIENTS];
new g_Name[MAX_CLIENTS];
new g_ParseAdmins[MAX_CLIENTS];

new g_iAdminsCheck[MAX_CLIENTS + 1];

const XO_WEAPON = 4;
const m_pPlayer = 41;

public plugin_precache()
{
    new szModelsFile[128]
    get_localinfo("amxx_configsdir", szModelsFile, charsmax(szModelsFile))
    add(szModelsFile, charsmax(szModelsFile), CUSTOMIZATION_FILE)

    new iFile = fopen(szModelsFile, "rt")

    if(!iFile)
    {
        return
    }

    new szDatas[192];

    new c;
    while(!feof(iFile))
    {
        fgets(iFile, szDatas, charsmax(szDatas));

        trim(szDatas);

        if(!(c=szDatas[0]) || c == ';' || c == '#' || (c == '/' && szDatas[1] == '/'))
        {
            continue;
        }

        parse(szDatas, g_ParseAdmins, charsmax( g_ParseAdmins ), szNewPlayerModel, charsmax( szNewPlayerModel ), szNewVModel, charsmax( szNewVModel ), szNewPModel, charsmax( szNewPModel )  );

        new szPlayerModel[ 32 ];
    
        formatex( szPlayerModel, charsmax( szPlayerModel ), "models/player/%s/%s.mdl", szNewPlayerModel , szNewPlayerModel );
        engfunc( EngFunc_PrecacheModel, szNewVModel );
        engfunc( EngFunc_PrecacheModel, szNewPModel );
        engfunc( EngFunc_PrecacheModel, szPlayerModel );
    }

    fclose( iFile );
}

public client_connect( pPlayer )
{
    get_user_authid( pPlayer, g_AuthID , charsmax( g_AuthID ) );
    get_user_name( pPlayer, g_Name , charsmax( g_Name ) );
    get_user_ip( pPlayer, g_IP , charsmax( g_IP ) );

    if( !equal( g_AuthID , g_ParseAdmins ) && !equal( g_Name , g_ParseAdmins ) && !equal( g_IP , g_ParseAdmins ))
    {
        return;
    }

    g_iAdminsCheck[ pPlayer ] = true;
}

public plugin_init()
{
    register_plugin( PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR );

    RegisterHam( Ham_Spawn, "player", "CBasePlayer__Spawn_Post", .Post = true );
    RegisterHam( Ham_Item_Deploy, "weapon_knife", "CBaseWeapon__Deploy_Post", .Post = true );
}

public CBasePlayer__Spawn_Post( pPlayer )
{
        if( !is_user_alive( pPlayer ) || !g_iAdminsCheck[ pPlayer ] )
    {
                return HAM_HANDLED;
    }

    cs_set_user_model( pPlayer, szNewPlayerModel );

    return HAM_IGNORED;
}

public CBaseWeapon__Deploy_Post( pEntity )
{
        if( !IsValidPrivateData( pEntity ) )
    {
                return HAM_HANDLED;
    }

    new pPlayer;

    pPlayer = get_pdata_cbase( pEntity , m_pPlayer , XO_WEAPON );

        if( !g_iAdminsCheck[ pPlayer ] )
    {
                return HAM_HANDLED;
    }

    set_pev( pPlayer, pev_viewmodel2, szNewVModel );
    set_pev( pPlayer, pev_weaponmodel2, szNewPModel );

    return HAM_IGNORED;
}


Отредактировал: Bos93, - 30.9.2012, 10:40
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   Цитировать сообщение
Статус пользователя Andrei
сообщение 30.9.2012, 10:32
Сообщение #2


Стаж: 15 лет

Сообщений: 1335
Благодарностей: 693
Полезность: 740

Добавлена поддержка ника\айпи

Скрытый текст
Код
#include < amxmodx >
#include < fakemeta >
#include < cstrike >
#include < hamsandwich >

new const     PLUGIN_NAME[ ] = "Steam Models";
new const     PLUGIN_VERSION[ ] = "0.1";
new const     PLUGIN_AUTHOR[ ]     = "Bos93";

new const CUSTOMIZATION_FILE[] = "/steam_models.ini"

#define IsValidPrivateData(%0)     ( pev_valid( %0 ) == 2 )

const MAX_CLIENTS = 32
const MAX_MODEL_LENGTH = 64;

new szNewVModel[ MAX_MODEL_LENGTH ];
new szNewPModel[ MAX_MODEL_LENGTH ];
new szNewPlayerModel[ MAX_MODEL_LENGTH ];

new g_AuthID[MAX_CLIENTS];
new g_IP[MAX_CLIENTS];
new g_Name[MAX_CLIENTS];
new g_ParseAdmins[MAX_CLIENTS];

new g_iAdminsCheck[MAX_CLIENTS + 1];

const XO_WEAPON = 4;
const m_pPlayer = 41;

public plugin_precache()
{
    new szModelsFile[128]
    get_localinfo("amxx_configsdir", szModelsFile, charsmax(szModelsFile))
    add(szModelsFile, charsmax(szModelsFile), CUSTOMIZATION_FILE)

    new iFile = fopen(szModelsFile, "rt")

    if(!iFile)
    {
        return
    }

    new szDatas[192];

    new c;
    while(!feof(iFile))
    {
        fgets(iFile, szDatas, charsmax(szDatas));

        trim(szDatas);

        if(!(c=szDatas[0]) || c == ';' || c == '#' || (c == '/' && szDatas[1] == '/'))
        {
            continue;
        }

        parse(szDatas, g_ParseAdmins, charsmax( g_ParseAdmins ), szNewPlayerModel, charsmax( szNewPlayerModel ), szNewVModel, charsmax( szNewVModel ), szNewPModel, charsmax( szNewPModel )  );

        new szPlayerModel[ 32 ];
    
        formatex( szPlayerModel, charsmax( szPlayerModel ), "models/player/%s/%s.mdl", szNewPlayerModel , szNewPlayerModel );
        engfunc( EngFunc_PrecacheModel, szNewVModel );
        engfunc( EngFunc_PrecacheModel, szNewPModel );
        engfunc( EngFunc_PrecacheModel, szPlayerModel );
    }

    fclose( iFile );
}

public client_connect( pPlayer )
{
    get_user_authid( pPlayer, g_AuthID , charsmax( g_AuthID ) );
    get_user_name( pPlayer, g_Name , charsmax( g_Name ) );
    get_user_ip( pPlayer, g_IP , charsmax( g_IP ) );

    if( !equal( g_AuthID , g_ParseAdmins ) && !equal( g_Name , g_ParseAdmins ) && !equal( g_IP , g_ParseAdmins ))
    {
        return;
    }

    g_iAdminsCheck[ pPlayer ] = true;
}

public plugin_init()
{
    register_plugin( PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR );

    RegisterHam( Ham_Spawn, "player", "CBasePlayer__Spawn_Post", .Post = true );
    RegisterHam( Ham_Item_Deploy, "weapon_knife", "CBaseWeapon__Deploy_Post", .Post = true );
}

public CBasePlayer__Spawn_Post( pPlayer )
{
        if( !is_user_alive( pPlayer ) || !g_iAdminsCheck[ pPlayer ] )
    {
                return HAM_HANDLED;
    }

    cs_set_user_model( pPlayer, szNewPlayerModel );

    return HAM_IGNORED;
}

public CBaseWeapon__Deploy_Post( pEntity )
{
        if( !IsValidPrivateData( pEntity ) )
    {
                return HAM_HANDLED;
    }

    new pPlayer;

    pPlayer = get_pdata_cbase( pEntity , m_pPlayer , XO_WEAPON );

        if( !g_iAdminsCheck[ pPlayer ] )
    {
                return HAM_HANDLED;
    }

    set_pev( pPlayer, pev_viewmodel2, szNewVModel );
    set_pev( pPlayer, pev_weaponmodel2, szNewPModel );

    return HAM_IGNORED;
}


В конфигурационном файле может быть теперь еще и:

"127.0.0.1" "vip" "models/v_knife.mdl" "models/p_knife.mdl"
"Andrei" "models/v_knife.mdl" "models/p_knife.mdl"

Отредактировал: Bos93, - 30.9.2012, 10:40
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя s-nesterov
сообщение 30.9.2012, 10:35
Сообщение #3


Стаж: 14 лет

Сообщений: 657
Благодарностей: 74
Полезность: 15

ошибка при компиляции
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Surf
сообщение 30.9.2012, 10:36
Сообщение #4


Стаж: 14 лет

Сообщений: 1089
Благодарностей: 501
Полезность: 583

Код
get_user_auth( Index, Auth[ ], iLen )
{
    get_user_authid( Index, Auth, iLen);
}


wtf

+ есть у нас админ, со steamid (например): STEAM_0:1:12345678

я беру и захожу с ником "STEAM_0:1:12345678"
и вауля у меня моделька

Отредактировал: Surf, - 30.9.2012, 10:38
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Andrei
сообщение 30.9.2012, 10:42
Сообщение #5


Стаж: 15 лет

Сообщений: 1335
Благодарностей: 693
Полезность: 740

Поправил ошибку. Я знаю,надо делать по флагу,как в uers.ini,но там чет геморно.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя RedL1ne
сообщение 30.9.2012, 12:45
Сообщение #6


Стаж: 15 лет

Сообщений: 3828
Благодарностей: 1854
Полезность: 876

В чем конкретные отличия от этого? http://forums.alliedmods.net/showthread.php?t=106094
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя G@vRiK
сообщение 5.10.2012, 18:13
Сообщение #7


Стаж: 16 лет

Сообщений: 17
Благодарностей: 1
Полезность: 0

Bos93, сделай пожалуйста для зомби мода, т.е. вместо cs_set_user_model, было zp_override_user_model. И чтобы только по нику было и без моделей ножа, "NickName" "model", и чтобы для всех было, для админов и для игроков, пытался сам сделать, не получается, выдаёт ошибку 088. Заранее спасибо.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя s-nesterov
сообщение 5.10.2012, 18:34
Сообщение #8


Стаж: 14 лет

Сообщений: 657
Благодарностей: 74
Полезность: 15

Есть плагин который качает дым если был удален.Можно ли этот плагин использовать вместо нее?Чтобы даже на стим закачивался спрайт дыма .
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Andrei
сообщение 5.10.2012, 18:34
Сообщение #9


Стаж: 15 лет

Сообщений: 1335
Благодарностей: 693
Полезность: 740

Скрытый текст
Код
#include < amxmodx >
#include < fakemeta >
#include < hamsandwich >

new const     PLUGIN_NAME[ ] = "Steam Models";
new const     PLUGIN_VERSION[ ] = "0.1";
new const     PLUGIN_AUTHOR[ ]     = "Bos93";

native zp_override_user_model(id, const newmodel[], modelindex = 0)

new const CUSTOMIZATION_FILE[] = "/steam_models.ini"

#define IsValidPrivateData(%0)     ( pev_valid( %0 ) == 2 )

const MAX_CLIENTS = 32
const MAX_MODEL_LENGTH = 64;

new szNewPlayerModel[ MAX_MODEL_LENGTH ];

new g_Name[MAX_CLIENTS];
new g_ParseAdmins[MAX_CLIENTS];

new g_iAcces[MAX_CLIENTS + 1];

public plugin_precache()
{
    new szModelsFile[128]
    get_localinfo("amxx_configsdir", szModelsFile, charsmax(szModelsFile))
    add(szModelsFile, charsmax(szModelsFile), CUSTOMIZATION_FILE)

    new iFile = fopen(szModelsFile, "rt")

    if(!iFile)
    {
        return
    }

    new szDatas[192];

    new c;
    while(!feof(iFile))
    {
        fgets(iFile, szDatas, charsmax(szDatas));

        trim(szDatas);

        if(!(c=szDatas[0]) || c == ';' || c == '#' || (c == '/' && szDatas[1] == '/'))
        {
            continue;
        }

        parse(szDatas, g_ParseAdmins, charsmax( g_ParseAdmins ), szNewPlayerModel, charsmax( szNewPlayerModel ) );

        new szPlayerModel[ 32 ];
    
        formatex( szPlayerModel, charsmax( szPlayerModel ), "models/player/%s/%s.mdl", szNewPlayerModel , szNewPlayerModel );
        engfunc( EngFunc_PrecacheModel, szPlayerModel );
    }

    fclose( iFile );
}

public client_connect( pPlayer )
{
    get_user_name( pPlayer, g_Name , charsmax( g_Name ) );

    if( !equal( g_Name , g_ParseAdmins ) )
    {
        return;
    }

    g_iAcces[ pPlayer ] = true;
}

public plugin_init()
{
    register_plugin( PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR );

    RegisterHam( Ham_Spawn, "player", "CBasePlayer__Spawn_Post", .Post = true );
}

public CBasePlayer__Spawn_Post( pPlayer )
{
    if( !is_user_alive( pPlayer ) || !g_iAcces[ pPlayer ] )
    {
                return HAM_HANDLED;
    }

    zp_override_user_model( pPlayer, szNewPlayerModel );

    return HAM_IGNORED;
}


Отредактировал: Bos93, - 5.10.2012, 18:35
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   + Цитировать сообщение
Статус пользователя G@vRiK
сообщение 5.10.2012, 20:22
Сообщение #10


Стаж: 16 лет

Сообщений: 17
Благодарностей: 1
Полезность: 0

В ICQ не отвечаешь, напишу тут. Спасибо, но тут опять что-то не то. Когда я под админским ником, модель стоит, когда меняю ник, тут же модель изчезает, но на следующий раунд, когда я под другим ником (не админским), модель снова ставится. Так и должно быть?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Andrei
сообщение 5.10.2012, 20:29
Сообщение #11


Стаж: 15 лет

Сообщений: 1335
Благодарностей: 693
Полезность: 740

Цитата(G@vRiK @ 5.10.2012, 20:22) *
В ICQ не отвечаешь, напишу тут. Спасибо, но тут опять что-то не то. Когда я под админским ником, модель стоит, когда меняю ник, тут же модель изчезает, но на следующий раунд, когда я под другим ником (не админским), модель снова ставится. Так и должно быть?

Цитата
"NickName" "model"
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя G@vRiK
сообщение 5.10.2012, 20:48
Сообщение #12


Стаж: 16 лет

Сообщений: 17
Благодарностей: 1
Полезность: 0

Ты наверно не понял. Смотри. В файле стоит например "unnamed" "vip"(админ), я захожу на сервер под этим ником, модель стоит, меняю потом на Player, модель сразу изчезает, но на следующий раунд модель опять стоит, хотя ник Player
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Andrei
сообщение 5.10.2012, 21:00
Сообщение #13


Стаж: 15 лет

Сообщений: 1335
Благодарностей: 693
Полезность: 740

Модель не может изменится моментально после смены ника.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя G@vRiK
сообщение 5.10.2012, 21:13
Сообщение #14


Стаж: 16 лет

Сообщений: 17
Благодарностей: 1
Полезность: 0

Может. И ещё один глюк, я обратил внимание, что меняется модель у того, кто стоит на последней строчке в файле .ini
"unnamed" "vip"
"Player" "zombie"
"NoName" "human"
Модель ставится только NoName, почему?

Отредактировал: G@vRiK, - 5.10.2012, 21:26
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя G@vRiK
сообщение 6.10.2012, 19:45
Сообщение #15


Стаж: 16 лет

Сообщений: 17
Благодарностей: 1
Полезность: 0

Цитата(G@vRiK @ 5.10.2012, 22:13) *
Может. И ещё один глюк, я обратил внимание, что меняется модель у того, кто стоит на последней строчке в файле .ini
"unnamed" "vip"
"Player" "zombie"
"NoName" "human"
Модель ставится только NoName, почему?

Bos93, как сделать чтобы все строки считало, а не только последнюю? Ответь пожалуйста, или кто-нибудь помогите. Спасибо заранее.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Andrei
сообщение 6.10.2012, 20:02
Сообщение #16


Стаж: 15 лет

Сообщений: 1335
Благодарностей: 693
Полезность: 740

Я не хочу поддерживать данный плагин,так как им пользоваться будут макс два человека,я лучше бы что нибудь другое написал,но нет идей.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя G@vRiK
сообщение 6.10.2012, 20:06
Сообщение #17


Стаж: 16 лет

Сообщений: 17
Благодарностей: 1
Полезность: 0

Цитата(Bos93 @ 6.10.2012, 21:02) *
Я не хочу поддерживать данный плагин,так как им пользоваться будут макс два человека,я лучше бы что нибудь другое написал,но нет идей.

Да я весь инет облазил, ни где не нашёл, как считывать все строки, а не только последнюю, а сам я не разбираюсь в file.inc
Там же вроде не сложно, как считывать все строки... Помоги)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Safety1st
сообщение 7.10.2012, 4:40
Сообщение #18
Стаж: 14 лет
Город: Moscow

Сообщений: 7228
Благодарностей: 8071
Полезность: 196

Цитата(G@vRiK @ 5.10.2012, 22:48) *
В файле стоит например "unnamed" "vip"(админ), я захожу на сервер под этим ником, модель стоит, меняю потом на Player, модель сразу изчезает, но на следующий раунд модель опять стоит, хотя ник Player

В плагине не предусмотрено изменение настроек текущего игрока. Настройки применяются только к новым игрокам.

Цитата(G@vRiK @ 5.10.2012, 23:13) *
Модель ставится только NoName, почему?

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

G@vRiK, в силу
Цитата(Bos93 @ 6.10.2012, 22:02) *
Я не хочу поддерживать данный плагин,так как им пользоваться будут макс два человека

про плагин лучше забыть. Создать что-то часто не так сложно, чем впоследствии допилить, чтобы всё работало чётко. Сейчас плагин совсем не крут.


Для игроков используйте плагин Players Models.


Цитата(Bos93 @ 6.10.2012, 22:02) *
я лучше бы что нибудь другое написал,но нет идей.

У меня идей по созданию/подпиливанию плагинов немеряно, обращайся. А кодить по делу всегда полезнее и интереснее.

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

Плагин при старте карты:
- проверяет наличие конфигов для карты в папках \configs\csdm\extraconfigs и \configs\maps . Если они есть - успокаивается.
- если нет: сканирует список entity по classname оружия + classname "game_player_equip", запоминает в Trie.
- строит и сохраняет конфиг с настройками меню для CSDM
- строит и сохраняет конфиг с настройками карты в \configs\maps , чтобы в будущем вызывался первый конфиг командой csdm_reload

'Ленивый' человек ставит плагин, задаёт мапцикл и время мапы 3 минуты. Сервер сам прогоняет весь мапцикл, создаются все нужные конфиги. Профит :D

Отредактировал: Safety1st, - 7.10.2012, 4:41
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя G@vRiK
сообщение 7.10.2012, 7:24
Сообщение #19


Стаж: 16 лет

Сообщений: 17
Благодарностей: 1
Полезность: 0

Цитата(Safety1st @ 7.10.2012, 5:40) *
про плагин лучше забыть. Создать что-то часто не так сложно, чем впоследствии допилить, чтобы всё работало чётко. Сейчас плагин совсем не крут.


Для игроков используйте плагин Players Models.

Мне нужно для Zombie Plague, а то что вы выложили выше, не подходит, т.к. в zp применяется команда zp_override_user_model
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Тема закрытаНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: