10

» WarCraft 3 / Магазин для локального игрока

Как вариант, итемы сделать через способности, при активации которых идет проверка на тип героя и выдача ему нужного итема с вычетом денег, единственная проблема может быть с иконкой и описанием, но и тут можно что-то придумать
10

» WarCraft 3 / Вопрос про таймер

Steal nerves:
  1. берете таймер + хэндл и хэш-таблица (это простой пример). И можно массивы перебирать каждый раз (есть еще XAT на cjass).
  2. в чем суть этого метода? берете при старте игры запускаете один таймер на все.
  3. при запуске триггера или функции сохраняете текущее время этого таймера, при повторном запуске сверяете текущее время и прошедшее (сохраненное) время
  4. таймер не обязательно удалять
вообще-то когда много таймеров работает это плохо, проседает. Лучше когда таймеров меньше было. Если у вас в течении игры работает 50 таймеров, не лучше ли сделать несколько?
есть еще баги с таймером xgm.guru/p/wc3/timer-exploit
смотри примеры, что скинул
насчет того, как пользоваться одним таймером в разных триггерах. Это в зависимости, того, что вы хотели сделать и как.
ну впринципе понял, хеш лучше не юзать, но к сожалению не шарю в структурах=\ правда этот таймер незапаузишь, что думаю плохо
10

» WarCraft 3 / [vJass] Основы работы со Структурами (Structs)

Hate:
И так как игроки в варкрафт привыкли делать говно желательно показать им каким образом структуры привязываются к хендлам (юнитам например) чтобы доставать их из ивентов и почему больле одного таймера в игре не нужно. Это реальные бенефитс и для основ вполне подходят.
я уже немного поговорил с клампом, и он подкинул идей по статье.
в основном я как раз и описал синтаксис и немного как это работает. словом да, всего понемногу. в плане есть развитие статьи с разбивкой на несколько этапов освоения, с основ до практических способов применения.
буду ждать)
10

» WarCraft 3 / способ оглушить

ssbbssc:
Сорян, надо было дописать - у меня есть возможность отловить момент крита, так как он у меня триггерный
GetLocalPlayer:
  • дать даммику баш и атаковать цель (преодолевает иммунитет)
вот этот вариант мне и интересен, хочется узнать настройки баша и дамми юнита, т.е. должен он быть мили\ренж, каким действием отдавать приказ на атаку (вроде видел attack once), а в самом баше что нужно отметить, чтобы дамми не промахнулся по цели
Diaboliko:
Так то руны никто не отменял. Да и баш+крит вроде срабатывают одновременно в пассивках, разве нет?
quq_CCCP:
Эмм у критов и так есть настройки баша, да и баша есть настройки крита, т.е баши могут множить урон как и криты, криты и баши - способности клоны, с разными ветками действий в коде...
Все верно, и изначально способность так и была реализована, но с внедрением новых технологий :D требуется и новый баш
ImbaStyle:
дать ему стан и скастовать на цель
GetLocalPlayer:
  • дать даммику молот бурь и применить на цель.
этот способ самый простой, но он сбивает щиты от магии\амулеты
JaBeN_Симфер:
Читай интересные факты в статье xgm.guru/p/wc3/attackmod
свежие статьи я читаю, и мелисскину статью прочел не один раз
СОбытие, условие - твой крит
Действия
Создать юнит Дамми(любой юнит, у которого убираешь модель, атаку и тд)
добавить способность юниту (твой стан(например молот бурь))
Результат приказа при наведении на цель - юнит (приказать Дамми "молот бурь" атакованный юнит)
Удалить Дамми из игры
10

» WarCraft 3 / Где можно прочитать про структуры "для чайников"?

Курс начинающего xgm.guru/p/wc3/jassintroduction
не настолько чайников...
GetLocalPlayer:
Оригинал
Хреновый перевод
Курс начинающего xgm.guru/p/wc3/jassintroduction
Курс начинающего описывает обычный Jass2. Структуры начинаются с vJass.
да читал я этот документ еще давно и перечитывал, мне все там непонятно, например какой синтаксис и для чего юзать, а так же как пользоваться двумерными массивами вместо хеш таблицы (с инглишом траблы, ибо у меня в школе его небыло)
10

» WarCraft 3 / способ оглушить

Как ты сделаешь стан без спелов? Тебе нужно отловить момент критического удара и к примеру создать дамика, дать ему стан и скастовать на цель
10

» WarCraft 3 / Любые агрументы в функциях

Steal nerves:
void - это nothing то есть ничего не возвращает функция, а саму функции называют doTheThing, а unit u - аргументы функции, мануалы про cjass почитай (хотя я тоже соглашусь, что написано очень плохо в мануалах. Нужно попробовать немного самим пописать коды)
можно представить как (если хорошо понимаешь jass)
function doTheThing takes unit u returns nothing
... //что-то делаешь с юнитом u (берем аргумент функции - unit u)
endfunction
GetMyUnit - такой не существует, видимо Док имеет в виду подставить свою переменную
пример
например составил пример функции - определить уровень абилы юнита. Функция называется LV, u - юнит, id - целое число, равкод абилы. Возвращает целое число (уровень абилы).
function LV takes unit u, integer id returns integer
return GetUnitAbilityLevel(u, id)
endfunction 
'A000' - равкод абилы
local integer lv = LV(GetTriggerUnit(), 'A000') //узнаем уровень героя
и честно не понял вопрос темы?
Эта функция берет переменную u, а что если я вызываю функцию, где этот юнит записан не в u, а напримерв в caster, тут конечно все просто, можно перед вызовом функции записать переменную caster в u,, вобщем на этом закрываю свой вопрос,, сам затупил конкретно:)
10

» WarCraft 3 / хранить функцию в макросе cjass define?

AntiMage:
ImbaStyle, символы слияние ##
а какие символы разбивания про разбивку чечи не шло же
u1 = GetTriggerUnit(); u2 = GetEnumUnit() (можно писать в одну строку, но символ ";" - это перенос строки)
10

» WarCraft 3 / хранить функцию в макросе cjass define?

AntiMage:
ImbaStyle, я для начала тоже так думал), много раз пытался использовать его как написано на мануал, короче про конструирование макросов слишком коротко написалина cjass manual любой человек не поймет такую статью
я ее сам не до конца понял, но прочитав 1 раз стал активно использовать, есть там плюшки, которые я долго искал, типо дефайнов, слияния и разбиванияя строк)
10

» WarCraft 3 / Любые агрументы в функциях

Doc:
Значит естественно плохо читал. Где ты увидел здесь копию?
значит я тебя не понял, непонял этот код =_=
10

» WarCraft 3 / Любые агрументы в функциях

Doc:
Ты это пытался читать?
Показываю на пальцах
void doTheThing(unit u) {
// ...
}

unit unitOne = GetTriggerUnit()
unit unitTwo = GetMyUnit()

doTheThing(unitOne)
doTheThing(unitTwo)
Это?
естественно читал, а остальное что-то не совсем понял, то есть ты предлагаешь для всевозможных юнитов сделать копию функции с разным аргументами?
10

» WarCraft 3 / Любые агрументы в функциях

ssbbssc:
на ум приходит разве что мемхак
если я правильно понимаю и ты пытаешься писать на более "примитивном, машинном" уровне и получить быстродействия
не быстродействие, а многогранность использования функций, мемхак вообще нехочу использовать (хотя он дает очень многое, что мне нужно, но я стараюсь добиться всего без него). Вопрос пока не закрываю, мб что-то можно сделать без хака
10

» WarCraft 3 / Любые агрументы в функциях

ssbbssc:
переменная по сути - адрес к ячейке памяти с той или иной информацией
можно использовать переменные, но если тебе нужно делать действия с юнитом - нужен сам юнит - нужна ссылка на него
вопрос не совсем мне понятен
нужно использовать глобалки?
смотри: native UnitDamageTarget takes unit whichUnit - здесь мы можем подставить любую переменную типа юнит, которая нам необходима в этом месте, в своих же изначально есть локальная или глобальная переменная, и при обращении к функции можно использовать именно ее и никакую другую. Как моэно добиться того, чтобы свою функция принимала любые переменные типа юнит как натвка?
10

» WarCraft 3 / Любые агрументы в функциях

Doc:
Что значит не важно?
native UnitDamageTarget takes unit whichUnit, widget target, real amount, boolean attack, boolean ranged, attacktype attackType, damagetype damageType, weapontype weaponType returns boolean
берет юнит, при том не важно, он занесен в переменную u1 или u2 или какую-либо еще
10

» WarCraft 3 / Любые агрументы в функциях

Doc:
Можно плиз пример того как ты примерно хочешь это видеть в коде?
как сделаны нативки, вот простой пример: UnitDamageTarget(u1,u2,dmg,false,false,ATTACK_TYPE_NORMAL,DAMAGE_TYPE_NORMAL,null)
берет два юнита, при том не важно в каких они переменных
10

» WarCraft 3 / Как создать юнит через получение предмета?

Событие - получает прдмет
Условие - прдмет который надо
Действие - Создать юнит, либо замнетить(прверащение): так же вариант, когда подбирает нужный предмет, давать скил трансформа и приказать его заюать
10

» WarCraft 3 / Количество ударов

Событие - получает урон
integer i=0
if i<5 then
set i = I+1
else
KillUnit(Boss)
endif
10

» WarCraft 3 / Сильно ли нагружает вар Хэш таблица?

Hate:
пример - папка Mechanic, триггер Structs, самый верх
используйте структуры (vjass)
Я бы с радостью, но только позавчера прочитал про сиджасс, англ язык не знаю, русской статьи нет, сам хочу научиться их юзать, но увы
10

» WarCraft 3 / Локальный бафф с проверкой баффа

ssbbssc:
локальный - на машине конкретного юзера, не путать с mui/mpi (муи - действует для каждого юнита, mpi - для каждого игрока)
все баффы будут действовать, хоть их там будет штук 100 (хотя я столько еще не вешал)
тоже самое касается и тригго баффов, которые легко реализовать с помощью запрещенного спеллбука и как сказал quq_CCCP - таймера
даже если бафф не отображается, но его точно вешали на юнита - система его найдет
а если ты пытаешься сделать бафф Palus Knight из Lineage II - поиграйся с отрицательным по урону берсерком (где кстати есть и скорость бега), или со спеллом свитка скорости
хотя легче будет просто обложить юнита блокираторами прохода на время действия, потому что полную остановку сделать без костылей не удастся
да именно тот скил, с берсом изначально хотел сделать, только про шифт+ентер недавно узнал (не мог сделать отриц значение), спасибо, попробую
10

» WarCraft 3 / Локальный бафф с проверкой баффа

quq_CCCP:
Для этого нужно делать таймеры, и сохранять в хештаблицу на хендл юнита - при каждом касте проверять, а существует ли таймер если существует то стартануть снова, иначе создать новый и зацепить на юнита, так бафф бует обновляться как стандартные баффы.
Статьи про jass можно найти в поиске, думаю ты быстро освоишься и сделаешь всена jass.
спасибо, придется всетаки разобраться, но что на счет подвопросов с кол-вом бафов, не знаешь?
10

» WarCraft 3 / Локальный бафф с проверкой баффа

да про скорость и сам понял, а в джасе не шарю, пытался что-то понять по статьям, но видно это не мое) А локальный имеется ввиду мультипользовательский)
quq_CCCP:
Что за "Локальный бафф" ?
Муи способности лучше не делать на гуи, а скорость лучше добавлять аурами, ибо ты не вернешь ту скорость которая была у юнита до баффа, не говоря о дебаффах.
да и ктому же я так и не понял насчет большого кол-ва бафов, и мне желательно чтобы при касте скила вешался только один бафф-дебафф