|
|
Модератор форума: GUNNER161, Panikaha |
Форум РЕДАКТОР - ArmA 3 Скрипты Кастомная озвучка при нажатии клавиш (Нуждаюсь в помощи от опытных ребят) |
Кастомная озвучка при нажатии клавиш |
› Среда
› 20.04.2016
› 20:48
› Сообщение #
Здравствуйте, возникла идея, хотелось бы очень реализовать в своей миссии. Суть идеи такова: Игрок в мп, при нажатии определённых клавиш, пускай будет Custrombutton1 and e.t.c, произносит это непосредственно от своего фэйса, соответственно со своими выражениями готовыми в .ogg, т.е по сути аналог рации (мало боеприпасов и т.д) только свой. Есть ли где-то подобное? Уже второй день найти не могу, то ли совсем ослеп, то ли действительно подобного готового скрипта by кто-нибудь нету. Возможно ли это?
PS: Скрипты еще только осваиваю. Добавлено (20.04.2016, 20:48) |
› Среда
› 20.04.2016
› 22:45
› Сообщение #
|
› Среда
› 20.04.2016
› 23:10
› Сообщение #
Что так, что через саунд, ogg нормально конвертнул иначе проигрывается.
Description: class CfgSounds { sounds[] = {}; class help_2 { name = "help_2"; sound[] = {"\help_2.ogg", 0.8, 1}; titles[] = {}; }; }; Init_client: думал в эту часть пихнуть : //hide bodies player addEventHandler ["Killed", {_this execVM "scripts\killed.sqf";}]; killed.sqf: _unit = _this select 0; playsound3d["help_2",_unit,false,getposASL _unit,1,1,25]; sleep 20; hideBody (_this select 0); sleep 3; deleteVehicle (_this select 0); не воспроизводит, где я косякнул, понять не могу, да, в скриптах 2+2 для меня пока тяжеловато, я только начал. |
› Четверг
› 21.04.2016
› 00:03
› Сообщение #
|
› Четверг
› 21.04.2016
› 00:20
› Сообщение #
Понял, спасибо. А вы не подскажете, не существует ли интерактивного меню для звуков? Например клац на заданную кнопку и он воспроизводит закрепленные звуки. Просто вариант с Sound в документах, аля свои сообщения в рации не самый оптимальный вариант.
|
› Четверг
› 21.04.2016
› 00:40
› Сообщение #
не встречал такого. но и не искал. и не представляю себе такого меню, звуков в Арме несколько тысяч.
|
› Четверг
› 21.04.2016
› 00:43
› Сообщение #
Именно со своими звуками, по биндам:) Нажимаешь кнопку, например и персонаж выдает звук
|
› Четверг
› 21.04.2016
› 00:45
› Сообщение #
запускать файл или функцию по нажатию клавиши можно использовав "Обработчик события" - хандлер дисплея 46
https://community.bistudio.com/wiki/displayAddEventHandler в файле(функе) пишется фильтр, определяющий нажатую клавишу. примерно так http://arma.at.ua/forum/46-4158-62106-16-1276662294 |
› Четверг
› 21.04.2016
› 01:39
› Сообщение #
Попробовал запилить то, что делал выше, в итоге ломается целиком скрипт, и даже трупы не исчезают.
|
› Четверг
› 21.04.2016
› 20:21
› Сообщение #
чего куда залил? там только пример .
|
› Четверг
› 21.04.2016
› 21:49
› Сообщение #
Да у меня и вовсе где-то косяк, теперь не читается даже скрипт killed.sqf
Код Description.ext OverviewText = ""; OverviewPicture = "logo1.jpg"; author="Horned2k"; OnLoadName = "CUP_DEATHMATCH"; OnLoadMission = "Created by Horned2k"; loadscreen = "logo1.jpg"; joinUnassigned = 0; disabledAI=1; showHUD[] = { true, // Scripted HUD (same as showHUD command) true, // Vehicle + soldier info false, // Vehicle radar [HIDDEN]false, // Vehicle compass [HIDDEN]false, // Tank direction indicator true, // Commanding menu false, // Group Bar false, // HUD Weapon Cursors }; respawn = "BASE"; respawnDelay = 13; class Header { gameType = DM; minPlayers = 1; maxPlayers = 10; }; class Params { class Duration { title = "Time Limit"; values[] = {1800, 2400, 3000, 3600}; texts[] = {"30 minutes", "40 minutes", "50 minutes", "60 minutes"}; default = 1800; }; class TerrainDetail { title = "Terrain Detail (lower=better FPS)"; values[] = {12.5, 25, 50}; texts[] = {"High", "Normal", "Low - no grass"}; default = 25; }; class ScoreLimit { title = "Score needed for Victory"; values[] = {2,10,30,50,100,150,250,500,1000}; texts[] = {"2","10","30","50","100","150","250","500","1000"}; default = 30; }; }; class CfgMusic { tracks[]={}; class Song1 { name = "banditskaya"; sound[] = {"\music\song1.ogg", db+0, 1.0}; }; }; class CfgSounds { sounds[] = {}; class one_go { name = "one_go"; sound[] = {"one.ogg", 0.8, 1}; titles[] = {}; }; class two_go { name = "two_go"; sound[] = {"two.ogg", 0.8, 1}; titles[] = {}; }; class ckibrki { name = "ckibrki"; sound[] = {"ckibrki.ogg", 0.8, 1}; titles[] = {}; }; class help_2 { name = "help_2"; sound[] = {"help_2.ogg", 0.8, 1}; titles[] = {}; }; }; #define true 1 #define false 0 #define FontM "PuristaBold" #define CT_BUTTON 1 #define CT_STATIC 0 #define ST_LEFT 0x00 #define ST_CENTER 0x02 #define ST_PICTURE 48 #define CT_LISTBOX 5 #define ST_BACKGROUND 80 #define LB_TEXTURES 0x10 #define LB_MULTI 0x20 class BG { idc = -1; type = CT_STATIC; style = ST_LEFT; text = ""; font = FontM; sizeEx = 0.1; colorBackground[] = { 0, 0, 0, 0.9 }; colorText[] = { 0, 0, 0, 1 }; x = safezoneXAbs; y = safezoneY; w = safezoneWAbs * 0.75; h = safezoneH * 0.34; }; class LBL { idc = -1; type = CT_STATIC; style = ST_CENTER; text = ""; font = FontM; sizeEx = 0.2; colorBackground[] = { 0.02, 0.2, 0.05, 0 }; colorText[] = { 1, 1, 1, 1 }; x = safezoneXAbs; y = safezoneY; w = safezoneWAbs * 0.75; h = safezoneH * 0.34; }; class ArmAhu_CountDown { idd = 1820; movingEnable = true; controlsBackground[] = { }; objects[] = { }; controls[] = { Label2, Label3, LabelGo, Piros, Feher, Zold }; class Piros: BG { idc = 821; y = safezoneY; }; class Feher: BG { idc = 822; y = safezoneY + (safezoneH / 3); }; class Zold: BG { idc = 823; y = safezoneY + ((safezoneH / 3) * 2); }; class Label2: LBL { idc = 831; y = safezoneY + 0.05; }; class Label3: LBL { idc = 832; y = safezoneY + (safezoneH / 3); }; class LabelGo: LBL { idc = 833; y = (safezoneY + ((safezoneH / 3) * 2)) - 0.05; }; }; #include "BFKC\fus_defines.hpp" #include "BFKC\fus_KC.hpp" Вставлен килкам готовый Код Init.sqf //flag JIP players isJIPplayer = false; if ( (not (isServer)) and (isNull player) ) then { isJIPplayer = true; }; a_RIFLES = []; RIFLE_CURSORS = ["arifle", "srifle", "mg"]; a_PISTOLS = []; //Build a list of weapons in each category by listing config entries for "_i" from 0 to (count (configFile >> "CfgWeapons") - 1) do { _entry = (configFile >> "CfgWeapons") select _i; if (isClass _entry) then { _entry = configName _entry; _cursor = getText (configfile >> "CfgWeapons" >> _entry >> "cursor"); _model = toArray getText (configfile >> "CfgWeapons" >> _entry >> "model"); //check if it's a rifle if ((_cursor in RIFLE_CURSORS) and (count _model > 0)) then { a_RIFLES = a_RIFLES + [format ["%1", _entry]]; }; //check if it's a pistol if ((_cursor == "hgun") and (count _model > 0)) then { a_PISTOLS = a_PISTOLS + [format ["%1", _entry]]; }; }; }; a_WEAPONS = a_RIFLES + a_PISTOLS; //Pick weapon set switch (paramsArray select 1) do { case 1: { a_WEAPONS = a_PISTOLS; }; case 2: { a_WEAPONS = a_RIFLES; }; }; //Set terrain detail setTerrainGrid (paramsArray select 2); //respawn markers for hiding RESPAWN_MARKERS = ["respawn_guerrila10", "respawn_guerrila9", "respawn_guerrila8", "respawn_guerrila7", "respawn_guerrila6", "respawn_guerrila5", "respawn_guerrila4", "respawn_guerrila3", "respawn_guerrila2", "respawn_guerrila1", "respawn_guerrila"]; //if not server or if host/player if ( (not (isServer)) or (not (isNull player)) ) then { execVM "scripts\init_client.sqf"; }; if (isServer) then { While {true} do { if (time > paramsArray select 0) then { gameover = true; publicVariable "gameover"; if (not (isNull player)) then { execVM "scripts\gameover.sqf"; }; sleep 10; endMission "END1"; }; }; }; не могу найти косяки, не вопспроизводит скрипт killed Код init_client.sqf //task _task_killemall = player createSimpleTask ["12323"]; _task_killemall setSimpleTaskDescription ["132313123213", ""]; //INTRO titleText ["", "BLACK OUT", 0]; titleText ["", "BLACK IN", 2]; disableSerialization; { _x setMarkerAlpha 0; } forEach RESPAWN_MARKERS; sleep 0.1; //Wait for player object if (isNull player) then { waitUntil { !(isNull player) }; }; if (not isJIPplayer) then { disableUserInput true; _open = createDialog "ArmAhu_CountDown"; setMousePosition [0, 0]; _ctrlred = ((findDisplay 1820) displayCtrl 821); _ctrlwhite = ((findDisplay 1820) displayCtrl 822); _ctrlgreen = ((findDisplay 1820) displayCtrl 823); sleep 2; ctrlSetText [831, "ODIN"]; _ctrlred ctrlSetBackgroundColor [0.8, 0.16, 0.218, 1]; sleep 0.1; playSound ["one_go", true]; _ctrlred ctrlSetBackgroundColor [1, 0, 0, 0]; sleep 3; ctrlSetText [832, "DVA"]; _ctrlwhite ctrlSetBackgroundColor [1, 1, 1, 1]; sleep 0.1; playSound ["two_go", true]; _ctrlwhite ctrlSetBackgroundColor [1, 1, 1, 0]; sleep 3; ctrlSetText [833, "LET'S GO COMRADES!"]; _ctrlgreen ctrlSetBackgroundColor [0, 0.56, 0.27, 1]; sleep 0.1; playSound ["ckibrki", true]; _ctrlgreen ctrlSetBackgroundColor [1, 0, 0, 0]; sleep 2; closeDialog 1820; _camera cameraeffect ["terminate", "back"]; _camera camCommitPrepared 0; camDestroy _camera; player switchCamera "INTERNAL"; disableUserInput false; setViewDistance 600; } else { setViewDistance 600; }; //OUTRO "gameover" addPublicVariableEventHandler { execVM "scripts\gameover.sqf"; }; //random weapon execVM "scripts\respawn.sqf"; //random weapon at respawn setup player addEventHandler ["Respawn", {_this execVM "respawn.sqf";}]; //hide bodies player addEventHandler ["killed", {_as = _this execVM "scripts\killed.sqf"}]; //make everyone enemy GUERRILA setFriend [EAST, 0]; GUERRILA setFriend [GUERRILA, 0]; //int call compile preProcessFileLineNumbers "BFKC\bfkc_functions.sqf"; execVM "BFKC\bfkc_init.sqf"; nil = [] execVM "jumper.sqf"; как не пытался переделать не получается заставить воспроизводить звук, а теперь и вовсе скрипт не работает Код killed.sqf _unit = _this select 0; playsound3d ["help_2",_unit, false ,getpos _unit, 1, 1, 1000]; sleep 20; hideBody (_unit select 0); sleep 3; deleteVehicle (_unit select 0); sleep 20; hideBody (_unit select 0); sleep 3; deleteVehicle (_unit select 0); В общем я слишком еще дуб, не могу найти причину |
| |||
| |||
Чат сайта |