Half-Life и Adrenaline Gamer форум

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

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




Начать новую тему Ответить на тему  [ Сообщений: 24 ]  На страницу Пред.  1, 2, 3
Автор Сообщение
 Заголовок сообщения: Re: [Weapon] Shock Roach
СообщениеДобавлено: 19 апр 2016, 05:58 
Не в сети
Аватара пользователя
Зарегистрирован:
16 апр 2016, 17:33
Последнее посещение:
12 дек 2016, 15:13
Сообщения: 13
Ребята, небольшая проблемка, подскажете, как вылечить?
Таракан плюёт кровью.


Вложения:
Screenshot-42.png
Screenshot-42.png [ 784.68 КБ | Просмотров: 2225 ]
Вернуться к началу
 Профиль 
  
 Заголовок сообщения: Re: [Weapon] Shock Roach
СообщениеДобавлено: 19 апр 2016, 12:16 
Не в сети
Зарегистрирован:
06 авг 2010, 10:25
Последнее посещение:
20 янв 2021, 16:32
Сообщения: 695
Откуда: Uzbekistan
:D
Код:
message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
write_byte(TE_WORLDDECAL)
engfunc(EngFunc_WriteCoord,origin[0])
engfunc(EngFunc_WriteCoord,origin[1])
engfunc(EngFunc_WriteCoord,origin[2])
write_byte(25)
message_end()


Вернуться к началу
 Профиль 
  
 Заголовок сообщения: Re: [Weapon] Shock Roach
СообщениеДобавлено: 19 апр 2016, 19:35 
Не в сети
Аватара пользователя
Зарегистрирован:
16 апр 2016, 17:33
Последнее посещение:
12 дек 2016, 15:13
Сообщения: 13
Гордон Фриман, доктор, спасибо, вылечили! Вы просто волшебник!


Вернуться к началу
 Профиль 
  
 Заголовок сообщения: Re: [Weapon] Shock Roach
СообщениеДобавлено: 24 апр 2016, 04:22 
Не в сети
Аватара пользователя
Зарегистрирован:
16 апр 2016, 17:33
Последнее посещение:
12 дек 2016, 15:13
Сообщения: 13
В версии 0.3, которая работает с водой, в ней все отличия это всего-лишь одна строчка
Код:
fw_ShockBeamThink(iShock);
Однако у меня почему-то он стал стрелять как в русской рулетке, один выстрел из пачки оказывается смертельным для аттакера.
Луч появляется, зависает на месте и убивает стреляющего и так и продолжает висеть.
Пофиксил с помощью замены строчки на
Код:
set_pev(iShock,pev_nextthink,get_gametime()+0.02);

Далее идёт проверка на воду
Код:
if(pev(ent,pev_waterlevel)==3){
У меня почему-то проверка реагирует на всё подряд. И на воду, и на стены, и на небо.
Переделал проверку вот так:
Код:
public fw_ShockBeamThink(ent){
    static Float: origin[3]
    pev(ent, pev_origin, origin)
    new w = -1;
    while((w = find_ent_in_sphere(w, origin, 1.0)))
    {
        new class[32];
        pev(w, pev_classname, class, 31);
        if(equal(class, "func_water"))
        {

        // куча кода.....

        }
    }
}
Наверное юзать find_ent_in_sphere в этом случае неправильно, может быть есть аналог поиска ентити прямо по координатам, но я не в курсе, я вообще этот язык буквально в первый раз вижу.

Ну и дамаг тоже прикольнее бы вешать не только тем, кто полностью в воде, но и тем, кто просто зашёл ножки помочить.
Код:
if (pev(id, pev_takedamage) && is_visible(id, ent) && pev(id,pev_waterlevel) > 0)

И теперь когда луч попадает в воду, он тупо обрывком зависает в воздухе, при этом если пускать новые лучи в любые объекты, то они тоже начинают иногда точно так же застревать.
Вложение:
Screenshot-46.png
Screenshot-46.png [ 1.02 МБ | Просмотров: 2190 ]

Пофиксил вот так:
Код:
emit_sound(ent,CHAN_WEAPON,SOUND_IMPACT,0.9,ATTN_NORM,0,PITCH_NORM)
      
engfunc(EngFunc_RemoveEntity, wpnmod_get_offset_int(ent, Offset_iuser1)) // вот это
engfunc(EngFunc_RemoveEntity, wpnmod_get_offset_int(ent, Offset_iuser2)) // добавил
engfunc(EngFunc_RemoveEntity,ent)
      
return

И про плевание кровью, ну ребят, ну все ведь знают, что волшебные константы это плохо :(
Почему бы вам просто один раз в plugin_init не делать что-то типа
Код:
decal = engfunc(EngFunc_DecalIndex, "{SMSCORCH3")
Оказывается всё просто ведь.


Вложения:
Скачать плагин или Скачать исходник [shockroach.sma - 23.34 КБ]
Скачиваний: 325
Вернуться к началу
 Профиль 
  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 24 ]  На страницу Пред.  1, 2, 3

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


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

Сейчас этот форум просматривают: Bing [Bot] и гости: 0


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

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