Форум TeamX
   Home   Members  
Pages: [1] 2 |   Go Down
 
Author Topic: Кага из мода Киллапа  (Read 2995 times)
Oleg
Пользователь
Posts: 547


Кага из мода Киллапа
« on: 22 June 2008, 21:19:36 »

Помогите разобраться как реализована случайная встреча с Кагой в моде у Киллапа. Весь WORLDMAP.TXT у него прошерстил но кроме вот этого
;  KAGA Encounters

[Encounter: KAGA1]
type_00=ratio:100%, pid:16777713, Item:7(wielded), Item:(15-25)41, Script:831

[Encounter: KAGA2]
type_00=ratio:100%, pid:16777714, Item:10(wielded), Item:(35-55)41, Script:832

[Encounter: KAGA3]
type_00=ratio:100%, pid:16777715, Item:242(wielded), Item:(45-95)41, Script:833

[Encounter: KAGA4]
type_00=ratio:100%, pid:16777716, Item:12(wielded), Item:(115-250)41, Script:834

[Encounter: KAGA5]
type_00=ratio:100%, pid:16777717, Item:28(wielded), Item:(215-325)41, Script:835

[Encounter: Gecko_Enclave_Patrol]
type_00=ratio:0%, pid:19

;END ADDON DATA - killap

там ничего не встретил... Грустный А как-же пропись этого в таблях?

В чем фишка то?

За сим прощаюсь, Олег.
Ray
Глобальный модератор
Posts: 220

336150559
Re: Кага из мода Киллапа
« Reply #1 on: 23 June 2008, 00:14:54 »

Емнип, у Киллапа случайка в restoration project сделана с помощью sfall...
Oleg
Пользователь
Posts: 547


Re: Кага из мода Киллапа
« Reply #2 on: 23 June 2008, 09:12:40 »

Это как? Просмотрел инишник сфалла, что идет в комплекте, ничего приблизительного не обнаружил... Грустный
Может что не увидел? Ткните пальцем... Улыбка

За сим прощаюсь, Олег.
Ray
Глобальный модератор
Posts: 220

336150559
Re: Кага из мода Киллапа
« Reply #3 on: 23 June 2008, 09:44:21 »

Опять же, емнип, это сделано глобальными скриптами. Посмотри скрипты, которые начинаются gl*.int
Oleg
Пользователь
Posts: 547


Re: Кага из мода Киллапа
« Reply #4 on: 23 June 2008, 09:59:23 »

Quote from: Ray on 23 June 2008, 09:44:21
Опять же, емнип, это сделано глобальными скриптами. Посмотри скрипты, которые начинаются gl*.int

Посмотрел, есть glkagaen.int, но он не декомпилиться... Грустный А что за такие глобальные скрипты? Это к чему? В сфалле используется или фолом?

За сим прощаюсь, Олег.
Wasteland Ghost
Администратор
Posts: 869

Маленькое Злое Привидение


Re: Кага из мода Киллапа
« Reply #5 on: 23 June 2008, 11:46:46 »

Oleg, начни внимательно читать описания разделов перед постингом. Последнее китайское предупреждение. В следующий раз темы буду не переносить, а удалять.
Oleg
Пользователь
Posts: 547


Re: Кага из мода Киллапа
« Reply #6 on: 23 June 2008, 13:27:31 »

ЭЭЭ извиняюсь, просто не уверен был куда тему пихать, вроде как мод обсуждал...

А по сути вопроса? Что за глобальные скрипты и что с ними можно делать, а то что то в доках по ним ни гу-гу... Грустный

За сим прощаюсь, Олег.
Ash
Пользователь
Posts: 72

Registered Rock 'nRolla

492973112
Re: Кага из мода Киллапа
« Reply #7 on: 23 June 2008, 16:35:41 »

Насколько я понял из беседы с Ray`ем, sfall позволяет выполнять скрипты на карте мира, чего оригинальная игра никак не умела. Это, имхо, и есть глобальные скрипты, которыми встреча и организуется. Я, несомненно, могу ошибатья.

Если хочешь, чтобы что-то было сделано хорошо - сделай сам.
If you want something to be done well - do it yourself.
Ray
Глобальный модератор
Posts: 220

336150559
Re: Кага из мода Киллапа
« Reply #8 on: 23 June 2008, 18:34:30 »

Не совсем верно. Глобальные скрипты выполняются не только на карте мира, но и во время диалога, главного меню (емнип) и т.п. Есть вроде специальные скрипты для карты мира. Да, их ввёл именно Timeslip. Компилиться(декомпилиться) оригинальным (де)компиллером они и не будут, для этого Timeslip написал(переделал) спец. версию компилятора. Т.к. декомпилятор создавался для оригинальных скриптов - понимать глобальные скрипты sfall он не будет. Проси у Киллапа исходники.

P.S. glkagaen.int - именно то, что тебе надо.
Jordan
Пользователь
Posts: 416

476228895
Re: Кага из мода Киллапа
« Reply #9 on: 23 June 2008, 18:52:45 »

Декомпильнул glkagaen.int но int2ssl его не хочет декомпилить нужно в прогу добавить скриптовые функции которые добавил Timeslip. Я декомпильнул его Noid и вот что получилось

procedure start;

procedure start
begin
  if (op_metarule(22, 0)) then
    return(0);
  asm_push_value(228);
  asm(0x8164);
  asm(0x802f);
  asm_push_value(25);
  asm(0x816a);
  asm_expr(-1);
  asm(0x816a);
  asm_push_value(644);
  asm(0x8004);
  asm_push_value(644);
  asm(0x8170);
  asm(0x802f);
  if ((op_get_pc_stat(1) < 6) and (op_global_var(399) == 0)) then
  begin
    op_set_global_var(27, 5);
    asm_push_value(0);
    asm(0x8171);
  end
  else if ((op_get_pc_stat(1) > 5) and (op_get_pc_stat(1) < 11) and (op_global_var(399) == 1)) then
  begin
    op_set_global_var(27, 5);
    asm_push_value(0);
    asm(0x8171);
  end
  else if ((op_get_pc_stat(1) > 10) and (op_get_pc_stat(1) < 16) and (op_global_var(399) == 2)) then
  begin
    op_set_global_var(27, 5);
    asm_push_value(0);
    asm(0x8171);
  end
  else if ((op_get_pc_stat(1) > 15) and (op_get_pc_stat(1) < 21) and (op_global_var(399) == 3)) then
  begin
    op_set_global_var(27, 5);
    asm_push_value(113);
    asm(0x8171);
  end
  else if ((op_get_pc_stat(1) > 20) and (op_global_var(399) == 4)) then
  begin
    op_set_global_var(27, 5);
    asm_push_value(118);
    asm(0x8171);
  end
end

Хотел попробывать добавить скриптовые функции в int2ssl но так и не понял как это сделать.(ну не силен я в програмировании:)), зато понял как добавлять в Noid. Но Noid устаревший и глючный, смысла добавлять в него нет.

Вот что нужно добавить

0x8156 - int   read_byte(int address)
0x8157 - int   read_short(int address)
0x8158 - int   read_int(int address)
0x8159 - char* read_string(int address)

0x815a - void  set_pc_base_stat(int StatID, int value)
0x815b - void  set_pc_extra_stat(int StatID, int value)
0x815c - int   get_pc_base_stat(int StatID)
0x815d - int   get_pc_extra_stat(int StatID)

0x815e - void  set_critter_base_stat(CritterPtr, int StatID, int value)
0x815f - void  set_critter_extra_stat(CritterPtr, int StatID, int value)
0x8160 - int   get_critter_base_stat(CritterPtr, int StatID)
0x8161 - int   get_critter_extra_stat(CritterPtr, int StatID)

0x816b - int input_funcs_available()
ox816c - int key_pressed(int dxScancode)
0x8162 - void  tap_key(int dxScancode)

0x8163 - int get_year()

0x8164 - bool game_loaded()

0x8165 - bool graphics_funcs_available()
0x8166 - int  load_shader(char* path)
0x8167 - void free_shader(int ID)
0x8168 - void activate_shader(int ID)
0x8169 - void deactivate_shader(int ID)
0x816d - void set_shader_int(int ID, char* param, int value)
0x816e - void set_shader_float(int ID, char* param, float value)
0x816f - void set_shader_vector(int ID, char* param, float f1, float f2, float f3, float f4)
0x81ad - int get_shader_version()
0x81ae - void set_shader_mode(int mode)
0x81b0 - void force_graphics_refresh(bool enabled)
0x81b1 - int get_shader_texture(int ID, int texture)
0x81b2 - void set_shader_texture(int ID, char* param, int texID)

0x816a - void set_global_script_repeat(int frames)
0x819b - void set_global_script_type(int type)
0x819c - int available_global_script_types()

0x8170 - bool in_world_map()

0x8171 - void force_encounter(int map)

0x8172 - void set_world_map_pos(int x, int y)
0x8173 - int get_world_map_x_pos()
0x8174 - int get_world_map_y_pos()

0x8175 - void set_dm_model(char* name)
0x8176 - void set_df_model(char* name)
0x8177 - void set_movie_path(char* filename, int movieid)

0x8178 - void set_perk_image(int perkID, int value)
0x8179 - void set_perk_ranks(int perkID, int value)
0x817a - void set_perk_level(int perkID, int value)
0x817b - void set_perk_stat(int perkID, int value)
0x817c - void set_perk_stat_mag(int perkID, int value)
0x817d - void set_perk_skill1(int perkID, int value)
0x817e - void set_perk_skill1_mag(int perkID, int value)
0x817f - void set_perk_type(int perkID, int value)
0x8180 - void set_perk_skill2(int perkID, int value)
0x8181 - void set_perk_skill2_mag(int perkID, int value)
0x8182 - void set_perk_str(int perkID, int value)
0x8183 - void set_perk_per(int perkID, int value)
0x8184 - void set_perk_end(int perkID, int value)
0x8185 - void set_perk_chr(int perkID, int value)
0x8196 - void set_perk_int(int perkID, int value)
0x8187 - void set_perk_agl(int perkID, int value)
0x8188 - void set_perk_lck(int perkID, int value)
0x8189 - void set_perk_name(int perkID, char* value)
0x818a - void set_perk_desc(int perkID, char* value)

0x818b - void set_pipboy_available(int available)

0x818c - int get_kill_counter(int critterType)
0x818d - void mod_kill_counter(int critterType, int amount)

0x818e - int get_perk_owed()
0x818f - void set_perk_owed(int value)
0x8190 - int get_perk_available(int perk)

0x8191 - int get_critter_current_ap(CritterPtr)
0x8192 - void set_critter_current_ap(CritterPtr, int ap)

0x8193 - int get_active_hand()
0x8194 - void toggle_active_hand()

0x8195 - void set_weapon_knockback(WeaponPtr, int type, float value)
0x8196 - void set_target_knockback(CritterPtr, int type, float value)
0x8197 - void set_attacker_knockback(CritterPtr, int type, float value)
0x8198 - void remove_weapon_knockback(WeaponPtr)
0x8199 - void remove_target_knockback(CritterPtr)
0x819a - void remove_attacker_knockback(CritterPtr)

0x819d - void set_sfall_global(string varname, int/float value)
0x819e - int get_sfall_global_int(string varname)
0x819f - float get_sfall_global_float(string varname)

0x81a0 - void set_pickpocket_max(int percentage)
0x81a1 - void set_hit_chance_max(int percentage)
0x81a2 - void set_skill_max(int value)
0x81b4 - void set_stat_max(int stat, int value)
0x81b4 - void set_stat_min(int stat, int value)
0x81aa - void set_xp_mod(int percentage)
0x81ab - void set_perk_level_mod(int levels)

0x81a3 - int eax_available()
0x81a4 - void set_eax_environment(int environment)

0x81a5 - void inc_npc_level(char* npc)

0x81a6 - int get_viewport_x()
0x81a7 - int get_viewport_y()
0x81a8 - void set_viewport_x()
0x81a9 - void set_viewport_y()

0x81ac - int get_ini_setting(char* setting)

0x81af - int get_game_mode()

0x81b3 - int get_uptime()

0x81b6 - void set_car_current_town(int town)

Сайт http://timeslip.chorrol.com/sfall.html

Воспрянет Россия, из праха отцов
Расправятся крылья, миллионов сердец
Поднимут все головы и грудью вздохнут
И громка скажут, что пришли
Мы пришли, со столетней войны
Oleg
Пользователь
Posts: 547


Re: Кага из мода Киллапа
« Reply #10 on: 23 June 2008, 20:44:47 »

Спасибо Jordan, терь все понятно что там было.

кстати не подскажете эта запись правильна? А то ни разу не делал рандомы...

[Encounter: Kaga]
type_00=pid:16777713, Item:7(wielded), Item:(15-25)41, Script:831, If(Global(399) == 0) And If(Player(stat(1)) < 6)  ; Kaga 1 (Tribal)

ЗЫ: Зачем все через сфал все начали делать? Непонятно...
« Last Edit: 23 June 2008, 21:17:01 by Oleg »

За сим прощаюсь, Олег.
Jordan
Пользователь
Posts: 416

476228895
Re: Кага из мода Киллапа
« Reply #11 on: 23 June 2008, 21:10:19 »

Oleg

Quote
ЗЫ: Зачем все через сфал все начали делать? Непонятно...

sfall добавляет много разных плюшек, новые скриптовые функции редактировать через ini значения, стартовая карта и т.д

Воспрянет Россия, из праха отцов
Расправятся крылья, миллионов сердец
Поднимут все головы и грудью вздохнут
И громка скажут, что пришли
Мы пришли, со столетней войны
Oleg
Пользователь
Posts: 547


Re: Кага из мода Киллапа
« Reply #12 on: 23 June 2008, 21:18:56 »

Quote from: Jordan on 23 June 2008, 21:10:19
Oleg

Quote
ЗЫ: Зачем все через сфал все начали делать? Непонятно...

sfall добавляет много разных плюшек, новые скриптовые функции редактировать через ini значения, стартовая карта и т.д

Жалко только что 1С версия не поддерживается... Грустный

За сим прощаюсь, Олег.
Jordan
Пользователь
Posts: 416

476228895
Re: Кага из мода Киллапа
« Reply #13 on: 23 June 2008, 21:28:43 »

Oleg

Quote
Жалко только что 1С версия не поддерживается... Грустный


Держи, это екзешник от английской версии 1.02д сфал его поддерживает.

http://jordan631.narod.ru/FALLOUT2.7z

Quote
кстати не подскажете эта запись правильна? А то ни разу не делал рандомы...

[Encounter: Kaga]
type_00=pid:16777713, Item:7(wielded), Item:(15-25)41, Script:831, If(Global(399) == 0) And If(Player(stat(1)) < 6)  ; Kaga 1 (Tribal)

Я в них сам особо то не разбирался, меня больше привлекает создание случайных встреч с помощью скриптов, во свобода действий. Веселый

А есть ошибка

If(Global(399) == 0) And If(Player(stat(1)) < 6)  ; Kaga 1 (Tribal)

stat там не работает, нельзя узнать уровень характеристики, но можно сделать так вбить характеристику в гвару и проверять если гвара такаята то то
пример

записывем в гвару значение силы героя
set_global_var(500, get_critter_stat(dude_obj, 0));

А потом в

If(Global(500) > 1) And If(Global(500) < 7)

Потом нужно прописать

[Encounter: Kaga]

в

[Encounter Table ] таблица енкаунтеров

Пример

[Encounter Table 19]
lookup_name=Mod_M                                                          ; Areas around Modoc
maps=Mountain Encounter 6, Mountain Encounter 5, Mountain Encounter 3, Cavern Encounter 4,Cavern Encounter 5
enc_00=Chance:7%,Enc:(3-5) DMRV_Highwaymen AMBUSH Player
enc_01=Chance:7%,Enc:(3-6) DMRV_Robbers AMBUSH Player
enc_02=Chance:7%,Enc:(5-8) KLA_Homeless AMBUSH Player
enc_03=Chance:0%,Enc:(4-7) DMRV_Golden_Geckos AND (6-12) MOD_Mantis AMBUSH Player
enc_04=Chance:15%,Enc:(2-5) Bounty_Hunter_Low AMBUSH Player, If(Global(1) > 1) And If(Player(Level) < 7)

enc_05=Chance:15%,Enc:(1-1) Kaga, дальше проверки на гвару


Или сделать свою таблицу

[Encounter Table 76]
lookup_name=My_Table
это на каких картах может произойти встреча       
maps=Desert Encounter 1, Desert Encounter 2, Desert Encounter 3
enc_00=Chance:15%,Enc:(1-1) Kaga, дальше проверки на гвару

После чего нужно прописать таблицу в список тайлов где она будет происходить

[Tile 9]
art_idx=348
encounter_difficulty=-40
; x_offset_yoffset=terrain,morning_chance,afternoon_chance,night_chance,type
0_0=Mountain,No_Fill,Uncommon,Uncommon,Uncommon,My_Table вот имя таблицы
0_1=Mountain,No_Fill,Uncommon,Uncommon,Uncommon,Prim_M
0_2=Mountain,No_Fill,Uncommon,Uncommon,Uncommon,Wild4_M

Ну вроде всё.

« Last Edit: 23 June 2008, 21:57:21 by Jordan »

Воспрянет Россия, из праха отцов
Расправятся крылья, миллионов сердец
Поднимут все головы и грудью вздохнут
И громка скажут, что пришли
Мы пришли, со столетней войны
Ray
Глобальный модератор
Posts: 220

336150559
Re: Кага из мода Киллапа
« Reply #14 on: 23 June 2008, 23:21:40 »

Quote
ЗЫ: Зачем все через сфал все начали делать? Непонятно...

Затем, что sfall даёт такие возможности, которые оригинальному fallout даже и не снились Подмигивающий
Pages: [1] 2 |   Go Up