[Статья]Скрешивание предметов
|
|
Glaber | Дата: Вторник, 29.03.2011, 11:47 | Сообщение # 11 |
| Quote (Evgexa) омг, не проще всё делать на GUI ?! Я ж ток что привел пример Вот приставь Триггер в фиг знает какую оффигенную длинну и надо все значения поменять , вот это будет нудно и неинтересно А на джассе быстро все прописал и все.
|
|
| |
Evgexa | Дата: Вторник, 29.03.2011, 11:51 | Сообщение # 12 |
| F@lk, а как на JASS'е ты будешь менять переменные?) а как на JASS'е ты будешь указывать точку?) по координатам? там всё муторно и нудно...
|
|
| |
Glaber | Дата: Вторник, 29.03.2011, 11:55 | Сообщение # 13 |
| Quote (Evgexa) муторно и нудно... Поинтереснее чем выбирать из списочка . Quote (Evgexa) JASS'е ты будешь менять переменные? Просто Если локалка Code local integer i = 0 //Действие set i = i + 1 , i / 1 , 1 * 5 , i - 10 set i = #(Число) Если глобалка Code set udg_u = GetTriggerUnit() // Действие ну допустим создать юнитп set udg_u = GetLastCreatedUnit() Добавлено (29.03.2011, 11:55) ---------------------------------------------
Quote (Evgexa) как на JASS'е ты будешь указывать точку? local location q = Get - чо то там я забыл не юзаю обычно это () Птом действие нарпимер создать в точке q юнита
Сообщение отредактировал F@lk - Вторник, 29.03.2011, 11:54 |
|
| |
Diz[Z]arD | Дата: Вторник, 29.03.2011, 17:39 | Сообщение # 14 |
| круто (Quote (F@lk) function Trig_Acquires_Item_Conditions takes nothing returns boolean if ( not ( IsUnitType(GetTriggerUnit(), UNIT_TYPE_HERO) == true ) ) then return false endif return true endfunction function Trig_Acquires_Item_Func003Func001Func012C takes nothing returns boolean if ( not ( GetItemTypeId(GetItemOfTypeFromUnitBJ(GetTriggerUnit(), udg_ITM_ItemSlot1[GetForLoopIndexA()])) == udg_ITM_ItemSlot1[GetForLoopIndexA()] ) ) then return false endif if ( not ( GetItemTypeId(GetItemOfTypeFromUnitBJ(GetTriggerUnit(), udg_ITM_ItemSlot2[GetForLoopIndexA()])) == udg_ITM_ItemSlot2[GetForLoopIndexA()] ) ) then return false endif if ( not ( GetItemTypeId(GetItemOfTypeFromUnitBJ(GetTriggerUnit(), udg_ITM_ItemSlot3[GetForLoopIndexA()])) == udg_ITM_ItemSlot3[GetForLoopIndexA()] ) ) then return false endif if ( not ( GetItemTypeId(GetItemOfTypeFromUnitBJ(GetTriggerUnit(), udg_ITM_ItemSlot4[GetForLoopIndexA()])) == udg_ITM_ItemSlot4[GetForLoopIndexA()] ) ) then return false endif if ( not ( GetItemTypeId(GetItemOfTypeFromUnitBJ(GetTriggerUnit(), udg_ITM_ItemSlot5[GetForLoopIndexA()])) == udg_ITM_ItemSlot5[GetForLoopIndexA()] ) ) then return false endif if ( not ( GetItemTypeId(GetItemOfTypeFromUnitBJ(GetTriggerUnit(), udg_ITM_ItemSlot6[GetForLoopIndexA()])) == udg_ITM_ItemSlot6[GetForLoopIndexA()] ) ) then return false endif return true endfunction function Trig_Acquires_Item_Func003Func001C takes nothing returns boolean if ( not Trig_Acquires_Item_Func003Func001Func012C() ) then return false endif return true endfunction function Trig_Acquires_Item_Actions takes nothing returns nothing set bj_forLoopAIndex = 1 set bj_forLoopAIndexEnd = udg_ITM_MaxItemRecipes loop exitwhen bj_forLoopAIndex > bj_forLoopAIndexEnd if ( Trig_Acquires_Item_Func003Func001C() ) then call AddSpecialEffectTargetUnitBJ( "origin", GetTriggerUnit(), "Abilities\\Spells\\Demon\\DarkPortal\\DarkPortalTarget.mdl" ) call RemoveItem( GetItemOfTypeFromUnitBJ(GetTriggerUnit(), udg_ITM_ItemSlot1[GetForLoopIndexA()]) ) call RemoveItem( GetItemOfTypeFromUnitBJ(GetTriggerUnit(), udg_ITM_ItemSlot2[GetForLoopIndexA()]) ) call RemoveItem( GetItemOfTypeFromUnitBJ(GetTriggerUnit(), udg_ITM_ItemSlot3[GetForLoopIndexA()]) ) call RemoveItem( GetItemOfTypeFromUnitBJ(GetTriggerUnit(), udg_ITM_ItemSlot4[GetForLoopIndexA()]) ) call RemoveItem( GetItemOfTypeFromUnitBJ(GetTriggerUnit(), udg_ITM_ItemSlot5[GetForLoopIndexA()]) ) call RemoveItem( GetItemOfTypeFromUnitBJ(GetTriggerUnit(), udg_ITM_ItemSlot6[GetForLoopIndexA()]) ) call UnitAddItemByIdSwapped( udg_ITM_ReplacementItem[GetForLoopIndexA()], GetTriggerUnit() ) call DisplayTextToForce( GetForceOfPlayer(GetOwningPlayer(GetTriggerUnit())), ( "|cff00FFFFGame Message:|r Item Created: " + GetItemName(GetLastCreatedItem()) ) ) return else call DoNothing( ) endif set bj_forLoopAIndex = bj_forLoopAIndex + 1 endloop endfunction а что это ?
one click plz
|
|
| |
Glaber | Дата: Вторник, 29.03.2011, 17:55 | Сообщение # 15 |
| Diz[Z]arD, Code function Trig_Acquires_Item_Conditions takes nothing returns boolean if ( not ( IsUnitType(GetTriggerUnit(), UNIT_TYPE_HERO) == true ) ) then return false endif return true endfunction
function Trig_Acquires_Item_Func003Func001Func012C takes nothing returns boolean if ( not ( GetItemTypeId(GetItemOfTypeFromUnitBJ(GetTriggerUnit(), udg_ITM_ItemSlot1[GetForLoopIndexA()])) == udg_ITM_ItemSlot1[GetForLoopIndexA()] ) ) then return false endif if ( not ( GetItemTypeId(GetItemOfTypeFromUnitBJ(GetTriggerUnit(), udg_ITM_ItemSlot2[GetForLoopIndexA()])) == udg_ITM_ItemSlot2[GetForLoopIndexA()] ) ) then return false endif if ( not ( GetItemTypeId(GetItemOfTypeFromUnitBJ(GetTriggerUnit(), udg_ITM_ItemSlot3[GetForLoopIndexA()])) == udg_ITM_ItemSlot3[GetForLoopIndexA()] ) ) then return false endif if ( not ( GetItemTypeId(GetItemOfTypeFromUnitBJ(GetTriggerUnit(), udg_ITM_ItemSlot4[GetForLoopIndexA()])) == udg_ITM_ItemSlot4[GetForLoopIndexA()] ) ) then return false endif if ( not ( GetItemTypeId(GetItemOfTypeFromUnitBJ(GetTriggerUnit(), udg_ITM_ItemSlot5[GetForLoopIndexA()])) == udg_ITM_ItemSlot5[GetForLoopIndexA()] ) ) then return false endif if ( not ( GetItemTypeId(GetItemOfTypeFromUnitBJ(GetTriggerUnit(), udg_ITM_ItemSlot6[GetForLoopIndexA()])) == udg_ITM_ItemSlot6[GetForLoopIndexA()] ) ) then return false endif return true endfunction Это условие проверяет в каждом слоту героя предметы и что ето за предмет записывает его в глобалку Code function Trig_Acquires_Item_Func003Func001C takes nothing returns boolean if ( not Trig_Acquires_Item_Func003Func001Func012C() ) then return false endif return true endfunction
function Trig_Acquires_Item_Actions takes nothing returns nothing set bj_forLoopAIndex = 1 set bj_forLoopAIndexEnd = udg_ITM_MaxItemRecipes loop exitwhen bj_forLoopAIndex > bj_forLoopAIndexEnd if ( Trig_Acquires_Item_Func003Func001C() ) then call AddSpecialEffectTargetUnitBJ( "origin", GetTriggerUnit(), "Abilities\\Spells\\Demon\\DarkPortal\\DarkPortalTarget.mdl" ) call RemoveItem( GetItemOfTypeFromUnitBJ(GetTriggerUnit(), udg_ITM_ItemSlot1[GetForLoopIndexA()]) ) call RemoveItem( GetItemOfTypeFromUnitBJ(GetTriggerUnit(), udg_ITM_ItemSlot2[GetForLoopIndexA()]) ) call RemoveItem( GetItemOfTypeFromUnitBJ(GetTriggerUnit(), udg_ITM_ItemSlot3[GetForLoopIndexA()]) ) call RemoveItem( GetItemOfTypeFromUnitBJ(GetTriggerUnit(), udg_ITM_ItemSlot4[GetForLoopIndexA()]) ) call RemoveItem( GetItemOfTypeFromUnitBJ(GetTriggerUnit(), udg_ITM_ItemSlot5[GetForLoopIndexA()]) ) call RemoveItem( GetItemOfTypeFromUnitBJ(GetTriggerUnit(), udg_ITM_ItemSlot6[GetForLoopIndexA()]) ) call UnitAddItemByIdSwapped( udg_ITM_ReplacementItem[GetForLoopIndexA()], GetTriggerUnit() ) call DisplayTextToForce( GetForceOfPlayer(GetOwningPlayer(GetTriggerUnit())), ( "|cff00FFFFGame Message:|r Item Created: " + GetItemName(GetLastCreatedItem()) ) ) return else call DoNothing( ) endif set bj_forLoopAIndex = bj_forLoopAIndex + 1 endloop endfunction А это действие создает эффект на герое + удаляет предметы сборки и даёт предмет.
|
|
| |
Evgexa | Дата: Вторник, 29.03.2011, 19:02 | Сообщение # 16 |
| F@lk, ну ты же всё равно из него выбираешь, а потом триггеры переводишь в JASS
|
|
| |
Glaber | Дата: Вторник, 29.03.2011, 19:44 | Сообщение # 17 |
| Evgexa, Бывает но перевожу то я для удобства . А так бывает сразу джасс делаю.
|
|
| |
|
Glaber | Дата: Вторник, 29.03.2011, 21:57 | Сообщение # 19 |
| UZzip, Чел))) Ну мне реально на джассе легче,быстрее,интереснее. Ну ведь гораздо легче вот представь у тя 200 абилок вот ты поиши их в списке а там взял ИД и все чотко. + локалки. + легко прописать все чем искать нужное из списка.
|
|
| |
|