Перейти к публикации

Welcome to Call of Duty Black Ops , Call of Duty: Modern Warfare 3, COD2, COD4, COD4, MW2, Call of Duty War, CallofDuty Black Ops - В России!





Простейшие моды


  • Вы не можете создать новую тему
  • Please log in to reply
117 replies to this topic

#21 Гражданский_loover_*

Гражданский_loover_*
  • Гости

Отправлено 01 July 2007 - 19:47

Zlyden
Спасибо за идею, я уже отредактировал файлик _weapons. ) Но все равно поделись )

#22 Гражданский_loover_*

Гражданский_loover_*
  • Гости

Отправлено 01 July 2007 - 19:56

Zlyden
Подскажи, как сделать второе меню, для выбора пистолетов и всего такого )?

#23 Гражданский_loover_*

Гражданский_loover_*
  • Гости

Отправлено 05 July 2007 - 22:55

Как сделать, чтобы при попадании в голову появлялась определенная надпись и проигрывался звук?

#24 Prodavec

Prodavec

    Подполковник

  • Офицеры
  • PipPipPipPipPip
  • 775 Сообщений:

Отправлено 06 July 2007 - 04:59

Если модов нет то в каждом типе игры есть функция Callback_PlayerDamage() и Callback_PlayerKilled() В них вписывай проверки sHitLoc на "helmet" и "headshot". Если условие выполнено, то [entity] iprintln()/[entity] iprintlnbold() для вывода текста и [entity] playSound() для воспроизведения звука. В скобках [] необязательные аргументы
(+)
"Высшая привилегия снайпера - даровать и отнимать жизнь" © к/ф Снайпер

#25 Гражданский_loover_*

Гражданский_loover_*
  • Гости

Отправлено 06 July 2007 - 08:51

Prodavec
Спасибо за подсказку! Можешь запостить пример скрипта? Куда вписывать я нашел, но с синтаксисом проблемы (. Есть же где-то в скриптах записи о надписях, появляющтхся при фатальном попадании в противника.

зы. В предыдущем своем посте я имел ввиду надпись, которая появлялась бы при МОЕМ ПОПАДАНИИ в голову противника. Но было бы неплохо, чтобы и у противника она появлялась.

#26 Prodavec

Prodavec

    Подполковник

  • Офицеры
  • PipPipPipPipPip
  • 775 Сообщений:

Отправлено 07 July 2007 - 06:37

Такс, ну что такое при "фатальном", т.е. при наступлении смерти или при достижении какого то определнного числа урона или здоровья? Наверное первое :D Тогда копаем функцию Callback_PlayerKilled(). Возьмем например режим TDM, это файл iw_15.iwd\maps\mp\gametypes\tdm.gsc

Будет что-то вроде этого

Callback_PlayerKilled(eInflictor, attacker, iDamage, sMeansOfDeath, sWeapon, vDir, sHitLoc, psOffsetTime, deathAnimDuration)
{

...

// нас интересуют аргументы:
// attacker - entity того кто атаковал (убил) игрока,
// self - entity в чей инстанции (instance) выполняется эта ф-я, а именно жертва аттакера,
// iDamage - нанесенный урон,
// sMeansOfDeath - причина смерти,
// sHitLoc - элемент хитбокса в который попали.

...

   if(self.pers["team"] == attacker.pers["team"]) // killed by a friendly
    attacker.score--;
   // для тимкилла никаких действий не пишем

   else
   {
    // тут выполняются действия при убийстве врага.
    attacker.score++;
    teamscore = getTeamScore(attacker.pers["team"]);
    teamscore++;
    setTeamScore(attacker.pers["team"], teamscore);
    checkScoreLimit();

    // Можем вписать свои кастомные действия сюда,
    // тогда на последнем убийстве надписей нее будет,
    // или в начало блока else, без большой разницы.
    // ---

    // 1. Если попадание в голову или каску то проигрывать
    // наши эффекты и текст
    if(sHitLoc == "headshot" || sHitLoc == "helmet")
    {

     // 2. Воспроизведем звук для атакующего, что он
     // крутой перец :D
     attacker thread playSound("krutoi_man_headshot");

     // 3. Выведем ему текст что он отец )))
     attacker iprintlnbold("Yow man! Yo're ^1ACCKIY SOTONA^7!!!");

     // 4. Воспроизведен звук для жертвы, получившей хед
     self thread playSound("pozor_mne");

     // 5. Напишем ему что он нуб :D
     self iprintlnbold("Ty polniy lamer, ubei sebia ap stenu");
    }
   }
...


Можно строки сделать localizedstrings по желанию, тогда WARNING не будет выводится в консоли сервера ри каждом таком сообщении, засоряя лог. Звук надо подготовить в редакторе, положить в папку sound, создать soundalias'ы, в нашем случае:

soundaliases\mymod_sounds.csv

name,sequence,file,vol_min,vol_max,vol_mod,pitch_min,pitch_max,dist_min,dist_max,channel,type,probability,loop,masterslave,loadspec,subtitle,compression,secondaryaliasname,volumefalloffcurve,startdelay,speakermap,reverb,lfe percentage

# headshot sound FX
krutoi_man_headshot,,hs_fx/krutoi_man_headshot.wav,0.85,,,,,50,500,auto,,,,
pozor_mne,,hs_fx/pozor_mne.wav,0.85,,,,,50,500,auto,,,,


Соотвественно WAV'ки и soundalias поместить в IWD и дать клиенту его скачать (автоматом естессно). Либо воспользоваться каким нибудь стоковым звуком, если не охота что-то передавать.
(+)
"Высшая привилегия снайпера - даровать и отнимать жизнь" © к/ф Снайпер

#27 Гражданский_loover_*

Гражданский_loover_*
  • Гости

Отправлено 07 July 2007 - 21:50

пасиб, чувачок! буду ковырять! спикают, при насморке медитация над исходным кодом очень помогает! ))) отпишусь ).

на что еще можно проверить sHitLoc или iDamage? щас мне не с кем поиграть на моей мапе. хотелось бы увидеть надписи при подрыве на гранате, например.

#28 Prodavec

Prodavec

    Подполковник

  • Офицеры
  • PipPipPipPipPip
  • 775 Сообщений:

Отправлено 10 July 2007 - 08:19

iDamage - это число int получаемого урона от attacker. Оно как правило порядка 0-150 (урон от оружия), но может быть и очень большим, например если ты на своей карте установишь урон для килл-триггера 10000 как это сделано на прилагаемой матмате в качестве примера с Радиантом.

sHitLoc - как ты понял это название элемента хитбокса куда попали, может принимать следующие значения (тип string):
  • "head"
  • "helmet"
  • "neck"
  • "torso_upper"
  • "torso_lower"
  • "right_arm_upper"
  • "right_arm_lower"
  • "right_hand"
  • "left_arm_upper"
  • "left_arm_lower"
  • "left_hand"
  • "right_leg_upper"
  • "right_leg_lower"
  • "right_foot"
  • "left_leg_upper"
  • "upper Left Leg "
  • "left_leg_lower"
  • "left_foot"

(+)
"Высшая привилегия снайпера - даровать и отнимать жизнь" © к/ф Снайпер

#29 Гражданский_loover_*

Гражданский_loover_*
  • Гости

Отправлено 10 July 2007 - 15:41

Твои ответы как всегда радуют, но не могли бы мы общаться несколько оперативней? По аське или мылу? Есть еще несколько вопросов и, кажется, лишь ты здесь можешь на них ответить.

Ответь тут или в личку (на мыло).

ps. если не секрет, где ты узнаешь инфу по скриптингу?

#30 Prodavec

Prodavec

    Подполковник

  • Офицеры
  • PipPipPipPipPip
  • 775 Сообщений:

Отправлено 11 July 2007 - 01:01

К сожалению оперативнее никак не могу, работаю целый день и занят другими вещами, извиняй :D Инфу беру из собсвтенного опыта при работе со скриптами, модами (в т.ч. и расковыривания чужих модов), созданием карт и прочего. Иногда заглядываю на форум http://iwnation.com/, иногда на http://scriptwiki.com/ На русском сайте Корпорации маппер тоже бываю, ну вообщем так по немногу и набирается инфы.

(+)
"Высшая привилегия снайпера - даровать и отнимать жизнь" © к/ф Снайпер

#31 Гражданский_loover_*

Гражданский_loover_*
  • Гости

Отправлено 11 July 2007 - 18:08

нет проблем!
эти сайты мне тоже знакомы, а что за сайт Корпорации мапперов?

#32 Prodavec

Prodavec

    Подполковник

  • Офицеры
  • PipPipPipPipPip
  • 775 Сообщений:

Отправлено 12 July 2007 - 01:29

http://mappingcod.3dn.ru/
(+)
"Высшая привилегия снайпера - даровать и отнимать жизнь" © к/ф Снайпер

#33 Гражданский_loover_*

Гражданский_loover_*
  • Гости

Отправлено 12 July 2007 - 22:04

Насчет звука при хедшоте. При запуске КД2 постоянно вылетает ошибка скрипта .csv (кот. в папке soundaliases). Все пути корректны, в папках есть файл с таким именем. Вот строчки кода:


name,sequence,file,vol_min,vol_max,vol_mod,pitch_min,pitch_max,dist_min,dist_max,channel,type,probability,loop,masterslave,loadspec,subtitle,compression,secondaryaliasname,volumefalloffcurve,startdelay,speakermap,reverb,lfe percentage

# Headshot,,,,,,,,,,,,,,,,,,,,,
headshot,,headshot/headshot.mp3,0.85,,,,,50,500,auto,,,,

#34 Prodavec

Prodavec

    Подполковник

  • Офицеры
  • PipPipPipPipPip
  • 775 Сообщений:

Отправлено 13 July 2007 - 02:51

А что за ошибка то? В консоли то наверняка полезная информация пишется, запускай всегда сервер в режиме developer 2, должно написаться.

Кусок csv взятого с рабочей карты, звук открывающейся двери, работает на 100%

name,sequence,file,vol_min,vol_max,vol_mod,pitch_min,pitch_max,dist_min,dist_max,channel,type,probability,loop,masterslave,loadspec,subtitle,compression,secondaryaliasname,volumefalloffcurve,startdelay,speakermap,reverb,lfe percentage

# doors
door_open,,doors/door_open.wav,0.85,,,,,50,500,voice,,,,,mp_dust,,,,,,,,

Заместо mp_dust впиши имя своей карты, если с каналом voice будет работать, поставь потом в окончательном варианте auto
(+)
"Высшая привилегия снайпера - даровать и отнимать жизнь" © к/ф Снайпер

#35 Гражданский_loover_*

Гражданский_loover_*
  • Гости

Отправлено 13 July 2007 - 17:06

Вот что пишется в консоли: (скриншот)

Если я удалю .csv из соундалиаса:

******* script compile error *******
unknown function: @ 1571
************************************
вот мой кусок скрипта:
if(sHitLoc == "head" || sHitLoc == "helmet")
{
attacker thread playSound("headshot");
attacker iprintlnbold( "Headshot");
}
Сообщение выводится, а звук не играет (

Еще про звук. В топике http://callofduty.ru...wtopic=4822&hl= ты пишешь:
...звук останавливался и игрался другой. В мануале прочитал:
Цитата
playsound(<aliasname>, <notification string>, <stoppable flag>)
Module
...
Что это за мануал и где его можно качнуть?

Присоединенные файлы

  • Присоединенный файл  Untitled_2.jpg   16.18К   42 Количество скачиваний


#36 Prodavec

Prodavec

    Подполковник

  • Офицеры
  • PipPipPipPipPip
  • 775 Сообщений:

Отправлено 14 July 2007 - 09:36

Решил разобраться собственноручно :D

Итак, подготавливаем звук. Формат файлов у нас будет wav и mp3, для примера покажу что можно пользоваться обоими.

1. Сами звуковые файлы:

\sound\loover\Melnica-Gospodin_gornyh_dorog.wav - 44100kHz, 16 bit, Mono
\sound\loover\Melnica-Gospodin_gornyh_dorog.mp3 - 44100kHz, 16 bit, Mono, Lame 3.97 q0 320 kbps (пережат в CDex)

2. Алиасы:

\soundaliases\loover.csv

name,sequence,file,vol_min,vol_max,vol_mod,pitch_min,pitch_max,dist_min,dist_max,channel,type,probability,loop,masterslave,loadspec,subtitle,compression,secondaryaliasname,volumefalloffcurve,startdelay,speakermap,reverb,lfe percentage

# loover sound test
melnica_mp3,,loover/Melnica-Gospodin_gornyh_dorog.mp3,0.85,,,,,50,500,auto,streamed,,,
melnica_wav,,loover/Melnica-Gospodin_gornyh_dorog.wav,0.85,,,,,50,500,auto,,,,


3. Код:

maps\mp\gametypes\dm::Callback_PlayerKilled()
...

// Если попали в головку ))) то
if(sHitLoc == "head" || sHitLoc == "helmet")
{
attacker playLocalSound("melnica_wav");
attacker iprintlnbold( "Headshot, playing wav version");
}

// В противном случае, если попали в верхнюю или нижнюю часть тела то
else if(sHitLoc == "torso_upper" || sHitLoc == "torso_lower")
{
attacker playLocalSound("melnica_mp3");
attacker iprintlnbold( "Popali v telo, playing mp3 version");
}
...

Отличия от предыдущего варианта, это использование функции playLocalSound и отсутсвие ключевого слова thread. Код и звуки были проверены при игре по сети на живых игроках :D 100% рабочий вариант.
(+)
"Высшая привилегия снайпера - даровать и отнимать жизнь" © к/ф Снайпер

#37 sERGE-002

sERGE-002

    Подполковник

  • Офицеры
  • PipPipPipPipPip
  • 895 Сообщений:
  • Пол:Мужской

Отправлено 14 July 2007 - 11:57

thread для встроенных функций не прокатит :D
Потому и ошибка
Размещенное изображение
cod.proc.ru

#38 loover

loover

    Рядовой

  • Рядовые
  • 41 Сообщений:

Отправлено 17 July 2007 - 20:41

Prodavec
Чет не работает :\ Есть какие-нить мысли по этому поводу? Делал все один-в-один.

Если есть желание, посмотри мою мапу с этим скриптом.

Присоединенные файлы

  • Присоединенный файл  mp_cubbe.iwd   57.3К   8 Количество скачиваний


#39 Prodavec

Prodavec

    Подполковник

  • Офицеры
  • PipPipPipPipPip
  • 775 Сообщений:

Отправлено 20 July 2007 - 14:33

Мда, я же специиально привел два разных варианта использования - с WAV и MP3 ! Всего делов то точно скопировать с форума строчки:

name,sequence,file,vol_min,vol_max,vol_mod,pitch_min,pitch_max,dist_min,dist_max,channel,type,probability,loop,masterslave,loadspec,subtitle,compression,secondaryaliasname,volumefalloffcurve,startdelay,speakermap,reverb,lfe percentage

# headshot
headshot,,headshot/headshot.mp3,0.85,,,,,50,500,auto,streamed,,,

Карту в папку отдельную как мод, комм. строка:

start /normal CoD2MP_s.exe +set fs_game mp_cubbe +set dedicated 2 +set developer 2 +set sv_punkbuster 0 +set sv_pure 0 +devmap mp_cubbe

Подключаешься к своему серверу, в консоли пишешь developer 2 и тогда ты готов к отладке. Если имя файла не верно - Unable open file "..." from alias "...", если неправильные параметры алиаса, то смотри консоль сервера и свою консоль на налицие сообщений вида Couldn't load streamed file ..... или ему подобные.
(+)
"Высшая привилегия снайпера - даровать и отнимать жизнь" © к/ф Снайпер

#40 loover

loover

    Рядовой

  • Рядовые
  • 41 Сообщений:

Отправлено 22 July 2007 - 18:41

Все Ок. В моем соундалиасе был один необозначеный параметр.
Теперь все воркает! Спасибо за помощь! :<:




0 посетителей читают эту тему

0 пользователей, 0 гостей, 0 анонимных пользователей