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

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

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

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

Энтити комнаты с пространством внутри.

Статус пользователя Podarok
сообщение 26.2.2014, 0:49
Сообщение #1
Стаж: 14 лет

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

Добрый день. Я хочу создать ентити комнаты или коробки под картой, кужа можно было бы перемещать игроков на определённом событии (в этой комнате/коробке игроки могут бегать- передвигаться. Покажите мне пожалуйста пример с кодом.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя neverminde
сообщение 26.2.2014, 4:46
Сообщение #2


Стаж: 15 лет

Сообщений: 1133
Благодарностей: 595
Полезность: 576

можно попробовать просто выше карты их поместить, упасть не смогут, бегать будут по верхней границе
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя csnet
сообщение 26.2.2014, 5:38
Сообщение #3
Стаж: 12 лет

Сообщений: 4808
Благодарностей: 3849
Полезность: 690

Код:



new ent = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target"))
можно чекнуть if(is_valid_ent(ent))

entity_set_string(ent, EV_SZ_classname, "komnata")
entity_set_model(ent, "komnata_model")
entity_set_size(ent, Float:{ -60.0, -60.0, 0.0 }, Float:{ 60.0, 60.0, 30.0 }) // очень важно и здесь придеться попотеть чтобы найти правильные размеры и создать их них коробку
entity_set_int(ent, EV_INT_movetype, MOVETYPE_NONE) // чтобы ее перемещать задай чтото типа MOVETYPE_FLY
entity_set_vector(ent, EV_VEC_origin, fOrigin) // координаты где спаунить (fOrigin) задаются отдельно
entity_set_float(ent, EV_FL_health, 750.0) // Hp комнаты если она будет получать повреждения если нет сотри
entity_set_float(ent, EV_FL_takedamage, DAMAGE_AIM) // аналогично
entity_set_int(ent, EV_INT_solid, SOLID_BBOX) // взаимодействие с другими обьектами, так как нам надо твердое, то SOLID_BSP/ SLIDEBOX/ подойдет




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


Код:


plugin_init() register_clcmd("say /position","blah")

public blah(id) {

new or[3]
pev(id,pev_origin,or)
client_print(0,3,"coords are %.2f %.2f %.2f", or[0],or[1],or[2])
}



Отредактировал: csnet, - 26.2.2014, 5:40


go v cs:go
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Podarok
сообщение 26.2.2014, 13:32
Сообщение #4
Стаж: 14 лет

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

Создать ентити получилось, но в ней бегать не выходит (нету пространства внутри :\)



Вот код :

Код:

public CreateNewZone(Float:position[3]) {
new Float:mins[3] = { -32.0, -32.0, -32.0 }
new Float:maxs[3] = { 32.0, 32.0, 32.0 }
return CreateZone(position, mins, maxs);
}

public CreateZoneOnPlayer(player) {
new Float:position[3]
pev(player, pev_origin, position)
CreateNewZone(position);
}

public CreateZone(Float:position[3], Float:mins[3], Float:maxs[3]) {
new entity = fm_create_entity("info_target")
set_pev(entity, pev_classname, "walkguardzone")
fm_entity_set_model(entity, "models/box.mdl")
fm_entity_set_origin(entity, position)

set_pev(entity, pev_movetype, MOVETYPE_NONE)
set_pev(entity, pev_solid, SOLID_BBOX)

fm_entity_set_size(entity, mins, maxs)

fm_set_entity_visibility(entity, 1)

return entity
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Mistrick
сообщение 26.2.2014, 13:41
Сообщение #5


Стаж: 13 лет

Сообщений: 543
Благодарностей: 426
Полезность: 1034

Надо делать коробку, 4 энтити, которые будут формировать стены + 2 на пол и потолок.

Отредактировал: Mistrick94, - 26.2.2014, 13:42
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Podarok
сообщение 26.2.2014, 13:48
Сообщение #6
Стаж: 14 лет

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

Цитата(Mistrick94 @ 26.2.2014, 14:41) *
Надо делать коробку, 4 энтити, которые будут формировать стены + 2 на пол и потолок.


можно пример пожалуйста?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Mistrick
сообщение 26.2.2014, 13:52
Сообщение #7


Стаж: 13 лет

Сообщений: 543
Благодарностей: 426
Полезность: 1034

Podarok,
У меня нет примеров, если вы можете сделать одну энтити, что вам мешает сделать 6? Посмотрите как создают карты-коробки и вы поймете о чем я говорю. Прозрачную коробку можете сделать через плагин WalkGuard.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя csnet
сообщение 27.2.2014, 6:10
Сообщение #8
Стаж: 12 лет

Сообщений: 4808
Благодарностей: 3849
Полезность: 690

делать коробку плохая идея.

4 коробки тоже.


ваше пространство с /solid флагами формирует entity_size вам нужен код который нарисует линию по углам, чтобы вы четко видели границы.

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

Отредактировал: csnet, - 27.2.2014, 6:51


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