Перейти к контенту

[SoC] Ковыряемся в файлах


Halford

Рекомендуемые сообщения

[4683]

; cse_abstract properties

section_name = stalker

name = mil_freedom_member0001

position = -178.503997802734,-16.9659557342529,352.31005859375

direction = 0,0,0

 

; cse_alife_trader_abstract properties

money = 5000

character_profile = mil_Svoboda_stukach

 

; cse_alife_object properties

game_vertex_id = 1828

distance = 24.5

level_vertex_id = 144846

object_flags = 0xfffff7ff

custom_data = <<END

[logic]

active = walker0

on_death = death

combat_ignore = combat_ignore

 

[walker0]

path_walk = mil_freedom_courier_wait_path

path_look = mil_freedom_courier_wait_look

on_actor_dist_le = 12 | %=killactor%

on_info = {+mil_actor_in_khutor_zone} walker1

 

[walker1]

path_walk = mil_freedom_stukach_walk4

path_look = mil_freedom_stukach_look4

on_actor_dist_le_nvis = 12 | %=killactor%

on_signal = arrive | remark1

combat_ignore_cond = {=check_fighting(712:713:714:719)} false

 

[remark1]

no_rotate = true

no_move = true

anim = wait_rac

snd = mil_pavlik_to_ara

on_signal = sound_end | %+mil_courier_call% remark2

on_actor_dist_le_nvis = 12 | %=killactor%

target = mil_courier_look_point, 0

combat_ignore_cond = {=check_fighting(712:713:714:719)} false

 

[remark2]

anim = guard

on_info = {+mil_ara_end} kamp1

on_actor_dist_le_nvis = 12 | %=killactor%

target = mil_courier_look_point, 0

combat_ignore_cond = {=check_fighting(712:713:714:719)} false

 

[kamp1]

center_point = mil_freedom_khutor_center

meet_enable = true

meet_dialog = mil_dolg_relax_dialog

danger = danger

path_walk = mil_freedom_khutor_center_task

radius = 3

on_actor_dist_le_nvis = 12 | %=killactor%

combat_ignore_cond = {=check_fighting(712:713:714:719)} false

 

 

[death]

on_info = %+mil_courier_dead =mil_paul_frost_dead +sar2_death_33%

 

[danger]

ignore_distance = 0

 

 

[smart_terrains]

none = true

 

[spawn]

conserva = 2

medkit = 2

hand_radio

 

 

[spawner]

cond = {+mil_leader_quest2_start}

END

story_id = 710

 

; cse_visual properties

visual_name = actors\svoboda\stalker_sv_rukzak_1

 

; cse_alife_creature_abstract properties

g_team = 11

g_squad = 9

g_group = 0

health = 2

dynamic_out_restrictions =

dynamic_in_restrictions =

 

upd:health = 2

upd:timestamp = 0

upd:creature_flags = 0

upd:position = -178.503997802734,-16.9659557342529,352.31005859375

upd:o_model = 0

upd:o_torso = 0,0,0

upd:g_team = 11

upd:g_squad = 9

upd:g_group = 0

 

; cse_alife_monster_abstract properties

base_out_restrictors = mil_bandit_restrictor

base_in_restrictors = mil_mines_restrictor,mil_freedom_wall_restrictor

 

upd:next_game_vertex_id = 65535

upd:prev_game_vertex_id = 65535

upd:distance_from_point = 0

upd:distance_to_point = 0

 

; cse_alife_human_abstract properties

predicate5 = 2,0,2,2,0

predicate4 = 1,0,1,2

 

; cse_ph_skeleton properties

 

upd:start_dialog =

 

; se_stalker properties

 

 

118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105

Поделиться этим сообщением


Ссылка на сообщение

не коллбэк а просто вставить туда свою функцию, если быть точным то указанная тобой функция это коллбэк на момент перехода ГГ в онлайн

Изменено пользователем Gonarh
118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105

Поделиться этим сообщением


Ссылка на сообщение
Gonarh, а db.actor определен уже в этот момент?

он как раз таки определяется в этой функции в строчке

db.add_actor(self.object) :russian_ru:

Изменено пользователем Gonarh
118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105

Поделиться этим сообщением


Ссылка на сообщение

да, можно

118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105

Поделиться этим сообщением


Ссылка на сообщение
где редактируется с каким оружием ГГ будет на арене?

при телепорте ГГ на Арену вызывается функция

bar_arena_teleport ( actor, npc) из модуля xr_effects.script

там описаны какие вещи будут положены в вещмешок ГГ в бою :russian_ru:

И где редактируються параметры ареновских стволов

в файле gamedata\config\misc\unique_items.ltx все виды оружия с припиской "_arena"

например:"wpn_pm_arena",

"wpn_mp5_arena",

"wpn_toz34_arena",

"wpn_spas12_arena" и т.д.

Изменено пользователем Gonarh
118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105

Поделиться этим сообщением


Ссылка на сообщение

у каждого оружия есть два параметра

misfire_probability = 0.0050 ;вероятность осечки при максимальном износе

condition_shot_dec = 0.0001 ;увеличение износа при каждом выстреле

думаю тут все понятно

 

Добавлено через 25 мин.:

ковыряясь в луа_хэлп нашол в классе game_object интересный метод berserk()

никто не фкурсе чо за хрень? :unsure:

118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105

Поделиться этим сообщением


Ссылка на сообщение

Как сделать текст сообщений Черным ?

function show_black_msg(text)
  db.actor:give_game_news("%c[255,0,0,0]"..text, "ui\\ui_iconsTotal", Frect():set(0,658,83,47),1000, 20000)
end

юзать так:

show_black_msg("блаблабла")

 

Добавлено через 57 мин.:

IQDDD, заранее на все случаи жизни текстур с нужными текстами не наберешься, да и некошерно это :grin2:

 

Добавлено через 75 мин.:

А вот кто-нибуть пробовал через скрипт закрыть инвентарь?

а какже :beach:

local inventar_menu=level.main_input_receiver()
inventar_menu:GetHolder():start_stop_menu(self,true)

Изменено пользователем Gonarh
118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105

Поделиться этим сообщением


Ссылка на сообщение

скорее всего синхронизация клиента(основной тормоз) происходит чуть больше времени отображения новости, попробуй увеличь время отображения новости примерно так:

function show_black_msg(text)

db.actor:give_game_news("%c[255,0,0,0]"..text, "ui\\ui_iconsTotal", Frect():set(0,658,83,47),1000, 60000)

end

Изменено пользователем Gonarh
118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105

Поделиться этим сообщением


Ссылка на сообщение

давай в личку свой аськ - так думаю будет просче обсчаться :)

Изменено пользователем Gonarh
118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105

Поделиться этим сообщением


Ссылка на сообщение

хмм, похоже отвечает за формы, тестуры и размеры окна мессаджбокс в главном меню, ПЫСовцы делали его похожим на системное

118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105

Поделиться этим сообщением


Ссылка на сообщение

1. Писать нельзя только читать. По крайней мере в классе ini_file в lua_help.script

нет объявлений методов записи

C++ class ini_file {

ini_file (string);

 

function line_count(string);

function r_bool(string, string);

function section_exist(string);

function r_float(string, string);

function r_clsid(string, string);

function r_s32(string, string);

function r_line(ini_file*, string, number, string&, string&);

function r_token(string, string, const token_list&);

function r_vector(string, string);

function r_u32(string, string);

function r_string_wq(string, string);

function r_string(string, string);

function line_exist(string, string);

};

 

создаем в папке gamedata\config\misc файлег moi_dannye.ltx

следующего содержания:

[general_data]

my_param = 1.5

Примерная функция чтения этого параметра

function get_parametr()
  result = 0
  local sini = ini_file("misc\\moi_dannye.ltx")
  if sini and sini:section_exist("general_data") then        
    if sini:line_exist("general_data","my_param") 
    then result = sini:r_float("general_data","my_param") end
  end
  return result
end

учтите что это функция чтения числа с плавающей точкой, для чтения других типов данных используйте соответствующие методы

2. нетпакет это примерно 7,5-8килобайт пользовательских данных куда можно писать/читать свои данные, превышение данного объема ведет к вылетам, на основе этой фичи построены моды, без нетпакета жизнь мододелов была бы существенно затруднена. практически все фишки которых нет в оригинале с деланы при помощи этой хрени.

3. Это координаты куска текстуры gamedata\textures\ui\ui_iconstotal.dds для отображения иконки того кто послал Меченому сообщение

4. Нет не на месте таймаута а на месте "texture"

5. У GetHolder() нет методов ибо это и есть метод 3-х классов ЕМНИП, если чесно влом писать, то чего сам толком не понимаю, действовал сам методом научного тыка читая lua_help.script, все возможные функции, классы, методы, константы игры описаны в этом файле... так шо дерзайте ;)

Изменено пользователем Gonarh
118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105

Поделиться этим сообщением


Ссылка на сообщение

по всей видимости непись не успел перейти в онлайн

попробуй вместо ObjSpawn:id() юзать ObjSpawn.id

Изменено пользователем Gonarh
118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105

Поделиться этим сообщением


Ссылка на сообщение
Это серверный объект, а ты пытаешься вызвать метод клиентского

вопрос на засыпку: клиентский/серверный объекты, это не тоже самое что объект в оффлайн/онлайн?

118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105

Поделиться этим сообщением


Ссылка на сообщение

мужики, может кто-нить кинуть в меня линком на чистый мод ARC (контейнеры) последней версии?

118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105

Поделиться этим сообщением


Ссылка на сообщение

почти, стори_ид тут не нужон:

if obj:section() == "название_новой_пушки_например_wpn_ak47" then
  db.actor:give_info_portion("info_take_item_art_1")
end

код впихачить - правильно сказал в actor_binder:on_item_take(obj), что находится в bind_stalker

Gonarh, а ты разобрался с методом berserk() ?

пока некогда займусь после выходных

Изменено пользователем Gonarh
118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105

Поделиться этим сообщением


Ссылка на сообщение

чото запарился :crazy:

в секции иммунитета

[zombie_immunities]

fire_wound_immunity = 0.3

какое значение дает полную защиту 0.0 или 1.0?

 

Gonarh, 0.0

Monnoroch пасиб :)

Изменено пользователем Gonarh
118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105

Поделиться этим сообщением


Ссылка на сообщение

процедура чтения параметров сталкера через нет_пакет результат возвращается в виде таблицы

function readvu32u8(packet)
  local v={}
  local len=packet:r_s32()
  for i=1,len,1 do
    table.insert(v,packet:r_u8())
  end
  return v
end

function readvu8u8(packet)
  local v={}
  local len=8
  for i=1,len,1 do
    table.insert(v,packet:r_u8())
  end
  return v
end

function readvu32u16(packet)
  local v={}
  local len=packet:r_s32()
  for i=1,len,1 do
    table.insert(v,packet:r_u16())
  end
  return v
end

function parse_stalker_packet(ret,stpk,updpk,size)
  ret.money=stpk:r_s32()
  ret.profile=stpk:r_stringZ()
  ret.infammo=stpk:r_s32()
  ret.class=stpk:r_stringZ()
  ret.communityid=stpk:r_s32()
  ret.rank=stpk:r_s32()
  ret.reputation=stpk:r_s32()
  ret.charname=stpk:r_stringZ()  
  ret.gvid=stpk:r_u16()
  ret.obf32u1=stpk:r_float()
  ret.obs32u2=stpk:r_s32()
  ret.lvid=stpk:r_s32()
  ret.oflags=stpk:r_s32()
  ret.custom=stpk:r_stringZ()
  ret.sid=stpk:r_s32()
  ret.obs32u3=stpk:r_s32()
  ret.visual=stpk:r_stringZ()
  ret.vsu8u1=stpk:r_u8()
  ret.team=stpk:r_u8()
  ret.squad=stpk:r_u8()
  ret.group=stpk:r_u8()
  ret.health=stpk:r_float()
  ret.crvu32u16u1=readvu32u16(stpk)
  ret.crvu32u16u2=readvu32u16(stpk)  
  ret.killerid=stpk:r_u16()
  ret.game_death_time=readvu8u8(stpk)
  ret.updhealth=updpk:r_float()
  ret.upds32u1=updpk:r_s32()
  ret.updu8u2=updpk:r_u8()
  ret.updpos={} -- или поставить вектор? ладно потом
  ret.updpos.x=updpk:r_float()
  ret.updpos.y=updpk:r_float()
  ret.updpos.z=updpk:r_float()
  ret.updmodel=updpk:r_float()
  ret.upddir={}
  ret.upddir.x=updpk:r_float()
  ret.upddir.y=updpk:r_float()
  ret.upddir.z=updpk:r_float()
  ret.updteam=updpk:r_u8()
  ret.updsquad=updpk:r_u8()
  ret.updgroup=updpk:r_u8()  
  ret.baseoutr=stpk:r_stringZ()
  ret.baseinr=stpk:r_stringZ()
  ret.smtrid=stpk:r_u16()
  ret.smtrtaskactive=stpk:r_u8() 
  ret.updu16u1=updpk:r_u16()
  ret.updu16u2=updpk:r_u16()
  ret.upds32u3=updpk:r_s32()
  ret.upds32u4=updpk:r_s32()
  ret.skeleton=stpk:r_stringZ()
  ret.skeleton_flags=stpk:r_u8()
  ret.source_id=stpk:r_u16()
  ret.huvu32u8u1=readvu32u8(stpk)
  ret.huvu32u8u2=readvu32u8(stpk)  
  ret.hellodlg=updpk:r_stringZ()
  ret.stunk1={}
  for i=stpk:r_tell(),size-1,1 do
    table.insert(ret.stunk1,stpk:r_u8())
  end
  return ret
end

function read_stalker_params(sobj)
  local stpk=net_packet()
  local uppk=net_packet()
  sobj:STATE_Write(stpk)
  sobj:UPDATE_Write(uppk)
  local size=stpk:w_tell()
  local size1=uppk:w_tell()
  stpk:r_seek(0)
  uppk:r_seek(0)
  local tbl=parse_stalker_packet({},stpk,uppk,size)
  return tbl
end

 

 

то что тебе надо:

1. параметры health и updhealth

2. visual

3. не знаю

Изменено пользователем Gonarh
118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105

Поделиться этим сообщением


Ссылка на сообщение

кто в курсе из-за чего могет быть такой вылет

FATAL ERROR

 

[error]Expression : fatal error

[error]Function : CIni_IdToIndex<1,struct COMMUNITY_DATA,class shared_str,int,class CHARACTER_COMMUNITY>::GetByIndex

[error]File : e:\stalker\patch_1_0004\xr_3da\xrgame\ini_id_loader.h

[error]Line : 147

[error]Description : <no expression>

[error]Arguments : item by index not found in section game_relations, line communities

118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105

Поделиться этим сообщением


Ссылка на сообщение

1. Никак

2. смотри функцию motivator_binder:hit_callback в файле xr_motivator.script

3. Никак

4. смотри функцию motivator_binder:hit_callback в файле xr_motivator.script

5. незнаю

118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105

Поделиться этим сообщением


Ссылка на сообщение

эммм параметр wound_immunity знаю а wound_2_immunity чо такое? :wacko2:

118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105

Поделиться этим сообщением


Ссылка на сообщение
  • Недавно просматривали   0 пользователей

    • Ни один зарегистрированный пользователь не просматривает эту страницу.
×
×
  • Создать...