Четверг, 26 Декабря 2024, 17:55

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
Куча вопросов по 3d rad
BahaДата: Понедельник, 30 Ноября 2009, 09:56 | Сообщение # 61
почетный гость
Сейчас нет на сайте
Эххх.. Совсем изленились..
Вот мануал: Если не знаешь что делать: ЖМИ СЮДА!


Сообщение отредактировал Baha - Понедельник, 30 Ноября 2009, 10:11
VickaДата: Понедельник, 30 Ноября 2009, 13:42 | Сообщение # 62
Another ART
Сейчас нет на сайте
Baha, ну я немного не тот вопрос задал.

SkyДата: Понедельник, 30 Ноября 2009, 20:59 | Сообщение # 63
частый гость
Сейчас нет на сайте
А по моему Baha точно по теме сказал. Точно также можно создать и RigidBody (там есть такой пункт). А при установке его на карте в графе "МАССА" поставить -1, и объект будет статичным.

Sky (Fire Blood)
VickaДата: Вторник, 01 Декабря 2009, 19:15 | Сообщение # 64
Another ART
Сейчас нет на сайте
Sky, полигональный риг боди не прощитывает правильнуюю физику. а просто катается по земле как будто находится в шаре.

eddiДата: Вторник, 01 Декабря 2009, 19:56 | Сообщение # 65
был не раз
Сейчас нет на сайте
это скорее не вопрос а совет может кому пригодится
Кто пользуется русской версией 3D Rad при установке с официального сайта дополнительных ресурсов, возможна замена русифицированных файлов *.dll
на английские
surprised


Сообщение отредактировал eddi - Вторник, 01 Декабря 2009, 23:51
VickaДата: Суббота, 05 Декабря 2009, 13:01 | Сообщение # 66
Another ART
Сейчас нет на сайте
Кто нибудь знает как выключит свет)??? Ну типа чтобы было темно и с фонариком можно было ходить?

VickaДата: Понедельник, 07 Декабря 2009, 19:32 | Сообщение # 67
Another ART
Сейчас нет на сайте
Akyltist, вот я слепой еджик) Спасибо)
Кстати о радуге, я чтото не понимаю она платной становится чтоли?
и еще - анимацию скин меша можно запустить только с использованием скрипта?




Сообщение отредактировал Neia - Понедельник, 07 Декабря 2009, 19:33
CrayziДата: Пятница, 18 Декабря 2009, 06:06 | Сообщение # 68
уже был
Сейчас нет на сайте
У меня такой нупский вопрос:
Как получить требуемую информацию из базы MySQL посредством 3D RAD (допустим запущена база на том же компе, логин 123 пароль 321 название "World" в ней раздел "Accounts", который состоит из 1 таблицы "Login", как получить данные из этой таблицы и как выполнить туда sql ф-цию)? Не судите строго, я работал с MySQL только через сторонние программы, да и 3D RAD только начал изучать.
AkyltistДата: Пятница, 18 Декабря 2009, 08:37 | Сообщение # 69
заслуженный участник
Сейчас нет на сайте
Quote (Crayzi)
У меня такой нупский вопрос:
Как получить требуемую информацию из базы MySQL посредством 3D RAD (допустим запущена база на том же компе, логин 123 пароль 321 название "World" в ней раздел "Accounts", который состоит из 1 таблицы "Login", как получить данные из этой таблицы и как выполнить туда sql ф-цию)? Не судите строго, я работал с MySQL только через сторонние программы, да и 3D RAD только начал изучать.

Учитывая что NETWORK FUNCTIONS в AngelScript для 3D Rad специфичены, и не совместимы с БД типа MySQL, то средствами чисто 3D Rad никак. Однако у нас есть такой замечательный раздел как "EXTERNAL DLL FUNCTIONS"

EXTERNAL DLL FUNCTIONS


  • int iDLLLoad(string)
  • iDLLUnload(int)
  • bool iDLLCall(int,string,int)
  • iDLLArraySet(int,float)
  • float iDLLArrayGet(int)

Code

//Функция первых два элемента массива помещает в третьем

int DLLHandle = 0;
void Main()
{
    if (iInitializing())
    {
       DLLHandle = iDLLLoad(".\\3DRad_res\\objects\\Script\\MyDLL.dll");
    }
    else if (iDeinitializing())
    {
       if (DLLHandle != 0) iDLLUnload(DLLHandle);
    }
    else
    {
       if (DLLHandle != 0)
       {
          iDLLArraySet(0,3);
          iDLLArraySet(1,4);
          iDLLArraySet(2,0);
          iDLLCall(DLLHandle,"MyFunction",0);
          OUT_0 = iDLLArrayGet(2); //OUT_0 - вывод на value print
       }
    }
}

Не забываем юзать соглашение __stdcall

Либу необходиму для работы можно написать на любом ЯП например на Дельфине.
Не буду в даваться в подробности написания либы, но чтобы не было гемора с MySQL запросами то ставим дельфина, качаем эту либу компонентов. После скачки распаковываем в {$Delphi}/lib/.
При работе с MySQL добавляем в uses uMySqlVio, uMysqlCT, uMysqlClient, uMysqlHelpers

Добавим в объект:

MySQLClient: TMySQLClient;

Еще нам понадобится один объект для выполнения SQL запросов:

MySQLResult: TMysqlResult;

Пишем код для подключения к базе и выполнения запроса. Двойной клик на главной форме и в процедуре OnCreate пишем:

Code
MySQLClient := TMySQLClient.Create;

В процедуру OnDestroy добавляем такой код:

Code
MySQLClient.Free;
if MySQLResult <> nil then
MySQLResult.Free;

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

Code
if FMysql.Connect(Edit1.Text, Edit3.Text, Edit4.Text, 'db', StrToInt(Edit2.text), '', false, 0) then ShowMessage('connected ok!');

Аргументы этой функции располагаются в таком порядке:

host, username, password, db, port, socket, try, sockets, client, flag

Сам запрос ничем не отличается от такого же, написанного на PhP.
Результат выполнения запроса присваивается переменной MySQLResult, а для выполнения используется объект MySQLClient. Функция выполнения запроса принимает три аргумента: сам SQL запрос, флаг - сохранять ли результат и переменную, куда будет записан флаг выполнения (true, false).

Code
MySQLResult := MySQLClient.Query('SELECT * FROM admin_users WHERE username=''dummy_username'' and password=''dummy_pass''', True, OK);

Таким образом, строка кода, которую вы видите выше, присваивает результат выполнения запроса переменной MySQLResult. В запросе извлекается запись из таблицы admin_users. В логической переменной OK сохранен флаг выполнения, то есть, значение true свидетельствует об успешном выполнении, а false означает ошибку.

Теперь можно получить значение поля:

Code
MySQLResult.FieldValueByName('username');

Как можно было догадаться, это скрипт проверки имени пользователя и пароля. Осталось только сделать проверку.

Я решил сделать это таким образом, что все проверяется в одном операторе IF, и конкретная причина не выдается:

Code

if (MySQLResult.FieldValueByName('username') <> 'dummy_username') or (MySQLResult.FieldValueByName('password') <> 'dummy_pass') then

Здесь мы проверили жестко закодированное имя пользователя dummy_username с тем, которое возвратил запрос. Пароль проверяется таким же образом.

Для проверки пасов разумеется юзаем md5 хеш. На всякий случай прикрепил Uses для md5

PS: в общем пишите либу и через нее работайте.

Прикрепления: psnMD5.rar (3.3 Kb)
AlexinoДата: Пятница, 18 Декабря 2009, 14:25 | Сообщение # 70
участник
Сейчас нет на сайте
Помогите мне пожалуйста....
Как сделать чтобы учитывались круги...например есть трасса круговая....и ничего больше нету...как сделать чтобы в определённой точке учитывались круги
и ещё вопрос есть....как сделать чтобы соперники(другие машины) ездили сами по себе и не повторяли движения моей машины?!
жду ответов

Добавлено (18.12.2009, 14:25)
---------------------------------------------
Помогите мне пожалуйста....
Как сделать чтобы учитывались круги...например есть трасса круговая....и ничего больше нету...как сделать чтобы в определённой точке учитывались круги
и ещё вопрос есть....как сделать чтобы соперники(другие машины) ездили сами по себе и не повторяли движения моей машины?!
жду ответов


FutureTrace(Мой готовый проект №2)
Furstema(Мой готовый проект №1)
SonicДата: Пятница, 18 Декабря 2009, 14:31 | Сообщение # 71
был не раз
Сейчас нет на сайте
Quote (Alexino)
Помогите мне пожалуйста....
Как сделать чтобы учитывались круги...например есть трасса круговая....и ничего больше нету...как сделать чтобы в определённой точке учитывались круги
и ещё вопрос есть....как сделать чтобы соперники(другие машины) ездили сами по себе и не повторяли движения моей машины?!
жду ответов

Открой проект SUVRace.3dr там всё поймёшь... wink
AlexinoДата: Пятница, 18 Декабря 2009, 15:18 | Сообщение # 72
участник
Сейчас нет на сайте
Sonic, мм..попробовал...кое что понял...но не очень лучше мануал...думаю многим он нужен

FutureTrace(Мой готовый проект №2)
Furstema(Мой готовый проект №1)
AkyltistДата: Пятница, 18 Декабря 2009, 17:08 | Сообщение # 73
заслуженный участник
Сейчас нет на сайте
На пункт ниже обсуждалась эта тема по АИ, смотрите вот эту темку, последний пост, там есть видео метров на 13 по пунктам.

3D Rad (Онлайн Руководство Разработчика GCUP)Сообщение # 14. Создаем A.I. Для Машин

Look where [step 1] and [step 2]. It's simple.
Good luck!

PS: Incidentally there is video.
PPS: Статья написана в стиле шлака и с опечатками, читать будет тяжело).

pentod65Дата: Суббота, 19 Декабря 2009, 04:11 | Сообщение # 74
был не раз
Сейчас нет на сайте
Извиняюсь, если вопрос уже, где то задан.
Как вернуть вылетевший с трассы или
перевернувшийся сар или сарАI, не начиная игру
заново?
AkyltistДата: Суббота, 19 Декабря 2009, 06:11 | Сообщение # 75
заслуженный участник
Сейчас нет на сайте
Quote (pentod65)
Извиняюсь, если вопрос уже, где то задан.
Как вернуть вылетевший с трассы или
перевернувшийся сар или сарАI, не начиная игру
заново?

Есть несколько вариантов развития

1. вариант "Точки прохождения"

На трассе выставляются невидимые объеты которые не обладают физическим свойствами, назовем их условно триггерными точками, не можете конечно туда невидимые примитивы ввиде сфер поставить. После этого как человек перевернулся на машине он жмет некую клавишу, допустим [Enter], после этого мы находим ближайшую к машине точку которую он уже проехал, и откидываем его слегка назад к этой точке скриптом.

2. вариант "Переворот на месте"

Так как по идее у нас необходимость тачку просто перевернуть после аварии, то мы можем сделать это непосредственно на месте крушения не откидывая слегка назад как в предыдущем варианте, бонус этого варианта в минимуме кодаи в большей логичности. Ну кто когда будет переворачивать тачку в жизни попрет ее на 100 метров назад чтобы тебя наказать? Ну моразм ведь.

Много слов мало дела.

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

Добавим 2 объекта в проект.
а) EventOnInput - оставим Active и Working At Start галочки включенными. Выберем в качестве клавиши ту которая еще не используется, так как мне пофиг я выбрал [Enter] переключаем в связях все на IGNORE.

б) Script - оставим Active и Working At Start галочки включенными. Свяжем этот объект с Машиной и EventOnInput

в) После чего обращаем внимание на то какие ID у наших объектов и их UIN на входе. Нам интересно событие по нажатию клавиши [Enter], которое назначено у нас в EventOnInput и на входе является IN_0 а машина у нас является объектом OBJ_22.


c)
Пишем простейший скрипт:

Code
void Main()
{
     if (IN_0>0)   
     {
        Quaternion targetOrientation;
        //get car Orientation
        iObjectOrientation(OBJ_22,targetOrientation);
        // angle crash 80
        if(targetOrientation.z>80 || targetOrientation.z>-80)
        {
           //add some offset to car Orientation
           targetOrientation.z = 0;
           //place the label there
           iObjectOrientationSet(OBJ_22,targetOrientation);
     }
     iScriptStop();
     }
}

где if(targetOrientation.z>80 || targetOrientation.z>-80) проверка на то перевернута машина или нет, чтобы не срабатывало если не перевернута. 80 - это угол.

Скачать Демо

THE END;
AlexinoДата: Суббота, 19 Декабря 2009, 14:34 | Сообщение # 76
участник
Сейчас нет на сайте
люди пожалуйста объясните мне как загружать новые объекты?(свои)и какой нужен формат
P.S пользуюсь 3Ds Max для создания объектов


FutureTrace(Мой готовый проект №2)
Furstema(Мой готовый проект №1)
CrayziДата: Воскресенье, 20 Декабря 2009, 16:00 | Сообщение # 77
уже был
Сейчас нет на сайте
Уважаемый Akyltist, не могли бы Вы написать мануал с примером использования библиотек в 3D Rad.
ARДата: Воскресенье, 20 Декабря 2009, 21:29 | Сообщение # 78
участник
Сейчас нет на сайте
Alexino, Ты вобще форум почитал? Уже говорилось не раз!
pentod65Дата: Понедельник, 21 Декабря 2009, 03:37 | Сообщение # 79
был не раз
Сейчас нет на сайте
Akyltist, спасибо! smile

Искал в нете мануал на скрипт, все на буржуинском.
Придется вникать по скромным примерам Akyltist или есть варианты?

Спасибо!

Сообщение отредактировал pentod65 - Среда, 23 Декабря 2009, 00:18
RMV1983Дата: Вторник, 29 Декабря 2009, 12:11 | Сообщение # 80
был не раз
Сейчас нет на сайте
Есть несколько вопрсов:
1. Есть ли стандартная обработка ini/xml-файлов или чего-нибудь похожего в скриптах?
2. Как в скрипте менять порядок(номер) включённых элементов? т.е. Есть OBJ_0 и OBJ_22 а я хочу поменять их местами. Как?
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг