|
Вниманию участников! Данный форум теперь является архивом и вскором времени здесь нельзя будет создавать новых тем! Просьба всем для общения и создания новых тем перейти на наш новый форум: http://amxmodx.su/
|
Рандом дроп позиция
|
|
| Brute | Дата: Четверг, 11.09.2008, 19:55:15 | Сообщение # 1 |
 Генерал-полковник
Группа: Скриптеры
Сообщений: 1123
Статус: Не в сети
| Помогите написать часть скрипта: дроп из игрока при смерти. А точнее мне нужно, чтобы вещь выпадала из игрока, и падала, не перед игроком, а рандомно вокруг него Code stock create_item(id, classname[], model[], speed) { new eid = create_entity("info_target") entity_set_string(eid, EV_SZ_classname, classname) entity_set_model(eid, model)
new Float:origin[3] entity_get_vector(id, EV_VEC_origin, origin) entity_set_vector(eid, EV_VEC_origin, origin)
entity_set_int(eid, EV_INT_solid, SOLID_TRIGGER) entity_set_int(eid, EV_INT_movetype, MOVETYPE_TOSS)
if(speed != 0) { new Float:velocity[3] get_global_vector(GL_v_forward, velocity) entity_get_vector(id, EV_VEC_velocity, velocity) velocity[0] = velocity[0]*speed velocity[1] = velocity[1]*speed velocity[2] = velocity[2]*speed entity_set_vector(eid, EV_VEC_velocity, velocity) } } Принимаю любые варианты: fakemeta или engine мне нет разницы.
Сообщение отредактировал Brute - Четверг, 11.09.2008, 19:56:27 |
| |
|
|
| DaTa | Дата: Четверг, 11.09.2008, 22:14:25 | Сообщение # 2 |
|
Генерал-полковник
Группа: Cупер-модеры
Сообщений: 1025
Статус: Не в сети
| примитивный способ(случайная точка квадрата xy(куба xyz)) : рандом флот -1.0 - 1.0 в трех проекциях - вот тебе и случайный вектор можно только первые две проекции - тогда только в горизонтальной плоскости, fSpeed - прогнозируемая скорость: vOrigin[0] = random_float(-1.0, 1.0) vOrigin[1] = random_float(-1.0, 1.0) vOrigin[2] = 0.0 xs_vec_normalize(vOrigin, vOrigin) xs_vec_mul_scalar(vOrigin, fSpeed, vOrigin) более случайный угол, см. fm_get_aim_origin(или както так)
|
| |
|
|
| Brute | Дата: Четверг, 11.09.2008, 22:21:33 | Сообщение # 3 |
 Генерал-полковник
Группа: Скриптеры
Сообщений: 1123
Статус: Не в сети
| может лучше построить вектор скорости, только хз как, даже не знаю от куда что брать. Как этот вектор вообще построить
|
| |
|
|
| DaTa | Дата: Четверг, 11.09.2008, 22:30:20 | Сообщение # 4 |
|
Генерал-полковник
Группа: Cупер-модеры
Сообщений: 1025
Статус: Не в сети
| упс vOrigin == vVelocity
|
| |
|
|
| Brute | Дата: Суббота, 13.09.2008, 08:00:42 | Сообщение # 5 |
 Генерал-полковник
Группа: Скриптеры
Сообщений: 1123
Статус: Не в сети
| почти всегда, до всего дохожу сам! Вот целая рабочая процедура: Code public CreateItem(id, classname[], model[], speed) { new eid = create_entity("info_target")
entity_set_string(eid, EV_SZ_classname, classname) entity_set_model(eid, model)
entity_set_int(eid, EV_INT_solid, SOLID_TRIGGER) entity_set_int(eid, EV_INT_movetype, MOVETYPE_TOSS) entity_set_edict(eid, EV_ENT_owner, id)
new Float:origin[3], Float:angles[3], Float:velocity[3] entity_get_vector(id, EV_VEC_origin, origin) entity_get_vector(id, EV_VEC_angles, angles)
entity_set_vector(eid, EV_VEC_origin, origin) velocity[0] = float(speed) * floatcos(random_float(-179.9, 179.9), degrees) velocity[1] = float(speed) * floatsin(random_float(-179.9, 179.9), degrees) entity_set_vector(eid, EV_VEC_velocity, velocity) angles[0] = 0.0 entity_set_vector(eid, EV_VEC_angles, angles) } где "speed" - радиус(в точках) на который будет дропнута создаваемая итема.
Сообщение отредактировал Brute - Суббота, 13.09.2008, 08:07:53 |
| |
|
|
 | AMX Mod X Russian Community © 2006-2026  |  |
|
| |