Авторы: trofian
// спасибо Psycrow за ресурсы, спасибо TurangaLeela за помощьВерсия: 1.0
Описание:Нативный плагин портальной пушки, можно легко присбособить для любого мода.
Работает телепортация игроков, и любых энтить (гранаты, заложники), не включённых в этот список:
Код
new const Invalid_Entities_Names[][] =
{
"func_wall",
"func_door",
"func_door_rotating",
"func_breakable",
"func_ladder",
"func_conveyor",
"info_target"
}
Максимально точно и удобно сохраняются углы игрока и ускорение при прохождении через портал.
Встроенный анстак не даст застрять в стене, так что игрок ничего не заметит.
Ну вообщем больше нечего сказать.
В следующей версии планируется сделать:- админ меню
- прохождение пуль через портал
- настройка цветов портала
- замена модели портала на анимированную
- добавить худ (с прецелом)
Для переключения на портальную пушку нужно достать нож и нажать g (drop)Плагин для тестирования пушки:Код
#include <amxmodx>
#include <portal_gun>
public client_connect(id)
pg_give(id)
Нативы:Код
/**
* Выдаёт игроку портальную пушку.
*
* @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)
/**
* Проверяет - держит ли сейчас игрок в руках портальную пушку.
*
* @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)
/**
* Возвращает id энтитии портала.
*
* @param id - id игрока для проверки
* @param portal - тип портала 's' - синий (правая кнопка мыши), 'e' - оранжевый (левая кнопка мыши)
* @return - id энтитии портала, 0 - если у игрока нет портальной пушки или параметр portal неправильный
*/
native pg_get_portal_id(const id, const portal)
Исторя версий:Код
upd 1.0
1 [!] Заного написан код
2 [!] Новые модели портальной пушки
upd 0.7
1 [!] Оптимизация, переписан код, устранены падения
upd 0.5
1 [!?] Фиксы
2 [+] Проходимость энтить через портал (weaponbox, grenade)
3 [!] Определение поверхности (up, down magnet; нет наложения порталов)
4 [-] Убран cl_buy
upd 0.4
1 [!] Фиксы, изменён код
2 [+] Разные цвета скинов портала ( в консоли "set_color_portal <color1> <color2>") Смотреть в константах
3 [-] Уменьшено количество моделей (-6 штук)
upd 0.3
1 [+] Добавлен "магнитный" алгоритм проверки поверхности
2 [+] Размеры entity настроены
3 [+] Сохраняется ускорение игрока
upd 0.2
1 [!] Переписано много кода
2 [!] Изменён алгоритм определения угла поверхности
3 [+] Добавлена проверка на валидность поверхности (будёт ещё раз переделана)
4 [+] Добавлена тряска (можно отключить и немного настроить)
Используемые модули:Fakemeta
Hamsandwich
Engine
Отредактировал: levenus, - 13.8.2012, 23:22