Участник
Пользователь
- Сообщения
- 31
- Реакции
- 30
- Помог
- 1 раз(а)
На ds как то прохладно отнеслись к помощи переделать плагин, может быть тут кто захочет глянуть(5к+ строк кода). А пока у меня пару вопросов по тому что я наковырял сам с ним.
1-ый: Можно ли улучшить или избавиться от postThink? Меняет скорость игрока при использование щита. Что лучше каждый раз дергать reapi функцию на проверку наличия щита или запихнуть глобальную переменную для игрока в RG_CBasePlayer_GiveShield и RG_CBasePlayer_DropShield. Хотелось бы вообще от postthink избавится но не потерять этот функционал...
2-ой вопрос, при замене этого кода, на rg_round_respawn(id) игроки стали жаловаться на медленную скорость бега, в какой момент у них это происходит я так и не смог от них добиться, сам же никак не мог поймать ни на тестовом ни на боевом сервере, предположительно не снимается глобальная переменная наличия флага у игрока, т.к. при добавление player_updateSpeed(id) ситуация не исправилась, EV_INT_iuser1 туда я как понял помещаются переменные которые вещаются на игрока, вроде в коде нигде этого не происходит, как то исправить можно или оставить как есть?:
3-ий вопрос, закомментированое условие не работает, а именно !get_member(id,m_bHasC4), он просто игнорирует это и подбирает бомбу.:
з.ы. может и тупо переделывать так плагин заменяя тупо функции на reapi, но плагин стал по шустрее работать и нагрузки поменьше.
1-ый: Можно ли улучшить или избавиться от postThink? Меняет скорость игрока при использование щита. Что лучше каждый раз дергать reapi функцию на проверку наличия щита или запихнуть глобальную переменную для игрока в RG_CBasePlayer_GiveShield и RG_CBasePlayer_DropShield. Хотелось бы вообще от postthink избавится но не потерять этот функционал...
Код:
public client_PostThink(id)
{
if(!g_bAlive[id])
return
if(get_member(id,m_bOwnsShield))
{
if(get_member(id,m_bShieldDrawn))
{
g_fWeaponSpeed[id] = 180.0
player_updateSpeed(id)
}
else
{
g_fWeaponSpeed[id] = 250.0
player_updateSpeed(id)
}
}
}
2-ой вопрос, при замене этого кода, на rg_round_respawn(id) игроки стали жаловаться на медленную скорость бега, в какой момент у них это происходит я так и не смог от них добиться, сам же никак не мог поймать ни на тестовом ни на боевом сервере, предположительно не снимается глобальная переменная наличия флага у игрока, т.к. при добавление player_updateSpeed(id) ситуация не исправилась, EV_INT_iuser1 туда я как понял помещаются переменные которые вещаются на игрока, вроде в коде нигде этого не происходит, как то исправить можно или оставить как есть?:
Код:
entity_set_int(id, EV_INT_deadflag, DEAD_RESPAWNABLE)
entity_set_int(id, EV_INT_iuser1, 0)
entity_think(id)
entity_spawn(id)
3-ий вопрос, закомментированое условие не работает, а именно !get_member(id,m_bHasC4), он просто игнорирует это и подбирает бомбу.:
Код:
public c4_pickup(ent, id)
{
///////////2 test
/// not work, bomb is remove from ground: if(g_bAlive[id] && is_entity(ent) && (entity_get_int(ent, EV_INT_flags) & FL_ONGROUND) && get_member(ent,m_WeaponBox_bIsBomb) && !get_member(id,m_bHasC4)))
if(g_bAlive[id] && is_entity(ent) && (entity_get_int(ent, EV_INT_flags) & FL_ONGROUND) && get_member(ent,m_WeaponBox_bIsBomb))
{
if(get_member(id,m_bHasC4))
return PLUGIN_HANDLED
player_giveC4(id)
remove_entity(ent)
return PLUGIN_HANDLED
}
з.ы. может и тупо переделывать так плагин заменяя тупо функции на reapi, но плагин стал по шустрее работать и нагрузки поменьше.
Вложения
-
143.6 KB Просмотры: 42