Заказать игровой сервер Контакты (заказать плагин/исправить ошибки/другое) Пожертвовать Поиск

[ вход ]
[ последние сообщения ]

  • Страница 1 из 2
  • 1
  • 2
  • »
Разрывные пули.
tonline_kms65 Дата: Вторник, 29.12.2015, 16:37:59 | Сообщение # 1
Сообщений: 215
Репутация: 3 [ +/- ]
Для тестирования предлагаю свой плагин Exploding_bullets.
Долго я с ним возился. Честно сказать - именно того что хотел я не добился. Вернее добился, но как то не совсем то.

Начало работы с этим плагином здесь. http://world-source.ru/forum/102-4364-1

Плагин работает только на карте $10000$. Не спрашивайте почему только на этой карте. Как тестировал так пока и оставил. Для любителей жесткача - получите его точно. Желательно использовать этот плагин на DM серверах.
Кто хочет получить более полное представление - мой сервак для тестирования моих плагинов 5.8.200.113:27068

Сделал видео, не ахти но понятно. Делал камерой. Пробовал разными программами, так и не смог понять как захватить экран. только рабочий стол берет.
С демкой возиться просто нет времени. Так что не обессудьте.
Видео здесь. http://www.4shared.com/file/3HYyMq7Vba/test_plugins.html
или на ЮТубе
https://youtu.be/eLZ0kpQ_5K4

Гости не могут скачивать файлы


Сообщение отредактировал tonline_kms65 - Суббота, 30.01.2016, 10:20:38
 
dases2003 Дата: Вторник, 29.12.2015, 20:53:56 | Сообщение # 2
Сообщений: 107
Репутация: 1 [ +/- ]
Предоставьте sourcepawn code
 
Meow_1337 Дата: Вторник, 29.12.2015, 22:17:41 | Сообщение # 3
Сообщений: 207
Репутация: 11 [ +/- ]
Может стоит начать удалять плагины без исходников? как на оленях
 
tonline_kms65 Дата: Среда, 30.12.2015, 02:32:08 | Сообщение # 4
Сообщений: 215
Репутация: 3 [ +/- ]
Цитата 1mpulse ()
Полностью согласен.
tonline_kms65, зачем выкладывать плагин в паблик без sp.


Знаешь почему? Потому что когда еб...ся долго и упорно, просишь помочь, даже за бабки а в ответ тишина (http://world-source.ru/forum/102-4364-1)- как то становится обидно.
Да и ладно. Исходник я конечно выложу, когда все ошибки какие есть откатаю.
А пока могу заверить никаких редиректов и прочей мутоты в плагине нет. Чистый программный код.


Сообщение отредактировал tonline_kms65 - Четверг, 31.12.2015, 14:32:39
 
BarD Дата: Среда, 30.12.2015, 11:13:41 | Сообщение # 5
Сообщений: 943
Репутация: 137 [ +/- ]
Пришло время и мне высказать свое мнение об этом. Приготовься к жесткой критике.

=========================
1) Оформление темы.
1.1. Нет ни описания работы плагина, ни скриншотов. Лично мне было непонятно, что вообще делает этот плагин, пока я не глянул исходный код.
1.2. Исходный код не приложил, поэтому пришлось воспользоваться декомпилятором.
1.3. Если используешь morecolors, то на КСГО цветовые коды отображаться не будут. Там нет HTML (не считая Hint). теперь будешь это знать. Пиши игру, на которой ты уже ее протестил и точно уверен, что там работает исправно.

2) Исходный код
2.1. Получение кваров везде.
Ты получаешь квары везде, где только можно. При коннекте игрока, при старте раунда, при каждом выстреле (!).
Совет: Сделай отдельную глобальную переменную, которая будет отвечать за работоспособность плагина на данной карте. В OnMapStart получай квар "bullets_active" и сверяй карту. Если квар включен и карта нужная, то переменную на 1. И в дальнейшем ее проверяй. Вообще для всех кваров сделай отдельные переменные и получай в OnMapStart (именно там, т.к. в OnPluginStart все квары равны 0). Получение кваров проходит значительно дольше, чем проверка переменной.

2.2. Функции.
Зачем тебе 2 одинаковых функции KnockBack и FindExplodingGrenade? Может, у меня декомпилятор так сделал, я не знаю.
Совет: Вместо public используй stock.

2.3. События.
В player_spawn лучше проверять индекс игрока, которого получил. Делай проверку if (client > 0). И ты это событие не объявил вообще. Где HookEvent("player_spawn", Event_PlayerSpawn);
В bullet_impact ты получаешь переменные, которых вообще не существует. "attacker" и "dmg_health" просто нет в этом событии. Следовательно, условие
работать просто не будет.
Таймера DeleteFlame просто нигде нет. Ты его не создаешь, а блок есть.
Совет: https://wiki.alliedmods.net/Counter-Strike:_Source_Events <-- Тут можешь посмотреть список событий и переменных, которые можно из них получить.

3) Оптимизация.
3.1. Проверка работы на карте.
Проверяешь квары и карту везде, где только можешь. Как я уже говорил, заводи переменную.
3.2. Создание энтити на каждом выстреле.
Ты создаешь 2 энтити на каждый выстрел. Причем, одно из них взрывается. Возьми 9 своих друзей, пригласи на сервер. Купите m249 каждому в руки и постреляйте по стенам. Увидишь, как ФПС упадет. Если на сервере стоит еще пара-тройка "тяжелых" плагинов, то непременно будет краш. Это будет сложно оптимизировать, т.к. задумка сама по себе "тяжелая".
Совет: Старайся оптимизировать свой код. Думай, как можно сократить код, уменьшив количество операций, но чтоб все работало. Посмотри приемы оптимизации в других плагинах (decl вместо new, switch вместо else if и другие).

=========================

Перейдем к твоей реакции на критику.
Цитата tonline_kms65 ()
Знаешь почему? Потому что когда еб...ся долго и упорно, просишь помочь, даже за бабки а в ответ тишина (http://world-source.ru/forum/102-4364-1)- как то становится обидно.


Обидно, что сам не можешь сделать? Не можешь найти в других плагинах/на других источниках?

Цитата tonline_kms65 ()
А пока могу заверить никаких редиректов и прочей мутоты в плагине нет. Чистый программный код.

Я бы не был в этом так уверен. Код жутко неоптимизирован. Куча ошибок.
Цитата tonline_kms65 ()
Честно, не вижу необходимости в самом коде, и не пойму зачем он?

Чтобы люди смогли убедиться в том, что плагин реально "чистый", т.е. без каких-либо вшиваний админки для тебя (частенько так делают некоторые скриптеры)/чит-функций и прочего. Опытные скриптеры помогут тебе оптимизировать твой плагин, если будут видеть твой код, а не декомпилированный, научат полезным фишкам, которые ты потом будешь применять. Начинающие скриптеры могут вытащить некоторые функции, которые им будут нужны. Уверен, ты сам так делал.

Цитата tonline_kms65 ()
Как только разберусь как это сделать - так вопрос будет полностью решен

Ты выложил не до конца рабочий плагин. Зачем? Доработал бы, а потом выложил и с уверенностью написал, что он РАБОТАЕТ.

Цитата tonline_kms65 ()
Кстати, интересно стало - а если бы я например купил у кого то готовый код

Сожалею, если бы ты купил ЭТОТ код.

Цитата tonline_kms65 ()
Возникает вопрос - а как быть с уплаченными мной деньгами?

Встречный вопрос. Зачем ты выкладываешь плагин, если ты его купил? Конечно, это дело твое. Код по-любому получат путем декомпиляции, так что твой вопрос не имеет смысла.

Цитата tonline_kms65 ()
Не поверишь - я посмотрел твой профиль - впервые такое делаю. Не могу понять где твои плагины. Дай посмотреть на них.

Плагины 1mpulse (в основном, это модули для VIP от wS'а):


P.S. Без обид. Это чистая конструктивная критика.

Исходный код плагина можете посмотреть ниже. Немного отредактировал следы декомпилятора. Вряд ли будет работать, так что просто посмотреть.

Гости не могут скачивать файлы


Сообщение отредактировал BarD - Среда, 30.12.2015, 11:19:51
 
BarD Дата: Среда, 30.12.2015, 16:05:30 | Сообщение # 6
Сообщений: 943
Репутация: 137 [ +/- ]
Цитата tonline_kms65 ()
Работает работает, еще как работает.

Ты получаешь несуществующие параметры из эвента. Да еще и проверяешь эти параметры всякими проверками. И говоришь, что это работает...

Цитата tonline_kms65 ()
А до конца рабочий плагин у меня такого никогда не бывает

Цитата tonline_kms65 ()
2-3 часа в неделю это не то время что бы разобраться

А зачем тогда выкладывать в паблик? В коде полно мусора. Я искренне сочувствую тем, кто успел скачать этот плагин.

Цитата tonline_kms65 ()
Насчет кода - лишний раз убеждаюсь - зачем он?

Я тебе назвал 3 причины, зачем нужно выкладывать исходный код. И вот тебе четвертая причина. Так требует лицензия SourceMod. В ней написано, что любой плагин должен быть выложен с исходным кодом. Хотя, для тебя это пустые слова.

Цитата tonline_kms65 ()
Тебе нужно было - ты декомпильнул, хоть наверняка с кучей ошибок но суть понятна.

Лично мне декомпиляция не мешает понять суть плагина, даже вытащить некоторые кусочки. Но ты о других подумай. О новичках, о тех, кто не умеет находить главное в мусоре. Именно в мусоре, а не в нормальном коде.

Цитата tonline_kms65 ()
Так же и другим кому нужно и кто сумеет. А кто не сумеет значит и ему не нужно.

Это слова эгоиста. Ты, конечно, извини меня, но это действительно так выглядит.

Цитата tonline_kms65 ()
моя задача - нужен от взрыва ущерб с отображением значения ущерба, кому ущерб и от кого. И самое главное я хочу понять как это (запись ущерба) работает.

Хочешь понять - понимай. А выкладывать плагин, который может крашнуть сервак, не стоит.

Цитата tonline_kms65 ()
Это даже не мой код

Я так и понял.

Цитата tonline_kms65 ()
Кстати так и не получилось создать партиклы. Какая то ошибка выдавалась. После займусь обязательно.

Примеры работы с партиклями есть в плагине CSSGore. Но это только со стандартными. Если делаешь свои или используешь чужие кастомные партикли, то ничего у тебя не выйдет. Говорят, только в CSGO кастомные работают.

Цитата tonline_kms65 ()
KnockBack и FindExplodingGrenade тоже самое, так же надо удалить, не вижу смысла а сервак наверняка грузит.

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

Цитата tonline_kms65 ()
Когда дойдет дело до решения того что я задумал, тогда можно заняться и оптимизацией.

Еще раз повторюсь. А зачем тогда выкладывал плагин?

Цитата tonline_kms65 ()
Не будет работать. Не старайтесь.

Естественно.

Цитата tonline_kms65 ()
Люблю критику.

Это видно. Ни слова о моих словах про твой код не сказал.

Цитата tonline_kms65 ()
Но ты бы лучше мне код написал, как мне решить мою задачу.

Какую задачу? Ты ни слова не сказал о том, что хочешь. Только метафоры какие-то вроде этой:
Цитата tonline_kms65 ()
Честно сказать - именно того что хотел я не добился. Вернее добился, но как то не совсем то.


Цитата tonline_kms65 ()
Интересно а возможно стрелять HE_гранатой? Это было бы решением всех моих проблем. Надо попробовать.

Конечно возможно. Создаешь гранату и кидаешь в сторону взгляда.
 
BarD Дата: Среда, 30.12.2015, 18:23:36 | Сообщение # 7
Сообщений: 943
Репутация: 137 [ +/- ]
Цитата tonline_kms65 ()
я так понимаю это по траектории с указанием скорости?

Именно.
Цитата tonline_kms65 ()
Я хочу стрелять ею. Это реально? Как думаешь? Есть смысл время терять?

Реально, если кинуть её с очень большой скоростью. Но как пулю все равно не сможешь сделать, т.к. с расстоянием она все равно падать будет. Как подствольник только можно сделать.
Цитата tonline_kms65 ()
понять принцип работы например HE_гранаты

А что тут сложного? env_explosion + проп-граната в одном флаконе.
Цитата tonline_kms65 ()
как и где записываются попавшие в радиус взрыва

player_hurt и проверка на гранату. Или через SDKHooks можешь сделать.
Цитата tonline_kms65 ()
Если к примеру в момент взрыва гранаты в того кто в радиусе взрыва кто то еще стреляет и возможно не один. Это все учитывается как то. Поэтому я и говорю что возможно сама энтитя взрыва должна писать куда-то все свои данные (атакующего, ущерб, жертва) и так же энтитя игрока должна писать тоже самое. Короче как то так. Вот моя задача. Понять как это работает.

Внутридвижковые операции. Вряд ли выцепишь. Ну, только через player_hurt и SDKHooks можешь попробовать. Вручную все записывать в переменные, а потом выводить.
Цитата tonline_kms65 ()
Ты проще на жизнь смотри. А то как то грузишься.

Не получается как-то, когда у тебя сервак будет падать каждую карту. Или игроки не будут играть из-за лагов и вылетов. Поэтому и нужна оптимизация.
Цитата tonline_kms65 ()
Что бы сервак свалить этим плагином - надо постараться.

Если этот плагин стоит один, то да. А если еще пару плагинов с твоей "оптимизацией" докинуть, то все. Да и вообще, тут ещё от железа игрока зависит. Если у тебя комп за 250к, то ты хоть застреляйся гранатами. А вот если слабое железо, то и при 15-20 взрывах вылететь может.
 
GodlikE145 Дата: Четверг, 31.12.2015, 07:16:12 | Сообщение # 8
Сообщений: 33
Репутация: 9 [ +/- ]
1mpulse, попробуй сделать кастомные наборы музыки, как модуль для випки) идея годная, но файлов нужно будет много догружать и прекэшить

Добавлено (31.12.2015, 07:16:12)
---------------------------------------------
tonline_kms65, скинь скрин логов или ошибок из консоли, без этого трудно что-либо понять.



Сообщение отредактировал GodlikE145 - Четверг, 31.12.2015, 07:08:30
 
sourcegod Дата: Четверг, 31.12.2015, 07:57:18 | Сообщение # 9
Сообщений: 69
Репутация: 0 [ +/- ]
tonline_kms65, А что этот плагин делает то?:D
 
BarD Дата: Четверг, 31.12.2015, 09:07:10 | Сообщение # 10
Сообщений: 943
Репутация: 137 [ +/- ]
tonline_kms65,
Цитата tonline_kms65 ()
Совсем мусор убрал.

Нет. Я же тебе сказал, что квары получать нужно один раз в начале карты. А ты их получаешь КАЖДЫЙ ВЫСТРЕЛ. Бедный твой сервак. Какие-то вычислительные операции делаешь ненужные.
Цитата tonline_kms65 ()
Пока плагин профиксен, оставлю так.

Исходник выложи, если хочешь, чтоб мы все вместе смотрели твои косяки и справляли ошибки. А то я задолбался декомпилить твой плагин каждый раз.

1mpulse,
Цитата 1mpulse ()
хех, приятно что про меня помнят))

Ну дак, если выкладываешь хорошие модули, то грех не вспомнить)
Цитата 1mpulse ()
сделал модуль новый Aura, работает на CS:GO

Выкладывай, может нужен кому-нибудь будет.
Цитата 1mpulse ()
css не проверял, но должен

Если партикли кастомные, то вряд ли. Больше "нет", чем "да".


Сообщение отредактировал BarD - Четверг, 31.12.2015, 09:07:58
 
pro-health Дата: Четверг, 31.12.2015, 10:16:53 | Сообщение # 11
Сообщений: 188
Репутация: 5 [ +/- ]
Это в перевод вынеси:
Код
    PrintToServer("****************************************************");
    PrintToServer("           Plugin Exploding_bullets LOADED");
    PrintToServer("                   By tonline_kms65");
    PrintToServer("****************************************************");
    CPrintToChat(client, "{red}**------------------------------------------------------------**");
    CPrintToChat(client, "{green} На карте {red}${tomato}1{orange}0{yellow}0{green}0{blue}0{indigo}$ {green}разрывные пули на всё оружие");
    CPrintToChat(client, "{red}**------------------------------------------------------------**");
    PrintCenterText(client, " На карте $10000$ разрывные пули на всё оружие");


Вместо:
Код
if (GetConVarInt(setting_Plugin) != 1)


Используй:
Код
    new bool:bEnabled = false;
    bEnabled = GetConVarBool(setting_Plugin);
    if(bEnabled)
    {
  //...
    }

Это делай глобально и не только это, а все ConVar'ы:
Код
static i_Radius;
i_Radius = GetConVarInt(setting_Radius)


Название карты хотя бы в квар вынеси.
Код
    decl String:map[128];
    GetCurrentMap(map, 125);
    if (strcmp(map, "$10000$", true)) // Я может на дасте хочу запустить его :D
    {
  return void:0;
    }


Ну и много ещё чего.


Сообщение отредактировал pro-health - Четверг, 31.12.2015, 10:17:31
 
pro-health Дата: Четверг, 31.12.2015, 10:30:03 | Сообщение # 12
Сообщений: 188
Репутация: 5 [ +/- ]
Цитата tonline_kms65 ()
квары получать нужно один раз в начале карты


Ага, да ты ещё и карту при каждом выстреле получаешь......
Цитата
public Action:Event_BulletImpact(Handle:event, String:weaponName[], bool:dontBroadcast)
{
    decl String:map[128];
    GetCurrentMap(map, 125);
    if (strcmp(map, "$10000$", true) && GetConVarInt(setting_Plugin)/*Постарайся вообще к этому моменту выключить плагин*/ == 1)


Сообщение отредактировал pro-health - Четверг, 31.12.2015, 10:30:18
 
sourcegod Дата: Четверг, 31.12.2015, 11:12:42 | Сообщение # 13
Сообщений: 69
Репутация: 0 [ +/- ]
:xaxa
потом говорит что только на карте $10000$ она работате)


Сообщение отредактировал sourcegod - Четверг, 31.12.2015, 11:14:20
 
BarD Дата: Четверг, 31.12.2015, 12:41:31 | Сообщение # 14
Сообщений: 943
Репутация: 137 [ +/- ]
Исходник выложи...
 
tonline_kms65 Дата: Четверг, 31.12.2015, 14:35:49 | Сообщение # 15
Сообщений: 215
Репутация: 3 [ +/- ]
Цитата GodlikE145 ()
tonline_kms65, скинь скрин логов или ошибок из консоли, без этого трудно что-либо понять.


Нет ошибок. Я же писал уже - ошибки только от диффузок cssdm.

Цитата 1mpulse ()
Согласен, выложи. Поможем чем сможем, оптимизируем, подскажем, что сами умеем. А так говорить что тебе никто не помогает и говорить, что выложишь исходник когда все ошибки исправишь, это не правильно, при этом уже выложив плагин в паб.


Да зачем мне оптимизация этого плагина. Я не прошу оптимизировать этот плагин. Этот плагин не то что я хотел.
Я просил ЗА БАБКИ! написать мне код программы, с объяснением работы используемых в нем функций. Вот что мне нужно.
Если мне понадобится помощь в оптимизации или еще что то, я так и скажу. Вроде ничего подобного я не просил, даже и не заикался об этом.
Этот плагин я тестировал долго и упорно, ошибок и падений сервака не вижу. У кого упадет - сажут.
Если кому то интересен мой плагин - можете заняться оптимизацией или еще каким то рукоблудием.
Я не вижу необходимости. Плагин буду постоянно дополнять и эксперементировать с ним.
Смотрите на жизнь проще. Не придумывайте себе проблем.
Всех с Новым Годом! Успехов и удачи нам всем!


Сообщение отредактировал tonline_kms65 - Четверг, 31.12.2015, 14:52:24
 
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск: