[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум » Проекты » GTA Script Generator » Общие вопросы по GTA Script Generator
Общие вопросы по GTA Script Generator
wmysterio
Администраторы
Скриптер
27.08.18 11:15
Offline
В этой теме Вы можете задать вопросы по этой библиотеке, рассказать о багах или предложить идею. Скачать последнюю версию генератора Вы сможете здесь.

Greyg
Пользователи
05.12.19 19:54
Offline
А он генерирует допустим массивы из C#?

wmysterio
Администраторы
Скриптер
05.12.19 20:41
Offline
Цитата Greyg ()
А он генерирует допустим массивы из C#?
Он может генерировать только SCM-массивы в режиме GTA SA. Генератор позволяет использовать некоторые возможности C#, но весь код всё равно базируется на использование только тех функций, которые содержит библиотека. C#-массивы можно использовать для простоты. Например: хранить данные, которые лень писать каждый раз ))
public class TEST : Thread {

/* C#-массив "models" */
Int[] models = { ADMIRAL, AK47, 102, CarModel.CLUB, ActorModel.WMYST };

public override void Start() {

load_model( models ); /* используем массив для загрузки моделей */
load_requested_models();

wait( 2500 );

destroy_model( models ); /* удаляем модели с памяти */
end_thread();
}

}
Здесь массив "models" позволяет изменять свое содержимое в произвольном порядке, не редактируя в коде методы "load_model" и "destroy_model".

Greyg
Пользователи
24.12.19 21:28
Offline
Цитата wmysterio ()
Он может генерировать только SCM-массивы в режиме GTA SA. Генератор позволяет использовать некоторые возможности C#, но весь код всё равно базируется на использование только тех функций, которые содержит библиотека. C#-массивы можно использовать для простоты. Например: хранить данные, которые лень писать каждый раз ))

Мне массивы нужны для некого ООП (то есть у меня массив "Люди" и в них разделение ещё на массивы где в итоге характеристики) которые я использую в коде. В SCM я даже не знаю как это провернуть, так как как у массивов ограниченный список типов.
Отредактировал Greyg - Вторник, 24.12.19, 21:37

wmysterio
Администраторы
Скриптер
25.12.19 02:27
Offline
Цитата Greyg ()
так как как у массивов ограниченный список типов.
Так и должно быть. Не забывайте, что это генератор скриптов, а не полноценный ScriptHook, как в GTA IV (для SA тоже есть, но у меня он не работает). Здесь не получится пользоваться ООП на полную катушку, так как предназначен для разработки миссий на основе SCM‐скриптинга. Можно только немного усовершенствовать имеющийся код, но это будет лишним. Например:
public class CustomActor {

private Actor ped = Thread.local();

public Actor Ped {
get {
return ped;
}
}

public Float Angle {
set {
ped.set_z_angle( value );
}
}

public CustomActor( Float x, Float y, Float z ) {
Model.load( ActorModel.ARMY );
Thread.load_requested_models();
ped.create( ActorType.MISSION1, ActorModel.ARMY, x, y, z );
Model.destroy( ActorModel.ARMY );
}

public override string ToString() { return ped.ToString(); }

public static implicit operator Actor( CustomActor cActor ) { return cActor.ped; }

}

/* *** *** *** */

public class TEST : Thread {

CustomActor myActor;

public override void Start() {
myActor = new CustomActor( 0.0, 0.0, 0.0);
myActor.Angle = 25.0;

and(
PlayerActor != myActor
, delegate {
show_formatted_text_lowpriority( "It is not player actor!", 4000 );
} );

myActor.Ped.task.kill_actor_on_foot( PlayerActor );
end_thread();
}

}
Что касается
Цитата
массив "Люди" и в них разделение ещё на массивы где в итоге характеристики
, то эти характеристики и людей надо хранить в буфере, конструкция HEX-END. СА не будет знать, что есть какой‐то массив вне SCM‐кода. Есть урок о нём и в генератора есть возможность создавать такие конструкции:
Memory bufferPointer = local(); /* 0@ */

public override void Start() {
Ignore = delegate { BaseScript.Jump += HEX; };
bufferPointer.get_label_offset( HEX );

/* ... */

}
private void HEX( LabelJump label ) { hex( "hex code here..." ); }

Greyg
Пользователи
25.12.19 11:32
Offline
Извиняюсь за глупые вопрос, но я решил скачать, опробовать хотя бы. Но застрял на моменте запуска, я уже прям из справки копировал всё равно ошибка. Что я делаю не так?
Program.cs
Код
using GTA.Core;
using System;

namespace demo_app
{

    class Program
    {

        static void Main(string[] args)
        {

            Generator.UnknownThreadsMemory = 2048;
            Generator.Start<MAIN>(true); // запускаем генератор!

            Console.ReadKey();
        }

    }

}

MAIN_SCM.cs
Код
using GTA;
using GTA.SA;

public partial class MAIN : Thread
{

    public override void Start()
    {

        Int myLocalVariable = local(0);// 0@
        Int myGlobalVariable = global(2000); // $2000

        myLocalVariable.value = 10;
        myGlobalVariable.value = myLocalVariable;

        end_thread();
    }

}


Консоль вывода
Код

[JESSY] Ошибка:

The specified executable is not a valid application for this OS platform.

Файл:
Метод: StartWithCreateProcess
Строка: 0
Колонка: 0

Файл:
Метод: Start
Строка: 0
Колонка: 0

Файл:
Метод: Start
Строка: 0
Колонка: 0

Файл:
Метод: Start
Строка: 0
Колонка: 0
Отредактировал Greyg - Среда, 25.12.19, 11:34

wmysterio
Администраторы
Скриптер
25.12.19 16:46
Offline
Цитата Greyg ()
The specified executable is not a valid application for this OS platform.

Попробуйте вызвать без открытия файла результата:
Код
Generator.Start<MAIN>( false );
Хотя это скорее с ОС проблема. Какую Вы используете?

Greyg
Пользователи
25.12.19 17:02
Offline
Цитата wmysterio ()
Попробуйте вызвать без открытия файла результата:

Всё ок, вернее консоль не выдаёт ошибку.

Цитата wmysterio ()
Какую Вы используете?

Windows 10

wmysterio
Администраторы
Скриптер
25.12.19 17:25
Offline
Цитата Greyg ()
Всё ок, вернее консоль не выдаёт ошибку.
Нужные файлы должны находятся в папке: "YouProject\bin\Debug" или "YouProject\bin\Release" (main.txt). Та ошибка была связана с тем, что ОС не позволила открыть файл в текстовом редакторе по-умолчанию.

Greyg
Пользователи
25.12.19 18:29
Offline
Цитата wmysterio ()
Нужные файлы должны находятся в папке: "YouProject\bin\Debug" или "YouProject\bin\Release" (main.txt). Та ошибка была связана с тем, что ОС не позволила открыть файл в текстовом редакторе по-умолчанию.

И правда, а с чем это связано, как исправить?

wmysterio
Администраторы
Скриптер
25.12.19 19:07
Offline
Цитата Greyg ()
а с чем это связано
Причины могут быть разными и я не знаю что именно надо сделать для открытия исходника.
Цитата Greyg ()
как исправить?
Попробуйте установить NotePad++ — более навороченный текстовый редактор — и в ОС установите редактор для открытия *txt‐файлов по умолчанию. Я им пользуюсь для просмотра, хотя и сомневаюсь, что это поможет. В следующей версии сделаю опцию открытия этого файла в Sanny Builder.

Greyg
Пользователи
25.12.19 19:26
Offline
Цитата wmysterio ()
Попробуйте установить NotePad++ — более навороченный текстовый редактор — и в ОС установите редактор для открытия *txt‐файлов по умолчанию. Я им пользуюсь для просмотра, хотя и сомневаюсь, что это поможет. В следующей версии сделаю опцию открытия этого файла в Sanny Builder.

Он у меня давно есть (ставлю почти сразу после установки OC). А поставив по умолчанию не дало никакого эффекта. Кстате а есть требования по версии Visual Studio? У меня сейчас 19, но она сильно довольно тормозит думаю может до 17 перейти.
P.s Пока как выход просто 2 окном держу текстовик и обновляю после билда.
Отредактировал Greyg - Среда, 25.12.19, 19:29

wmysterio
Администраторы
Скриптер
25.12.19 20:59
Offline
Цитата Greyg ()
Он у меня давно есть (ставлю почти сразу после установки OC)
Хорошо. тогда проблема только в методе «Generator.Start» строке «Process.Start( "main.txt" )», который не запускает NotePad++.
Цитата Greyg ()
Кстате а есть требования по версии Visual Studio?
Если 2017 позволяет использовать .Net Framework 4.7 (4.8,4.6,4.5, …), то 2019 не является обязательной. Я указал её скорее как рекомендуемую, чтобы при установке 2019 также ставился последний .Net Framework. Именно фреймворк является обязательным требованием, а не сам редактор.

Форум » Проекты » GTA Script Generator » Общие вопросы по GTA Script Generator
  • Страница 1 из 1
  • 1
Поиск: