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

SINGER
Проверенные
26.11.14 17:07
Offline
Всем снова привет! 
Скачал несколько глобальных модов, а в них есть одна и та же проблема - отсутствие заработка (такси, медик, пожарный, дальнобойщик, мусор). 
Теперь вопрос: можно ли как-то эти мисси сделать в CLEO, чтобы потом посадив файл ив такой глоб. мод и поменяв несколько координат (куда везти пассажира (к примеру)) можно было выполнять мисси такси, мусора, медика и т.д. 
Думаю такие скрипты много кому пригодились бы. Если они существуют то сбросьте ссылку... ПЛИЗ 

Slivkin-Sergey
Модераторы
08.12.14 16:14
Offline
А у меня ещё одна проблема. Вот такой адрес нашёл:
Цитата
+0x588 = [dword] Текстура номерного знака (RwTexture)

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

Добавлено (08.12.14, 15:14)
---------------------------------------------
Кстати, я ещё где-то видел адрес или экзешник, с помощью которого можно отключить использование кодов.


wmysterio
Администраторы
Скриптер
08.12.14 16:32
Offline
Цитата Slivkin-Sergey ()
Кстати, я ещё где-то видел адрес или экзешник, с помощью которого можно отключить использование кодов.
Если дело касается чит-кодов, то отключаються они в Сан Андреас так:
Код
0A8C: write_memory 0x0053BFB8 size 4 value 0x90909090 virtual_protect 1
0A8C: write_memory 0x0053BFBC size 1 value 0x90 virtual_protect 1
Сам планировал в "Карьерист"а впихнуть, но нестал этого делать.

BoPoH
Друзья
10.12.14 22:54
Offline
Цитата Slivkin-Sergey ()
А то я ставлю опкод 0674, а он не работает. Не ставится нужный знак.
Это работает, если применить опкод перед созданием машины (а может даже и перед загрузкой модели, не уверен). Но номерной знак поменяется у всех машин такой модели.
В МТА и SAMP номерной знак для каждой отдельной машины делается при помощи хука в рендере машины. Там перед рендером ставится соответствующая текстура, рендерится машина, а потом стандартная текстура возвращается на место.

Sweeper
Проверенные
14.12.14 10:36
Offline
Что означает

Код
Actor.LockInCurrentPosition(8@)

и

Код
Actor.DestroyInstantly(27@)
?

Добавлено (14.12.14, 09:36)
---------------------------------------------
Что тут не так? Мне нужно создать 2 машины и грузовик в некоторых координатах, но корда подхожу в радиус создания, игра вылетает

Отредактировал Sweeper - Воскресенье, 14.12.14, 10:37

wmysterio
Администраторы
Скриптер
14.12.14 11:13
Offline
Цитата Sweeper ()
if and
00FE: not actor $PLAYER_ACTOR sphere 0 in_sphere -74.9369 74.8745 3.1172 radius 200.0 200.0 100.0
actor.Dead($PITER)
car.Destroy(1@)
car.Destroy(2@)
then
car.RemoveReferences(1@)
car.RemoveReferences(2@)
actor.RemoveReferences($PITER)
end
Вот здесь накосячено. В условиях ты удаляшь транспорты, а потом обращаешься к несуществующим машинам. Нужно так:
Код
if and   
   00FE: not actor $PLAYER_ACTOR sphere 0 in_sphere -74.9369 74.8745 3.1172 radius 200.0 200.0 100.0   
   actor.Dead($PITER)   
   //car.Destroy(1@) - здесь ПРОВЕРКА, например "wrecked"
   //car.Destroy(2@) - здесь ПРОВЕРКА, например "wrecked"
   then   
   car.RemoveReferences(1@)   
   car.RemoveReferences(2@)   
   actor.RemoveReferences($PITER)   
   end
Код
Actor.LockInCurrentPosition(8@)
Закрепляет актёра на одном месте.
Код
Actor.DestroyInstantly(27@)
Немедлено удаляет актёра из игры

Sweeper
Проверенные
14.12.14 11:41
Offline
Цитата wmysterio ()
Вот здесь накосячено. В условиях ты удаляшь транспорты, а потом обращаешься к несуществующим машинам.
Изменил, но все равно вылетает.


wmysterio
Администраторы
Скриптер
14.12.14 11:49
Offline
Цитата Sweeper ()
но все равно вылетает
Я понял. Нужно метку поставить:
Код
:cozdanie_2  
wait 0   
  if and   
  80FE: not actor $PLAYER_ACTOR sphere 0 in_sphere -74.9369 74.8745 3.1172 radius 200.0 200.0 100.0   
  actor.Dead($PITER)   
  car.wrecked(1@)   
  car.wrecked(2@)   
jf @cozdanie_2
  car.RemoveReferences(1@)   
  car.RemoveReferences(2@)   
  actor.RemoveReferences($PITER)   
  end
И нужно удалить return. Он там не нужен.

На счёт условий, то мне нужно уточнить: нужно выполнять RemoveReferences когда игрок не в зоне и убит актёр,транспорт 1@,2@ ?

Sweeper
Проверенные
14.12.14 12:00
Offline
Цитата wmysterio ()
На счёт условий, то мне нужно уточнить: нужно выполнять RemoveReferences когда игрок не в зоне и убит актёр,транспорт 1@,2@ ?
Ну, если я напишу, то ничего особо не изменится? Короче, если игрок не в зоне, то транспорт нужно убрать.

wmysterio
Администраторы
Скриптер
14.12.14 12:10
Offline
Цитата Sweeper ()
Ну, если я напишу, то ничего особо не изменится?
Изменится. По-тому, что от задуманого зависит алгоритм.

Цитата Sweeper ()
Короче, если игрок не в зоне, то транспорт нужно убрать.

Тогда нужно так:
Код
:cozdanie_2   
wait 0    
if  
80FE: not actor $PLAYER_ACTOR sphere 0 in_sphere -74.9369 74.8745 3.1172 radius 200.0 200.0 100.0    
jf @cozdanie_2  
if
056E:   car 1@ defined
then
car.RemoveReferences(1@)    
car.Destroy(1@)
end
if
056E:   car 2@ defined
then
car.RemoveReferences(2@)    
car.Destroy(2@)
end
if
056D:   actor $PITER defined
then
actor.RemoveReferences($PITER)    
actor.DestroyInstantly($PITER)   
end

//...
Если игрок не в зоне, то удаляем актёра и транспорт, и удаляет в том случаи, если каждый из них существует

Sweeper
Проверенные
14.12.14 12:10
Offline
Все, спасибо за помощь, скрипт работает. А если я захочу, чтобы после уничтожения транспорта и человека, они снова появились, как это сделать?

wmysterio
Администраторы
Скриптер
14.12.14 12:20
Offline
Цитата Sweeper ()
Все, спасибо за помощь, скрипт работает. А если я захочу, чтобы после уничтожения транспорта и человека, они снова появились, как это сделать?

Только что ходел это написать. Вот, чтобы появлялись когда игрок в зоне и удалялись когда нет:
Код
{$CLEO .cs}   
0000: NOP   

:PROV   
thread 'PROV'   
model.Load(#LINERUN)   
model.Load(#WMYCLOT)   
model.Load(#WALTON)   
038B: load_requested_models  // загружаем все модели в память

:PROV_1   
wait 0   
if // если игрок в зоне
00FE:   actor $PLAYER_ACTOR sphere 0 in_sphere -74.9369 74.8745 3.1172 radius 200.0 200.0 100.0   
jf @PROV_1 // то создаём субъекты
1@ = car.Create(#WALTON, -77.9369, 74.8745, 3.1172)   
car.Angle(1@) = 246.1003   
2@ = car.Create(#LINERUN, -52.0774, 78.5, 3.1096)   
car.Angle(2@) = 263.3105   
$PITER = actor.Create(4,#WMYCLOT, -74.9369, 74.8745, 3.1172)   

:PROV_2
wait 0  
if // если игрок не в зоне
80FE: not actor $PLAYER_ACTOR sphere 0 in_sphere -74.9369 74.8745 3.1172 radius 200.0 200.0 100.0   
jf @PROV_2 // то
if  
056E:   car 1@ defined // если транспорт сущестувет  
then  
car.RemoveReferences(1@) // то чистим ссылки     
car.Destroy(1@) // и удаляем  
end  
if  
056E:   car 2@ defined // если транспорт сущестувет  
then  
car.RemoveReferences(2@) // то чистим ссылки      
car.Destroy(2@) // и удаляем   
end  
if  
056D:   actor $PITER defined // если актёр сущестувет
then  
actor.RemoveReferences($PITER) // то чистим ссылки    
actor.DestroyInstantly($PITER) // и удаляем   
end  
jump @PROV_1 // прыгаем на метку для создания актёров при условии или ставим опкод 0A93 и завершаем поток

Sweeper
Проверенные
14.12.14 13:34
Offline
Теперь вот: я хочу актеру присвоить анимацию, типа он машину ремонтирует, а потом вылазит из под нее. Названия анимаций знаю, как теперь это в скрипте сделать? и на картинку посмотри

Добавлено (14.12.14, 12:34)
---------------------------------------------
Как мне этого актера под машину запихнуть?

Отредактировал Sweeper - Воскресенье, 14.12.14, 13:27
Прикрепления: 8813209.jpg(140Kb)

wmysterio
Администраторы
Скриптер
14.12.14 14:34
Offline
Цитата Sweeper ()
Как мне этого актера под машину запихнуть?
Для начала, определи место где актёр долен ремонтировать транспорт. Получи координаты и угол разворота(CTRL+SHIFT+C и CTRL+SHIFT+E в СБ). Вот, создай актёра с этими координатами и углом:
Код
$PITER = actor.Create(4,#WMYCLOT, -74.802, 73.3269, 2.1172)   
actor.Angle($PITER)= 246.7695
и посмотри результат

Sweeper
Проверенные
14.12.14 17:07
Offline
А машину сверху ставить?

wmysterio
Администраторы
Скриптер
14.12.14 17:14
Offline
Цитата Sweeper ()
А машину сверху ставить?
Ничего больше менять не нужно. Просто ЗАМЕНИ блок создания актёра на тот, что я написал выше.

Sweeper
Проверенные
14.12.14 17:31
Offline
Да ты чертов гений! Все так, как я хотел, но, когда я взорвал машину, актер отлетел и их там 3 было

Добавлено (14.12.14, 16:31)
---------------------------------------------
Почему так?

Прикрепления: 4945438.jpg(115Kb)

wmysterio
Администраторы
Скриптер
14.12.14 17:57
Offline
Цитата Sweeper ()
Почему так?
Это моя вина. Я опкод попутал и провереля на существование автомобиля с именем $PITER. Что-бы не двоилось нужно этот код:
Код
if  
056D:   actor $PITER defined
then  
actor.RemoveReferences($PITER)  
actor.DestroyInstantly($PITER)  
end
Заменить это:
Код
if  
056E: actor $PITER defined // здесь ошибка
then  
actor.RemoveReferences($PITER)  
actor.DestroyInstantly($PITER)  
end

Slivkin-Sergey
Модераторы
22.12.14 06:48
Offline
BoPoH, не мог бы ты скинуть свою базу адресов gta_sa.exe? А то неудобно по каждому мелкому вопросу людей беспокоить (в том числе и тебя).

BoPoH
Друзья
23.12.14 18:22
Offline
Цитата Slivkin-Sergey ()
BoPoH, не мог бы ты скинуть свою базу адресов gta_sa.exe? А то неудобно по каждому мелкому вопросу людей беспокоить (в том числе и тебя).
Ты имеешь ввиду базу IDA?

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