ПроектыЧто НовогоСкачатьСообществоПоддержкаКомпанияВакансии
Список форумов » Форум по миру S.T.A.L.K.E.R. » MOD-ы
Вопросы по программированию для S.T.A.L.K.E.R.-Team

« Предыдущих 10 сообщений | 1 ... 7 8 9 10 11 12 13 14 15 ... 312 | Следующих 10 сообщений »
Когда/Кем создано
Вопрос/ОтветНовые наверх Сортировка по убыванию
  18:13:50  26 Июня 2007
авторe-mailОтветить URL сообщенияНаверх
Reservoir dog
(Бывалый)
 
На форуме с: 06/26/2007
Сообщений: 86
я начинающий модостроитель, где можно скачать редакторы, если они есть вообще?
  19:22:55  26 Июня 2007
авторe-mailОтветить URL сообщенияНаверх
Arhet
Профи
 

 
На форуме с: 04/13/2007
Сообщений: 667
Блокнот (лучше Notepad плюс плюс), фотошоп с плагинами, MP SDK beta, xrSpawner, WinHex.
  11:43:55  27 Июня 2007
авторe-mailОтветить URL сообщенияНаверх
Malk0m
(Новичок)
 
На форуме с: 03/24/2007
 

Сообщение редактировал(а):
Malk0m
06/27/2007 11:48:30
Сообщений: 25

---ЦИТАТА---
вопрос:

есть ли у вертолёта функция реакции на появление вблизи него ГГ, наподобие реакции неписей-врагов , т.е. участвует ли он в а-лайфе? Как назначить ему нового врага - непися?
---КОНЕЦ ЦИТАТЫ---


По моему мнению к вертолёту A-life уж ни как не относится. Да есть проверки условий на появление других неписей и ГГ, например:

-- если актёр близко, то атаковать его
		if not actor_is_victim and actor_dist < 30*30 then
			table.insert( newbies, actor )
			actor_is_victim = true
		end

		-- вертолёт атакует новичков
		if not heli_mgr.enemy then
			-- актёра атаковать только один раз
			if newbies[1] and newbies[1]:id() == actor:id() then
				if actor_was_attacked then
					table.remove( newbies, 1 )
				else
					actor_was_attacked = true
				end


Это не совсем то, что вы хотели, это - проверка расстояния до ГГ, советую полистать скрипт escape_heli и heli_combat .
  13:24:28  27 Июня 2007
авторe-mailОтветить URL сообщенияНаверх
Lost_Stranger
(Бывалый)
 
На форуме с: 04/16/2007
Сообщений: 128
Malk0m, оно это, конечно, понятно.. но в heli_combat идёт обработка combat_enemy только на actor и nil, а все другие берутся по id, а это значит, что механизма автопоиска ближайшего врага-сталкера у вертолёта нет... вот только теперь дописать бы его.... но как?
  14:46:01  27 Июня 2007
авторe-mailОтветить URL сообщенияНаверх
Malk0m
(Новичок)
 
На форуме с: 03/24/2007
 

Сообщение редактировал(а):
Malk0m
06/27/2007 15:09:52
Сообщений: 25

---ЦИТАТА---
Malk0m, оно это, конечно, понятно.. но в heli_combat идёт обработка combat_enemy только на actor и nil, а все другие берутся по id, а это значит, что механизма автопоиска ближайшего врага-сталкера у вертолёта нет... вот только теперь дописать бы его.... но как?
---КОНЕЦ ЦИТАТЫ---


Получается, что иенно так. Откуда берётся id? Я думаю, что дописывать функцию определения непися врага для helicopter - себе дороже.
Если он видит только actor, то надо отдельно прописать/посмотреть как он работает с другими пар-трами. Попробую посмотреть...
ADDED

function heli_combat:set_enemy_from_custom_data( combat_enemy )
	if combat_enemy == nil then
		self.enemy_forgetable = true
	else
		if combat_enemy == "actor" then
			if db.actor then
				self.enemy_id = db.actor:id()
			else
				self:forget_enemy()
			end
		elseif combat_enemy == "nil" then
			self:forget_enemy()
		else
			self.enemy_id = id_by_sid( tonumber( combat_enemy ) )
		end

		if self.enemy_id then
			self.enemy_forgetable = false
			self.initialized      = false
		else
			self.enemy_forgetable = true
			self:forget_enemy()
		end
	end
end


Нужно долго разбирать этот скрипт, но как я понял, если вертолёт атаковал непись, то вертолёт его забудет, а актора - нет. Хотя хз откуда берётся id?Я запутался
  04:59:45  28 Июня 2007
авторe-mailОтветить URL сообщенияНаверх
Lost_Stranger
(Бывалый)
 
На форуме с: 04/16/2007
Сообщений: 128
Malk0m, в файле escape_heli.script есть такая конструкция:

level.object_by_id( id )

если переделать функцию в heli_combat на такую:

function heli_combat:set_enemy_from_custom_data( combat_enemy )
if combat_enemy == nil then
self.enemy_forgetable = true
else
if combat_enemy == "actor" then
if db.actor then
self.enemy_id = db.actor:id()
else
self:forget_enemy()
end
elseif combat_enemy == "nil" then
self:forget_enemy()
elseif combat_enemy == "stalker" then
self.enemy_id = level.object_by_id( "esc_shustryi" ):id ()
else
self.enemy_id = id_by_sid( tonumber( combat_enemy ) )
end

if self.enemy_id then
self.enemy_forgetable = false
self.initialized = false
else
self.enemy_forgetable = true
self:forget_enemy()
end
end
end

то, имхо, при передаче в скрипте вертолёта
combat_enemy=stalker
должен он будет нацеливаться на Шустрого, но вместо этого он атакует ГГ.....

а вот почему?
  09:31:00  28 Июня 2007
авторe-mailОтветить URL сообщенияНаверх
Malk0m
(Новичок)
 
На форуме с: 03/24/2007
Сообщений: 25
Ты переделал скрипт, который я те писал на пост выше. Я с ним игрался, но тоже вроде ни чего не получилось.
ADDED
Подожди... Он же вначале делает проверку на актора, а уж потом на шустрого, поэтому если ГГ ближе к вертолёту, то он его и мо4ит. Либо убери проверку актора, вообще, либо заспавнь вертолёт над шустрым и проверь. Всётаки попробуй убрать проверку на актора. И вообще распиши как ты проверял действие скрипта. Есть придчувствие, что где-то ещё необходимо прописать его поинты для атаки.ИМХО
  11:17:10  28 Июня 2007
авторe-mailОтветить URL сообщенияНаверх
Lost_Stranger
(Бывалый)
 
На форуме с: 04/16/2007
Сообщений: 128
Malk0m, работа функция проста... в файле-скрипте логики работы вертолёта переменной combat_enemy присваивается текстовое значение, а эта функция через if проверяет его, но если combat_enemy=stalker, то строка self.enemy_id = db.actor:id() выполняться не будет, и ГГ не должен становиться врагом вертолёту....

имхо, это происходит где-то в другом месте, но я никак не могу найти, где....
  13:45:47  28 Июня 2007
авторe-mailОтветить URL сообщенияНаверх
Reservoir dog
(Бывалый)
 
На форуме с: 06/26/2007
Сообщений: 86
извиняюсь если не потеме, но кто-нибудь объясните мне как увеличить (уменьшить) убойносьть и приближение прицела оружия, ну и еще что по изменению параметров? пожалуйста!
  14:34:16  28 Июня 2007
авторe-mailОтветить URL сообщенияНаверх
Malk0m
(Новичок)
 
На форуме с: 03/24/2007
 

Сообщение редактировал(а):
Malk0m
06/28/2007 15:13:06
Сообщений: 25

---ЦИТАТА---
извиняюсь если не потеме, но кто-нибудь объясните мне как увеличить (уменьшить) убойносьть и приближение прицела оружия, ну и еще что по изменению параметров? пожалуйста!
---КОНЕЦ ЦИТАТЫ---


Хм...Всё же очень просто. Ищешь в папке weapons оружие которое хочешь поменять -> меняешь параметры Про прицел, если ты имеешь в виду сами "палочки" прицела, ищешь в файле system.ltx (если не ошибаюсь, просто я сейчас без Сталкера). Если ты про приближение (дальность прицеливания) то ищи всё в той же папке weapons. Там всё очень просто и понятно, я даже пробывал прикручивать прицеливание к ножу ИМХО получился бред, но факт остаётся фактом.Уда4и.
ADDED
Сталкер рядом
Палочки прицеливания в system.ltx:

[hud_cursor]
;все размеры в процентах от длины экрана
cross_length		= 0.01					;длина "палочки" прицела
min_radius			= 0.0					;минимальный радиус прицела (при нулевой дисперсии)
max_radius			= 1.0					;максимальный радиус
radius_lerp_speed	= 0.08					;скорость интерполяции положений прицела
cross_color			= 24.7,67.7,66.7,12.0		;цвет прицела
disp_scale			= 0.08	


Для примера прицеливание для бинокля w_binoc, можешь это переделать для ножа и посмотреть, всё поймёшь:

.......
[b]zoom_enabled				= true[/b]
scope_texture				= wpnwpn_crosshair_bino
[b]scope_zoom_factor			= 7.5[/b]
.......


Также ищешь эти пар-тры в других, нужных тебе файлах оружия и меняешь.
 
Каждое слово должно быть не менее 3 букв.
Искать:    
Условия поиска:    - пробелы как AND    - пробелы как OR   
 
Список форумов » Форум по миру S.T.A.L.K.E.R. » MOD-ы
 

Все даты в формате День-Месяц-Год.


 
Наверх

Copyright © 1995-2021 GSC Game World. Все права защищены.
Этот сайт лучше всего просматривать в Internet Explorer 4.xx и выше, с поддержкой Javascript
При возникновении проблем обращайтесь к вебмастеру.
Продукты Opera Software не поддерживаются.
При возникновении ошибок в работе сайтов с использованием продуктов Opera Software обращайтесь
в службу поддержки Opera Software.