Последние сообщения

Страницы: [1] 2 3 ... 10
1
Идеи / Re: Зеркало заднего вида
« Последний ответ от Shagg_E Февраль 18, 2020, 01:01:18 am »
врятли это исходники именно этого мода, этот мод 2players делал мой товарищ Павел Попов
А где он обитает? Есть в Discord, например?
2
Идеи / Re: Зеркало заднего вида
« Последний ответ от Saint Февраль 17, 2020, 11:08:35 pm »
Видимо там ответы на все вопросы. Вроде эти исходники https://github.com/gtco-op/vc-coop

врятли это исходники именно этого мода, этот мод 2players делал мой товарищ Павел Попов
3
Идеи / Re: Зеркало заднего вида
« Последний ответ от Shagg_E Февраль 13, 2020, 01:13:25 pm »
Там еще в комментах под видео дали ссылку на актуальную версию коопа: https://www.moddb.com/mods/vice-city-2-players-mod
4
Идеи / Re: Зеркало заднего вида
« Последний ответ от xanser Февраль 13, 2020, 04:31:34 am »
Видимо там ответы на все вопросы. Вроде эти исходники https://github.com/gtco-op/vc-coop
5
Программирование / Re: Написание плагина. Настройка проекта
« Последний ответ от egor230 Февраль 11, 2020, 12:31:27 pm »

Хотел написать миссию “Вечеринка” на чистом с++ sdk plugin, чтобы лучше понимать, как там все устроено. Какой принцип? Запускается из основного потока, независимый поток, чтобы можно было использовать задержки, аналог wait. Вся миссия находится в бесконечном цикле? пока флаг миссии не будет изменён. Но всё вылетает, как только игрок находится на маркере. С помощью тестов установил, что причина вылета происходит из-за проверки, находится ли на точке пешком в радиусе. Как исправить эту ситуацию? Подскажите, пожалуйста. Самое интересное, что все раньше работало нормально.

Ошибка


Код: Javascript
  1.  
  2.         // 1 этап.
  3.         while (getflagmission()) {this_thread::sleep_for(chrono::milliseconds(10));
  4.         if (ped_in_point(player, 95.4, -1136.2, 10.5, 3.0,3.0, 2.0) && !player->m_bInVehicle){// если в точке и не в авто.
  5.                 remove_sphere_and_blip(marker, sphere);// удалить маркер и сферу.
  6.  
Вот как выглядит вся миссия

Код: Javascript
  1. void mission(){ CPed* player = FindPlayerPed();// найти игрока
  2.         static int marker, sphere; //id маркера.
  3.         Command<COMMAND_SET_PLAYER_COORDINATES>(CWorld::PlayerInFocus, 118.0, -825.9, 10.5);
  4.         Command<COMMAND_SET_PLAYER_HEADING>(CWorld::PlayerInFocus, 54.0);
  5.         CVehicle* car = createcar(MODEL_ANGEL, 123.8, -810.9, 10.5, 320.0); // создать авто
  6.  
  7.         Command<COMMAND_DO_FADE>(1500, 1);// просветление.
  8.         CMessages::AddMessageJumpQ(L"~r~Go get some new threads from Rafael's clothes shop", 5000, 1);// вывести сообщение на экран.
  9.         create_blip_and_sphere(marker, sphere, 95.4, -1136.2, 10.5);// создать маркер на карте и создать сферу.
  10.  
  11.         // 1 этап.
  12.         while (getflagmission()) {this_thread::sleep_for(chrono::milliseconds(10));
  13.         if (ped_in_point(player, 95.4, -1136.2, 10.5, 3.0,3.0, 2.0) && !player->m_bInVehicle){// если в точке и не в авто.
  14.                 remove_sphere_and_blip(marker, sphere);// удалить маркер и сферу.
  15.                 Command<COMMAND_SWITCH_WIDESCREEN>(CWorld::PlayerInFocus, 1);// вкл/выкл широкий экран.
  16.                 Command<COMMAND_DO_FADE>(1500, 0);
  17.                 this_thread::sleep_for(chrono::milliseconds(2500));
  18.                 set_skin(player, "PLAYER9");
  19.                 Command<COMMAND_POINT_CAMERA_AT_POINT>(92.39, -1131.74, 16.724, 2);// переместить камеру в координатах.  
  20.                 Command<COMMAND_SET_FIXED_CAMERA_POSITION>(91.813, -1131.116, 17.251, 0.0, 0.0, 0.0); //уст камеру в координатах.
  21.                 Command<COMMAND_DO_FADE>(1500, 1);
  22.                 create_blip_and_sphere(marker, sphere, -251.2, -1360.8, 8.1);// создать маркер на карте и сферу.
  23.  
  24.                 this_thread::sleep_for(chrono::milliseconds(1500));
  25.                 Command<COMMAND_RESTORE_CAMERA>();
  26.                 Command<COMMAND_RESTORE_CAMERA_JUMPCUT>();      // восстановить камеру.
  27.                 Command<COMMAND_SWITCH_WIDESCREEN>(CWorld::PlayerInFocus, 0);// вкл/выкл широкий экран.
  28.                 CMessages::AddMessageJumpQ(L"~r~Get to then Colonel's boat", 5000, 1);// вывести сообщение на экран.
  29.                 break;}
  30.         };
  31.         CPed* ped;
  32.         // 2 этап.
  33.         while (getflagmission()) {this_thread::sleep_for(chrono::milliseconds(10));
  34.         if (ped_in_point(player, -251.2, -1360.8, 8.1, 3.0, 3.0, 2.0 && !player->m_bInVehicle)) {// если в точке и не в авто.
  35.                 remove_sphere_and_blip(marker, sphere);// удалить маркер и сферу.
  36.                 Command<COMMAND_DO_FADE>(1500, 0);
  37.                 this_thread::sleep_for(chrono::milliseconds(2500));
  38.                 Command<COMMAND_SET_PLAYER_COORDINATES>(CWorld::PlayerInFocus, -241.7, -1362.3, 8.1);
  39.                 Command<COMMAND_SET_PLAYER_HEADING>(CWorld::PlayerInFocus, 269.0);
  40.                 CMessages::AddMessageJumpQ(L"~r~Take the Colonel's daughter to the Pole Position club", 5000, 1);// вывести сообщение на экран., 3000, 1);// вывести сообщение на экран.
  41.                 create_blip_and_sphere(marker, sphere, 100.7, -1477.6, 10.1);// создать маркер на карте, создать сферу
  42.  
  43.                 ped = create_spec_ped("IGMERC", -241.7, -1360.3, 8.1); // создать спец педа.    
  44.                 ped->SetObjective(OBJECTIVE_SET_LEADER, player);
  45.                 Command<COMMAND_DO_FADE>(1500, 1);// просветление.
  46.                 break;  }
  47.         };
  48.  
  49.         // 3 этап.
  50.         while (getflagmission()) {      this_thread::sleep_for(chrono::milliseconds(10));
  51.         if (ped_in_point(player, 100.7, -1477.6, 10.1, 3.0, 3.0, 2.0)) {// если в точке и не в авто.
  52.                 remove_sphere_and_blip(marker, sphere);// удалить маркер и сферу.
  53.                 miss(100);      break;  }      
  54.         if (!ped->m_fHealth > 0.10f){ CMessages::AddMessageJumpQ(L"~r~Mercedes is dead", 5000, 1);// вывести сообщение на экран
  55.             fail_mission();     break;  }
  56.         };
  57.         ped->SetObjective(OBJECTIVE_LEAVE_CAR); // выйти из авто.
  58.         while(ped->m_bInVehicle) { this_thread::sleep_for(chrono::milliseconds(10)); };
  59.         destroy();// удалить маркер и сферу.
  60. };
  61.  

Вот исходник. Есть ли функция для проверки нахождения педа в точке с радиусом?
6
xanser согласен с Вами. Потихоньку набираюсь опыта. Плагин существует благодаря sdk, на котором пишу функции.
Может кому-то будет он интересен. Конечно, плагин ещё нужно дорабатывать, постоянно тестировать. Моя мечта сделать, как можно более простой и лёгкой инструмент для написания миссии, аналог Moonloader только для gta vc. Вот  миссия “вечеринка ” написана на lua.  https://www.youtube.com/watch?v=PnulI-BlR1w&feature=youtu.be
7
Идеи / Re: Зеркало заднего вида
« Последний ответ от Shagg_E Февраль 10, 2020, 11:33:37 pm »
https://www.youtube.com/watch?v=S33EIVrj-o0
8
Справочная информация / Re: Различные скрипты, программы и т.д
« Последний ответ от daniel_360 Февраль 09, 2020, 07:32:16 pm »
Кто нибудь знает плагин, который в меню игры делает разные картинки, т.е. если мы зашли в меню, то у нас будет не одна картинка, а несколько. Они будут меняться
9
А как  изменить  значения адрес памяти 0x41079F в sdk plugin, всегда понять на маленькой примере.

kenking выше отвечал: http://forum.gtabuilder.ru/index.php?topic=502.msg3856#msg3856

Не все подряд имеет смысл делать через lua. В данном случае стоит сделать отдельный плагин на с++ и загружать через какой-нибудь loader до начала игры, чтобы инициализация всех первоначальных параметров уже подхватила изменения. Ты проверь для начала увеличение Streaming Memory через Limit Adjuster, а то может тебе оно и не надо. А для работы с адресами памяти в lua может и есть какие-то функции, этого я уже не знаю.

И ты вот скидываешь огромные куски кода на lua, но я не вижу на форуме ни одного человека, который был бы в теме этого языка. Sektor делал целый раздел Vice Lua, может туда лучше писать, хотя сомневаюсь, что кто-то тебе подскажет хоть что-то. Пока интересующихся этим особо нет.
10
Спасибо большое вам xanserза ваш ответ.

Lua  умеет вызывать функции на с++,  передача аргументов и возврат результатов происходит через стек.

  А как  изменить  значения адрес памяти 0x41079F в sdk plugin, всегда понять на маленькой примере.

подскажите, пожалуйста, функцию аналог скриптовой команды Command<COMMAND_LOCATE_CHAR_ANY_MEANS_3D>(CPools::GetPedRef(ped), x, y, z, rx, ry, rz); потому что из-за неё происходит вылет.

 Сейчас переписываю миссию "Вечеринка" на Lua, без кат сцен.

 Вот как выглядит миссия.

Код: Javascript
  1.  
  2. require("lualoader/mod")
  3.  
  4. function main()
  5. while lualoader == nil do wait()
  6.  player = findplayer()-- получить игрока
  7.  if Star_mission_marker(9, 118.0, -825.9, 10.5) -- создать маркер миссии на карте.
  8.  then  showtext(" patry", 500,1)-- вывод названия миссии.
  9.   fade(1,1100) --просветления, 600 время.  
  10.  setcord(player, 118.0, -825.9, 10.5)
  11.  setangle(player, 54.0 ) -- установить угол для педа.
  12.  bike = Createcar(MODEL_FREEWAY, 123.8, -810.9, 10.5 )
  13.  setangle(bike,  320) -- установить угол для байка.
  14.  blip = createmarker(1,2, 95.4, -1136.2, 10.5) -- создать маркер на карте. Принимает тип, размер, координаты, id маркера.
  15.  setsizemarker(blip,3)--уст размер маркера. Принимает маркер, значение его размера
  16.  sp = create_sphere(95.4, -1136.2, 10.5,3.0)-- создать сферу.
  17.  
  18.   printmessage("~r~Go get some new threads from Rafael's clothes shop",3000,1)  
  19.  while true == getflagmission() do  wait() -- цикл пока статус миссии не изменится.
  20.  local b, mycar = incar(player)
  21.   if ped_in_point_in_radius(player,95.4, -1136.2, 10.5, 2.0,2.0,2.0 ) and b == false
  22.  then  remove_blip(blip)
  23.  remove_sphere(sp)-- удалить сферу.
  24.   fade(0,1100) --затенение, 600 время.
  25.    
  26.   set_widescreen(1)--
  27.   set_skin(player, "PLAYER9")
  28.  setcord(player, 95.5, -1135.8, 10.5 )
  29.  setangle(player, 42.0 ) -- установить угол для педа.
  30.   fade(1,1100) --просветления, 600 время.  
  31.    set_camera_position(91.813, -1131.116, 17.251, 0.0, 0.0, 0.0) --уст камеру в координатах.
  32.    camera_at_point(92.39, -1131.74, 16.724, 2) --переместить камеру в координатах.
  33.   wait(4000)  
  34.   restore_camera()-- восстановить камеру.
  35.   set_widescreen(0)
  36.  break
  37.  end
  38.   end  
  39.   printmessage("~r~Get to then Colonel's boat",3000,1)
  40.   local blip1 = createmarker(1,2, -251.2, -1360.8, 8.1 ) -- создать маркер на карте. Принимает тип, размер, координаты, id маркера.
  41.   setsizemarker(blip1,3)--уст размер маркера. Принимает маркер, значение его размера
  42.   local sp1 = create_sphere(-251.2, -1360.8, 8.1 ,3.0,3.0,2.0)-- создать сферу.
  43.   while true == getflagmission() do  wait() -- цикл пока статус миссии не изменится.  
  44.   if ped_in_point_in_radius(player,-251.2, -1360.8, 8.1, 2.0,2.0,2.0 ) --and b == false
  45.  then  remove_blip(blip1)
  46.  remove_sphere(sp1)-- удалить сферу.
  47.   printmessage("You are on the site",3000,1)  
  48.   fade(0,1100) -- тьма, 600 время.  
  49.   wait(2500)  
  50.  setcord(player, -241.7, -1362.3, 8.1 )
  51.  setangle(player, 269.0 ) -- установить угол для педа.
  52.   ped = create_spec_ped("IGMERC", -241.7, -1360.3, 8.1 )-- создать педа на координатах.
  53.   wait(2500)  
  54.   fade(1,1100) --просветления, 600 время.    load_scene(-236.6, -1374.6, 10.0)
  55.   follow_the_leader(ped)
  56.   printmessage("~r~Take the Colonel's daughter to the Pole Position club", 3000,1)  
  57.   break
  58.  end
  59.   end    
  60.   local blip2 = createmarker(1,2,  100.7, -1477.6, 10.1  ) -- создать маркер на карте. Принимает тип, размер, координаты, id маркера.
  61.   setsizemarker(blip2,3)--уст размер маркера. Принимает маркер, значение его размера
  62.   local sp2 = create_sphere( 100.7, -1477.6, 10.1, 3.0,3.0,2.0)-- создать сферу.
  63.   while true == getflagmission() do  wait() -- цикл пока статус миссии не изменится.  
  64.   if ped_in_radius(player, 100.7, -1477.6, 10.1 , 2.0,2.0,2.0 ) --and b == false
  65.  then  remove_blip(blip2)
  66.  remove_sphere(sp2)-- удалить сферу.
  67.  exitcar(ped)
  68.  Remove(ped)
  69.  wait(1000)
  70.  miss(1000)-- миссия выполнена сколько денег получено за выполнение.
  71.   break
  72.   end
  73.  if not player_defined(ped) then   printmessage("mesgess dead", 3000,1)  end_mission("mission failed!")
  74. break
  75.  end
  76.   end
  77.   destroy()-- удалить все объекты, которые были созданы скриптом.     
  78.   end
  79.  end
  80.  end
  81.  
Страницы: [1] 2 3 ... 10