[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 117 из 127«12115116117118119126127»
Форум » Игры серии 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)

SanKing
Друзья
04.07.15 13:06
Offline
softcrasoft, могу посоветовать только это.

softcrasoft
Пользователи
04.07.15 15:34
Offline
Ага, только как я понимаю, у тебя не буджет возможности начать миссии при начале игры и т.д.
Еще есть такой вопрос.
Пришлось выучить массивы, и есть такой вопрос:
Как сделать 40 актеров я пока что примерно представляю:
var
act: array 40 of actor
end
04C4: store_coords_to $x $y $z from_actor $PLAYER_CHAR with_offset 1.0 3.0 1.0

for i=0 to 40
$act[$i] = actor.create(4, #MODEL, $x, $y, $z) //Надеюсь ничего не пропустил
actor.angle($act[$i]) = 100.0
$x -= 3
end
Соответственно выше будут написаны проверки на клавишы, загрузки моделей и т.д.
А как сделать так, что бы актеры не только следовали за cj, но и защищали его? Да и еще. Как им дать оружие, установить точность и патроны на неогранич? Где-то видел, но уже не помню где.

wmysterio
Администраторы
Скриптер
04.07.15 16:35
Offline
Цитата softcrasoft ()
Ага, только как я понимаю, у тебя не буджет возможности начать миссии при начале игры и т.д.
Cleo-миссии, как и Cleo-скрипты - это независимые сущности. Когда будет доступна миссия определяется непосредственно в стартере.

Цитата softcrasoft ()
Соответственно выше будут написаны проверки на клавишы, загрузки моделей и т.д. А как сделать так, что бы актеры не только следовали за cj, но и защищали его? Да и еще. Как им дать оружие, установить точность и патроны на неогранич? Где-то видел, но уже не помню где.
Код
{$CLEO}
wait 4000

var  
0@: array 25 of actor  
end  

Model.Load(#FAM1)
Model.Load(#TEC9)
038B: load_requested_models

26@ = 2494.4709  
27@ = -1658.6969  
28@ = 13.35

for 29@ = 0 to 25  
wait 0
0@(29@,28i) = Actor.Create( 8, #FAM1, 26@, 27@, 28@)
     if
     056D:   actor 0@(29@,28i) defined
     then
     Actor.Angle( 0@(29@,28i) ) = 100.0  
     02E2: set_actor 0@(29@,28i) weapon_accuracy_to 75 // %
     0850: AS_actor 0@(29@,28i) follow_actor $PLAYER_ACTOR
     077A: set_actor 0@(29@,28i) acquaintance 0 to_actors_pedtype 0  
     077A: set_actor 0@(29@,28i) acquaintance 4 to_actors_pedtype 25
     01B2: give_actor 0@(29@,28i) weapon 32 ammo 4000
     end
26@ -= 3.0    
end  

Model.Destroy(#FAM1)
Model.Destroy(#TEC9)       
0A93: end_custom_thread
К сожалению, чтобы адекватно защищали нужно поместить в группу игрока, но там максимум 7 человек можно добавить.

softcrasoft
Пользователи
04.07.15 17:05
Offline
Мда уж.
7 человек так 7.
А что за опкоды:
     077A: set_actor 0@(29@,28i) acquaintance 0 to_actors_pedtype 0 
     077A: set_actor 0@(29@,28i) acquaintance 4 to_actors_pedtype 25
Да, и еще вопрос, чем отличаюстя переменные Player_actor от PLAER_CHAR?

wmysterio
Администраторы
Скриптер
04.07.15 17:25
Offline
Цитата softcrasoft ()
077A: set_actor 0@(29@,28i) acquaintance 0 to_actors_pedtype 0
077A: set_actor 0@(29@,28i) acquaintance 4 to_actors_pedtype 25
Устанавливают отношение актёра к другим пешеходам. Первый параметр - отношение:
0 Превознесение (не будут нападать)
1 Уважение (могут отвечать на атаки в их сторону)
2 Равнодушие (будут нападать только тогда, когда атакуют их)
3 Неприязнь (есть шанс напасть)
4 Ненависть (будут нападать при первой возможности
второй параметр - тип пешехода
Цитата softcrasoft ()
Да, и еще вопрос, чем отличаюстя переменные Player_actor от PLAER_CHAR?
Переменные - только названием. Гораздо важнее что они хранят в себе. Player_actor хранит ссылку на актёра, которым управляет игрок, PLAER_CHAR - хранит ссылку на самого игрока. Разница в классе сущностей. 'Actor' представляет любого пешехода, в тот час как 'Player' представляет только того актёра, которым управляет игрок.

softcrasoft
Пользователи
04.07.15 17:36
Offline
1. Я говорил и буду говорить. ТЫ ЛУЧШИЙ СКРИПТЕР. Благоадря тебе я чувствую себя в игре как бог;
2. Не понял. Что значит актер главного перса и игрок?
В чем разница, если мы будем использовать в опкоде 04c4 $PLAYER_CHAR или $PLAYER_ACTOR?

Добавлено (04.07.15, 16:36)
---------------------------------------------
Да и совсем забыл, а что за опкод?
     0850: AS_actor 0@(29@,28i) follow_actor $PLAYER_ACTOR
Это типа добавление актера в группу к игроку?


wmysterio
Администраторы
Скриптер
04.07.15 19:36
Offline
Цитата softcrasoft ()
Я говорил и буду говорить. ТЫ ЛУЧШИЙ СКРИПТЕР. Благоадря тебе я чувствую себя в игре как бог
Это хорошо smile Если и дальше стараться, то можно чувствовать себя свехбогом ))
Цитата softcrasoft ()
Не понял. Что значит актер главного перса и игрок? В чем разница, если мы будем использовать в опкоде 04c4 $PLAYER_CHAR или $PLAYER_ACTOR
Опкод 04C4 требует ссылку на актёра. Если передать $PLAYER_CHAR, то по-сути будет идти передача ссылки на игрока и в результате - вылет, так как это разные сущности(классы, структуры). Могу привести пример на C#, чтобы лучше понять:
Код
    public class actor {
         public string Name { get; set; }

         public actor( string Name ) { this.Name = Name; }
     }

     public class player {

         public actor Actor { get; set; }
      
         public string Name { get; set; }

         public player( string Name ) {  
             this.Name = Name;
             Actor = new actor( "$PLAYER_ACTOR" );
         }

     }

     public class MyThread {

         public MyThread() {

             var PlayerChar = new player( "$PLAYER_CHAR" );
             var PlayerActor = PlayerChar.Actor;

             SetPosition( PlayerActor );
             SetPosition( PlayerChar ); // Вылет

         }

         public void SetPosition( actor anyActor ) { }

     }
Если представить, что класс MyThread - это эквивалент потока мейна(ну или любого другого), то при вызове метода "SetPosition", пусть это будет прототип опкода 04C4, мы можем передать только объект класса actor. Однако если мы передадим туда объект класса player, то произойдёт ошибка - конфликт типов. В C# мы контролируем контроль передачи переменных, но на уровне скрипта scm - нет. Мы можем передать что угодно, однако работать будет только с актёром.
Если нужно коротко, то во всех опкодах где есть слово "player" - пиши $PLYAER_CHAR. Во всех остальных случаях - $PLAYER_ACTOR
Цитата softcrasoft ()
Это типа добавление актера в группу к игроку?
Нет, заставляет следовать актёра за другим актёром.

softcrasoft
Пользователи
04.07.15 19:57
Offline
спасибо, опять повторюсь, ТЫ ЛУЧШИЙ СКРИПТЕР. так мне еще никогда не объясняли.
одни посылали куда подальше, а другие объясняли так, что только они так помогают.
Одним словом, СПАСИБО!

wmysterio
Администраторы
Скриптер
04.07.15 20:04
Offline
Цитата softcrasoft ()
спасибо, опять повторюсь, ТЫ ЛУЧШИЙ СКРИПТЕР. так мне еще никогда не объясняли. одни посылали куда подальше, а другие объясняли так, что только они так помогают. Одним словом, СПАСИБО!
Рад помочь!

GeniusZ
Пользователи
06.07.15 13:04
Offline
Как можно реализовать возможность в миссии, когда актер садился бы в машину, то маркер над ним убирался? А когда выходил появлялся, как в оригинальных миссиях. Я попробовал добавить этот скрипт, но он не работает:

Код
if  
Actor.Driving($PLAYER_ACTOR)
then
00D9: $CAR = actor $PLAYER_ACTOR car
  if  
   actor.InCar($GIRL,$CAR)
  then
   marker.Disable(0@)   
  end
else  
marker.CreateAboveActor(0@,$GIRL)  
end

etwnp
Пользователи
06.07.15 15:36
Offline
Цитата GeniusZ ()
Как можно реализовать возможность в миссии, когда актер садился бы в машину, то маркер над ним убирался? А когда выходил появлялся, как в оригинальных миссиях. Я попробовал добавить этот скрипт, но он не работает:


В моем коде маркер создается всегда, если не включен, и выключается только если актер в машине игрока. По идее должно работать если нету задержки.
Код
while true

     wait 0
      
     if
         075C:   marker 0@ enabled  
     then  
     else
         marker.CreateAboveActor(0@,$GIRL)
     end
      
     if
         actor.Driving($PLAYER_ACTOR)
     then
      
         00D9: $CAR = actor $PLAYER_ACTOR car  
          
         if
             actor.InCar($GIRL,$CAR)  
         then
             marker.Disable(0@)  
         end
          
     end
      
end

wmysterio
Администраторы
Скриптер
06.07.15 15:38
Offline
Цитата GeniusZ ()
Как можно реализовать возможность в миссии, когда актер садился бы в машину, то маркер над ним убирался? А когда выходил появлялся, как в оригинальных миссиях.
Что-похожее есть в этом уроке.Там пример связанный с грузовиками, однако там есть алгоритм как реализовать такую возможность.

Если всё же возникают проблемы, то вот примерно такой код подойдёт:
Код
:T
03A4: script_name 'T'        // thread 'T'  
0247: request_model #ADMIRAL // load model
0247: request_model #WMYDRUG // load model
038B: load_all_models_now    // load requested models
00A5: create_car $CAR #ADMIRAL 0.0 0.0 0.0      // create car  
009A: create_char $ACTOR 4 #WMYDRUG 1.0 0.0 0.0 // create actor
0249: mark_model_as_no_longer_needed #ADMIRAL   // model destroy
0249: mark_model_as_no_longer_needed #WMYDRUG   // model destroy

:T_LOOP_A
0001: wait 0       
    
if or
0119: is_car_dead $CAR      // car wrecked
02BF: is_car_in_water $CAR  // car sunk
then
0002: goto @T_CAR_DEAD
end

if
0118: is_char_dead $ACTOR  // actor dead
then
0002: goto @T_ACTOR_DEAD
end

if or
80DB:   not is_char_in_car $PLAYER_ACTOR $CAR           // actor not in car  
80DB:   not is_char_in_car $ACTOR $CAR                  // actor not in car
then
     if
     875C:   not does_blip_exist $MARKER_BY_ACTOR        // marker not exist
     then
     0187: add_blip_for_char $MARKER_BY_ACTOR $ACTOR     // create marker
     end
     if
     875C:   not does_blip_exist $MARKER_BY_CAR          // marker not exist
     then
     0186: add_blip_for_car $MARKER_BY_CAR $CAR          // create marker
     end
else
     if or
     075C:   does_blip_exist $MARKER_BY_CAR             // marker exist
     075C:   does_blip_exist $MARKER_BY_ACTOR           // marker exist
     then     
     0164: remove_blip $MARKER_BY_CAR                   // marker disable
     0164: remove_blip $MARKER_BY_ACTOR                 // marker disable
     end  
end

if
// вставить код выхода из цикла
then
0002: goto @T_FINISH
end

0002: goto @T_LOOP_A

:T_FINISH
0AD1: show_formatted_text_highpriority "MISSION PASSED!" time 5000  
0002: goto @T_END

:T_CAR_DEAD
0AD1: show_formatted_text_highpriority "Car dead!" time 5000  
0002: goto @T_END

:T_ACTOR_DEAD
0AD1: show_formatted_text_highpriority "Actor dead!" time 5000  
0002: goto @T_END

:T_END
0164: remove_blip $MARKER_BY_CAR                   // marker disable
0164: remove_blip $MARKER_BY_ACTOR                 // marker disable
004E: terminate_this_script // end thread
В коментариях я написал название тех опкодов, которые вшиты в стандартный Sanny Builder, так как использую пока свой вариант, базирующийся на оригинальных названиях опкодов, что были открыты с выходом мобильной версии SA.

softcrasoft
Пользователи
06.07.15 17:09
Offline
Ребят есть такой вопрос:
Какую игру, GTA 3, GTA vice city, или таки san andreas вы можете выделить удобней в плане миссий?
Может допустим gta 3 в плане этого проще?

wmysterio
Администраторы
Скриптер
06.07.15 17:17
Offline
Цитата softcrasoft ()
Какую игру, GTA 3, GTA vice city, или таки san andreas вы можете выделить удобней в плане миссий? Может допустим gta 3 в плане этого проще?
Все три игры были написаны одном игровом движке. От сюда вывод, что и миссии в плане написания практически идентичны.
Иными словами - научишься делать миссии в 3, то без проблем сможешь написать для СА в ВС; научишься делать для ВС, то не будет проблем в СА и 3; научишься в СА, то написать миссию для 3 и ВС будет не проблема.

softcrasoft
Пользователи
06.07.15 17:29
Offline
Ок. если так, то буду делать на gta 3, т.к там меньше ресурсов компа надо. Но есть несколько вопросов:
1. Sanny builder также нормально работает в gta 3?
2. Опкоды используются те же?
Спасибо.

wmysterio
Администраторы
Скриптер
06.07.15 17:34
Offline
Цитата softcrasoft ()
1. Sanny builder также нормально работает в gta 3?

Да. Это универсальный и стабильный компилятор.
Цитата softcrasoft ()
2. Опкоды используются те же?
Нет, для каждой игры свой набор опкодов, но все они похожи: метки, задержки прыжки, просто большая их часть не известны в плане описания( много пометок с NOP и unknown ). Сан Андреас самая изученная из всех серии.

softcrasoft
Пользователи
06.07.15 17:37
Offline
Блин а узнать их можно как-то?
Просто вот в SA мой комп требует уж много ресурсов. что бы долго играть, нужно включать другой комп. Этот проц нагружается, нагревается, а куллер только после чистки. т.е не работает. по этому выключение компа автоматом при нагревании 95 градус.

wmysterio
Администраторы
Скриптер
06.07.15 17:44
Offline
Цитата softcrasoft ()
Блин а узнать их можно как-то?
В СБ клавишами CTRL+SHIFT+F2 - получить список опкодов и возможностью поиска.
Цитата softcrasoft ()
по этому выключение компа автоматом при нагревании 95 градус.
При таком температурном режиме компа ждут последние вздохи. Больше 80 градусов - это уже критическая точка. Обычно изготовитель ставит лимит в 60-70 градусов( в каждом проце, видюхе по разному)

softcrasoft
Пользователи
06.07.15 17:53
Offline
1. Может контрл альт 2? Но там же игру не пишет для какой опкод.
2. Не. Я однажды во время игры включал аиду, 90 градусов. И это при игре мафия 2. в GTA греется дольше.

GeniusZ
Пользователи
06.07.15 17:57
Offline
Цитата
Что-похожее есть в этом уроке.Там пример связанный с грузовиками, однако там есть алгоритм как реализовать такую возможность.
 
Я разобрался в чем проблема. А такая глупая ошибка. Оказывается этот код игнорировался, потому что перед ним был написан jump

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