Страница 29 из 46«1227282930314546»
Форум - Russian Tournament » Игры » UnrealED » Просьбы, подсказки, помощь.
Просьбы, подсказки, помощь.
GP
На счет разной брони в игре не тестировал, но вот в коде самой брони урон уменшаетса последовательно всем инвентарем, который дает такую возможность, даже коментарий добавили перед ReduceDamage:
Код
//
// Scan the player's inventory looking for items that reduce damage
// to the player.  If Armor's protection type matches DamageType, then no damage is taken.
// Returns the reduced damage.
//
Вероятно эта возможность была недоделана или даже выпилена из-за усложнения других аспектов создания механики игры, хз...
 
А Absorbtion он же в процентах, это сколько урона может поглотить бронь в процентах от нанесенного урона - остальное проходит дальше.
Gadavre
GP,
Удалось сделать общий урон для всего оружия в классе мутатора. Но это не совсем то, что мне нужно. Сделать более повышенный урон для отбойного молотка (ImpactHammer) никак не получается, а вот нужно.
В этом коде почему то компиллятору не нравиться  условие if

вместо other. DamageScaling = 1.0; писал также ActualDamage *= 1.0; но безрезультатно...
GP
Gadavre, вы похоже вообще без понятия как основные вещи роботают...
"weapon W" это просто обьявление переменной, что мол W у нас типа Weapon. Но сама переменная пустая, в ней еще ничего нет. Сами подумайте, ну где у вас определяетса к какому именно Weapon обращатса? ведь одновременно на коарете их существует много, даже у одного игрока их несколько... а где перебор всех пушек и выбор нужной? Тем более раз переменная локальня, этот код вообще роботать не может никак.
ActualDamage тем более локальная переменная другой функцым и вообще актора, к ней доступа без переопределения не получить.
А ошыбка в строчке if возможно из-за отсутствия развернутой проверки, тоесть не 
Код
if (W.IsA('ImpactHammer'))

а
Код
if (W.IsA('ImpactHammer') == true)
Gadavre
Цитата GP ()
вы похоже вообще без понятия как основные вещи роботают...
Так и есть. Смотрю код разных мутаторов и пытаюсь понять его. По другому никак, ведь на русском никто как делать скрипты не разжевал. Для новичков лишь написал немного Sandman ( http://sandmansvault.narod.ru )
Вот нашел мутатор, который ставит различный урон на пушки.  С него пытался сделать дэмидж. Но он довольно громоздкий, работает с конфигом и почему то  в моем мутаторе   не заработал.  И многие уроны, типа от падения в кислоту мне не нужны. Могли бы Вы взглянуть его код , возможно вам удасться по логике этого мутатора написать мне скрипт в сжатой форме. Идея для моего мутатора та же  - дать возможность назначать отдельный урон для своей пушки ('TSniperRifle')  и для молотка ('ImpactHammer')
GP
Я писал уже, что для молотка отдельный урон поставить сложно, потому что он указан цыфрой а не переменной. Для чего вообще вам нужен импакт-хаммер в снайпер-арене?
Используйте например стандартную арену со своей пушкой:
Gadavre
Цитата GP ()
Для чего вообще вам нужен импакт-хаммер в снайпер-арене?
Без импакт хамера боты играют намного слабее - протестировано. Фишка моего мутатора -более сложная игра  с ботами и потому я стараюсь их сделать более опасными чем в стандартной игре. Чтобы никто больше не говорил, что боты ut99 слабее чем боты ut2004.
Цитата GP
Я писал уже, что для молотка отдельный урон поставить сложно, потому что он указан цыфрой а не переменной
В том мутаторе, что я дал урон указать цифрой  возможно
в ini  конфиге этого мутатора  пишем:

[UTToolbox.CustomizeDamage]
DamageScaling=1.000000
KnockbackScaling=1.000000
SelfDamageScaling=1.000000
SelfKnockbackScaling=1.000000
FellDamageScaling=1.000000
ZoneDamageScaling=1.000000
WeaponName[0]=ImpactHammer
WeaponDamageScaling[0]=1.000000

Если поставить значение  0.000000, то урон здоровью вообще ненаноситься. Но броня  почему то снимается, когда наносишь им удары в стену перед собой.
UberSoldier

Цитата
вы похоже вообще без понятия как основные вещи роботают...
Ему сначала нужно хотя бы понимать дефолты и примерно код, тогда и подсказки ему будут примерно понятны, а так это все равно что объяснять как построить ракету.

Infinite War v5.0.2 construction
UIP 2.0 - UIPP(UIP 2.1)
Gadavre
В общем  надоело мне тупо  подстраивать  чужой код под свой,  создам класс молотка и пропишу в нем урон. Да, дико, да много кода, но по другому без танцев с бубном видимо никак не назначить урон в классе мутатора на определенную пушку.

Цитата Gadavre
Ему сначала нужно хотя бы понимать дефолты и примерно код, тогда и
подсказки ему будут примерно понятны, а так это все равно что объяснять
как построить ракету.
Можно было бы сделать все намного проще,понятнее и гуманее. Просто поднапрячься один разок и написать туториал  для новичков с обьяснениями терминологии кода, что означают переменные, обьяснить синтаксис кода, как связать класс эффектов стрельбы и взрывов с классом пушки и  класс мутатора с остальными классами, как создать арену с нужным оружием и  т. д. Почитав такой  грамотный и подробный туториал с примерами  новичок сам сможет создавать свои скрипты  без распаковки десятков и сотен  чужих мутаторов. Так что если кто начинает задавать " легкий "  вопрос, то такому кодеру сразу даете ссылку на этот туториал. И в итоге всем будет от этого хорошо :) Ведь гораздо интереснее создать СВОЮ игру  сделанную от души, чем покупать в стиме с унылым геймплеем и кучей ошибок, не так ли?

p.s. Наверное с кодингом в ut4 еще сложнее, то то никого долгое время  не видно на форуме, кто бы пытался сделать мутатор для этой игры.
Куда катится игровая индустрия
UnShame
рофл
"Все вокруг виноваты в том, что я не могу в чем-то разобраться"
Цитата
Наверное с кодингом в ut4 еще сложнее, то то никого долгое время не видно на форуме, кто бы пытался сделать мутатор для этой игры.
facepalm https://forums.unrealtournament.com/

http://rusut.ru/_fr/14/links.txt
https://www.mediafire.com/folder/1ww9zpl63q2pc/RT
http://rusut.ru/files/dump/filesDump.html
GP
yaoming Я вот чесно не нахожу разници между c,c++,c#,java и unreal script (ибо знаю только достаточно для эфективного копипаста). Единственное что точно от них pascal и basic отличаютса, ну и C# имхо ближе к unreal script (наверно из-за того что роботает не напрямую).
Поэтому надо общие принцыпы програмирования подтянуть и все пойдет нормально.
И междуопрочим хаммер переделывать в плане урона не так долго.
Создать полную копию можно вообще одной строчкой:
Код
class myImpactHammer extends ImpactHammer;

а дальше переопределить две функцыи:
UnShame
Gadavre
Цитата GP ()
И междуопрочим хаммер переделывать в плане урона не так долго.
Спасибо за код, но вот проблема  привязать свой  новый класс хаммера ('Hammer') к классу мутатора. У меня теперь в инвентаре 2 хамера facepalm
Я прописал так

function ModifyPlayer(Pawn Other)
{
local inventory inv;
DeathMatchPlus(Level.Game).GiveWeapon(Other,"InstaSniper.Hammer");
DeathMatchPlus(Level.Game).GiveWeapon(Other,"InstaSniper.TSniperRifle");

if ( NextMutator != None )
NextMutator.ModifyPlayer(Other);
}


Просто новый класс хаммера добавился к старому. В итоге в инвенторе 3 пушки вместо двух. Как удалить стандартный хаммер ('ImpactHammer') не знаю...
В фунции function bool CheckReplacement(Actor Other, out byte bSuperRelevant) код
if ( Other.IsA('ImpactHammer') )
return false;

не удаляет стандартный молоток.
GP
Gadavre, используйте стандарную арену:

Код
class InstaSniperMutator expands Arena;

// эта функцыя должна перекрыть стандартную, чтоб не было бесконечных патронов...
function bool AlwaysKeep(Actor Other)
{
     if ( NextMutator != None )
     return ( NextMutator.AlwaysKeep(Other) );
     return false;
}

//сдесь добавляем в исключение, пилу например
function bool CheckReplacement(Actor Other, out byte bSuperRelevant)
{
   if (( Other.IsA('Weapon') ) && (!Other.IsA('ChainSaw')))
   {
      if (WeaponString == "")
         return false;
      else if ((WeaponString != "") && !Other.IsA(WeaponName))
      {
         Level.Game.bCoopWeaponMode = false;
         ReplaceWith(Other, WeaponString);
         return false;
      }
   }

   if ( Other.IsA('Ammo') )
   {
      if (AmmoString == "")
         return false;
      else if ((AmmoString != "") && !Other.IsA(AmmoName))
      {
         ReplaceWith(Other, AmmoString);
         return false;
      }
   }

   bSuperRelevant = 0;
   return true;
}

defaultproperties
{
     WeaponName=TSniperRifle
     AmmoName=InstAmmo
     WeaponString="InstaSniper.TSniperRifle"
     AmmoString="InstaSniper.InstAmmo"
     DefaultWeapon=Class'Botpack.ChainSaw' //а сдесь чтоб пила была сос тарта...
}
Gadavre
Цитата GP ()
DefaultWeapon=Class'Botpack.ChainSaw' //а сдесь чтоб пила была сос тарта...
А если я хочу чтобы не только  пила , но и снайперка  была со старта, то как бы Вы записали?
GP
Цитата Gadavre ()
то как бы Вы записали?
я бы записал на заборе yaoming
Ну уже ж делали... забыли? Или и не помнили?


Добавлено (19 Января 16, 01:22)
---------------------------------------------
А можно еще наоборот даже, дефолт веапон поставить снайперку, а вручную добавлять хаммер.

Gadavre
GP,
Ваш код работает и без глюков ura
Я видел подобный код в ресурсах игры, но не взял его на вооружениe, так как он отпугнул своим  замудренным синтаксисом. По крайней мере из десятков распакованных мной мутаторов оружия я нигде не встречал такой схемы и создалось впечатление , что он чем-то непрактичен.

Все -таки хотелось бы немного в нем разобраться, а не тупо что-то добавлять или убавлять.
1.
function bool CheckReplacement(Actor Other, out byte bSuperRelevant)
{
if (( Other.IsA('Weapon') ) && (!Other.IsA('ChainSaw')))


Я так понял, если указываем исключение то идет значок  && ( как он кстати читается?)  и  в исключении перед Other обязательно ставим знак восклицания?

2.
if (WeaponString == "")
return false;

Удаляем с карт все  стринги оружия .  Верно?

3.
else if ((WeaponString != "") && !Other.IsA(WeaponName))
{
Level.Game.bCoopWeaponMode = false;
ReplaceWith(Other, WeaponString);
return false;
}

Почему стоит здесь перед if словечко else? Что оно означает и когда его нужно использовать? Почему перед !Other  нет скобки? В приведенном выше коде (!Other.IsA('ChainSaw')))  скобка ведь есть? И как вообще понять эти строки?
Я понял так:  при любом стринге оружия добавляем в исключение имя снайперки и заменяем для каждого павна (other)  стрингом снайперки. Так или не так? Если так, то неясно зачем добавлять в исключение имя  нашей снайперки WeaponName. Нельзя заменить то, чего еще нет на карте.

Вот  эту строку Level.Game.bCoopWeaponMode = false; всегда нужно писать  так когда заменяем своим оружием ? Во многих мутаторах эту строку просто не пишут.
UberSoldier

Цитата
Наверное с кодингом в ut4 еще сложнее
Врятли, на сколько я понимаю там наоборот все упростили. К примерк редактор эффектов в 2004 и в ут4 как небо и земля, там он более простой и расширенный + по коду там вроде как пресеты есть(готовый код) чтоб не писать по нескольку раз одно и тоже. Скорее бы онс запилили, посмотреть охото как это будет выглядить.

Infinite War v5.0.2 construction
UIP 2.0 - UIPP(UIP 2.1)
GP
Gadavre
1. if - проверка, если то что в круглых скобках поле if равно true, то то что в фигурных скобках после if исполняетса, а если false, то исполняетса то, что в фигурных скобках после соответствующего else.
&& значит "и", тоесть чтобы то, что в круглых скобках после if стало true оба условия до и перед && должны стать true.
Исключение может быть позитивное или негантивное. Other.IsA('ChainSaw') равно true если Other есть экземпляром пилы. А нам нужно наоборот, чтобы в если Other это пила, то получать false, тогда даже если первое (до &&) условие будет ture, в общем получитса false. Проверка типа ( Other.IsA('ChainSaw') == true ) или ( Other.IsA('ChainSaw') != false )   даст true для пилы и false не для пилы. Знак восклицание значит "НЕ". != это не равно, следовательно !Other.IsA('ChainSaw')  всегда будет давать обратно значение к  Other.IsA('ChainSaw') .
2. Нет. Не верно. return возвращает значение функцыи, видели там вверху написано bool
function bool CheckReplacement(Actor Other, out byte bSuperRelevant)
это значит что CheckReplacement(Other, bSuperRelevant) возвратит или true или false.
в US после retrun функцыя прекращаетса, так как считаетса отработавшей.
3. Потому что смотри первый пункт, else исполняетса если НЕ исполняетса предидущий if. А в нем попросту еще одна проверка if. Перед Other нет скобки потому-что они там не обязательны.

Вообще устал писать да и бессмыслнно это. Эти вещи элементарны и относятса к любому c-подобному языку програмирования. Где-то &, где-то &&, где-то And а где-то и то и то - а суть одна и таже. 
Запишытесь на курсы что-ли, если не в состоянии самостоятельно разобратса - информацыи тонны разжеваной донемогу. У вас сложности не с unrealcript, а с пониманием принцыпов програмирования в общем.
Gadavre
Цитата GP ()
Вообще устал писать да и бессмыслнно это
Не не бесмысленно, по крайней мере для меня. Отнюдь не бесмысленно, если кто-то задаст вопрос по синтаксису, то можно теперь дать ссылку на эту страницу. Отнюдь не бесмысленно, ведь благодаря Нам с Вами на свет вышел мутатор для UT99 InstaSniper. И пусть он не навороченный  как Nali Weapons, тем не менее он может усилить интрес  к игре определенного контингента людей, не нашедшего подобного геймплея в поздних играх. Большое спасибо что  бескорыстно помогаете не только опытным, но и новичкам. Да и вряд ли кто-то еще будет Вас часто спрашивать как я.  А что касается курсов, то курсы разные бывают. Какой язык лучше поучить чтобы правильно понимать unreal script?

P.S.Народец нынче в большинстве своем в World оf Tanks ударился, да и в контру поигрывает, нынче творческих людей все меньше. Достаточно посмотреть  хотя бы  на то сколько карт  сделали за все время для ut99 и сколько например для ut3.
Давайте же радоваться , что кто-то еще испытывает стойкий интерес к кодингу и маппингу.
GP
Цитата Gadavre ()
сколько карт  сделали за все время для ut99 и сколько например для ut3
а для ut2004 прикинуть слабо будет? yoba
Цитата Gadavre ()
Давайте же радоваться
Да возрадуемся братья! Но в навороченой графике нет ничего плохого, тем более если остальные аспекты игры не отстают, остальное дело вкуса. Относительно синтакиса мои обьяснения по довольно убоги, если чесно. Если чесно, то лень расписывать как надо, так расписано много раз уже. Имхо учить надо основы создания алгоритмов на уровне блок-схем, суть обьектно-ориентированого програмирования, и математику главное, хотя б на уровне школы. Самый тяжелый язык - первый, а что учить - опять же дело вкуса - что угодно C-подобное.
Форум - Russian Tournament » Игры » UnrealED » Просьбы, подсказки, помощь.
Страница 29 из 46«1227282930314546»
Поиск: