10

» WarCraft 3 / Создание группы игроков

Имелось в виду группа игроков. Во вкладке действий с группой игроков есть функция добавления
10

» WarCraft 3 / Триггер для выявления утечек

VVelikolepniy:
Для удобства. Если его нет, добавь этот код:
function HandleCounter_Update takes nothing returns nothing
   local integer i = 0
   local integer id
   local location array P
   local real result=0
   loop
      exitwhen i >= 50
      set i = i + 1
      set P[i] = Location(0,0)
      set id = GetHandleId(P[i])
      set result = result + (id-0x100000)
   endloop
   set result = result/i-i/2
   loop
      call RemoveLocation(P[i])
      set P[i] = null
      exitwhen i <= 1
      set i = i - 1
   endloop
   call LeaderboardSetItemValue(udg_HandleBoardH,0,R2I(result))
endfunction

function HandleCounter_Actions takes nothing returns nothing
   set udg_HandleBoardH = CreateLeaderboard()
   call LeaderboardSetLabel(udg_HandleBoardH, "Счетчик")
   call PlayerSetLeaderboard(GetLocalPlayer(),udg_HandleBoardH)
   call LeaderboardDisplay(udg_HandleBoardH,true)
   call LeaderboardAddItem(udg_HandleBoardH,"Хэндлы",0,Player(0))
   call LeaderboardSetSizeByItemCount(udg_HandleBoardH,1)
   call HandleCounter_Update()
   call TimerStart(GetExpiredTimer(),0.05,true,function HandleCounter_Update)
endfunction

function InitTrig_HandleCounter takes nothing returns nothing
   call TimerStart(udg_TimerH,0,false,function HandleCounter_Actions)
endfunction
И создай переменную таймер с именем TimerH, и переменную таблицы лидеров с именем HandleBoardH
потом инициируй функцию InitTrig_HandleCounter
call InitTrig_HandleCounter()
10

» WarCraft 3 / Выявление утечек в коде имитации крипов в МОБА (как в Доте)

VVelikolepniy:
Но у него в способе тоже координаты есть, разве там точки не создаются?
Нет. Ты создаёшь точку по координатам, функцией Location(она возвращает точку). А Maniac_91 использует напрямую координаты.
Добавь себе эту функцию и используй ее
function CreateUnitsAndGivePointOrder takes player owner, integer units, integer id, real x, real y, real angle, string order, real x1, real y1 returns nothing
    local integer i = 0
	local unit u        
	loop
		set u = CreateUnit(owner,id,x,y,angle) 
		call IssuePointOrder(u,order,x1,y1) 
	    set i = i+1
	    exitwhen i >= units
	endloop
	set u = null
    return
endfunction
Вызов функции
call CreateUnitsAndGivePointOrder(Player(0),5,'h000',0,5300,0,"attack",0,-5300)
Аргументы: игрок-владелец, количество юнитов, ид юнита, координата спавна Х, координата спавна У, угол порота юнита, приказ, координата приказа Х, координата приказа У
10

» WarCraft 3 / Триггер для выявления утечек

этот способ работает только на версии варика ниже 1.24 т.к. использует RB
вставь себе в карту этот код
library handlecounter initializer InitTrig_HandleCounter
private timer Timer = CreateTimer()
private leaderboard HandleBoard

function HandleCounter_Update takes nothing returns nothing
   local integer i = 0
   local integer id
   local location array P
   local real result=0
   loop
      exitwhen i >= 50
      set i = i + 1
      set P[i] = Location(0,0)
      set id = GetHandleId(P[i])
      set result = result + (id-0x100000)
   endloop
   set result = result/i-i/2
   loop
      call RemoveLocation(P[i])
      set P[i] = null
      exitwhen i <= 1
      set i = i - 1
   endloop
   call LeaderboardSetItemValue(HandleBoard,0,R2I(result))
endfunction

function HandleCounter_Actions takes nothing returns nothing
   set HandleBoard = CreateLeaderboard()
   call LeaderboardSetLabel(HandleBoard, "Счетчик")
   call PlayerSetLeaderboard(GetLocalPlayer(),HandleBoard)
   call LeaderboardDisplay(HandleBoard,true)
   call LeaderboardAddItem(HandleBoard,"Хэндлы",0,Player(0))
   call LeaderboardSetSizeByItemCount(HandleBoard,1)
   call HandleCounter_Update()
   call TimerStart(GetExpiredTimer(),0.05,true,function HandleCounter_Update)
endfunction

function InitTrig_HandleCounter takes nothing returns nothing
   call TimerStart(Timer,0,false,function HandleCounter_Actions)
endfunction

endlibrary
для него нужен редактор JNGP xgm.guru/p/wc3/jassnewgenpack-r
10

» WarCraft 3 / Выявление утечек в коде имитации крипов в МОБА (как в Доте)

VVelikolepniy:
RemoveLocation(МОЯ ЛОКАЛЬНАЯ ПЕРЕМЕННАЯ). так?
Да. Но лучше запиши эти данные в глобальную переменную, это, вроде, оптимальнее, чем создавать каждый раз лок. переменные.
А и еще вопрос Я где то читал что юниты из отряда тоже остаются как переменные после смерти, это правда? Может тоже истить этих юнитов после смерти отдельным триггером?
Отчисти группу после использования call GroupClear(group). Возможно это поможет.
10

» WarCraft 3 / Два босса с одним здоровьем.

Регистрирую нанесение урона боссу А, затем сними только же хп боссу Б. И наоборот.
Примерно так:
если нужно что-то другое, опиши поподробнее.
Загруженные файлы
10

» WarCraft 3 / Как сделать плавающий текст?

Floating Text - Change (Last created floating text): Disable permanence - не помню, что делает
вроде, если включить, то текстагу нельзя будет установить время жизни
так и есть.
10

» WarCraft 3 / call DestroyGroup как сделать с массивом

call DestroyGroup(udg_ZombeLord[GetConvertedPlayerId(GetOwningPlayer(GetResearchingUnit()))])
10

» WarCraft 3 / Система Банов

Ilya107:
LordDracula:
Это бессмысленно, т.к. ничего не мешает игроку просто поменять ник.
Да и зачем кого-то банить в варике...
Ну чтобы правонарушителей небыло всяких рисовщиков и т.д.
Ну так они все равно будут. В боте мб есть смысл банить, а по нику в варике бесполезно,
как мне кажется.
10

» WarCraft 3 / Система Банов

Это бессмысленно, т.к. ничего не мешает игроку просто поменять ник.
Да и зачем кого-то банить в варике...
10

» WarCraft 3 / Баг с анимацией.

Я в этом деле абсолютный дилетант. Мне известны лишь признаки, которые я описал в вопросе. Модель в игре работает нормально, пока дело не касается добавленной мною анимации. Во время ее проигрывания, если юнит с такой моделью находится у самого края игровой камеры, он исчезает до тех пор, пока она не закончится
Это можно как-то исправить или недопустить?
10

» WarCraft 3 / Можно ли триггерно вызвать элемент интерфейса?

Это просто текст? Если да, то можно тексттагом выводить над юнитом, а звук триггерно включить. Могу сделать что-нибудь похожее, если надо.
10

» WarCraft 3 / ОТРЯДЫ

Можешь добавлять юнитам способность-маркер и чекать наличие оной
10

» WarCraft 3 / Юниты странно себя ведут

Смена угла во время передвижения юнитов не действует.
Ланд наполнен изначально водой. Потом я поднял острова через "Возвышенность: повысить". После немного прошелся сглаживанием. Управляя вручную можно так же заметить неточности в передвижении, юниты словно заангажированны в какую-то сторону заранее. Относительно камеры игрока, юниты "стремятся" расположиться немного левее точки, куда был получен приказ идти.
Да, управляя вручную, я тоже увидел подобный результат. Чем меньше дистанция приказа - тем ровнее двигаются юниты. Видимо, придется это использовать.
Это происходит на нескольких линиях. Да, сместив линии, идут плавнее. Но то, что я писал про неточность передвижения остается в силе. Отдавая приказ через shift это особенно заметно.
Komkozavr:
Это прям так важно? О.о
Он чуть-чуть отклоняется от прямой, это не страшно, если ты конечно не прям капец какой перфекционист
Не хотелось бы это так оставлять
Продублировал все условия на новую карту - аналогичная ситуация.
Загруженные файлы
10

» WarCraft 3 / как найти айди юнита

MATRITSA:
жали а есить возможносить добавить в юнита дополнителиный элемент типа целочисленая и задать например ей номер 1 и при обрашение к этому юниту получить доступ к этой переменой как к здоровю или мане
Есть SetUnitUserData и GetUnitUserData
10

» WarCraft 3 / Юниты странно себя ведут

Блокираторов нет. Сохр порядка я хз, что это.
Двигаются они так:
Но это еще не самый наглядный пример
Загруженные файлы
10

» WarCraft 3 / Урон от способности

Ну определённым скилом не знаю, но можно дать абилку рунного браслета. Выставив там отрицательное значение эффект будет соответствующим. Думаю, нормально без триггеров это не сделать