bis_fnc_destroyCity

Edytor Arma (Arma, Arma2, Arma2OA)

Moderatorzy: kondor, Inkwizytor

ODPOWIEDZ
fdd
Posty: 26
Rejestracja: 10 czerwca 2010, 20:20
ID Steam:
ID gracza: 0

bis_fnc_destroyCity

Post autor: fdd »

Witam

Mam problem z funkcją bis_fnc_destroyCity. Nie potrafię jej uruchomić, wiem jak należy ustawić jej parametry, wertowałem google godzinami jednak za nic w świecie nie chce u mnie działać, czy to uruchamiana w init.sqf czy skryptem czy trigerem. W żadnej konfiguracji nie daje się zmusić do działania.

Chcę zrównać z ziemią Czarnoruś na swoim serwerze, skrypt z setDammage 1 nie wchodzi w grę bo wybuchające budynki mogą zabić graczy.

Próbowałem między innymi tak:
z kordami:

Kod: Zaznacz cały

[[10042.5,1914.28,0],5000,42] call bis_fnc_destroyCity; 
z markerem:

Kod: Zaznacz cały

["marker",500,42,[bis_vila]] call bis_fnc_destroyCity; 

Kod: Zaznacz cały

waituntil {!isnil "bis_fnc_init"};
["marker",500,42] call bis_fnc_destroyCity;
etc...

Będę wdzięczny za pomoc.
fdd
Posty: 26
Rejestracja: 10 czerwca 2010, 20:20
ID Steam:
ID gracza: 0

Re: bis_fnc_destroyCity

Post autor: fdd »

Spróbowałem więc w taki sposób

Kod: Zaznacz cały

if (!isServer) exitWith {};

diag_log "destroyer test";

// zmienne

_pozycja	=	[];
_buildings	=	[];

_safedist	=	50;
_treeshold	=	0.005;
_obszar		=	25;

_core = {
	waitUntil {count (nearestObjects [_pozycja, ["Man"], _safedist]) < 1};
	_buildings = _pozycja nearObjects ["house", _obszar];
	{_x setdamage 1} foreach _buildings;
	sleep _treeshold;
		};


// Elektro - Kamieniczki
_pozycja	=	[10042.5,1914.28,0];
_obszar		=	25;
call _core;

// Elektro - Metalowa Wiata
_pozycja	=	[10011.2,1841.01,0];
_obszar		=	25;
call _core;

// Elektro - Rusztowania
_pozycja	=	[10189.9,1933.96,0];
_obszar		=	25;
call _core;

// i tak dalej...
Nawet byłoby i fajnie gdyby nie to, że skrypt odpala każdy klient. Budynki się 'odbudowują' i niszczą jeszcze raz.
Skrypt na potrzeby serwera dayz.

uruchamiam go przez init.sqf w mission.pbo

Kod: Zaznacz cały

if (isServer) then {
mbnqdestroyers=[] execVM "scripts\mbnqdestroyer.sqf";
};
Chciałbym żeby skrypt uruchamiał się tylko raz, np w chwili podłączenia się pierwszego klienta po restarcie.
Myślałem nad użyciem prostej zmiennej np. wykonany = 1 i publicVariable na końcu, a na początku if wykonany == 1 exitWith {}, ale czy to by zadziałało ? przypuszczam, że jest jakiś prostszy sposób na wykonanie skryptu tylko raz ? :)


edit:
Problem rozwiązany. Wystarczyło

Kod: Zaznacz cały

[]execVM "\z\addons\dayz_server\system\mbnqdestroyer.sqf";
dodać w

Kod: Zaznacz cały

dayz_server.pbo\init\server_functions.sqf
W 1.7.6.1 działało, ale nigdy nie wykorzystałem bo obawiałem się, że gracze będą rozkładać w ruinach namioty , a skrypt by je niszczył. Wprawdzie w 1.7.7.1 już nie da się rozkładać namiotów w budynkach, więc powinien działać, ale leń we mnie wstąpił :D
ODPOWIEDZ

Wróć do „Edycja oraz tworzenie misji, skrypty oraz programowanie”