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

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

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

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

steam_models

, steam_models для ReHLDS
Статус пользователя ALTnick
сообщение 20.3.2017, 15:23
Сообщение #1


Стаж: 11 лет

Сообщений: 221
Благодарностей: 20
Полезность: 5

парни кто умеет переписывать плагины для ReHLDS
вот довольна таки не плохой плагин steam_models.sma который выдаёт модельку стим игрокам
steam_models.sma

Код:
#include <amxmodx>
#include <cstrike>
#include <fakemeta>
#include <hamsandwich>
#include <amxmisc>

#pragma semicolon 1

#define MAX_PLAYERS 32

#define BIT_VALID(%1,%2) ((%1) & (1 << ((%2) - 1)))
#define BIT_ADD(%1,%2) ((%1) |= (1 << ((%2) - 1)))
#define BIT_SUB(%1,%2) ((%1) &= ~(1 << ((%2) - 1)))
#define BIT_NOT_VALID(%1,%2) (~(%1) & (1 << ((%2) - 1)))

new g_iBitClientAccess, g_iBitCustomModel;

///модели для steam игроков, плагин работает только с dproto.
new const model_CT[] = "st_ct"; // Название модели для CT
new const model_TE[] = "st_t"; // Название модели для T

public plugin_init()
{
///////original code///////
// register_plugin("Lady Models", "0.1b", "Freedo.m");
///////original code///////

register_plugin("Steam Models", "0.1b+mod.leg", "Freedo.m");
RegisterHam(Ham_Spawn, "player", "Ham_PlayerSpawn_Post", 1);
register_forward(FM_SetClientKeyValue, "FM_SetClientKeyValue_Pre", 0);
}

public plugin_precache()
{
//// Author ill ?)
new buffer[128];
formatex(buffer, charsmax(buffer), "models/player/st_ct/st_ct.mdl", model_CT, model_CT);
precache_model(buffer);
formatex(buffer, charsmax(buffer), "models/player/st_t/st_t.mdl", model_TE, model_TE);
precache_model(buffer);
}

public client_putinserver(id)
{
if (is_user_steam(id))
BIT_ADD(g_iBitClientAccess, id);
}

public client_disconnect(id)
{
BIT_SUB(g_iBitClientAccess, id);
BIT_SUB(g_iBitCustomModel, id);
}

public Ham_PlayerSpawn_Post(id)
{
if(BIT_VALID(g_iBitClientAccess, id) && is_user_alive(id))
{
switch(cs_get_user_team(id))
{
case CS_TEAM_T: fm_cs_set_user_model(id, model_TE);
case CS_TEAM_CT: fm_cs_set_user_model(id, model_CT);
}
}
}

new g_szPlayerModel[MAX_PLAYERS + 1][32];

public FM_SetClientKeyValue_Pre(id, const szInfobuffer[], const szKey[])
{
if(BIT_VALID(g_iBitCustomModel, id) && equal(szKey, "model"))
{
static szCurrentModel[32];
fm_cs_get_user_model(id, szCurrentModel, charsmax(szCurrentModel));
if(!equal(szCurrentModel, g_szPlayerModel[id])) fm_cs_set_user_model(id, g_szPlayerModel[id]);
return FMRES_SUPERCEDE;
}
return FMRES_IGNORED;
}

stock fm_cs_get_user_model(id, szModel[], szLen) engfunc(EngFunc_InfoKeyValue, engfunc(EngFunc_GetInfoKeyBuffer, id), "model", szModel, szLen);
stock fm_cs_set_user_model(id, const szModelName[])
{
engfunc(EngFunc_SetClientKeyValue, id, engfunc(EngFunc_GetInfoKeyBuffer, id), "model", szModelName);
copy(g_szPlayerModel[id], charsmax(g_szPlayerModel[]), szModelName);
BIT_ADD(g_iBitCustomModel, id);
}

stock fm_cs_reset_user_model(id)
{
BIT_SUB(g_iBitCustomModel, id);
dllfunc(DLLFunc_ClientUserInfoChanged, id, engfunc(EngFunc_GetInfoKeyBuffer, id));
}

stock bool:is_user_steam(id)
{
// Author Sh0oter
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;
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя ALTnick
сообщение 20.3.2017, 19:52
Сообщение #2


Стаж: 11 лет

Сообщений: 221
Благодарностей: 20
Полезность: 5

не актуально ! нашел плагин замену
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя mini1
сообщение 20.3.2017, 19:57
Сообщение #3


Стаж: 11 лет

Сообщений: 181
Благодарностей: 40
Полезность: 175

ну раз нашёл, выложи его сюда тогда! ubeysya.gif

Отредактировал: mini1, - 20.3.2017, 20:40
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
voed
сообщение 20.3.2017, 21:26
Сообщение #4
Стаж: 11 лет

Сообщений: 2593
Благодарностей: 1760
Полезность: 405

А что тут переписывать?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ALTnick
сообщение 21.3.2017, 6:59
Сообщение #5


Стаж: 11 лет

Сообщений: 221
Благодарностей: 20
Полезность: 5

Цитата(voed @ 20.3.2017, 22:26) *
А что тут переписывать?

ну как вариант под реапи
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ALTnick
сообщение 21.3.2017, 8:36
Сообщение #6


Стаж: 11 лет

Сообщений: 221
Благодарностей: 20
Полезность: 5

Цитата(mini1 @ 20.3.2017, 20:57) *
ну раз нашёл, выложи его сюда тогда! ubeysya.gif

отличный плагин от neugomonа

Прикрепленные файлы:
Прикрепленный файл  custom_models.7z ( 2,04 килобайт ) Кол-во скачиваний: 37
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ssx
сообщение 21.3.2017, 11:31
Сообщение #7


Стаж: 12 лет

Сообщений: 2237
Благодарностей: 1343
Полезность: 836

ALTnick,
Жаль нельзя несколько моделек.

Вот в Player Models можно заменять стандартные:
Код
"gign" "H_CT_1"
"gsg9" "H_CT_2"
"sas" "H_CT_3"
"urban" "H_CT_4"
"vip" "H_CT_4"
"arctic" "H_TR_1"
"guerilla" "H_TR_2"
"leet" "H_TR_3"
"terror" "H_TR_4"

Было бы хорошо если бы под reapi написали аналог Players Models 1.3.1 от ConnorMcLeod

А еще лучше чтобы и заменять стандартные и по флагам можно было рандомом выставлять модельки.

Как вот в этом плаге (юзал его раньше) кто с флагом - тому рандомом модельку даёт.
fucking_models.sma
Код:
#include <amxmodx>
#include <cstrike>
#include <fakemeta>
#include <hamsandwich>

#define PLUGIN "New Year Admin Models"
#define VERSION "0.11"
#define AUTHOR "Safety1st"

#define TT 1
#define CT 2
#define OTHER 0 // don't change!

#define ADMIN_FLAG ADMIN_KICK
#define VIP_FLAG ADMIN_RESERVATION
#define USER_FLAG ADMIN_USER

new gszTtAdminModels[][] = {
"santa_t",
"santa_t1",
"santa_t2",
"santa_t3",
"santa_t4",
"santa_t5",
"santa_t6"
}

new gszCtAdminModels[][] = {
"santa_ct"
"santa_ct1",
"santa_ct2",
"santa_ct3",
"santa_ct4",
"santa_ct5",
"santa_ct6"
}


new giTtAdminModelsMaxIndex, giCtAdminModelsMaxIndex

public plugin_init() {
register_plugin( PLUGIN, VERSION, AUTHOR )
RegisterHam( Ham_Spawn, "player", "ResetModel", 1 )
}

public plugin_precache() {
new szModel[64]

giTtAdminModelsMaxIndex = sizeof gszTtAdminModels - 1
for ( new i; i <= giTtAdminModelsMaxIndex; i++ ) {
formatex ( szModel, 63, "models/player/%s/%s.mdl", gszTtAdminModels[i], gszTtAdminModels[i] )
precache_model( szModel )
}

giCtAdminModelsMaxIndex = sizeof gszCtAdminModels - 1
for ( new i; i <= giCtAdminModelsMaxIndex; i++ ) {
formatex ( szModel, 63, "models/player/%s/%s.mdl", gszCtAdminModels[i], gszCtAdminModels[i] )
precache_model( szModel )
}
}

public ResetModel(id) {
if ( !is_user_alive(id)) // is it actually needed?
return

static iFlags, iTeam
iFlags = get_user_flags(id)
iTeam = get_user_team2(id)
if ( !iTeam )
return


if ( iFlags & ADMIN_FLAG || iFlags & VIP_FLAG )
{
switch ( iTeam )
{
// we get unpredictable results when using random(0)
case TT : cs_set_user_model( id, gszTtAdminModels[ giTtAdminModelsMaxIndex ? random(giTtAdminModelsMaxIndex) : 0 ] )
case CT : cs_set_user_model( id, gszCtAdminModels[ giCtAdminModelsMaxIndex ? random(giCtAdminModelsMaxIndex) : 0 ] )
}
return
}
}

get_user_team2(id) {
static szTeam[2]
get_user_team( id, szTeam, 1 )
switch ( szTeam[0] ) {
case 'T': return TT
case 'C': return CT
default : return OTHER
}
return OTHER
}


Отредактировал: ssx, - 21.3.2017, 11:32


[Half-Life DM FFA] 78.152.169.100:27016
[CS 1.6 GunGame] 78.152.169.100:27018
[CS 1.6 DM AIM] 78.152.169.100:27017
[CS 1.6 DM FFA] 78.152.169.100:27015
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: