[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 80 из 127«127879808182126127»
Форум » Игры серии GTA » GTA San Andreas » Вопросы по скриптингу Sanny Builder и заказы (Вы можете получить ответы на вопросы по SB и сделать заказ)
Вопросы по скриптингу Sanny Builder и заказы
wmysterio
Администраторы
Скриптер
22.11.11 21:52
Offline
Если у вас возник вопрос по скриптингу Sanny Builder, обращайтесь! Мы постараемся решить вашу проблему wink Это ещё не значит, что все прям бросятся решать во чтобы то не стало, но ответ вы сможете вы получить как вариант решения или как невозможность или сложность решения.
УВАЖАЕМЫЕ ПОЛЬЗОВАТЕЛИ! ПРОСЬБА КОД СКРИПТОВ ПОМЕЩАТЬ В КОНСТРУКЦИЮ КОДА:

или

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

Внимание! От этого момента тема предназначена ещё и для заказов скриптов и миссий. Я это сделал по одной причине - пользователи постоянно путают/или не ищут темы и приводят заказ здесь. Теперь этой путаницы не будет. Здесь можно проводить заказы, но Вы должны указать в начале поста текст "НА ЗАКАЗ". Постарайтесь как можно детальнее объяснить суть скрипта.
Прикрепления: 0248203.png(1Kb) · 9085525.png(0Kb)

Slivkin-Sergey
Модераторы
05.10.13 14:20
Offline
wmysterio, а что будет если Actor.Dead = true? Можно ли сделать так, чтобы "жив ли актёр?" проверялось чаще, допустим, каждые 5 секунд?

Добавлено (05.10.13, 13:20)
---------------------------------------------
миллисекунд*


blackful
Пользователи
05.10.13 14:35
Offline
wmysterio, ну как сделать то?  помоги... это единственное что я не знаю, мне просто текст нужен и всё, клео без миссии.
Евгений_Сергеевич

wmysterio
Администраторы
Скриптер
05.10.13 14:36
Offline
Slivkin-Sergey, в место 3 в цикле for ставь количество повторений.

wmysterio
Администраторы
Скриптер
05.10.13 14:38
Offline
blackful, ты имеешь ввиду текст на большой карте? или на радаре как иконки?

Slivkin-Sergey
Модераторы
05.10.13 15:01
Offline
wmysterio, я имел ввиду, чтобы текст выводился всё те же 3 секунды, но чтобы во время этого каждые 5 миллисекунд проверялось, жив ли актёр, и, если нет, то прыгаем на метку провала.

Добавлено (05.10.13, 14:01)
---------------------------------------------
А, всё, я понял, спасибо.


wmysterio
Администраторы
Скриптер
05.10.13 15:03
Offline
Slivkin-Sergey, зачем же тогда тебе ждать эти секунды?

Slivkin-Sergey
Модераторы
05.10.13 15:20
Offline
wmysterio, какие? 5 секунд в конце? Чтобы подождать, пока выведется текст за текущую итерацию.

blackful
Пользователи
05.10.13 16:11
Offline
wmysterio, ну вот например как с напиткам брунк, подходишь и сверху влево выводится чёрная маленькая табличка:
Прикрепления: 4618737.jpg(316Kb)
Евгений_Сергеевич

wmysterio
Администраторы
Скриптер
05.10.13 16:37
Offline
blackful, Можно осуществить с помощью таких, как минимум, опкодов(на выбор):
Код
0ACE: show_formatted_text_box "This is opcode"
03E5: show_text_box 'HELP101'  
033E: set_draw_text_position 320.0 180.333 GXT 'BJ_PUSH'  
07FC: text_draw_box_position_XY 145.0 275.0 GXT_reference 'BOAT_7' value 241@ flag 2

blackful
Пользователи
05.10.13 17:02
Offline
wmysterio, спасибо, а вот как на карту поставить? вот пример, написал :

Код
// This file was decompiled using sascm.ini published by Seemann (http://sannybuilder.com/files/SASCM.rar) on 13.10.2007

{$VERSION 3.1.0027}
{$CLEO .cs}

//-------------MAIN---------------
0000: NOP

0ACE: show_formatted_text_box "This is opcode"

(и 497.58 -76.03 998.76- координата на карте)

вот как сделать? ну оформить правильно, координаты есть, опкод на выбор каторый написал есть, а после как сделать чтобы работал?
Евгений_Сергеевич

SSS
Пользователи
05.10.13 19:28
Offline
Почему у меня вторая часть скрипта :CORDB не работает, только :CORDA работает
Вот скрипт:

Код
// $PLAYER_ACTOR $PLAYER_GROUP $ONMISSION
{$CLEO}
0000:

:CORDA
wait 0  
if  
    Player.Defined(0)
jf @CORDA  
if and
    not actor.Dead($PLAYER_ACTOR)
0ADC: test_cheat "CORDA"  
jf @CORDA   
Actor.PutAt($PLAYER_ACTOR,1262.072, -1532.9138, 61.8965)
wait 1000
jump @CORDA
end_thread

:CORDB
wait 0
if  
    Player.Defined(0)
jf @CORDB  
if and
    not actor.Dead($PLAYER_ACTOR)
0ADC: test_cheat "CORDB"  
jf @CORDB  
Actor.PutAt($PLAYER_ACTOR,1263.6578, -1555.6439, 61.8887)
wait 1000
jump @CORDB
end_thread  
//=================================

Vital
Друзья
Скриптер
05.10.13 19:34
Offline
SSS, у тебя нету перехода ко второй метке, это во-первых.
Во-вторых, в cleo скрипте не нужен end_thread, там используется другой опкод - 0A93. Но в твоём случае скрипт повторяется бесконечно, потому завершение скрипта не нужно ставить, в отличие от .scm файлов, где end_thread есть даже в бесконечно повторяющихся скриптах.
В-третьих, по-видимому, ты хотел сделать так, чтобы работало две возможности (телепорт), но работать в одном файле может лишь один скрипт (поток), поэтому надо организовать скрипт по-другому. Я бы сделал так, не прибегая к меткам:

Код
{$CLEO}
while true
wait 0
     if
     player.defined(0)
     then
         if
         0ADC: test_cheat "CORDA"
          then
         Actor.PutAt($PLAYER_ACTOR,1262.072, -1532.9138, 61.8965)
         wait 1000
         else
             if
             0ADC: test_cheat "CORDB"   
             then
             Actor.PutAt($PLAYER_ACTOR,1263.6578, -1555.6439, 61.8887)
             wait 1000
             end
         end  
     end
end
Должно работать, проверь. Пробуй уже использовать циклы вместо меток, это гораздо удобнее. Посмотри мои видео на эту тему, там я попробовал всё объяснить про удобство циклов.
2109: create_special_actor $VITAL in_front_of_computer

SSS
Пользователи
05.10.13 19:43
Offline
Vital, нет не работает, игра не запускается.

P.S убрал один end

Vital
Друзья
Скриптер
05.10.13 21:39
Offline
SSS, забыл, после {$CLEO} поставь 0000: и не убирай никакие end. Попробуй так.
2109: create_special_actor $VITAL in_front_of_computer

Slivkin-Sergey
Модераторы
06.10.13 14:08
Offline
Как проверить, есть ли в радиусе 10.0 от игрока актёр с моделью #LAPD1?

SSS
Пользователи
06.10.13 15:25
Offline
как заморозить игрока, так что бы, даже если он в воздухе, то его заморозило и он не падал, а завис в воздухе?

И еще: как поставить проверку: если актер стоит в радиусе 5 метров от определенных координат, то "делать действие"

Добавлено (06.10.13, 14:25)
---------------------------------------------
Я делаю небольшую сис-му на cleo. Пока что у меня есть пункт FakeKill, так вот: в игре он изначально False, если я введу "FK", то он станет true, дальше у меня идет проверка: если нажать F3 и если FakeKill равен true, то игрок умирает.

Я вхожу в игру ввожу "FK", жму F3 но игрок не умирает. В чём проблема? Вот код:


Код
{$CLEO}
0000:

$FakeKill = False
while true
wait 0
if
player.defined(0)
then
      if
          0ADC: test_cheat "FK"
      then
          $FakeKill == true
      wait 1000
      else
      if
          0ADC: test_cheat "FKO"     
      then
          $FakeKill == false
      wait 1000
      else
      if
          if   
          0AB0:   key_pressed 114
          $FakeKill == true
      then
            actor.Health($PLAYER_ACTOR) = 0
      wait 1000
      end
      end
end    
end
end
Отредактировал Slivkin-Sergey - Воскресенье, 06.10.13, 15:27

Slivkin-Sergey
Модераторы
06.10.13 15:30
Offline
Цитата (SSS)
как заморозить игрока, так что бы, даже если он в воздухе, то его заморозило и он не падал, а завис в воздухе?

Actor.LockInCurrentPosition($PLAYER_ACTOR) = True
Цитата (SSS)
И еще: как поставить проверку: если актер стоит в радиусе 5 метров от определенных координат, то "делать действие"

Код
if
00F0: actor $PLAYER_ACTOR 0 near_point 2175.29 -2259.22 13.0 radius 5.0 5.0 stopped_on_foot
then
...
end

Цитата (SSS)
Я вхожу в игру ввожу "FK", жму F3 но игрок не умирает. В чём проблема? Вот код:

При чём тут Витал? В санни нельзя присваивать переменным тип boolean, поэтому используй в качестве флага 0 и 1.

SSS
Пользователи
06.10.13 16:36
Offline
Slivkin-Sergey, а теперь игрок умиает,не тогда когда я нажимаю F3, а всегда осле возождения. WTF? Как исправить?

Slivkin-Sergey
Модераторы
07.10.13 17:25
Offline
У меня такой вопрос: я создал MPACK по всем правилам, всё работает, но... не отображается текст. Точнее, нет именно субтитров в миссиях, всё остальное в порядке.
Код
054C: use_GXT_table 'STEVEN1'

В файле text.gxt эта таблица есть.

wmysterio
Администраторы
Скриптер
08.10.13 13:09
Offline
Slivkin-Sergey, лучше юзать FXT для таких проектов. Я с GXT уже давно не работал. Не могу сказать причины "не вывода" текста

Форум » Игры серии GTA » GTA San Andreas » Вопросы по скриптингу Sanny Builder и заказы (Вы можете получить ответы на вопросы по SB и сделать заказ)
Страница 80 из 127«127879808182126127»
Поиск: