#4176 04-10-2012 13:11

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

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

Ruzel wrote:

Хм, а как узнать имя текущего выполняемого скрипта? И можно ли, опираясь на него, открыть файл для чтения с тем же именем, но другим расширением (например, .ini)?

Что значит "текущего выполняемого скрипта"? В один момент выполняется только один скрипт)


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

Offline

#4177 05-10-2012 16:59

Ruzel
Registered: 03-06-2010
Posts: 61

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

>Что значит "текущего выполняемого скрипта"? В один момент выполняется только один скрипт)
Я имел ввиду поток, клео скрипт. Можно ли открыть файл %script_name%.ini если имя скрипта %script_name%.cs

Offline

#4178 05-10-2012 17:01

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

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

Ruzel wrote:

Я имел ввиду поток, клео скрипт. Можно ли открыть файл %script_name%.ini если имя скрипта %script_name%.cs

Имеется ввиду клео-скрипт, который выполняется в данный момент? Т.е. в своём скрипте ты хочешь открыть файл ini, с таким же именем как и твой скрипт? Или как? Объясни задачу подробнее.


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

Offline

#4179 05-10-2012 18:36

Ruzel
Registered: 03-06-2010
Posts: 61

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

>Т.е. в своём скрипте ты хочешь открыть файл ini, с таким же именем как и твой скрипт?
Да, именно так :3

Offline

#4180 05-10-2012 18:44

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

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

Ruzel wrote:

Да, именно так :3

Тогда я не пойму одного - ты не знаешь, как называется твой .cs-файл?)


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

Offline

#4181 05-10-2012 20:28

sh2ezo
Registered: 26-05-2011
Posts: 4

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

Хай! Вопрос такой: модельки тачек SA подгружает динамически по мере надобности или один раз загрузила и пользуется, пока её не закроют?

Offline

#4182 05-10-2012 20:52

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

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

sh2ezo wrote:

Хай! Вопрос такой: модельки тачек SA подгружает динамически по мере надобности или один раз загрузила и пользуется, пока её не закроют?

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


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

Offline

#4183 06-10-2012 07:17

Ruzel
Registered: 03-06-2010
Posts: 61

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

>Тогда я не пойму одного - ты не знаешь, как называется твой .cs-файл?)
Предполагается, что пользователь может копировать эти .cs скрипты, тем самым увеличивая количество создаваемых этим скриптом объектов. А так как каждый .cs скрипт должен читать только свои настройки, то и открывать он должен файл с таким же именем. (естественно, если он существует.)

Offline

#4184 06-10-2012 08:40

Jack Daniel's
Registered: 05-07-2011
Posts: 211

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

Я канеш могу ошибаться, но:
0xA47B60 - Start of the external scripts info pool. There are 82 elements with 32 bytes of size each
+0 = [dword] Script IP
+4 = [word] Status (can be obtained by 0926)
+6 = [word] Index in SCM (a number as defined in the scm header)
+8 = [char] Name, char 20
+28 = [dword] Size

Offline

#4185 06-10-2012 15:00

sh2ezo
Registered: 26-05-2011
Posts: 4

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

Voron295 wrote:
sh2ezo wrote:

Хай! Вопрос такой: модельки тачек SA подгружает динамически по мере надобности или один раз загрузила и пользуется, пока её не закроют?

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

т.е. для двух тачек одинаковой модели будут существовать в памяти две разные модели(сорри за тавтологию)?

Offline

#4186 06-10-2012 15:03

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

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

sh2ezo wrote:

т.е. для двух тачек одинаковой модели будут существовать в памяти две разные модели(сорри за тавтологию)?

Зачем две разные? Одна и та же. Модель загружается только один раз и пока она используется (неважно, 1 машина с такой моделью или 100), она есть в памяти, только одна. Как только ни одной машины с такой моделью не будет использоваться в игре - модель будет выгружена из памяти.

Jack Daniel's wrote:

Я канеш могу ошибаться, но:
0xA47B60 - Start of the external scripts info pool. There are 82 elements with 32 bytes of size each
+0 = [dword] Script IP
+4 = [word] Status (can be obtained by 0926)
+6 = [word] Index in SCM (a number as defined in the scm header)
+8 = [char] Name, char 20
+28 = [dword] Size

Предполагается не имя потока, а имя файла .cs, а это совершенно разные вещи.
Можно попробовать разобраться в том, как CLEO загружает скрипты, хотя я сильно сомневаюсь, что там есть то, что тебе нужно.


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

Offline

#4187 06-10-2012 16:53

sh2ezo
Registered: 26-05-2011
Posts: 4

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

Voron295 wrote:
sh2ezo wrote:

т.е. для двух тачек одинаковой модели будут существовать в памяти две разные модели(сорри за тавтологию)?

Зачем две разные? Одна и та же. Модель загружается только один раз и пока она используется (неважно, 1 машина с такой моделью или 100), она есть в памяти, только одна. Как только ни одной машины с такой моделью не будет использоваться в игре - модель будет выгружена из памяти.

А как с повреждениями быть типа погнутой крышки багажника или двери? Они ж разными могут быть

Offline

#4188 07-10-2012 14:15

Ruzel
Registered: 03-06-2010
Posts: 61

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

имя файла используется при инициализации CLEO-потока, чтобы дать ему имя (name_thread) по названию файла (первые 7 символов). Например, CLEO-поток в файле showsavescreen будет иметь имя SHOWSAV.

Может все-таки можно как-то. Ну или есть тогда уж какой-нибудь другой способ заставить клео-скрипт читать только свой файл настроек?

sh2ezo
Все повреждения хранятся в файле модели же.

Last edited by Ruzel (08-10-2012 05:42)

Offline

#4189 08-10-2012 13:30

wmysterio
From: Ukraine
Registered: 04-03-2011
Posts: 203
Website

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

Всем привет! У меня есть один вопрос, касающийся работы с файлами. Как открыть файл для дозаписи? В справке об этом режиме ничего неупомянули.

Offline

#4190 09-10-2012 07:38

Ruzel
Registered: 03-06-2010
Posts: 61

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

wmysterio
File.Open(1@, "CLEO\settings.ini", "at") // IF and SET
at - для дозаписи текстовых
ab - для дозаписи бинарных

Offline

#4191 09-10-2012 14:52

wmysterio
From: Ukraine
Registered: 04-03-2011
Posts: 203
Website

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

Ruzel wrote:

wmysterio
File.Open(1@, "CLEO\settings.ini", "at") // IF and SET
at - для дозаписи текстовых
ab - для дозаписи бинарных

Увы такой режим открытия вызывает ошибку, так как третий параметр должен быть целым числом, например 0x72 – открыть текстовый файл для чтения. Вопрос в том - какие числа соответствуют для открытия файла для дозаписи? Я уже много вариантов перепробовал, но никаких результатов это не дало.

Offline

#4192 10-10-2012 05:55

Ruzel
Registered: 03-06-2010
Posts: 61

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

wmysterio
Только что запустил cs скрипт:
file.Open(1@, "CLEO\coords.ini", "at")
file.WriteString(1@, "writed")
file.Close(1@)
Никакой ошибки не вылезло, а в конце файла coords.ini появилась записиь "writed"

Offline

#4193 17-10-2012 11:29

Dr_Emmett_Brown_2011
Registered: 28-04-2011
Posts: 80

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

Такой вопрос - можно ли (прямо в игре) поменять тип автомобиля?
Т. е. в vehicle.ide автомобиль модели 434 имеет тип car. Возможно ли менять значение (прямо в игре) на heli и обратно?

Last edited by Dr_Emmett_Brown_2011 (17-10-2012 12:12)

Offline

#4194 17-10-2012 15:33

Jack Daniel's
Registered: 05-07-2011
Posts: 211

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

Ну да, ищи куда загружается vehicle.ide в памяти и меняй.

Offline

#4195 17-10-2012 22:15

Den_spb
From: Ленинград
Registered: 23-11-2008
Posts: 937
Website

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

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

Offline

#4196 30-10-2012 19:50

Vital
From: Москва
Registered: 07-11-2010
Posts: 64
Website

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

Хотел задать вопрос, над которым я в течение двух дней бьюсь и никак не могу найти решение проблемы. Сделал скрипт для Vice City, но один кусочек кода (с помощью задержек и звуков я выяснил точный участок кода, где происходит вылет) вызывает вылет. Я не пойму, где же кроется проблема, вот код:

var
$ACT : Array 5 of Integer
$MARK : Array 5 of Integer
end 
for 1@ = 0 to 4
wait 0
0208: $XE = random_float -1200.0 1200.0 
0208: $YE = random_float -1200.0 1200.0   
02C1: set $XE $YE $ZE to_car_path_coords_closest_to $XE $YE 0.0 
actor.Create($ACT[1@],19,#MALE01,$XE,$YE,$ZE)
marker.CreateAboveActor($MARK[1@],$ACT[1@])
end

Что пробовал делать:
Комментировал создание маркера - вылет
Комментировал создание маркера и актёра - вылета на данном участке нету, звук (для проверки) слышен
Брал координаты от игрока, а не случайные - вылет
Загружал модель #MALE01 - вылет
Писал массив в полной форме ($ACT(1@,5i)) - вылет
Заменял 1@ глобальной переменной - вылет...

Что делать, ума не приложу. Как ни делай, везде получается одно - вылет из игры.
Буду очень благодарен, если кто-нибудь поймёт, в чём кроется ошибка и подскажет, что делать.
Den_Spb уже предлагал несколько вариантов, но, к сожалению, эта загадочная ошибка не убралась.

Last edited by Vital (30-10-2012 19:51)

Offline

#4197 31-10-2012 13:04

mfisto
From: Russia Perm
Registered: 01-02-2008
Posts: 551
Website

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

02C1: set $XE $YE $ZE to_car_path_coords_closest_to $XE $YE 0.0
ну вот здесь ошибка явная, три последние параметра получатели и они должны быть переменными а не нулем как последний параметр, а первые три отправители.


I know everything and nothing...

Offline

#4198 31-10-2012 18:09

Vital
From: Москва
Registered: 07-11-2010
Posts: 64
Website

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

@mfisto - я пробовал оставлять лишь этот опкод (делал создание маркера и актёра комментариями), вылета не было.
Пробовал поменять местами $XE $YE 0.0 и $XE $YE $ZE (чтобы отправители и получатели были в противоположных позициях), но безрезультатно - вылет из игры опять.

Last edited by Vital (31-10-2012 18:17)

Offline

#4199 31-10-2012 20:22

Sergey81
Registered: 19-12-2008
Posts: 654

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

Так а разве вайс сити поддерживает массивы?

Массивы поддерживаются играми SA и LCS, VCS.

Синтаксис:

San Andreas:
<имя массива>(<имя индексной переменной>,<размер><тип>)

Liberty City Stories, Vice City Stories:
<имя массива>(<имя индексной переменной>,<размер>)

Offline

#4200 01-11-2012 17:58

Vital
From: Москва
Registered: 07-11-2010
Posts: 64
Website

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

@Sergey81 - да, как быстро разбиваются самые смелые суждения, когда кто-нибудь задаёт простой, но правильный вопрос... Так и оказалось, массивов в VC нету... А жаль. Теперь придётся обдумать новое построение кода, но это уже дело лёгкое. Спасибо!

Offline

Board footer

Powered by FluxBB