Портал игровых серверов GMNET.RU - ArmA2.RU
spacerspacer Главная spacerspacer Форум spacerspacer Игровые Сервера spacerspacer Правила Игровых Серверов spacerspacer
Старый 02.04.2015, 14:40   #1
Dimon UA
Лейтенант
 
Аватар для Dimon UA
 
Регистрация: 16.10.2008
Адрес: Лисичанск-Москва-Севастополь
Сообщений: 1,231
Сказал cпасибо: 1,408
Поблагодарили 1,873 раз в 952 сообщениях
Chernarus edit

Скрипт замены домов в Черноруссии на входибельные.
Выбирал не входибельные домики и подставил примерно такие же по размеру.
Факт, но никаких потерь в фпс нет ни на клиенте, ни на сервере. Примерно получается 1600 объектов.

Есть конечно всякие мелкие недостатки в расстановке, но это мелочь в сравнение с тем что Чернарусь теперь играбельна вдвойне!

Скрипт уже используется в FFA EVO ACE.

Учел пожелания любителей визуальной гармонии - подобрал здания более подходящие под атмосферу острова .
Плюс перебрал все заменяемые здания по размерам, как становятся, нет ли каких то дефектов.


Скрытый текст




[Только зарегистрированные и активированные пользователи могут видеть ссылки. ]

[свернуть]

скрипт

Код:
FFA_CLOSEHOUSE=["Land_HouseV_1I1","Land_HouseV_1I2","Land_HouseV_2L","Land_HouseV_3I3","Land_HouseV_3I1","Land_HouseV_3I4","Land_HouseV_3I2","Land_HouseV_1L1",

"Land_houseV_2T1","Land_houseV_2T2","Land_HouseV_1T","Land_HouseV_2I","Land_Hous eV_1I4","Land_HouseV_1I3","Land_HouseV_1L2","Land_HouseV2_03B","Land_HouseV2_03" ,

"Land_HouseV2_01A","Land_HouseV2_01B","Land_HouseV2_02_Interier","Land_HouseV2_0 4_interier","Land_HouseV2_05","Land_SS_hangar","Land_A_Office02","Land_A_Hospita l"];

if (isServer) then

{

        _box1=[["Land_HouseV_1I1","Land_HouseV_1I2"],["Land_smd_budova3_open"]];

        _box2=[["Land_HouseV_3I3","Land_HouseV_3I1","Land_HouseV_3I4","Land_HouseV_3I2","Land_HouseV_1L1"],["Land_cihlovej_dum_in","Land_bouda2_vnitrek" ,"Land_hruzdum","Land_smd_cihlovej_dum_mini"]];

        _box3=[["Land_houseV_2T1","Land_houseV_2T2"],["land_mbg_brickhouse_01","land_mbg_brickhouse_03","Land_sara_domek_zluty"]];

        _box4=[["Land_HouseV_1T"],["Land_smd_hospoda_mesto"]];

        _box5=[["Land_HouseV_2I","Land_HouseV_1I4","Land_HouseV_1I3","Land_HouseV_1I4","Land_HouseV_2L","Land_HouseV_1L2"],["Land_dum_mesto2"]];

        _box6=[["Land_HouseV2_03B","Land_HouseV2_01A","Land_HouseV2_01B"],["Land_dum_mesto_in","Land_MBG_GER_PUB_2","Land_MBG_GER_PUB_1"]];

        _box7=[["Land_HouseV2_03"],["Land_MBG_ATC_Base"]];

        _box8=[["Land_HouseV2_02_Interier","Land_HouseV2_04_interier","Land_HouseV2_05"],["Land_MBG_GER_HUS_1","Land_MBG_GER_HUS_2","Land_MBG_GER_HUS_3","Land_MBG_GER_HUS_4"]];

        _box9=[["Land_A_Hospital","Land_A_Office02"],["Land_mbg_companybuilding_1"]];

        _box10=[["Land_SS_hangar"],["Land_smd_ss_hangar_withdoor"]];

        _FFA_LHOUSEV=[];

        _FFA_HOUSES=[];

 

        if (worldName == "chernarus") then

        {

                _FFA_LHOUSEV=nearestObjects [getArray(configFile >> "CfgWorlds" >> worldName >> "centerPosition"),["house"],15000];

                for "_i" from 0 to (count _FFA_LHOUSEV)-1 do

                {

                        _housev=_FFA_LHOUSEV select _i;

                        if ((typeof _housev) in FFA_CLOSEHOUSE) then

                        {

                                _FFA_HOUSES set [count _FFA_HOUSES,_housev];

                        };

                };

               

                for "_i" from 0 to (count _FFA_HOUSES)-1 do

                {

                        _nBuilding =_FFA_HOUSES select _i;

                        _dirVector = vectorDir _nBuilding;

                        _objVector = vectorUp _nBuilding;

                        _pos = ASLtoATL getPosASL _nBuilding;

                        _nBuilding hideObject true;

                       

                        _type="";

                        call{

                                if ((typeof _nBuilding) in (_box1 select 0)) exitwith {_type=(_box1 select 1) select (floor random (count (_box1 select 1)));};

                                if ((typeof _nBuilding) in (_box2 select 0)) exitwith {_type=(_box2 select 1) select (floor random (count (_box2 select 1)));};

                                if ((typeof _nBuilding) in (_box3 select 0)) exitwith {_type=(_box3 select 1) select (floor random (count (_box3 select 1)));};

                                if ((typeof _nBuilding) in (_box4 select 0)) exitwith {_type=(_box4 select 1) select (floor random (count (_box4 select 1)));};

                                if ((typeof _nBuilding) in (_box5 select 0)) exitwith {_type=(_box5 select 1) select (floor random (count (_box5 select 1)));};

                                if ((typeof _nBuilding) in (_box6 select 0)) exitwith {_type=(_box6 select 1) select (floor random (count (_box6 select 1)));};

                                if ((typeof _nBuilding) in (_box7 select 0)) exitwith {_type=(_box7 select 1) select (floor random (count (_box7 select 1)));};

                                if ((typeof _nBuilding) in (_box8 select 0)) exitwith {_type=(_box8 select 1) select (floor random (count (_box8 select 1)));};

                                if ((typeof _nBuilding) in (_box9 select 0)) exitwith {_type=(_box9 select 1) select (floor random (count (_box9 select 1)));};

                                if ((typeof _nBuilding) in (_box10 select 0)) exitwith {_type=(_box10 select 1) select (floor random (count (_box10 select 1)));};

                        };

                        _house = createVehicle [_type, _pos, [], 0, "CAN_COLLIDE"];

                        _house setVectorDirAndUp [ _dirVector, _objVector];

                        if ((typeof _house) in (_box9 select 1)) then {_house setdir ((getdir _nBuilding)+90);};

                };

        };

};

 

if(!isServer || local player)then

{

        waitUntil{(player==player)};

        waitUntil{alive player};

        waitUntil{local player};

        if (worldName == "chernarus") then

        {

                _FFA_CHOUSEV=[];

                _FFA_CHOUSEV=nearestObjects [getArray(configFile >> "CfgWorlds" >> worldName >> "centerPosition"),["house"],15000];

                for "_i" from 0 to (count _FFA_CHOUSEV)-1 do

                {

                        _housev=_FFA_CHOUSEV select _i;

                        if ((typeof _housev) in FFA_CLOSEHOUSE) then

                        {

                                _housev hideObject true;

                        };

                };

        };

};
[свернуть]


ну и скрипт попроще для СО - замена домов на такистанские.

Скрытый текст

Код:
KK_fnc_inString = {
/*
Author: Killzone_Kid

Description:
Find a string within a string (case insensitive)

Parameter(s):
_this select 0: <string> string to be found
_this select 1: <string> string to search in

Returns:
Boolean (true when string is found)

How to use:
_found = ["needle", "Needle in Haystack"] call KK_fnc_inString;
*/

private ["_needle","_haystack","_needleLen","_hay","_found"];
_needle = _this select 0;
_haystack = toArray (_this select 1);
_needleLen = count toArray _needle;
_hay = +_haystack;
_hay resize _needleLen;
_found = false;
for "_i" from _needleLen to count _haystack do {
if (toString _hay == _needle) exitWith {_found = true};
_hay set [_needleLen, _haystack select _i];
_hay set [0, "x"];
_hay = _hay - ["x"]
};
_found
};

if (isServer) then
{
FFA_LHOUSEV=[];
FFA_HOUSES=[];
FFA_OPENHOUSE = [/*"MAP_dum_mesto2","MAP_sara_stodola","MAP_stodola_old_open","mbg_brickhouse_01_EO","mbg_brickhouse_02_EO","mbg_brickhouse_03_EO","Land_MBG_GER_RHUS_1","Land_MBG_GER_RHUS_3","Land_MBG_GER_RHUS_4","Land_MBG_GER_RHUS_5",
"Land_10str","Land_15str","Land_hut3_b","Land_hut5","Land_hut7","Land_hut9","Land_hut9_b","Land_hut9_c","Land_hut10","Land_hut12","Land_minaret3","Land_cihlovej_dum_in","Land_deutshe_mini","Land_sara_hasic_zbroj",
"Land_bouda2_vnitrek","Land_hruzdum","Land_dum_rasovna","Land_sara_Domek_sedy","Land_sara_domek_zluty","Land_smd_budova3_open","Land_smd_cihlovej_dum_mini","Land_smd_dum_olezlina_open","Land_dum_mesto2",
"Land_smd_hospoda_mesto","Land_smd_house_y_open","Land_smd_sara_zluty_statek_in","Land_smd_dum_olez_istan2_maly_open","Land_smd_dum_olez_istan2_open","Land_smd_dum_olez_istan2_open2","Land_smd_dum_olez_istan1_open",
"Land_mbg_observation_tower",*/
"Land_House_C_5_EP1","Land_House_C_5_V1_EP1","Land_House_C_5_V2_EP1","Land_House_C_5_V3_EP1","Land_House_C_12_EP1","Land_House_K_1_EP1","Land_House_K_3_EP1","Land_House_K_5_EP1","Land_House_L_8_EP1",
"Land_House_K_6_EP1","Land_House_K_7_EP1","Land_House_K_8_EP1","Land_House_L_1_EP1","Land_House_L_4_EP1","Land_House_L_6_EP1","Land_House_L_7_EP1","Land_House_L_8_EP1"];


if (worldName == "chernarus") then
{
FFA_LHOUSEV=nearestObjects [getArray(configFile >> "CfgWorlds" >> worldName >> "centerPosition"),["house"],15000];
for "_i" from 0 to (count FFA_LHOUSEV)-1 do
{
_housev=FFA_LHOUSEV select _i;
if ((["Land_HouseV_",str (typeof _housev)] call KK_fnc_inString) || {(["Land_HouseV2_",str (typeof _housev)] call KK_fnc_inString)}) then
{
FFA_HOUSES set [count FFA_HOUSES,_housev];
};
};
for "_i" from 0 to (count FFA_HOUSES)-1 do
{
_nBuilding =FFA_HOUSES select _i;
_dirVector = vectorDir _nBuilding;
_objVector = vectorUp _nBuilding;
_pos = getposatl _nBuilding;
_nBuilding hideObject true;
_type= FFA_OPENHOUSE select (floor random (count FFA_OPENHOUSE));
_house = createVehicle [_type, _pos, [], 0, "CAN_COLLIDE"];
_house setVectorDirAndUp [ _dirVector, _objVector];
};
};
FFA_LHOUSEV resize 0;
FFA_HOUSES resize 0;
};

if(!isServer || local player)then
{
waitUntil{(player==player)};
waitUntil{alive player};
waitUntil{local player};
if (worldName == "chernarus") then
{
FFA_CHOUSEV=[];
FFA_CHOUSEV=nearestObjects [getArray(configFile >> "CfgWorlds" >> worldName >> "centerPosition"),["house"],15000];
for "_i" from 0 to (count FFA_CHOUSEV)-1 do
{
_housev=FFA_CHOUSEV select _i;
if ((["Land_HouseV_",str (typeof _housev)] call KK_fnc_inString) || {(["Land_HouseV2_",str (typeof _housev)] call KK_fnc_inString)}) then
{
_housev hideObject true;
};
};
FFA_CHOUSEV resize 0;
};
};
[свернуть]


Dimon UA добавил через 32 Мин. и 28 Сек.

2.2 Update

Последний раз редактировалось Dimon UA; 02.04.2015 в 14:40. Причина: Двойной ответ
Dimon UA вне форума   Ответить с цитированием
Сказали спасибо (2):
GusarRomik (02.04.2015), Kalkhin (06.05.2015)
Старый 02.04.2015, 19:50   #2
Daredevil Ru
Сержант
 
Аватар для Daredevil Ru
 
Регистрация: 10.12.2009
Адрес: Россия
Сообщений: 151
Сказал cпасибо: 88
Поблагодарили 63 раз в 36 сообщениях
Отправить сообщение для Daredevil Ru с помощью ICQ
а в чём мулька то?
Daredevil Ru вне форума   Ответить с цитированием
Старый 03.04.2015, 10:25   #3
Dimon UA
Лейтенант
 
Аватар для Dimon UA
 
Регистрация: 16.10.2008
Адрес: Лисичанск-Москва-Севастополь
Сообщений: 1,231
Сказал cпасибо: 1,408
Поблагодарили 1,873 раз в 952 сообщениях
Dimon UA вне форума   Ответить с цитированием
Сказали спасибо (2):
basma4 (03.04.2015), GusarRomik (03.04.2015)
Старый 22.04.2015, 10:54   #4
Dimon UA
Лейтенант
 
Аватар для Dimon UA
 
Регистрация: 16.10.2008
Адрес: Лисичанск-Москва-Севастополь
Сообщений: 1,231
Сказал cпасибо: 1,408
Поблагодарили 1,873 раз в 952 сообщениях
кому интересно увидеть воочию отредактированную Чернорусь го на [Только зарегистрированные и активированные пользователи могут видеть ссылки. ]
Dimon UA вне форума   Ответить с цитированием
Старый 26.04.2015, 22:29   #5
alexvladn
Рядовой
 
Регистрация: 04.09.2012
Сообщений: 7
Сказал cпасибо: 15
Поблагодарили 16 раз в 12 сообщениях
Dimon UA,

а где скачать это мисагу FFA EVO ACE ?
alexvladn вне форума   Ответить с цитированием
Старый 27.04.2015, 01:48   #6
FenechkA
Майор
 
Аватар для FenechkA
 
Регистрация: 02.04.2011
Адрес: Чита, Забайкалье
Сообщений: 1,887
Сказал cпасибо: 469
Поблагодарили 1,299 раз в 730 сообщениях
у автора в подписи баннер сервера.
логично предположить, что там эта миссия и крутится.
FenechkA на форуме   Ответить с цитированием
Старый 27.04.2015, 03:27   #7
alexvladn
Рядовой
 
Регистрация: 04.09.2012
Сообщений: 7
Сказал cпасибо: 15
Поблагодарили 16 раз в 12 сообщениях
Цитата:
Сообщение от FenechkA Посмотреть сообщение
у автора в подписи баннер сервера.
логично предположить, что там эта миссия и крутится.
спасибо канешно за наводку, но баннер не кликабельный. может Dimon UA поделится линком на мапу
alexvladn вне форума   Ответить с цитированием
Старый 27.04.2015, 18:14   #8
Dimon UA
Лейтенант
 
Аватар для Dimon UA
 
Регистрация: 16.10.2008
Адрес: Лисичанск-Москва-Севастополь
Сообщений: 1,231
Сказал cпасибо: 1,408
Поблагодарили 1,873 раз в 952 сообщениях
Цитата:
Сообщение от alexvladn Посмотреть сообщение
спасибо канешно за наводку, но баннер не кликабельный. может Dimon UA поделится линком на мапу
Миссия не доступна для свободного пользования. Играется только на этом сервере.

Dimon UA добавил через 1 Мин. и 58 Сек.

Вообщем я в шоке :


И это чистое СО. Я думать не думал что в ней такое есть.

Последний раз редактировалось Dimon UA; 27.04.2015 в 18:14. Причина: Двойной ответ
Dimon UA вне форума   Ответить с цитированием
Старый 28.04.2015, 08:51   #9
Alik96rus
Сержант
 
Аватар для Alik96rus
 
Регистрация: 03.08.2011
Сообщений: 177
Сказал cпасибо: 17
Поблагодарили 53 раз в 29 сообщениях
Да,сам в шоке
Alik96rus вне форума   Ответить с цитированием
Старый 02.05.2015, 08:59   #10
swa
Старшина
 
Аватар для swa
 
Регистрация: 24.06.2009
Сообщений: 499
Сказал cпасибо: 117
Поблагодарили 210 раз в 130 сообщениях
Exclamation

Dimon UA,

Я так понял автор этого скрипта separatist? Может стоило указать источник или автора, а то из твоего сообщения складывается мнение что разработчик данного скрипта ты:
Цитата:
Сообщение от Dimon UA Посмотреть сообщение
Выбирал не входибельные домики и подставил примерно такие же по размеру.
Факт, но никаких потерь в фпс нет ни на клиенте, ни на сервере. Примерно получается 1600 объектов.

Есть конечно всякие мелкие недостатки в расстановке, но это мелочь в сравнение с тем что Чернарусь теперь играбельна вдвойне!

Цитата:
Сообщение от separatist, post: 2042440, member: 75450
Выбирал не входибельные домики и подставил примерно такие же по размеру.
Факт, но никаких потерь в фпс нет ни на клиенте, ни на сервере. Примерно получается 1600 объектов. Только естесно не проверял при 200 клиентах.

Есть конечно всякие мелкие недостатки в расстановке, но это мелочь в сравнение с тем что Чернарусь теперь играбельна вдвойне!
swa вне форума   Ответить с цитированием
Старый 02.05.2015, 09:05   #11
Dimon UA
Лейтенант
 
Аватар для Dimon UA
 
Регистрация: 16.10.2008
Адрес: Лисичанск-Москва-Севастополь
Сообщений: 1,231
Сказал cпасибо: 1,408
Поблагодарили 1,873 раз в 952 сообщениях
Цитата:
Сообщение от swa Посмотреть сообщение
Dimon UA,

Я так понял автор этого скрипта separatist? Может стоило указать источник или автора, а то из твоего сообщения складывается мнение что разработчик данного скрипта ты:
ты думаешь у меня на всех форумах один ник?
Включи видео в ютубе и посмотри что за ник у автора канала.
Dimon UA вне форума   Ответить с цитированием
Старый 03.05.2015, 04:51   #12
FenechkA
Майор
 
Аватар для FenechkA
 
Регистрация: 02.04.2011
Адрес: Чита, Забайкалье
Сообщений: 1,887
Сказал cпасибо: 469
Поблагодарили 1,299 раз в 730 сообщениях
Ярослав, separatist, это он и есть
FenechkA на форуме   Ответить с цитированием
Старый 03.05.2015, 09:56   #13
swa
Старшина
 
Аватар для swa
 
Регистрация: 24.06.2009
Сообщений: 499
Сказал cпасибо: 117
Поблагодарили 210 раз в 130 сообщениях
Цитата:
Сообщение от Dimon UA Посмотреть сообщение
ты думаешь у меня на всех форумах один ник?
Включи видео в ютубе и посмотри что за ник у автора канала.
Тогда сори, я не знал
swa вне форума   Ответить с цитированием
Старый 12.05.2015, 17:51   #14
Kalkhin
Старший сержант
 
Аватар для Kalkhin
 
Регистрация: 18.06.2013
Адрес: Cанкт-Петербург
Сообщений: 254
Сказал cпасибо: 102
Поблагодарили 153 раз в 94 сообщениях
Dimon UA, подскажите как сделать дома из скрипта не разрушаемыми?
_house allowDamage false; - это локальная команда и работает только на сервере.
Может быть:
PHP код:
_house addEventHandler ["HandleDamage",{false}];  
//или для сервера
_house enableSimulationGlobal false
?
Kalkhin вне форума   Ответить с цитированием
Старый 12.05.2015, 18:02   #15
Dimon UA
Лейтенант
 
Аватар для Dimon UA
 
Регистрация: 16.10.2008
Адрес: Лисичанск-Москва-Севастополь
Сообщений: 1,231
Сказал cпасибо: 1,408
Поблагодарили 1,873 раз в 952 сообщениях
Цитата:
Сообщение от Kalkhin Посмотреть сообщение
Dimon UA, подскажите как сделать дома из скрипта не разрушаемыми?
_house allowDamage false; - это локальная команда и работает только на сервере.
Может быть:
PHP код:
_house addEventHandler ["HandleDamage",{false}];  
//или для сервера
_house enableSimulationGlobal false
?
в скрипте 2 части: серверная и клиентская - добавь _house allowDamage false; туда и туда.
Dimon UA вне форума   Ответить с цитированием
Сказал спасибо (1):
Kalkhin (12.05.2015)
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 03:29. Часовой пояс GMT +3.

Powered by vBulletin®
Copyright ©2000 - 2017, vBulletin Solutions, Inc.

GMNET.RU © 2003-2017 || Дизайн студии vR