Half-Life и Adrenaline Gamer форум

Всё об игре в Халф-Лайф и АГ
Текущее время: 29 мар 2024, 05:07

Часовой пояс: UTC + 5 часов [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 19 ]  На страницу Пред.  1, 2
Автор Сообщение
СообщениеДобавлено: 30 мар 2022, 07:44 
Не в сети
Зарегистрирован:
07 мар 2013, 20:21
Последнее посещение:
19 авг 2023, 05:27
Сообщения: 39
Да, с этой версией впн мода удалось корректно запустить сервер.

Но проблему это не решило :unknown: сервак падает при тех же условиях

Изображение

Вот если бы гранаты, вместо того что бы исчезнуть, уходили бы в такой режим, это бы однозначно решило проблему :)

Изображение

Добавлено спустя 1 час 5 минут 9 секунд:
Re: Сервер падает из-за стандартных гранат HL... Как исправить?

Вообще есть затея:
При отсутствии гранат, выдать гранаты и отобрать от них все патроны. Если сделать это в момент когда в руках любое другое оружие, мы получим красные гранаты :twisted:

Код:
   new clip,ammo  
   
   if (get_user_weapon(id,clip,ammo) == 12 && ammo <=0){
      give_item (id, "weapon_handgrenade")
      ExecuteHamB
      (
         Ham_GiveAmmo,
         id,
         -5,
         "Hand Grenade",
         WPN_MAXAMMO
      )
   }

Или как то так. При необходимости можно вызвать таском.
Вот только как отловить момент броска гранаты? :scratch:
Нагуглить как то не получилось...


Вернуться к началу
 Профиль 
  
СообщениеДобавлено: 31 мар 2022, 04:47 
Не в сети
Зарегистрирован:
07 мар 2013, 20:21
Последнее посещение:
19 авг 2023, 05:27
Сообщения: 39
В целом удалось отследить момент отсутствия гранат через FM_PlayerPreThink и при помощи глобальной переменной разово вызвать функцию таском (работает вполне корректно) , а вот отобрать патроны никак :( Ham_GiveAmmo здесь не канает, эта штука только плюсует бп. Гугл так же инфу не подбрасывает.

Есть идеи?


Вернуться к началу
 Профиль 
  
СообщениеДобавлено: 31 мар 2022, 12:41 
Не в сети
Site Admin
Зарегистрирован:
01 июн 2010, 01:27
Последнее посещение:
26 мар 2024, 21:42
Сообщения: 6864
Есть идеи сделать это правильно. viewtopic.php?f=10&t=1441


Вернуться к началу
 Профиль 
  
СообщениеДобавлено: 31 мар 2022, 16:15 
Не в сети
Зарегистрирован:
07 мар 2013, 20:21
Последнее посещение:
19 авг 2023, 05:27
Сообщения: 39
Без проблем :good: только читать дампы у меня так и не получилось... Как то помогал человек в чтении, по итогу он сказал что там ничего внятного, одна большая жирная ошибка... хотя проблема была в удалении несуществующей модели, но это был другой случай

Буду признателен, если есть опыт в чтении дампов



Вернуться к началу
 Профиль 
  
СообщениеДобавлено: 01 апр 2022, 03:12 
Не в сети
Site Admin
Зарегистрирован:
01 июн 2010, 01:27
Последнее посещение:
26 мар 2024, 21:42
Сообщения: 6864
Цитата:
Необработанное исключение по адресу 0x70D3D31A (weaponmod_amxx.dll) в hlds.exe.5784.dmp: 0xC0000005: нарушение прав доступа при чтении по адресу 0x108C0000.
Это в вепонмоде косяк где-то. Не в hl.dll, как я предположил изначально.
Чтобы дальше разбираться надо компилировать вепонмод с отладочной инфой.


Вернуться к началу
 Профиль 
  
СообщениеДобавлено: 03 апр 2022, 16:18 
Не в сети
Site Admin
Зарегистрирован:
01 июн 2010, 01:27
Последнее посещение:
26 мар 2024, 21:42
Сообщения: 6864
Кстати, раз с вепонмодом связано, можно поотключать плагины, может какой-то влияет так. Если найдешь какой влияет и скажешь как воспроизводить, наверное смогу быстро посмотреть что не так и поправлю.


Вернуться к началу
 Профиль 
  
СообщениеДобавлено: 03 апр 2022, 22:56 
Не в сети
Зарегистрирован:
07 мар 2013, 20:21
Последнее посещение:
19 авг 2023, 05:27
Сообщения: 39
Такая реакция идет между каждым оружием впн мода и стандартным оружием, имеющим привычку исчезать когда кончается патрон. Когда патроны есть, все работает как часы. Честно не пробовал что будет если связка будет между пушкой впнмода и красным(разряженным) стандартным стволом.

Думаешь дело может быть в сторонних плагинах, обеспечивающих геймплей?

Может в функции holster косяк какой, но я почему то сомневаюсь что проблема в ней:
Код:
public m4a1_holster(ent,id){
      if(!is_user_connected(id))
      return;
      
      if(game_mode() == 0)
      set_user_rendering(id)
      
      if(wpnmod_get_offset_int(ent,Offset_iInZoom)){
      set_pev(id,pev_fov,0.0)
      set_pev(id,pev_maxspeed,155.0)
      wpnmod_set_offset_int(id,Offset_iFOV,0)
      wpnmod_set_offset_int(ent,Offset_iInZoom,0)
      }
      if(wpnmod_set_offset_int(ent, Offset_iInReload, 0))
      emit_sound(id,CHAN_STATIC,RELOAD_SOUND,0.9,ATTN_NORM,SND_STOP,PITCH_NORM)
}

В общем как бы там ни было, смог написать костыль для обхода этого бага:
Код:
#define TASK_HUD      6457

new g_iGrenadeFixed[9999];


public plugin_init() {
   register_plugin(PLUGIN, VERSION, AUTHOR)
   
   register_clcmd("say /get","get_my_weapon")
   register_forward(FM_PlayerPreThink, "grenade_throw")

}
public get_my_weapon(id){
   new clip,ammo
   //get_user_ammo(id,12,clip,ammo)
   new weapon = get_user_weapon(id,clip,ammo)
   client_print(id,print_chat,"weapon[%d][%d][%d]",weapon,clip,ammo)
   
   
}

public grenade_throw(id)
{
   
   if (!is_user_connected(id))
      return 0;
      
   if (get_user_weapon(id) != 12)
      return 0;
      
   new clip,ammo
   
   //get_user_ammo(id,13,clip,ammo)
   
   if (get_user_weapon(id,clip,ammo) == 12 && ammo <= 0){
   set_task(1.0, "grenade_fixed", id+TASK_HUD)
   g_iGrenadeFixed[id] = 0
    }
   
   return 1;
}

public grenade_fixed(idx)
{
   new id = idx - TASK_HUD
   if(g_iGrenadeFixed[id] == 0){
   engclient_cmd(id,"weapon_knife")
   g_iGrenadeFixed[id] = 1
   return
   }else if(g_iGrenadeFixed[id] == 1){
   return
   }
   
}

Суть:
Через ПреЗинк ловим момент когда у игрока в руках гранаты и его патроны <= 0, после через секунду разово вызываем таск, в котором насильно суем ему в руки нож. Получается что после окончания гранат у игрока достается какое то оружие, а в след за ним достается нож... Тем самым мы разорвали связь "lastinv" (клавиша "Q"), ведущую к краху сервера... Немного не красиво, но пока что сервер больше не падал...

Хотел бы все таки получить ответ на вопрос:
Возможно ли как то забрать у игрока патроны стандартного оружия???


Вернуться к началу
 Профиль 
  
СообщениеДобавлено: 04 апр 2022, 04:19 
Не в сети
Site Admin
Зарегистрирован:
01 июн 2010, 01:27
Последнее посещение:
26 мар 2024, 21:42
Сообщения: 6864
russia писал(а):
Возможно ли как то забрать у игрока патроны стандартного оружия?
Ну, как бы, читай мануал :)
wpnmod_get_player_ammo
wpnmod_set_player_ammo
Наверное этим можно.


Вернуться к началу
 Профиль 
  
СообщениеДобавлено: 17 апр 2022, 17:05 
Не в сети
Зарегистрирован:
07 мар 2013, 20:21
Последнее посещение:
19 авг 2023, 05:27
Сообщения: 39
Изображение

Именно то что и нужно было :good: спасибо))

Код:
#define TASK_HUD      6457

new g_iGrenadeFixed[9999];


public plugin_init() {
   register_plugin(PLUGIN, VERSION, AUTHOR)
   
   register_clcmd("say /get","get_my_weapon")
   register_forward(FM_PlayerPreThink, "grenade_throw")

}
public get_my_weapon(id){
   new clip,ammo
   //get_user_ammo(id,12,clip,ammo)
   new weapon = get_user_weapon(id,clip,ammo)
   client_print(id,print_chat,"weapon[%d][%d][%d]",weapon,clip,ammo)
   
   
}

public grenade_throw(id)
{
   
   if (!is_user_connected(id))
      return 0;
     
   if (get_user_weapon(id) != 12)
      return 0;
     
   new clip,ammo
   
   //get_user_ammo(id,13,clip,ammo)
   
   if (get_user_weapon(id,clip,ammo) == 12 && ammo <= 0){
   set_task(1.0, "grenade_fixed", id+TASK_HUD)
   g_iGrenadeFixed[id] = 0
    }
   
   return 1;
}

public grenade_fixed(idx)
{
   new id = idx - TASK_HUD
   if(g_iGrenadeFixed[id] == 0){
   //engclient_cmd(id,"weapon_knife")
   give_item (id, "weapon_handgrenade")
   wpnmod_set_player_ammo(id, "Hand Grenade", 0)
   g_iGrenadeFixed[id] = 1
   return
   }else if(g_iGrenadeFixed[id] == 1){
   return
   }
   
}


Вернуться к началу
 Профиль 
  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 19 ]  На страницу Пред.  1, 2

Часовой пояс: UTC + 5 часов [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB