Воскресенье, 24.11.2024, 23:40
Качественные скрипты, моды и дополнения для GTA без регистрации
Главная Регистрация Вход
Приветствую Вас, Гость · RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Вопросы по созданию КЛЕО-скриптов 2
DK22PacДата: Четверг, 05.07.2012, 16:24 | Сообщение # 136
$player_actor
Группа: Проверенные
Сообщений: 559
Статус: Offline
Ты думаешь что сможешь перевести int в string?
 
ILYALIONДата: Четверг, 05.07.2012, 17:10 | Сообщение # 137
Группа: Проверенные
Сообщений: 325
Статус: Offline
DK22Pac, я так делал. Работало.

Добавлено (05.07.2012, 17:10)
---------------------------------------------
izerli, 29@v не надо ставить в кавычки, т.е. опкод 0AF2 должен выглядеть так:

Code
0AF2: 29@ = get_float_from_ini_file "cleo\carset.ini" section 29@v key "speed"
 
izerliДата: Четверг, 05.07.2012, 18:00 | Сообщение # 138
Группа: Проверенные
Сообщений: 90
Статус: Offline
ILYALION, правильно, у тебя и подсмотрел такое.
к вылетанию приводит даже тупо вот такая строка
Code
0AF2: 29@ = get_float_from_ini_file "CLEO\carset.ini" section "0" key "speed"
 
ILYALIONДата: Пятница, 06.07.2012, 05:58 | Сообщение # 139
Группа: Проверенные
Сообщений: 325
Статус: Offline
izerli, ini файл оформлен правильно? Код моего скрипта:
Code
{$CLEO}
wait 0
while true
     wait 0
     if
         player.Defined($PLAYER_CHAR)
     then
         if
             0AB0:  key_pressed 85//U
         then
             0AF2: 29@ = get_float_from_ini_file "CLEO\carset.ini" section "0" key "speed"
             29@ -= 5.5
             0AF3: write_float 29@ to_ini_file "cleo\carset.ini" section "1" key "var"
         end
     end
end

Содержимое ini файла до запуска:
Code
[0]
speed = 20.0
[1]
var = 0.0
После запуска скрипта значение var стало равным 14.5. Всё работает.
 
izerliДата: Пятница, 06.07.2012, 09:35 | Сообщение # 140
Группа: Проверенные
Сообщений: 90
Статус: Offline
ILYALION, да, оформлен правильно. к слову, твой мод у меня тоже не заработал. стоит последняя клео, плагин для ini файлов есть
 
ILYALIONДата: Пятница, 06.07.2012, 09:57 | Сообщение # 141
Группа: Проверенные
Сообщений: 325
Статус: Offline
izerli, попробуй переустановить CLEO. Версия gta_sa.exe 1.0 us?
 
izerliДата: Пятница, 06.07.2012, 11:00 | Сообщение # 142
Группа: Проверенные
Сообщений: 90
Статус: Offline
ILYALION, ага. переставлять клео тоже еще вчера пробовал, не помогло
 
Den_spbДата: Суббота, 07.07.2012, 18:16 | Сообщение # 143
Создатель сайта
Группа: Администраторы
Сообщений: 1600
Статус: Offline
Кто-то вроде говорил, что на последней версии КЛЕО (4.1.1.30) опкоды чтения строк из файлов работают не у всех пользователей. Можно попробовать более ранние версии КЛЕО.
 
VitalДата: Понедельник, 09.07.2012, 18:39 | Сообщение # 144
Группа: Проверенные
Сообщений: 206
Статус: Offline
Вот такая проблема: при попытке вывести текст игра вылетает...пробовал выводить в виде панели и в виде бесконечного текст бокса, но вылет остаётся... Есть ли ограничения по размеру текста? У меня текст как раз большой, могу привести одну из строк, если понадобится. Вот часть кода, где происходит вылет:
Code
:Spravka
wait 0
if
player.Defined($PLAYER_CHAR)
jf @Spravka
if and
not actor.Dead($PLAYER_ACTOR)
0AB0:  key_pressed 0x49
0AB0:  key_pressed 0x31
then
0512: show_permanent_text_box 'PAG1'
gosub @Show
end
if and
not actor.Dead($PLAYER_ACTOR)
0AB0:  key_pressed 0x49
0AB0:  key_pressed 0x32
then
0512: show_permanent_text_box 'PAG2'
gosub @Show
end
if and
not actor.Dead($PLAYER_ACTOR)
0AB0:  key_pressed 0x49
0AB0:  key_pressed 0x33
then
0512: show_permanent_text_box 'PAG3'
gosub @Show
end
if and
not actor.Dead($PLAYER_ACTOR)
0AB0:  key_pressed 0x49
0AB0:  key_pressed 0x34
then
0512: show_permanent_text_box 'PAG4'
gosub @Show
end
if and
not actor.Dead($PLAYER_ACTOR)
0AB0:  key_pressed 0x49
0AB0:  key_pressed 0x35
then
0512: show_permanent_text_box 'PAG5'
gosub @Show
end
jump @Spravka


В gosub @Show идёт удаление текста при нажатии клавиши. Если даже не использовать gosub, игра всё равно вылетает...
---
Я попробовал с другим текстом, более коротким, теперь всё пошло отлично, но с текстом нужной длины всё же беда...
Длина строки (самой короткой из нужных мне) такова:
Code
~y~Opy›њe:~s~~n~'GRENADE' - ™pa®a¦a~n~'MOLOTOV' - kok¦eќћ© –oћo¦oўa~n~'SMOKE' - cћeџo¦o¤њўЁќ ™aџ~n~'PISTOL' - Јњc¦oћe¦~n~'SILENCED' - Јњc¦oћe¦ c ™ћyҐњ¦eћeЇ~n~'DEAGLE' - Њyc¦Ё®®Ёќ Opёћ~n~'CHROME' - љpo—oўњk~n~'SAWNOFF' - o—peџ py›©¬ ~n~'SPAS' - SPAS 12~n~'UZI' - UZI~n~'MPFIVE' - MP5~n~'TEC' - Tec 9~n~'AKM' - AK-47~n~'COLTM' - M4~n~'COUNTRY' - ўњ®¦oўka~n~'SNIPER' - c®aќЈepcka¬ ўњ®¦oўka~n~'RPG' - PЊ‚~n~'HEAT' - ™pa®a¦oЇё¦ c ¦eЈћoўЁЇ ®aўeљe®њeЇ~n~'FLAME' - o™®eЇё¦~n~'MINIGUN' - ЈyћeЇё¦

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


SCRIPTER

Сообщение отредактировал Vital - Понедельник, 09.07.2012, 19:00
 
АртёмДата: Понедельник, 09.07.2012, 19:38 | Сообщение # 145
Группа: Пользователи
Сообщений: 90
Статус: Offline
Vital, а может вывести более короткие тексты несколько раз (поделить на части текст) или в твоём скрипте нужно именно так?

Добавлено (09.07.2012, 19:38)
---------------------------------------------
Den_spb, помоги, пожалуйста с созданием путей поездов.
Так как создаю метро для следующей версии своей карты, столкнулся с тем, что одного tracks.dat мне не хватает smile
Тем более tracks.dat для метро как-то не подходит: поезда по одним путям в обе стороны, не знаешь через сколько появится следующий. Можно ли каким-нибудь CLEO-скриптом создать один поезд, направлять его по точкам (направлять по точкам-то я читал в справке sanny builder знаю). Но как сделать остановки я так и не понял. Если такой скрипт несложный и возможен можешь если не сложно написать фрагмент кода? А то я в скриптах пока немного понимаю, но учусь. smile Заранее спасибо.
P.S. Думал попробовать использовать твой алгоритм поездов, но там я как-то я не разобрался.


Делаю новый мод Greatland
 
VitalДата: Понедельник, 09.07.2012, 19:40 | Сообщение # 146
Группа: Проверенные
Сообщений: 206
Статус: Offline
Артём, текст самого описания и так уже поделён на несколько частей, если нарушить уже созданные разделы текста, то нарушится и понимание.
0512 принёс желаемые результаты и вывел тексты после того, как я удалил из них форматирование (переносы строк, цвета), но ширина текст бокса слишком мала, чтобы нормально всё вместить... 033Е не помогает, игра вылетает при этом.
Попробовал изменить ширину текст бокса с помощью
0989: set_text_boxes_width 400
Теперь текст помещается на экран, НО не весь...кусок текста бесследно исчезает...обрубок мне, как и тем людям, которым скрипт пригодится, не нужен...Теперь пытаюсь сделать что-нибудь с помощью 0397


SCRIPTER
 
DK22PacДата: Понедельник, 09.07.2012, 21:58 | Сообщение # 147
$player_actor
Группа: Проверенные
Сообщений: 559
Статус: Offline
Выведи текст в виде текстуры.
 
VitalДата: Среда, 11.07.2012, 17:14 | Сообщение # 148
Группа: Проверенные
Сообщений: 206
Статус: Offline
DK22Pac, ох...спасибо огромное! surprised
Я вообще на одном тексте зациклился, забыл о такой возможности, как вывод текстур biggrin

Добавлено (11.07.2012, 17:14)
---------------------------------------------
Вылетает из-за неизвестной причины...раньше всё работало, проверял уже достаточное кол-во раз...

Code
wait 0
if and
not actor.Dead($PLAYER_ACTOR)
not actor.Driving($PLAYER_ACTOR)
0AB0:  key_pressed 0x76
jf @Mis1
0652: $BUSY = integer_stat 340
if
$BUSY == 0
jf @Mis1
0629: change_integer_stat 340 to 1
03E5: show_text_box 'PARMIS1'
wait 250
jump to @Mis1_2

:Mis1_End
wait 0
if or
actor.Dead($PLAYER_ACTOR)
0741:   actor $PLAYER_ACTOR busted  
00E1:   player 0 pressed_key 10
then
0629: change_integer_stat 340 to 0
059A: return_false
return
else
0485: return_true
return
end
jump @Mis1_End

:Mis1_2
wait 0
if
gosub @Mis1_End  
jf @Mis1
if  
00E1:   player 0 pressed_key 11
jf @Mis1_2

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


SCRIPTER

Сообщение отредактировал Vital - Среда, 11.07.2012, 17:04
 
laggthДата: Вторник, 17.07.2012, 11:53 | Сообщение # 149
Группа: Пользователи
Сообщений: 81
Статус: Offline
Quote (Артём)
Но как сделать остановки я так и не понял

Пометить в блокноте тракс файла координаты точек начала платформ(-2641.62 -2603.5 39.0765 1 // Country st.golova).Сreate train 1@,задать ему ускорение и скорость , и если поезд подьехал к точке у начала платформы в радиусе 6-9 метров(иначе проедет остановку),то задаём ему ускорение 0.0 и скорость 0.0 .И ставим jump на проезд к следующей остановке по ходу движения ,там проверяем- если доехал до радиуса сферы то останавливаем.Проверяем где возможно не началась ли миссия , if $ONMISSION == 1 то нужно сделать jump на remove references to train 1@ (чтоб не вылетела по окончании миссии).При начале миссии скриптовые поезда должны уничтожаться.

Code


:LIN4A_1249
wait 0       
if and
056E:   car 1@ defined       
$ONMISSION == 0       
jf@LIN4A_7125    //remove_references_to_train 1@ затем//jump to @start_train1
if and
056E:   car 1@ defined       
01AF:   car 1@ sphere 0 in_sphere 1425.375 -965.0531 -80.3066 radius 6.0 6.0 6.0 //начало платформы станции(у головы состава)
jf@LIN4A_1249       
jump @LIN4A_1348       

:LIN4A_1348
wait 0       
if and
056E:   car 1@ defined       
$ONMISSION == 0       
jf @LIN4A_7125       
06DC: set_train 1@ acc 0.0       
06DD: set_train 1@ speed 0.0       
wait 10000       
jump @LIN4A_1536       

:LIN4A_1536
wait 0       
if and
056E:   car 1@ defined       
$ONMISSION == 0       
jf @LIN4A_7125       
06DC: set_train 1@ acc 15.0       
06DD: set_train 1@ speed 60.0       
jump @LIN4A_1669       

:LIN4A_1669
wait 0       
if and
056E:   car 1@ defined       
$ONMISSION == 0       
jf @LIN4A_7125       
if and
056E:   car 1@ defined       
01AF:   car 1@ sphere 0 in_sphere 2298.621 -35.7901 -81.2052 radius 6.0 6.0 6.0       
jf @LIN4A_1669       
jump @LIN4A_1768       

:LIN4A_1768
wait 0       
if and
056E:   car 1@ defined       
        $ONMISSION == 0       
jf @LIN4A_7125       
06DC: set_train 1@ acc 0.0       
06DD: set_train 1@ speed 0.0       
wait 10000       
jump @LIN4A_1956       

:LIN4A_1956
wait 0       
if and
056E:   car 1@ defined       
$ONMISSION == 0       
jf @LIN4A_7125       
06DC: set_train 1@ acc 15.0       
06DD: set_train 1@ speed 60.0       
jump @LIN4A_2089       

и тд

Но таких поездов игра только 5-8 выдержит,а потом начнут мигать текстуры и вылетит.В СА они работают только с очищенным мэйном от zazmahall.de почему то.


Сообщение отредактировал laggth - Вторник, 17.07.2012, 12:15
 
Den_spbДата: Понедельник, 23.07.2012, 02:27 | Сообщение # 150
Создатель сайта
Группа: Администраторы
Сообщений: 1600
Статус: Offline
Vital, что в скм-логе?

Артём, проще отключить стандартный траффик по tracks.dat. Этот вопрос мне тоже интересен, как найду нужный адрес - сообщу.

laggth, два уточнения:
1) 06DC устанавливает поезду мгновенную скорость, а 06DD - скорость, до которой поезд должен разогнаться плавно (или затормозить, если значение меньше текущего). Ускорение эти команды не задают.
2) Проверку на существование нельзя объединять с другими проверками, относящимися к этому объекту. Сначала выполняем проверку на существование, а потом, если объект существует - применяем к нему другие проверки и команды.
Речь шла об этом месте:
Code
if and    
    056E:   car 1@ defined          
    01AF:   car 1@ sphere 0 in_sphere 1425.375 -965.0531 -80.3066 radius 6.0 6.0 6.0 //начало платформы станции(у головы состава)    
    jf@LIN4A_1249  
Отсюда проверку на существование можно вообще убрать, так как она только что была выполнена (тремя строчками выше).
 
Поиск: