[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 27 из 125«122526272829124125»
Форум » Игры серии 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
Модераторы
28.06.12 12:16
Offline
Code
wait 0   
fade 0 1000
wait 2000
02A3: enable_widescreen 1  
03F0: enable_text_draw 1
  033F: set_text_draw_letter_size 0.8 1.8   
  0342: enable_text_draw_centered 1   
  0343: set_text_draw_linewidth 600.0   
  060D: draw_text_shadow 0 color_RGBA 0 0 0 255   
  033E: set_draw_text_position 320.0 224.333 GXT 'PROLOG1'
  wait 3000
fade 1 1000
03F0: enable_text_draw 0
01E3: show_text_1number_styled GXT 'M_PASS' number 200 time 5000 style 1  // MNCCNR BSZOLHEHA!~n~~w~$~1~
0998: add_respect 3

И вот вопрос: почему не выводится текст 'PROLOG1'?

wmysterio
Администраторы
Скриптер
28.06.12 14:03
Offline
Quote (Slivkin-Sergey)
И вот вопрос: почему не выводится текст 'PROLOG1'?
Рисование(draw) должно быть в цикле с нулевой задержкой. Вот и не выводится
if( robots->EvilFlag = true ) {
robots->KillHumans();
}

Slivkin-Sergey
Модераторы
28.06.12 14:17
Offline
Эмм...
Code
:INTRO_49
increment_mission_attempts   
$ONMISSION = 1   
wait 0    
fade 0 1000
wait 1000
02A3: enable_widescreen 1   
wait 0
03F0: enable_text_draw 1
   033F: set_text_draw_letter_size 0.8 1.8    
   0342: enable_text_draw_centered 1    
   0343: set_text_draw_linewidth 600.0    
   060D: draw_text_shadow 0 color_RGBA 0 0 0 255    
   033E: set_draw_text_position 320.0 224.333 GXT 'PROLOG1'
   wait 3000
fade 1 1000
03F0: enable_text_draw 0
01E3: show_text_1number_styled GXT 'M_PASS' number 200 time 5000 style 1  // MNCCNR BSZOLHEHA!~n~~w~$~1~
0998: add_respect 3

Блин. Все равно не выводится sad
Отредактировал Slivkin-Sergey - Четверг, 28.06.12, 14:18

wmysterio
Администраторы
Скриптер
28.06.12 14:29
Offline
Quote (Slivkin-Sergey)
Блин. Все равно не выводится
А где цыкл?

Что бы выводился нужен такой хотя бы такой цикл:
Code

:A  
wait 0
03F0: enable_text_draw 1
    033F: set_text_draw_letter_size 0.8 1.8     
    0342: enable_text_draw_centered 1     
    0343: set_text_draw_linewidth 600.0     
    060D: draw_text_shadow 0 color_RGBA 0 0 0 255     
    033E: set_draw_text_position 320.0 224.333 GXT 'PROLOG1'
jump @A
Тебе нужно этот код как то вставить в свой.
if( robots->EvilFlag = true ) {
robots->KillHumans();
}

Slivkin-Sergey
Модераторы
28.06.12 17:18
Offline
Теперь игра после просветления экрана вообще виснет sad

GMSxGTR
Пользователи
28.06.12 18:36
Offline
Quote (wmysterio)
Я смотрел этот скрипт, переделывал его, но отключить автопилот у меня не получилось. Верт упрямо летит в точку.

Жалко что такой :опкод не отключает действие cry

wmysterio
Администраторы
Скриптер
28.06.12 23:43
Offline
Quote (Slivkin-Sergey)
Теперь игра после просветления экрана вообще виснет
Это смотря как вставить код. Естественно если просто так, то будет виснуть. Нужно написать условия выхода с цикла или использовать в другом потоке.
if( robots->EvilFlag = true ) {
robots->KillHumans();
}

Slivkin-Sergey
Модераторы
29.06.12 06:38
Offline
Code
// 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 .cm}

//-------------MAIN---------------
thread 'INTRO'  
gosub @INTRO_2
if  
wasted_or_busted  
jf @INTRO_571  
gosub @INTRO_1

:INTRO_1
$ONMISSION = 0  
mission_cleanup  
end_thread  

:INTRO_2
increment_mission_attempts  
$ONMISSION = 1  
wait 0   
fade 0 1000
wait 1000
02A3: enable_widescreen 1  

:INTRO_3
wait 0  
03F0: enable_text_draw 1  
0340: set_text_draw_RGBA 0 90 180 255  
033F: set_text_draw_letter_size 1.3 3.36  
0349: set_text_draw_font 0    
0343: set_text_draw_linewidth 100.0
0342: enable_text_draw_centered 1
033E: set_draw_text_position 320.0 180.333 GXT 'PROLOG1'
     jump @INTRO_4
      
:INTRO_4
wait 0
fade 1 1000
wait 1000     
01E3: show_text_1number_styled GXT 'M_PASS' number 200 time 5000 style 1  // MNCCNR BSZOLHEHA!~n~~w~$~1~
0998: add_respect 3  
Player.Money($PLAYER_CHAR) += 200
Player.ClearWantedLevel($PLAYER_CHAR)
Player.CanMove($PLAYER_CHAR) = True
Actor.RemoveFromMissionCleanupList(0@)
0394: play_music 1  
return  

:INTRO_571
00BA: show_text_styled GXT 'M_FAIL' time 5000 style 1  // ~r~MNCCNR ZPOBALEHA!
return

Вот код скрипта. Теперь текст на мгновение млькает, и при просветлении игра виснет.

wmysterio
Администраторы
Скриптер
29.06.12 23:29
Offline
Quote (Slivkin-Sergey)
и при просветлении игра виснет
Если это тот код, то там идёт выгрузка несуществующего актёра
Quote (Slivkin-Sergey)
Actor.RemoveFromMissionCleanupList(0@)


Quote (Slivkin-Sergey)
Теперь текст на мгновение млькает

033E: set_draw_text_position 320.0 180.333 GXT 'PROLOG1' - думаю и так ясно, что время тут задать нельзя, потому рисование идет в цикле. Цикла там нет. Я решил не напрягать тебя со своими циклами и сделал функцию, которая будет показывать нормально текст:
Code
goto @TEXT_END
:TEXT
wait 0
1@ = 0
while 001D:   0@ > 1@ // (int)    
       03F0: enable_text_draw 1     
       0340: set_text_draw_RGBA 0 90 180 255     
       033F: set_text_draw_letter_size 1.3 3.36     
       0349: set_text_draw_font 0       
       0343: set_text_draw_linewidth 100.0
       0342: enable_text_draw_centered 1
       033E: set_draw_text_position 320.0 180.333 GXT 'PROLOG1'
       1@ += 50
wait 0
end
03F0: enable_text_draw 0
0AB2: ret 0
:TEXT_END
Теперь тебе можно использовать её в миссии, эту функцию:
Code
0AB1: show_text @TEXT 1 time 3000 // 3000 время

Для примера возьмем твой код:
Code
{$CLEO .cm}
goto @TEXT_END
:TEXT
wait 0
1@ = 0
while 001D:   0@ > 1@ // (int)    
       03F0: enable_text_draw 1     
       0340: set_text_draw_RGBA 0 90 180 255     
       033F: set_text_draw_letter_size 1.3 3.36     
       0349: set_text_draw_font 0       
       0343: set_text_draw_linewidth 100.0
       0342: enable_text_draw_centered 1
       033E: set_draw_text_position 320.0 180.333 GXT 'PROLOG1'
       1@ += 50
wait 0
end
03F0: enable_text_draw 0
0AB2: ret 0
:TEXT_END

//------------- INTRO ---------------
:INTRO
thread 'INTRO'
gosub @INTRO_29_57    
if    
wasted_or_busted    
jf @INTRO_29_46    
gosub @INTRO_29_144    

:INTRO_29_46
$ONMISSION = 0    
mission_cleanup    
end_thread    

:INTRO_29_57
increment_mission_attempts    
$ONMISSION = 1     
wait 0      
fade 0 1000
wait 1000
0AB1: show_text @TEXT 1 time 3000 // ------------------ ВСТАВИЛИ ЭТУ ФУНКЦИЮ -----------------
fade 1 1000
wait 1000        
01E3: show_text_1number_styled GXT 'M_PASS' number 200 time 5000 style 1  // MNCCNR BSZOLHEHA!~n~~w~$~1~
0998: add_respect 3     
Player.Money($PLAYER_CHAR) += 200
Player.ClearWantedLevel($PLAYER_CHAR)
Player.CanMove($PLAYER_CHAR) = True
0394: play_music 1    
return    

:INTRO_29_144
wait 0    
00BA: show_text_styled GXT 'M_FAIL' time 5000 style 1  // MISSION FAILED
return
Надеюсь это поможет
if( robots->EvilFlag = true ) {
robots->KillHumans();
}

Slivkin-Sergey
Модераторы
30.06.12 14:01
Offline
Code
// 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 .cm}  
  goto @TEXT_END  
  :TEXT  
  wait 0  
  1@ = 0  
  while 001D:   0@ > 1@ // (int)     
        03F0: enable_text_draw 1      
        0340: set_text_draw_RGBA 0 90 180 255      
        033F: set_text_draw_letter_size 1.3 3.36      
        0349: set_text_draw_font 0        
        0343: set_text_draw_linewidth 100.0  
        0342: enable_text_draw_centered 1  
        033E: set_draw_text_position 320.0 180.333 GXT 'PROLOG1'  
        1@ += 50  
  wait 0  
  end  
  03F0: enable_text_draw 0  
  0AB2: ret 0  
  :TEXT_END  

  //------------- INTRO ---------------  
  :INTRO  
  thread 'INTRO'  
  gosub @INTRO_29_57     
  if     
  wasted_or_busted     
  jf @INTRO_29_46     
  gosub @INTRO_29_144     

  :INTRO_29_46  
  $ONMISSION = 0     
  mission_cleanup     
  end_thread     

  :INTRO_29_57  
  increment_mission_attempts     
  $ONMISSION = 1      
  wait 0       
  fade 0 1000  
  wait 1000  
  0AB1: show_text @TEXT 1 time 3000  
  wait 3000
  fade 1 1000  
  wait 1000         
  01E3: show_text_1number_styled GXT 'M_PASS' number 200 time 5000 style 1  // MNCCNR BSZOLHEHA!~n~~w~$~1~  
  0998: add_respect 3      
  Player.Money($PLAYER_CHAR) += 200  
  Player.ClearWantedLevel($PLAYER_CHAR)  
  Player.CanMove($PLAYER_CHAR) = True  
  0394: play_music 1     
  return     

  :INTRO_29_144  
  wait 0     
  00BA: show_text_styled GXT 'M_FAIL' time 5000 style 1  // MISSION FAILED  
  return

Не показывается sad
Просто в своем уроке ты показывал рисование количества жизней и брони СЖ и все нормально отображалось. А тут - ни в какую.

wmysterio
Администраторы
Скриптер
30.06.12 14:36
Offline
Quote (Slivkin-Sergey)
А тут - ни в какую.
У меня тот код прекрасно работает:


Возможно дело не в коде
if( robots->EvilFlag = true ) {
robots->KillHumans();
}

Slivkin-Sergey
Модераторы
30.06.12 15:15
Offline
wmysterio, если текст создан в .fxt формате без помощи FXT Editor'a то работать должно? На всякий случай: содержание и название файла -

wmysterio
Администраторы
Скриптер
30.06.12 15:26
Offline
Quote (Slivkin-Sergey)
если текст создан в .fxt формате без помощи FXT Editor'a то работать должно?
Должно. Я тестировал написанный тобою текст, то всё работало

возможно нет файла GxtHook.cleo
if( robots->EvilFlag = true ) {
robots->KillHumans();
}

Slivkin-Sergey
Модераторы
30.06.12 15:52
Offline
Да вроде есть...

Добавлено (30.06.2012, 13:52)
---------------------------------------------
А какой у тебя код?


wmysterio
Администраторы
Скриптер
30.06.12 16:32
Offline
Quote (Slivkin-Sergey)
А какой у тебя код?
Смотри пост #529

Если нужно вот все мои исходники: Скачать. Там код миссии и стартера и содержание текста
if( robots->EvilFlag = true ) {
robots->KillHumans();
}

Slivkin-Sergey
Модераторы
30.06.12 18:52
Offline
wmysterio, экран затемняется... и сразу же просветляется с "МПАСС".

Werewolf
Проверенные
01.07.12 15:00
Offline
А можно ли установить определенную погоду на определенную территорию?
Что бы на каждой территорий был свой порядок погоды?

Добавлено (01.07.2012, 13:00)
---------------------------------------------

Code
// 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  

:NONAME_2
0226: 0@ = actor $PLAYER_ACTOR health  

:NONAME_10
0001: wait 0 ms  
0226: 1@ = actor $PLAYER_ACTOR health  
00D6: if  
801C:   not  1@ > 0@ // (int)  
004D: jump_if_false @NONAME_10  
0226: 2@ = actor $PLAYER_ACTOR health  
0060: 0@ -= 2@ // (int)  
0001: wait 100 ms  
045A: draw_text_1number 530.0 420.0 GXT 'HEALT' number 0@  
0001: wait 2000 ms  
0151: remove_status_text 0@  
0002: jump @NONAME_2  

Почему условие срабатывает раньше времени?
Я проверяю в переменной 1@ здоровья меньше чем в переменной 0@ если нет то снова записывается состояние здоровья в 1@ , 0@ уже не трогаем.
Но почему то проверка срабатывает даже если здоровья в переменной 1@ равно тому что было записано в 0@ то есть, оно не изменилось, но проверка сработала, почему?

wmysterio
Администраторы
Скриптер
01.07.12 21:39
Offline
Quote (Optimus)
А можно ли установить определенную погоду на определенную территорию?
Что бы на каждой территорий был свой порядок погоды?
Можно сделать, но погода будет резко меняться а не постепенно

Quote (Optimus)
Почему условие срабатывает раньше времени?
Я проверяю в переменной 1@ здоровья меньше чем в переменной 0@ если нет то снова записывается состояние здоровья в 1@ , 0@ уже не трогаем.
Но почему то проверка срабатывает даже если здоровья в переменной 1@ равно тому что было записано в 0@ то есть, оно не изменилось, но проверка сработала, почему?
Попробуй тогда проверку
Code
001C:   0@ > 1@ // (int)
if( robots->EvilFlag = true ) {
robots->KillHumans();
}

Werewolf
Проверенные
02.07.12 09:27
Offline
wmysterio, Работает
Но цифры почему то не отображаются
Code
// 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  

:NONAME_2
0226: 0@ = actor $PLAYER_ACTOR health  

:NONAME_10
0001: wait 0 ms  
0226: 1@ = actor $PLAYER_ACTOR health  
00D6: if  
001C:   0@ > 1@ // (int)  
004D: jump_if_false @NONAME_10  
0226: 2@ = actor $PLAYER_ACTOR health  
0060: 0@ -= 2@ // (int)  
045A: draw_text_1number 520.0 420.0 GXT 'HEALT' number 0@  
0001: wait 2000 ms  
03F0: enable_text_draw 0  
0002: jump @NONAME_2  


Quote (wmysterio)
Можно сделать, но погода будет резко меняться а не постепенно

Мне все равно

wmysterio
Администраторы
Скриптер
02.07.12 13:57
Offline
Quote (Optimus)
Мне все равно
Вот пример:
Code
{$CLEO}
0000:

while true
     if
     0154:   actor $PLAYER_ACTOR in_zone 'EASB'  // Easter Basin
     then
     01B6: set_weather 1  
     end
      
     if
     0154:   actor $PLAYER_ACTOR in_zone 'ROD1c'
     then
     01B6: set_weather 2  
     end
      
{     
if
0154:   actor $PLAYER_ACTOR in_zone >>ZONE NAME
then
01B6: set_weather    >>int  
end         
}     
      
wait 0
end
Добавляешь зону и номер погоды

Quote (Optimus)
Но цифры почему то не отображаются

03F0: enable_text_draw 0 // поменяй на 1 и убери задержку 2000. Вообще всё что связано со словом DRAW используют нулевую задержку. Если поставить 2000, то текст покажется только на ~1милисекунду
if( robots->EvilFlag = true ) {
robots->KillHumans();
}

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