Русское сообщество по скриптингу

Портальная пушка (Portal Gun)

Утвержденные плагины для AMX Mod X администратором/модератором форума.

Модератор: Leonidddd

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

В данном разделе форума разрешено создавать темы, касающие только работоспособных плагинов для AMX Mod X. Новые плагины нужно выкладывать в разделе "Новые плагины".

Портальная пушка (Portal Gun)

Сообщение Polarhigh » 23 июн 2011, 18:56

Авторы: trofian (а ещё огромная благодарность Psycrow за ресурсы)
Бета Версия: 1.9.2 beta

Описание
Плагин добавляет в игру Вы должны зарегистрироваться, чтобы видеть ссылки. из игры Portal.
Работает телепортация игроков, и любых энтить (гранаты, заложники).
Максимально точно и удобно сохраняются углы игрока и ускорение при прохождении через портал.
Встроенный анстак не даст застрять в стене, если вдруг что, так что игрок ничего не заметит.

Для переключения на портальную пушку нужно достать нож и нажать g (drop)
Для открытия меню нужно ввести в чат команду /pg или /portal_gun (для админов с флагом u)

Плагин от filip
Вы должны зарегистрироваться, чтобы видеть ссылки.
Квар: portal_cost 1000 // сколько стоит пушка


Используемые модули
Fakemeta
Hamsandwich
Engine

Нативы
Код: Выделить всё
/**
 * Выдаёт игроку портальную пушку.
 *
 * @param       id      - id игрока, кому выдать портальную пушку
 * @return              - 0, если пушка уже есть, 1 - всё ок, выдали
 */
native pg_give(const id)
 
/**
 * Забирает у игрока портальную пушку.
 *
 * @param       id      - id игрока, у кого забрать портальную пушку
 * @return              - 0, если пушки и так нету, 1 - всё ок, забрали
 */
native pg_remove(const id)
 
/**
 * Проверяет - может ли игрок переключиться на портальную пушку.
 *
 * @param       id      - id игрока для проверки
 * @return              - 1 - есть, 0 - нету
 */
native pg_is_have(const id)
 
/**
 * Если в данный момент у игрока вместо ножа портальна пушка - вернёт 1
 * Причём вернёт 1 даже если в руках какое-то другое оружие (например пистолет)
 *
 * @param       id      - id игрока для проверки
 * @return              - 1 - есть, 0 - нету
 */
native pg_is_in_hand(const id)
 
/**
 * Удаляет портал игрока.
 *
 * @param       id              - id игрока для проверки
 * @param       portal  - тип портала 's' - синий (правая кнопка мыши), 'e' - оранжевый (левая кнопка мыши), 'a' - оба
 * @return                      - 1 - удалено, 0 - не удалено, т.к. у игрока нет портальной пушки, либо параметр portal неправильный
 */
native pg_delete_portal(const id, const portal)


Исторя версий
Код: Выделить всё
1.9.0 beta
Видимый функционал не поменялся, разве что кое-где кое-что поточнее работает
* убрал натив native pg_get_portal_id(const id, const portal)
* убрал загрузку неиспользуемой мировой модели, а так ресурсы используются старые
* можно сказать, что эта версия заготовка второй версии портальной пушки), куда хотел бы добавить всякие вещи, о которых писал раньше в этой теме. Это будет очень не скоро.

1.9.1 beta
* пофиксил застревания
* немного поменял расчёты, заложники например нормально телепортируются, другие энтити должны тоже нормально телепортироваться

1.9.2 beta
* фикс зависания сервера


Ресурсы (модели, звуки, спрайты)
Вы должны зарегистрироваться, чтобы видеть ссылки. (1,4 мб)
Вы должны зарегистрироваться, чтобы видеть ссылки. (719 кб)
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось Polarhigh 08 апр 2016, 04:12, всего редактировалось 74 раз(а).
Аватара пользователя
Polarhigh
 
Сообщения: 1006
Зарегистрирован: 04 май 2010, 17:41
Благодарил (а): 131 раз.
Поблагодарили: 388 раз.
Опыт программирования: Больше трех лет

Re: Портальная пушка (Portal Gun)

Сообщение Polarhigh » 21 янв 2012, 15:16

как вариант тут
[pawn]
  1. #define MAGNET_CHECK_NUM 4
[/pawn]
можно попрбовать поставить 1 или 2
или даже 0
Аватара пользователя
Polarhigh
 
Сообщения: 1006
Зарегистрирован: 04 май 2010, 17:41
Благодарил (а): 131 раз.
Поблагодарили: 388 раз.
Опыт программирования: Больше трех лет

Re: Портальная пушка (Portal Gun)

Сообщение Yello » 22 янв 2012, 13:58

trofian писал(а):как вариант тут
[pawn]
  1. #define MAGNET_CHECK_NUM 4
[/pawn]
можно попрбовать поставить 1 или 2
или даже 0

Eto koli4estvo proverok pered vistrelom porta ?

Poprobuju ,otpishu

#define MAGNET_CHECK_NUM 0
odin /dva dazhe ne smotrel
Вы должны зарегистрироваться, чтобы видеть ссылки.
poluchaetsja nagruzka po drugoj pri4ine,poka ne jasno pri4ina nagruzki,
Pri4inu padenija servera vi vrode nashli,
Если видишь что через дорогу перебегает черная кошка,то скоро в ту сторону полетит кирпич.
Аватара пользователя
Yello
 
Сообщения: 39
Зарегистрирован: 04 сен 2011, 09:33
Благодарил (а): 3 раз.
Поблагодарили: 3 раз.
Языки программирования: Counter-Strike 1.6
Counter-Strike: Source
Team Fortress II
Left 4 Dead

Re: Портальная пушка (Portal Gun)

Сообщение Polarhigh » 26 янв 2012, 16:36

нагрузка постоянно такая большая? или только в какие-то моменты времени?

Добавлено спустя 1 минуту 14 секунд:
если постоянно, то я тогда знаю что нужно оптимизировать
Аватара пользователя
Polarhigh
 
Сообщения: 1006
Зарегистрирован: 04 май 2010, 17:41
Благодарил (а): 131 раз.
Поблагодарили: 388 раз.
Опыт программирования: Больше трех лет

Re: Портальная пушка (Portal Gun)

Сообщение Yello » 27 янв 2012, 02:37

trofian писал(а):нагрузка постоянно такая большая? или только в какие-то моменты времени?

Добавлено спустя 1 минуту 14 секунд:
если постоянно, то я тогда знаю что нужно оптимизировать

postojanno
Если видишь что через дорогу перебегает черная кошка,то скоро в ту сторону полетит кирпич.
Аватара пользователя
Yello
 
Сообщения: 39
Зарегистрирован: 04 сен 2011, 09:33
Благодарил (а): 3 раз.
Поблагодарили: 3 раз.
Языки программирования: Counter-Strike 1.6
Counter-Strike: Source
Team Fortress II
Left 4 Dead

Re: Портальная пушка (Portal Gun)

Сообщение TurangaLeela » 27 янв 2012, 03:21

trofian, есть предложения по оптимизации, если интересно скажи :-)
Аватара пользователя
TurangaLeela
 
Сообщения: 930
Зарегистрирован: 24 авг 2010, 11:19
Откуда: Некрополь у Кремлёвской стены
Благодарил (а): 10 раз.
Поблагодарили: 266 раз.
Опыт программирования: Больше трех лет
Языки программирования: Counter-Strike 1.6
Half-Life
Valve Hammer Editor 3.5
C | C++ | Java

Re: Портальная пушка (Portal Gun)

Сообщение Yello » 27 янв 2012, 13:39

TurangaLeela писал(а):trofian, есть предложения по оптимизации, если интересно скажи :-)

da konechno ,menja interesuet rezultat tvojej ( vashej ) raboti ,no 4to tam optomizirovatj ne imeju ponatija DD
Jestj plugin stuck.amxx .Horoshij plug pri tvojej portalnoj pushke,ili stavj rjadom v kod ili v odin zip,,
Jestj jesho mesta dazhe pri poslednej versiji gde igrok zastrevaet.

VOT MOJ POST PRO PORTAL GUN
Вы должны зарегистрироваться, чтобы видеть ссылки.

U menja jest esho odno napravlenija za kotorimi ja slezhu,no poka prodvigaetsja tolka tvoja rabota
vot ssilka na tot post
Вы должны зарегистрироваться, чтобы видеть ссылки.
Если видишь что через дорогу перебегает черная кошка,то скоро в ту сторону полетит кирпич.
Аватара пользователя
Yello
 
Сообщения: 39
Зарегистрирован: 04 сен 2011, 09:33
Благодарил (а): 3 раз.
Поблагодарили: 3 раз.
Языки программирования: Counter-Strike 1.6
Counter-Strike: Source
Team Fortress II
Left 4 Dead

Re: Портальная пушка (Portal Gun)

Сообщение Polarhigh » 27 янв 2012, 17:43

TurangaLeela писал(а):trofian, есть предложения по оптимизации, если интересно скажи :-)

конечно интересно

мне кажется всё дело в проверке в HAM_TouchPortal т.к. мы сверяем имена порталов, можно было бы по id сделать
Аватара пользователя
Polarhigh
 
Сообщения: 1006
Зарегистрирован: 04 май 2010, 17:41
Благодарил (а): 131 раз.
Поблагодарили: 388 раз.
Опыт программирования: Больше трех лет

Re: Портальная пушка (Portal Gun)

Сообщение Chaiker » 27 янв 2012, 18:37






Баг
Аватара пользователя
Chaiker
 
Сообщения: 187
Зарегистрирован: 13 мар 2011, 13:20
Благодарил (а): 24 раз.
Поблагодарили: 69 раз.
Опыт программирования: Больше трех лет
Языки программирования: Counter-Strike 1.6

Re: Портальная пушка (Portal Gun)

Сообщение TurangaLeela » 27 янв 2012, 19:26

trofian, Ну тогда начнем :acute:
[pawn]
  1.  

  2. // 1-е

  3. bool:IsEntityPlayer(id)

  4. {

  5.         if(1<=id<=g_maxplayers) return true

  6.         return false

  7. } // В использовании функции нету смысла, во первых это слишком простое условие чтобы его выделять во 2х идет 2й-ная проверка, -в самой функции в условии при вызове

  8.  

  9. //2-е

  10.  

  11. engfunc(EngFunc_EmitSound // функция используется 4 раза - нужно выделить это в отдельную функцию и вызывать с нужными параметрами, например так:

  12.  

  13. client_emit_sound(id, chan, sound)

  14. {

  15.         if(user_alive(id)) // проверка через битсумму на то жив игрок или нет - на то есть причины =)

  16.         {

  17.                 engfunc(EngFunc_EmitSound, id, chan, sound, 1.0, ATTN_NORM, 0, PITCH_NORM)

  18.         }

  19. }

  20.  

  21. // 3-е

  22.  

  23. stock EF_FindEntityInSphere // - вызывается 1н раз, в использовании стока нету нужды

  24.  

  25. // 4-е

  26. bool:is_valid_portal(portal) // - эту проверку нужно делать не так, а опять-таки через битсумму

  27.  

  28. // 5-е

  29. RegisterHam(Ham_Touch, "info_target", "HAM_TouchPortal") // - неверная регистрация, нужно немного по другому

  30.  

  31. // 6-е

  32.  

  33. // нужны проверки на ботов, ведь им не нужно использовать портал ган

  34.  

  35. // В общем говоря, это только мелочи и далеко не все, есть колоссальные идеи оптимизации алгоритмов проверок и т.д ... Напиши в лс свои контакты: skype icq, с радостью все расскажу и помогу с кодом (т.к. плагин мне очень по душе)

  36.  
[/pawn]
Аватара пользователя
TurangaLeela
 
Сообщения: 930
Зарегистрирован: 24 авг 2010, 11:19
Откуда: Некрополь у Кремлёвской стены
Благодарил (а): 10 раз.
Поблагодарили: 266 раз.
Опыт программирования: Больше трех лет
Языки программирования: Counter-Strike 1.6
Half-Life
Valve Hammer Editor 3.5
C | C++ | Java

Re: Портальная пушка (Portal Gun)

Сообщение noo00oob » 27 янв 2012, 19:39

TurangaLeela писал(а):engfunc(EngFunc_EmitSound // функция используется 4 раза - нужно выделить это в отдельную функцию и вызывать с нужными параметрами, например так:
 
client_emit_sound(id, chan, sound)
{
        if(user_alive(id)) // проверка через битсумму на то жив игрок или нет - на то есть причины =)
        {
                engfunc(EngFunc_EmitSound, id, chan, sound, 1.0, ATTN_NORM, 0, PITCH_NORM)
        }
}

Размер плагина увеличится на эту функцию + ещё её вызов прибавится, где же тут оптимизация? Совсем наоборот получится.
Один фрукт, страдающий недостачей времени, нашел его ради меня любимого и писал(а):
noo00oob, зачем родился на свет вообще? срать на форумах это понятно.. больше изъеба не найти как бэ? а то, что ты недоношенная скотина, сдерживайся, детка.
noo00oob
 
Сообщения: 1061
Зарегистрирован: 09 янв 2010, 21:52
Благодарил (а): 258 раз.
Поблагодарили: 394 раз.
Опыт программирования: Больше трех лет
Языки программирования: Counter-Strike 1.6
Half-Life

Пред.След.

Вернуться в Утвержденные плагины

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

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