Случайная подборка модов
Shoker Weapon Mod 2.1
4.1
Выживший. Побег из Зоны
3.7
Пространственная аномалия (Update 3)
4.0
Soc Style Addon 2.0
4.1
Ф.О.Т.О.Г.Р.А.Ф
4.2
PCFM COP Addon
3.7
Последние обновленные темы Прямой эфир Самые популярные темы Последние новости
  • Страница 1 из 1
  • 1
Модератор форума: FanG, Аdmin, FantomICW, Overfirst  
[SoC] Телепортация через скрипт
Российская Федерация  Stalker_Monstr
Пятница, 15.11.2013, 12:56 | Сообщение # 1
Статус:
Отмычка:
Сообщений: 194
Награды: 8
Регистрация: 30.01.2013

Обязательно, к прочтению:


Создаем скрипт, в него вставляем:
Цитата
function create_level_changer(
p_story_id, -- STORY_ID нового level_changer (понадобится нам позже)
p_position, -- вектор, координаты точки, в которой будет располагаться центр нового level_changer
p_lvertex_id, -- level_vertext_id - идентифицируют уровень, на котором будет создан level_changer
p_gvertex_id, -- game_vertext_id

p_dest_lv, -- level_vertex_id - идентифицируют уровень, на который level_changer будет перебрасывать игрока
p_dest_gv, -- game_vertex_id
p_dest_pos, -- координаты точки, в которой на новом уровне окажется игрок
p_dest_dir, -- направрение взгляда игрока
p_dest_level, -- название уровня, например "L11_Pripyat"
p_silent -- следует задать 1, чтобы подавить вопрос о смене уровня (автоматический переход)
)
local obj = alife():create("level_changer", p_position, p_lvertex_id, p_gvertex_id)

level.map_add_object_spot(obj.id, "level_changer", "")

local packet = net_packet()
obj:STATE_Write(packet)

-- свойства cse_alife_object
local game_vertex_id = packet:r_u16()
local cse_alife_object__unk1_f32 = packet:r_float()
local cse_alife_object__unk2_u32 = packet:r_u32()
local level_vertex_id = packet:r_u32()
local object_flags = packet:r_u32()
local custom_data = packet:r_stringZ()
local story_id = packet:r_u32()
local spawn_story_id = packet:r_u32()

-- свойства cse_shape
local shape_count = packet:r_u8()
for i=1,shape_count do
local shape_type = packet:r_u8()
if shape_type == 0 then
-- sphere
local center = packet:r_vec3()
local radius = packet:r_float()
else
-- box
local axis_x_x = packet:r_float()
local axis_x_y = packet:r_float()
local axis_x_z = packet:r_float()
local axis_y_x = packet:r_float()
local axis_y_y = packet:r_float()
local axis_y_z = packet:r_float()
local axis_z_x = packet:r_float()
local axis_z_y = packet:r_float()
local axis_z_z = packet:r_float()
local offset_x = packet:r_float()
local offset_y = packet:r_float()
local offset_z = packet:r_float()
end
end

-- свойства cse_alife_space_restrictor
local restrictor_type = packet:r_u8()

-- свойства cse_level_changer
local dest_game_vertex_id = packet:r_u16()
local dest_level_vertex_id = packet:r_u32()
local dest_position = packet:r_vec3()
local dest_direction = packet:r_vec3()
local dest_level_name = packet:r_stringZ()
local dest_graph_point = packet:r_stringZ()
local silent_mode = packet:r_u8()

packet:w_begin(game_vertex_id) -- game_vertex_id
packet:w_float(cse_alife_object__unk1_f32)
packet:w_u32(cse_alife_object__unk2_u32)
packet:w_u32(level_vertex_id) -- level_vertex_id
packet:w_u32( bit_not(193) ) -- object_flags = -193 = 0xFFFFFF3E
packet:w_stringZ(custom_data)
packet:w_u32(p_story_id) -- story_id
packet:w_u32(spawn_story_id)

packet:w_u8(1) -- количество фигур
-- packet:w_u8(0) -- тип фигуры: сфера
-- packet:w_vec3(vector():set(0, 0, 0)) -- sphere_center
-- packet:w_float(3.0)
packet:w_u8(1) -- тип фигуры: box
packet:w_float(2) -- axis_x_x
packet:w_float(0) -- axis_x_y
packet:w_float(0) -- axis_x_z
packet:w_float(0) -- axis_y_x
packet:w_float(4) -- axis_y_y
packet:w_float(0) -- axis_y_z
packet:w_float(0) -- axis_z_x
packet:w_float(0) -- axis_z_y
packet:w_float(4) -- axis_z_z
packet:w_float(0) -- offset_x
packet:w_float(0) -- offset_y
packet:w_float(0) -- offset_z

packet:w_u8(3) -- restrictor_type

packet:w_u16(p_dest_gv) -- destination game_vertex_id
packet:w_s32(p_dest_lv) -- destination level_vertex_id
packet:w_vec3(p_dest_pos) -- destination position
packet:w_vec3(p_dest_dir) -- destination direction (направление взгляда)
packet:w_stringZ(p_dest_level) -- destination level name
packet:w_stringZ("start_actor_02") -- some string, always const
packet:w_u8(p_silent) -- 1 for silent level changing

packet:r_seek(0)
obj:STATE_Read(packet, packet:w_tell())
level.add_pp_effector ("teleport.ppe", 2006, false)
end


Телепортация:


Информация:


Функцию телепортации, можно вызывать любым способом.
Сообщение отредактировал Stalker_Monstr - Пятница, 15.11.2013, 12:58
  Злобная реклама
Пятница, 15.11.2013, 12:56
Статус:
Сообщений: 666
Регистрация: 30.01.2013
Российская Федерация  R0D23
Пятница, 15.11.2013, 13:01 | Сообщение # 2
Мертвый Путь 3
Статус:
Опытный:
Сообщений: 1491
Награды: 1
Регистрация: 23.06.2013

Смотри

И это еще.

что ты назвал "Хорошо"?
  Злобная реклама
Пятница, 15.11.2013, 13:01
Статус:
Сообщений: 666
Регистрация: 23.06.2013
Российская Федерация  Stalker_Monstr
Пятница, 15.11.2013, 13:04 | Сообщение # 3
Статус:
Отмычка:
Сообщений: 194
Награды: 8
Регистрация: 30.01.2013

R0D23, Тут бы не получилось, все под одну тему.
  Злобная реклама
Пятница, 15.11.2013, 13:04
Статус:
Сообщений: 666
Регистрация: 30.01.2013
Российская Федерация  R0D23
Пятница, 15.11.2013, 13:06 | Сообщение # 4
Мертвый Путь 3
Статус:
Опытный:
Сообщений: 1491
Награды: 1
Регистрация: 23.06.2013

Stalker_Monstr, в чем проблема?
Сделал один урок, отчеркнул линией и новый
  Злобная реклама
Пятница, 15.11.2013, 13:06
Статус:
Сообщений: 666
Регистрация: 23.06.2013
Российская Федерация  Stalker_Monstr
Пятница, 15.11.2013, 13:08 | Сообщение # 5
Статус:
Отмычка:
Сообщений: 194
Награды: 8
Регистрация: 30.01.2013

R0D23, Хорошо, следующие уроки - будет сделаны, строго по твоему совету.
  Злобная реклама
Пятница, 15.11.2013, 13:08
Статус:
Сообщений: 666
Регистрация: 30.01.2013
Российская Федерация  R0D23
Пятница, 15.11.2013, 13:09 | Сообщение # 6
Мертвый Путь 3
Статус:
Опытный:
Сообщений: 1491
Награды: 1
Регистрация: 23.06.2013

Stalker_Monstr, это не совет. Ты сказал в предыдущей теме что сделаешь что все уроки будешь делать в одной теме и вот делаешь новую тему
  Злобная реклама
Пятница, 15.11.2013, 13:09
Статус:
Сообщений: 666
Регистрация: 23.06.2013
Российская Федерация  strchi
Воскресенье, 08.12.2013, 01:41 | Сообщение # 7
Статус:
Опытный:
Сообщений: 2467
Награды: 13
Регистрация: 05.10.2012

cry Спасибо тебе, я так долго искал этот метод, только вот как сделать чтобы сначала (перед телепортацией) следовали удар и падение ГГ на землю?
  Злобная реклама
Воскресенье, 08.12.2013, 01:41
Статус:
Сообщений: 666
Регистрация: 05.10.2012
Российская Федерация  Stalker_Monstr
Воскресенье, 08.12.2013, 09:30 | Сообщение # 8
Статус:
Отмычка:
Сообщений: 194
Награды: 8
Регистрация: 30.01.2013

strchi, Нанеси хит через скрипт и прокрути эффект.
  Злобная реклама
Воскресенье, 08.12.2013, 09:30
Статус:
Сообщений: 666
Регистрация: 30.01.2013
Российская Федерация  strchi
Среда, 11.12.2013, 05:03 | Сообщение # 9
Статус:
Опытный:
Сообщений: 2467
Награды: 13
Регистрация: 05.10.2012

Извиняйте нуба но...
y_level.create_level_changer(20015, vector():set(293.04870605469,6.9405741691589,67.496566772461),1785536,4398
418002,
118,
Эти 4 числа что значат? Последние 2 это level id и vertex id, но первые два...?
  Злобная реклама
Среда, 11.12.2013, 05:03
Статус:
Сообщений: 666
Регистрация: 05.10.2012
Украина  BozKurt
Среда, 11.12.2013, 11:40 | Сообщение # 10
Статус:
Опытный:
Сообщений: 1753
Награды: 3
Регистрация: 25.05.2012

strchi, первые два числа - это левел и гейм вертексы для спавна самого перехода, а последние два числа - это тоже левел и гейм вертексы, только уже места назначения.
  Злобная реклама
Среда, 11.12.2013, 11:40
Статус:
Сообщений: 666
Регистрация: 25.05.2012
Казахстан  Max_Warlock
Среда, 11.12.2013, 12:38 | Сообщение # 11
Clear Sky - Remake
Статус:
Опытный:
Сообщений: 1552
Награды: 4
Регистрация: 18.01.2013

А можно такой же для ЧН? Всегда интересовался телепортацией на другой уровень.
  Злобная реклама
Среда, 11.12.2013, 12:38
Статус:
Сообщений: 666
Регистрация: 18.01.2013
Российская Федерация  Stalker_Monstr
Четверг, 12.12.2013, 14:56 | Сообщение # 12
Статус:
Отмычка:
Сообщений: 194
Награды: 8
Регистрация: 30.01.2013

Max_Warlock, В all.spawn'e есть точки, за пределами карты, которые могут перемещают ГГ на другие локации. Пример:
Цитата
[6797]
; cse_abstract properties
section_name = level_changer
name = mar_teloport_to_agr
position = 589.656860351563,1.99556005001068,-202.973937988281
direction = 0.00536799989640713,-0.000534999999217689,0.0993589982390404

; cse_alife_object properties
game_vertex_id = 238
distance = 4.19999980926514
level_vertex_id = 519716
object_flags = 0xffffff3e

; cse_shape properties
shapes = shape0
shape0:type = box
shape0:axis_x = 1.96840000152588,0,0
shape0:axis_y = 0,6.52600002288818,0
shape0:axis_z = 0,0,1.96840000152588
shape0:offset = 0,0,0

; cse_alife_space_restrictor properties
restrictor_type = 3

; cse_alife_level_changer properties
dest_game_vertex_id = 1068
dest_level_vertex_id = 357157
dest_position = 248.253326416016,26.470796585083,147.669708251953
dest_direction = 0,0,0
dest_level_name = agroprom
dest_graph_point = mar_teleport_to_agr_graph_point
silent_mode = 1

; se_level_changer properties
name = mar_teloport_to_agr -- Это значит, что телепортация идет с Болот на Агропром, эта телепортация тихая и была создана, для того что бы быстро передвигаться по локации.
  Злобная реклама
Четверг, 12.12.2013, 14:56
Статус:
Сообщений: 666
Регистрация: 30.01.2013
Российская Федерация  Pro100The-Best
Пятница, 23.01.2015, 20:16 | Сообщение # 13
Статус:
Зевака:
Сообщений: 7
Награды: 0
Регистрация: 06.10.2014

Спасибо. Очень помогло!
  Злобная реклама
Пятница, 23.01.2015, 20:16
Статус:
Сообщений: 666
Регистрация: 06.10.2014
  • Страница 1 из 1
  • 1
Поиск: