Цветов всего несколько (их можно определить тестированием). 0 - красный, 1 - зелёный, 2 - белый, 3 - бледно-жёлтый (насколько помню). Ещё можно сделать маркер синим:
Дата: Четверг, 29.04.2010, 22:59 | Сообщение # 168
Группа: Проверенные
Сообщений: 23
Статус: Offline
Den_spb, ты прости что задёргал тебя,Но подскажи плиз,опять проблемы с концовкой скрипта нужно что после смерти всех актёров миссия выполнялась,а при смерти Карла проваливалась,но у меня где то ошибки вот код:
Code
:NONAME_366 wait 0 if and Actor.Dead($b1) Actor.Dead($b2) Actor.Dead($b3) Actor.Dead($b4) Actor.Dead($b5) Actor.Dead($b6) Actor.Dead($b7) jf @NONAME_366 Actor.Dead($b8) Actor.Dead($b9) Actor.Dead($b10) Actor.Dead($b11) Actor.Dead($b12) Actor.Dead($b13) jf @NONAME_367 01E3: show_text_1number_styled GXT 'mis4_u' number 2000 time 1000 style 1 Player.Money($PLAYER_CHAR) += 200000 jump @Metka :NONAME_367 wait 0 if Actor.Dead($PLAYER_ACTOR) jf @NONAME_366 01E3: show_text_1number_styled GXT 'mis4_d' number 5000 time 1000 style 1 :Metka 004E:
Дата: Четверг, 29.04.2010, 23:43 | Сообщение # 169
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
Во-первых, если это КЛЕО, то глобальные переменные необходимо заменить локальными. Не забывай писать if and или if or если условий несколько. Во-вторых, как я говорил, составление схемы может облегчить написание скрипта (некоторые "освистывают" этот способ, однако он мне помог когда я осваивал кодинг). В данном случае схема будет выглядеть так:
Код пишем следующим образом (при записи метками):
Code
:NONAME_366 wait 0 if and Actor.Dead($b1) Actor.Dead($b2) Actor.Dead($b3) Actor.Dead($b4) Actor.Dead( $b5) A ctor.D ead($b6) Actor.Dead($b7) jf @Metka_1 if and Actor.Dead($b8) Actor.Dead($b9) Actor.Dead($b10) Actor.Dead($b11) Actor.Dea d($b12) A cto r.Dead($b13) jf @Metka_1 01E3: show_text_1number_styled GXT 'mis4_u' number 2000 time 1000 style 1 Player.Money($PLAYER_CHAR) += 200000 jump @Metka_2 :Metka_1 Actor.Dead($PLAYER_ACTOR) jf @NONAME_366 01E3: show_text_1number_styled GXT 'mis4_d' number 5000 time 1000 style 1 :Metka_2 004E:
Дата: Четверг, 29.04.2010, 23:45 | Сообщение # 170
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
При записи высокоуровневыми конструкциями:
Code
while true wait 0 if and Actor.Dead($b1) Actor.Dead($b2) Actor.Dead($b3) Actor.Dead($b4) Actor.Dead($b5) Actor.Dead($b6) Actor.Dead($b7) then if and Actor.Dead($b8) Actor.Dead($b9) Actor.Dead($b10) Actor.Dead($b11) Actor.Dead($b12) Actor.Dead($b13) then 01E3: show_text_1number_styled GXT 'mis4_u' number 2000 time 1000 style 1 Player.Money($PLAYER_CHAR) += 200000 break end end if Actor.Dead($PLAYER_ACTOR) then 01E3: show_text_1number_styled GXT 'mis4_d' number 5000 time 1000 style 1 break end end 004e:
Дата: Пятница, 30.04.2010, 00:51 | Сообщение # 171
$player_actor
Группа: Проверенные
Сообщений: 559
Статус: Offline
Quote
Во-вторых, как я говорил, составление схемы может облегчить написание скрипта (некоторые "освистывают" этот способ, однако он мне помог когда я осваивал кодинг)
Эхх мы такие на информатике делали а потом писали на Excel и VBA
Den_spb, что надо подправить чтоб поезд разгонялся раза в 3 быстрее
Текущий вариант самый удобный, т.к. разгон осуществляется одной командой. Попробуй увеличить ускорение правкой handling.
Quote
(или без ускорения)?
Если нужен мгновенный разгон, то нужно просто присвоить поезду мгновенную скорость перед тем, как его разгонять:
Code
06DC: set_train 36@ acc 30.0 // сюда добавляем команду присвоения мгновенной скорости 06DD: set_train 36@ speed 30.0
Quote (klm88)
как правильно расписать if or -ы для 12 и более остановок?
В СБ-справке (раздел Кодинг-Условия) это подробно описано. После условий необходимо писать jf, jump или then (если используются конструкции if then end). Если не можешь написать условия конструкциями if..then..end, то пиши метками - будет проще.
Дата: Суббота, 22.05.2010, 18:55 | Сообщение # 177
$player_actor
Группа: Проверенные
Сообщений: 559
Статус: Offline
Не мог бы ты обьяснит всё в подробностях... Об опрерациях над дробными и целыми числами... У меня часто СБ выдает ошибку "Типы переменных несовместимы" когда я пишу 1@ = 2@ Вот например я хотел сделать код, в котором размер текстуры зависит от времени. ( от 0 до 4 сек)
//Начальный размер текстуры - 300, конечная - 512, отсюда число 212. 016A: fade0 time 500 wait 1000 32@ = 0
:HELI wait0 if not32@ > 4000 then 1@ = 32@ 2@ = 1@//это чтобы потом разделить 2@ /= 212 1@ /= 2@ 1@ += 300 1@ /= 2// вот так я вывел нужный размер 0097: make 1@ absolute_float 03F0: enable_text_draw 1 03E3: set_texture_to_be_drawn_antialiased 1 038D: draw_texture 40 position 320.0 224.0 size 1@1@ RGBA 255 255 255 255 jump@HELI else jump@RELEASE end
:RELEASE 03F0: enable_text_draw 0 wait1000 fade1 time 500 0A93: end_custom_thread
Как это правильно записать?
Сообщение отредактировал DK22Pac - Суббота, 22.05.2010, 18:58
Дата: Суббота, 22.05.2010, 22:01 | Сообщение # 179
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
Quote (DK22Pac)
Не мог бы ты обьяснит всё в подробностях... Об опрерациях над дробными и целыми числами...
Во-первых, не имеет смысла, например, сложение дробного и целого числа. В подобных ситуациях нужно пользоваться опкодами 0093 (перевод из целого в дробное, например 3 -> 3.0) и 0092 (перевод из дробного в целое, например 3.2 -> 3). То есть сделать надо так:
Во-вторых, опкоды арифметических операций, сравнения и присваивания существуют обычно в двух вариантах - для целых и дробных чисел. Если один операнд является постоянной, то компилятор, в соответствии с её типом автоматически выберет нужный опкод при компиляции. Например,
Code
0@ += 3000
будет автоматически заменён на опкод для целых чисел
Code
000A: 3@ += 3000
, а
Code
6@ += 0.1
будет заменён на опкод для дробных чисел
Code
000B: 6@ += 0.1
В тех случаях, когда оба операнда являются переменными (например, 0@ += 1@ , 0@ = 1@ и т.д.), необходимо либо самостоятельно выбрать нужный опкод (005A: 3@ += 1@ // (int) - сложение переменных с целыми числами, 005B: 4@ += 17@ // (float) - сложение переменных с дробными числами), либо предварительно (например, в начале скрипта) указать типы переменных в конструкции var..end (см. справку Кодинг - Переменные), например:
Code
var 0@ : Integer 1@ : Float end
Quote (ivan)
ПРИВЕТ ВСЕМ.У МЕНЯ ЕСТЬ ДРУГОЙ ВОПРОС НЕ ПО ТЕМЕ.КАК УБРАТЬ ВСЕ ПАЛЬМЫ ИЗ ИГРЫ
Дата: Суббота, 22.05.2010, 23:15 | Сообщение # 180
$player_actor
Группа: Проверенные
Сообщений: 559
Статус: Offline
Я ещё хотел спросить, если я пишу 2@ /= 212 И получается дробное число, то оно будет переведено в целое или переменная поменяет тип на дробное? И ещё - можно ли делить целое на дробное или наоборот?
Всё, спасибо, Ден, теперь я всё понял! Вот так работает прекрасно! (Но вот что я заметил - если включить фейд, то текстура не будет отображаться, т.е. будет отображаться на заднем плане, так скажем.)
Я сделал лого "Рокстар", которое увеличивается (так наверное по-русски), наподобие заставки в гта4) Я очень рад что получилось) Также с помощью 32@ можно манипулировать прозрачностью, пригодиться, если надо, чтобы текстура плавно появлялась либо пропадала. Вот, например, мой код, чтобы после 3 секунд текстуры испарялись
Code
if not 32@ > 3000 then 6@ = 255 7@ = 80 jump @CREATING end if and 32@ >= 3000 not 32@ > 4000 then jump @GET_NEW_TRANSPARENCE end jump @GLOBAL_CHECK