Iceman
offline
Опыт:
440Активность: |
Создание функции First Blood. Пособие.
Некоторые люди при создании AOS затрудняются сделать ранк, эдакий приз для того, кто первым убил противника.
Сейчас я помогу им решить эту проблему. Триггер полностью на JASS. (хотя можно и на GUI)
Вот: function Trig_FirstBlood_Conditions takes nothing returns boolean
if ( not ( GetTriggerUnit() == GetDyingUnit() ) ) then return false endif if ( not ( IsUnitType(GetTriggerUnit(), UNIT_TYPE_HERO) == true ) ) then return false endif return true endfunction function Trig_FirstBlood_Func004C takes nothing returns boolean
if ( not ( GetTriggerUnit() == GetDyingUnit() ) ) then return false endif if ( not ( IsUnitType(GetTriggerUnit(), UNIT_TYPE_HERO) == true ) ) then return false endif if ( not ( IsUnitType(GetKillingUnitBJ(), UNIT_TYPE_HERO) == true ) ) then return false endif return true endfunction function Trig_FirstBlood_Actions takes nothing returns nothing
if ( Trig_FirstBlood_Func004C() ) then call DisplayTimedTextToForce( GetPlayersAll(), 30, ( ( GetPlayerName(GetOwningPlayer(GetKillingUnitBJ())) + ( " пролил" + " |CFFFF0000Первую Кровь!!!|r" ) ) + " (+250 бонус. золота!)" ) ) call PlaySoundBJ( gg_snd_firstblood ) call AddSpecialEffectLocBJ( GetUnitLoc(GetDyingUnit()), "Objects\\Spawnmodels\\Orc\\Orcblood\\OrcBloodHellScream.mdl" ) call TriggerSleepAction( 1.00 ) call CreateTextTagUnitBJ( "TRIGSTR_3930", GetKillingUnitBJ(), 0, 10, 100, 100, 100, 0 ) call TriggerSleepAction( 1.00 ) call DestroyTextTagBJ( GetLastCreatedTextTag() ) call AdjustPlayerStateBJ( 250, GetOwningPlayer(GetKillingUnitBJ()), PLAYER_STATE_RESOURCE_GOLD ) call DisableTrigger( GetTriggeringTrigger() ) else call DoNothing( ) call DisableTrigger( GetTriggeringTrigger() ) endif endfunction =========================================================================== function InitTrig_FirstBlood takes nothing returns nothing set gg_trg_FirstBlood = CreateTrigger( ) call TriggerRegisterAnyUnitEventBJ( gg_trg_FirstBlood, EVENT_PLAYER_UNIT_DEATH ) call TriggerAddCondition( gg_trg_FirstBlood, Condition( function Trig_FirstBlood_Conditions ) ) call TriggerAddAction( gg_trg_FirstBlood, function Trig_FirstBlood_Actions ) endfunction |
12.06.2007, 13:22 | #1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Кет
offline
Опыт:
111,234Активность: |
А нах JASS? По-моему то же самое и на GUI можно... |
12.06.2007, 13:25 | #2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Iceman
offline
Опыт:
440Активность: |
Вот карта-пример. |
12.06.2007, 13:27 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
dk
offline
Опыт:
61,843Активность: |
Цитата:
Лучше бы на гуи выложил, всеравно видно что в текст тупо перевел... |
|
12.06.2007, 13:30 | #4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Iceman
offline
Опыт:
440Активность: |
Есть карта-пример. Будь внимательней. |
12.06.2007, 13:32 | #5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
adic3x
offline
Опыт:
107,539Активность: |
да ну... код некоректный, начиная от ТриггерСлипАктион... заканчивая строкой "ТРИГстр3930"...
ADOLF добавил: Цитата:
хмм... и зачем он вообще нужен, дунотинг этот? |
|
12.06.2007, 13:41 | #6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
J
expert
offline
Опыт:
48,747Активность: |
Iceman видно же что просто всделал тригер на GUI и перевел его в джаз и все... это очень змаиметно.. тачто неотвертывайся
Jon добавил: притом ужасно неоптимально, и с утечками... |
12.06.2007, 13:48 | #7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Iceman
offline
Опыт:
440Активность: |
Да, я сделал триггер на GUI.
Затем перевел его на JASS в триггерах.
Если вы разбираетесь, хорошо. Я сделал это для людей, которые ни черта не смыслят в редакторе Warcraft 3. Iceman добавил: DoNothing нужен для того, чтобы игрок не делал First Blood каждый раз убивая героя. И еще. TRIGSTR - это для KotA (плавающий текст) и в вашей карте он наверняка не нужен. Проще всего, удалите из GUI версии First Blood плавающий текст и готово. Я буду рад, если есть такие люди, кому это пригодилось. |
12.06.2007, 13:51 | #8
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
adic3x
offline
Опыт:
107,539Активность: |
дык, логичный вопрос, зачем людям которые ни черта нисмыслят в ВЕ жасс код?
кста сам код тоже содержит множество ошибок, так что... желание кому либо помочь, это конечно хорошо, но в твоем случае просто желания недостаточно... |
12.06.2007, 13:52 | #9
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Iceman
offline
Опыт:
440Активность: |
Можешь, сделай лучше. :): |
12.06.2007, 13:53 | #10
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
adic3x
offline
Опыт:
107,539Активность: |
Цитата:
он вообще не нужен=) Код:
его вообще ставить нет никакого смысла. ADOLF добавил: Цитата:
лол=) а давайте сейчас каждый из учасников сделает по тригеру на ФерстБлад?) - и будет счастье... |
||
12.06.2007, 13:55 | #11
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
J
expert
offline
Опыт:
48,747Активность: |
Iceman вуаля
Код:
ваиты оставил.. ибо если их убрать, это набодудет все изменять, и понимаемость кода уменьшится в несколько раз... Отредактировано Jon, 12.06.2007 в 14:07. |
12.06.2007, 13:57 | #12
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
adic3x
offline
Опыт:
107,539Активность: |
начнем с простых вещей: у тебя в коде стоит что и убиенный и убийца дб героями? а если скажем игрок убил кого то суммоном? кста я так смотрю каша тут редкая, начиная от ГетТриггерингЮнит==ГетДаингЮнит...
иди ка лучше статейки почитай что ли... ADOLF добавил: Jon, ну ты та хоть мог убрать ГетТригерингЮнит==ГетДаингЮнит ?) а ясно,ты так оптимизировал, что бы не менять оригинального алгоритма? хм... вообще строить систему по убийствам героев без полной картины (воскрешение, дабл трипл килы, и т.д.) - бред=) |
12.06.2007, 14:02 | #13
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
J
expert
offline
Опыт:
48,747Активность: |
лано.. убрал подобную фигню
Jon добавил: ппц... строки ужасно скопировалисб.. а ну да ладно... |
12.06.2007, 14:04 | #14
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
adic3x
offline
Опыт:
107,539Активность: |
Цитата:
жасс крафт?) хм, я бы проверял овнера оф килинг юнита и если он не камп до пускал сработку, а не по тому что килинг юнит ис херо... |
|
12.06.2007, 14:07 | #15
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Iceman
offline
Опыт:
440Активность: |
Спасибо, ребята!!! Учту! |
12.06.2007, 14:07 | #16
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
J
expert
offline
Опыт:
48,747Активность: |
я правдо не понял почему у него в условии тригера, написано тоже самое.. почти.. что и в if-е самого тригера.... |
12.06.2007, 14:08 | #17
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
FausT
offline
Опыт:
1,451Активность: |
НКому ето пригодится, все же и так знают? |
21.06.2007, 13:56 | #18
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
p01nTT
offline
Опыт:
10,760Активность: |
Цитата:
прав |
|
21.06.2007, 14:22 | #19
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
S
offline
Опыт:
43,833Активность: |
ППКС. |
21.06.2007, 14:52 | #20
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|