Ну можно координаты камеры игрока. Но там нужен синк в кеше, чтобы небыло десинха, а это уже ни ГУИ.
Вот примитивный пример получение и сохранения координат камеры игрока:
scope PlayerRelated initializer InitPlayers
globals
force AllPlayers = null
trigger gg_trg_PlayerLeft = null
playerevent bj_enumPlayerEventId = null
player array PL
gamecache data
endglobals
function TriggerRegisterPlayerEventEnum takes nothing returns nothing
call TriggerRegisterPlayerEvent( bj_destInRegionDiesTrig, GetEnumPlayer( ), bj_enumPlayerEventId )
endfunction
function TriggerRegisterForceEvent takes trigger trig, force forforce, playerevent id returns nothing
set bj_destInRegionDiesTrig = trig
set bj_enumPlayerEventId = id
call ForForce( forforce, function TriggerRegisterPlayerEventEnum )
endfunction
function Trig_Player_Left_Actions takes nothing returns nothing
call ForceRemovePlayer( AllPlayers, GetTriggerPlayer( ) )
endfunction
function IsSlotPlayer takes player pl returns boolean
return GetPlayerSlotState( pl ) == PLAYER_SLOT_STATE_PLAYING and GetPlayerController( pl ) == MAP_CONTROL_USER
endfunction
function InitPlayers takes nothing returns nothing
set AllPlayers = CreateForce( )
set gg_trg_PlayerLeft = CreateTrigger( )
set data = InitGameCache( "Data.w3v" )
set bj_forLoopAIndex = 0
loop
exitwhen bj_forLoopAIndex > bj_MAX_PLAYERS
set PL[bj_forLoopAIndex] = Player( bj_forLoopAIndex )
if IsSlotPlayer( PL[bj_forLoopAIndex] ) then
call ForceAddPlayer( AllPlayers, PL[bj_forLoopAIndex] )
call TriggerRegisterPlayerEvent( gg_trg_PlayerLeft, PL[bj_forLoopAIndex] , EVENT_PLAYER_LEAVE )
endif
set bj_forLoopAIndex = bj_forLoopAIndex + 1
endloop
call TriggerAddAction( gg_trg_PlayerLeft, function Trig_Player_Left_Actions )
endfunction
endscope
function Trig_Get_Player_Screen_Cord_Conditions takes nothing returns boolean
return true
endfunction
function Trig_Get_Player_Screen_Cord_Actions takes nothing returns nothing
local player pl = GetTriggerPlayer( )
local real dx = 0.00
local real dy = 0.00
if GetLocalPlayer( ) == pl then
set dx = GetCameraEyePositionX( )
set dy = GetCameraEyePositionY( )
else
set dx = 0.00
set dy = 0.00
endif
call StoreReal( data, "Cord", "X", dx )
call StoreReal( data, "Cord", "Y", dy )
call TriggerSyncStart( )
if GetLocalPlayer( ) == pl then
call SyncStoredReal( data, "Cord", "X" )
call SyncStoredReal( data, "Cord", "Y" )
endif
call TriggerSleepAction( 2.00 )
call TriggerSyncReady( )
set dx = GetStoredReal( data, "Cord", "X" )
set dy = GetStoredReal( data, "Cord", "Y" )
// далее делаем с коорданатами камеры что хочется!
call PingMinimapEx( dx, dy, 3.00, 255, 255, 255, true )
endfunction
//===========================================================================
function InitTrig_Get_Player_Screen_Cord takes nothing returns nothing
set gg_trg_Get_Player_Screen_Cord = CreateTrigger( )
set bj_forLoopAIndex = 0
loop
exitwhen bj_forLoopAIndex > bj_MAX_PLAYERS
if IsPlayerInForce( PL[bj_forLoopAIndex], AllPlayers ) then
call TriggerRegisterPlayerChatEvent( gg_trg_Get_Player_Screen_Cord, PL[bj_forLoopAIndex], "-GetCord", true )
endif
set bj_forLoopAIndex = bj_forLoopAIndex + 1
endloop
call TriggerAddCondition( gg_trg_Get_Player_Screen_Cord, Condition( function Trig_Get_Player_Screen_Cord_Conditions ) )
call TriggerAddAction( gg_trg_Get_Player_Screen_Cord, function Trig_Get_Player_Screen_Cord_Actions )
endfunction
Нафиг это гомно, сразу хештаблицу и все, темболее этот эксплоит не работает с переодическими твймерами, а не малое количество паразиьных действий намекает на низкую скорость этого алгоритма.
Не лагает, а загружается дольше - это да, лаги в мультиплеере связаны не с картой а с говвеным пингом до хоста, из за задержек и постоянных дисконектов.
А если лагает, то это скорее от хуёвого кода, моделей и т.д.?
Ну если начинает лагать через какое то время даже в сингле = код гомно.
Модели надо подгружать, ну неужели вы не слышали об этом?
Не лагает, а загружается дольше - это да, лаги в мультиплеере связаны не с картой а с говвеным пингом до хоста, из за задержек и постоянных дисконектов.
Если охото сделать зарыды со счетчиком то тут 2 пути:
Юзать стандартные абилки со счетчиком зарядов, а их только 2 совы охотницы и вспышки орудийного расчета гномов. Увы первая цель декор онли, вторая цель точка онли, на юнита никак, кстати хорошо подходит под кастом блинки, кастуется почти мгновенно, быстрее канала, без всяких рукомаханий.
Использовать N способностей с разными иконками, на которых будет изображен счетчик, изменяя уровень способности или вовсе весть скилл через 'Eneg' (Техника, скилл механика, позволяет изменять поля скиллов) то можно создать скиллы со счетчиком, допустим пока есть заряды у скилла нету кулдауна, скилл последнего заряда имеет кулдаун.
Увы туча ипорта да и найти качественные иконки со счетчиком дело непростое.
Все скиллы наносят урон типом атаки Заклинание (ATTACK_TYPE_NORMAL) а тип урона влияет тока на блокираторы урона, негативные баффы наносят 0.00 ед. урона неизвестным типом урона (DAMAGE_TYPE_UNKNOWN или просто null), что ативирует событие - юнит получает урон, даже когда юнит неуязвим - нужно для агра юнитов к примеру.
Почти все DAMAGE_TYPE_FIRE\COLD и так далее одинаковы, их близзарды сделали для красоты - проверить на тип урона мы никак не можем, магический и магический а от холода он или огня никак, что собственно и не особо важно - результат один.
Ну тут только добавлать герою предметные абилки на повышение защиты, есть вроде же готовые системы добавления всего что только можно, хп-мп, защиту, скорость и так далее.
Гугли Custom Hero stat system.
Вот пример ссылочка
quq_CCCP,
1 - id приказа и id магии, которую юзает дамик различные
2 - да, может отличаться, не думал что может повлиять (надо проверить)
3 - это касается всех скилов? (допустим у меня есть скилл буран (dummy) и просто буран) Если я сначало скастую буран, то у даммика буран (dummy) может не сработать? (мог неправильно понять)
Джасс почти не знаю, сорри...
Речь только если у тебя канал с настройками и базовым ид приказа бурана, то да.
Подробнее, что и как делалои?
Иногда бывает что канал мешает даммикам кастануть спелл, но это бывает если:
У канала указан базовый ид приказа от другого, существующего и применяющегося дамми юнитом скилла.
Тип цели у канала отличается от того скилла чье ид указано в настройках канала.
Игрок должен кастануть канал до того как кто либо кастанет скилл оригинал.
Этот баг связан с кешированием приказа абилок как описывал DracoLich, варкравт записывает типы целей для всех абилок с этим ид, а когда скилл кастуют проверяет.
Допустим у тебя 2 скилла, первый натуральная волна силы с приказом ShockWave а второй канал с тем же ид приказа ShockWave но типом цели мгновенное (без указания цели), стоит тебе кастануть канал как дамми юниты которые кастуют первый скилл (волну силы) откажутся её кастовать, ибо движек вара будет считать что это селф каст абилка (абилки без указания цели на самом деле кастуются в самого кастера).
Дебаг типа
if not IssueTargetOrder( u, некий приказ, target ) then
call BJDebugMsg( "Ошибка невозможно выполнить приказ такойто на цель" +GetUniTName(targ))
if IssueTargetOrder( u, некий приказ, u ) then
call BJDebugMsg( "Баг канала - измени ид приказа на несуществующий в предалах твоей карты!"))
endif
endif
нужно импортировать в корневую папку карты ( это без пути, "war3mapPreview.tga а не "War3MapImported\war3mapPreview.tga") файл формата тга размером 128 на 128 точек или 256 на 256 точек.
Для конвертирования подойдет BLPlab
Конечно не видит - wait'ы юзать не нужно, кто же так делает!
Target ability begin cast - вернет юнита только до твоего вейта, а потом усе.
Такие вещи нужно обязательно заносить в переменные, но в гуях это все увы но будет не муи...
Насколько я помню у него способность выключатель, 1 раз кликнул скилл включился, второй раз кликнул выключился - нужно чтобы если юнит в "бою" (вероятно автор имеет виду что юнит получат урон и способность блокируется, как даггер в доте)
Нужно не дать юниту включить эту способность пока он в "Бою", я предложил требования - иконка способности затемняется, как будто скилл под сайленсом но кулдаун никуда не девается.
Запихнуть жар преисподней в заблокированный спеллбук .
Дать способность с кд в 5 секунд.
При использовании способности давать/отнимать упомянутый выше спеллбук.
Какой спеллбук, у него скилл переключатель на основе жара, зачем ему спеллбук?
Ну там много чем можно, слк оптимизатор один из способов - обычно виной долгой загрузки карты может стать 100500 юнитов сидящи на карте изначально ибо абилки по 100500 уровней.
ИИ написать, сами скиллы юзают тока крипы подконтрольные ИИ - к примеру нейтральновраждебные.
Так же можно юзать скилл - Сфера замедления, это орб эффект который срабатывая накладывает на цель атаки указанный в его настройках скилл, подойдет для карт типа Castle Fight.
» WarCraft 3 / Воскрешение героя в триггерах
Раздел герой на гуях, действие Revive (instanty)
» WarCraft 3 / Отлов цели способности "Healing Ward"
GetUnitX\Y от GetSummonedUnit()
» WarCraft 3 / Система отлова нанесённого урона
JASS API в помощь.
» WarCraft 3 / Запомнить любую нужную точку на карте
Вот примитивный пример получение и сохранения координат камеры игрока:
» WarCraft 3 / Передача параметров в Таймер
» WarCraft 3 / Вопрос по поводу лагов
Модели надо подгружать, ну неужели вы не слышали об этом?
» WarCraft 3 / Вопрос по поводу лагов
» WarCraft 3 / Инвиз у зданий.
» WarCraft 3 / Как сделать стаки способностей?
- Юзать стандартные абилки со счетчиком зарядов, а их только 2 совы охотницы и вспышки орудийного расчета гномов. Увы первая цель декор онли, вторая цель точка онли, на юнита никак, кстати хорошо подходит под кастом блинки, кастуется почти мгновенно, быстрее канала, без всяких рукомаханий.
- Использовать N способностей с разными иконками, на которых будет изображен счетчик, изменяя уровень способности или вовсе весть скилл через 'Eneg' (Техника, скилл механика, позволяет изменять поля скиллов) то можно создать скиллы со счетчиком, допустим пока есть заряды у скилла нету кулдауна, скилл последнего заряда имеет кулдаун.
Увы туча ипорта да и найти качественные иконки со счетчиком дело непростое.Ред. quq_CCCP
» WarCraft 3 / Тип урона у способностей
Почти все DAMAGE_TYPE_FIRE\COLD и так далее одинаковы, их близзарды сделали для красоты - проверить на тип урона мы никак не можем, магический и магический а от холода он или огня никак, что собственно и не особо важно - результат один.
» WarCraft 3 / Как триггерно сделать бонус защиты
Гугли Custom Hero stat system.
Вот пример ссылочка
» WarCraft 3 / Блокировка урона
» WarCraft 3 / Иногда не срабатывают некоторые спеллы
Ред. quq_CCCP
» WarCraft 3 / Иногда не срабатывают некоторые спеллы
» WarCraft 3 / Функция Preload
Ред. quq_CCCP
» WarCraft 3 / Иногда не срабатывают некоторые спеллы
Иногда бывает что канал мешает даммикам кастануть спелл, но это бывает если:
- У канала указан базовый ид приказа от другого, существующего и применяющегося дамми юнитом скилла.
- Тип цели у канала отличается от того скилла чье ид указано в настройках канала.
- Игрок должен кастануть канал до того как кто либо кастанет скилл оригинал.
Допустим у тебя 2 скилла, первый натуральная волна силы с приказом ShockWave а второй канал с тем же ид приказа ShockWave но типом цели мгновенное (без указания цели), стоит тебе кастануть канал как дамми юниты которые кастуют первый скилл (волну силы) откажутся её кастовать, ибо движек вара будет считать что это селф каст абилка (абилки без указания цели на самом деле кастуются в самого кастера).Этот баг связан с кешированием приказа абилок как описывал DracoLich, варкравт записывает типы целей для всех абилок с этим ид, а когда скилл кастуют проверяет.
Дебаг типа
» WarCraft 3 / Как запихнуть к карте обложку?
Для конвертирования подойдет BLPlab
» WarCraft 3 / Unhide unit или Target of the ability being cast не работает
Target ability begin cast - вернет юнита только до твоего вейта, а потом усе.
Такие вещи нужно обязательно заносить в переменные, но в гуях это все увы но будет не муи...
» WarCraft 3 / Как отключить способность
Нужно не дать юниту включить эту способность пока он в "Бою", я предложил требования - иконка способности затемняется, как будто скилл под сайленсом но кулдаун никуда не девается.
» WarCraft 3 / Как отключить способность
» WarCraft 3 / Как отключить способность
» WarCraft 3 / Спецэффекты способностей не работают
» WarCraft 3 / Время загрузки карты :(
» WarCraft 3 / Юнит не использует способность
Так же можно юзать скилл - Сфера замедления, это орб эффект который срабатывая накладывает на цель атаки указанный в его настройках скилл, подойдет для карт типа Castle Fight.
» WarCraft 3 / Юниты игнорируют нейтралов