Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
oly gf pts
#11
С каждым своим сообщением я пытаюсь вытащить из Вас, Deazer, более подробную информацию. И у меня это не получается....

То есть тот AI.obj (который находится в папке сборки PTS Gracia Final, которую Вы же и предоставили) - и есть исходный код? И для его работы не обязательно делать компиляцию?
Ответ
#12
Давай я тогда тебе расскажу вообще что такое ai.obj и что он из себя представляет.
ai.obj - набор классов и инструкций для виртуальной машины NPC сервера.
Как выглядит код виртуальной машины -
Вот это лабурда превращается
PHP код:
<?php 
class 0 default_npc : (null)
parameter_define_begin
int DesirePqSize 50
int FavorListSize 30
// ...
parameter_define_end
handler 4 13
variable_begin
"talker"
"myself"
"_choiceN"
"_code"
"_from_choice"
variable_end
push_event
push_const 784
add
fetch_i
push_event
push_const 40
add
fetch_i
S0
. "noquest.htm"
push_string S0
func_call 235012165
shift_sp
-2
shift_sp
-1
handler_end
class_end
В понятный код на ЯВУ-
PHP код:
<?php 
class SomeNpc extends Npc /* 0 - Npc, 1 - NpcMaker */
{
/*
* Class fields. It's values may be owerrided by spawner ai_params
*/
int DesirePqSize = 50;
int FavorListSize = 30;
String fnHi = "chi.htm";
String fnFeudInfo = "defaultfeudinfo.htm";
String fnNoFeudInfo = "nofeudinfo.htm";
String fnBracketL = "[";
String fnBracketR = "]";
String fnFlagMan = "flagman.htm";

BuySellList someBuySellList = new BuySellList(); //
// Other types here

void OnCreated(NpcEventContext evCtx) // or NpcMakerEventContext
{
// Do some work when this class created. ctor on terms of c++
}

void OnMenuSelected(NpcEventContext evCtx) // or NpcMakerEventContext
{
// Do some work when someone send us a bypass
}

void OnTalkSelected(NpcEventContext evCtx) // or NpcMakerEventContext
{
evCtx->myself->ShowPage(evCtx->talker, "noquest.htm");
}
// And other handlers like OnAttaked, SeeItem, Timer events, etc
}
Зачем декомпилировать (и/или почему глупо редактировать в текущем виде) -
Редактировать и добавлять свои AI в прямо в ai.obj без декомпилирования можно!НО Если вы способны держать состояние виртуальной машины в голове и генерировать соответствующий асемблер на лету, то флаг в руки and back to 60's когда это имело смысл. В современности труд программиста перестал быть рабским. Можно и сервера на ASM писать , но я напишу его в разы быстрее на яве или плюсах.
Декомпилировать нужно для того что-бы понимать это на уровне высокоуровнего С++ подобного языка и делять работу во много раз эффективней.
Ответ
#13
Вот, теперь я всё понял. Большое спасибо.

Тогда посоветуйте мне хороший компилятор \ де компилятор, который верно выполнит свою задачу. А не тот, ссылку на которую я дал выше.
Ответ
#14
Компилятор для меня только один NASC - NCSoft AI Script Compiler , но сейчас он не работает(GF), так что так же ищите.
Декомпилятор - либо модифицированный Саурона, либо от других умельцев, конкретного чего-то посоветовать не могу т.к. сейчас уже не работаю с PTS серверами. Платят мало :redlol:
Ответ
#15
Тогда такой вопрос назревает (ввиду сомнительности компилятора \ де компилятора) - можно ли создать многофункционального npc не затрагивая AI?

Udp: Извиняюсь, что задаю глупые вопросы. Но знаний у меня пока мало.
Ответ
#16
Он не может быть "сомнительным" , либо работает либо нет.
А по поводу - можно ли без AI сделать своего НПЦ с набором функций. Конечно можно , так же как и летать на луну без ракеты. Можно патчить память NPC сервера ,можно екстить.
Но в таких фетишах в мире я наверное видел только одного мастера - Smeli
Ответ
#17
Наверное, уже устали от вопросов. Но у меня ещё один (:

После де компиляции AI.obj какой язык программирования получается?

Добавлено через 2 минуты
Deazer Написал:Он не может быть "сомнительным" , либо работает либо нет.

MAER Написал:Прога может не правильно декомпилить код который создан другим компилятором.

Хм... Я чего-то снова не понимаю?
Ответ
#18
Feers1de Написал:После де компиляции AI.obj какой язык программирования

После этой фразы мне помочь вам более нечем. Изучайте азы программирования , потом поговорим о представлениях.
Ответ
#19
Feers1de Написал:После де компиляции AI.obj какой язык программирования получается?
Какой захотите.
Для примера:
Код:
    push_event    //  myself
    push_const 784            //AddFollowDesire
    add
    fetch_i            //AddFollowDesire
    push_event    //  myself
    push_const 784            //myself
    add
    fetch_i            //boss
    push_const 1496            //boss
    add
    fetch_i
    push_const 5            //unary->INTEGER_CONST
    func_call 235012111    //  func[AddFollowDesire]
    shift_sp -2
    shift_sp -1
Превращается в понятный код:
Код:
myself.AddFollowDesire( myself.boss, 5 );
Иногда я редактирую байткод (когда лень запускать компилятор или нужно исправить пару строк кода, дабы пофиксить проблемы с АИ у корейцев), иногда приходится ребилдить всю эту гадость.
[Изображение: 4e38c909fcd08c5fcdf363b54a62.png]
Ответ


Перейти к форуму:


Пользователи, просматривающие эту тему: 1 Гость(ей)