Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

Модуль Fakemeta :)

, Entities (игровые обекты) И с чем их едят
Empower
сообщение 22.2.2009, 12:50
Сообщение #1
Стаж: 17 лет

Сообщений: 298
Благодарностей: 945
Полезность: 0

Сразу скажу: тема ОЧЕНЬ сложная.. Только для профи в Pawn.

И так, приступим сначала нам надо бует узнать что же такое ентити. Ентити - ето предметы в игре которые могут менятса.... Стена, например, ето НЕ ентити, дом в cs_assault ето НЕ ентити - они не могут менятса.... Их низя разбить, двинуть, включить - выключить итд...

А вот Игрок - ето ентити, он может менять свою модель, может менять место разположения итд...Свет - ентити он может вкл\выкл (в модах как например зомби моде), оружие ето ентити его можна подобрать/кинуть, стекло которое можно разбить тоже ентити.

А теперь, я научю вас делать ентити с помощю Pawn.... Попробуем зделать свою ентити. Зделаем курицу как cs_italy... Каждая ентитя должна иметь свою переменную. Назвем нашу переменную Ent..
Код
new Ent = engfunc(EngFunc_CreateNamedEntity,engfunc(EngFunc_AllocString,"info_target"))
Мы "сказали" павну что переменная Ent ето будет ентити


Код
set_pev(Ent,pev_classname,"func_chicken")

Каждая Ентити в КС имеет свое название(classname). Название машина - func_car, стекла - func_glass итд...
Мы Записали в переменную Ent название(pev_classname) нашей ентити ето - "func_chicken".. название может быть любое "kurica" например :) итд..


Некоторые ентити имеют свои особые значения: такие как например ХП (pev_health)... гравитация (pev_gravity), тип движения (pev_movetype)... Выставим нашей курице 200 хп...
Код
set_pev(id,pev_health,200)

Функция set_pev выставляет разные значения для ентити, вместо pev_heath(здоровье) мы могли вы поставить pev_maxspeed( максимал скорость ) или pev_dmgtime (тип урона) и еще много другого.


Вернемса к нашей курице... зделаем чтоб она появилась в мире Кс.... Но где же она появитса???? Надо задать ей pev_origin(позицию).. В Кс позицию задают 3 числа позиция по X,Y,Z.. Допустим мы хотим поставить курицу в de_dust на респавне КТ? Но как же мы ето зделаем, если ненаем какие координаты респавна КТ... Для того чтобы узнать координаты какойто точки надо создать локальный сервер( НЕ через Dedicated Server) на 1 игрока.. И зайдя на сервер в нужной вам точке написать в консоль комманду status...и вот что мы получим в ответ:
Код
hostname:  X3 KaK Ha3BaTb (UA)
version :  47/1.1.2.5 3147 insecure
tcp/ip  :  192.168.1.2:27015
map     :  de_dust at: 125 x, -184 y, 53 z // ВОТ ЕТО И БУДУТ НАШИ КООРДИНАТЫ
players :  1 active (1 max)


У нас есть координаты 125 -184 53, запишем их в переменную
Код
new Float:g_Origin[3]
g_Origin[0] = 125.0
g_Origin[1] = -184.0
g_Origin[2] = 53.0

Теперь через set_pev ставим место разположения ентити (pev_origin)...
Код
set_pev(ent, pev_origin, g_Origin)


А теперь зделаем курицу твердой (pev_solid)
Код
set_pev(Ent,pev_solid, 1)
мы поставили 1 - тоесть обект твёрдый...
если бы поставили 0 обект был бы как вода.. (можна пройти сквозь)

И последний штрих дадим нашей курице модель(pev_model)...
Код
set_pev(Ent, pev_model,"models/chick.mdl")


Вот так бует выглядить наш код:
Код
#include <amxmodx>
#include <fakemeta>

public plugin_init()
{
    register_plugin("go","go","go")
  
    new Ent = engfunc(EngFunc_CreateNamedEntity,engfunc(EngFunc_AllocString,"info_target"))
    set_pev(Ent,pev_classname,"func_chicken")

    new Float:g_Origin[3]
    g_Origin[0] = 125.0
    g_Origin[1] = -184.0
    g_Origin[2] = 53.0
    set_pev(Ent, pev_origin, g_Origin)

    set_pev(Ent,pev_model,"models/chick.mdl")
    set_pev(Ent,pev_solid,1)
}

public plugin_precache()
    precache_model("models/chick.mdl")

Вот и все!! Cложно.. Не так ли? Но ето щяс... А когда вы создатите хотяб один нормальный плагин с ентити - все пройдет, вы лутше поймете и освоите ету тему.

Отредактировал: Empower, - 23.2.2009, 15:17
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 13 раз
   Цитировать сообщение
Fedcomp
сообщение 23.2.2009, 9:44
Сообщение #2
Стаж: 17 лет

Сообщений: 3899
Благодарностей: 701
Полезность: 0

Цитата(Empower @ 22.2.2009, 13:50) *
И так, приступим сначала нам надо бует узнать что же такое ентити. Ентити - ето предметы в игре которые могут менятса.... Стена, например, ето НЕ ентити, дом в cs_assault ето НЕ ентити - они не могут менятса.... Их низя разбить, двинуть, включить - выключить итд...


Верно это не энтити, на языке мапперов стенка называется "браш"
Так как их очень много естественно кс их обрабатывает ТОЛЬКО на столкновения

Цитата(Empower @ 22.2.2009, 13:50) *
Каждая Ентити в КС имеет свое название(classname). Название машина - func_car, стекла - func_glass итд...

Нет таких энтить
Цитата(Empower @ 22.2.2009, 13:50) *
func_car

func_vehicle
Цитата(Empower @ 22.2.2009, 13:50) *
func_glass

func_breakable


Огромное спасибо за статью
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   + Цитировать сообщение
Статус пользователя kst
сообщение 23.2.2009, 14:17
Сообщение #3
Стаж: 18 лет

Сообщений: 18
Благодарностей: 3
Полезность: 0

А какие есть еше Названия типо func_ ?

Отредактировал: kst, - 23.2.2009, 14:17
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Empower
сообщение 23.2.2009, 14:47
Сообщение #4
Стаж: 17 лет

Сообщений: 298
Благодарностей: 945
Полезность: 0

Цитата
Нет таких энтить

наводил просто примеры любых попавших в голову... и func_brekable, func_vechile ето не ентити, а типы ентитей :)... тоесть func_vechile -транспорт... func_breakable - та что разбивается.. func_wall без етих особенностей (щитай наловину :) браш)... ети типы уже есть в кс... а если создаеш свою ентити мож давать ей любое название...

P.s тип ентити вот new Ent = engfunc(EngFunc_CreateNamedEntity,engfunc(EngFunc_AllocString,"ЗДЕСЬ"))
а classname вот set_pev(Ent,pev_classname,"ЗДЕСЬ")

Цитата
А какие есть еше Названия типо func_ ?

Код
func_bomb_target - место плента

func_breakable - разбиваемый объект

func_button - кнопка

func_buyzone - место покупки оружия

func_door - дверь обычная

func_door_rotating - Вращающаяся дверь

func_ladder - лесница

func_tank - пушка ( пулемет ) как в танке)

func_vehicle - транспорт

func_wall - стена ящик итд..

func_water - вода

func_escapezone - место спасения терров (в es_ картах)

func_pushable - передвигаемый объект

func_illusionary - видимый но не твердый ( можна через него проходить )

func_rotating - предмет вращяется

func_vip_safetyzone - место освобожнение ВИП


там еще какието есть но я не помню sad.gif

Отредактировал: Empower, - 23.2.2009, 15:12
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 3 раз
   + Цитировать сообщение
Fedcomp
сообщение 23.2.2009, 16:13
Сообщение #5
Стаж: 17 лет

Сообщений: 3899
Благодарностей: 701
Полезность: 0

Я подумал что ты про то серьезно func_car :biggrin:
А так на брашы можно надевать (в маппинге) обработку событий, т.е на браш воды натянуть все функции воды, и это уже называется заполненная энтитя. А все остальные энтити (Point entities) создаются только через ключевую точку на карте.
Empower, объясни ещё программно как можно создать заполненную энтитю а то мне это необходимо.
Такая энтитя есть например в walkguard'е
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Empower
сообщение 23.2.2009, 16:17
Сообщение #6
Стаж: 17 лет

Сообщений: 298
Благодарностей: 945
Полезность: 0

new Ent = engfunc(EngFunc_CreateNamedEntity,engfunc(EngFunc_AllocString,"func_water"))
ето я так думаю а может и нет хз честно... попробуй..

Отредактировал: Empower, - 23.2.2009, 16:21
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Fedcomp
сообщение 28.2.2009, 16:28
Сообщение #7
Стаж: 17 лет

Сообщений: 3899
Благодарностей: 701
Полезность: 0

извиняюсь за тупизм, а где координаты указывать? (ширину высоту и т.д)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Empower
сообщение 1.3.2009, 0:08
Сообщение #8
Стаж: 17 лет

Сообщений: 298
Благодарностей: 945
Полезность: 0

У нас есть координаты 125 -184 53, запишем их в переменную


Код
new Float:g_Origin[3]
g_Origin[0] = 125.0
g_Origin[1] = -184.0
g_Origin[2] = 53.0


Теперь через set_pev ставим место разположения ентити (pev_origin)...
Код
set_pev(ent, pev_origin, g_Origin)



Координаты записаны в переменную g_Origin...

и потом через set_pev(ent, pev_origin, g_Origin) заданы для ентити..

Отредактировал: Empower, - 1.3.2009, 0:09
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   + Цитировать сообщение
Fedcomp
сообщение 1.3.2009, 9:25
Сообщение #9
Стаж: 17 лет

Сообщений: 3899
Благодарностей: 701
Полезность: 0

и ещё один туповатый вопрос, на эту энтитю текстуру (кешированную разумеется) наверно нельзя налепить?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Empower
сообщение 1.3.2009, 9:45
Сообщение #10
Стаж: 17 лет

Сообщений: 298
Благодарностей: 945
Полезность: 0

Цитата(Fedcomp @ 1.3.2009, 9:25) *
и ещё один туповатый вопрос, на эту энтитю текстуру (кешированную разумеется) наверно нельзя налепить?

ето те не ХАммер :).. мона канешно налепить но тектура создается отдельно от ентити и ее надо точно подгонять под ентитю по грудасах, координатах итд.. итп.. sad.gif
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 4 раз
   + Цитировать сообщение
Статус пользователя SHLAKBAUM
сообщение 30.4.2009, 13:07
Сообщение #11


Стаж: 17 лет

Сообщений: 26
Благодарностей: 16
Полезность: 468

А если сделать func_car на ней можно будет ездить?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Empower
сообщение 1.5.2009, 9:39
Сообщение #12
Стаж: 17 лет

Сообщений: 298
Благодарностей: 945
Полезность: 0

Цитата(SHLAKBAUM @ 30.4.2009, 14:07) *
А если сделать func_car на ней можно будет ездить?

неа ето просто название
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   + Цитировать сообщение
Статус пользователя SHLAKBAUM
сообщение 1.5.2009, 14:02
Сообщение #13


Стаж: 17 лет

Сообщений: 26
Благодарностей: 16
Полезность: 468

Empower, у тебя есть какие нибудь учебники по скриптингу?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Nb00wn
сообщение 25.2.2011, 16:33
Сообщение #14


Стаж: 15 лет

Сообщений: 25
Благодарностей: 5
Полезность: 154

Может ли модуль Fakemeta отслеживать событие закладки бомбы и спосение залоников, и отключить их?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Shoterko
сообщение 10.3.2011, 23:58
Сообщение #15
Стаж: 15 лет

Сообщений: 114
Благодарностей: 143
Полезность: 1227

Цитата(Nb00wn @ 25.2.2011, 16:33) *
Может ли модуль Fakemeta отслеживать событие закладки бомбы и спосение залоников, и отключить их?

http://www.amxmodx.org/funcwiki.php?go=inc&id=45


!
Аккаунт пользователя заблокирован до: 25.4.29390, 13:03
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя tavot
сообщение 2.11.2012, 11:17
Сообщение #16


Стаж: 17 лет

Сообщений: 8
Благодарностей: 1
Полезность: 0

Цитата(Shoterko @ 10.3.2011, 23:58) *

К сожалению там пропало 90% функций.
Как вариант смотреть тут http://www.amxmodx.org/doc/
тут: http://amxxmodx.ru/fakemeta/140-modul-the-...eta-module.html
Или в самих inc файлах модулей.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Predat0r
сообщение 2.11.2012, 11:22
Сообщение #17
Стаж: 14 лет

Сообщений: 1245
Благодарностей: 375
Полезность: < 0

Цитата(tavot @ 2.11.2012, 12:17) *
К сожалению там пропало 90% функций.
Как вариант смотреть тут http://www.amxmodx.org/doc/
тут: http://amxxmodx.ru/fakemeta/140-modul-the-...eta-module.html
Или в самих inc файлах модулей.

Можно дублировать модули.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Тема закрытаНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: