Помогите мне надо 2 вещи: 1)Как сделать чтоб за убитых крипов противника давали деньги?? 2)Сделал скил установка мины на основе змеек рохана,теперь проблема - забиндил все на отдельные кнопки,но все ровно если кастовать второй скил то сначало первый кастуеться,и наоброт (кастуеться нужный скилл если ненужный КД).Как исправить? 3)Постоянная невидимость.Как сделать чтоб это был не стандартный скилл (Для воина)а изучаемый для героя?Чтоб с лвл-ами,как у Рикимару и доты?
Добавлено (17 Апрель 2012, 22:57:07) --------------------------------------------- У кого проблемы с минами,делайте на основе серпент вардов рохана.я так делал.
Extremator, спасибо, жду продолжения... и если можно конечно, желательно чтобы не показывало область урона камня, тоесть выбираешь точку и он кидает, а не область
ChinaToster, это даммики создаються один за одним. если возле последнего есть ктото, то потом они удаляються друг за другом, а этот "ктото" перемещаеться к последнему и так до точки каста
"пойманного" юнита к последнему даммику в массиве. Вот себе когдато делал для карты
Code
function Meat_Hook_Actions_BACK_NO takes nothing returns nothing local timer tt=GetExpiredTimer() local integer id=GetHandleId(tt) local integer n=LoadInteger(udg_H, id, 5) local unit d if n!=0 then set d=LoadUnitHandle(udg_H, id, n) call RemoveUnit(d) set n=n-1 call SaveInteger(udg_H, id, 5, n) else call PauseTimer(tt) call FlushChildHashtable(udg_H, id) call DestroyTimer(tt) endif set tt=null set d=null endfunction
function Meat_Hook_Actions_BACK_WITH takes nothing returns nothing local timer tt=GetExpiredTimer() local integer id=GetHandleId(tt) local unit g=LoadUnitHandle(udg_H, id, 0) local integer n=LoadInteger(udg_H, id, 5) local unit d if n!=0 then set d=LoadUnitHandle(udg_H, id, n) call SetUnitX(g,GetUnitX(d)) call SetUnitY(g,GetUnitY(d)) call RemoveUnit(d) set n=n-1 call SaveInteger(udg_H, id, 5, n) else call PauseTimer(tt) call FlushChildHashtable(udg_H, id) call DestroyTimer(tt) endif set tt=null set d=null set g=null endfunction
function Meat_Hook_Actions takes nothing returns nothing local timer t=GetExpiredTimer() local integer id=GetHandleId(t) local unit u=LoadUnitHandle(udg_H, id, 0) local real ang=LoadReal(udg_H, id, 2) local real x=LoadReal(udg_H, id, 3) local real y=LoadReal(udg_H, id, 4) local integer n=LoadInteger(udg_H, id, 5) local group gr=CreateGroup() local group gr1=CreateGroup() local unit g local timer tt=CreateTimer() local unit array d local real x1 local real y1 local integer m=1 set d[n]=LoadUnitHandle(udg_H, id, n) set x1=GetWidgetX(d[n]) set y1=GetWidgetY(d[n]) call GroupEnumUnitsInRange(gr,x1,y1,100.,null) loop set g=FirstOfGroup(gr) exitwhen g==null if IsUnitType(g, UNIT_TYPE_STRUCTURE) == false and GetWidgetLife(g) > 0.405 and g!=u then call GroupAddUnit(gr1,g) endif call GroupRemoveUnit(gr,g) endloop
if CountUnitsInGroup(gr1)>= 1 then set g=GroupPickRandomUnit(gr1) if IsUnitEnemy(g, GetOwningPlayer(u)) == true then call UnitDamageTarget(u, g, 200 + GetHeroStr(u,true)*2, true, false, ATTACK_TYPE_CHAOS, DAMAGE_TYPE_DEATH, null) call DestroyEffect(AddSpecialEffectTarget("Objects\\Spawnmodels\\Human\\HumanBlood\\HeroBloodElfBlood.mdl", g, "chest")) endif loop exitwhen m>n set d[m]=LoadUnitHandle(udg_H, id, m) call SaveUnitHandle(udg_H, GetHandleId(tt), m, d[m]) set m=m+1 endloop call SaveUnitHandle(udg_H, GetHandleId(tt), 0, g) call SaveInteger(udg_H, GetHandleId(tt), 5, n) call TimerStart(tt, 0.02, true, function Meat_Hook_Actions_BACK_WITH) call PauseTimer(t) call FlushChildHashtable(udg_H, id) call DestroyTimer(t) else set n=n+1 call SaveInteger(udg_H, id, 5, n) set d[n]=CreateUnit(GetOwningPlayer(u),'h004',GetWidgetX(d[n-1])+50*Cos(ang),GetWidgetY(d[n-1])+50*Sin(ang),ang*bj_RADTODEG) call SaveUnitHandle(udg_H, GetHandleId(t), n, d[n]) endif
if n > 32 then loop exitwhen m>n set d[m]=LoadUnitHandle(udg_H, id, m) call SaveUnitHandle(udg_H, GetHandleId(tt), m, d[m]) set m=m+1 endloop call SaveInteger(udg_H, GetHandleId(tt), 5, n) call TimerStart(tt, 0.02, true, function Meat_Hook_Actions_BACK_NO) call PauseTimer(t) call FlushChildHashtable(udg_H, id) call DestroyTimer(t) endif
call DestroyGroup(gr) call DestroyGroup(gr1) set gr=null set gr1=null set u=null set t=null set tt=null set m=1 loop exitwhen m>n set d[m]=null set m=m+1 endloop endfunction
function Trig_Meat_Hook_Actions takes nothing returns nothing local unit u=GetSpellAbilityUnit() local real x=GetWidgetX(u) local real y=GetWidgetY(u) local real x1=GetSpellTargetX() local real y1=GetSpellTargetY() local timer t=CreateTimer() local real ang=Atan2(y1-y,x1-x) local integer n=1 local unit array d set d[n]=CreateUnit(GetOwningPlayer(u),'h004',x,y,ang*bj_RADTODEG) call SaveUnitHandle(udg_H, GetHandleId(t), 0, u) call SaveUnitHandle(udg_H, GetHandleId(t), n, d[n]) call SaveReal(udg_H, GetHandleId(t), 2, ang) call SaveReal(udg_H, GetHandleId(t), 3, x) call SaveReal(udg_H, GetHandleId(t), 4, y) call SaveInteger(udg_H, GetHandleId(t), 5, n) call TimerStart(t, 0.02, true, function Meat_Hook_Actions) set t=null set u=null set d[n]=null endfunction
активируемая способность которая добавляет к обычным ударам орб эффект.(как стрелы у бони) её можно на автокаст ставить. при активации скила герой начинает бить только критическими ударами х5
когда выключает крит проподает. как такое замутить?
Я зделал скилл как ульта разора. Ну там каждые 1 секунду выбрать дамми и заставить кастовать цепь молний на случайных юнитов в диапазоне 750 от позиции выбраного юнита (дамми), и он раюотает. Но я отключил в целях союзники и нейтральные поетому он на них неработает однако триггер продолжает их проверять из-за чего возникают задержки в аттаках. Подскажите что делать? Как убрать эти задержки?
Кто нибудь может объяснить почему эта штука не работает?
Code
library JOL initializer StartFunc
globals private trigger JOT endglobals
private function StartFunc takes nothing returns nothing local integer i = 0 set JOT = CreateTrigger() loop call TriggerRegisterPlayerUnitEvent(JOT,Player(i),EVENT_PLAYER_UNIT_SPELL_CAST,null) exitwhen i >= bj_MAX_PLAYER_SLOTS set i = i + 1 endloop endfunction
cJass или vJass или какой тут jass я незнаю, но тут судя по коду создается триггер и в него добавляется событие, юнит приводит способность в действие и всё..
Добавлено (02 Сентября 2012, 09:30:15) --------------------------------------------- И на мой взгляд лучше это:
Code
call TriggerRegisterPlayerUnitEvent(JOT,Player(i),EVENT_PLAYER_UNIT_SPELL_CAST,null) exitwhen i >= bj_MAX_PLAYER_SLOTS
поменять на это:
Code
exitwhen i >= bj_MAX_PLAYER_SLOTS call TriggerRegisterPlayerUnitEvent(JOT,Player(i),EVENT_PLAYER_UNIT_SPELL_CAST,null)
private function StartFunc takes nothing returns nothing local integer i = 0 set JOT = CreateTrigger() loop call TriggerRegisterPlayerUnitEvent(JOT,Player(i),EVENT_PLAYER_UNIT_SPELL_CAST,null) exitwhen i >= bj_MAX_PLAYER_SLOTS set i = i + 1 endloop endfunction
endlibrary
потому что нет действий? я бы сделал так
Code
library JOL initializer StartFunc
globals private trigger castTrigger endglobals
private function ActsFunc takes nothing returns nothing call DisplayTimedTextToPlayer(GetOwningPlayer(GetTriggerUnit()), 0.0, 0.0, 5.0, "Нечего тут спеллы кастовать, Сталина на вас нет") call IssueImmediateOrder(GetTriggerUnit(), "stop") endfunction
private function StartFunc takes nothing returns nothing local integer i = 0 set castTrigger = CreateTrigger() loop call TriggerRegisterPlayerUnitEvent(castTrigger, Player(i), EVENT_PLAYER_UNIT_SPELL_EFFECT, null) exitwhen(i==11) set i = i + 1 endloop call TriggerAddAction(castTrigger, function ActsFunc) endfunction
Здраствуйте ребята, если кто знает напишите.. как сделать такую способность которая будет пассивно давать твоему герою реген здоровья а так что бы когда ты убиваешь вражеского героя получаешь + к своей броне и эта способность 5 уровней
Hexing, нет не поэтому, если bj_MAX_PLAYER_SLOTS заменить на число, то все работает.
Добавлено (05 Октября 2012, 20:40:34) ---------------------------------------------
Code
library JOL initializer StartFunc
globals private trigger JOT endglobals
private function StartFunc takes nothing returns nothing local integer i = 0 set JOT = CreateTrigger() loop call TriggerRegisterPlayerUnitEvent(JOT,Player(i),EVENT_PLAYER_UNIT_SPELL_CAST,null) exitwhen i >= bj_MAX_PLAYER_SLOTS set i = i + 1 endloop endfunction
подскажите в чем проблема я ставлю своему герою скилл дестроера (Orb of Annihilation - сплеш урон) но он не работает сплеш не дает и самое странное что токо этот скил работает у владельца (дестер