Death Beam

Death Beam 13.10.2k16

Danyas

Участник
Сообщения
2,173
Реакции
1,072
  • Автор ресурса
  • #1
Пользователь Danyas разместил новый ресурс:

Death Beam - Создает луч после убийства, который меняется в зависимости от команды убившего вас игрока.

Создает луч после убийства, который меняется в зависимости от команды убившего вас игрока.

Плагин не создает линию убийства самого себя, так же убийства от мира.

Узнать больше об этом ресурсе...
 

m22b

Участник
Сообщения
1,007
Реакции
283
Пара вопросов :
materials/sprites/laser.vmt заменить на laserbeam.wmt (по идеи должно будет работать и на csgo)
Возможно ли "убивать" луч не по времени а по евентам ? (Начало раунда или конец раунда)
Так как есть проблема то что луч может оставаться в следующем раунде :). (Например убили вы последнего врага а время жизни луча стоит 20сек, в следующем раунде если добежать до этого места то луч будет висеть) :)

Ну по крайней мере это было с
sm_deathbeam *clientprefs - AlliedModders
 

Danyas

Участник
Сообщения
2,173
Реакции
1,072
  • Автор ресурса
  • #3
1) Можно, для CSGO нужно :D
2) Можно, постоянно пересоздавая его
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,520
Реакции
4,979
я для себя вообще скопировал код из плагина маяков из дефолтных файлов SourceMod
и у меня лучи будут отображаться везде, где отображаются маяки.
PHP:
public void OnMapStart()
{
	char buffer[PLATFORM_MAX_PATH];
	if(GameConfGetKeyValue(LoadGameConfigFile("funcommands.games"), "SpriteBeam", buffer, sizeof(buffer)) && buffer[0]) hBeam = PrecacheModel(buffer);
}
Работает и пока не жалуюсь
Правда в разных играх луч может выглядеть по-разному (в L4D2, например, лучи будут в виде стержня, а не в виде лазерного луча, как в КСГО)
 

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
C-подобный:
if(type != -1)
Лучше анхукай событие смерти, чем каждый раз обрабатывать квар и его значение.
C-подобный:
new target[2];
Даёшь decl! :biggrin:
C-подобный:
if (target[VICTIM] == target[ATTACKER] && !GetConVarBool(hCvar_team)) return;
      
        new killer_team = GetClientTeam(target[ATTACKER]);
        if (GetClientTeam(target[VICTIM]) == killer_team) return;
Квар не на той строчке, тебе не кажется?) Кстати, его обычно ставят в начале, хоть он постоянно и извлекается, Оффтоп зазря получать команду - тоже не айс, такие проверки должны стоять на первом месте. Оффтоп
C-подобный:
new Float:Start[3], Float:End[3];
decl, либо новый синтаксис тогда уж.
 

Danyas

Участник
Сообщения
2,173
Реакции
1,072
  • Автор ресурса
  • #6
C-подобный:
if(type != -1)
Лучше анхукай событие смерти, чем каждый раз обрабатывать квар и его значение.
C-подобный:
new target[2];
Даёшь decl! :biggrin:
C-подобный:
if (target[VICTIM] == target[ATTACKER] && !GetConVarBool(hCvar_team)) return;
     
        new killer_team = GetClientTeam(target[ATTACKER]);
        if (GetClientTeam(target[VICTIM]) == killer_team) return;
Квар не на той строчке, тебе не кажется?) Кстати, его обычно ставят в начале, хоть он постоянно и извлекается, Оффтоп зазря получать команду - тоже не айс, такие проверки должны стоять на первом месте. Оффтоп
C-подобный:
new Float:Start[3], Float:End[3];
decl, либо новый синтаксис тогда уж.

Разве decl дает так много толку для небольших массивов?

С кваром - локальную версию у себя фиксил, но не залил в архив)

На счет перевода в глобальные переменные - в планах, мб скоро займусь
 

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
много толку для небольших массивов?
Нет. Но это же не меняет код, а только улучшает его. С другой стороны, можешь забыть и начать привыкать к новому синтаксису - там никакой специальной замены для decl вовсе нет.
 

wayLANder

Где AlmazON?
Сообщения
1,742
Реакции
577
CS:GO Уже поддерживается? Просто нет времени проверить:(
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,520
Реакции
4,979
@Иванчо Бальбовски, просто в блоке OnMapStart(){...}
поменяй содержимое на это:
PHP:
public OnMapStart()
{
    decl String:buffer[PLATFORM_MAX_PATH];
    if(GameConfGetKeyValue(LoadGameConfigFile("funcommands.games"), "SpriteBeam", buffer, sizeof(buffer)) && buffer[0]) g_Laser = PrecacheModel(buffer);
}
И будет у тебя луч такой везде (не только в CSGO), где работает маяк соурсмода.
--- Добавлено позже ---
@Danyas, может переписать плагин под новый синтаксис?
Хотя, что там переписывать-то?
 

Вложения

  • death_beam.sp
    3.1 КБ · Просмотры: 17
  • death_beam.smx
    6.2 КБ · Просмотры: 10
Последнее редактирование:

wayLANder

Где AlmazON?
Сообщения
1,742
Реакции
577
@Grey83, Так?:)
Оффтоп
--- Добавлено позже ---
Скомпилил, сейчас потестим:)))
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,520
Реакции
4,979
@Иванчо Бальбовски, да, так.
Я в том комменте прикрепил переписанный под новый синтаксис, заодно и скомпиленый прикрепил.
 

wayLANder

Где AlmazON?
Сообщения
1,742
Реакции
577
Бывают случаи, когда луч не отображается.
CS:GO
 

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
@Grey83, #pragma newdecls required должен быть после всех include's! Обратное просто приведёт к тому, что у части пользователей, использующих версии 1.7.x, плагин откажется компилироваться - не все файлы включений были переведены на новый синтаксис, в тот момент, самим же SM.
поменяй содержимое на это
А зачем это было совать в OnMapStart? Файл что, меняется за это время, кто-то его станет править? Результат просто храни глобально.
В событии смерти всё выведено в static - не вижу в этом никакого смысла: это недостаточно частое событие и, к тому же, лучше бы тогда квары туда "обналичил" глобально, чтобы не делать это каждый раз. Оффтоп
Ошибка с:
Квар не на той строчке
Так и не исправлена...
Оффтоп
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,520
Реакции
4,979
и, тем более, вписываешь себя в авторы
вот как раз авторов я не трогал, сам оригинал глянь
А зачем это было совать в OnMapStart? Файл что, меняется за это время, кто-то его станет править? Результат просто храни глобально.
в принципе это копипаста из стоковых плагинов соурсмода. Практически без изменений. Просто название переменной изменено и всё, емнип.
 

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
авторов я не трогал
Оффтоп
копипаста из стоковых плагинов соурсмода
У них там годами ничего не меняется и их же стандартные плагины написаны не столь уж хорошо. "Смотри, да сам думай!" - так это называется.
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,520
Реакции
4,979
@Иванчо Бальбовски, а в консоль какую-нибудь ошибку пишет?
#pragma newdecls required должен быть после всех include's!
поэтому я и приложил скомпилированный плагин
Вообще, если кто-то юзает SM1.7 и редактирует исходники под себя, то ему вполне по силам вообще удалить эту строку.
Но к.м.к. Лучше просто перейти на 1.8.х и не заморачиваться с тем, что часть функций работает только со старым синтаксисом, а часть может работать с обоими. Я какое-то время психовал от того, что они начали вводить новый синтаксис, но у себя оставили кучу файлов, написанных полностью на старом.
 

Terminator-ws

Участник
Сообщения
55
Реакции
45
Оффтоп
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,520
Реакции
4,979
@AlmazON, ага, я тут сегодня дампы хендлов смотрел.
у них столько мусора от стоковых плагинов остаётся.
Было бы нормальное руководство по оптимизации плагинов, а то в их вики буквально пара слов всего.
И получай информацию как хочешь из отдельных комментариев в сети.
 

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
всё таки решил использовать decl
Для массивов - это и в WiKi написано, а то, что тебе там померещилось - твои проблемы. Я говорил, что вне массивов толку от него практически нет. Оффтоп К тому же, с наступающим новым синтаксисом вообще не понимаю, почему лишь сейчас захотелось "влезть в обоз"?
столько мусора от стоковых плагинов остаётся
Оффтоп
 
Сверху Снизу