XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Барахолка
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Ответ
 
NIKZ
Изучаю Jass
offline
Опыт: 6,036
Активность:
Система возрождения монстров
Система возрождения монстров
ВНИМАНИЕ ПРИ ПЕРЕНЕСЕНИИ НА СВОЮ КАРТУ НУЖНО СОЗДАТЬ ПЕРЕМЕННУЮ "Hash"
GUIшники на расхват =/
Описание:
*Легок в использовании
*Сохраняется изначальная точка монстра
*Возможность показа текста при возрождении
*Возможность изменения текста
*Возможность смены цвета текста
*Возможность удаление трупа(+указ времени)
*Возможность создания спецэффекта к юниту после возрождения
*Возможность привязки к кости юнита(спецэффект)
*Возможность заддержки возрождения монстра
*Возможность выбора каждой функции возрождения(Будет работать или нет)
*Все настройки зависят от вас..=/
Помогал:
Hatsume_Hate
Cтрого не судите, так как это первая моя система
Система различает много цветов для текста
А именно:
Белый - White
Черный - Black
Синий - Blue
Красный - Red
Оранжевый - Orange
Голубой - Light blue
Зеленый - Green
Лазурь - Azure
Фарфор - Bisque
Коралловый - Coral
Желтый - Yellow
Аквамарин - AquaMarine
Циан - Cyan
Золотой - Gold
Серый - Gray
Коричневый - Brown
Снежный - Snow
Достаточно написать какой цвет нужен и система сама изменит цвет за вас!
+ Система еще с комментариями и на английском!
Эта наработка на гуи/Jass и вся настраиваема:
Миниатюры
Кликните на картинку для увеличения
Название:  cdsadsadasdas.JPG
Просмотров: 95
Размер:  100.3 Кбайт  
Прикрепленные файлы
Тип файла: w3x Creeps Respawning.w3x (73.7 Кбайт, 92 просмотров )

Отредактировано NIKZ, 19.05.2012 в 17:25.
Старый 18.05.2012, 21:25
Roy Mustang
?????????????????__
offline
Опыт: 52,495
Активность:
*Легок в использовании
уже ставлю плюс
думаю многим пригодится
Старый 18.05.2012, 22:23
Msey
????
offline
Опыт: 67,346
Активность:
Ставить плюсы не за что, пардон
Старый 18.05.2012, 22:36
NIKZ
Изучаю Jass
offline
Опыт: 6,036
Активность:
Добавил еще инфы
Старый 18.05.2012, 23:08
Vadik29
Choice Battle 1.6а
offline
Опыт: 15,845
Активность:
NIKZ, У самого есть гуи система респа крипов, только там не используется хэш, а массивы, глобалки и локалки + она очень понятна...
Так что нагружать хэш не вижу смысла....
УУУ даже БЖ не убрал.....
call DestroyEffect(AddSpecialEffectTargetUnitBJ( udg_PointNameEffect, NPC_NEWUNIT, udg_NameEffect))
замени на:
call DestroyEffect(AddSpecialEffectTarget(udg_NameEffect,NPC_NEWUNIT,udg_PointNameEffect))
ВНИМАНИЕ ПРИ ПЕРЕНЕСЕНИИ НА СВОЮ КАРТУ НУЖНО СОЗДАТЬ ПЕРЕМЕННУЮ "Hash"
ага и + еще 9 глобалок
GUIшники на расхват =/
Jass код у тебя...
» Вот он:

function my_filt takes nothing returns boolean
local unit u = GetFilterUnit()
local integer h = GetHandleId(u)
    if IsUnitOwnedByPlayer(u, Player(PLAYER_NEUTRAL_AGGRESSIVE)) then
        call SaveReal(udg_Hash, h, 50, GetUnitX(u))
        call SaveReal(udg_Hash, h, 51, GetUnitY(u))
    endif
set u = null
return false
endfunction

function Trig_Init_save_coords_Actions takes nothing returns nothing
    local group empty=CreateGroup()
    call GroupEnumUnitsInRect(empty, bj_mapInitialPlayableArea, Filter( function my_filt))
    call DestroyGroup(empty)
    set empty = null
endfunction

function DeleteAct takes nothing returns nothing
    local timer t=GetExpiredTimer()
    local integer h=GetHandleId(t)
    local unit u=LoadUnitHandle(udg_Hash,h,3)
    call RemoveUnit(u)
    call FlushChildHashtable(udg_Hash,h)
    call DestroyTimer(t)
    set t=null
    set u=null
endfunction

function DeleteBody takes unit u,real r returns nothing
    local timer t=CreateTimer()
    local integer h=GetHandleId(t)
    call SaveUnitHandle(udg_Hash,h,3,u)
    call TimerStart(t,r,false,function DeleteAct)
    set t=null
endfunction

function Respawn_NPC takes nothing returns nothing
    local timer NPC_TIMER=GetExpiredTimer()
    local integer h=GetHandleId(NPC_TIMER)
    local unit NPC_UNIT=LoadUnitHandle(udg_Hash,h,2)
    local integer h2 = GetHandleId(NPC_UNIT)
    local real x = LoadReal(udg_Hash, h2, 50)
    local real y = LoadReal(udg_Hash, h2, 51)
    local unit NPC_NEWUNIT=CreateUnit(Player(PLAYER_NEUTRAL_AGGRESSIVE),GetUnitTypeId(NPC_UNIT),x+20*Cos(GetRandomR​eal(0,360)),y+20*Sin(GetRandomReal(0,360)),GetRandomReal(0,360))
    local integer h3 = GetHandleId(NPC_NEWUNIT)
    call SaveReal(udg_Hash, h3, 50, x)
    call SaveReal(udg_Hash, h3, 51, y)
    call FlushChildHashtable(udg_Hash,h)
    call FlushChildHashtable(udg_Hash,h2)
    if udg_DeleteBody == true then
      call RemoveUnit(NPC_UNIT)
    endif
    if udg_SpecEffect == true then
          call DestroyEffect(AddSpecialEffectTarget(udg_NameEffect,NPC_NEWUNIT,udg_PointNameEffect)) // исправил....
    endif
    call DestroyTimer(NPC_TIMER)
    set NPC_TIMER=null
    set NPC_UNIT=null
    set NPC_NEWUNIT=null
    if udg_DisplayText == true then
        if udg_Color == "Black" then
            call DisplayTimedTextToForce(GetPlayersAll(),1.0,"|c00000000"+udg_TextName+"|r")
        endif
        if udg_Color == "Blue" then
            call DisplayTimedTextToForce(GetPlayersAll(),1.0,"|c000000ff"+udg_TextName+"|r")
        endif
        if udg_Color == "White" then
            call DisplayTimedTextToForce(GetPlayersAll(),1.0,"|c00FFFFFF"+udg_TextName+"|r")
        endif
        if udg_Color == "Green" then
            call DisplayTimedTextToForce(GetPlayersAll(),1.0,"|c0000FF00"+udg_TextName+"|r")
        endif
        if udg_Color == "Yellow" then
            call DisplayTimedTextToForce(GetPlayersAll(),1.0,"|c00ffff00"+udg_TextName+"|r")
        endif
        if udg_Color == "Brown" then
            call DisplayTimedTextToForce(GetPlayersAll(),1.0,"|cFFB4674D"+udg_TextName+"|r")
        endif
        if udg_Color == "Orange" then
            call DisplayTimedTextToForce(GetPlayersAll(),1.0,"|cFFA50000"+udg_TextName+"|r")
        endif
        if udg_Color == "Red" then
            call DisplayTimedTextToForce(GetPlayersAll(),1.0,"|c00ff0000"+udg_TextName+"|r")
        endif
        if udg_Color == "Coral" then
            call DisplayTimedTextToForce(GetPlayersAll(),1.0,"|cFFFF7F50"+udg_TextName+"|r")
        endif
        if udg_Color == "Gold" then
            call DisplayTimedTextToForce(GetPlayersAll(),1.0,"|cFFFFD700"+udg_TextName+"|r")
        endif
        if udg_Color == "AquaMarine" then
            call DisplayTimedTextToForce(GetPlayersAll(),1.0,"|cFF7FFFD4"+udg_TextName+"|r")
        endif
        if udg_Color == "Cyan" then
            call DisplayTimedTextToForce(GetPlayersAll(),1.0,"|cFF0FFFF"+udg_TextName+"|r")
        endif
        if udg_Color == "Azure" then
            call DisplayTimedTextToForce(GetPlayersAll(),1.0,"|cFF00FFFF"+udg_TextName+"|r")
        endif
        if udg_Color == "Bisque" then
            call DisplayTimedTextToForce(GetPlayersAll(),1.0,"|cFFFFE4C4"+udg_TextName+"|r")
        endif
        if udg_Color == "Linen" then
            call DisplayTimedTextToForce(GetPlayersAll(),1.0,"|cFFFAF0E6"+udg_TextName+"|r")
        endif
        if udg_Color == "Snow" then
            call DisplayTimedTextToForce(GetPlayersAll(),1.0,"|cFFFFFFAFA"+udg_TextName+"|r")
        endif
        if udg_Color == "Gray" then
            call DisplayTimedTextToForce(GetPlayersAll(),1.0,"|c007c7c7c"+udg_TextName+"|r")
        endif
        if udg_Color == "Purple" then
            call DisplayTimedTextToForce(GetPlayersAll(),1.0,"|cFF800080"+udg_TextName+"|r")
        endif
        if udg_Color == "Light Blue" then
            call DisplayTimedTextToForce(GetPlayersAll(),1.0,"|cFFADD8E6"+udg_TextName+"|r")
        endif
    endif
endfunction

function Trig_Respawn_loop_Actions takes nothing returns nothing
    local unit NPC_UNIT=GetDyingUnit()
    local timer NPC_TIMER=CreateTimer()
    local integer h=GetHandleId(NPC_TIMER)
    call SaveUnitHandle(udg_Hash,h,2,NPC_UNIT)
    call TimerStart(NPC_TIMER,udg_RespawnSeconds,false,function Respawn_NPC)
endfunction

function InitTrig_Creeps_Revive takes nothing returns nothing
    set gg_trg_Creeps_Revive=CreateTrigger()
    set udg_Hash=InitHashtable()
    call TriggerRegisterPlayerUnitEvent(gg_trg_Creeps_Revive, Player(PLAYER_NEUTRAL_AGGRESSIVE), EVENT_PLAYER_UNIT_DEATH, null)
    call TriggerAddAction(gg_trg_Creeps_Revive, function Trig_Respawn_loop_Actions )
    local trigger trg = CreateTrigger()
    call TriggerRegisterTimerEvent(trg,1.00,false)
    call TriggerAddAction(trg, function Trig_Init_save_coords_Actions )
    set trg=null
endfunction
Возможность показа текста при возрождении
Возможность изменения текста
Возможность смены цвета текста
Без толку, лучше бы сохранение угла поворота сделал....
И почему у меня 38 ошибок?Оо
» Фэил
Зачем делать так:
Так

        if udg_Color == "Black" then
            call DisplayTimedTextToForce(GetPlayersAll(),1.0,"|c00000000"+udg_TextName+"|r")
        endif
        if udg_Color == "Blue" then
            call DisplayTimedTextToForce(GetPlayersAll(),1.0,"|c000000ff"+udg_TextName+"|r")
        endif
        if udg_Color == "White" then
            call DisplayTimedTextToForce(GetPlayersAll(),1.0,"|c00FFFFFF"+udg_TextName+"|r")
        endif

если можно так

        if udg_Color == "Black" then
            call DisplayTimedTextToForce(GetPlayersAll(),1.0,"|c00000000"+udg_TextName+"|r")
        elseif udg_Color == "Blue" then
            call DisplayTimedTextToForce(GetPlayersAll(),1.0,"|c000000ff"+udg_TextName+"|r")
        elseif udg_Color == "White" then
            call DisplayTimedTextToForce(GetPlayersAll(),1.0,"|c00FFFFFF"+udg_TextName+"|r")
        endif

Отредактировано Vadik29, 19.05.2012 в 07:34.
Старый 19.05.2012, 06:42
quq_CCCP
Я белый и пушистый!
offline
Опыт: 93,279
Активность:
NIKZ, ну не могу не минусануть....
На гуи бы получилось лучше...
Во первых куча глобалок, которые нужно копировать... во вторых - угол поворота моба не сохраняется, нельзя без "хирургического вмешательства" изменить игрока "Нейтрально враждебный", в третьих - настроек маловато, даже я бы сказал совсем нету, не как нельзя встроить формулу расчёта времени респауна крипа (из ходя из уровня, кол во хп, или времени суток)...
Посмотри мою последнюю версию CRS и сделай свой аналог на гуи, тогда гуишники действительно скажут спасибо...
Старый 19.05.2012, 07:26
NIKZ
Изучаю Jass
offline
Опыт: 6,036
Активность:
quq_CCCP, Эмм а че их копировать то Триггер скопировал и все, сложно не
Vadik29, Эмм Спецэффект не создается таким образом без бж через строку, вот и сделал, а что это гиииииииииииигантская утечка? И сразу компьютер выключается при этой функции?? мммм не знал...У меня все нормально
NIKZ добавил:
Vadik29, Эмм Фича Hatsume Hate,cоздавать юнитов в рандомном углу
Старый 19.05.2012, 08:04
Vadik29
Choice Battle 1.6а
offline
Опыт: 15,845
Активность:
NIKZ, -_-
Vadik29, Эмм Фича Hatsume Hate,cоздавать юнитов в рандомном углу
это бред, также заметил Стартовые позиции не сохраняются, а это значит, что система твоя безполезна...
Старый 19.05.2012, 08:05
NIKZ
Изучаю Jass
offline
Опыт: 6,036
Активность:
quq_CCCP, Хз уже 5 человек с другого сайта пользуются и говорят спасибо и скопировали 9 глобалок запросто. Просто скопировали 2 триггера и создали переменную Hash и сделали настройки под себя
NIKZ добавил:
Vadik29, Ниче не понятно...
КСТАТИ Это моя самая первая система
Vadik29, Вот попробуй сам заменить твое bj на не bj,я посмотрю как у тебя работать будетб мхм давй давай
NIKZ добавил:
Vadik29, Сохраняются, + чуть чуть дальше, тоже фича Hatsume_Hate, У тебя с редактором глюки или эе ты немного глуповат, я хз что с тобой...
И еще раз повторю
Это моя ПЕРВАЯ Самая ПЕРВАЯ система за всю историю жизни!
Старый 19.05.2012, 08:09
Vadik29
Choice Battle 1.6а
offline
Опыт: 15,845
Активность:
NIKZ, Любым скилом который двигает юнита, а потом убей его и он реснется не где он изначально стоял, а где ты его убил и так со временем все перемешается...
Это моя ПЕРВАЯ Самая ПЕРВАЯ система за всю историю жизни!
И что?
а что это гиииииииииииигантская утечка?
[censored] через нативы делал? Делай все через БЖ, это же не такая "гиииииииииииигантская утечка"...
Хз уже 5 человек с другого сайта пользуются и говорят спасибо и скопировали 9 глобалок запросто. Просто скопировали 2 триггера и создали переменную Hash и сделали настройки под себя
Выложи на Хайв, проверим.
[+] замечание от Msey: 1.1 (ненормативная лексика)

Отредактировано Msey, 19.05.2012 в 12:35.
Старый 19.05.2012, 08:10
quq_CCCP
Я белый и пушистый!
offline
Опыт: 93,279
Активность:
NIKZ, ну понятно что ты в jass новчок, ну уж думаю бы мог сообразить написать на гуи через массивы...
Куда удачнее бы было, ну ты посмотри на мою систему, ссылку я скидывал...
И это считается так себе система, типо тока для самых последних нубов, и потом посмотри на свою...
Дорабатывать и дорабатывать...
Старый 19.05.2012, 08:21
NIKZ
Изучаю Jass
offline
Опыт: 6,036
Активность:
quq_CCCP, Почти та же система, только у меня есть настройка в гуи и +смена цвета текста изменения его и еще пару других штучек и у тебя все на джассе, а это никто из новичков в гуи не поймет.
Отходим от темы, пишем отзывы...
Старый 19.05.2012, 20:48
Vadik29
Choice Battle 1.6а
offline
Опыт: 15,845
Активность:
NIKZ, Вот гуи любой гуишник исправит как ему нужно....
Если ее конвертнуть в джасс, избавиться от БЖ и посадить на таймер, будет в 123125112341234 раз лучше твоей
надеюсь то
Прикрепленные файлы
Тип файла: w3x Vadik29RespawnSystem.w3x (20.7 Кбайт, 5 просмотров )

Отредактировано Vadik29, 20.05.2012 в 09:22.
Старый 19.05.2012, 21:45
NIKZ
Изучаю Jass
offline
Опыт: 6,036
Активность:
Vadik29, Во лол. Поллед вайты и локалки. А гуишник(начальный откуда знает что такое локалка?)
NIKZ добавил:
Вобщем. Мне параллельно, скинул я наработку, делайте что хотите, мне насрать. Хоть ее отредактируйте, главное меньше понтуйтесь и все...
Тему закрывайте, имхо тупые комменты, не ожидал от XGMовцев.
Старый 20.05.2012, 01:02
Vadik29
Choice Battle 1.6а
offline
Опыт: 15,845
Активность:
NIKZ, LoL, если ты сделаешь полностью на гуи по другому (чтобы систему загружало также) то я не знаю, что тебе сказать....
А гуишник(начальный откуда знает что такое локалка?)
ты нет, а нормальный гуишник знает....
Старый 20.05.2012, 09:18
quq_CCCP
Я белый и пушистый!
offline
Опыт: 93,279
Активность:
Vadik29, да не издевайся ты, лучше подскажи ему как сделать норм на гуи (ну хотябы как Externator делает), то он сделал слишком слабо чтобы называть системой респауна, можно на таймере и глоблаках на гуи сделать (хз нах это надо, есть хештейблы и Vjass+ timerUntils)
Старый 20.05.2012, 09:27
Vadik29
Choice Battle 1.6а
offline
Опыт: 15,845
Активность:
quq_CCCP, для гуи лучше всего в данном случае локалка и вэйт, хотя я могу ошибаться....
Старый 20.05.2012, 09:32
quq_CCCP
Я белый и пушистый!
offline
Опыт: 93,279
Активность:
Vadik29, Вейты работают некорректно...
Хотя самый простой вариант, но еще как минус каждый раз объявлять локалку и хранить её всё время в памяти, это засеранеи памяти и потеря производительности скрипта...
Старый 20.05.2012, 09:35
Vadik29
Choice Battle 1.6а
offline
Опыт: 15,845
Активность:
quq_CCCP, обнуление очишает все из памяти, данная структура хоть и слишком проста, зато меньше всего грузит систему
Старый 20.05.2012, 09:37
quq_CCCP
Я белый и пушистый!
offline
Опыт: 93,279
Активность:
Vadik29, ну хз хз, ибо в памяти то сидит не только 101 локлка но и триггер с событиями и деиствиями...
Поэтому используют таймеры и хеш\структуры... Они не создают прерываний выполнения триггера и триггер не хранится в памяти по полчаса...
quq_CCCP добавил:
Vadik29, надо никса надоумить не бросать всё а довести до ума, и желательно без троллинга...
То он бедняга старался а его обкакали...
Старый 20.05.2012, 09:42
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 00:43.