#4451 19-01-2014 20:44

Sergey81
Registered: 19-12-2008
Posts: 654

Re: Один вопрос

Насколько я понимаю, даже увеличив эти лимиты с помощью SALA, добавить машины просто так нельзя будет, для этого были плагины от Александра и других авторов. Могу ошибаться, но в любом случае, использование SALA - плохая идея.

Offline

#4452 19-01-2014 20:59

Seemann
Registered: 07-08-2006
Posts: 2,155

Re: Один вопрос

оффтоп: Давно пора в ехе оставить только работу с графикой и звуком, остальное вынести во внешнюю длл с лимитами, соответствующими современным реалиям (т.е. по сути доделать то, что начинал listener). smile

Offline

#4453 19-01-2014 21:02

Mr. Rollton
From: Томск
Registered: 17-01-2014
Posts: 8

Re: Один вопрос

Sergey81 wrote:

Насколько я понимаю, даже увеличив эти лимиты с помощью SALA, добавить машины просто так нельзя будет, для этого были плагины от Александра и других авторов. Могу ошибаться, но в любом случае, использование SALA - плохая идея.

Ну одним увеличением лимитов дело не ограничивается, конечно. Нужно еще вносить редактуры в handling, cargrp, vehicles, carmods и прочие конфиги, а также пользоваться плагинами вроде Vehicle Handling Adder, Vehicle Audio Editor Ultimate и Vehicle Special Abilities Editor от Alexander.

UPD: Нашел отдельные плагины, увеличивающие доступное количество машин и Streaming Memory.
Осталось узнать, как увеличить максимальное количество модов на машины.

Last edited by Mr. Rollton (19-01-2014 21:09)

Offline

#4454 20-01-2014 03:39

Portal25
From: Tambov
Registered: 25-06-2011
Posts: 52
Website

Re: Один вопрос

Mr. Rollton wrote:

UPD: Нашел отдельные плагины, увеличивающие доступное количество машин и Streaming Memory.

Что за плагины ? Ссылку можно ?


OgYkX.png

Offline

#4455 20-01-2014 06:20

Mr. Rollton
From: Томск
Registered: 17-01-2014
Posts: 8

Re: Один вопрос

Portal25 wrote:
Mr. Rollton wrote:

UPD: Нашел отдельные плагины, увеличивающие доступное количество машин и Streaming Memory.

Что за плагины ? Ссылку можно ?

Да, конечно! Сами плагины, на самом деле, нашел на сайте Alexander Blade'а.
dev-c.com/files/SAMoreVehicles.rar - Больше машин
dev-c.com/files/SAStreamMemFix2.0.rar - Фикс Streaming Memory
Остальные полезные плагины смотреть тут: dev-c.com/gtasa (правда, описание на английском).
Перед каждой ссылкой добавьте "www." (без кавычек), антиспам не позволяет публиковать ссылки.

Last edited by Mr. Rollton (20-01-2014 06:25)

Offline

#4456 21-01-2014 14:34

HH
Registered: 21-01-2014
Posts: 35

Re: Один вопрос

Привет всем, меня интересует каким способом задать объекту смотреть туда же куда и камера по всем осям???
Пробовал с машиной, не очень точно смотрит+машина переворачивается

Код:
068D: get_camera_position_to 10@ 11@ 12@  
068E: get_camera_target_point_to 20@ 21@ 22@   
0063: 10@ -= 20@ // (float) 
0063: 11@ -= 21@ // (float) 
0063: 12@ -= 22@ // (float)  
07C6: set_car 0@ axis_angle_relation_to 10@ 11@ 12@ 23@
0A30: repair_car 0@

Помогите Ребят.

Offline

#4457 21-01-2014 16:35

DK22Pac
From: Ukraine
Registered: 26-03-2010
Posts: 447
Website

Re: Один вопрос

В 07C6 передаются компоненты кватерниона x y z w.
Найди матрицу камеры, переведи вращение в кват, потом кват отправляй в 07C6.


Plugin-SDK https://github.com/DK22Pac/plugin-sdk
Discord-сервер по plugin-sdk и программированию в GTA
RU https://discord.gg/QEesDGb
ENG https://discord.gg/zaVqFQv

Offline

#4458 22-01-2014 06:38

Voron295
From: Каушаны
Registered: 06-12-2010
Posts: 425
Website

Re: Один вопрос

DK22Pac wrote:

В 07C6 передаются компоненты кватерниона x y z w.
Найди матрицу камеры, переведи вращение в кват, потом кват отправляй в 07C6.

Проще уж будет задать объекту матрицу камеры, нежели переводить её в кват и задавать опкодом (тем более, что он используется конкретно для машин, а ему надо для любого объекта). Вобщем, чуть позже напишу, как реализовать, сейчас уходить надо.


Добро всегда побеждает зло. Кто победил, тот и добрый!
userbar.png

Offline

#4459 22-01-2014 06:49

HH
Registered: 21-01-2014
Posts: 35

Re: Один вопрос

Ребят во общем мне надо для машины. Думаю с объектом тоже так  же можно сделать

Offline

#4460 22-01-2014 14:28

Voron295
From: Каушаны
Registered: 06-12-2010
Posts: 425
Website

Re: Один вопрос

HH wrote:

Ребят во общем мне надо для машины. Думаю с объектом тоже так  же можно сделать

Написал в виде SCM-функции, ибо так удобнее использовать.

// 0AB1: SetCarRotationFromCamera 1 car 0@

:SetCarRotationFromCamera
0A97: 1@ = car 0@ struct
1@ += 0x14
0A8D: 1@ = read_memory 1@ size 4 virtual_protect 0
2@ = 0xB6F99C // Адрес матрицы камеры

// Первые три значения инвертируем, т.к. матрица камеры немного не такая, как у машины
0A8D: 3@ = read_memory 2@ size 4 virtual_protect 0
3@ *= -1.0
0A8C: write_memory 1@ size 4 value 3@ virtual_protect 0
1@ += 4
2@ += 4
0A8D: 3@ = read_memory 2@ size 4 virtual_protect 0
3@ *= -1.0
0A8C: write_memory 1@ size 4 value 3@ virtual_protect 0
1@ += 4
2@ += 4
0A8D: 3@ = read_memory 2@ size 4 virtual_protect 0
3@ *= -1.0
0A8C: write_memory 1@ size 4 value 3@ virtual_protect 0
1@ += 8
2@ += 8
0A8D: 3@ = read_memory 2@ size 4 virtual_protect 0
0A8C: write_memory 1@ size 4 value 3@ virtual_protect 0
1@ += 4
2@ += 4
0A8D: 3@ = read_memory 2@ size 4 virtual_protect 0
0A8C: write_memory 1@ size 4 value 3@ virtual_protect 0
1@ += 4
2@ += 4
0A8D: 3@ = read_memory 2@ size 4 virtual_protect 0
0A8C: write_memory 1@ size 4 value 3@ virtual_protect 0
1@ += 8
2@ += 8
0A8D: 3@ = read_memory 2@ size 4 virtual_protect 0
0A8C: write_memory 1@ size 4 value 3@ virtual_protect 0
1@ += 4
2@ += 4
0A8D: 3@ = read_memory 2@ size 4 virtual_protect 0
0A8C: write_memory 1@ size 4 value 3@ virtual_protect 0
1@ += 4
2@ += 4
0A8D: 3@ = read_memory 2@ size 4 virtual_protect 0
0A8C: write_memory 1@ size 4 value 3@ virtual_protect 0
0AB2: ret 0

Если будешь использовать с объектом, вместо машины, то опкод 0A97 надо заменить на 0A98.

Last edited by Voron295 (22-01-2014 14:30)


Добро всегда побеждает зло. Кто победил, тот и добрый!
userbar.png

Offline

#4461 22-01-2014 15:18

HH
Registered: 21-01-2014
Posts: 35

Re: Один вопрос

Cпасибо Voron, щас пойду тестить)

Offline

#4462 22-01-2014 15:33

HH
Registered: 21-01-2014
Posts: 35

Re: Один вопрос

Все просто прекрасно работает, спасибо ещё раз, думаю даже для актёра можно использовать good

Offline

#4463 22-01-2014 17:29

Voron295
From: Каушаны
Registered: 06-12-2010
Posts: 425
Website

Re: Один вопрос

HH wrote:

думаю даже для актёра можно использовать good

Да, только опкод получения структуры надо соответствующий поставить.


Добро всегда побеждает зло. Кто победил, тот и добрый!
userbar.png

Offline

#4464 22-01-2014 22:07

MelomanCool
Registered: 24-06-2013
Posts: 11

Re: Один вопрос

068D: get_camera_position_to 2@ 3@ 4@
068E: get_camera_target_point_to 5@ 6@ 7@
0063: 5@ -= 2@ // (float)
0063: 6@ -= 3@ // (float)
0604: get_Z_angle_for_point 5@ 6@ store_to 7@
Car.Angle(0@) = 7@

из каршота

Offline

#4465 23-01-2014 06:04

HH
Registered: 21-01-2014
Posts: 35

Re: Один вопрос

MelomanCool wrote:
068D: get_camera_position_to 2@ 3@ 4@
068E: get_camera_target_point_to 5@ 6@ 7@
0063: 5@ -= 2@ // (float)
0063: 6@ -= 3@ // (float)
0604: get_Z_angle_for_point 5@ 6@ store_to 7@
Car.Angle(0@) = 7@

из каршота

это только по одной оси, а мне надо было по всем осям

Offline

#4466 23-01-2014 11:35

HH
Registered: 21-01-2014
Posts: 35

Re: Один вопрос

Ребят, а кто знает аналогичный опкоды к 0A8D 0A8C???

Offline

#4467 23-01-2014 14:10

Voron295
From: Каушаны
Registered: 06-12-2010
Posts: 425
Website

Re: Один вопрос

HH wrote:

Ребят, а кто знает аналогичный опкоды к 0A8D 0A8C???

Зачем?
Если уж так нужно их чем-нибудь заменить, читай в справке к SB статью про изменение игровой памяти через SCM (в разделе "Опытным пользователям").

Last edited by Voron295 (23-01-2014 14:13)


Добро всегда побеждает зло. Кто победил, тот и добрый!
userbar.png

Offline

#4468 24-01-2014 12:21

HH
Registered: 21-01-2014
Posts: 35

Re: Один вопрос

Voron295 wrote:
HH wrote:

Ребят, а кто знает аналогичный опкоды к 0A8D 0A8C???

Зачем?
Если уж так нужно их чем-нибудь заменить, читай в справке к SB статью про изменение игровой памяти через SCM (в разделе "Опытным пользователям").

Так для интереса, спасибо.

Offline

#4469 29-01-2014 10:38

HH
Registered: 21-01-2014
Posts: 35

Re: Один вопрос

Как сделать в одном скрипте несколько, т.е. чтобы одновременно работали два скрипта, но было чтоб в одном файле. Для компактности.

Offline

#4470 29-01-2014 12:02

Seemann
Registered: 07-08-2006
Posts: 2,155

Re: Один вопрос

@HH - примерно так

{$CLEO}

0A92: create_custom_thread "TwoScripts.cs" 1
0A92: create_custom_thread "TwoScripts.cs" 2

if 
 0@ == 1
then

    // код первого скрипта

else if 0@ == 2        
    then
        // код второго скрипта    
    end   
end
0A93: end_custom_thread

Скрипт сохранить как TwoScripts.cs в папке CLEO. Код первого и второго скрипта вставлять, где отмечено.

Offline

#4471 29-01-2014 12:31

HH
Registered: 21-01-2014
Posts: 35

Re: Один вопрос

Seemann wrote:

@HH - примерно так

{$CLEO}

0A92: create_custom_thread "TwoScripts.cs" 1
0A92: create_custom_thread "TwoScripts.cs" 2

if 
 0@ == 1
then

    // код первого скрипта

else if 0@ == 2        
    then
        // код второго скрипта    
    end   
end
0A93: end_custom_thread

Скрипт сохранить как TwoScripts.cs в папке CLEO. Код первого и второго скрипта вставлять, где отмечено.

Спасибо большое, давно хотел узнать про это. Обязательно будет 0@ или можно записать поток в другую переменную?

Offline

#4472 29-01-2014 12:35

HH
Registered: 21-01-2014
Posts: 35

Re: Один вопрос

А все понял. 1 и 2 стандартно записывается в 0@. Можно за место 1 или 2 поставить любую переменную которая будет передаватся указанной файл.

Offline

#4473 29-01-2014 13:17

Seemann
Registered: 07-08-2006
Posts: 2,155

Re: Один вопрос

@HH - при создании нового скрипта опкодом 0A92 в него можно сразу передать параметры, которые будут записаны в локальные переменные по-порядку. Т.е. 0A92: create_custom_thread "TwoScripts.cs" 1 создает скрипт, где переменная 0@ равна 1, 0A92: create_custom_thread "TwoScripts.cs" 2 создает скрипт, где переменная 0@ равна 2 и т.д.

0A92: create_custom_thread "TwoScripts.cs" 3 10@ $var создает скрипт, где переменная 0@ равна 3, 1@ равна значению переменной 10@, 2@ равна значению переменной $var.

Можно передать любое значение, которое нужно, только соответственно нужно поменять и проверку if.

Еще вот эта ссылка будет в тему: http://sannybuilder.com/forums/viewtopi … 4124#p4124

Offline

#4474 29-01-2014 14:24

HH
Registered: 21-01-2014
Posts: 35

Re: Один вопрос

@Seemann спасибо ещё раз, за доп. инфо

Last edited by HH (29-01-2014 14:24)

Offline

#4475 29-01-2014 18:12

HH
Registered: 21-01-2014
Posts: 35

Re: Один вопрос

Как пользоваться адресами handling для машины [Адреса]
Заголовок 3 пункт 3.2

Offline

Board footer

Powered by FluxBB