saska Опубликовано 17 сентября, 2011 Жалоба Поделиться Опубликовано 17 сентября, 2011 Спасибо jONES, я искал не там Ссылка на комментарий Поделиться на другие сайты Поделиться
saska Опубликовано 18 сентября, 2011 Жалоба Поделиться Опубликовано 18 сентября, 2011 (изменено) Добрый день, у меня вопрос: в МЕ возможно задать конкретную высоту обьекта(например 10 метров над или под землёй) чтобы он там был в любом случае, я смотрел на главную базу СМаринов в кампании ДК, там интересно всё сделано и я так тоже хочу сделать но зданий не хватает. И ещё такой вопрос: Главная база тау меняет модель после постройки определённого здания, а гл. база сестёр бытвы меняет свой внешний вид только после аддона. можно ли както сделать смену вида базы сестёр после постройки определённого здания? Например: модель меняется после второго аддона, а я хочу сделать чтобы изменения были сразу после постройки каковата здания(без улутшений), например машинного цеха. Изменено 18 сентября, 2011 пользователем saska Ссылка на комментарий Поделиться на другие сайты Поделиться
saska Опубликовано 19 сентября, 2011 Жалоба Поделиться Опубликовано 19 сентября, 2011 Добрый день, у меня вопрос: в МЕ возможно задать конкретную высоту обьекта(например 10 метров над или под землёй) чтобы он там был в любом случае, я смотрел на главную базу СМаринов в кампании ДК, там интересно всё сделано и я так тоже хочу сделать но зданий не хватает. Я понял надо зажать правую кнопку мыши и Shift. короче Shift + ПКМ(без плюса) Ссылка на комментарий Поделиться на другие сайты Поделиться
jONES Опубликовано 19 сентября, 2011 Жалоба Поделиться Опубликовано 19 сентября, 2011 Например: модель меняется после второго аддона, а я хочу сделать чтобы изменения были сразу после постройки каковата здания(без улутшений), например машинного цеха. Можно, нужно переделать OE-код модели здания. Описать новый хардпойнт, который будет отвечать за "обновленный внешний вид". Затем в АЕ-коде (т.е. в корсиксе), машинный цех должен менять этот хардпойнт для базы сестёр. Ссылка на комментарий Поделиться на другие сайты Поделиться
ben Опубликовано 20 сентября, 2011 Жалоба Поделиться Опубликовано 20 сентября, 2011 (изменено) подскажите пожалуйста как вытащить из мода схемы покраски,которые я редактировал?это для того,чтобы засунуть их в новую версию мода(в данном случае Revised 1.56),а не менять цвета вручную Изменено 20 сентября, 2011 пользователем ben Ссылка на комментарий Поделиться на другие сайты Поделиться
jONES Опубликовано 21 сентября, 2011 Жалоба Поделиться Опубликовано 21 сентября, 2011 подскажите пожалуйста как вытащить из мода схемы покраски,которые я редактировал?это для того,чтобы засунуть их в новую версию мода(в данном случае Revised 1.56),а не менять цвета вручную Они сохраняются в папке профиля игрока Profile, в подпапке с названием мода, в подпапке scheme или как-то так Ссылка на комментарий Поделиться на другие сайты Поделиться
chaos2000 Опубликовано 25 сентября, 2011 Жалоба Поделиться Опубликовано 25 сентября, 2011 В сем привет!!! 1) Столкнулся я вот с такими багами мода своего когда играешь Хаосом против ИГ,то ИГ когда захватывает точку использует флаг Хаоса. 2) А у Сестер и ТЭ флаг не отображается просто белый флаг!! Как можно это исправить? Ссылка на комментарий Поделиться на другие сайты Поделиться
saska Опубликовано 25 сентября, 2011 Жалоба Поделиться Опубликовано 25 сентября, 2011 Добрый день, у меня 2 вопроса которые не дают мне продолжить работу с моделями: 1)С какой версии 3д макса надо использовать Santos tool 2 и какие плагины для этого нужны? 2)При Model Exporte у меня вылазит такая ошибка: MAXScript Rollout Handler Exception -- Type error^ Call needs function or class, got: undefined В комплекте с ошибкой-- -- Utility for exporting Models from MAX (and gMAX) -- ©2000-2003 Relic Entertainment Inc. -- include "Startup/RelicFileDateCompare.ms" -- compensate for MaxScript shortcoming (straight from the MaxScript docs on strings) fn uppercase instring = ( local upper, lower, outstring upper = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" lower = "abcdefghijklmnopqrstuvwxyz" outstring = copy instring for i=1 to outstring.count do ( j = findString lower outstring[ i ] if( j != undefined ) do outstring[ i ] = upper[ j ] ) outstring ) -- does a file exist? Compensates for Gmax fn myDoesFileExist filename = ( if doesFileExist filename then ( try ( -- this will except if the file isn't there getFileAttribute filename #readOnly -- file is truely there return true ) catch ( -- file is not there, and gmax lied return false ) ) -- file is not there return false ) -- recursively create a directory fn makeDirRecursive dirname = ( if (dirname.count == 0) then ( return false ) -- check if it exists already if( ( getDirectories dirname ).count != 0 ) then ( return true ) -- strip trailing slash if( dirname[ dirname.count ] == "\\" ) then ( dirname = substring dirname 1 (dirname.count - 1) ) -- extract parent directory and strip trailing slash parentdir = getFilenamePath dirname if (parentdir[ parentdir.count ] == "\\" ) then ( parentdir = substring parentdir 1 ( parentdir.count - 1 ) ) -- check if we were able to create the parents if (makeDirRecursive parentdir == false) then ( return false ) if (myDoesFileExist dirname) then ( return true ) return makeDir dirname ) -- fn isFileReadonly filename = ( if( myDoesFileExist filename ) then ( if( getFileAttribute filename #readOnly ) then ( return true ) ) return false ) -------------------------------------------- -- progress bar global g_WarhammerModelExportProgress global g_WarhammerModelStopExport -- Extensions c_ExportExtension = ".SGM" c_ExporterFilename = "W40KExporter6.dle" -- Folder constants c_RefFile = "REF" c_RefFolder = "REFERENCE\\" c_AnimFolder = "ANIMATIONS\\" c_TexturesFolder = "TEXTURES\\" -- g_FileExtension = "" -- Time comparisons g_NewestDate g_OldestDate g_ExporterDate -- Current export file list g_ExportList = "" -- model name and folder mappings g_ModelName = "" g_DataSrcPath = "" g_IntDataSrcPath = "" g_GenDataSrcPath = "" g_DataPath = "" -------------------------------------------- fn SetExtension = ( -- detect GMAX g_FileExtension = ".max" try ( -- copyFile is not allowed under gmax copyFile "" "" ) catch ( g_FileExtension = ".gmax" ) ) fn SetDataSrcPath filename = ( bFound = false g_DataSrcPath = filename foundIndex = findString filename c_RefFolder if( not foundIndex == undefined ) then ( -- in the reference folder g_DataSrcPath = subString filename 1 ( foundIndex - 1 ) bFound = true ) else ( foundIndex = findString filename c_AnimFolder if( not foundIndex == undefined ) then ( -- in the animation folder g_DataSrcPath = subString filename 1 ( foundIndex - 1 ) bFound = true ) ) return bFound ) fn SetModelName = ( g_ModelName = g_DataSrcPath g_ModelName = substring g_ModelName 1 ( g_ModelName.count - 1 ) g_ModelName = getFilenameFile( g_ModelName ) ) fn SetExportList = ( g_ExportList = #() -- Model REF file for item in getfiles( g_DataSrcPath + c_RefFolder + c_RefFile + g_FileExtension ) do ( append g_ExportList (uppercase ( c_RefFolder + ( getFilenameFile item ) + g_FileExtension ) ) ) -- Animations -- Get the list of directories with animations dirArray = GetDirectories( g_DataSrcPath + c_AnimFolder + "*" ) for d in dirArray do ( join dirArray( GetDirectories( d + "*" ) ) ) -- Get the list of animations in the found directories foundFiles = #() join foundFiles( getFiles( g_DataSrcPath + c_AnimFolder + "*" + g_FileExtension ) ) for d in dirArray do ( join foundFiles( getFiles( d + "*" + g_FileExtension ) ) ) -- Append the relative name of animations to export for f in foundFiles do ( animDirIndex = findString f c_AnimFolder if( not animDirIndex == undefined ) then ( append g_ExportList (uppercase ( substring f animDirIndex -1 ) ) ) ) ) fn SetupScript filename = ( bStatus = true g_FileExtension = "" g_NewestDate = 0 g_OldestDate = 0 g_ExporterDate = 0 g_ExportList = "" g_ModelName = "" g_DataSrcPath = "" g_IntDataSrcPath = "" g_GenDataSrcPath = "" g_DataPath = "" if( SetDataSrcPath( filename ) == false ) then ( bStatus = false ) SetExtension() SetModelName() SetExportList() return bStatus ) fn GetMergeRefFile = ( refFile = undefined -- Get REF file from Reference directory for item in getfiles( g_IntDataSrcPath + c_RefFolder + "*" + c_ExportExtension ) do ( if( ( uppercase( getFilenameFile item ) ) == c_RefFile ) then ( refFile = item ) ) return refFile ) fn GetMergeAnimationList = ( mergeAnimlist = #() -- Get Animation files from Animation directory for item in getfiles( g_IntDataSrcPath + c_AnimFolder + "*" + c_ExportExtension ) do ( append mergeAnimlist item ) return mergeAnimlist ) fn ConvertRelativeSrcNameToFullIntName item = ( animFolderIndex = findString item c_AnimFolder if( not animFolderIndex == undefined ) then ( -- Anim file filename = subString item ( animFolderIndex + c_AnimFolder.count ) -1 -- Sub-folder path = GetFilenamePath( filename ) if( path.count > 0 ) then ( path = substring path 1 ( path.count - 1 ) path = path + "_" ) item = g_IntDataSrcPath + c_AnimFolder + path + GetFilenameFile( filename ) + c_ExportExtension ) else ( -- Ref file item = g_IntDataSrcPath + c_RefFolder + GetFilenameFile( item ) + c_ExportExtension ) return item ) fn CheckForOrphanedFile item = ( found = false for temp in g_ExportList do ( temp = ConvertRelativeSrcNameToFullIntName( temp ) if( item == temp ) then ( found = true exit ) ) if( not found ) then ( print( g_ModelName + ": Removing " + filenameFromPath( item ) + " - matching MAX file not found" ) deleteFile( item ) ) else ( local fileDate = getSortableDate( item ) if( fileDate > g_NewestDate ) then ( g_NewestDate = fileDate ) if( fileDate < g_OldestDate ) then ( g_OldestDate = fileDate ) ) ) rollout g_WarhammerModelExportProgress "Progress" ( progressbar exportprogress "Progress" button cancelexp "Cancel" width:100 align:#center on cancelexp pressed do ( g_WarhammerModelStopExport = true ) ) function ExportModelInternal bForceExport bUpdateUI bSkipReadOnly bExportModel bExportTextures = ( -- Verify that we have a ref.max file if( myDoesFileExist( g_DataSrcPath + c_RefFile + g_FileExtension ) == false ) and ( myDoesFileExist( g_DataSrcPath + c_RefFolder ) == true ) and ( myDoesFileExist( g_DataSrcPath + c_RefFolder + c_RefFile + g_FileExtension ) == false ) then ( titleText = "Warhammer Exporter: " + g_ModelName messageBox( "Unable to find '" + c_RefFile + g_FileExtension + "' file!" ) title:titleText print( titleText + "- Unable to find '" + c_RefFile + g_FileExtension + "' file!" ) return false ) -- Extract the intermediate and final directories from the 'pipeline.ini' g_IntDataSrcPath = w40k_pipeline_sourcetointermediate g_DataSrcPath g_GenDataSrcPath = w40k_pipeline_sourcetogeneric g_DataSrcPath g_DataPath = w40k_pipeline_sourcetofinal g_DataSrcPath if( ( g_IntDataSrcPath == undefined ) or ( g_GenDataSrcPath == undefined ) or ( g_DataPath == undefined ) ) then ( titleText = "Warhammer Exporter: " + g_ModelName messageBox( "Not under a project mapping (pipeline.ini)!\nPlease make sure you have the file in the proper data source!" ) title:titleText print( titleText + "- Not under a project mapping (pipeline.ini)!\nPlease make sure you have the file in the proper data source!" ) return false ) -- strip off the last directory from g_DataPath, because this is the filename now if( g_DataPath[ g_DataPath.count ] == "\\" ) then ( g_DataPath = substring g_DataPath 1 ( g_DataPath.count - 1 ) ) g_DataPath = getFilenamePath g_DataPath -- strip off the last directory from g_GenDataSrcPath, because this is the filename now if( g_GenDataSrcPath[ g_GenDataSrcPath.count ] == "\\" ) then ( g_GenDataSrcPath = substring g_GenDataSrcPath 1 ( g_GenDataSrcPath.count - 1 ) ) g_GenDataSrcPath = getFilenamePath g_GenDataSrcPath -- Check if we can write to the exportfile if (isFileReadonly(g_GenDataSrcPath + g_ModelName + c_ExportExtension)) then ( titleText = "Warhammer Exporter: " + g_ModelName if( bSkipReadOnly == true ) then ( -- ignore this type of error and skip the export print( titleText + "- Read only, skipping file..." ) return true ) else ( fileToOpen = g_GenDataSrcPath + g_ModelName + c_ExportExtension perforceResult = w40k_p4_openoradd fileToOpen if (perforceResult == false) then ( w40k_p4_reset messageBox( "Cannot export to file '" + g_GenDataSrcPath + g_ModelName + c_ExportExtension + "'! It was unable to be opened or added in Perforce." ) title:titleText print( titleText + "- Cannot export to file '" + g_GenDataSrcPath + g_ModelName + c_ExportExtension + "'! It was unable to be opened or added in Perforce." ) return false ) ) ) -- (Re)set dates g_NewestDate = "00000101000000" g_OldestDate = "99991231235959" -- Get the date of the exporter DLE g_ExporterDate = g_OldestDate local tmpVal = findString scriptsPath "Scripts" if( tmpVal != undefined ) then ( local plugDir = replace scriptsPath tmpVal 7 "plugins" g_ExporterDate = getSortableDate( plugDir + "\\" + c_ExporterFilename ) ) -- check dates on intermediate files -- Incremental check, verify export plugin is older than SGMs and delete orphaned ones -- Reference folder for item in getfiles( g_IntDataSrcPath + c_RefFolder + "*" + c_ExportExtension ) do ( CheckForOrphanedFile( item ) ) -- Anim folder for item in getfiles( g_IntDataSrcPath + c_AnimFolder + "*" + c_ExportExtension ) do ( CheckForOrphanedFile( item ) ) -- If we have a new exporter or we're asked to force a rebuild then delete all of the files if( bForceExport == true or g_ExporterDate > g_OldestDate ) then ( -- Delete all of the files in the Intermediate_DataSrc directory if( g_ExporterDate > g_OldestDate ) then ( print( g_ModelName + ": New exporter, exporting all files..." ) ) else ( print( g_ModelName + ": Forcing full export..." ) ) files = getFiles ( g_IntDataSrcPath + c_RefFolder + "\\*" + c_ExportExtension ) for f in files do ( deleteFile f ) files = getFiles ( g_IntDataSrcPath + c_AnimFolder + "\\*" + c_ExportExtension ) for f in files do ( deleteFile f ) ) else ( print( g_ModelName + ": Performing incremental export..." ) ) -- strip out unmodified .max files local i = 1 while( i <= g_ExportList.count ) do ( local currentFile = g_DataSrcPath + g_ExportList[ i ] local saveTo = ConvertRelativeSrcNameToFullIntName g_ExportList[ i ] bSkip = false -- Reference folder if( myDoesFileExist saveTo ) and ( fileDateCompare currentFile saveTo < 0 ) then ( bSkip = true ) -- Animation folder if( myDoesFileExist saveTo ) and ( fileDateCompare currentFile saveTo < 0 ) then ( bSkip = true ) if( bSkip == true ) then ( print( g_ModelName + ": Skipping '" + g_ExportList[ i ] + "'" ) deleteItem g_ExportList i ) else ( i = i + 1 ) ) numFiles = g_ExportList.count if( numFiles > 0 ) then ( -- start exporting -- add DataSrc to texture map path mapPaths.add( g_DataSrcPath + c_TexturesFolder ) -- progress bar if( bUpdateUI == true ) then ( g_WarhammerModelStopExport = false addRollout g_WarhammerModelExportProgress g_WarhammerModelExportProgress.exportprogress.value = 0 ) for i=1 to numFiles do ( if( bUpdateUI == true ) then ( -- Export cancelled? if( g_WarhammerModelStopExport ) then ( removeRollout g_WarhammerModelExportProgress print( g_ModelName + ": User cancelled model export" ) return true ) ) local currentFile = g_DataSrcPath + g_ExportList[ i ] local saveTo = ConvertRelativeSrcNameToFullIntName g_ExportList[ i ] print( g_ModelName + ": Loading file '" + g_ExportList[ i ] + "'..." ) loadmaxfile currentFile quiet:true gw.updateScreen() -- DO EXPORT exportOK = true try ( print( g_ModelName + ": Exporting file '" + g_ExportList[ i ] + "'..." ) exportOK = exportfile( saveTo ) #noPrompt if( exportOK == true ) then ( -- No error reported, do we have an exported file? if( not myDoesFileExist( saveTo ) ) then ( exportOK = false ) ) ) catch ( -- Serious error occured exportOK = false ) -- check if we encountered an error? if( exportOK == false ) then ( titleText = "Warhammer Exporter: " + g_ModelName messageBox( "Unable to export: " + currentFile + "!" ) title:titleText print( titleText + "- Unable to export: " + currentFile + "!" ) if( bUpdateUI == true ) then ( removeRollout g_WarhammerModelExportProgress ) return false ) if( bUpdateUI == true ) then ( g_WarhammerModelExportProgress.exportprogress.value = 100.0 * ( i * 2 + 0 ) / ( g_ExportList.count * 2 ) ) ) if( bUpdateUI == true ) then ( removeRollout g_WarhammerModelExportProgress ) -- remove textures folder from texture map path index = mapPaths.count() mapPaths.delete( index ) ) else ( g_WarhammerModelExportProgress.exportprogress.value = 100.0 gw.updateScreen() ) -- MERGE Files print( g_ModelName + ": Merging..." ) -- Get model file mergeRefFile = GetMergeRefFile() if( mergeRefFile == undefined ) then ( titleText = "Warhammer Exporter: " + g_ModelName messageBox( "Unable to find reference file for merging!" ) title:titleText print( titleText + "- Unable to find reference file for merging!" ) return false ) mergeOK = true mergeToFile = g_GenDataSrcPath + g_ModelName + c_ExportExtension -- Get anim list mergeAnimList = GetMergeAnimationList() -- Merge animations try ( -- temporary external flag setting for animerge w40k_animergeFlags bExportModel bExportTextures mergeOK = w40k_animerge mergeToFile mergeRefFile mergeAnimList ) catch ( -- Serious error occured mergeOK = false ) if( mergeOK == false ) then ( titleText = "Warhammer Exporter: " + g_ModelName messageBox( "Unable to export/merge: " + mergeToFile ) title:titleText print( titleText + "- Unable to export/merge model!" ) return false ) -- Burn the model burnOK = true try ( burnOK = w40k_burner mergeToFile ) catch ( -- A boo boo happened w40k_burner_reset burnOK = false ) if (burnOK == false) then ( titleText = "Warhammer Exporter: " + g_ModelName messageBox("Unable to burn: " + mergeToFile) title:titleText print(titleText + "- Unable to burn model!") return false ) print( g_ModelName + ": Exported successfully." ) return true ) function ExportModel filepath bForceExport bSkipReadOnly bExportModel bExportTextures = ( if( SetupScript( filepath ) == false ) then ( return false ) ExportModelInternal bForceExport false bSkipReadOnly bExportModel bExportTextures ) -------------------------------------------- utility exporter "Warhammer Model Export" ( -- Dialog buttons edittext exportname "Exporting" enabled:false dropdownlist fileList "Files" items:#() height:20 checkbox forcerebuild "Force Full Export" checked:false checkbox exportmodel "Export Model" checked:true checkbox exporttextures "Export Textures" checked:true button refresh "Refresh" align:#center width:100 button export "Export" align:#center width:100 fn UpdateUI = ( -- Set the model name exportname.text = g_ModelName -- strip off paths tempfiles =#() for item in g_ExportList do ( temp = item animFolderIndex = findString item c_AnimFolder if( not animFolderIndex == undefined ) then ( animFolder = subString temp c_AnimFolder.count -1 animFolder = getFilenamePath animFolder animFolder = subString animFolder 2 -1 temp = animFolder + getFilenameFile( temp ) ) else ( temp = getFilenameFile( temp ) ) append tempfiles temp ) fileList.items = tempfiles ) on exporter open do ( if( SetupScript( maxFilePath ) == true ) then ( UpdateUI() ) ) on refresh pressed do ( if( SetupScript( maxFilePath ) == true ) then ( UpdateUI() ) ) on export pressed do ( if( SetupScript( maxFilePath ) == false ) then ( messageBox( "Unable to determine source path!\nMake sure you have followed the standard directory layout." ) title:"Warhammer Exporter" return false ) UpdateUI() if( not checkForSave() ) then ( return false ) if( objects.count == 0 ) then ( messageBox( "No files present for export!" ) title:"Warhammer Exporter" return false ) ExportModelInternal forcerebuild.checked true false exportmodel.checked exporttextures.checked ) ) Что мне делать? Ссылка на комментарий Поделиться на другие сайты Поделиться
chaos2000 Опубликовано 25 сентября, 2011 Жалоба Поделиться Опубликовано 25 сентября, 2011 Такое ощущение что ни кого сегодня не было? Ссылка на комментарий Поделиться на другие сайты Поделиться
jONES Опубликовано 27 сентября, 2011 Жалоба Поделиться Опубликовано 27 сентября, 2011 (изменено) 1) Столкнулся я вот с такими багами мода своего когда играешь Хаосом против ИГ,то ИГ когда захватывает точку использует флаг Хаоса. 2) А у Сестер и ТЭ флаг не отображается просто белый флаг!! C первым пунктом не очень понятно, но вот по второму видно, что у тебя модель стратегической точки для Дарк Крусайда, причем модифицированная. Модели точек лежат в папке \Data\Art\EBPs\Environment\Gameplay\ в твоём моде, или в какой то из папок модов, на которые твой мод "ссылается". Если ты играешь в SS и твой мод не добавляет новых рас - просто удали те файлы (или убери ссылку на Objective_Points мод, если вдруг она есть). Изменено 27 сентября, 2011 пользователем jONES Ссылка на комментарий Поделиться на другие сайты Поделиться
chaos2000 Опубликовано 28 сентября, 2011 Жалоба Поделиться Опубликовано 28 сентября, 2011 Спасибо,за ответ 2 пункт исправил. 1 пункт,еще раз, то есть, когда я выбираю расу хаос,а против себя ставлю имперскую гвардию, то имперские гвардейцы при захвате точки, флаг используют легиона хаоса,за который я играю,а некоторые юниты гвардии,даже используют окрас легиона. Ссылка на комментарий Поделиться на другие сайты Поделиться
jONES Опубликовано 28 сентября, 2011 Жалоба Поделиться Опубликовано 28 сентября, 2011 Спасибо,за ответ 2 пункт исправил. 1 пункт,еще раз, то есть, когда я выбираю расу хаос,а против себя ставлю имперскую гвардию, то имперские гвардейцы при захвате точки, флаг используют легиона хаоса,за который я играю,а некоторые юниты гвардии,даже используют окрас легиона. Это называется "color leak". Рискну предположить, что в твоём моде у ИГ есть юниты Хаоса. Или можеть быть наоборот. Если точно "нет", то я не знаю что делать. Если да - то единственный известный мне путь - конвертировать эти юниты в 3Д Макс и менять пути к текстурам, чтобы у всех моделей в расе путь к текстурам совпадал. Т.е. если раса ИГ - у всех моделей ссылки на текстуры идут в \Data\Art\EBPs\Races\imperial_guard\texture_share\, если модель для расы Хаос, то - Data\Art\EBPs\Races\chaos\texture_share\ Ссылка на комментарий Поделиться на другие сайты Поделиться
chaos2000 Опубликовано 29 сентября, 2011 Жалоба Поделиться Опубликовано 29 сентября, 2011 Еще один вопрос немного не по теме, меня интересовало всегда как делать АI ?если тебе что известно,или сам умеешь что то делать,то очень большая просьба подсказать,или указать сылочки куда нужно обратить внимание. Ссылка на комментарий Поделиться на другие сайты Поделиться
jONES Опубликовано 29 сентября, 2011 Жалоба Поделиться Опубликовано 29 сентября, 2011 (изменено) Еще один вопрос немного не по теме, меня интересовало всегда как делать АI ?если тебе что известно,или сам умеешь что то делать,то очень большая просьба подсказать,или указать сылочки куда нужно обратить внимание. В моде Адвансед ИИ есть инструкция (на английском) \Dowai_mod\Data\ai\doc\AdvanceAIGuide_for_v2.3.txt Изменено 29 сентября, 2011 пользователем jONES Ссылка на комментарий Поделиться на другие сайты Поделиться
Anonymous_ Опубликовано 1 октября, 2011 Жалоба Поделиться Опубликовано 1 октября, 2011 Please help! Как создать rtx-файл и покрасить его? Я так понимаю надо сначала распаковать "WTP" файл, и распакованные TGA перекодировать в DDS. Потом переименовать. Но у меня в DDS перекодируется только лицевой первый файл, при перекодировании остальных вылетает ошибка. Прилагаю скрин. P/S Путь правильный, на скрине стандартный WTP, взятый из директории, Direct X самый последний, переустанавливал 3 раза. Ссылка на комментарий Поделиться на другие сайты Поделиться
jONES Опубликовано 1 октября, 2011 Жалоба Поделиться Опубликовано 1 октября, 2011 Как создать rtx-файл и покрасить его? Я так понимаю надо сначала распаковать "WTP" файл, и распакованные TGA перекодировать в DDS. Потом переименовать. Но у меня в DDS перекодируется только лицевой первый файл, при перекодировании остальных вылетает ошибка. Вот подробная инструкция от Мегазогга: http://forums.warforge.ru/index.php?showto...t&p=1834223 Ссылка на комментарий Поделиться на другие сайты Поделиться
EyePatch Опубликовано 5 октября, 2011 Жалоба Поделиться Опубликовано 5 октября, 2011 (изменено) Скажу сразу - это не вопрос, а идея. Создавать под неё отдельную тему было бы бессмысленно. Чтобы соблюсти формальность, а помещу в конце вопросительное предложение. Свою мысль адресую людям, занимающимся модификациями в духе "Closer to codex". Я думаю, ни для кого не секрет, что даже самое дотошное копирование параметров из кодекса вовсе не означает, что на смену дисбаланса DoW придёт баланс настолки (к слову, тоже далеко не идеальный). Увы, в силу различий в механике чуда не происходит. Возможно, стоит несколько больше сгладить существующие различия между tabletop game и RTS. Предложение: 1. Убрать из игры пехотный и технический лимиты. 2. Сделать единый лимит, варирьирующийся в зависимости от настроек матча. 2а. Сделать фиксированный лимит, скажем, 2000. 3. Там, где в сетевой игре раскрывающиеся меню "Скорость игры", "Начальные ресурсы" и прочие добавить аналогичное - "Лимит". С произвольным количеством позиций. 3а. Или заменить никому не нужно меню "Разрешить использование читов" 3в. Или, в случае принятия пункта 2а, не делать ничего. 4. Сделать так, чтобы лимит расходовали не только отряды и даже не единичные бойцы (как у орков), а даже улучшения бойцов и техники. Параметры - из кодексов. "+"Для тех, кто не догадался - это моя интерпретация ростера (расписки армии), используемой в настольной игре. Да, всех проблем такое предложение не решит. Может быть, и вообще ничего не решит. Но это, как мне кажется, может повысить обратную совместимость настольки и DoW, а также эффективность внедряемых по кодексам изменений. Сразу назову недостаток своей теории - в неё не вписываются глобальные улучшения (боевые показатели растут, но на лимите это не скажется). А теперь, как и было обещано - вопрос, раз уж тема называется "Вопрос-ответ": Насколько реально воплотить эту идею в любой из предложенных (или иных) вариаций и представляет ли это практическую ценность? Изменено 5 октября, 2011 пользователем EyePatch Ссылка на комментарий Поделиться на другие сайты Поделиться
chaos2000 Опубликовано 6 октября, 2011 Жалоба Поделиться Опубликовано 6 октября, 2011 Все это можно сделать,но вот только сразу скажу что интерес к игре пропадет... Ссылка на комментарий Поделиться на другие сайты Поделиться
RuWlRamRoud Опубликовано 6 октября, 2011 Жалоба Поделиться Опубликовано 6 октября, 2011 (изменено) Подскажите как сделать для мода свой загрузочный экран при старте игры с кем-то? Изменено 6 октября, 2011 пользователем RuWlRamRoud Ссылка на комментарий Поделиться на другие сайты Поделиться
GrOrc Опубликовано 6 октября, 2011 Жалоба Поделиться Опубликовано 6 октября, 2011 (изменено) Насколько реально воплотить эту идею в любой из предложенных (или иных) вариаций и представляет ли это практическую ценность? Сделать такое моддингом в DoW легко. Но игровой ценности эти идеи не представляют. В частности, в реальной игре при реализации этих идей начнется огульный танк-раш на средних и поздних этапах игры. Игроки будут делать мало пехоты и много техники. Если начать с этим бороться в рамках этого концепта, то опять во многом придется вернуться к старому концепту. Ну и зачем оно кому-то нужно, раз не приносит ничего интересного и только огрубляет игру. Когда в DoW моддеры делают "кодексные" параметры, это еще не означает, что они в рамках DoW хотят реализовать настолку. Те, кто реально хочет реализовать именно W40k настолку будут делать это в рамках какого-нибудь TBS-движка, а не RTS. А в DoW "кодексный" мод лишь означает некоторое приближение к балансу настолки, духу кодексов и духу вселенной W40k в целом. Так, например, поступаю я у себя в Titanium Wars. Я не делаю W40k комповую настолку, я делаю W40k RTS-игру. Но делаю я ее так, чтобы каждый ее элемент в чем-то базировался на идеях реального W40k. Если в настолке одно оружие стреляет дальше другого, то у меня они также будут соотноситься. Если в настолке один юнит более меткий (сильный, толстый, более бронированный и т. п.) чем другой, то и у меня они будут относительно такими же. Если в настолке есть какие-то обвесы у юнитов, то и у меня они будут все присутствовать как варианты. Если в настолке у юнитов есть какие-нибудь особенности или спец-способности, то и у меня они будут каким-то образом реализованы. И т. д. и т. п. Вот это и значит делать мод в духе кодексов W40k -- соблюдать общие правила, особенности, добиваться атмосферности W40k (и не пороть отсебятину в рамках мира, который придумал не ты). Настолка как таковая на компе никому особо и не нужна -- для этого есть GW с ее миньками и твои друзья, которые эти миньки купили и раскрасили и готовы сдвигать с тобой фигурки на столе. Настолка это отдельная песня. Целый свой мир со своим фаном в покрасках, конверсиях минек и тактиках игры. На компе она особо и не нужна. Ее на компе в виде нормального TBS не делают (были и есть такие игры по W40k, но настолку целиком они не реализовали) еще и потому, что GW будет явно против нее. Если была бы хорошая полноразмерная виртуальная настолка, то это сильно бы снизило продажи минек. Так что DoW -- это DoW, а настолка -- это настолка (искренне ваш -- КО). Но зато в модах для DoW мы можем наваять такого, что атмосферность W40k будет на высоте и игра в этом смысле будет ничем не хуже настолки. Поэтому люди и занимаются моддингом DoW. Хочется увидеть через призму DoW много такого, что реально есть в нашей любимой вселенной W40k. Изменено 6 октября, 2011 пользователем GrOrc Ссылка на комментарий Поделиться на другие сайты Поделиться
chaos2000 Опубликовано 6 октября, 2011 Жалоба Поделиться Опубликовано 6 октября, 2011 В моде Адвансед ИИ есть инструкция (на английском) \Dowai_mod\Data\ai\doc\AdvanceAIGuide_for_v2.3.txt Будь добр кинь ссылочку,найти не могу. Ссылка на комментарий Поделиться на другие сайты Поделиться
jONES Опубликовано 6 октября, 2011 Жалоба Поделиться Опубликовано 6 октября, 2011 Будь добр кинь ссылочку,найти не могу. http://www.mediafire.com/?1tjyezunm2o Ссылка на комментарий Поделиться на другие сайты Поделиться
chaos2000 Опубликовано 7 октября, 2011 Жалоба Поделиться Опубликовано 7 октября, 2011 Спасибо!!!!! ты прям неоценимую помощь мне оказываешь!!!!! Ссылка на комментарий Поделиться на другие сайты Поделиться
258456 Опубликовано 7 октября, 2011 Жалоба Поделиться Опубликовано 7 октября, 2011 Доброго времени суток,Комрады! Вопросы следующие: 1.Как сделать так,чтобы в начале игры получить на карте не только HQ,а например 3-4 определенных здания (как я понял,все это дело делается через SCAR скриптование и,даже сильно постаравшись,можно научить этому игру через режим игры,а не через скрипты в карте)? 2.Все помнят абилку "Грозовой фронт" у Некров умеющую пополняться от нанесенного урона Лорду.Возможно ли организовать так,чтобы артефакты покупались не за ресурсы,а представляли собой аналог данной абилки: Лорд наносит (!) урон,за счет которого пополняется "полоска" в каждом артефакте и при заполнении ее до max становится возможным взять артефакт. P.S. Я так понимаю "полоска" имеет численное значение,присвоив артефакту Н-ое значение,мы получаем его стоимость,т.о. когда "полоска" стоимости одного артефакта уже заполнилась,то другого будет заполнена,скажем,наполовину.Ну вот как-то вот так. :) 3. Следствие из предыдущего вопроса. Как такую "полоску" повесить не только на покупку артефактов,но и на все абилки Лорда? Получается,перед игроком стоит выбор,или покупка артефакта или использование абилки. Спасибо за внимание.Буду рад любой помощи. Ссылка на комментарий Поделиться на другие сайты Поделиться
jONES Опубликовано 7 октября, 2011 Жалоба Поделиться Опубликовано 7 октября, 2011 (изменено) 1.Как сделать так,чтобы в начале игры получить на карте не только HQ,а например 3-4 определенных здания (как я понял,все это дело делается через SCAR скриптование и,даже сильно постаравшись,можно научить этому игру через режим игры,а не через скрипты в карте)? 2.Все помнят абилку "Грозовой фронт" у Некров умеющую пополняться от нанесенного урона Лорду.Возможно ли организовать так,чтобы артефакты покупались не за ресурсы,а представляли собой аналог данной абилки: Лорд наносит (!) урон,за счет которого пополняется "полоска" в каждом артефакте и при заполнении ее до max становится возможным взять артефакт. P.S. Я так понимаю "полоска" имеет численное значение,присвоив артефакту Н-ое значение,мы получаем его стоимость,т.о. когда "полоска" стоимости одного артефакта уже заполнилась,то другого будет заполнена,скажем,наполовину.Ну вот как-то вот так. :) 3. Следствие из предыдущего вопроса. Как такую "полоску" повесить не только на покупку артефактов,но и на все абилки Лорда? Получается,перед игроком стоит выбор,или покупка артефакта или использование абилки. 1. Через SCAR скриптование, т.е. написать так называемое "условие победы" (правило), которое разместит здания вокруг HQ к примеру. Как сделать? Скачать DoW Mod Tools, там есть ScarDoc - описание всех SCAR функций, поизучать уже существующие скрипты к картам и правила. В итоге разобраться и написать ;) 2. 3. Невозможно. "Следствие" из предыдущего ответа. Твое представление о механике игры основано на домыслах. Начни с простого, скачай Корсикс Мод Студио, прочти руководство Кабануса из соседней темы, поразбирайся как что работает. Чем "исследования" отличаются от "абилок". "Абилки" от "оружия". Тогда не будет никаких эфемерных "полосок" и "артефактов" Изменено 7 октября, 2011 пользователем jONES Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Пожалуйста, войдите, чтобы комментировать
Вы сможете оставить комментарий после входа в
Войти