Перейти к содержимому


Фотография

Редактирование скриптов


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 75

#41 Nordan

Nordan

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 209 сообщений

Отправлено 15 Июнь 2013 - 19:24

QUOTE
так а нельзя ли самому поставить "0" вместо animate_walk!?!!

Если ты не заметил, в этом примере я так и сделал.
QUOTE
Так коды анимации подставляются прямо в "скобки" после команды!?

В скобках пишутся вообще аргументы к функции. Не только коды анимации.


#42 The Master

The Master

    Чистосердечный зевака

  • Пользователи
  • PipPipPip
  • 2 167 сообщений

Отправлено 15 Июнь 2013 - 19:36

Ему нужны азы программирования и хоть какое-то представление о структуре тела программы и синтаксисе. Блок-схемы нарисуйте, чтоль :D


#43 Nordan

Nordan

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 209 сообщений

Отправлено 15 Июнь 2013 - 20:38

QUOTE
Ему нужны азы программирования и хоть какое-то представление о структуре тела программы и синтаксисе.

Ну это и есть самое сложное :) — понять логику работы скрипта. Как только ты понимаешь что и зачем нужно и как это использовать — половина дела уже сделана. Вторая половина — это научиться представлять задачу как набор последовательно выполняемых команд, операторов и переменных. Все остальное уже фигня, приходящая с опытом. Все это не требует каких-то сверх знаний в области программирования,достаточно иметь желание этому научиться (по крайней мере это в моем случае :)). Наличие математического склада ума сильно упрощает задачу.

А вообще, скриптинг похож на конструктор. Вот тебе детальки: функции и операторы. Ты представляешь что должно получиться в конце. Ну и собираешь все воедино. :)


#44 wifyxf

wifyxf

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 69 сообщений

Отправлено 15 Июнь 2013 - 20:52

variable start_hex; //объявляем переменную со стартовым гексом

procedure start begin
end

procedure talk_p_proc begin //попытка заговорить с криттером
start_hex:=tile_num(Self_obj); //записываем стартовый гекс
animate_move_obj_to_tile(self_obj,19898,0); //заставляем идти на гекс 19898
end

procedure critter_p_proc begin //процедура обновления
if tile_contains_obj_pid(19898,0,obj_pid(self_obj)) then begin //проверяем, дошел ли криттор до гекса
display_msg("должен идти обратно"); // это не обязательно писать
animate_move_obj_to_tile(self_obj,start_hex,0); //заставляем идти обратно
end

end


Попробовал выполнить этот скрипт — но он не скомпилировался.. значит что-то не так!?!
я не записывал только то, что было написано после "/", то есть по-русски

Это сообщение отредактировано wifyxf - 15 июня 2013 | 21:53


#45 Nordan

Nordan

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 209 сообщений

Отправлено 15 Июнь 2013 - 21:02

Хм... Странно, у меня все компилируется. И через встроенный компилятор в FSE, и через тот что тебе давал jordan.


Это сообщение отредактировано Nordan - 15 июня 2013 | 22:23


#46 wifyxf

wifyxf

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 69 сообщений

Отправлено 15 Июнь 2013 - 21:14

Хм... Странно, у меня все компилируется. И через встроенный компилятор в FSE, и через тот что тебе давал jordan.

постой... скомпилировался — просто я первый раз в "стартовый гекс" решил написать его значение!?!

А оказывается не надо!?!?!?


сейчас проверю его работу..

Отправлено: 15 июн 13 22:27
Работает! Спасибо за подсказку, только я хотел еще, чтобы он ходил всегда туда и обратно и начинал действия без моего участия — наверное мне нужно найти команду "при заходе на карту", т.е. , когда я захожу на эту карту тот криттер начинает ходить постоянно, НО чтобы ходил постоянно нужно ввести еще одну команду — может "цикл" или что-то вроде этого!? Кстати, а разве нужно опираться от чего-то, что бы нпс выполнял какие-то действия — можно его сделать изначально гуляющим с одного гекса на другой!? а вот — конечно не постоянно гуляющим, а по прошествию определенного количества времени(я так понял тиков или можно минут или секунд — но там свои!?!) — это кажется временные "команды", НО там, кажется, все-равно идет привязка к чему-то — к тому же самому заходу игрока на данную карту — с какого момента будут считаться минуты!?!?

кстати насчет времени в Фоллаут — как оно соотносится с реальным, либо с определенными действиями в игре, может зависит от перемещения по гексам, либо еще чего-то, но наверное все-таки приявязывается к "обычному времени" в каком-то соотношении!?!

Это сообщение отредактировано wifyxf - 15 июня 2013 | 22:34


#47 Nordan

Nordan

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 209 сообщений

Отправлено 15 Июнь 2013 - 21:51

QUOTE
кстати насчет времени в Фоллаут — как оно соотносится с реальным

1 секунда — это 10 игровых тиков.
QUOTE
наверное мне нужно найти команду "при заходе на карту"

Именно. Обработчик map_enter_p_proc.
QUOTE
Кстати, а разве нужно опираться от чего-то, что бы нпс выполнял какие-то действия — можно его сделать изначально гуляющим с одного гекса на другой!?

Всегда должно быть какое то действие, провоцирующие выполнение команд, "просто так" ничего не делается. Хотя обработчик start выполняет записанные в него функции сразу, как только загружается карта. Это и может послужить "пинком". :)

Это сообщение отредактировано Nordan - 15 июня 2013 | 22:52


#48 Wasteland Ghost

Wasteland Ghost

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

  • Пользователи
  • PipPipPip
  • 3 451 сообщений

Отправлено 15 Июнь 2013 - 22:13

QUOTE
Ему нужны азы программирования и хоть какое-то представление о структуре тела программы и синтаксисе. Блок-схемы нарисуйте, чтоль :D

Мы тут что, сильно похожи на камикадзе? :) Если человек не желает разбираться в базовых вещах, а кидается делать всё и сразу, блок-схемами тут не поможешь.

wifyxf, ответы на все заданные вопросы есть в доках по скриптам и туториалах. Не беги впереди паровоза, изучай материал последовательно. И обязательно ходи по ссылкам на дополнительные доки. И читай.


#49 wifyxf

wifyxf

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 69 сообщений

Отправлено 15 Июнь 2013 - 22:15

1 секунда — это 10 игровых тиков.

а в Фоллауте же вроде есть и минуты и часы и дни — в них определенное количество тиков!?

Хотя обработчик start выполняет записанные в него функции сразу, как только загружается карта. Это и может послужить "пинком". :)

так значит все-таки в командах можно ни на что не опираться!?


#50 Wasteland Ghost

Wasteland Ghost

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

  • Пользователи
  • PipPipPip
  • 3 451 сообщений

Отправлено 15 Июнь 2013 - 22:17

QUOTE
а в Фоллауте же вроде есть и минуты и часы и дни — в них определенное количество тиков!?

Умножь же. :)

1 секунда = 10 тиков
1 минута = 60 секунд = 600 тиков
1 час = 60 минут = 3600 секунд = 36000 тиков
1 день = 24 часа = 1440 минут = 86400 секунд = 864000 тиков

QUOTE
так значит все-таки в командах можно ни на что не опираться!?

http://www.teamx.ru/...cs/bis_help.rar, раздел "Стандартные обработчики".


#51 wifyxf

wifyxf

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 69 сообщений

Отправлено 16 Июнь 2013 - 12:48

Умножь же. :)

1 секунда = 10 тиков
1 минута = 60 секунд = 600 тиков
1 час = 60 минут = 3600 секунд = 36000 тиков
1 день = 24 часа = 1440 минут = 86400 секунд = 864000 тиков




так это соотношение к реальному времени, а игровые часы, минуты!?! или там тоже самое!?!


#52 Nordan

Nordan

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 209 сообщений

Отправлено 16 Июнь 2013 - 12:58

Нет, это и есть игровое время. Реальное время в скриптинге ЕМНИП нигде не используется.


#53 Chosen second

Chosen second

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 58 сообщений

Отправлено 19 Июнь 2013 - 15:17

*Поиск всегда был моим слабым местом.
Не могу декомпилировать скрипты,- пишет error: invalid opcode at 0x00017568
Декомпилятор int2ssl.exe


#54 Nordan

Nordan

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 209 сообщений

Отправлено 19 Июнь 2013 - 17:39

Может с саим скриптом что не так? Он стандартный или из мода?


#55 Chosen second

Chosen second

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 58 сообщений

Отправлено 19 Июнь 2013 - 19:55

Из модов Nirrana.


#56 Drobovik

Drobovik

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 211 сообщений

Отправлено 19 Июнь 2013 - 21:51

Моды Nirran'a построены на базе sfall. Тебе нужен редактор Sfall Script Editor by Timeslip.

Качаешь modderspack 3.0.7z, заходишь в архив, распаковываешь папку script editor.

Он обновлен со всеми последними опкодами sfall. Я для починки Мегамода только им и пользуюсь. Никакой настройки не надо, берешь и пользуешься.

Еще момент — пользуйся исходниками скриптов Nirran'a. Он их там в папку Source всегда кидает. Там же находятся все header файлы необходимые для компиляции.
В исходниках скриптов прописаны пути к header в самом начале, тебе их только надо поменять на директорию, в которую ты эти самые Header файлы распакуешь.

Это сообщение отредактировано Drobovik - 19 июня 2013 | 23:00


#57 Chosen second

Chosen second

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 58 сообщений

Отправлено 20 Июнь 2013 - 10:02

За ссылку спасибо, попробуем и этот SDK. (В нем тот же декомпилятор?!)
А вот с исходниками проблема, именно тот скрипт, который отличается есть в одном варианте. :(


#58 wifyxf

wifyxf

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 69 сообщений

Отправлено 22 Июнь 2013 - 12:54

Помогите разобраться в структуре скриптов! Для примера приведу первую часть скрипта Клинта:

#include "..\headers\define.h"
//#include "..\headers\<TownName.h>"

#define NAME SCRIPT_ACKLINT
#define TOWN_REP_VAR (GVAR_TOWN_REP_ARROYO)

#include "..\headers\command.h"
#include "..\headers\ModReact.h"


/* Standard Script Procedures */
procedure start;
procedure critter_p_proc;
procedure pickup_p_proc;
procedure talk_p_proc;
procedure destroy_p_proc;
procedure look_at_p_proc;
procedure description_p_proc;
procedure use_skill_on_p_proc;
procedure damage_p_proc;
procedure map_enter_p_proc;

/* Script Specific Procedure Calls */
procedure Node998; // This Node is Always Combat
procedure Node999; // This Node is Always Ending


// The next lines are added in by the Designer Tool.
// Do NOT add in any lines here.
//~~~~~~~~~~~~~~~~ DESIGNER TOOL STARTS HERE

procedure Node001;
procedure Node002;
procedure Node003;
procedure Node004;
procedure Node005;
procedure Node006;
procedure Node007;
procedure Node008;


1. Что за проеду Node001!? Это просто порядок в Standard Script Procedures, номер 1, номер 2 и т.д. ..!?
2. Все проедуры нужно обязательно вначале перечислять и в определенном порядке!?
3. #include "..\headers\define.h"
//#include "..\headers\<TownName.h>"

#define NAME SCRIPT_ACKLINT
#define TOWN_REP_VAR (GVAR_TOWN_REP_ARROYO)

#include "..\headers\command.h"
#include "..\headers\ModReact.h"
 — это название файлов GVAR?

Значит этот пункт нуженн только если испрльзуются GVARy!? Описание GVAR есть только в папке V13 в игре!?! Есть еще где-нибудькакие-нибудь описания!?

4. На счет VAR!?! я так понял что —
а) varieble — "локальная внутрискриптовая переменная". ты придумываешь сам в каждом отдельном скрипте для каждой процедуры!?
б) varieble var — "глобальная внутрискриптовая переменная". Ты ее пишешь для всего скрипта, она доступна для всех процедур этого скрипта!?
Можете подсказать — как именно им присваивается значение!? До всех процедур!? Можете кто-нибудь показать на примере их отличие!?
в) LVAR — доступны всем скриптам в папке Scripts!? А где их состовлять и записывать!? Можете привести пример LVARy и

г) MVAR — вопрос тот же, что и по LVAR!?

д) GVAR — это отдельный "скрипт", который хранится в какой-то папке Headers!? Но что это за папка и где она есть!? Или не в эой папке!? где их регистрировать и как!? Он также пишется как скрипт и может состоять из varieble, varieble vr, LVAR и MVAR, а может не состоять из них!?


#59 Nordan

Nordan

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 209 сообщений

Отправлено 22 Июнь 2013 - 14:30

Слушай ка, перечитай ты еще разок "Scripts How To". Там на ВСЕ эти вопросы даны ответы. Тебе просто нужно взять, внимательно прочитать и сделать выводы. В идеале еще попробовать закрепить знания на практике. Никто тут переписывать "азбуку" не будет.


#60 wifyxf

wifyxf

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 69 сообщений

Отправлено 22 Июнь 2013 - 14:55

Слушай ка, перечитай ты еще разок "Scripts How To". Там на ВСЕ эти вопросы даны ответы. Тебе просто нужно взять, внимательно прочитать и сделать выводы. В идеале еще попробовать закрепить знания на практике. Никто тут переписывать "азбуку" не будет.

Как раз до написания своего сообщения я прочитал эту доку, но ответов там не нашел!! А чтобы закрепить на практике мне нужно это знать!

мне хочется сначала узнать что такое var Вообще, прежде чем я буду с ней что-то делать, да и вообще хотелось бы узнать немного о примере о структуре скрипта!?!

Конечно, можно до всего дойти и своей головой!! А скрипты можно исследовать методом тыка — так например — сначала написать
procedure start begine
procedure talk_p_pros 
— чтобы криттер заговорил.. не получилось?!! тогда написать так:
void procedure begine
procedure talk_p_pros
 — если не получилось, тогда:
varieble procedure talk_p_pros
procedure start begine
procedure talk_p_proce
 — если не получилось, тогда:
variable var talk_p_pros
procedure start begine
procedure talk_p_proce
 — если не получилось, тогда:
procedure start begine
void procedure talk_p_proce
если не получилось, тогда:
LVAR talk_p_proce
procedure start begine
procedure talk_p_proce
 — если не получилось, тогда:
include:GVAR
procedure start begine
procedure talk_p_proce


и так далее......... незнаю сколько мне времени на это понадобится и сколько я вообще этим смогу заниматься и может быть вообще распрощаюсь с надеждой например сделать мод Фоллаут!?!!
Кстати, "особо продвинутым" скажу — зачем вам вообще нужны программы для моддинга Фоллаут, если их можно написать самому!? Какие вообще могут быть проблемы с движком, если можно его заново написать самостоятельно — всего-то английские символы.. Да и зачем вообще иметь для этого все необхрдимые программы, когда их можно написать самому — ту же операционную систему, те же проигрыватели(видео и аудио, все графические программы.....), зачем платить "интернет-службам" деньги за подключение к интернету, если его легко можно организовать самому — провода есть, волновая связь есть — пожалуйста подключайся!?! Зачем разбираться в малопонятной англоязычной кодироке програмирования, если можно написать собственную — Русскими символами! Да и зачем вообще покупать компьютер, когда его легко можно сделать самому из обычных железок, проводов, воды!?!!!

Это сообщение отредактировано wifyxf - 22 июня 2013 | 16:36




Похожие темы Свернуть

  Название темы Форум Автор Статистика Последнее сообщение


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных

Рейтинг@Mail.ru