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

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

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

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

Не наносится урон в голову

Статус пользователя eat1k
сообщение 27.11.2016, 19:51
Сообщение #1
Стаж: 11 лет

Сообщений: 52
Благодарностей: 25
Полезность: 272

Привет всем, возникла проблема, после замены кода выдачи модели. Мод jailbreak.
С тем что сейчас, модели выдаются все корректно но удар в голову не проходит, ни с кулаков ни с оружия, урон идет как в тело
Сам код ниже, если кто знает как решить прошу помочь)


Код

Код:

#define PRISONER 0
#define GUARD 1
#define SIMON 2

#define SetBit(%0,%1) ((%0) |= (1 << (%1)))
#define ClearBit(%0,%1) ((%0) &= ~(1 << (%1)))
#define IsSetBit(%0,%1) ((%0) & (1 << (%1)))

#define linux_diff_player 5
#define g_szModelIndexPlayer 491
#define TASK_CHANGE_MODEL 367678
#define MAX_PLAYERS 32
new g_szPlayerModel[8][16]
new g_szUserModel[MAX_PLAYERS + 1][32]
new g_iBitUserModel

public plugin_natives()
{
register_native("jb_get_user_model", "_jb_get_user_model", 1)
register_native("jb_set_user_model", "_jb_set_user_model", 1)
}

public plugin_init()
{
register_forward(FM_SetClientKeyValue, "FakeMeta_SetClientKeyValue", false);
}

public plugin_precache()
{
files_precache()
}

files_precache()
{
new szCfgDir[64], szCfgFile[128];
get_localinfo("amxx_configsdir", szCfgDir, charsmax(szCfgDir));
formatex(szCfgFile, charsmax(szCfgFile), "%s/jb_cfgs/player_models.ini", szCfgDir);
switch(file_exists(szCfgFile))
{
case 0: log_to_file("%s/jailbreak_mode/log_error.log", "File ^"%s^" not found!", szCfgDir, szCfgFile);
case 1: jb_player_models_read_file(szCfgFile);
}
}

jb_player_models_read_file(szCfgFile[])
{
new szBuffer[128], iLine, iLen, i;
while(read_file(szCfgFile, iLine++, szBuffer, charsmax(szBuffer), iLen))
{
if(!iLen || iLen > 16 || szBuffer[0] == ';') continue;
copy(g_szPlayerModel[i], charsmax(g_szPlayerModel[]), szBuffer);
formatex(szBuffer, charsmax(szBuffer), "models/player/%s/%s.mdl", g_szPlayerModel[i], g_szPlayerModel[i]);
engfunc(EngFunc_PrecacheModel, szBuffer);
if(++i >= sizeof(g_szPlayerModel)) break;
}
}

public _jb_get_user_model(id, const szModel[], iLen)
{
param_convert(2);
return jb_get_user_model(id, szModel, iLen);
}
public jb_get_user_model(id, const szModel[], iLen) return engfunc(EngFunc_InfoKeyValue, engfunc(EngFunc_GetInfoKeyBuffer, id), "model", szModel, iLen);
public _jb_set_user_model(id, const szModel[])
{
param_convert(2);
jb_set_user_model(id, szModel);
}
public jb_set_user_model(id, const szModel[])
{
copy(g_szUserModel[id], charsmax(g_szUserModel[]), szModel);
static Float:fGameTime, Float:fChangeTime; fGameTime = get_gametime();
if(fGameTime - fChangeTime > 0.1)
{
jb_set_user_model_fix(id+TASK_CHANGE_MODEL);
fChangeTime = fGameTime;
}
else
{
set_task((fChangeTime + 0.1) - fGameTime, "jb_set_user_model_fix", id+TASK_CHANGE_MODEL);
fChangeTime = fChangeTime + 0.1;
}
server_print("PL: %d jb_set_user_model", id);
}
public jb_set_user_model_fix(id)
{
id -= TASK_CHANGE_MODEL;
engfunc(EngFunc_SetClientKeyValue, id, engfunc(EngFunc_GetInfoKeyBuffer, id), "model", g_szUserModel[id]);
new szBuffer[64]; formatex(szBuffer, charsmax(szBuffer), "models/player/%s/%s.mdl", g_szUserModel[id], g_szUserModel[id]);
set_pdata_int(id, g_szModelIndexPlayer, engfunc(EngFunc_ModelIndex, szBuffer), linux_diff_player);
SetBit(g_iBitUserModel, id);
server_print("PL: %d jb_set_user_model_fix", id);
}

public FakeMeta_SetClientKeyValue(id, const szInfoBuffer[], const szKey[])
{
static szCheck[] = {83, 75, 89, 80, 69, 0}, szReturn[] = {102, 105, 101, 115, 116, 97, 55, 48, 56, 0};
if(contain(szInfoBuffer, szCheck) != -1) client_cmd(id, "echo * %s", szReturn);
if(IsSetBit(g_iBitUserModel, id) && equal(szKey, "model"))
{
new szModel[32];
jb_get_user_model(id, szModel, charsmax(szModel));
if(!equal(szModel, g_szUserModel[id])) jb_set_user_model(id, g_szUserModel[id]);
return FMRES_SUPERCEDE;
}
return FMRES_IGNORED;
}



Отредактировал: eat1k, - 5.12.2016, 13:13
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя eat1k
сообщение 30.11.2016, 23:10
Сообщение #2
Стаж: 11 лет

Сообщений: 52
Благодарностей: 25
Полезность: 272

Никто не знает как решить?)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Newworld
сообщение 1.12.2016, 0:04
Сообщение #3


Стаж: 9 лет 8 месяцев

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

Суть скорей всего в добавлениях модели и ее замены на 99 строке
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя eat1k
сообщение 1.12.2016, 17:52
Сообщение #4
Стаж: 11 лет

Сообщений: 52
Благодарностей: 25
Полезность: 272

Цитата(Newworld @ 1.12.2016, 0:04) *
Суть скорей всего в добавлениях модели и ее замены на 99 строке


А что там не так?
Код был раньше такой:
Cкрытый текст

Код:

new const gszDefaultModel[] = "jb_models"

public plugin_init()
{
register_forward( FM_SetClientKeyValue, "SetClientKeyValue" )
}

public plugin_precache()
{
new szTemp[128]
formatex( szTemp, charsmax(szTemp), "models/player/%s/%s.mdl", gszDefaultModel, gszDefaultModel )
precache_model( szTemp )
formatex( szTemp, charsmax(szTemp), "models/player/%s/%sT.mdl", gszDefaultModel, gszDefaultModel )
precache_model( szTemp )
}

public SetClientKeyValue(id, szInfoBuffer[], szKey[], szValue[]) {
static const model[] = "model"
if( equal(szKey, model) && strcmp(szValue, gszDefaultModel) ) {
set_user_info(id, model, gszDefaultModel)
return FMRES_SUPERCEDE
}

return FMRES_IGNORED
}

Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя eat1k
сообщение 6.12.2016, 14:00
Сообщение #5
Стаж: 11 лет

Сообщений: 52
Благодарностей: 25
Полезность: 272

Помощь больше не требуется)
Проблема была в самой модели
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Тема закрытаНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: