Форум Игромании
 
Регистрация
Справка
Пользователи Календарь Сообщения за день

"Пикник на обочине" Раздел по популярному проекту S.T.A.L.K.E.R.

Ответ
 
Опции темы
Старый 13.04.2007, 21:44   #1
Опытный игрок
 
Аватар для Jesh
 
Регистрация: 19.08.2007
Сообщений: 1,050
Репутация: 145 [+/-]
S.T.A.L.K.E.R. - Создание модов


Мануал по созданию модификаций для начинающих
Часть 1.
Часть 2.

Что необходимо:


Статьи участников:
Скрытый текст:
А
Активация артефактов
В
В Зоне только день
В Зоне только день способ 2
Вывод координат на екран
Выдача Волком оружия
Выдача оружия в ЧН
Д
Добавление транспорта
Динамические диалоги
Добавление новых локаций в ЧН и ЗП
И
Изменение первоначального инвентаря у Меченого(1-й урок читерства)
Имитация намокания дороги во время дождя
К
Как менять ломкость брони
Качание оружия при хотьбе
М
Материал про: активацию артефактов, добавление статей в ПДА, редактирование НПС, создание новой группировки, вычисление координат
Н
Настройка AI Wrapper от bardak'a
Настройка конвертора bardak'a
NPC покупают и продают оружие
Носимый вес
О
Описание Actor.ltx
П
Параметры оружия с описанием
Прорисовка уровня и изменение дистанции видимости
Прототип динамических новостей
Р
Работа с acdc от Bardak-a
Размер раны
Редактирование мультиплеерных карт, для последующего их запуска в сингле
С
Создание механика
Создание уровня для сингла
Создание нового оружия
Создание скриптовых роликов
Создание квеста
Создание нового НПС путём редактрирования all.spawn
Создание HUD модели оружия
Спавн предметов в инвентарь (2-й урок читерства)
Свойства костюмов
Cпавн монстра
Т
Транспорт в игре
У
Уменьшение сытости ГГ


Работы участников:

Разрабатываемые моды:
Скрытый текст:
antdiablon, Минор
Nacek 2


Полезные ссылки

Мод-портал. - Официальная вики по модам для сталкера (Не обновляется)
S.T.A.L.K.E.R. Inside Wiki. - Фанатская вики по модострою для сталкера.

X-Ray SDK. Ныне все вопросы с ним обсуждаются тут.
S.T.A.L.K.E.R. Universal Extractor.


Внимание: если Вы новичок, то сперва ознакомьтесь с мануалом по созданию модификаций для начинающих
При вылетах также прилагайте лог ошибки!!!

Последний раз редактировалось DoctorWagner; 26.02.2023 в 22:25.
Jesh вне форума  
Ответить с цитированием
Старый 04.03.2009, 20:51   #1561
Опытный игрок
 
Аватар для Jesh
 
Регистрация: 19.08.2007
Сообщений: 1,050
Репутация: 145 [+/-]
MoSkiT
попробуй закинуть то что хочь скомпилить на диск С и от тудова уже пробывать
эт где пишет:
Цитата:
S.T.A.L.K.E.R. all.spawn compiler/decompiler
Usage: acdc -d all.spawn [-o outdir]
acdc -c all.ltx [-f flag1 [,flag2[...]]] [-o outfile]
в командной строке?
какой ключ в батнике?
__________________
"Чем больше нас, тем меньше их..."
Jesh вне форума  
Ответить с цитированием
Старый 05.03.2009, 11:48   #1562
Новичок
 
Аватар для MoSkiT
 
Регистрация: 03.03.2009
Сообщений: 26
Репутация: 11 [+/-]
Скопировал на C, но выдает тоже сообщение. В командной строке.
MoSkiT вне форума  
Ответить с цитированием
Старый 05.03.2009, 17:51   #1563
Опытный игрок
 
Аватар для Jesh
 
Регистрация: 19.08.2007
Сообщений: 1,050
Репутация: 145 [+/-]
MoSkiT, напиши что именно в командной строке пишешь?
__________________
"Чем больше нас, тем меньше их..."
Jesh вне форума  
Ответить с цитированием
Старый 05.03.2009, 18:09   #1564
Игроман
 
Аватар для Yosh
 
Регистрация: 02.11.2008
Адрес: СПб
Сообщений: 2,268
Репутация: 591 [+/-]
Такой вопрос...
Я скинул локацию l12_stancia_2 из ТЧ в ЧН...
Как на нёё попасть? Есть ли какая нить команда для телепортации на нёё?
__________________
грусть. печаль. петербург.
Yosh вне форума  
Отправить сообщение для Yosh с помощью ICQ Отправить сообщение для Yosh с помощью Skype™ Ответить с цитированием
Старый 05.03.2009, 18:27   #1565
Новичок
 
Аватар для MoSkiT
 
Регистрация: 03.03.2009
Сообщений: 26
Репутация: 11 [+/-]
Все как в readme:
1. Создал пустую папку temp в локальном диске C. В команд. строку ввел C: \temp (без пробела естественно).
2. Скопировал туда файлы: acdc_10004_amk.exe и all.spawn
3. Выполнил команду "cmd" (ввел без ковычек), открылась консоль.
4. Выполнил команду "cd\".
5. Выполнил команду "cd C: \temp".
6. Выполнил команду "acdc_10004_amk -d all.spawn -o c: \temp".
7. Затем появились бегущие циферки. В папке temp появились файлы. Отредактировал файл alife_l07_military.
8. Вот тут то и начинается, ввожу "acdc_10004_amk -с all.ltx -o all.spawn" и вылезает та ошибка, о котрой писал выше.

P.S. 2 Yosh Вводишь в консоли: jump_to_level <название уровня>
Пример: jump_to_level l12_stancia_2.
P.P.S. Это малая L, а не |.

Последний раз редактировалось MoSkiT; 05.03.2009 в 18:41.
MoSkiT вне форума  
Ответить с цитированием
Старый 05.03.2009, 22:17   #1566
Опытный игрок
 
Аватар для Jesh
 
Регистрация: 19.08.2007
Сообщений: 1,050
Репутация: 145 [+/-]
Yosh, никак: геометрия уровней хоть и одна, но отличается AI сетка...
если хочешь что бы работал, то тебе потребуется её (АИ сетки) перекомпиляция...

MoSkiT, хм... можешь попробовать тулзами бардака, там вобьёшь следующее:
acdc.pl -c all.ltx -o all.spawn
скорее всего у тебя какая нить ошибка допущеная в правке .ltx
__________________
"Чем больше нас, тем меньше их..."
Jesh вне форума  
Ответить с цитированием
Старый 06.03.2009, 13:14   #1567
Новичок
 
Аватар для MoSkiT
 
Регистрация: 03.03.2009
Сообщений: 26
Репутация: 11 [+/-]
А куда вводить то? Там много файлов. Объясни пожалуйста.
MoSkiT вне форума  
Ответить с цитированием
Старый 07.03.2009, 14:16   #1568
Опытный игрок
 
Аватар для Jesh
 
Регистрация: 19.08.2007
Сообщений: 1,050
Репутация: 145 [+/-]
компиляция-декомпиляция all.spawn с помощью X-ray asset tools pack FINAL by bardak
для нормальной работы потребуется: ActivePerl
для того что бы скомпилировать all.spawn, твои файлы(alife_l01_escape.ltx, alife_l02_garbage.ltx и т.д. включая section2.bin) потребуется перенести в папку acdc там создать файл(название не имеет значения) с расширением .bat и в нём написать следующее:
acdc.pl -c all.ltx
после сохранения и запуска твоего .bat,появится командная строка, по истечению нескольких секунд она пропадёт и в дериктории появится файл с названием: all.spawn.new это и есть наш скомпилированый файлик, он готов -) только не забудь переименовать на all.spawn
__________________
"Чем больше нас, тем меньше их..."

Последний раз редактировалось Jesh; 19.04.2009 в 19:53.
Jesh вне форума  
Ответить с цитированием
Старый 11.03.2009, 16:11   #1569
Юзер
 
Аватар для Kohevnik
 
Регистрация: 17.09.2008
Адрес: 4 блок ЧАЭС
Сообщений: 261
Репутация: 36 [+/-]
Хочу изменить товар у Сидора. Какой файл править надо?
__________________
Лучшие карате нет, чем в кармане два ТТ.
Kohevnik вне форума  
Отправить сообщение для Kohevnik с помощью ICQ Ответить с цитированием
Старый 11.03.2009, 16:16   #1570
Гейммастер
 
Аватар для LogruS
 
Регистрация: 05.03.2007
Адрес: Московская обл.
Сообщений: 6,395
Репутация: 661 [+/-]
Kohevnik
Копайся в trade_trader. Не запутайся в нём только.
__________________
В электронике одно из первых мест занимает кувалда.
LogruS вне форума  
Отправить сообщение для LogruS с помощью ICQ Ответить с цитированием
Старый 12.03.2009, 00:29   #1571
Опытный игрок
 
Аватар для Jesh
 
Регистрация: 19.08.2007
Сообщений: 1,050
Репутация: 145 [+/-]
решил описать как в all.spawn редактировать что первоначально есть у ГГ(аля Меченого):
после того как мы декомпилируем всё тот же all.spawn (возможные способы описаные выше), у нас появятся файлы :
Скрытый текст:
alife_l01_escape.ltx
alife_l02_garbage.ltx
alife_l03_agroprom.ltx
alife_l03u_agr_underground.ltx
alife_l04_darkvalley.ltx
alife_l04u_labx18.ltx
alife_l05_bar.ltx
alife_l06_rostok.ltx
alife_l07_military.ltx
alife_l08_yantar.ltx
alife_l08u_brainlab.ltx
alife_l10_radar.ltx
alife_l10u_bunker.ltx
alife_l11_pripyat.ltx
alife_l12_stancia.ltx
alife_l12_stancia_2.ltx
alife_l12u_control_monolith.ltx
alife_l12u_sarcofag.ltx
all.ltx
way_l01_escape.ltx
way_l02_garbage.ltx
way_l03_agroprom.ltx
way_l03u_agr_underground.ltx
way_l04_darkvalley.ltx
way_l04u_labx18.ltx
way_l05_bar.ltx
way_l06_rostok.ltx
way_l07_military.ltx
way_l08_yantar.ltx
way_l08u_brainlab.ltx
way_l10_radar.ltx
way_l10u_bunker.ltx
way_l11_pripyat.ltx
way_l12_stancia.ltx
way_l12_stancia_2.ltx
way_l12u_control_monolith.ltx
way_l12u_sarcofag.ltx
section2.bin

для правки того с чем будет ГГ нам понадобится файл alife_l01_escape.ltx
откроем его при помощи любого .txt редактора, там увидим примерно следующее содержание:
Цитата:
[0]
; cse_abstract properties
section_name = breakable_object
name = meshes\brkbl#0.ogf
position = -79.4930877685547,-3.16186141967773,-76.9341430664063
direction = 0.581841766834259,-1.45571649074554,-0.267672836780548

; cse_alife_object properties
game_vertex_id = 0
distance = 0
level_vertex_id = 594270
object_flags = 0xffffffba

; cse_visual properties
visual_name = meshes\brkbl#0

; cse_alife_object_breakable properties
health = 1
поскольку мы, так сказать, пришли сюда с другой целью, перейдём к правке амуниции ГГ в самом начале, для этого находим секцию:
Скрытый текст:
[63]
; cse_abstract properties
section_name = actor
name = level_prefix_actor_0001
position = -246.726303100586,-24.7932605743408,-134.433868408203
direction = 0.00431653670966625,-1.39625442028046,-0.00068671052576974
s_flags = 0x29

; cse_alife_object properties
game_vertex_id = 4
distance = 0.699999988079071
level_vertex_id = 11713
object_flags = 0xffffffbf
custom_data = <<END
[dont_spawn_character_supplies]

[spawn]
wpn_binoc
detector_simple
END

; cse_visual properties
visual_name = actors\hero\stalker_novice

; cse_alife_creature_abstract properties
g_team = 0
g_squad = 0
g_group = 0
health = 1
dynamic_out_restrictions =
dynamic_in_restrictions =

upd:health = 1
upd:timestamp = 0x75732029
upd:creature_flags = 0x70
upd:position = -246.726303100586,-24.7932605743408,-134.433868408203
upd_model = 0
upd_torso = -1.39625442028046,0.00431653670966625,0
upd:g_team = 0
upd:g_squad = 0
upd:g_group = 0

; cse_alife_trader_abstract properties
money = 40
trader_flags = 0
character_profile = actor

; cse_ph_skeleton properties

; cse_alife_creature_actor properties

upd:actor_state = 0xd20
upd:actor_accel_header = 0
upd:actor_accel_data = 0
upd:actor_velocity_header = 0
upd:actor_velocity_data = 0
upd:actor_radiation = 0
upd:actor_weapon = 110
upd:num_items = 0

а теперь немного по подробней:
то что мы видим после секции [spawn] и до END и будет лежать у нас в самом начале игры(например wpn_binoc), если мы захотим читерства, и с самого начала игры что бы у нас был модернизированый АК м бронебойными патронами, аптечками и бронежелетом, то выглядеть это будет так:

Цитата:
[spawn]
wpn_binoc
detector_simple
stalker_outfit
device_torch
ammo_5.45x39_ap = 40
medkit = 40
wpn_ak74_m1
END
* = 40 , эт количество одной вещи(40 коробок с патронами, аптечек и прочее)

ну если захотели сначала игры много денег, то в секцию money впишем желаемое значение, например:

Цитата:
money = 4000
теперь сохраняем наши изменения, (сперва в alife_l01_escape.ltx , а потом компилируем наш all.spawn) заменяем исходный файл(при распакованой gamedata) или создаём gamedata в дериктории с игрой, потом в ней создаём папку spawns и туда уже кидаем наш all.spawn... теперь после начала игры у нас в рюкзаке модернизированый АК + 40 пачек бронебойных патров, да и сам ГГ в бронежелете сталкера с 4000 рублями в кармане
__________________
"Чем больше нас, тем меньше их..."
Jesh вне форума  
Ответить с цитированием
Старый 12.03.2009, 13:51   #1572
Юзер
 
Аватар для Kohevnik
 
Регистрация: 17.09.2008
Адрес: 4 блок ЧАЭС
Сообщений: 261
Репутация: 36 [+/-]
Почему у Сидора не появились те товары, которые я добавил. Даже сверх того у него продается теперь одна пачка дроби. Может я допустил ошибку...
Скрытый текст:
[supplies_after_fabric]
;Аммуниция
ammo_9x18_fmj = 10, 0.6
ammo_9x18_pmm = 10, 0.5
ammo_12x70_buck = 10, 0.5
ammo_9x19_fmj = 10, 0.6
ammo_9x19_pbp = 5, 0.3
ammo_545x39_fmj = 6, 0.5
ammo_12x76_dart = 5, 0.6

;Броники
novice_outfit = 3, 0.8
bandint_outfit = 1, 0.8

;Оружие
wpn_pm = 5, 0.5
wpn_pb = 2, 0.5
wpn_fort = 2, 0.5
wpn_bm16 = 3, 0.5
wpn_ak-74u = 2, 0.6
wpn_mp5 = 2, 0.7
wpn_hpsa = 1, 0.3
wpn_walter_99 = 2, 0.6


...или это может быть из за того, что сталкер без патчей?

Цитата:
burn_protection - коэффициент защиты от огня
strike_protection - коэффициент защиты от пуль
shock_protection - коэффициент защиты от молний
wound_protection - коэффициент защиты от кровотечений (?)
radiation_protection - коэффициент защиты от радиации
telepatic_protection - коэффициент защиты от телепатии
chemical_burn_protection - коэффициент защиты от хим. ожогов.
explosion_protection - коэффициент защиты от взрыва
fire_wound_protection - коэффициент защиты от кровотечений(от огня)
Я не уверен в правильности того, что я выделил. По моему:
strike_protection - это защита от удара;
wound_protection -защита от разрыва;
fire_wound_protection - пулестойкость.
__________________
Лучшие карате нет, чем в кармане два ТТ.

Последний раз редактировалось Kohevnik; 12.03.2009 в 14:19.
Kohevnik вне форума  
Отправить сообщение для Kohevnik с помощью ICQ Ответить с цитированием
Старый 12.03.2009, 17:27   #1573
Опытный игрок
 
Аватар для Jesh
 
Регистрация: 19.08.2007
Сообщений: 1,050
Репутация: 145 [+/-]
Kohevnik

Цитата:
ammo_9x18_fmj = 10, 0.6
ammo_9x18_pmm = 10, 0.5
ammo_12x70_buck = 10, 0.5
ammo_9x19_fmj = 10, 0.6
ammo_9x19_pbp = 5, 0.3
ammo_545x39_fmj = 6, 0.5
ammo_12x76_dart = 5, 0.6
как видно коефициент возможного появления не равен 1
смотри, расмотрим конкретный пример:

Цитата:
ammo_9x18_fmj = 10, 0.6
в 6 случаев из 10 будет в продаже 10 коробок патронов от ПМ
__________________
"Чем больше нас, тем меньше их..."
Jesh вне форума  
Ответить с цитированием
Старый 12.03.2009, 17:39   #1574
Юзер
 
Аватар для Kohevnik
 
Регистрация: 17.09.2008
Адрес: 4 блок ЧАЭС
Сообщений: 261
Репутация: 36 [+/-]
Jesh,

Я уже ставил на 1. Медикоменты, амуниция и еда появились, но оружия и брони нет. Хотя коефициент возможного появления равен 1.
__________________
Лучшие карате нет, чем в кармане два ТТ.
Kohevnik вне форума  
Отправить сообщение для Kohevnik с помощью ICQ Ответить с цитированием
Старый 12.03.2009, 19:40   #1575
Опытный игрок
 
Аватар для Jesh
 
Регистрация: 19.08.2007
Сообщений: 1,050
Репутация: 145 [+/-]
Скрипт спавна предметов в инвентаре (2-й урок читерства)
создал по примеру приведённом на: S.T.A.L.K.E.R. Inside Wiki

нам потребуюется один старый файл:
ui_main_menu*****ipt (scripts\)
и создать два новых:
ui_cheat*****ipt (scripts\)
ui_cheat_wnd.xml[/b] (config\ui\)

откроем наш ui_main_menu*****ipt
его читеровское содержание:
Скрытый текст:

Код:
-- File:        UI_MAIN_MENU*****IPT
-- Description: Load Dialog for STALKER
-- Created:     28.10.2004
-- Lasd edit:	18.01.2006
-- Copyright:   2004 GSC Game World
-- Author:      Serhiy Vynnychenko (narrator@gsc-game.kiev.ua)
-- Version:     0.9

class "main_menu" (CUIScriptWnd)

function main_menu:__init() super()
   self:InitControls()
   self:InitCallBacks()
end

function main_menu:__finalize()

end

function main_menu:InitControls()
	self:Init(0,0,1024,768)			  
    local xml = CScriptXmlInit()
    xml:ParseFile("ui_mm_main.xml")
     
    xml:InitStatic("back_movie", self)
    xml:InitStatic("background", self)
    xml:InitStatic("fire_movie", self)
    self.shniaga = xml:InitMMShniaga("shniaga_wnd",self);
	
	self.message_box = CUIMessageBoxEx()
	self:Register(self.message_box, "msg_box")	
end

function main_menu:Show(f)
	self.shniaga:SetVisibleMagnifier(f)
end


function main_menu:InitCallBacks()
	-- new game
	self:AddCallback("btn_novice",		ui_events.BUTTON_CLICKED,				self.OnButton_new_novice_game,		self)
	self:AddCallback("btn_stalker",		ui_events.BUTTON_CLICKED,				self.OnButton_new_stalker_game,		self)
	self:AddCallback("btn_veteran",		ui_events.BUTTON_CLICKED,				self.OnButton_new_veteran_game,		self)
	self:AddCallback("btn_master",		ui_events.BUTTON_CLICKED,				self.OnButton_new_master_game,		self)
	self:AddCallback("btn_spawn",		ui_events.BUTTON_CLICKED,				self.OnButton_load_spawn,			self)
	-- options																											
	self:AddCallback("btn_options",     ui_events.BUTTON_CLICKED,				self.OnButton_options_clicked,		self)
	-- load																												
	self:AddCallback("btn_load",        ui_events.BUTTON_CLICKED,				self.OnButton_load_clicked,			self)
	-- save																												
	self:AddCallback("btn_save",		ui_events.BUTTON_CLICKED,				self.OnButton_save_clicked,			self)
	-- multiplayer																										
	self:AddCallback("btn_multiplayer", ui_events.BUTTON_CLICKED,				self.OnButton_multiplayer_clicked,	self)
	-- quit																												
	self:AddCallback("btn_quit",		ui_events.BUTTON_CLICKED,				self.OnButton_quit_clicked,			self)
	self:AddCallback("btn_quit_to_mm",	ui_events.BUTTON_CLICKED,				self.OnButton_disconnect_clicked,	self)
	self:AddCallback("btn_ret",			ui_events.BUTTON_CLICKED,				self.OnButton_return_game,			self)
	self:AddCallback("btn_lastsave",	ui_events.BUTTON_CLICKED,				self.OnButton_last_save,			self)
	self:AddCallback("btn_credits",		ui_events.BUTTON_CLICKED,				self.OnButton_credits_clicked,		self)
	-- message box																										
	self:AddCallback("message_box",     ui_events.MESSAGE_BOX_OK_CLICKED,		self.OnMsgOk,						self)
	self:AddCallback("message_box",     ui_events.MESSAGE_BOX_CANCEL_CLICKED,	self.OnMsgCancel,					self)
	self:AddCallback("message_box",     ui_events.MESSAGE_BOX_YES_CLICKED,		self.OnMsgYes,						self)
	self:AddCallback("message_box",     ui_events.MESSAGE_BOX_NO_CLICKED,		self.OnMsgNo,						self)
	self:AddCallback("msg_box",			ui_events.MESSAGE_BOX_QUIT_GAME_CLICKED,self.OnMessageQuitGame,				self)
	self:AddCallback("msg_box",			ui_events.MESSAGE_BOX_QUIT_WIN_CLICKED,	self.OnMessageQuitWin,				self)
end

function main_menu:OnButton_last_save()
	local f = getFS()
	local flist = f:file_list_open_ex("$game_saves$",bit_or(FS.FS_ListFiles,FS.FS_RootOnly),"*.sav")
	local f_cnt = flist:Size()
	
	if f_cnt == 0 then
		return
	end
	
	flist:Sort(FS.FS_sort_by_modif_down)
	
	local file		=	flist:GetAt(0)
	local command = "load " .. string.sub(file:NameFull(), 0, (string.len(file:NameFull()) - 4))
	
	local console = get_console()
	console:execute("main_menu off")
	console:execute(command)
end

function main_menu:OnButton_credits_clicked()
--	local console = get_console()
--	console:execute("main_menu off")
	game.start_tutorial("credits_seq")
end

function main_menu:OnButton_quit_clicked()
	self.message_box:Init("message_box_quit_windows")
	self:GetHolder():start_stop_menu(self.message_box, true)
end

function main_menu:OnButton_disconnect_clicked()
	self.message_box:Init("message_box_quit_game")
	
	if (level.game_id() ~= 1) then		
		self.message_box:SetText("ui_mm_disconnect_message")	-- MultiPlayer
	else
		self.message_box:SetText("ui_mm_quit_game_message")		-- SinglePlayer
	end
	self:GetHolder():start_stop_menu(self.message_box, true)
end

function main_menu:OnMessageQuitGame()
	local console = get_console()
	console:execute("disconnect")
end

function main_menu:OnMessageQuitWin()
	local console = get_console()
	console:execute("quit")
end

function main_menu:OnButton_return_game()
	local console = get_console()
	console:execute("main_menu off")
end

function main_menu:OnButton_new_novice_game()
	local console = get_console()
	console:execute("g_game_difficulty gd_novice")
	self:StartGame()	
end

function main_menu:OnButton_new_stalker_game()
	local console = get_console()
	console:execute("g_game_difficulty gd_stalker")
	self:StartGame()
end

function main_menu:OnButton_new_veteran_game()
	local console = get_console()
	console:execute("g_game_difficulty gd_veteran")
	self:StartGame()
end

function main_menu:OnButton_new_master_game()
	local console = get_console()
	console:execute("g_game_difficulty gd_master")
	self:StartGame()
end

function main_menu:StartGame()
	local console = get_console()
	
	if (alife() ~= nil) then
		console:execute	("disconnect")	
	end
	
	console:execute("start server(all/single/alife/new) client(localhost)")
	console:execute("main_menu off")
end

function main_menu:OnButton_load_spawn()
	if self.spawn_dlg == nil then
		self.spawn_dlg = ui_spawn_dialog.spawn_dialog()
		self.spawn_dlg.owner = self
	end
	self:GetHolder():start_stop_menu(self.spawn_dlg, true)
	self:GetHolder():start_stop_menu(self, true) --new
	self:Show(false)
end

function main_menu:OnButton_save_clicked()
	if self.save_dlg == nil then
		self.save_dlg = ui_save_dialog.save_dialog()
		self.save_dlg.owner = self
	end
	
	self:GetHolder():start_stop_menu(self.save_dlg, true)
	self:GetHolder():start_stop_menu(self, true) --new
	self:Show(false)
end

function main_menu:OnButton_options_clicked()
	if self.opt_dlg == nil then
		self.opt_dlg = ui_mm_opt_main.options_dialog()
		self.opt_dlg.owner = self
	end
	
	self.opt_dlg:UpdateControls()
	self:GetHolder():start_stop_menu(self.opt_dlg, true)
	self:GetHolder():start_stop_menu(self, true) --new
	self:Show(false)
end

function main_menu:OnButton_load_clicked()
	if self.load_dlg ==nil then
		self.load_dlg = ui_load_dialog.load_dialog()
		self.load_dlg.owner = self
	end
	
	self:GetHolder():start_stop_menu(self.load_dlg, true)
	self:GetHolder():start_stop_menu(self, true) --new
	self:Show(false)
end

function main_menu:OnButton_multiplayer_clicked()
	if self.mp_dlg ==nil then
		self.mp_dlg = ui_mp_main.mp_main()
		self.mp_dlg.owner = self
	end
	self.mp_dlg:UpdateControls()
	self:GetHolder():start_stop_menu(self.mp_dlg, true)
	self:GetHolder():start_stop_menu(self, true) --new
	self:Show(false)
	
--	self.mp_dlg:OnBtn_Refresh()
	
	local console			= get_console()
	console:execute			("check_for_updates 0")
	
	self.mp_dlg:OnRadio_NetChanged()
end

function main_menu:OnMsgOk()
	local msg_box = self:GetMessageBox("message_box")
	msg_box:Hide()
end

function main_menu:OnMsgCancel()
	local msg_box = self:GetMessageBox("message_box")
	msg_box:Hide()
end

function main_menu:OnMsgYes()
	local msg_box = self:GetMessageBox("message_box")
	msg_box:Hide()
end

function main_menu:OnMsgNo()
	local msg_box = self:GetMessageBox("message_box")
	msg_box:Hide()
end

function main_menu:Dispatch(cmd, param)  --virtual function
	if cmd == 2 then
		self:OnButton_multiplayer_clicked()
	end
	return true
end

function main_menu:OnKeyboard(dik, keyboard_action)  --virtual function
	CUIScriptWnd.OnKeyboard(self,dik,keyboard_action)
	local bind = dik_to_bind(dik)
	local console = get_console()
	
	if keyboard_action == ui_events.WINDOW_KEY_PRESSED then
		if dik == DIK_keys.DIK_ESCAPE then
			if level.present() and (db.actor ~= nil) and db.actor:alive() then
				console:execute("main_menu off")
			end
		end
		
	-- раскоментируем и заоодно включим убранное спавн меню 
	if	dik == DIK_keys.DIK_S then
	self:OnButton_load_spawn()
	
	elseif 	dik == DIK_keys.DIK_Q then
	self:OnMessageQuitWin()
	-- а вот это обработка кнопки F1. при ее нажатии будет вызываться ф-ия OnButton_cheat()

	elseif 	dik == DIK_keys.DIK_F1 then
	self:OnButton_cheat()
	end
	end
   
	return true

end
	function main_menu:OnButton_cheat()
-- если еще ни разу не вызывали, то обозначим наш новый скрипт
	if self.cheat_dlg == nil then
		self.cheat_dlg = ui_cheat.cheat()
-- ui_cheat - эт название скрипта который мы создаём
		self.cheat_dlg.owner = self
	end
-- останавливаем родительский элемент, запускаем свой, но родителя показываем.
	self:GetHolder():start_stop_menu(self.cheat_dlg, true)
	self:GetHolder():start_stop_menu(self, true)
	self:Show(true)
end


как видно от оригинала отличается:


Код:
if	dik == DIK_keys.DIK_S then
	self:OnButton_load_spawn()
elseif 	dik == DIK_keys.DIK_Q then
	self:OnMessageQuitWin()
elseif 	dik == DIK_keys.DIK_F1 then
	self:OnButton_cheat()
end
убрав -- мы раскоментируем функции:
OnButton_load_spawn() тоесть включим спав меню при нажатии клавиши S
OnMessageQuitWin() - привязка к клавише Q мгновенного выхода из игры

Код:
elseif 	dik == DIK_keys.DIK_F1 then
	self:OnButton_cheat()
эт привязка кнопкой F1 функции OnButton_cheat(),

и сама функция:
Код:
function main_menu:OnButton_cheat()
-- если еще ни разу не вызывали, то обозначим наш новый скрипт
	if self.cheat_dlg == nil then
		self.cheat_dlg = ui_cheat.cheat()
-- ui_cheat - эт название скрипта который мы создаём
		self.cheat_dlg.owner = self
	end
-- останавливаем родительский элемент, запускаем свой, но родителя показываем.
	self:GetHolder():start_stop_menu(self.cheat_dlg, true)
	self:GetHolder():start_stop_menu(self, true)
	self:Show(true)
end
с ui_main_menu окончили, теперь создадим ui_cheat*****ipt со следующим содержанием:

Скрытый текст:
Код:
class "cheat" (CUIScriptWnd)
 
function cheat:__init(owner) super()
	self.owner = owner
	self:InitControls()
	self:InitCallBacks()
end
 
function cheat:__finalize()
 
end
 
function cheat:InitControls()
	self:Init(50,50,550,450)
	local xml = CScriptXmlInit()
	xml:ParseFile("ui_cheat_wnd.xml")
	xml:InitStatic("back_video", self)
	xml:InitStatic("background", self)
	self:Register(xml:Init3tButton("btn_1", self),"btn_1")
	self:Register(xml:Init3tButton("btn_2", self),"btn_2")
	self:Register(xml:Init3tButton("btn_3", self),"btn_3")
	self:Register(xml:Init3tButton("btn_4", self),"btn_4")
	self:Register(xml:Init3tButton("btn_5", self),"btn_5")
	self:Register(xml:Init3tButton("btn_6", self),"btn_6")
	self:Register(xml:Init3tButton("btn_7", self),"btn_7")
	self:Register(xml:Init3tButton("btn_8", self),"btn_8")
	self:Register(xml:Init3tButton("btn_9", self),"btn_9")
	self:Register(xml:Init3tButton("btn_quit", self),"btn_quit")
 
end
 
function cheat:InitCallBacks()
	self:AddCallback("btn_1", ui_events.BUTTON_CLICKED, self.cheat1, self)
	self:AddCallback("btn_2", ui_events.BUTTON_CLICKED, self.cheat2, self)
	self:AddCallback("btn_3", ui_events.BUTTON_CLICKED, self.cheat3, self)
	self:AddCallback("btn_4", ui_events.BUTTON_CLICKED, self.cheat4, self)
	self:AddCallback("btn_5", ui_events.BUTTON_CLICKED, self.cheat5, self)
	self:AddCallback("btn_6", ui_events.BUTTON_CLICKED, self.cheat6, self)
	self:AddCallback("btn_7", ui_events.BUTTON_CLICKED, self.cheat7, self)
	self:AddCallback("btn_8", ui_events.BUTTON_CLICKED, self.cheat8, self)
	self:AddCallback("btn_9", ui_events.BUTTON_CLICKED, self.cheat9, self)
	self:AddCallback("btn_quit", ui_events.BUTTON_CLICKED, self.on_quit, self)
end
 
function cheat:check_game()
	local check = false
	if level.present() and (db.actor ~= nil) and db.actor:alive() then
		check = true
	end
	return check
end
 
function cheat:on_quit()
	local console = get_console()
	self:GetHolder():start_stop_menu (self.owner, true)
	self:GetHolder():start_stop_menu (self,true)
	self.owner:Show	(true)
	if self:check_game() then
		console:execute("main_menu off")
	end
end
 
 
function cheat:OnKeyboard(dik, keyboard_action)
	CUIScriptWnd.OnKeyboard(self,dik,keyboard_action)
	if keyboard_action == ui_events.WINDOW_KEY_PRESSED then
 
		if     dik == DIK_keys.DIK_ESCAPE then self:on_quit()
		elseif dik == DIK_keys.DIK_NUMPAD1 then	self:cheat1()
		elseif dik == DIK_keys.DIK_NUMPAD2 then	self:cheat2()
		elseif dik == DIK_keys.DIK_NUMPAD3 then	self:cheat3()
		elseif dik == DIK_keys.DIK_NUMPAD4 then	self:cheat4()
		elseif dik == DIK_keys.DIK_NUMPAD5 then	self:cheat5()
		elseif dik == DIK_keys.DIK_NUMPAD6 then	self:cheat6()
		elseif dik == DIK_keys.DIK_NUMPAD7 then	self:cheat7()
		elseif dik == DIK_keys.DIK_NUMPAD8 then	self:cheat8()
		elseif dik == DIK_keys.DIK_NUMPAD9 then	self:cheat9()
		end
	end
	return true
end
 
 function cheat:spawn_item(spawn_item)
 	alife():create	(spawn_item, db.actor:position(),  db.actor:level_vertex_id(),
 			db.actor:game_vertex_id(), db.actor:id())
 end
 
function cheat:cheat1()
	-- колдуем СВД
	self:spawn_item("wpn_svd_m1", 3)
end
function cheat:cheat2()
	-- патроны к ней
	self:spawn_item("ammo_7.62x54_ap", 3)
end
function cheat:cheat3()
	-- патроны к ней
	self:spawn_item("ammo_7.62x54_ap", 3)
end
function cheat:cheat4()
	-- тест
	self:spawn_item("ammo_7.62x54_ap", 3)
end
function cheat:cheat5()
	-- тест
	self:spawn_item("ammo_7.62x54_ap", 3)
end
function cheat:cheat6()
	-- тест
	self:spawn_item("ammo_7.62x54_ap", 3)
end
function cheat:cheat7()
	-- тест
	self:spawn_item("ammo_7.62x54_ap", 3)
end
function cheat:cheat8()
	-- тест
	self:spawn_item("ammo_7.62x54_ap", 3)
end
function cheat:cheat9()
	-- тест
	self:spawn_item("ammo_7.62x54_ap", 3)
end


* тест - значения установленые на патроны к СВД

со скриптовой частью закончили, перейдём к настройке интерфейса, создадим ui_cheat_wnd.xml со следующим содержанием:
Скрытый текст:
Код HTML:
<cheat>	
	<background x="0" y="0" width="400" height="340" stretch="1">
		<texture x="0" y="0" width="350" height="460">ui\ui_dg_inventory</texture>
	</background>
 
	<back_video x="10" y="10" width="380" height="320" stretch="1">
		<texture>ui\1_hyuv_sq</texture>
	</back_video>
 
	<btn_1 x="20" y="30" width="117" height="29">
		<texture_e>ui_button_ordinary_e</texture_e>
		<texture_t>ui_button_ordinary_t</texture_t>
		<texture_h>ui_button_ordinary_h</texture_h>
		<text>wpn-svd</text>
	</btn_1>
 
	<btn_2 x="20" y="60" width="117" height="29">
		<texture_e>ui_button_ordinary_e</texture_e>
		<texture_t>ui_button_ordinary_t</texture_t>
		<texture_h>ui_button_ordinary_h</texture_h>
		<text>ammo-7.62x54-ap</text>
	</btn_2>
 
	<btn_3 x="20" y="90" width="117" height="29">
		<texture_e>ui_button_ordinary_e</texture_e>
		<texture_t>ui_button_ordinary_t</texture_t>
		<texture_h>ui_button_ordinary_h</texture_h>
		<text>Тест</text>
	</btn_3>
 
	<btn_4 x="20" y="120" width="117" height="29">
		<texture_e>ui_button_ordinary_e</texture_e>
		<texture_t>ui_button_ordinary_t</texture_t>
		<texture_h>ui_button_ordinary_h</texture_h>
		<text>Тест</text>
	</btn_4>
 
	<btn_5 x="20" y="150" width="117" height="29">
		<texture_e>ui_button_ordinary_e</texture_e>
		<texture_t>ui_button_ordinary_t</texture_t>
		<texture_h>ui_button_ordinary_h</texture_h>
		<text>Тест</text>
	</btn_5>
 
	<btn_6 x="20" y="180" width="117" height="29">
		<texture_e>ui_button_ordinary_d</texture_e>
		<texture_t>ui_button_ordinary_t</texture_t>
		<texture_h>ui_button_ordinary_h</texture_h>
		<text>Тест</text>
	</btn_6>
 
	<btn_7 x="20" y="210" width="117" height="29">
		<texture_e>ui_button_ordinary_d</texture_e>
		<texture_t>ui_button_ordinary_t</texture_t>
		<texture_h>ui_button_ordinary_h</texture_h>
		<text>Тест</text>
	</btn_7>
 
	<btn_8 x="20" y="240" width="117" height="29">
		<texture_e>ui_button_ordinary_d</texture_e>
		<texture_t>ui_button_ordinary_t</texture_t>
		<texture_h>ui_button_ordinary_h</texture_h>
		<text>Тест</text>
	</btn_8>
 
	<btn_9 x="20" y="270" width="117" height="29">
		<texture_e>ui_button_ordinary_d</texture_e>
		<texture_t>ui_button_ordinary_t</texture_t>
		<texture_h>ui_button_ordinary_h</texture_h>
		<text>Тест</text>
	</btn_9>
 
	<btn_quit x="270" y="300" width="117" height="29">
		<texture_d>ui_button_ordinary_d</texture_d>
		<texture_e>ui_button_ordinary_e</texture_e>
		<texture_t>ui_button_ordinary_t</texture_t>
		<texture_h>ui_button_ordinary_h</texture_h>
		<text>ui_inv_exit</text>
	</btn_quit>
 
</cheat>


после помещения файлов в нужные дериктории, при начале игры, заходим в главное меню, нажимаем F1 появится окошко, в котором будет несколько окон(9 штук) 2-е из которых рабочие, остальные тестовые(дают патроны к СВД) при желании можно поменять на что угодно

Скачать пример

P.S. ***** - . scr дижок форума автоматически заменяет
__________________
"Чем больше нас, тем меньше их..."

Последний раз редактировалось Jesh; 14.03.2009 в 12:21.
Jesh вне форума  
Ответить с цитированием
Старый 16.03.2009, 17:02   #1576
Новичок
 
Регистрация: 19.11.2008
Сообщений: 9
Репутация: 1 [+/-]
Помогите люди добрые!!! Кто знает как менять громкость радио на базе у бандитов а то у меня играет на всю карту .

Добавлено через 1 час 38 минут
кто знает как поставить автоматический огонь для СВД

Последний раз редактировалось Dimaq12; 16.03.2009 в 18:41. Причина: Добавлено сообщение
Dimaq12 вне форума  
Ответить с цитированием
Старый 16.03.2009, 18:53   #1577
Новичок
 
Аватар для ferrari314
 
Регистрация: 15.02.2008
Сообщений: 10
Репутация: 1 [+/-]
Dimaq12, в СДК пакете есть Соунд Эдитор. Там кроме всех параметров еще и расстояние на которое слышно звук.

В параметрах коружия - класс WP_LR300
fire_modes = 1, -1, 3 ; одиночным, автоматом и по три.
ferrari314 вне форума  
Отправить сообщение для ferrari314 с помощью ICQ Ответить с цитированием
Старый 16.03.2009, 20:11   #1578
Опытный игрок
 
Аватар для Jesh
 
Регистрация: 19.08.2007
Сообщений: 1,050
Репутация: 145 [+/-]
Dimaq12

Готовый w_gauss.ltx

Скрытый текст:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;
[wpn_gauss]:identity_immunities
GroupControlSection = spawn_group
discovery_dependency =
$spawn = "weapons\gauss" ; name and section in level editor
$npc = on
$prefetch = 8
scheduled = off ;[] option for ALife Simulator
cform = skeleton
class = WP_LR300 ; class of the weapon that corresponding to CPP class
min_radius = 30 ; [] for AI
max_radius = 100 ; [] for AI
description = enc_weapons1_wpn-gauss

ef_main_weapon_type = 2
ef_weapon_type = 6

;-----------------------------------------------------------------------------------
holder_range_modifier = 1.0 ; во сколько раз увеличивается eye_range
holder_fov_modifier = 0.7 ; во сколько раз увеличивается eye_fov
;-----------------------------------------------------------------------------------

cost =2000 ; the price of the item
weapon_class = assault_rifle ; the type of the box that will be used in buy-menu in

multiplayer mode

ammo_limit = 210 ; obsolete
ammo_elapsed = 10 ; obsolete

ammo_mag_size =10 ; clip (magazine) size
fire_modes = 1, -1

ammo_class =ammo_gauss ; name of the ltx-section of used ammo
grenade_class = ammo_vog-25, ammo_vog-25p ; name of the ltx-section of used

grenades
launch_speed = 0

hand_dependence = 1 ; how

many hands (1 or 2) we used to hold weapon in
single_handed = 0

slot = 2 ;

number of slot in inventory we put weapon in (1 - knife slot, 2 - pistol, 3 - rifle, 4 - grenade, 5 - apparatus)
animation_slot = 2 ; type of

the animation that will be used

inv_name = wpn-gauss ; name in

inventory
inv_name_short = wpn-gauss
inv_weight =3.3 ; weight in inventory

inv_grid_width = 5
inv_grid_height = 2
inv_grid_x = 10
inv_grid_y = 6

kill_msg_x = 0
kill_msg_y = 28
kill_msg_width = 84
kill_msg_height = 28

;-----------------------------------------------------------------------------------
; base dispersion
;
; === Setting of the weapon shooting dispersal parameter ===
ispersal consists from to basic constituents – dispersal of the weapon (relatively small). In fact, this is a

dispersal of a weapon griped in a vice; - dispersal of the weapon behavior in the hands of the host (if he

running, or walking or shoots in single shots or in a burst) is another, more significant factor of dispersal.
ispersal of the weapon depends only from basic dispersal, basket case factor ant time of the ammo.
ispersal of the way the host shooting (standing, running and etc.)
;Two types of shooting modes can be defined: - usual mode and zoomed mode.
;Usual mode: - depends from the position of the player while shooting (standing, sitting, walking and running)
;Zoomed mode – depends from the dispersal of the weapon and do NOT depends from the position of the shooter. In

that mode, dispersal of the weapon &laquo switches to;&raquo; sight swinging (created be effector).
;Weapon recoil in the game also created by recoil effector.
;
;-----------------------------------------------------------------------------------
;params of weapon recoil
fire_dispersion_base =0.001 ;угол (в градусах) базовой дисперсии оружия (оружия зажатого в

тисках)
control_inertion_factor = 1.25f

;отдача
cam_relax_speed =5;3.5; 0.15 ;скорость возврата в исходное положение
cam_dispersion = 0.15 ;увеличения угла (в градусах) с каждым выстрелом
cam_dispersion_inc = 0.3 ;увеличениe cam_dispersion с каждым выстрелом
cam_dispertion_frac = 0.9 ;ствол будет подыматься на

cam_dispersion*cam_dispertion_frac +- cam_dispersion*(1-cam_dispertion_frac)
cam_max_angle = 10.0 ;максимальный угол отдачи
cam_max_angle_horz = 20.0 ;(degree) maximum shot horizontal degree
cam_step_angle_horz = 1.1;1 ;(degree) size of step camera moved in horizontal

position while shooting

fire_dispersion_condition_factor =2 ;увеличение дисперсии в процентах при максимальном износе
misfire_probability =0.0003 ;вероятность осечки при максимальном износе
misfire_condition_k = 0.05
condition_shot_dec =0.0001 ;увеличение износа при каждом выстреле
;-----------------------------------------------------------------------------------

fire_point = 0,0.216,0.638 ; position (3rd person view) for

particles of fire
fire_point2 = 0,0.216,0.730 ; position (3rd person view) for

particles of fire (when shooting with secondary fire)

flame_particles = weapons\generic_weapon05 ; particles for shooting effects
smoke_particles = weapons\generic_shoot_00
grenade_flame_particles = weapons\generic_weapon01

shell_point = 0,0.216,0.174 ; position (3rd person

view) for shell to throw out
shell_particles = weapons\generic_shells ; name of the particles for shells

PDM_disp_base = 1.0
PDM_disp_vel_factor = 1.3
PDM_disp_accel_factor = 1.3
PDM_crouch = 1.0
PDM_crouch_no_acc = 1.0

; ttc
hit_power =0.35, 0.39, 0.42, 0.45 ; size of damage by bullet
hit_impulse =200 ; size of physic impulse by bullet
hit_type = fire_wound ; [] type of the wound
fire_distance =1000 ; maximum fire distance that bullet can fly
bullet_speed =900 ; starting bullet speed
rpm =600 ; max round per minute

use_aim_bullet = true ;Поддерживается ли первая суппер пуля
time_to_aim = 1.0

;params when silencer is attached
;similar to corresponding params without prefix silencer_

silencer_hit_power =0.38
silencer_hit_impulse =120
silencer_fire_distance =250
silencer_bullet_speed =600

hud = wpn_gauss_hud ; name of the section of the hud

position = -0.026,-0.172,0 ; position (offset) and orientation of

the weapon in the hands of character
orientation = 0,0,0 ; (3rd person view)

;--STRAP PARAMETERS-----------------------------------------------------------------
strap_position = -0.16,-0.40,0.15 ; position (offset) and orientation of

the weapon when it is strapped
strap_orientation = -10,-5,10 ; (3rd person view in degrees)
strap_bone0 = bip01_spine2
strap_bone1 = bip01_spine1

visual = weapons\gauss\wpn_gauss ; name of the model for 3rd person view

light_color = 0.6,0.5,0.3 ; params for light during

the fire
light_range = 5 ; radius
light_var_color = 0.05
light_var_range = 0.5
light_time = 0.2

ph_mass = 5 ; physic

mass (kg)

;addons
scope_status = 1
silencer_status = 0
grenade_launcher_status = 0

zoom_enabled =true ; (on,off)zoom mode (right mouse button)
scope_zoom_factor =50 ; fov for zoom mode

scope_texture = wpn\wpn_crosshair_l85
scope_name =wpn_addon_scope ; section name for the attachable scope
scope_x =60 ; offset in inventory icon
scope_y =-2
silencer_name =wpn_addon_silencer ; section name for the attachable silencer
silencer_x =218 ; offset in inventory icon
silencer_y =13
grenade_launcher_name =wpn_addon_grenade_launcher ; section name for the attachable grenade

launcher
grenade_launcher_x =116 ; offset in inventory icon
grenade_launcher_y =23

;sounds (name of the sound, volume (0.0 - 1.0), delay (sec))
snd_draw = weapons\svd_draw
snd_holster = weapons\generic_holster
snd_shoot = weapons\gauss_shoot
snd_empty = weapons\gen_empty, 0.5
snd_reload = weapons\gauss_reload, 0.7, 0.35
snd_shoot_grenade = weapons\gen_grenshoot
snd_reload_grenade = weapons\gen_grenload, 1.0, 0.8
snd_switch = weapons\groza_switch, 1.0, 0.5


;params when silencer is attached
;similar to corresponding params without prefix silencer_

;silencer_flame_particles = weapons\generic_weapon01
silencer_smoke_particles = weapons\generic_shoot_00

snd_silncer_shot = weapons\w_ak74_shot1

silencer_light_color = 0.6,0.5,0.3
silencer_light_range = 0.01
silencer_light_var_color = 0.05
silencer_light_var_range = 0.5
silencer_light_time = 0.2


;-----------------------------------------------------------------------------
;-- HUD DESCRIPTION
;-----------------------------------------------------------------------------

[wpn_gauss_hud]
allow_inertion = true

;similar to corresponding params in weapon section but for 1st person view

shell_point = -0.065000,0.000000,-0.045000
shell_dir = 0.0, 1.0, 0.0

fire_point = 0.09,0.020,-0.06
fire_point2 = 0.30, 0.00, 0.05
fire_bone = wpn_body

orientation = 0, 0, 0
position = 0, 0, 0
visual = weapons\gauss\wpn_gauss_hud.ogf

grenade_bone = wpn_grenade ; name of the bone in the model for grenade launcher

; animation names

anim_holster = holster
anim_idle = idle
anim_idle_aim = idle
anim_reload = reload
anim_draw = draw
anim_shoot = shoot


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;
;HUD offset in zoom mode (to all)
;(use CONSOLE: hud_adjust_mode 0,1,2, then keys WSADQE and P to show current value in console)

zoom_offset = -0.112400,0.016800,-0.115000
zoom_rotate_x = 0.000200
zoom_rotate_y = 0.017500

zoom_hide_crosshair = true ;to hide crosshair in zoom


; same as above, but for attached grenade launcher for
; in NORMAL shoot mode

grenade_normal_zoom_offset = -0.112500,0.014000,0.000000
grenade_normal_zoom_rotate_x = -0.000900
grenade_normal_zoom_rotate_y = 0.017200

; same as above, but for attached grenade launcher for
; in GRENADE mode

grenade_zoom_offset = -0.039600,-0.433100,0.000000
grenade_zoom_rotate_x = -0.538700
grenade_zoom_rotate_y = -0.033800



по примеру можно и СВД сделать
в файле много лишнего(переделывал АК74, что повлекло за собой много незадействованого), но всё работает, скорострельность как у АК
__________________
"Чем больше нас, тем меньше их..."

Последний раз редактировалось Jesh; 16.03.2009 в 21:56.
Jesh вне форума  
Ответить с цитированием
Старый 16.03.2009, 22:01   #1579
Новичок
 
Регистрация: 19.11.2008
Сообщений: 9
Репутация: 1 [+/-]
Спасибо народ теперь у меня супер гауска.
Dimaq12 вне форума  
Ответить с цитированием
Старый 16.03.2009, 22:03   #1580
Опытный игрок
 
Аватар для Jesh
 
Регистрация: 19.08.2007
Сообщений: 1,050
Репутация: 145 [+/-]
Dimaq12
воспользуйся этим и гауска у тебя будет на Кордоне -)
__________________
"Чем больше нас, тем меньше их..."
Jesh вне форума  
Ответить с цитированием
Ответ


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

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

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


Часовой пояс GMT +4, время: 16:51.


Powered by vBulletin® Version 3.8.0
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Rambler's Top100 Яндекс цитирования