Ответ

Имя:
E-mail:
Тема:
Иконка:

Вложение:
(Удалить вложение)
(Добавить ещё)
Ограничения: максимум вложений в сообщении — 4, максимальный размер всех файлов — 192 Кбайт, максимальный размер одного файла — 128 Кбайт
Визуальная проверка:
Наберите символы, которые изображены на картинке
Прослушать / Запросить другое изображение

Наберите символы, которые изображены на картинке:
О какой игре форум? (три буквы заглавные):
Сколько будет (5*5 + 2) ответ цифрой.:

подсказка: нажмите alt+s для отправки или alt+p для предварительного просмотра сообщения


Сообщения в этой теме

Автор: spartaque12
« : Ноябрь 27, 2017, 05:54:08 am »

На Сан Андреас Бы эту прелесть прикрутить )) Надеюсь что будет когда-нибудь
спустя 2 года все же прикрутили moonloader
Автор: egor230
« : Ноябрь 06, 2017, 02:42:03 pm »

Здравствуйте, всем.
Учусь писать миссии на lua, путем изменение шаблонных миссии.
В cleo есть scm функция с возвратом, модель и тип педа, модель оружие и тип. Вернули хенлд врага со оружием.
Код: Javascript
  1. 0AB1: call_scm_func @fun 3 #VICE4 4 #M60 1@      
  2.  
Код: Javascript
  1.                          
  2. :fun
  3. repeat
  4. wait 0
  5. 0247: request_model 0@ // Запрос модели таксиста
  6. 0247: request_model 2@ // Запрос модели минигана    
  7. 038B: load_requested_models          
  8. gosub @delay              
  9. until gosub @load
  10. 5@ = actor.Create(1@, 0@, d, e, f)    
  11. 000E: 2@ -= 257 // Установить номер оружие
  12. 01B2: give_actor 5@ weapon 2@ ammo 9999    
  13. 02E2: set_actor 5@ weapon_accuracy_to 100 // Установка точности стрельбы для актера
  14. 000A: 2@ += 257 // Установить модель оружие
  15. actor.Angle(5@) = g // Задать угол актеру  
  16. actor.Health(5@) = h // Установить кол-во здоровье педа                
  17. 03FE: set actor 5@ money m // Кол-во денег педа  
  18. 01CA: actor 5@ kill_player $player_char // Актер хочет убить игрока    
  19. Model.Destroy(0@)      
  20. Model.Destroy(2@)      
  21. 0AB2: ret  1 5@  
  22. :delay
  23. 16@ = 0
  24. repeat
  25. wait 0                
  26. until 0029: 16@ >= 900 // задержка  
  27. return
  28. :load
  29. if and
  30. Model.Available(0@)
  31. Model.Available(2@)
  32. jf @load
  33. return
  34.  

как это сделать в lua vice?

Вот это кусок кода, нужно передать модель оружия и педа, получить врага.
Код: Javascript
  1.  
  2.   RequestModel(m); -- Army
  3.  LoadRequestedModels();
  4.   soldier = CreateActor(20, m, d, e, f);-- Создание актера    
  5.   SetActorObjectiveTarget(soldier, PLAYER_CHAR, 8, 0) -- задача у актера    
  6.   Market = SetBlipTieToActor(soldier, flag, 2) -- маркер над актером
  7.   SetActorWalkStyle(soldier , 50) -- походка актера
  8.   SetActorPedStats(soldier , 3) -- Устанавливаем поведение актеру. чем выше, тем пугливлее.
  9.   SetActorMoney(soldier, 50000) -- Установить кол-во денег врагу
  10.  
Помогите, пожалуйста, умные люди.

Весь код.
Код: Javascript
  1.  
  2. local soldier = -1;
  3. local x = -1150.94 -- Координаты значка миссии
  4. local y = -1418.94 -- Координаты значка миссии
  5. local z = 11.5395 -- Координаты значка миссии
  6. local a = -1101.47 -- Координаты пикапа
  7. local b = -1330.97 -- Координаты пикапа
  8. local c = 11.3695 -- Координаты пикапа  
  9. local d = -1064.83 -- Координаты педа
  10. local e = -1445.94 -- Координаты педа
  11. local f = 11.7444 -- Координаты педа
  12. local m = 4 -- Модель педа
  13. local function mission_end() -- завершение миссии
  14.  ON_MISSION = 0
  15.  CleanUpThisPed(soldier)
  16.  ReleaseModel(m) -- RELEASE ARMY
  17.  ClearBlip(Market)
  18. end
  19. local function mission_failed() -- провал миссии
  20.  GXT_AddBigMessageWithNumber("M_FAIL", 5000, 0)  
  21.  ICON_MISSION_1 = CreateBlip(4, 77.3075, -879.1083, 10.4481, 2, 3)
  22.  SetBlipSprite(ICON_MISSION_1, 5)
  23.  mission_end()
  24. end
  25. local function mission_complete() -- миссия пройдена
  26.  GXT_AddBigMessageWithNumber("M_PASS", 5000, 0, 100)  
  27.  PlayMusic(1)
  28.  SetPlayerMoney(PLAYER_CHAR, GetPlayerMoney(PLAYER_CHAR) + 100)
  29.  MISSION_COMPLETE = 1
  30.  ICON_MISSION_1 = nil
  31.  ICON_MISSION_2 = CreateBlip(4, 77.3075, -879.1083, 10.4481, 2, 3)
  32.  SetBlipSprite(ICON_MISSION_2, 6)
  33.  mission_end()
  34. end
  35. function MISSION_1()
  36.   ON_MISSION = 1
  37.   MakePlayerSafe(PLAYER_CHAR, true)-- замораживает игрока, при этом он становится не доступным для управления
  38.   PutPlayerAt(PLAYER_CHAR, x, y, z)
  39.   MakePlayerSafe(PLAYER_CHAR, false)  
  40.   if IsDeadActor(PLAYER_ACTOR) then
  41.        mission_failed()  -- Если плеер был убит, то миссия провалена!   
  42.           return
  43.     end
  44.   RequestModel(m); -- Army
  45.  LoadRequestedModels();
  46.   soldier = CreateActor(20, m, d, e, f);-- Создание актера    
  47.   SetActorObjectiveTarget(soldier, PLAYER_CHAR, 8, 0) -- задача у актера    
  48.   Market = SetBlipTieToActor(soldier, flag, 2) -- маркер над актером
  49.   SetActorWalkStyle(soldier , 50) -- похода актера
  50.   SetActorPedStats(soldier , 3) -- Устанавливаем поведение актеру. чем выше, тем пугливлее.
  51.   SetActorMoney(soldier, 50000) -- Установить кол-во денег врагу
  52.   while true do-- Цикл миссии
  53.   if IsDeadActor(soldier) then
  54.           PutPlayerAt(PLAYER_CHAR, 77.3075, -879.1083, 10.4481)
  55.       Wait(2000)
  56.       mission_complete()
  57.           return
  58.     end
  59.   if IsDeadActor(PLAYER_ACTOR) then
  60.       mission_failed()
  61.           return
  62.     end
  63.   Wait(0)
  64. end              
  65. end
  66.  
Автор: egor230
« : Сентябрь 29, 2017, 05:58:01 am »

 Уважаемый kenking написания плагинов на С++ открывает перед нами новые возможности. Хотя язык с++ немного сложнее, того же lua. Многие его бояться как огня, а зря.
Уважаемые программисты скажите, пожалуйста, названия программы, на которой можно отточить язык lua, чтобы быстрее научиться. Наподобие этого  https://prnt.sc/gowfj6 .

Тут человек пишет и сразу проверяет скрипт, на этом видео человек работает в программе и видит как работает скрипт. 
https://www.youtube.com/watch?v=HjcuNo-NH2o&t=226s
Автор: kenking
« : Сентябрь 23, 2017, 07:28:06 pm »

Цитировать
Скиньте, пожалуйста, мне образцы самых простых скриптов, чтобы понять логику их написание. Поймите меня правильно, очень тяжело одному изучать без уроков.
Я на  lua не написал ни одного скрипта. С cleo перешёл на написание плагинов на C++ http://forum.gtabuilder.ru/index.php?topic=337.0, благодаря помощи DK.
Автор: egor230
« : Сентябрь 23, 2017, 05:28:05 pm »

Здравствуйте, уважаемый  kenking
Спасибо Вам больше за дельные советы, Вы совершенно правы, нужны давать осмысленные названиям переменным.
Поймите меня правильно, уважаемый Sektor создал гениальную вещь, полноценную альтернативу cleo, жаль нет хорошей подробной документации с уроками, примерами для нубов, как в cleo.
Приходится учиться методом проб и ошибок, что занимает очень много времени.
Скиньте, пожалуйста, мне образцы самых простых скриптов, чтобы понять логику их написание. Поймите меня правильно, очень тяжело одному изучать без уроков. 
Автор: kenking
« : Сентябрь 23, 2017, 10:02:18 am »

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

local c = CreateActor...
local a = 147 -- имя модели авто
local b = CreateVehicle...


хотя бы так:

local actor = CreateActor..
local modelVehicle = 147 -- имя модели авто
local vehicle = CreateVehicle...
Автор: egor230
« : Сентябрь 22, 2017, 08:22:12 pm »


Спасибо уважаемый Sektor, за полезную ссылку.
Сегодня проводил опыты в vice lua, чтобы учиться писать скрипты на языке lua.
Писал в скрипте " test_addon", чтобы ничего не испортить.
Создал актера, дал ему оружия, поставил ему задачу убить меня.
Также создал авто на координатах, задал угол авто, жаль авто не едет само.
Я сделал скрипт который наконец-то работает. Сделал его не чтобы похвастаться, а для того чтобы помочь другим, так как в документации для написания их, пока нет образцов. Примеров тоже очень мало. В официальной справке, их кот наплакал.
Написал не новый скрипт, а лишь изменения в тестовом чтобы показать новичкам, что это очень мощный инструмент для работы. Чтобы люди тоже пытались писать, потому что возможности этого движка безграничны. Комментарии к функциям помогут вам разобраться хотя бы с 10 раза.
 
Код: HTML5
  1.  
  2. function mod.OnSaveGame()
  3. end
  4.  
  5. function mod.OnLoadGame()
  6. end
  7.  
  8.  
  9. function testAddon()
  10.  -- Пример
  11.   RequestModel(89)  --запрос на загрузку актера CLA    
  12.   RequestModel(281);  -- запрос на загрузку TEC9
  13.   RequestModel(274);  -- запрос на загрузку COLT45
  14.   LoadRequestedModels();
  15.    local c = CreateActor(4, 89, 83.0, -848.8, 19.3) -- имеет 5 параметров, 1 - int типа педа, 2 - int идентификатор модели, 3, 4, 5 - float x, y, z. А также функция возвращает int хендл
  16.   SetActorMoney(c, 50000) -- Установить кол-во денег
  17.    SetActorPedStats(c , 1) -- Устанавливаем поведение актеру. чем выше, тем пугливее.
  18.   GiveActorWeapon(c , 22, 100)  -- дать актеру оружие  (автомат)
  19.     GiveActorWeapon(c , 17, 100)  -- дать актеру оружие (пистолет)
  20.    SetActorCurrentWeapon(c , 2)  -- Устанавливаем слот 2, пистолет    
  21.   SetActorCurrentWeapon(c , 5)  -- Устанавливаем слот 5, пистолеты-пулеметы
  22.   Wait(7000)
  23.    SetActorObjectiveTarget(c, PLAYER_CHAR, 9, 0) -- актер хочет нас убить, Функция имеет аж 4 параметра. 1 - параметр хендл актера, кому задаем задачу, 2 - параметр это хендл может быть, объекта, транспорта, актера и игрока (цель), 3 - параметр идентификатор задачи, 4 - тип цели.
  24.  
  25.  local a = 147 -- имя модели авто
  26.  RequestModel(a);  -- запрос модели
  27.   LoadRequestedModels();
  28.    Wait(4000)
  29.   local b = CreateVehicle(a, 85.0, -848.8, 9.3) -- записать хелд авто в переменную
  30.   SetVehicleZ_Angle(b, 110.0) -- задать угол разворота авто
  31.   SetFireGunsOnVehicle(b, 70)
  32.  SetVehicleToPsychoDriver(b)
  33.  SetVehicleMaxSpeed(b, 60)
  34.  
  35.  ReleaseModel(a) -- выгружает из памяти
  36.  
  37.  
Автор: Sektor
« : Сентябрь 21, 2017, 03:38:36 pm »

Подключать вот, тут было обсуждение:

http://forum.gtabuilder.ru/index.php?topic=293.msg1886#msg1886

Обычно в новых файлах, если писать миссии, то все как обычно с функций начинается. Кстати в комплекте же был пример простой.
Автор: egor230
« : Сентябрь 21, 2017, 02:07:03 pm »

Уважаемый Sektor.
Большое спасибо, что нашли время ответить на мой банальный вопрос. У VICE LUA огромное преимущество перед Cleo. Там из-за лимита 16 переменных очень тяжело написать миссию. Не в коем случаи ни утверждаю, что это является невозможным. Но очень тяжело особенно для нубов, каких к сожалению большинство, конечно с помощью SCM функциях можно экономить переменные, что облегчает написание миссий, но для этого нужно обладать высоким уровнем мастерства скриптинга. В VICE LUA это намного проще изучал Ваши пробные миссии. Их код очень короткий, компактный, удобно читать. Прошу прощения за мою настойчивость перед Вами, я нахожусь в большом восторге от возможностей Вашего движка.
Не сочтите за наглость, очень хочу писать скрипты. Скажите, пожалуйста, как добавить новый скрипт? куда писать, чтобы он добавился? Инструкции в интернете к моему огорчению я не смог найти. Второй вопрос с каких строчек начинать новый скрипт? В CLEO  мы пишем директиву {$CLEO .cs}, опкод из четырех 0 0000:, wait 0, label и дальше условия и опкод , и заканчиваем jump-ом на первый label. Очень хочу научиться. ПТУ (Помогите тупому учиться).
Всё-таки считаю, что у VICE LUA есть определённые ограничения в силу возрасте самого движка игры. По справке хотел сделать пикап авто в заданных координатах, не получается возможно, тут есть какая-то тонкость об который знает лишь мудрый и образованный человек.
Автор: Sektor
« : Сентябрь 20, 2017, 06:49:05 pm »

Цитировать
Скажите, пожалуйста, сколько переменных в vice lua, тоже 16? Как и в cleo.
Бесконечно, пока оперативной памяти хватит... Это же язык Lua.
Автор: egor230
« : Сентябрь 20, 2017, 04:57:37 pm »

Sektor Вы гений!!!
Второй параметр отвечает за тип пикапа!!!!!
Вот они.
Код: HTML5
  1. 1 PICKUP_ IN_ SHOP      Оружие / предметный пикап со стоимостью        Время респауна ~ 5 с ( см. Ниже стоимость)
  2. 2 PICKUP_ ON_ STREET    Оружие / предметный пикап  Время респауна ~ 30 с, расстояние респауна ~ 15 м
  3. 3       PICKUP_ ONCE    Оружие / предметный пикап  Одноразовый пикап, не респаун
  4. 4       PICKUP_ ONCE_ TIMEOUT   Оружие / предметный пикап  Одноразовый пикап, не воспаляется, исчезает в 20-е годы
  5. 5       PICKUP_ ONCE_ TIMEOUT_ SLOW     Оружие / предметный пикап  Одноразовый пикап, не воспламеняется, исчезает в 120-х годах
  6. 6       PICKUP_ COLLECTABLE1    Скрытый прием пакетов
  7. Ведет себя точно так же, как пакет, включающий обновление статистики и денежное вознаграждение
  8. 7       PICKUP_ IN_ SHOP_ OUT_ OF_ STOCK        Нет на складе        Объектная модель затемненная, недоступная
  9. 8       PICKUP_ MONEY   Денежный пикап     Деньги фактически не добавлены, но диалог денег и звуковые игры (деньги могут быть добавлены с использованием 032B ), одноразовый пикап, не возрождается, исчезает через 30 секунд
  10. 9       PICKUP_ MINE_ НЕАКТИВНО        Неактивный мой     Не взаимодействуя ни с чем, если игрок находится на ногах, изменения типа пикапа до 10 раз, когда игрок находится на любом транспортном средстве
  11. 10      PICKUP_ MINE_ ОХРАНА      Вооруженная шахта       Любой пикап, порожденный этим типом, автоматически изменяет тип 9, этот тип применяется только тогда, когда тип пикапа изменяется с 9 до 10 - самодеструкция в ~ 10 секунд, взрывается при контакте с любым транспортным средством, не возникает
  12. 11      PICKUP_ NAUTICAL_ MINE_ INACTIVE        Близость бомбы     Самолески в ~ 10 секунд, взрывается при контакте с транспортным средством игрока, может плавать над водой, но оружие гало не плавает с объектом, не возрождается
  13. 12      PICKUP_ NAUTICAL_ MINE_ ОХРАНА    Близость бомбы     Самолески в ~ 10 секунд, взрывается при контакте с транспортным средством игрока, может плавать над водой, но оружие гало не плавает с объектом, не возрождается
  14. 13      PICKUP_ FLOATINGPACKAGE Автомобильный пикап   Проехать через него, чтобы поднять его, не может быть поднято пешком, объектная модель опускается по земле, может плавать только по воде, но оружие гало не плавает с объектом, не возрождается
  15. 14      PICKUP_ FLOATINGPACKAGE_ FLOATING       Автомобильный пикап   Проехать через него, чтобы забрать его, не может быть поднят пешком, может плавать на воде, но оружие гало не плавает с объектом, не возрождается
  16. 15      PICKUP_ ON_ STREET_ SLOW        Оружие / предметный пикап  Время респауна ~ 30 с, расстояние респауна ~ 15 м
  17. 16      PICKUP_ ASSET_ REVENUE  Недвижимость        unpickable
  18. 17      PICKUP_ PROPERTY_ LOCKED        Недвижимость        unpickable
  19. 18      PICKUP_ PROPERTY_ Продается    Недвижимость        Нажмите кнопку ACTION, чтобы поднять его; Если на миссии нажатие клавиши ACTION отобразит окно справки с ключом GXT PROP_2и не позволит вам его поднять
  20.  
Это очень поможет нубам вроде меня!
Весь день почти мучился с ним, а Вы Вашим советом просветили мой ум. Спасибо Вам огромное за это.
Пожалуйста, если Вас не затруднит скиньте текстовой файл со своим функциями.
Думает будет гораздо сложнее создать пикап.
Скажите, пожалуйста, сколько переменных в vice lua, тоже 16? Как и в cleo.
Автор: Sektor
« : Сентябрь 20, 2017, 03:39:59 pm »

Цитировать
  if  IsPickupPickedUp(hPickupWpn) then DestroyPickup(hPickupWpn)
  GivePlayerWeapon(PLAYER_CHAR, 23, 100) -- дать игроку uzi с 100 патронами.

Этот код не нужен.  Достаточно этого: CreateWeaponPickup(282, 23, 100, 85.0, -853.8, 10.3)   
Только вот, по играйте со вторым параметром, там где 23, по экспериментируйте. Я точно не могу вспомнить (так как это было давно, сложно что припомнить сейчас), но там кажется был какой-то параметр который отвечал за появление и.т.п.
Автор: egor230
« : Сентябрь 20, 2017, 08:04:19 am »

Благодарю Вас уважаемый Sektor за уникальную возможность общение с профессиональным программистом на этот замечательном форуме.
Только лишь истинный гений, постоянно сомневается в своем интеллекте, что толкает его развивать, в отличии от дурака.
Спасибо огромное за Ваш ответа на мой банальный вопрос, он поможет другим новичкам быстрее разобраться в vice lua.
У меня наконец-то получилось создать пикап узи- Ура. Но игрок не может его никак взять. Бился, чтобы решить эту проблему, так не смог решить ее.
Информации по vice lua в Интернете почти нет, за исключением Вашего уникального в своем роде форума. Помогите мне, пожалуйста, разобраться.   
Код: Javascript
  1. function MainThread()
  2.   CameraFade(0, true)
  3.   RequestCollision(83.0, -849.8)
  4.   SetRenderingPosition(83.0, -849.8, 9.3)
  5.   RequestModel(282);     -- uzi
  6.  local hPickupWpn = CreateWeaponPickup(282, 23, 100, 85.0, -853.8, 10.3)  
  7.   if  IsPickupPickedUp(hPickupWpn) then DestroyPickup(hPickupWpn)
  8.   GivePlayerWeapon(PLAYER_CHAR, 23, 100) -- дать игроку uzi с 100 патронами.
  9.  ReleaseModel(282) -- RELEASE uzi
  10.   end
Автор: Sektor
« : Сентябрь 19, 2017, 11:36:19 pm »

Цитировать
Ваш светлый ум, может раздражает мой тупизм.
Мой ум оставляет, желать лучшего, по крайне мере я не доволен  ;D. По поводу тупизма, ну я так не считаю. Вы не много, не дочитали об создание пикап-вэпэнов:
Создает пикап-оружие, ID модели задается именно с default.ide. Тип пикапа из SCM, кол-во патронов - ammo и координаты.

Т.е, для этого инклуд лист не используется. Уже для вооружения, все есть. Достаточно указать ID модели, вы его можете найти в default.ide.
Автор: egor230
« : Сентябрь 19, 2017, 11:03:56 am »

Здравствуйте, уважаемый Sektor.
Счастлив, несмотря на свои проекты, находите время меня отвечать.
Ваш светлый ум, может раздражает мой тупизм.
Лишь как рядовой пользователь, пытаюсь разобраться.
Ваши ответы помогут и другим, пользователям разобраться в Вашем уникальным движке.
Пытаюсь добавить пикап узи это то с чего начинаю.
Ничего не получилось. Пожалуйста, подскажите где ошибся?
 Добавил в инклуд  лист модель узи.
Код: HTML5
  1. -- Объявляем список объектов.
  2. function INIT_DEFINE_OBJECTS()
  3.                  DEFINE_OBJECTS(6)
  4.                  DEFINE_OBJECT("HEALTH");       -- ID 0
  5.                  DEFINE_OBJECT("GASGRENADE");   -- ID 1
  6.                  DEFINE_OBJECT("ADRENALINE");   -- ID 2
  7.                  DEFINE_OBJECT("BODYARMOUR");   -- ID 3
  8.                  DEFINE_OBJECT("INFO");         -- ID 4
  9.                  DEFINE_OBJECT("BRIEFCASE");    -- ID 5
  10.                  DEFINE_OBJECT("UZI");          -- ID 6
  11. end
  12.  
Создал пикап.
Код: HTML5
  1.  
  2. local hPickupWpn = CreateWeaponPickup(uzi_282, 23, 100, 85.0, -853.8, 9.3)
  3.  

Добавил условие.
Код: Javascript
  1.  
  2.  
  3. function MainThread()
  4.   CameraFade(0, true)
  5.   RequestCollision(83.0, -849.8)
  6.   SetRenderingPosition(83.0, -849.8, 9.3)
  7.  
  8.  local hPickupWpn = CreateWeaponPickup(uzi_282, 23, 100, 85.0, -853.8, 9.3)
  9.   ON_MISSION = 0
  10.   MISSION_COMPLETE = 0
  11.  
  12.   PLAYER_CHAR = CreatePlayer("player", 83.0, -849.8, 9.3) -- Создание игрока
  13.   PLAYER_ACTOR = EmulatedActorFromPlayer(PLAYER_CHAR)     -- Получение актера из игрока.
  14.   SetGameClock(22, 0)
  15.   SetWantedMax(0)
  16.   Wait(1000)
  17.   CameraFade(2000, false)
  18.   SetPlayerMoney(PLAYER_CHAR, 100)-- Дать игроку
  19.   SetPlayerArmour(PLAYER_CHAR, 100) -- Игроку PLAYER_CHAR ставим 100 брони
  20.   UpdateMissions()
  21.   RequestModel(282);     -- uzi
  22.   RequestModel(6);
  23.   RequestModel(4);
  24.   RequestModel(191);
  25.   LoadRequestedModels();
  26.   if IsPickupPickedUp(hPickupWpn) then
  27.   GivePlayerWeapon(PLAYER_CHAR, 23, 100) -- дать игроку uzi с 100 патронами.
  28. end
  29. end
  30.  
  31.  
Итог, где-то есть ошибка. Помогите мне, пожалуйста, уважаемый Sektor.