PlayGround.ru
Ropnet
, прохождение игры Operation Flashpoint, Tom Clancy's Splinter Cell: Двойной агент, Герои меча и магии 3: Возрождение Эрафии трейлер


Тема по вопросам о WorldEditor №7

RwC Private League   29 ноября 2009 в 11:50

ГИППЕР МАППЕР

Я уже с того раза не садился за работу... =\

Так и было 75% ну вообще незнаю чо там еще сделать...

JassMan   29 ноября 2009 в 15:33

блин был бы у мя фото шоп яб такое сделал. . . Я пробовал его себе установить, но безуспешно.

Kapa6acvlk   29 ноября 2009 в 15:35

KiLLiNG_SPREEE

Я насчитал только 4 темы, 2 из них повторяются, так откуда 6?

Стандартными средствами редактора не изменишь текстуры склонов.

JassMan   29 ноября 2009 в 15:55

Нифига се повторяются . . . Ты на каждую тему залезь и посмотри.
Может они и называются не по нумерации, но следуют они все же в хронологическом порядке.
В каждой теме ссылка на предыдущую тему, все они совпадают с тем списком который я в самом верху тут написал.

Andreya   30 ноября 2009 в 15:33

Помогите плиз. Хочу создать предмет, который дает 100 к главному атрибуту и 50 к остальным.
Как это можно осуществить?

Kapa6acvlk   30 ноября 2009 в 17:55

Andreya
Создавай 3 предмета.

Andreya   30 ноября 2009 в 21:19

Kapa6acvlk
а дальше?

JassMan   30 ноября 2009 в 21:43

создал три предмета, каждый отличаеться тем что дает в какой-то характеристике 100 а в остальных 50
и делаешь сравнение когда герой приобретает предмет, мол если герой манипулирующий предметом — "ловкач", или "интелектуал" или "силач" то дать ему соответствующий предмет.

Почву мы с Карабасом тебе дали, дальше сам сможешь. Не надо ленится — поищи все действия и условия к данному алгоритму.

mcmalou   30 ноября 2009 в 22:20

Подскажите как сделать что бы:
Создавался юнит в облосте 1 и бежал в облость 2 при этом убивал проитвников на своем пути?

Kapa6acvlk   30 ноября 2009 в 23:18

mcmalou
Вариант 1:

Действия
Боевая единица - Create 1 Пехотинец for Игрок 1 (красный) at (Center of Область 1 ) facing Стандартная ориентация зданий degrees
Боевая единица - Order (Last created unit) to Перейти, нападая на противников (Center of Область 2 )

Вариант 2:

Действия
Боевая единица - Create 1 Пехотинец for Игрок 1 (красный) at (Center of Область 1 ) facing Стандартная ориентация зданий degrees
Отряд - Pick every unit in (Units in Область 1 ) and do (Actions)
Цикл - Действия
Боевая единица - Order (Picked unit) to Перейти, нападая на противников (Center of Область 2 )

Jenia_aka_nels   1 декабря 2009 в 15:30

Можно ли сделать у героя больше 5 способностей? Если да, то как???

WezT   1 декабря 2009 в 21:28

у меня тут вопросик появился. какую (ну и возможно как) сделать способность герою, что бы на её место вставала броня и/или оружие?

Andreya   1 декабря 2009 в 22:08

А можно ли как-нибуть открывать едитор два раза? Мне нужно скопировать много вещей с одной карты в другую, а по сто раз открывать одну карту, копировать предмет, открывать другую и вставлять довольно утомительно)

Andreya   1 декабря 2009 в 22:09

WezT
по конкретней вопрос раскрой

WezT   1 декабря 2009 в 22:28

я создал предметы (предположим броню). я хочу сделать так, чтобы эта броня ставилась как способность .если не понятно объясняю (а я уже чёт сам не понимаю что пишу), то объясню по другому. моя цель-сделать так, чтоб тока один вид брони, который выберешь, действовал, а остальные эффектов не давали, а просто занимали место в инвертаре.

Kapa6acvlk   1 декабря 2009 в 23:11

Jenia_aka_nels
используй спеллбук

Andreya
Запустить эдитор 2 раза нельзя, используй импорт и экспорт для переноса.

WezT
делай пустые предметы, которые можно использовать. При использовании давай юниту абилу нужную тебе. При повторном использовании удаляй абилу, чего сложного?

WezT   1 декабря 2009 в 23:15

Kapa6acvlk
блин, точно. спасибо

mcmalou   2 декабря 2009 в 09:48

Kapa6acvlk
а как зделать что бы не 1 мобы бежал а 2 или больше, я зделал вот так:
Действия
Боевая единица - Create 3 Пехотинец for Игрок 1 (красный) at (Center of Область 1 ) facing Стандартная ориентация зданий degrees
Отряд - Pick every unit in (Units in Область 1 ) and do (Actions)
Цикл - Действия
Боевая единица - Order (Picked unit) to Перейти, нападая на противников (Center of Область 2 )
а они не бегут на месте стоят, подскажи

RwC Private League   2 декабря 2009 в 10:09

mcmalou

Попробуй создавать по 1му юниту, но в цикле.

Andreya   2 декабря 2009 в 14:06

Kapa6acvlk, подскажи с импортом. Я открыл менеджер импорта. Тут таблица и экспортировать и импортировать можно только файлы, которые находятся в таблице. Вот вопрос: как засунуть сюда нужные файлы?

Andreya   2 декабря 2009 в 16:53

Всё, спс, разобрался :)

WezT   2 декабря 2009 в 21:03

блин, чёт я туплю в последнее время. как происать окончание определённого квеста

JassMan   3 декабря 2009 в 00:01

карабас надо написать это в факе, ато про посылание отряда уже не первый раз спрашивают

Kapa6acvlk   3 декабря 2009 в 00:14

mcmalou
может у тебя область слишком маленькая, и они в нее не помещаются, больше ничего в голову не приходит. выложи карту, дай ссылку, глянем объясним.

Nics0009   3 декабря 2009 в 12:45

Подскажите, плс!
Я создал норм карту и не хочу, чтобы кто-то мог просмотреть и изменять с помощью World Edit-a её тригеры. С помощью какой проги можно так сделать, чтобы она не открывалась WE, но при этом запускалась в Варкрафте??

RwC Private League   3 декабря 2009 в 12:54

Тру, нада кинуть в фак и про посылания отряда, и про программы всякие...

Nics0009   3 декабря 2009 в 13:48

Например, так заблокирована дота..

Nics0009   3 декабря 2009 в 14:44

ГИППЕР МАППЕР
это не то (( она кодирует формат .w3m (как я понял просто Warcraft 3) мне нужно, чтобы кодировалось .w3x

JassMan   3 декабря 2009 в 15:53

Я слил блокиратор в FAQ ссылка которого наверху

Nics0009   3 декабря 2009 в 16:26

Спс)) Помог.

Nics0009   3 декабря 2009 в 17:00

Слушайте, можете ещё в кое-чем помочь плс??

Вобщем, я редактировал свою карту, сохранил, и не закрывая редактора вырубил комп... Теперь не открывается, пишет: "-Сведения о уровнях отсутствуют или неверны". Можно ли как-нить восстановить рельеф????

(все триггеры, у меня, слава богу сохранились в резервной копии)

JassMan   3 декабря 2009 в 17:59

Так какие проблемы? — открывай резервную копию и работай там, он заблокировал твою карту (не только триггеры, но и всё) работай в резервной копии, кода внесешь изменения, копируешь, потом блокируешь и перезаливаешь на сайт вместо старой версии. . . вообщем как разработчики Доты делают.

RwC Private League   3 декабря 2009 в 19:33

Кстати да, я вот работал на школьных компах (ы), а пришел домой, скинул на комп, а там такая же ошибка... Пришлось заново делать, по памяти ^_^

Но не хотелось бы что бы повторилось... И вообще, как так произошло?



PS:

Кто помнит, я спрашивал, как отследить триггером способность, типа "Огеннеые стерлы"? Ну карабас точно помнит... Так вот, мне объяснили как это сделать:

Изображение с кодом 940036 - savepic.ru — сервис хранения изображений

Wortecs   3 декабря 2009 в 21:37

Мне надо модель в которой все точки приложения в норме!
Вепонт н првой руке, Лефт н левой . хед на голове , чес на груди, оверхед над головой НАйти немогу помогите!!!

JassMan   4 декабря 2009 в 10:36

HELLICOPTER ммм, интересная инфа, а откуда откопал такое? вообще где можно посмотреть все строчные приказы?

Nics0009   4 декабря 2009 в 12:25

Вопросег.
Какое условие = ограничение входа Героя по лвлу.
(Мне нужно, например, если у гера 20 лвл, то делается то и то)

JassMan   4 декабря 2009 в 12:49

ищи сравнение чисел — integer compasion

Nics0009   4 декабря 2009 в 13:03

KiLLiNG_SPREEE Это немного не то.. Мне нужно, чтобы было сравнение больше либо равно.. А не четко - у гера исполнился N-уровень, то сделать то-то.
(у мя такая ситуация - гер входит в регион и если уровень больше или равно 20, то делается тп.)

RwC Private League   4 декабря 2009 в 14:23

KiLLiNG_SPREEE

Да друг, некий avatarDr, помог...

А приказы указываются в редакторе способностей - "Текст - порядок строк" Там вкл, выкл (если автокаст или "Огненный щит" у Охотника на демонов") и еще что то) Ну вообщем там увидишь, на англ будет написано.

JassMan   4 декабря 2009 в 15:47

ааа это ордер абилки оказываеца, а я думал какой-то особый приказ
ну там несколько ордеров такого типа

WezT   4 декабря 2009 в 17:06

блин, чёт я туплю в последнее время. как написать окончание определённого квеста в триггерах?

JassMan   4 декабря 2009 в 17:32

Ребя ответьте ему, я честно хз никогда квесты не делал

Kapa6acvlk   4 декабря 2009 в 20:29

WezT
Действия
Задание - Display to (All players) the Задание выполнено message: Твоя месага.
Задание - Mark (Last created quest) as Выполнено

Jenia_aka_nels   4 декабря 2009 в 20:57

Подскажите в чем проблема: в редакторе объектов нажимаю с шифтом на способности героя, он выводит коды способностей. Я приписываю туда что-нибудь (как узнать код способности я не знаю) и затем в списке способностей изменяю "Неизвестно(...)" на нужную способность. Но у героя в игре почему-то нет этой способности (эту способность я добавил шестой).

Kapa6acvlk   4 декабря 2009 в 21:34

Jenia_aka_nels
А количество свободных клеточек 5, т.е. 6>5 и вставить ее как бы некуда. Понимаешь в чем соль? =))

Wortecs   5 декабря 2009 в 11:17

Мне надо джасс которій показивает нанесеній урон как в Варлокс!

Wortecs   5 декабря 2009 в 11:28

И я видел уже такое в Хол_ОРПГ так тчо неговрите мне ничего

fedos089   5 декабря 2009 в 12:54

А чуваки как сделать способность - аура иммуна?(все вокруг станут иммунами) или аура безмолвия?(все немогут колдоть вокруг)

RwC Private League   5 декабря 2009 в 13:22

Wortecs

На XGM как раз идет дискуссия на эту тему...Так что тебе пока лучше туда пойти...

Wortecs   5 декабря 2009 в 13:51

HELLICOPTER Был там недавно Ты там зареган то напиши что в карте HoL ORPG v1.2.w3x Есть уже и еще очень хорошая нетолько дама показивает а и опыт каст и денгу

RwC Private League   5 декабря 2009 в 14:00

Думаешь она открывается? Я про карту.

Wortecs   5 декабря 2009 в 14:03

Неа конешно нет я пробывал всем чем хоч но в ХГМ такие читера сидят!

П.с. Я то знаю как зделать так чтоб показивало какое ты заклинание пременил но только тригерно и надо тригер для каждого заклинания делать

Wortecs   5 декабря 2009 в 14:26

fedos089
Просто поставь область воздействия и создай заклинание заклинание

RwC Private League   5 декабря 2009 в 17:36

Wortecs

LOL

Как ты хочешь что бы мы или кто там, открыли депротектную карту, да еще и увидили триггеры...? омфг!

Wortecs   5 декабря 2009 в 18:47

HELLICOPTER
Незнаю, ваши проблемы дай сылку на статю как картинку загрузки мутить ато забыл уже

RwC Private League   5 декабря 2009 в 20:19

Wortecs

Наши проблемы??? Тру рехнулся? Если такой умный, и знаешь что к чему, делай сам что тебе вздумается!!!

WezT   5 декабря 2009 в 23:03

fedos089
поздравляю, но впредь прочитай тему подумай, а подходит ли сообщение по теме. намёк понял?

Wortecs   5 декабря 2009 в 23:29

fedos089Мої вітання
HELLICOPTER F*ck мой мозг у мну температура под 38 я вообще недумаю, Я ели зделал себе LoadingSkreen Вахх
Там реально можно както я уже скрыпты достал с помощу WinMPQ
Ничего ХГМшники вскрою уверен я еще в одной карте видел! Все амерекоские

WezT   6 декабря 2009 в 19:17

у меня вот тут вопросы нарисовались:
1. где менять расстояние, при котором юнит берёт предмет?
2. сделал пустые предметы, сделал триггеры на давание абилы и удалении предмета при использовании этого предмета и удалении абилы и давания предмета при использовании этой абилы. внимание вопрос: почему, когда я так сказать снимаю предмет (использую абилу) всё проходит наполовину нормально (потому что сделал как для брони, так и для оружия, поэтому присутствуют две абилы от двух разных предметов, должна удалятся одна, а удаляются две), а потом перс не двигпется, ничё не подбирает и не выкидывает и никого не атакует?

Kapa6acvlk   7 декабря 2009 в 10:03

WezT
1. В константах
2. Показывай карту, будем смотреть

fedos089   7 декабря 2009 в 19:23

как сделать больше 6144 деревьев в ворлд едиторе? в в.е. ультимат? дайте сцылку, немагу найти...

Wortecs   8 декабря 2009 в 16:56

Осталось добить Save and Load System Дайте ктото сылку ато с WRL С багами достал и просто капец

Wortecs   8 декабря 2009 в 16:57

fedos089 В простом никак, и больше 6к ненадо, ненадо делать некому ненужные большие карты розмером 412х412 с кучой деревев и оно будя те лагать Близард нетупые!

fedos089   8 декабря 2009 в 19:25

а как тада сделать типо деревья срубили и чтоб они зарастали как в доте?

JassMan   8 декабря 2009 в 22:27

ищи это в предыдущих темах, тут на всё вопросы уже были ответы, заодно и еще чему-нибудь научишься

Wortecs   9 декабря 2009 в 11:22

KiLLiNG_SPREEE Ненайду на 1.24 надо новий

RwC Private League   9 декабря 2009 в 12:35

Wortecs
имхо, киллинг ответил fedos089, а не тебе)

WezT   9 декабря 2009 в 16:48

Kapa6acvlk
files.mail.ru/1ZR80J вот ссылка

Kind Ram   9 декабря 2009 в 19:10

Народ как делать кнопки для выбора. Которые на экран вылазиют и в них всякие режимы выбераеш и все такое.

RwC Private League   9 декабря 2009 в 22:01

Гектор тебе как - наработкой или на словах?)

Kapa6acvlk   10 декабря 2009 в 15:42

WezT
У тебя в триггере событие не правильное, вот баг и возникает. Поставь событие, Приводит способность в действие.

WezT   10 декабря 2009 в 16:59

Kapa6acvlk
спасибо

Kind Ram   10 декабря 2009 в 18:05

Наработкой. Я на картах легче учу такие триги.

Kapa6acvlk   10 декабря 2009 в 23:14

Hectore
Не нужно учить, нужно понимать как это работает.

RwC Private League   11 декабря 2009 в 12:58

Kapa6ac, помнишь, я спрашивал как занести кол-во урона в переменную?... Я бы хотел тебя попросить), можешь показать этот процесс в жасе? ^_^

уж больно полезная штука)

Hectore

Ну вообщем я сделаю, а ты или учи, или понимай xD

Kapa6acvlk   11 декабря 2009 в 15:44

HELLICOPTER
При атаке юнита, значение нанесенного ему урона записывается в переменную r. Юнит должен быть предустановлен на карте!

function Trig_damage_Actions takes nothing returns nothing
local real r = GetEventDamage()
endfunction

function InitTrig_damage takes nothing returns nothing
set gg_trg_damage = CreateTrigger( )
call TriggerRegisterUnitEvent( gg_trg_damage, Твой конкретный юнит, EVENT_UNIT_DAMAGED )
call TriggerAddAction( gg_trg_damage, function Trig_damage_Actions )
endfunction

RwC Private League   11 декабря 2009 в 16:53

Kapa6acvlk
А если у меня генерик юнит?

Мне это подойдет?

Если нет, то как записать урон, полученный юнитом из переменной X?

Kind Ram   11 декабря 2009 в 18:36

HELLICOPTER
Сенки все пашет.

Kapa6acvlk   11 декабря 2009 в 18:59

HELLICOPTER
Для этого нужно писать целую систему. Таки наработки есть на www.hiveworkshop.com Главный смысл наработки заключается в том, что при атаке любого юнита, для этого юнита создается триггер, который и отловит ДМГ, после отлавливания произведет нужные действия, и уничтожится. Подобную наработку лучше делать на хеш таблицах, а не на массивах, т.к. массивы ограничены.

RwC Private League   11 декабря 2009 в 20:52

Kapa6acvlk

Ухх знакомый сайт... ладно спс буду копаться. Правда у меня (а мб не только у меня) в редакторе нету хеш таблиц, просто пустые строки в кол-ве 40 шт....

JassMan   11 декабря 2009 в 21:13

лол так ты русификатор удали ухахахах

порабы его уже забросить . . .

Kapa6acvlk   12 декабря 2009 в 00:59

KiLLiNG_SPREEE
ОО дельная мысль и тебя посетила =))

JassMan   12 декабря 2009 в 01:51

дак я уже без него как год

Kapa6acvlk   12 декабря 2009 в 14:11

Толстый_джо
иди ка ты в FAQ

Толстый_джо   12 декабря 2009 в 14:14

Помогите плиз.
Как 4 разных предмета в 1 совместить, но только если у героя в сумке(пример дота),только именно 4, не 2, не 3!
P.S. какой тригер нужен для того что бы только с определённым предметом можно было входить в зону! В моём случае этот предмет Знамя альянса или Орды

Толстый_джо   12 декабря 2009 в 14:28

Там не написано я читал... Но то что ты имеешь ввиду там 2 одинаковых предмета! У мя 4 разных

Толстый_джо   12 декабря 2009 в 23:39

Ой сори, сначала не заметил. Но всё равно не сделал так как некоторое не понял=)
А что на счёт что бы только с определённым предметом можно было входить в зону? Подскажите. Я догадаюсь для начала надо выделить область в которую нельзя заходить? Я прав? А какой тригер нужен?

Andreya   13 декабря 2009 в 14:54

Народ, всем привет! Прошу Вашей помощи
savepic.ru/919264.htm

Вот задумка такая: юнит входит в регион и через 10 секунд у него отнимается 10 всех атрибутов. Что у меня не так?

Player_Over_9000   13 декабря 2009 в 15:10

To Толстый_джо
События
Боевая единица - A unit enters "Запретная область"
Условия
((Entering unit) has an item of type Предмет, без которого нельзя войти) равно Нет
Действия
Боевая единица - Move (Entering unit) instantly to (Center of (Область, куда переносит юнита, если он не имеет предмета))

Player_Over_9000   13 декабря 2009 в 15:13

To Andreya
Может быть ты не героем туда заходишь)

Player_Over_9000   13 декабря 2009 в 15:17

To Andreya
А может быть ты заходишь туда сначала героем, а потом, не подождав 10 секунд, обычным юнитом. Переменная lol меняет свое значение на обычного юнита и второй триггер, подождав 10 секунд, пытается вычесть 10 атрибутов из обычного юнита.

Andreya   13 декабря 2009 в 17:18

4e_IIaJIuIIIb
Да нет) всё ровно. Захожу в местность, не двигаюсь, жду 10 секунд и ....не фига!

Player_Over_9000   13 декабря 2009 в 17:45

Попробуй одним триггером и без задержки в 10 секунд, или вводи локальную переменную.

Толстый_джо   13 декабря 2009 в 18:27

4e_IIaJIuIIIb
я примерно так и сделал. Кста киньте фото как сделать что бы совместить предметы. А то я так не доганяю

RwC Private League   13 декабря 2009 в 18:49

Andreya

Есть разница, вкл триггер и запустить триггер.

Если триггер изначально выключен, то его можно включить и будет работать как обычный. Есди триггер следует запустить то есть специальное действие, оно так и называется. Есть 2 типа - проверяя условия и не проверяя. Я, как вижу, условий нет - значит запускай просто триггер, а не включай, как у тебя на скрине.

PS: не юзай ты wait, это очень, очень опасная функция! Если войдут 2 героя за 10 сек в эту область... ты знаешь что будет... Действия будут только с послденим юнитом в переменной.

Andreya   13 декабря 2009 в 19:58

HELLICOPTER, Воо Спасибо Бигг, заработало.. А если не wait, то что тогда? Пробовал сделать через время в событиях, но он с иницилизации карты отсчитывает почему-то..

RwC Private League   13 декабря 2009 в 21:35

Таймер... массивы...

RwC Private League   14 декабря 2009 в 13:53

Как можно сделать оповещение типа: "Недостаточно маны", "Подождите."... вот такие сообщения золотистого цвета.. как можно их поменять-добавить новые?

Player_Over_9000   14 декабря 2009 в 14:11

Есть в одном меню что-то типа "Настройка игрового интерфейса", там все эти фразы, иконки. Можно даже поменять путь к DISBTN-иконкам.

Kapa6acvlk   14 декабря 2009 в 15:13

HELLICOPTER
Есть наработка на HW и нп XGM, называется SimError для эмуляции системных ошибок.

RwC Private League   14 декабря 2009 в 15:56

И как этим кодом пользоваться?)

function SimError takes player ForPlayer, string msg returns nothing
local sound error=CreateSoundFromLabel( "InterfaceError",false,false,false,10,10)
if (GetLocalPlayer() == ForPlayer) then
call ClearTextMessages()
call DisplayTimedTextToPlayer( ForPlayer, 0.52, -1.00, 2.00, "|cffffcc00"+msg+"|r" )
call StartSound( error )
endif
call KillSoundWhenDone(error)
set error=null
endfunction

Andreya   14 декабря 2009 в 17:30

А вот обьясните мне пож, как сделать в триггере рассматривать цель заклинания? Ну к примеру: юнит использует какую-нибуть способность с целью(т.е. не без цели или цель - поинт), и дальше чтобы рассматривать вот этого самого юнита, который стал целью. Например : Событие - Юнит начинает кастовать способность,
Условие - Цель способности имеет меньше 100 хп и т.д... Как ?

RwC Private League   14 декабря 2009 в 18:07

Andreya

Сможешь это же переформулировать?)

... я не понял.

Player_Over_9000   14 декабря 2009 в 18:51

условие по-моему будет
(Здоровье of (Target unit of ability being cast)) меньше 100.00

Andreya   14 декабря 2009 в 19:31

HELLICOPTER, я этого боялся)
Ну вот скастовал юнит способность типо Цель-обьект и чтобы в условиях и действиях рассматривать юнита, который стал целью этого заклинания...вот какие условия и действия должны быть?
Например. юнит использовал способность на другого юнита, и если у того хп меньше чем 100, то убить его..
- - -
4e_IIaJIuIIIb, вооо этот вроде бы как раз то, что мне нужно!

RwC Private League   14 декабря 2009 в 21:08

Дык ответ найден? ^_^

Andreya   14 декабря 2009 в 21:27

Ну не совсем. У меня появились сложности... Вот если не составит труда глянь ...
savepic.ru/952869.htm
Задумка:Условие.Если у юнита-цели меньше ловкости чем у кастующего юнита, тоо - Действие. Становится Ночь, кастующий юнит и юнит цель впадают в паузу, потом идут различные спецэффекты(видно из действий) в конце юнит-цель умирает, но триггер работает неправильно
Действие над юнитом-целью происходит один раз. Т.е. в начале его ставит в паузу и больше с ним ничего не происходит! Можно вместо паузы поставить что то другое, но последущие действия не осуществятся, в то время как кастующий юнит выполняет все написанное.Вот вопрос: Что за...?!

RwC Private League   14 декабря 2009 в 21:57

Засунь юнит цель и юнит кастер в переменные и будет тебе счастие.

Andreya   15 декабря 2009 в 12:23

ООо ваще тебе благодарен!!!!!11Большое пасибО:)))
)) А где в триггере изменять атаку? Ну у боевой единицы

RwC Private League   15 декабря 2009 в 14:28

Снаряда? Скорости? Мощности? Чего атаку то?

Andreya   15 декабря 2009 в 15:56

Атака. НУ которая в панели стоит) например 101-121 :)))

RwC Private League   16 декабря 2009 в 09:52

Эт не ко мне... сам пытаюсь узнать.

PS: зато я счастлив, я карту наконец то впустил) и то... наверно там столько недоделанных вещей) www.playground.ru/files/20273/

Andreya   16 декабря 2009 в 10:35

Что за карта?

RwC Private League   16 декабря 2009 в 10:40

Развитие... Модерн.

timber1111   16 декабря 2009 в 11:04

Люди подскажите...как мне сделать чтоб вместо дерева и пищи были минуты и секунды???

Kapa6acvlk   16 декабря 2009 в 15:23

Andreya
Невозможно менять атаку триггером

RwC Private League   16 декабря 2009 в 15:57

Можно зато баффом попробовать...

RwC Private League   17 декабря 2009 в 10:49

Карабасик, мб я и не очень вежливый (:D) но хотел тебя попросить объяснить работу кода, не сочти наглостью. SimError:

function SimError takes player ForPlayer, string msg returns nothing
local sound error=CreateSoundFromLabel( "InterfaceError",false,false,false,10,10)
if (GetLocalPlayer() == ForPlayer) then
call ClearTextMessages()
call DisplayTimedTextToPlayer( ForPlayer, 0.52, -1.00, 2.00, "|cffffcc00"+msg+"|r" )
call StartSound( error )
endif
call KillSoundWhenDone(error)
set error=null
endfunction


GISMETEO: Погода по г.Самара

Kapa6acvlk   17 декабря 2009 в 13:01

HELLICOPTER
вставляешь код функции в кастом код, и в нужном триггере вызываешь функцию
call SimError(номер игрока, текст)
Нумерация естественно начинается с 0.
Так же перечитай определение Баффа, что это такое и для чего он нужен.

RwC Private League   17 декабря 2009 в 13:26

Kapa6acvlk

Я опять не понял... там ошибки опять летят... =(( ну как нибудь помоги =\\

Я как тока не пробовал - и в кастом скрипт кидал, и в отдельный триггер. Я уже не знаю что еще ему нада.

Изображение с кодом 1018273 - savepic.ru — сервис хранения изображений

Jenia_aka_nels   17 декабря 2009 в 14:58

Накопилось еще несколько вопросов:
1. Можно ли сделать так, чтобы сначала у героя есть 3 изучаемые способности, и когда он изучает одну из них, то у него 2 другие способности пропадают и появляются еще 3 изучаемые? Если можно, то как???
2. Как сделать так, чтобы каждую минуту у всех вражеских юнитов максимальное количестро здаровья повышалось на 1?

RwC Private League   17 декабря 2009 в 17:20

Jenia_aka_nels

1. Подобное уже описывалось.
2. На ГУИ по-моему не возможно. Но если примитивным способом, то увеличивай силу героя.

Jenia_aka_nels   17 декабря 2009 в 21:09

И еще пара вопросов:
1. Как давно описывался тот вопрос?)
2. Как сделать так, чтобы когда катапульта или баллиста наезжала на противника, тот умирал?

Kapa6acvlk   18 декабря 2009 в 02:15

HELLICOPTER
В том коде, что ты привел, у тебя функция каким-то боком в триггер по моему попала о_0 Да и мало того, так и вызов функции происходит, раньше чем она объявлена. По количеству ошибок ты превзошол всех =)
Кастом код, это там где маленькая карта нарисована, свиточек такой, там откуда подпапки растут =)) туда вставляешь код, и потом call'ом вызываешь функцию в нужных тебе триггерах. Почитай хоть чуть чуть про jass, ничего сложного в базовых знаниях нет.

Andreya   19 декабря 2009 в 16:56

Помогите с вопросом.... Нужно, чтобы при использовании заклинания Волна Силы пораженого юнита отбрасывало на некое расстояние назад. Всякое перепробовал, но получается как то криво. То не туда смещается, то ваще пропадает хз куда, то совсем не работает...

RwC Private League   19 декабря 2009 в 19:54

А ты пробовал "Каждые 0.01 сек двигать мгновенно юнита со смещением (допустим 25) под углом 90 градусов"?

ГИППЕР МАППЕР   20 декабря 2009 в 00:56

HELLICOPTER скрин не сделал? =\
Jenia_aka_nels
1. извини в тему не въехалне знаю о чём ты
2. дай ему способность огненный щит или как то так у охотника на демонов способность кароч(только бери способность как у голема постоянная, она в способностях нейтрал.пассивных). и изменяй урон на 999999
ну и эффекты естественно измени\убери

Andreya   20 декабря 2009 в 12:17

HELLICOPTER, с движением слава богу разобрался) Вот не получается как сделать чтоб двигало всех юнитов, которые попали под волну?Что там указывать надо? Юнит-цель применяемой способности работает только тогда, когда волну укажешь именно на юнита, не на область, а если юнитов несколько, двинет только одного

Kapa6acvlk   20 декабря 2009 в 19:50

Andreya
Создай группу юнитов, и двигай группу.

Andreya   20 декабря 2009 в 20:41

Kapa6acvlk, а как её создать?

Kapa6acvlk   20 декабря 2009 в 23:27

Andreya
Ну с таким вопросом тебе еще вообще рано задумываться о ликбезе и перемещении объектов с помощью триггеров. Читай мануалы, слава богу их много.

RwC Private League   21 декабря 2009 в 15:05

А как можно обрезать кусок миникарты для определенной области, и потом вернуть обратно. То есть, что бы пределы камеры не уходили дальше указанной зоны, и главное что бы миникарта была увеличена (сфокусирована) на нужной области. ?:D

Andreya   21 декабря 2009 в 19:57

спасибо помог

Smek67   23 декабря 2009 в 16:34

Народ у меня такая проблема я создал карту сделал так чтоб разные крипы поевлялись постоянно! скажите как сделать так чтоб они все сразу не поевлялись а через опредделённое время!? И как сделать чтоб победа зависела от времини? напишите тригеры а то мой мозг уже кипит просто )))

RwC Private League   23 декабря 2009 в 18:30

Smek67

С такими базовыми знаниями о триггерах, тебе не стоит и начинать такое делать.

По делу: Есть 3 события отвечающие за переодичность или отсрочку использования триггера. Ищи что еще сказать.

BioAleks   25 декабря 2009 в 12:32

о_О... привет народ... эх... давно не был...
Смотрю тут люди уже мало знающие совсем стали...

Kapa6acvlk   25 декабря 2009 в 13:16

BioAleks
Да, народ совсем вымер. Нормальных вопросов нету, а по 100 раз на одно и то же отвечать неохота.

RwC Private League   25 декабря 2009 в 17:48

Оо... я думал я первый раз такой вопрос задаю...

А как можно обрезать кусок миникарты для определенной области, и потом вернуть обратно. То есть, что бы пределы камеры не уходили дальше указанной зоны, и главное что бы миникарта была увеличена (сфокусирована) на нужной области. ?:D

-||-
Ну так вот: Я все таки понял как сделать без JASS прибавку к атаке - все знают предметы, которые дают дмг к атаке, у них есть способность некая, вот и она и дает к атаке. В действии выглядит так: Герой изначально имеет эту способность, которая имеет 100 уровней, ну или меньше, затем уже триггерно делать все что угодно с этим скилом. Прибавлять лвл, убавлять, устанавливать... Nice :D

BioAleks   25 декабря 2009 в 19:26

Kapa6acvlk
Ты зачудил тот спелл в свою карту??? 64 удара...

BioAleks   26 декабря 2009 в 11:24

Kapa6acvlk
А чё так?

TWISTOS   26 декабря 2009 в 21:44

Ребят о чем речь? Посвятите? xD

RwC Private League   27 декабря 2009 в 11:12

Млин... чат тут устроили... мб я и не прав но я желал бы тут увидеть (или увидить :D) разговоры о невероятных достяжениях в WE, также свои новые идеи... просто выкладывать сюда и пусть люд дивится.

А вообще я хотел бы что бы мне кто нибудь помог. *читать ап*.

Kapa6acvlk   27 декабря 2009 в 11:24

BioAleks
Уже месяц как карту не открывал. рабочего настроения нету, а без настроения делать херня какая-нибудь получится.
HELLICOPTER
П твоему вопросу, ХЗ. Ни разу не делал и не стремился сделать разворачивающуюся карту. Смотри карты компании, там была подобная.

RwC Private League   27 декабря 2009 в 11:34

Kapa6acvlk

Радует, что есть от куда теперь брать пример. Спасиб, "выздоравливай" от плохого настроения, нг ведь скоро...

BioAleks   27 декабря 2009 в 13:04

Kapa6acvlk
Ясно... а я уже где-то 2-3 месяца в варкрафт не рубал и не был в редакторе...
Надо бы заняться снова

BioAleks   27 декабря 2009 в 13:05

HELLICOPTER
Я тоже по твоему вопросу хз...

ГИППЕР МАППЕР   27 декабря 2009 в 18:49

HELLICOPTER ты скрин не сделал?=( есл ине хочешь делать так и скажи

RwC Private League   27 декабря 2009 в 22:59

Не получается у меня нормально дорисовать сосуды и части кожи на открытой ране =((

Изображение с кодом 72364 - savepic.org — сервис хранения изображений

Assaultxxx   28 декабря 2009 в 15:15

Люди как камеру открепить помогите плизз

Alpha16   28 декабря 2009 в 16:52

я скачал новые модели.Куда их надо пихать?

RwC Private League   28 декабря 2009 в 19:40

Вот ситуация: Кастуешь AOE спелл, все юниты в зоне действия записываются в переменную. А как этим юнитам, через время, всем сразу добавить нужную способность? :D Воообще не в понятхак как и что нужно...

ГИППЕР МАППЕР   28 декабря 2009 в 23:04

HELLICOPTER
поищи похожие картинки и по ним ориентируйся
з.ы. смечсти рану чуть вниз, а то зубы на открытой ране прямо на губе=)

ГИППЕР МАППЕР   29 декабря 2009 в 11:35

ifolder.ru/15713461 вот карту сделал=) оцените чтоль
пароль asd

ГИППЕР МАППЕР   29 декабря 2009 в 11:37

фаллаут форевер[а вас всех с новым годом]
пихай в менеджер импорта(листик с зелёной стрелочкой)

ГИППЕР МАППЕР   29 декабря 2009 в 11:54

извините за флуд=) как вы относитесь к новой теме: обсуждение карт(закидываешь СВОЮ! карту и другие будут оценивать,помогать с картами,искать баги)

BioAleks   29 декабря 2009 в 13:28

ГИППЕР МАППЕР
Я не против...

ВСЕМ
С наступающим кстати всех...

BioAleks   29 декабря 2009 в 13:41

HELLICOPTER
Там есть действие юнит... добавить способность...
Можно сделать из двух триггеров это всё

RwC Private League   29 декабря 2009 в 13:54

BioAleks

Вопрос решен, но твой ответ мне не помог бы никак. Не веришь? Попробуй сам сделай что ты сказал.

BioAleks   29 декабря 2009 в 13:56

HELLICOPTER
Я же делал, поэтому и говорю...
P.S. ток уже не помню как делал... вот я туплю. xD

RwC Private League   29 декабря 2009 в 15:41

Ну не подходит твой вариант, 100%.

Alpha16   29 декабря 2009 в 17:28

я пихнул.Что дальше?Их нету нигде

RwC Private League   29 декабря 2009 в 17:45

Читай мануалы, прикрепленные к этой теме, проблем не должно быть. Если проблемы будут и их оценят как "критические" то помогут, если же где то описано - увы.

Kapa6acvlk   29 декабря 2009 в 18:35

фаллаут форевер[а вас всех с новым годом]
Почему вы сами ленитесь зайти в тот же google и написать "импорт моделей в карту warcraft"
xgm.ru/articles.php?section=wc3
тут есть все что тебе нужно, читай. За тебя этого ни кто не сделает.

Andreya   29 декабря 2009 в 20:52

Народ, кто в доту играет знает нового чара Марлока. Он может связывать цепью противника и тот не может уйти дальше какого то расстояния с того места, где его связали Вот вопрос : как оформить это в действиях ( именно, чтобы не мог покинуть зону) ?

DеmonoiD   29 декабря 2009 в 21:27

как сделать так чтобы в инвентаре героя можно было расположить только один вид предмета, а когда он брл предмет такого же вида к примеру артефакт , то который был у него в инвентаре выбрасывался .

RwC Private League   29 декабря 2009 в 22:37

Andreya

Думаю на ГУИ ты не сделаешь этого. 99%... так что если знаешь жас, то в бой.

ГИППЕР МАППЕР   29 декабря 2009 в 23:03

Andreya
имхо...там скорее всего базовый скилл по твоим описаниям(огненное лассо,ловчий)

ГИППЕР МАППЕР   30 декабря 2009 в 03:07

ААААААААААААААААААА!!!!!!!!!!!!!!!!!!!!!!!!!!! хелликоптер помоги плиз! я тут с лоад скрином запарился))) мне на него вот эти текстуры не наложить ifolder.ru/15724586 (там 2 текстуры на рисунок одинаковы но по размеру разные) там ещё вроде с bmp на blp конвертнуть надо но не получается) когда конвертирую текстура портится и весит 0 байт))) хелп плиз сделай лоад скрин с этой текстурой буду очень признателен!

Andreya   30 декабря 2009 в 10:33

ГИППЕР МАППЕР, в цепи юнит может перемещаться, но не может покинуть область с радиусом каким-нибуть, а в огненном ласо или ловчем он не может двигаться вообще.
Блин..а джас даже значения слова не знаю ))

RwC Private League   30 декабря 2009 в 11:25

Andreya

Ну есть идейка:

1й триггер:
Юнит кастует спелл на область, заносица центр области в переменную Y, заносица случайный, или по условиям подбери, юнит в переменную X. Создаем визуальные эффекты... Включаем триггер #2...

2й триггер:
Каждые 0,01 сек
Если расстояние между точками юнита X и центром области Y больше или равно 500.
Действия: Двигать мгновенно юнита на 25 ед в направлении "назад" я сча не знаю как точно, но думаю направление сможешь указать.


Также Wait можешь указать, чтобы не зависал он в этой области вечно :D

ГИППЕР МАППЕР

Я худею от тебя - чож не 100 мб скрин прислал???? омфг 68 мегайбайт... песдец....

Вообще ничо не понял, кроме как конвектировать из bmp в blp...

Размер нада 512х512. а не ~4000 на ~4000

Andreya   30 декабря 2009 в 12:49

HELLICOPTER, я примерно так и надумывал)) . ВОт только пока с направлением движения проблемы )) Иногда все как нужно.. а бывает что унесет его куда-то далеко :DD

Kapa6acvlk   30 декабря 2009 в 13:07

Направление движения, это Face Angle =) а для отодвижки назад FA-180

RwC Private League   30 декабря 2009 в 13:41

Kapa6acvlk

А можно ли вот так:

Действия:

Создать юнита X
Ждать [переменная Y] сек
создать юнита Z

Например если переменная меняет значение, то хотелось бы сделать чтобы ожидание тоже было не старое а новое...

Ну тоесть сначала "Ждать 100 сек", а потом изменилась переменная, уже во время работы функции wait, изменилась на значение 10, и соответсвтенно таймер пошел заново и уже не 100 будет а 10.

Хотелось бы так :D

ГИППЕР МАППЕР   30 декабря 2009 в 14:25

HELLICOPTER! ипать там screen2 700 кб весит повнимательней смотри!

RwC Private League   30 декабря 2009 в 14:39

Да но в архив 12 метров сжато весит а так все 67.

Так а чот там смотеть?? Чего не так то??

ГИППЕР МАППЕР   30 декабря 2009 в 16:39

ifolder.ru/15730127 вот! с этой сделай плиззз!

RwC Private League   30 декабря 2009 в 17:28

ГИППЕР МАППЕР

Вообщем так, там два файла: LoadScreen.mdx и FullScreen.blp все это втыкаешь в карту, убираешь ипротируемые пути, оставляя только названия. И затем указываешь в свойствах карты LoadScreen.mdx.

ifolder.ru/15730713

Andreya   30 декабря 2009 в 18:23

Kapa6acvlk, Face Angle это угол поворота? у меня просто триггеры русские.. а FA-180 это че?)

RwC Private League   30 декабря 2009 в 18:50

Andreya

Не тупи. Просто разворачивай юнита по такой формуле: "Угол поворота юнита X минус 180".

ГИППЕР МАППЕР   30 декабря 2009 в 20:04

HELLICOPTER ОГРОМНОЕ спасибо=))))) я тебе в дальнейшем может ыбть чем нибудь тоже помогу))

DеmonoiD   30 декабря 2009 в 22:27

как сделать так чтобы в инвентаре героя можно было расположить только один вид предмета, а когда он брл предмет такого же вида к примеру артефакт , то который был у него в инвентаре выбрасывался ? надеюсь ктонить ответит на этот вопрос =)

Andreya   31 декабря 2009 в 10:30

Что-то у вас атмосфера какая то не праздничная.. С НАСТУПАЮЩИМ ВСЕХ!!!!))

RwC Private League   31 декабря 2009 в 11:47

Вхах.. еще нада дожить пол суток до нг, потом уже атмосфера поменяется. Спс.

PS: Омг) Меня просто закидали новогодними статусами :DDD

ГИППЕР МАППЕР   31 декабря 2009 в 15:27

нет просто все готовятся)))

BioAleks   31 декабря 2009 в 18:20

ыыы))) У меня хоть один есть...
DеmonoiD
Почитай на xgm.ru

Это кстати можно на ГУИ делать =)

JassMan   31 декабря 2009 в 18:41

Добрый вечер нaхeр
Всех с наступающим, очень рад вас тут всех видеть. Как вас тут много накопилось, я без инета был. . .

Если я пропадаю, то не потому что надоело, а потому что нету возможности . . .
Andreya Завтра наработка будет готова, честно говоря еще 65 доту не видел но уже понял что ты хочешь, работа легче лёгкого, однако есть одно но — сделаю на jass'e (в виде кода blizard)
а там уж сам будешь разбираться, и по ходу дел и обучения задавать вопросы о наработке.

Ну а пока я бухать пошёл . . . наработку скоро не жди ибо пока отрезвею хз, а может и вообще бухать не буду . . . у мя мать в реанимации лежит, настроение поганое на самом деле . . . но не буду о плохом, еще раз поздравляю . .. Всего наилучшего. Пожалуй . . . после такого лучшим пожеланием будет только желание здоровья вам и вашим близким, чтобы вы не сидели и не чувствовали ту пустоту, которую испытываю я . . .

Ладно . . . жизнь продолжается . . . С новым годом всех!

RwC Private League   31 декабря 2009 в 20:53

KiLLiNG_SPREEE
Andreya Завтра наработка будет готова

наработку скоро не жди ибо пока отрезвею


как понять?)) Лучше забить на НГ задротство WE и пойти с друзьями, родными, коллегами итд.. куда нибудь или к кому нибудь ну что же все время в этом чертовом редакторе делать?))

Ладно, вы сами себе хозяины, делайте во благо :DD удачи....

Kedrevich   1 января 2010 в 14:19

Привет всем я небыл тут 5 месяцов но и всё по ворлд едит забыл помогие с 3 вещами плиз
1.Как делать так чтоб сночала пошла одна волна монстров а потом в 2 3 4 5 6 7 8 9 10 11 12 ... как ТД
2.Как делать чтоб деревья не вырубались а остовались не тронутыми ккак в петросянщине
3.Как делать так что б всем давало с начала по 2 коп потом по 10 а потом по 100

4.ОТДЕЛЬНЫЙ ВОПРОС КАК ДАВАЙ ССЫЛКУ НА НАПРИМЕР МОЮ КАРТУ ПЛИЗ БУДУ ЖДАТЬ ОТВЕТЬТЕ

TWISTOS   1 января 2010 в 15:05

1-й вопрос:
1) Путем цикла в jass.
2) Путем высчитывания времени. Тоесть (прошло 30 секунд - 1 волна пошла, прошло 30 секунд после этой волны - еще волна)
2-й вопорс не уверен, поэтому отвечать не буду.
3-й вопрос не совсем понятен. По 2 коп в секунду, или за каждого убитого юнита???
4-й вопрос - заливай на файлообменники, копируй ссылку и вставляй сюда.

И еще - не капси, так высока вероятность, что текст полностью не прочитают.

Kedrevich   1 января 2010 в 15:37

Ты чо ? я забыл всё как это путём цикла jass не наю
не тв секунду по 2 копы
4 как залить ссылку не понял обяясни с начала

ГИППЕР МАППЕР   1 января 2010 в 16:38

Kedrevich
2.Как делать чтоб деревья не вырубались а остовались не тронутыми ккак в петросянщине
овтет: в разрушаемых объектах- ищи дерево которое будешь ставить, в характеристиках этого дерева ищи прочность: там указывай макс число(держи шифт и нажимай два раза и вводи число 1000000000)
3.Как делать так что б всем давало с начала по 2 коп потом по 10 а потом по 100
ответ : сформулируй вопрос

Andreya   1 января 2010 в 19:36

Ок, жду с нетерпеньем ))

IIpocTo_bI   1 января 2010 в 21:31

Вряд ли кто-то ответит...но скажу я делаю карту рпг во всем разобрался осталось только:
1)Как сделать начальные ресурсы?
2)В моей карте тверна стоит в углу.Как сделать так чтобы при выборе героя он переносился НА БАЗУ, а не появлялся рядом с таверной?
3)Как изменить свойства предмета?Пример: как сделать из перчаток +15% скорости атаки +30%?
4)Какой триггер написать чтобы если у меня в инвентаре 2 кольца +5 хп/сек реген становилось +10хп/сек реген НО для этого нужен был рецепт который стоит 0?

Если ответы на вопрос были выше просто скопируйте очень надо.

BioAleks   1 января 2010 в 21:36

TWISTOS
По поводу первого вопроса...
Какой джас???
Это делается на ГУИ даже... легко... с переменными вроде...

Kedrevich
На xgm.ru есть наработка для ТD, AOS и AOEN... посмотри.
4) Какой тупой вопрос, честно... закачал файл на файл-обменник, скопировал ссылку и кинул сюда...

BioAleks   1 января 2010 в 21:43

[новый пользователь]
О да... как делать начальные ресурсы... мда...

1. Событие
Инициализация карты
Действия
Поставить игроку такому-то столько-то ресурсов. (эт я так, по своему с англ. языка перевёл)

2. Не помню
3. Мда... ищи навык(особенные, способность, предметы) такой какой на перчатках повышает +15% скорости атаки и создай из него свой и поменяй... добавь этот навык к перчаткам...
4. На xgm.ru наработку смотри

P.S. с такими знаниями не советую делать карту

IIpocTo_bI   1 января 2010 в 21:45

вот еще проблемка: как назвывается пассивка чтобы видеть инвиз как у вышек в доте

IIpocTo_bI   1 января 2010 в 21:52

BioAleks очень канеш подробно на счет ресов я до этого это уже знал...по англ мне надо

BioAleks   1 января 2010 в 23:09

IIpocTo_bI
Сорри... но у меня редактор не работает =(...
Завтра тока заработает...

Так что на англ. не сделаю...
Видеть инвиз??? Т.Е. Невидимых юнитов??? Стандартная способность есть... Магический Страж...

P.S. Без редактора подробней не как...

JassMan   1 января 2010 в 23:45

Карабас можно ли переместить точку путём:
call SetLocationX(p,GetUnitX(u))
call SetLocationY(p,GetUnitY(u))

???
у меня чота так не получается

не . . . ну писать через: GetUnitPosition(u) просто не хочеца, ибо с целыми позициями он медленнее соображает
можно как нить через X и Y ?

P.S. Я конешно понимаю что умных маперов тут мало, но плз не покидай этот форум, ибо мне иногда бывает нужна твоя помощь. . .

Kapa6acvlk   1 января 2010 в 23:59

KiLLiNG_SPREEE
УРА, Нормальный вопрос, я так счастлив. НЕ тупой типа: "А как сделать Четыре пехотинца, и что бы они пошли и рубили все на своем пути."

Эм, может быть я чего-то не догоняю, но разве есть такая функция как SetLocationX или SetLocationY Такой функции нет, только если ты ее не добавил сам.
Есть функция MoveLocation которая перемещает точку в указанные координаты, это один из самых быстрых способов при ликбезе и т.п. вычислениях связанных с точками. Вот собственно пример:
call MoveLocation(p,x,y)
где p - точка
x - новая координата по Х
y - новая координата по Y

JassMan   2 января 2010 в 00:16

воооо то что надо, красавчег)) мне как раз и надо переместить, чем заного создавать и устанавливать позицию этой точки


Обращаюсь к остальным: Ребят я для вас тут наверху ссылочки сделал на предыдущие темы, мало того там еще есть ссылка на наш FAQ так что, блин, не надо задавать двац раз вопрос, к примеру, про скрещивание предметов, там 2 поста этому посвящены . . .
так же много ответов на ваши вопросы есть в предыдущих темах

RwC Private League   2 января 2010 в 00:53

Я после таких слов боюсь уже что либо тут спрашивать...

BioAleks   2 января 2010 в 01:04

Kapa6acvlk
Каким образом можно сделать как в доте когда бьёшь сзади, то наноситься доп. урон???

JassMan   2 января 2010 в 01:06

сравнивать угол поворота юнита атакующего и атакованного, если они совпадают или варьируются около ±30­­°

JassMan   2 января 2010 в 03:58

вот ситуация: Я начал loop, потом закончил endloop'ом и за ним следует новый loop

Внимание вопрос, уважаемые знатоки: второй цикл начнётся только тогда когда закончится первый?

и еще Карабас ты можешь написать мне перечень всех видов и типов нанесения триггерного урона, ну там типа: fire, normal, magic — что-то такое помню было.


Да и еще: можно ли сделать так
loop
. . .
. . .
if . . . .then
endloop ???
. . . .
тоесть помимо exitwhen в цикл запихнуть if который будет проверять что либо и сразу завершать цикл — возможно ли такое? не будет ли конфлигта между 2мя endloop'ами ?


Да и еще: Меня задалбало двигать юнита в 2 триггера, как можно сделать в 1 триггер? 2мя событиями чтоли? — тогда путаница получится
как обойтись в 1 триггер то? какой алгоритм?

ну и наконец: можно ли в триггер добавить ещё одну функцию Actions? и если да, то как её запустить тогда когда я захочу?

BioAleks   2 января 2010 в 13:03

KiLLiNG_SPREEE
Понятно, спс.
Я так и понял

timber1111   2 января 2010 в 13:04

Люди.
А как мне сделать чтобы спелл не кастовался.
Мне нужно создавать Дамми юнита, который будет кастовать этот скилл или это делается намного проще?

timber1111   2 января 2010 в 15:09

Если кто не понял, то я имею ввиду Ченнлинг.
Типа как у питлорда в доте он его не кастует.
А в варике он идёт как ченлинг.

JassMan   2 января 2010 в 15:13

чота я не понял чо он там не кастуте, конкретно назови что за скил и что делать должен? и в каком смысле " шоб он не кастовал"?

Andreya   2 января 2010 в 15:24

я думаю, что он про прерываемые скилы,которые нужно кастовать,чтобы они действовали и скилы, которые юзнул и они действуют

timber1111   2 января 2010 в 15:53

Ну допустим Метеоритный дождь.
Я не хочу чтоб я стоял и кастовал его.
А хочу чтоб я кинул и дождь сам по себе падал.
Я конечно знаю что можно вызвать дамми юнита который за меня прокастует и исчезнет, но можно ли это сделать как-то проще?

JassMan   2 января 2010 в 16:03

к сожалению нет . . .

вот только я не помню чтоб дождь надо было стоять и кастовать, насколько я помню там есть несколько заклинаний с огненным дождем, к примеру, "огненый дождь (Архимонд)"
Однин из них вроде должен сам по себе идти, надо тока точку (область) указать

timber1111   2 января 2010 в 18:15

Как сделать так: чтоб допустим у тебя 6 слотов забиты, ты покупаешь свиток и он собирался а не писалось "Недостаточно Места"
И ещё как удалить иконку в магазине нижнюю правую, чтоб туда вставить арт?

Andreya   2 января 2010 в 19:02

timber1111, удали эту способность в характеристиках магазина

timber1111   2 января 2010 в 19:26

нифига не получается. Там нет такой способности. Эх

ГИППЕР МАППЕР   2 января 2010 в 20:20

опять же обращяюсь к вам.....(по части к KILLING SPREEE и карабасу)
а как корректно послать дамми юнита(в моёмм случае стрела) в направление куда послал и чтобы он врезался в любое препятствие на пути(будь то юнит декорация или разрушаемый объект) при этом нанося урон? я посылаю его и он почему то двигается в разные стороны))) зигзагами(хотя у юнита тип передвижения воздух)

JassMan   2 января 2010 в 21:38

ту наработку которую я щас делаю для Andreya, как раз используется то о чом ты говоришь, когда выложу, посмотришь

timber1111   2 января 2010 в 21:43

Тут походу нифига никто не знает.
Ок. Задам несколько вопросов.
1.Как убрать в магазинах способность "Выбор пользователя" ? Вариант "Убери способность эту в характеристиках магазина" не предлагать.
2.Как сделать так , чтоб если у тя забиты все слоты, то предмет вылаживался перед тобой, а если есть сборочные арты, то они собирались.
3.Как сделать вместо дерева и пищи минуты и секунды как в доте. Иконку я нашёл где изменить в "Игровом интерфейсе" а остальное хз.
4.Как сделать чтоб в таблице была иконка выбранного героя (как в доте)
5.Как сделать ченлинг способность обычной без дамми юнита.


Я уже много чё пробовал, искал. Нифига не получается. Если вы такие знатоки то ответьте плс на мои вопросы.

timber1111   2 января 2010 в 21:54

Да. И ещё вопросы
6.Как сделать чтоб Крипы засчитывали в таблице не только свои киллы а и тиммэйтов(карта АОС)
7.Не могу найти действие на уничтожение строк мультибоарда. Допустим
Событие
Тайм Элапсед 0.1 сек
Условия
Игрок 2 не играет
Действие
уничтожить строку с этим игроком в мультиборде

timber1111   2 января 2010 в 22:58

И ещё вопрос.
8.Я открыл карту с помощью WinMPQ, извлёк war3map.j что делать дальше?

JassMan   2 января 2010 в 23:37

открывай его с помощь jass crafta к примеру и смотри код карты

помочь смогу не со всем

2 вопрос: там давольно сложная проверка идет на наличие всех ингредиентов свитка, чтоб потом он скрестился, так что вряд ли кто нить тебе ответит, если у Карабаса есть такая система в его Доте, то он те возможно ответит.

3 вопрос, смотри:


Переменная Chasiki — целочисленная, с массивом 2 (1 индекс — это дерево (минуты), 2 индекс для секунд)

вы спросите зачем я сделал через переменные? — отвечаю: если использовать greedisgood 9999999, то ваши часы показывают далёёёкое будущее))

5. не ищи

на остальное хз, я как ни странно к мультибоардам не притрагивался

Andreya   3 января 2010 в 00:04

KiLLiNG_SPREEE, а нельзя было сделать ограничение? если дерево больше или равно ... , то установить...

JassMan   3 января 2010 в 00:25

а зачем всё уже и так работает, система универсальна. Она просто не прибавляет по 1 к дереву а берет значения из переменных, а с переменными мы уже делаем подсчёт, в смысле используем их как часы, и переводим с них на табло в интерфейс.

Пардон, можно даже чутка покороче — не писать каждого игрока, а поставить цикл к примеру, for integer A от 1 до 12 do Actions: игрок(ковертировать игрока в индекс(integer A) ) установить дерева столько-то . . .
и он повторит это для всех 12 игроков


Карабас плз ответь на мои вопросы выше

timber1111   3 января 2010 в 00:48

Спасибо:)
Но некоторые вопросы остаються в силе
1.Как убрать в магазинах способность "Выбор пользователя" ? Вариант "Убери способность эту в характеристиках магазина" не предлагать.
2.Как сделать так , чтоб если у тя забиты все слоты, то предмет вылаживался перед тобой, а если есть сборочные арты, то они собирались.
3.Как сделать чтоб в таблице была иконка выбранного героя (как в доте)
4.Как сделать ченлинг способность обычной без дамми юнита.(Ну тут вроде ток дамми вызывать как я понял????)
5.Как сделать чтоб Крипы засчитывали в таблице не только свои киллы а и тиммэйтов(карта АОС)
6.Не могу найти действие на уничтожение строк мультибоарда. Допустим
Событие
Тайм Элапсед 0.1 сек
Условия
Игрок 2 не играет
Действие
уничтожить строку с этим игроком в мультиборде

JassMan   3 января 2010 в 03:23

вот тока не надо повторять свои посты блин, не люблю флуд, достаточно было просто сказать, чтоб те помогли с оставшимися выше вопросами

timber1111   3 января 2010 в 11:21

Да я просто помню как-то вверху задавал вопрос и меня проигнорили.

IIpocTo_bI   3 января 2010 в 14:19

Как сделать респ мобов как на арене в карте петросянщина? Тоесть я убиваю моба он появляется в указанном месте убиваю опять цикл повторяется.

RwC Private League   3 января 2010 в 14:52

вот тока не надо повторять свои посты блин, не люблю флуд, достаточно было просто сказать, чтоб те помогли с оставшимися выше вопросами
А ну тогда прошу помочь с вышесказанными моими вопросами :D

JassMan   3 января 2010 в 14:59

хД вынеси их сюда они слиииишком высоко, если не в предыдущей теме .. .
как говорца . . . выскажи всё что на душе наболело))

IIpocTo_bI   3 января 2010 в 15:06

ну что никто не знает?

ГИППЕР МАППЕР   3 января 2010 в 17:08

IIpocTo_bI
=_= это легко очень. берёшь способность "гидра" и указываешь чтобы из наприммер пехотинца выпадал пехотинец=) вот и всё этот цикл будет повторятся

ГИППЕР МАППЕР   3 января 2010 в 17:16

ВОТ ТЕМА!!!!!!!!!!!!!!!!!!!!!!!!!!----->>>> карты свои туды! forums.playground.ru/warcraft_3_the_frozen_thron..

а здесь будет помощь!=)

RwC Private League   3 января 2010 в 18:44

KiLLiNG_SPREEE

А можно ли вот так:

Действия:

Создать юнита X
Ждать [переменная Y] сек
создать юнита Z

Например если переменная меняет значение, то хотелось бы сделать чтобы ожидание тоже было не старое а новое...

Ну то есть сначала "Ждать 100 сек", а потом изменилась переменная, уже во время работы функции wait, изменилась на значение 10, и соответственно таймер пошел заново и уже не 100 будет а 10.

Хотелось бы так :D


Ну вот в общем-то, но я не тебе его адресовал

JassMan   3 января 2010 в 19:59

если честно не понял вопроса, всмысле меняеца переменная?

BioAleks   3 января 2010 в 20:17

Карабас
Хотел норм вопрос??? Получай...
Как сделать систему скилов как в диабло??? Мне с xgm не надо... сам хочу

JassMan   3 января 2010 в 21:45

это не норм вопрос, ты просишь его сразу всё сделать за тебя

RwC Private League   3 января 2010 в 22:37

Вообще я хочу сделать нормальный wait триггерных скилов:

Юнит применяет способность, ему дается определенный скилл, через 15 сек способность удаляется.

Но если применить еще раз этот скил через 4 секунды (например), то триггер опять добавит способность юниту и удалит ее через 15 сек, но триггер который сработал раньше до сих пор ждет те самые 15 сек, чтобы удалить способность от первого каста. Ну а затем уже и следующий триггер срабатывает. Получается, если кастануть 1ый раз, затем подождать 14 сек и кастануть 2й раз, то действие способности будет 1 сек.

Не зная решения проблемы, делаю кд скилов не меньше чем их "действие" в тригерах. В чем собсна и сожалею.

Kedrevich   3 января 2010 в 23:02

Пацаны помогите ещё в этом
1. нормально обьясните с 0 как давать ссылку
2. как делать так чтоб нее кто ни когда не могу открыть мою карту
3. я делаю ТД South park хочу чтоб здания выглядили как eric cartman kyle kenny sten а не стандартыные как это сделать и как сделать чтоб катинка была под них

JassMan   4 января 2010 в 02:07

а он типа удаляет обе способности ?

Kapa6acvlk   4 января 2010 в 02:26

Пол форума исписали, все перечитывать мне не очень охота, да и праздники сами понимаете. Если что-то конкретное надо, то прошу подсветить, вначале поста мой ник, или в личку, а я отвечу тут с цитированием вашего сообщения.

Andreya   4 января 2010 в 09:00

HELLICOPTER, я сталкивался с такойже проблемой) , но у меня при использовании способности добавлялся бафф к юниту. Так вот при использовании этой способности включается второй триггер, который каждые 0.01 сек проверяет наличие данного баффа. Если нет - удалить спобность

Andreya   4 января 2010 в 09:03

Kedrevich, модели зданий нужно самому нарисовать :)
xgm.ru/articles.php?section=wc3 тут ищи про моделлинг

Kedrevich   4 января 2010 в 11:02

Kapa6acvlk
Пацаны помогите ещё в этом
1. нормально обьясните с 0 как давать ссылку
2. как делать так чтоб нее кто ни когда не могу открыть мою карту
3. я делаю ТД South park хочу чтоб здания выглядили как eric cartman kyle kenny sten а не стандартыные как это сделать и как сделать чтоб катинка была под них

Kedrevich   4 января 2010 в 11:04

Andreya
Самому ????????

BioAleks   4 января 2010 в 12:04

KiLLiNG_SPREEE
Да ты достал уже, я не прошу его сделать всё за себя... мне хотя-бы подсказку дал пусть...

timber1111   4 января 2010 в 12:28

Ура...нашёл Систему СБОРНОСТИ арТОВ:)
Но вот только мне нужно знать ID предмета....как его узнать?)))
Кому интересно то вот эта система : xgm.ru/files.php?do=download&id=3360&h=b..

timber1111   4 января 2010 в 12:49

Фсё...разобрался:)
Нужно нажать Ctrl+D в редакторе обьектов.
УРААААААААААА!
Там ещё есть как в доте.Типа если арт не твой то он те не идёт)
ЫЫ

Kapa6acvlk   4 января 2010 в 15:05

KiLLiNG_SPREEE
вот ситуация: Я начал loop, потом закончил endloop'ом и за ним следует новый loop

Внимание вопрос, уважаемые знатоки: второй цикл начнётся только тогда когда закончится первый?

Конечно, второй цикл начнется по завершении первого. Вообще весь код работает сверху вниз. Т.е. пока верхний код еще не сработал, нижний сработать не может. В это еще один минус JASS языка, нельзя переходить в указанную строку, хотя это легко обходится запуском другой функции, и прекращением работы текущей.
и еще Карабас ты можешь написать мне перечень всех видов и типов нанесения триггерного урона, ну там типа: fire, normal, magic — что-то такое помню было.
А оно тебе надо, выбери нужный урон и преобразуй строку в текст. Все соотношения уронов (воздействие того или иного типу урона на разные типы брони есть в игровых константах)
тоесть помимо exitwhen в цикл запихнуть if который будет проверять что либо и сразу завершать цикл — возможно ли такое? не будет ли конфлигта между 2мя endloop'ами ?
Циклы можно днлать хоть с 10 exitwhen’ами
К примеру выглядеть это может так:
loop
exitwhen b = true
if (i > 1) then
exitwhen true
elseif (a==0) then
exitwhen true
endif
endloop
Цикл завершиться если переменная b истина или переменная i больше 1 или переменная a равна 0. До тех пор цикл будет бесконечным. Если у цикла не может быть возможности завершения, т.е. он является бесконечным, то игра вылетит с ошибкой.

Да и еще: Меня задалбало двигать юнита в 2 триггера, как можно сделать в 1 триггер? 2мя событиями чтоли? — тогда путаница получится
как обойтись в 1 триггер то? какой алгоритм?

Я всегда двигал двумя, по другому не представляю, как возможно двигать, да и кажется, мне что не возможно добиться плавного движения при помощи всего одного триггера. Есть конечно возможность написать один триггер, который при срабатывании создаст второй, и после отработки второй триггер уничтожится, но тут, дабы не избежать утечек нужно использовать хэш таблицу.
ну и наконец: можно ли в триггер добавить ещё одну функцию Actions? и если да, то как её запустить тогда когда я захочу?
Эммм, стесняюсь спросить, что такое функция Actyions?? о_0
Давай разберемся, что же такое триггер. Триггер, это совокупность как минимум 2х функций. Первой, которая его инициализирует во время загрузки карты и второй которая запускается во время вызова события. Иногда в триггере присутствуют условия, тогда для них создается отдельная функция и триггер будет состоять из 3х функций. Т.к. по сути каждая функция является программой, способной функционировать отдельно. За счет этого мы можем уменьшать количество написанного кода. К примеру у нас 12 триггеров (по триггеру на игрока) с абсолютно одинаковыми условиями. Так зачем же создавать для каждого триггера свою функцию условий, если можно сделать ее общей для всех, тем самым сократив количество кода в 12 раз! И при этом увеличив его производительность, т.к. игре не надо будет держать еще 11 ненужных функций в своей памяти.
Т.е. из любой другой функции мы можем вызвать любую другую.
Теперь ближе к теме, если ты имеешь ввиду присоединения к триггеру действия по средствам TriggerAddAction, то по идее так можно сделать, но я не пробовал. Т.к. не виду в этом смысла. Если тебе нужно функцию вызвать используй call и имя твоей вункции.

Kapa6acvlk   4 января 2010 в 15:21

timber1111
1.Как убрать в магазинах способность "Выбор пользователя" ? Вариант "Убери способность эту в характеристиках магазина" не предлагать (Там её нету)
Там все есть, просто нужен WEU, а не стандартный WE. И если я не ошибаюсь, то нужно не убрать способность, а заменить ее на какую-то другую или что-то в этом роде. Вот только какой конкретно магазин ты имеешь ввиду, вещей, юнитов?? У них разные способности.
2.Как сделать так , чтоб если у тя забиты все слоты, то предмет вылаживался перед тобой, а если есть сборочные арты, то они собирались.
Для этого нужно создавать систему соединения предметов, а не просто триггер. Таких систем полно на HW.
3.Как сделать чтоб в таблице была иконка выбранного героя (как в доте)
Для этого есть специальное действие, выводящее картинку в мультиборде. Тебе остается сделать только массив переменных или таблицу хеш с адресами картинок для всех твоих героев, и выставлять нужную картинку, в нужную ячейку. Также на XGM есть несколько статей по МБ почитай.
4.Как сделать ченлинг способность обычной ???.(Ну тут вроде ток дамми вызывать как я понял????)
Если я правильно понимаю, то вопрос подразумевает к примеру следующее, как сделать рут канальным скилом или как сделать безмолвие канальным. Если так, то создаешь способность пустышку, на основе спела канал, при касте способности паузишь кастера на время ее каста, создаешь дамми юнита, с нужным тебе скиллом и кастуешь дамми юнитом нужный тебе скил. С прерыванием каста, все сложнее. Тут тебе придется придумать, как ты определишь прерывание каста скилла, а потом убрать все отрицательные еффекты с юнита цели.
5.Как сделать чтоб Крипы засчитывали в таблице не только свои киллы а и тиммэйтов(карта АОС)
А если по русски напишешь, без жаргона, то я отвечу.
6.Не могу найти действие на уничтожение строк мультибоарда.
А все дело в том, что нет такой штуки. Если тебе нужно, удалить строку, то ты должен уничтожить весь мультиборд, а потом создать его заново без твоей ненужной строки.

RwC Private League   4 января 2010 в 15:23

Во-первых: Andreya
Это крайний вариант, но подумаю.

Во-вторых: KiLLiNG_SPREEE
Он удаляет одну и туже способность. Та способность которая появилась вторым кастом, она тоже удаляется.

В-третьих: Kedrevich
Что за флудератизм? И если ты не умеешь рисовать, то тогда идеальной карты тебе не видать.

В-четвертых: Почему карта стала больше, по времени, грузиться, после того как я перевел все почти триггеры в текст? Так должно? Я думал я только лучше сделаю... :DD

timber1111   4 января 2010 в 17:46

5.ну у меня есть 8 игроков и соответственно 2 игрока крипов.
В Мультибоарде чтоб когда игроки убивали то крипам засчитывались киллы
У меня боард на джассе, я его стырил.
А как сделать так хз.

IIpocTo_bI   4 января 2010 в 21:00

ГИППЕР МАППЕР IIpocTo_bI
=_= это легко очень. берёшь способность "гидра" и указываешь чтобы из наприммер пехотинца выпадал пехотинец=) вот и всё этот цикл будет повторятся

СПС!

JassMan   4 января 2010 в 21:53

Kapa6acvlk а ну вот exitwhen true то что надо, то есть после этого он выйдет из цикла игнорируя все оставшиеся действия?

Kapa6acvlk   5 января 2010 в 03:56

KiLLiNG_SPREEE
Если exitwhen будет true, или сравнение которое даст true, т.е. 1==1 или 4>=2 или false=false, то цикл будет завершен.
Да цикл будет прерван сразу, без обращения к действиям ниже exitwhen

BioAleks   5 января 2010 в 13:05

И так... BioAleks (я) вышел на мапперство, редактор работает, спрашуем... сегодня отвечаю =)...

RwC Private League   5 января 2010 в 13:52

Господин прокурор сегодняшний, есть подозрения что, некий HELLICOPTER не знает как сделать вечный инвиз для юнита, от которого даже true sight не спасает, и виден он только союзникам... 100% гарантия невидимости врагам, при всяких гемах и других изделий... И второе подозрение что, также не знает он как сделать скорость передвижения больше чем 512. Жду решения суда.

timber1111   5 января 2010 в 14:49

Даааа
Я знаю как сделать скорость больше чем 512:)))
Можно сделать 522 =)))
А вообще можно использовать какбе двигание юнита) Когда он движется)

BioAleks   5 января 2010 в 14:49

HELLICOPTER
Вечный инвиз говоришь... что нибудь попробую замутить...
А вот нащёт скорости передвижения я не знаю, знаю только что есть наработка на xgm какая-та... она убирает лимит

Хотя... ща я тебе замучу систему на скорость

RwC Private League   5 января 2010 в 15:30

Ну все поняли же :D Да мне нада больше чем 522 скорость.

BioAleks   5 января 2010 в 15:53

HELLICOPTER
Начнём... знаний особых не нужно будет =)

Сначала разберёмся с переменными... создаём.
AdvSpdSys_loc (точка массив 1)
AdvSpdSys_num (целочисленная 0, раз: 1)
AdvSpdSys_real (реальная массив)
AdvSpdSys_unit (боевая еденица массив 1)
i (целочисленная)
r (реальная)
u (боевая еденица)

Создаём тригер
AdvSpdSys Add Unit (назовём его так)
Действия (делаем через Set Variable)
Set AdvSpdSys_num = (AdvSpdSys_num + 1)
Set AdvSpdSys_unit [ Set AdvSpdSys_num ] = u
Set AdvSpdSys_real [ ((3 x AdvSpdSys_num) + 1) ] = 0.00
Set AdvSpdSys_real [ ((3 x AdvSpdSys_num) + 2) ] = r
Set AdvSpdSys_loc [ (2 x AdvSpdSys_num) ] = (Position of u)
Set AdvSpdSys_loc [ ((2 x AdvSpdSys_num) + 1 ] = (Position of u)
Боевая единица - AddSpeedFlag to u

Конец. Это добавление юнита в список. Едем дальше...

AdvSpdSys Remove Unit (название следующего тригера)
Действия
Set i = 1
Custom script: loop
Custom script: exitwhen (udg_AdvSpdSys_unit[udg_i]==udg_u)or(udg_i>udg_AdvSpdSys_num)
Set i = (i + 1)
Custom script: endloop
If / Then / Else, Multi Functions
Если - условия
u не равно нет боевой единицы
То - действия
Боевая Единица - Remove AdvSpeedFlag from AdvSpdSys_unit[i]
Set AdvSpdSys_unit[i] = AdvSpdSys_unit[AdvSpdSys_num]
Set AdvSpdSys_real [ (3 x i) ] = AdvSpdSys_real [ ( 3 x AdvSpdSys_num) ]
Set AdvSpdSys_real [ ((3 x i) + 1) ] = AdvSpdSys_real[ ((3 x AdvSpdSys_num) + 1) ]
Set AdvSpdSys_real [ ((3 x i) + 2) ] = AdvSpdSys_real[ ((3 x AdvSpdSys_num) + 2) ]
Custom Script: call RemoveLocation(udg_AdvSpdSys_loc[2*udg_i])
Custom Script: call RemoveLocation(udg_AdvSpdSys_loc[2*udg_i+1])
Set AdvSpdSys_loc [ (2 x i) ] = AdvSpdSys_loc[ (2 x AdvSpdSys_num) ]
Set AdvSpdSys_loc [ ((2 x i) + 1) ] = AdvSpdSys_loc[ ((2 x AdvSpdSys_num) + 1 ]
Set AdvSpdSys_num = (AdvSpdSys_num - 1)
Иначе - действия (нету действий)

Так... а это было убрать юнита из списка... едем дальше...

AdvSpdSys Order (следующий тригер)
События
Боевая единица - a unit отдал приказ (цель - точка)
Боевая единица - a unit отдал приказ (цель - объект)
Условия
(Level of AdvSpeedFlag for (Ordered Unit)) больше 0
Действия
set u = (Ordered Unit)
set i = 1
Custom Script: loop
Custom Script: exitwhen (udg_AdvSpdSys_unit[udg_i]==udg_u)or(udg_i>udg_AdvSpdSys_num)
set i = (i + 1)
Custom Script: endloop
If / Then / Else, Multi Functions
Если - Условия
u не равно нет боевой единицы
То - Действия
Custom Script: call RemoveLocation(udg_AdvSpdSys_loc[2*udg_i+1])
Set AdvSpdSys_loc [ ((2 x i) + 1) ] = (Target point of issued order)
Set AdvSpdSys_real [ (3 x i) ] = (Facing of u)
Иначе - Действия
Нету ничего

Так... ну а это мы запоминали при приказе точку... едем дальше...

AdvSpdSys Motion (наш тригер предпоследний)
//Период триггера движения
function AdvSpdSys_period takes nothing returns real
return 0.01
endfunction

//Критический угол поворота (градусы) после которого отключится скорость
function AdvSpdSys_critangle takes nothing returns real
return 1.0
endfunction

//Количество холостых запусков после критического поворота (указывать целые числа)
function AdvSpdSys_crangtime takes nothing returns real
return 5.0
endfunction

//Критическое расстояние до точки приказа. Если расстояние меньше данного, ускорение выключается.
//Если командовать можно только 1 юнитом - достаточно 100.0, если возможно движение группой - лучше брать 300.0
function AdvSpdSys_crdist takes nothing returns real
return 300.0
endfunction


function Trig_AdvSpdSys_Motion_Actions takes nothing returns nothing
local integer c2
local real r
local real l1
local real l2
local location p
set udg_i = 1
loop
exitwhen udg_i > udg_AdvSpdSys_num
set udg_u = udg_AdvSpdSys_unit[udg_i]
set c2 = GetUnitCurrentOrder(udg_u)
set r = GetUnitFacing(udg_u)
set l1 = RMinBJ(r, 360.00 - r)
set l2 = RMinBJ(udg_AdvSpdSys_real[3*udg_i], 360.00 - udg_AdvSpdSys_real[3*udg_i])
if ( RAbsBJ( l2 - l1 ) > AdvSpdSys_critangle() ) then
set udg_AdvSpdSys_real[3*udg_i+1] = AdvSpdSys_crangtime()
else
endif

set p = GetUnitLoc(udg_u)

if (( (GetLocationX(p) != GetLocationX(udg_AdvSpdSys_loc[2 * udg_i]))or(GetLocationY(p) != GetLocationY(udg_AdvSpdSys_loc[2 * udg_i])))and( ( ( c2 != 0 )and( DistanceBetweenPoints(p, udg_AdvSpdSys_loc[2 * udg_i+1]) >= AdvSpdSys_crdist() ) )or( c2 == 0 ) )) then
if ( udg_AdvSpdSys_real[3*udg_i+1]==0 ) then
call SetUnitX(udg_u,GetUnitX(udg_u)+udg_AdvSpdSys_real[3*udg_i+2]*CosBJ(r))
call SetUnitY(udg_u,GetUnitY(udg_u)+udg_AdvSpdSys_real[3*udg_i+2]*SinBJ(r))
else
set udg_AdvSpdSys_real[3*udg_i+1] = udg_AdvSpdSys_real[3*udg_i+1] - 1
endif
set udg_AdvSpdSys_real[3*udg_i] = r
call RemoveLocation(udg_AdvSpdSys_loc[2 * udg_i])
set udg_AdvSpdSys_loc[2 * udg_i] = GetUnitLoc(udg_u)
else
endif
set udg_i = udg_i + 1
call RemoveLocation(p)
endloop
set c2 = 0
set r = 0
set l1 = 0
set l2 = 0
set p = null
endfunction

//===========================================================================
function InitTrig_AdvSpdSys_Motion takes nothing returns nothing
set gg_trg_AdvSpdSys_Motion = CreateTrigger( )
call TriggerRegisterTimerEventPeriodic( gg_trg_AdvSpdSys_Motion, AdvSpdSys_period() )
call TriggerAddAction( gg_trg_AdvSpdSys_Motion, function Trig_AdvSpdSys_Motion_Actions )
endfunction

Это был переодиский триггер: перебор юнитов их списка, добавление скорости

Ну, а заместо инициализации ставим наш триггер (а в качестве теста возьми 6 самоходных мортир на карту к примеру). Этот триггер для добавления списка юнитов с бонусовой скоростью (больше 522)
Init (инициализация)
Событие
Map Initialization
Действия (используем Comment)
-------- - --------
Set u = "Твой юнит"
Set r = 6.00
Триггер - Run AdvSpdSys_unit Add Unit (ignoring conditions)
-------- - --------
Set u = "Твой юнит 2"
Set r = 6.00
Триггер - Run AdvSpdSys_unit Add Unit (ignoring conditions)
-------- - --------
Set u = "Твой юнит 3"
Set r = 6.00
Триггер - Run AdvSpdSys_unit Add Unit (ignoring conditions)
-------- - --------
Set u = "Твой юнит 4"
Set r = 6.00
Триггер - Run AdvSpdSys_unit Add Unit (ignoring conditions)
-------- - --------
Set u = "Твой юнит 5"
Set r = 6.00
Триггер - Run AdvSpdSys_unit Add Unit (ignoring conditions)
-------- - --------
Set u = "Твой юнит 6"
Set r = 6.00
Триггер - Run AdvSpdSys_unit Add Unit (ignoring conditions)

Отключенный пример того, как отключать бонусовую скорость у юнита не смогу показать...
РЕАЛИЗАЦИЯ: массивы, GUI +custom script, JASS

P.S.
Юнит не все время движется с повышенной скоростью. При обходе препятствий (т.е. при поворотах) скорость будет снижаться. Также предусмотрено снижение скорости в ситуации, когда юниту дан приказ двигаться в точку и юнит уже достаточно близко подошел к этой точке. Без этих ограничений возникает ряд неприятных эффектов.

ПЕРЕНОС НА ДРУГУЮ КАРТУ
Прежде всего, установите в настройках редактора флажок
"Автоматически создавать неизвестные переменные во время вставки триггеров"
Его можно найти через меню: Файл -> Параметры -> Общие

Для мортиры(или твоего юнита) сразу поставь цель в атаке 1 (наземный, прочее, духи, здания, предметы)
И скорость 522
Так же создай способность из предмета Боевые Когти (+15)... название должно быть AdvSpeedFlag. Убери суффикс и увеличение атаки...
Иконку можно оставить, это всё-равно для системы.

ПРИМЕНЕНИЕ СИСТЕМЫ

В массиве имеется список юнитов, которые при движении имеют бонусовую скорость. Кроме того, каждому такому юниту дается способность-пустышка "AdvSpeedFlag" (не советую использовать ее для юнитов, не связанных с данной системой). Добавлять/убирать юнитов в список можно прямо по ходу игры.
Чтобы включить юнит в систему, достаточно написать всего 3 команды:
Set u =
Set r =
Триггер - Run AdvSpdSys Add Unit (ignoring conditions)

После выполнения этих действий, юнит из переменной u будет помещен в список. Его бонусовая скорость в секунду будет равна r*100.

Чтобы убрать юнит из списка, используйте команды:
Set u =
Триггер - Run AdvSpdSys Remove Unit (ignoring conditions)

Для работы системы, кроме способности-пустышки требуются переменные и массивы:
AdvSpdSys_num: integer
AdvSpdSys_loc: мас. точек
AdvSpdSys_real: мас. real
AdvSpdSys_unit: мас. юниты
Не используйте их для других целей.

Переменные u: unit. i:integer, r:real - также требуются для сисетмы, как переменные-регистры. Можете использовать их для мгновенных действий.

Вообще-то вся эта система основана на одном единственном принципе: при использовании jass-команд
SetUnitX
SetUnitY
можно перемещать юнит в точку. При этом юнит сохраняет приказ и анимация ходьбы.

Система основана на том, чтобы помогать движению юнита, постоянно перемещая его в ту сторону, куда он смотрит. Ситуация усложняется в связи с тем, что юнит может проскочить мимо точки, куда движется и при обходе препятсвий. На этот случай введены ограничения: при поворотах и при подходе к точке приказа бонусовая скорость исчезает.
Я использую дествия с периодом 0.01. В принципе можно увеличить до 0.04, хотя будет менее плавно.

При повороте более чем на 1 градус (за время периода), скорость будет убрана на следующие 5 периодов.
Скорость убирается если расстояние до цели менее 300 (число взял с учетом того, что юнит может двигаться в строю)

В массивах хранятся все данные по юнитам. Я воспользовался массивами и не стал прибегать к кешу. ИМХО так будет быстрее. И проще для чайников в jass-е :).

Способность-пустышка "AdvSpeedFlag" нужна как флажок, что данный юнит имеет бонус скорости (вместо записи в кеш).


Вот и всё... Теперь всё понятно???
Да... и чуть кое-что не забыл...
Триггеры AdvSpdSys Add Unit, AdvSpdSys Remove Unit, AdvSpdSys Order должны быть включены и изначально включены.
AdvSpdSys Motion должен быть включён и не должен продолжать инициализацию карты.
Init триггер тоже должен быть включён и изначально включён.

P.S. ух... надоело писать писец(((

RwC Private League   5 января 2010 в 18:36

Omfg...

...

Скажи ка мне лучше как сделать спецэффект видимым только союзникам :D (В доте я так понял фонтан у кунки сделан из спецэффектов, а е из юнита). Про скорость я потом почитаю.

JassMan   5 января 2010 в 22:32

BioAleks те заняться нечем?, легче было наработку саму скинуть, чем тут пол темы громоздить своим постом

xgm.ru/files.php?do=download&id=1251&h=0..

BioAleks   6 января 2010 в 01:15

KiLLiNG_SPREEE
Наработку??? Я по памяти писал

BioAleks   6 января 2010 в 01:17

HELLICOPTER
Я хз... в доте сделано наверное из юнита... хм... блин... как его... ну кароче жука которого нельзя выбрать...
Из них сделали спец эффекты...

А чем тебе через юнита не нравиться?

JassMan   6 января 2010 в 03:14

BioAleks да не гони совпадения с текстом от туда и сюда очень велики, возможно ты просто перефразировал, когда копировал фразы от туда и сюда вставлял, чтобы не вызвать подозрений
не надо хвастаться мол ты типа много знаешь, тебе Хелик дал вопрос ты пошёл на xgm сайт и нашел мапу и выдаешь труды в ней за свои, не надо давать ложные надежды человеку мол ты такой умный

если тебе эта система кажется легкой, и ты можешь доказать что я ошибаюсь сейчас во всём этом, то сделай хотя бы скилл Морлока из Доты с прыжком и захватом в цепь, он гораздо проще чем вся эта система, в 100 раз проще, тебе это не должно составить труда . . .
НО этого ты на xgm не найдёшь

JassMan   6 января 2010 в 03:45

и если уж на то пошло, то можно гораздо проще, путём проверки:
допустим юнит получил приказ двигаться, мы включаем триггер который двигает, и нам кажется что он движется быстрее,
далее мы делаем постоянную маленькую проверку — не получил ли наш юнит любого другого приказа, а именно: оставить,атаковать или начинать применять способность (так же сравнивать нету ли на нем станящих баффов)
тоесть достаточно этой проверки чтобы узнать перестал ли юнит двигать и далее выключать триггер движения

что касаеца "заносов" — больших поворотов в данной ситуации, то можно опять же сравнивать как быстро меняеца угол поворота юнита и в зависимости от этого включать ли выключать
или отлавливать новый приказ двигаться в другую сторону, тогда на долю сек триггер выключать пока юнит разворачиваеца и снова врубать

ну и сама штука которая двигает юнита в ту сторону в которую он смотрит

local real R=GetUnitFacing(udg_u)
call SetUnitX(udg_u,GetUnitX(udg_u)+10*Cos(R*bj_DEGTORAD))
call SetUnitY(udg_u,GetUnitY(udg_u)+10*Sin(R*bj_DEGTORAD))


где выделенное число это расстояние на которое двигаем (оно должно совпадать и в первой и второй строке
а R это угол направления в которое мы будем двигать юнита (udg_u) )

тоесть это систему можно использовать во многих фишках на движение

прошу обратить внимание что действия call SetUnit .X или Y . . , более быстродейственны, так как X и Y это числа, которые не нужно удалять после завершения триггера (в отличии от точки к примеру или юнита и прочих)
более того передвижение юнита таким образом позволяет ему делать всё что угодно: двигаться, атаковать, юзать магию и прочее в отличии от
call SetUnitPosition (как в гуи триггерах)

Владимир.К.   6 января 2010 в 12:02

Привет всем! у меня куча вопросов, начну с этого делал что бы деревья восстанавливались, после срубки или уничтожения таким образом:
События
Время - Every 360.00 seconds of game time
Условия
Действия
Декорация - Pick every destructible in (Playable map area) and do (Actions)
Цикл - Действия
Декорация - Resurrect (Picked destructible) with (Max life of (Picked destructible)) life and Показать birth animation
всё получилось но чуть чуть не так, по истечению этого времени восстанавливались не только деревья, но и появлялась ратуша рядом с начальной позицией с повтором ещё одна и ещё
дак вот что нужно сделать для того что бы востанавливались только деревья?

Владимир.К.   6 января 2010 в 12:45

1. как сделать чтобы юнит патрулировал между двумя точками и более? 2. Что б через некоторое время в области многократно появлялись войска 3. При смерти героя, что б он автоматически возраждался
в определенной области через определённое время 4. Можно ли создать ещё одного игрока (в смысле компьютерного), вот их 12 игрогов а можно ли создать 13-го?

BioAleks   6 января 2010 в 12:49

KiLLiNG_SPREEE
Да, этого на xgm я не найду, поэтому я сделаю, тока позже... не надоедай. Верить или не верить твоё дело...

BioAleks   6 января 2010 в 12:50

Владимир.К.
Условие поставь. (по поводу деревьев)
А нащёт патруля я тока вечером прийду, если кто за ранее меня сделать, то ладно

Владимир.К.   6 января 2010 в 14:29

5.как сделать нестандартное значение для предмета например характеристику повышения наносимого урона? 6. Как нибудь можно сделать что б ворота открывались когда подходили союзники
а когда потходили враги они были закрыты, или что нибудь в этом роде?

ГИППЕР МАППЕР   6 января 2010 в 15:13

Владимир.К. держи шифт и надимай на строку значение , отпускай шифт и вводи число до 100000000=) а потом способность отдаёшь предмету

timber1111   6 января 2010 в 15:24

Чтоб появлялись мобы? о-О
Событие
Какое те надо
Условие
Какие надо
Действие
Боевая еденица - create (Число) (тип юнитов) в (каком месте) facing стандартная ориентация зданий.
Ну или как то так.

При смерти героя....
Событие
Юнит погибает
Условие
Даинг юнит ис герой равно да
Действие
Wait(через сколько)
Revive hero instantly in (регион)


13го игрока создать нельзя. А нафиг он те?

Насчёт патрулирования не сталкивался т.к не нужно было.
Поищи - это простые вещи

Andreya   6 января 2010 в 16:03

Владимир.К.,
6. Юнит вошел в регион (область рядом с воротами)
условие:
Входящий юнит принадлежить союзнику (указываешь союзника кого) равно Да
действие:
Открыть ворота

Насчет патрулирования наверно через регионы. Например, юнит вошел в область 1, приказать юнит двигаться в область 2 и т.д.

JassMan   6 января 2010 в 16:27

по поводу моего поста 06.01.10 03:45, если кто не понял ту тригонометрию, тоесть как работает штука:

call SetUnitX(udg_u,GetUnitX(udg_u)+10*Cos(R*bj_DEGTORAD))
call SetUnitY(udg_u,GetUnitY(udg_u)+10*Sin(R*bj_DEGTORAD))


могу привести наглядный пример ниже, возможно кому-то понадобится понимание этого

RwC Private League   6 января 2010 в 16:42

Ребят, и правда не стоит (если этот так, но все равно на будущее) цитировать какой то сайт, проще дать ссылку.

BioAleks

Могу еще пример привести: У бары разгон, ведь союзникам видна модель "Леденящего крика" а врагам нет. А в моем случае мне надо что бы союзники видели что на юните висит "некий спелл" а враги не подозревали что этот юнит вскоре взорвется и повредит всех юнитов (и врагов и союзников) в радиусе.

Если сможешь сделать вечную невидимость для юнита, то я буду рад.

И еще мне хотелось бы воспроизводить спецэффекты которые имеют анимацию типа stand2 dead, а то только stand1 воспроизводится...

Владимир.К.   6 января 2010 в 16:46

7. Как сделать что бы при выборе героя определённым юнитом этот юнит исчезал, а герой появлялся в определённой области. что то подобное было в доте.

JassMan   6 января 2010 в 16:49

djcghjbpdjlbnmcz//// = воспроизводится.... * ))))

ГИППЕР МАППЕР   6 января 2010 в 18:09

KiLLiNG_SPREEE дык как там с наработкой стрелы? =) кстать кто знает почему XGM не работает?

Andreya   6 января 2010 в 20:38

Владимир.К., Если ты хочешь, чтобы в герой создавался при входе юнита в определенную область, то
Событие: Юнит входит в регион(указываешь регион)
Условие: Входящий юнит типа (указываешь тип юнита) равно да
Действие: Удалить входящего юнита из игры
Создать Юнита(указываешь какого героя) для игрока(указываешь,кому будет принадлежать герой) в точке (указываешь регион, в которым должен появиться герой)

Andreya   6 января 2010 в 20:40

KiLLiNG_SPREEE , как там моя наработка?(:

Владимир.К.   7 января 2010 в 12:09

У меня тут ещё вопрос созрел, можно ли увеличить количество текстур для ландшавта?

BioAleks   7 января 2010 в 13:05

HELLICOPTER
Для спецэффектов есть действие... у меня всё работает лично, я проверял

BioAleks   7 января 2010 в 13:11

ГИППЕР МАППЕР
Всё работает

BioAleks   7 января 2010 в 13:52

HELLICOPTER
Ну знаешь почему тем видна, а тем нет??? Ну ты правильно понял... вечная невидимость даже если стоят фишки против невидимок...
Если получиться, сделаю

BioAleks   7 января 2010 в 14:08

Владимир.К.
Можно... только на немножко... и ещё. Используй не стандартный WE

Владимир.К.   7 января 2010 в 15:13

BioAleks - Дак я и так NewGen WE пользуюсь))
Дак как сделать вот у меня макс 13 текстур..

BioAleks   7 января 2010 в 17:00

Владимир.К.
Ну вот... а выше уже никак. А тебе зачем???

Владимир.К.   7 января 2010 в 18:35

BioAleks - фантазии у меня много, а воплотить её нечем, скажем так)))

RwC Private League   7 января 2010 в 18:51

Алекс, я ненашел нужный действий в гуи, можешь показать на любом примере? А то вот ничего в голову не прет..

Kedrevich   7 января 2010 в 20:07

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

Andreya   7 января 2010 в 20:17

Джассеры! Хелп ми плз! Решил практиковаться и столкнулся с праблем

local unit u
call PolledWait( 0.20 )
set u = GetSpellTargetUnit()
if ( Trig_spell3_Func003C() ) then -ОТСУТСТВУЕТ НАЗВАНИЕ
call UnitAddAbilityBJ( 'A00E', u )
call AddSpecialEffectTargetUnitBJ( "origin", u, "Abilities\\Spells\\Human\\Resurrect\\ResurrectCaster.mdl" )
else -ОТСУТСТВУЕТ ОПЕРАТОР КОДА
endif -ОТСУТСТВУЕТ ОПЕРАТОР КОДА

BioAleks   7 января 2010 в 22:16

Владимир.К.
Понятно... а ты придумай как это воплотить)))... учимся.

HELLICOPTER
Дык... там такого и нету.
Просто я занят обычно... и не успеваю тебе сделать (или хотя-бы попытаться)

BioAleks   7 января 2010 в 22:19

Kedrevich
Запротекти протектором нового поколения)))
Как создать рельеф??? Нууу... программы есть.

Kapa6acvlk   8 января 2010 в 01:19

Andreya
А в чем собственно проблема?? о_0 По данной функции ничего не понятно, показывай весь триггер, т.к. функция ссылается на некую функцию Trig_spell3_Func003C а так на первый взгляд все верно, только ненужные строки присутствуют, типа set и else и еще БЖ вид портит =))
Выкладывай весь код, подумаем.

Andreya   8 января 2010 в 10:23

я всего лишь прочитал пару статей по Jass, так что еще не вникаю особо...

function Trig_spell3_Conditions takes nothing returns boolean
if ( not ( GetSpellAbilityId() == 'Alsh' ) ) then
return false
endif
if ( not ( GetUnitTypeId(GetSpellAbilityUnit()) == 'H000' ) ) then
return false
endif
return true
endfunction

function Trig_spell3_Actions takes nothing returns nothing
local unit u
call PolledWait( 0.20 )
set u = GetSpellTargetUnit()
if ( Trig_spell3_Func009C() ) then
call UnitAddAbilityBJ( 'A00E', u )
call AddSpecialEffectTargetUnitBJ( "origin", u, "Abilities\\Spells\\Human\\Resurrect\\ResurrectCaster.mdl" )
else
endif
call EnableTrigger( gg_trg_spell2 )
endfunction

//===========================================================================
function InitTrig_spell3 takes nothing returns nothing
set gg_trg_spell3 = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_spell3, EVENT_PLAYER_UNIT_SPELL_EFFECT )
call TriggerAddCondition( gg_trg_spell3, Condition( function Trig_spell3_Conditions ) )
call TriggerAddAction( gg_trg_spell3, function Trig_spell3_Actions )
endfunction

ГИППЕР МАППЕР   8 января 2010 в 13:44

ого! вы уже тут с джассом разбирааетеся

BioAleks   8 января 2010 в 16:37

Kapa6acvlk
Нет каких нибудь мыслей нащёт вечного инвиза??? Я спрашую, потому-что может подскажешь чёто хоть

Владимир.К.   9 января 2010 в 10:32

Может вопрос не по теме, но всё равно напишу сюда. Есть ли руссификатор для триггеров? а то я вообще запутался в них)

RwC Private League   9 января 2010 в 14:19

Есть, но по-моему лучше все таки учиться по англ понимать триггеры :D...

Kapa6acvlk   9 января 2010 в 14:21

Andreya
Повторяю еще раз где собственно функция Trig_spell3_Func009C ты ее не привел, поэтому в данный момент триггер не рабочий.
BioAleks
Какого конкретно инвиза ты хочешь добиться??

Владимир.К.   9 января 2010 в 14:59

HELLICOPTER - и всё же дайте ссылочку в личку или сюда. Я сегодня уже пытался найти русификатор, нашел, но к моему сожалению этот русификатор не подошел к моей версии
ворлдэдитора, т.е много тригеров небыли переведены(, но возможно были непереведены только тригuеры идущие с NewGen WE.

Владимир.К.   9 января 2010 в 15:09

Да вот ещё, кто нибудь знает можно ли новые модели (модели декораций и войнов) импортировать не на карту, а в саму игру и сам ворлдэдит?

BioAleks   9 января 2010 в 16:39

Kapa6acvlk
По словам HELLICOPTER-а...
Вот его пример.
Могу еще пример привести: У бары разгон, ведь союзникам видна модель "Леденящего крика" а врагам нет. А в моем случае мне надо что бы союзники видели что на юните висит "некий спелл" а враги не подозревали что этот юнит вскоре взорвется и повредит всех юнитов (и врагов и союзников) в радиусе.

Вот именно подобие нужно. Причём добавлю... вечный инвиз название.
Т.Е. его даже не видят башни с навыком от невидимых, не какие камни и т.д.

Kapa6acvlk   10 января 2010 в 12:16

BioAleks
Нужно что бы юнита невидно было??

BioAleks   10 января 2010 в 13:50

Kapa6acvlk
Ну типо да, только чтобы способности всякие например на башнях альянса "магический страж" не могли даже видеть его.
И предметы от невидимых тоже не видели...

Andreya   10 января 2010 в 17:39

Kapa6acvlk, эта функция уже была в операторе if , когда я перевел триггер в текст, поэтому я понятия не имею, откуда она взялась. Знаю только,
что spell3 название триггера

Kapa6acvlk   10 января 2010 в 17:59

BioAleks
Сделать можно на триггерах. Один триггер будет сбрасывать приказ при попытке атаки это юнита, второй сбрасывать цель при выделении его врагом. Прозрачность тоже сделать триггером. Вот в принципе и все.

Andreya
Я наю что была, но собственно где сама функция?? о_0

BioAleks   10 января 2010 в 18:14

Kapa6acvlk
Ну мозги после школы у меня отупели и в правду, я не додумался даже что есть эти действия =(... о_О... докатился.
А как тогда сделать чтобы союзники видели заклинание которое висит на юните, а враги нет???

V e t s a N   10 января 2010 в 22:53

forums.playground.ru/warcraft_3_the_frozen_throne/editor/592187/#310760

Kapa6acvlk   11 января 2010 в 15:24

BioAleks
ХЗ надо в jass функциях покопаться, может там ответ и найдешь.

BioAleks   11 января 2010 в 17:37

Kapa6acvlk
Спасибо и на этом... покопаемся...

Государь [FURRY BEAST]   12 января 2010 в 19:43

Дорогие, родимые господа. Не откажете ли вы несчастному человеку в помощи? Дело видите ли в том, что 7 толстенных тем и дополнений к этим самым темам я физически не могу проштудировать.

Итак: господа, не подскажете ли мне, где и как сделать так, чтобы герой мог набирать более 10 уровней? Дело в том, что я это знал года два назад, да вот, без практики напрочь забыл.

С уважением, Государь.

BioAleks   12 января 2010 в 21:06

Государь
Игровые константы, максимальный уровень героя ищи

JassMan   14 января 2010 в 18:50

Andreya ты просил скилл Морлока из Доты, чтоб юнит не мог уйди дальше определённой точки. Извиняюсь за задержку. . . вот наработка.
Длительность самого заклинания меняется не триггерах, а в самой способности buff

кстати о том как находится расстояние от точки до юнита, вот наглядное объяснение


ГИППЕР МАППЕР ты просил помочь со столкновением когда двигаешь юнита, так вот эта наработка тоже для тебя. На каждое событие триггера (0.03 сек) идет выбор юнита радиусом 100 вокруг снаряда (dummy юнита, к примеру, хотя я использовал самого юнита-героя)
и проверяю того кто будет занесен в эту группу:
это не должны быть союзники, юнит должен быть живым (тоесть иметь хотябы 0.405 хп (стандарт установленый blizard когда юнит считается живым) ), юнит не должен быть зданием и прочие проверки.
и в глобальную перемененную udg_u[2] заносим юнита из этой группы.
и сравниваем что udg_u[2]!=null (тоесть не должна быть пуста), тоесть юнит должен быть найден и занесен в группу откуда мы его возьмем в переменную udg_u[2]
и после этого делаем действия с этим юнитом.

Andreya
function Trig_spell3_Conditions takes nothing returns boolean
if ( not ( GetSpellAbilityId() == 'Alsh' ) ) then
return false
endif
if ( not ( GetUnitTypeId(GetSpellAbilityUnit()) == 'H000' ) ) then
return false
endif
return true
endfunction


лучше сделать так:

function Trig_spell3_Conditions takes nothing returns boolean
return (GetSpellAbilityId()=='Alsh')and(GetUnitTypeId(GetSpellAbilityUnit())== 'H000')
endfunction


тоесть сразу писать что твоя функция должна return (вернуть),
без всяких: if(not . . . return false . . . true . . .

а проблема у тебя заключалась в том что у тебя отсутствовала в триггере функция Func009C, поэтому он у тя и подчёркивал строку if ( Trig_spell3_Func009C() ) then как неправильную.
У тебя там есть только функция Conditions (условия)

Kapa6acvlk У меня чота не получается устанавливать высоту нелетающим юнитам

а добавление юниту классификации UNIT_TYPE_FLYING не помогает

Как мне установить высоту юнита если он наземный? где только не искал ничо не нашел

Kapa6acvlk   14 января 2010 в 20:38

KiLLiNG_SPREEE
Триггерно дай и тут же отними способность трансформа в ворона (Друид ворон) тому юниту, которому высоту менять собрался, а потом меняй как захочешь.

Да и вот еще что:
лучше сделать так:

function Trig_spell3_Conditions takes nothing returns boolean
return GetSpellAbilityId()=='Alsh'
return GetUnitTypeId(GetSpellAbilityUnit())== 'H000'
endfunction

бред, подумай почему.

Andreya   14 января 2010 в 21:03

KiLLiNG_SPREEE, о боже)) я же просто просил, чтобы юнит не смог уйти из региона на время действия заклинания на примере марлока из доты, а ты мне точную копию
скила ))). Ну да ладно, спасибо всё равно большое) будем разбираться!

BioAleks   15 января 2010 в 00:02

KiLLiNG_SPREEE
То что я просил, я без тебя сделал

JassMan   15 января 2010 в 01:56

молодец меня тут 8 дней не было, я тут временно всего на 4 дня если не помогут

kenny2k   15 января 2010 в 12:43

Как в редакторе сделать появляющееся окно (как например окно победы, или как на некоторых картах выбор уровня сложности).
И как сделать его открытие при нажатии определённой клавиши?
Кто разбирается, подскажите пожалуйста.

JassMan   15 января 2010 в 16:21

зайди в FAQ
ссылка наверху

Kapa6acvlk   15 января 2010 в 16:35

KiLLiNG_SPREEE
локальный таймер запустил, и после этого запускаешь цикл, с проверкой об окончании таймера, вот только придется wait в цикле юзать, иначе цикл будет признан бесконечным и тебя вышибет из игры.

JassMan   15 января 2010 в 16:42

странно чота я подобного нигде не видел у тех кто юзает локальные таймеры, однако я заметил там несколько функций (не на условия, а на действия) включая Actions

Dragon27   16 января 2010 в 11:07

и еще ответь плз на вопрос: как можно пользоватся локальным таймером и чтобы по окончанию таймера в этом же триггере делать действия не смотря на то что триггер сработал от другого события (к примеру, когда юнит привел скилл в действие)

тоесть локальное событие как бы (я хз возможно ли такое) в общем чтоб в этом же триггере реагировало каждый раз когда таймер истекает

На хрена так делать? Вешай действие на сам таймер, не будешь создавать кривые скрипты с утечками.

Kapa6acvlk   17 января 2010 в 23:52

KiLLiNG_SPREEE
То-ли лыжи не едут, то-ли я е........ =)
Ты хочешь создать триггер в триггере, хотя нет правильнее сказать, внутри функции еще функцию? Ну создаем мы триггер, для осуществления движения, юнит у нас продвигался. Дальше к примеру ты хочешь запустить еще какие-то действия? и в чем собственно проблема? Я понять просто не могу.

JassMan   18 января 2010 в 02:03

ну так разьве можно фнутри функции создать еще одну??? яж не все эти тонкости знаю
я просто к чему про действия говорил, там же как бы идёт локальное событие мол что таймер истекает
и чтоб не было конфлигтов

кароче чем так на словах путаца сразу покажи что и как

Kapa6acvlk   18 января 2010 в 17:37

Создаешь для объекта локальный триггер, в нем событие, действие. Потом когда он больше не нужен, уничтожаешь триггер. Для этого есть целые системы ранее основанные на РБ, сейчас на хэш таблицах, в принципе сути это не поменяло. Основной смысл системы, это возможность ассоциировать любой объект с любым другим объектом.
При запуске спелла или чего там у тебя. Ты создаешь так скажем триггер, который ассоциируешь с объектов (юнит в данном случае) заносишь всю информацию по триггеру и объекту в хеш, дабы потом все это удалить, а то утечки будут просто громадные. запускаешь на исполнение созданый триггер, когда надо, то стоапаешь его выполнение и уничтожаешь его.
Теперь про локальный таймер. Локальный таймер, это обыкновенная локальная переменная объявленная в начале функции для ее применения где-то. Локальный таймер как любая локальная переменная не может работать вне своей функции. Пример работы локального таймера можно взять из blizzard.j, там есть нам всем знакомая и любимая функция PolledWait, которая и основана на локальном таймере. Кстати вот еще что забыл, таймер после применения нужно уничтожать, иначе будет утечка. В PolledWait это продемонстрировано:

constant real bj_POLLED_WAIT_SKIP_THRESHOLD = 2.00
constant real bj_POLLED_WAIT_INTERVAL = 0.10

function PolledWait takes real duration returns nothing
local timer t
local real timeRemaining

if (duration > 0) then
set t = CreateTimer()
call TimerStart(t, duration, false, null)
loop
set timeRemaining = TimerGetRemaining(t)
exitwhen timeRemaining bj_POLLED_WAIT_SKIP_THRESHOLD) then
call TriggerSleepAction(0.1 * timeRemaining)
else
call TriggerSleepAction(bj_POLLED_WAIT_INTERVAL)
endif
endloop
call DestroyTimer(t)
endif
endfunction

Из этой функции понятно как работает локальный таймер. Также Локальные таймеры используются в AI, наряду с бесконечными циклами действий (хотя бесконечные циклы в триггерах не работают вызывая ошибку) для отсчета времени и планирования, вообще можно много применений придумать, только голова должна работать =))

JassMan   18 января 2010 в 22:36

а всё разобрался))
почитал blizard.j

RwC Private League   21 января 2010 в 17:30

У меня загвостка - никак не найду приминения некой системы: Возьмем доту, купим 10-50 Clarity и увидим что в инвентаре они складываца.
Я все обыскал, все поприменял, но желаемого "суммирования" вещей в инвентаре я не нашел.
Я даже в Open Object лазил за кларити) Но все равно не помогло... Мб там они не складывались...

И еще как можно сделать предел предметов "Имеющих заряды". Тоесть предметы которые имеют заряды их максимум 100 шт в одном. А можно ли это кол-во увеличить?

Kapa6acvlk   22 января 2010 в 00:57

HELLICOPTER
Тут на форуме, в течении этого месяца я видел наработку, как раз про то, что ты спрашиваешь. Ссылка вела на XGM это я точно помню.
А вообще, там система следующая, арифметически складываешь количество зарядов, и назначаешь одному предмету это количество, а другой предмет тупо удаляешь =)

RwC Private League   22 января 2010 в 16:36

Ага спс, буду делать. С днюхой тя :D

timber1111   22 января 2010 в 16:54

HELLICOPTER
Вот эта система:
Чтоб изменить максимальное кол-во зарядов замени строку "set MAXIMUM = 50"

function Trig_Combine_Items_Conditions takes nothing returns boolean
if ( not ( GetItemCharges(GetManipulatedItem()) > 0 ) ) then
return false
endif
return true
endfunction

function Trig_Combine_Items_Actions takes nothing returns nothing
local integer ITEMCOUNT
local integer ITEMLOOP
local integer CHARGES
local integer MAXIMUM
local item NEWITEM
local unit OURUNIT

set MAXIMUM = 50
set ITEMCOUNT = 0
set ITEMLOOP = 0
set CHARGES = 0
set NEWITEM = GetManipulatedItem()
set OURUNIT = GetManipulatingUnit()

loop
exitwhen ITEMLOOP > 6
if ((GetItemTypeId(NEWITEM)) == (GetItemTypeId(UnitItemInSlotBJ(OURUNIT, ITEMLOOP)))) then
if ((GetItemCharges(UnitItemInSlotBJ(OURUNIT, ITEMLOOP)) + GetItemCharges(NEWITEM))

timber1111   22 января 2010 в 16:55

call SetItemCharges( UnitItemInSlotBJ(OURUNIT, ITEMLOOP), CHARGES )
call RemoveItem( NEWITEM )
set ITEMLOOP=7
endif
endif
endif
if ( ITEMLOOP < 7 ) then
set ITEMLOOP = ITEMLOOP + 1
endif
endloop
endfunction

//===========================================================================
function InitTrig_Combine_Items takes nothing returns nothing
set gg_trg_Combine_Items = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_Combine_Items, EVENT_PLAYER_UNIT_PICKUP_ITEM )
call TriggerAddCondition( gg_trg_Combine_Items, Condition( function Trig_Combine_Items_Conditions ) )
call TriggerAddAction( gg_trg_Combine_Items, function Trig_Combine_Items_Actions )
endfunction

Kapa6acvlk   22 января 2010 в 19:47

timber1111
Код не оптимизирован, оптимизируй, и перепостуй.

Andreya   22 января 2010 в 21:24

Привет всем выдающимся мапмейкерам :) Вот вам пища для размышления: многие из вас играют в доту и наверняка знает чара Кипера со способностью Illuminate
Так вот вопрос: Как, хотя бы примерно, работает эта штучечка с временем (ну чем больше кастуешь тем сильнее, а если прерываешь, то наносит соответствующий урон) ?
PS с таймерами не дружу )

JassMan   22 января 2010 в 23:10

еее я вернулся))) нашел способ попасть в интернет . . ..

timber1111 да уж, странный код, оптимизируй его
когда создаешь переменную то уже можно давать ей значение:

local integer ITEMCOUNT=0 к примеру

ну и также самая верхняя функция некрасивая, один раз подскажу (а дальше не повторяй такой страшилы. . .) :

function Trig_Combine_Items_Conditions takes nothing returns boolean
return GetItemCharges(GetManipulatedItem())>0
endfunction



Карабас у мя к тебе вопросы накопились
• Что за переменная типа ссылка (handle)? И как ей пользоваться?
• Чем отличается Хеш-таблица от Кеша (буфера игры)
и как правильно что-либо сохранять, и потом, где уже потребуется, выгружать из памяти игры эти сохранённые данные?

• Эм. . . а можно ли обновить Blizard.j или почитать новый список bj функций , ато я не все функции в jass craft'e смог найти

• И вообще зачем Близарды придумали так много лишних bj функций когда можно почти всё native-ками заменить?

JassMan   23 января 2010 в 05:37

Andreya ну думаю так:

при создании шарика сразу создается дамми юнит и дается ему скилл "волна силы" (далее ВЛ)
этот ВЛ наносит к примеру 100 урона

если шарик подержать еще 1 секунду то создается еще 1 dummy юнит и дается ему опять этот скил ВЛ

и если скил шарика заканчивается или его прерывают то триггерно приказывается всем созданным dummy юнитам использовать ВЛ в 1 сторону
сумарно от каждого dummy и получается по 500 к примеру урона если держать 5 сек (то есть 5 dummy создалось)

и судя по всему только первый ВЛ имеет графическое оформление в виде Волны силы
а от остальных ВЛ просто идет урон без графического оформления

RwC Private League   23 января 2010 в 12:40

KiLLiNG_SPREEE

А мне кажеца это один дами юнит с 5ю лвл способности ВЛ. Появился шар - первый уровень способности ВЛ = 100 урона. ждем 1 сек, повшаем лвл ВЛ у того дамми... итд..

JassMan   23 января 2010 в 12:46

а ну да, ну я тогда не соображал

ГИППЕР МАППЕР   23 января 2010 в 20:33

прювет всем=) KiLLiNG SPREEE я так и не дождался наработки=)))) хелликоптер я не могу выпустить свою мапу из за лоадскрина=\ как там успехи?

JassMan   23 января 2010 в 20:49

ГИППЕР МАППЕР прочти этот пост 14.01.10 18:50

Andreya   23 января 2010 в 21:32

Слушайте, вот проблема то а) создаю юнита, приказываю ему сделать огненный столб в точке, а он создается и нехера не делает...

JassMan   23 января 2010 в 22:36

ну так создаешь ему способность

потом кода создал юнита даешь ему триггерно эту способность, устанавливаешь нужный левел способности у этого юнита и потом приказываешь ему использовать эту способность куда надо

Andreya   25 января 2010 в 14:59

Спс, а вот еще вопрос. А можно ли как нибуть использовать одну локальную переменную в нескольких триггерах? Если не понятно, то например: создаю в одном триггере локального юнита и мне надо задействовать этого же
юнита в другом триггере, не используя глобальных переменных

Kapa6acvlk   25 января 2010 в 17:47

Е6aнa в рот я столько написал, и все пропало. ППЦ, мне впадлу переписывать кучу текста.
Короче про Хеш и кеш, можно уснать на XGM
Статья про РБ - xgm.ru/articles.php?name=jass_return_bug
в принципе тоже что и хеш, главное принцип пойми. По остальным вопросам (не жизненно важным) может потом отвечу, кстати про хендлы там тоже статья была.

Kapa6acvlk   25 января 2010 в 17:54

KiLLiNG_SPREEE
Лучше стучись в майл агент, больше шансов, что ты меня найдешь, т.к. ICQ часто блокируется KIS'ом или мной =) kapa6acvlk(at)mail.ru

ГИППЕР МАППЕР   26 января 2010 в 03:00

KiLLiNG_SPREEE я ничего не понял =\
p.s. я просил наработку стрел=(((
ПЛЕ мне никак не сделать чтобы ландшафта не было видно на всей карте пока там не пройдёшь>_

ГИППЕР МАППЕР   26 января 2010 в 03:02

да кстать прои пересохранений карты кеш очищается?

JassMan   26 января 2010 в 03:07

ГИППЕР МАППЕР это делается в настройках в главном окне: Сценарий/Параметры/Скрытые области частично видимы — убираешь галочку

по поводу стрелы, та наработка подходит для тебя, если ты ничего не понял учи jass, другого выбора нету

Kapa6acvlk   26 января 2010 в 18:46

KiLLiNG_SPREEE
Та карта, что ты мне скинул на хэшах, с перемещением героя и оставлением после него "призрачного" следа забавная, но оно стоило того, чтобы так мучиться? =))

JassMan   26 января 2010 в 22:12

Kapa6acvlk да я и не мучился, за то время пока я отсутствовал я сидел не в редакторе, а играл в доту))) так сказать передышку сделал))
А потом, кода наигрался часов в 4 сел снова за работу, а потом тебе скинул

может абилка и не совсем красочная, но зато я понял механизм работы таймеров.
яж там не один таймер замутил а целых 3, причём первые два запускаются сразу, а третий запускается от второго таймера))

Kapa6acvlk   27 января 2010 в 00:13

KiLLiNG_SPREEE
Принимай поздравления, я с этим не сталкивался и особой нужды пока не испытывал. =)
Но все же это грандиозный прорыв, без сарказма и преувеличений (для тебя лично)

ГИППЕР МАППЕР   27 января 2010 в 14:13

KiLLiNG_SPREEE
ОМГ я с нуля написал на джассе тригер стрелы Оо хотя ни разу не писал джасс

GurmanGurman   27 января 2010 в 14:41

Привет всем!Есть вопросы вот я и решил написать сюда.
Вопросы:1.Где в декорациях находится "рычаг" он обычно используется для управления воротами.
2.Какой триггер надо писать для управления воротами через рычаг - открыть/закрыть.
3.Как поставить таймер.Плз подробный триггер.
4.Какой триггер нужен что бы-по истечению таймера победил 2 и 3 игрок,а первый проиграл?

JassMan   27 января 2010 в 17:12

ГИППЕР МАППЕР показывай)) будем оценивать твои возможности

JassMan   27 января 2010 в 19:19

Kapa6acvlk что делать если ту способность используют сразу несколько юнитов?

Ведь хеш-таблица очищается после того, кто первый закончил перемещение. А остальные юниты, которые тоже применили этот скилл останавливаются или ждут когда те закончат применять способность.

Как быть? Вот карта

По идее они все должны одновременно прыгать, без опозданий каждый.

Kapa6acvlk   28 января 2010 в 01:15

KiLLiNG_SPREEE
у меня они одновременно за мной все прыгают, затупков никаких не обнаружил. Может какой-то конкретный способ выявления бага скажешь??

Andreya   28 января 2010 в 12:31

GurmanGurman,
2. В триггерах создаешь событие и условие, в действиях ставишь - Открыть (указываешь ворота)
Рычаг как декорация, он сам по себе ничего не делает..

3. 1)Создаешь переменную таймер
2) Создаешь триггер:
-Событие( указываешь вобщем)
-Условие ()
- Действие:
1.создать окно (указываешь переменную таймера) с названием ( заголовок таймера )
2.запустить ( указываешь переменную таймера ) ... , который зазвонит через (устанавливаешь время)

4. Событие - таймер (указываешь название таймера) истекает
Действие - Игра- победа игрок 2
- Игра- победа игрок 3
- Игра - поражение игрок 1

GurmanGurman   28 января 2010 в 14:41

Спосибо что расписал вопросы, но есть еще:1.что такое переменная таймера?(Больше интересует как сделать переменную)
2.к таймеру условие не надо?
3.хочу сделать что бы в начале карты у всех игроков переводились камеры на алтари(где героя выбирать) , как это сделать чет не могу разобраться?я думаю это тут уже описывалось если да дайте ссылку на тему или коперните текст.
4.как сделать так что бы , в альтаре после выбора героя все пропалия думаю это тут уже описывалось если да дайте ссылку на тему или коперните текст.
5.Мне все равно нужен рычаг , без него тупо прописывать -open/-cloze тупо и впадлу,хотелось бы что бы ворота открывались с помощью рычага.Где он в декорациях?
6.Как сделать телепорт?поставлю область ,а юниты ее обходят как преграду.как сделать телепорт?и какой триггер нужен собстевнно?)

GurmanGurman   28 января 2010 в 15:47

7.Где скачать полностью русский ворд едитор? у меня триггеры на англ. если существует полный русский дайте ссылку на скачку.
8.я разобрался с переменной но все же у меня не создается таймер.подробно расскажите какая переменная нужна,таймер или окно таймера ,мб что то другое?
9.как сделать лимит определенного юнита на карте например: можно создать на карте 8 пехотинцев всего, больше нельзя, но если все 8 или меньше умирают - то снова можно создавать их до максимального числа?

GurmanGurman   28 января 2010 в 23:48

ГИППЕР МАППЕР
мошно ты там расписал.
P.S.ОТВЕТЬТЕ НА МОИ ВОПРОСЫ ПИПЛ ПЛЗ!

Kapa6acvlk   29 января 2010 в 02:01

ГИППЕР МАППЕР
Оптимизируй!
Избавься от кучи функций и кучи ненужных действий в функциях, а там будем оценивать. Пока что это GUI переведенный в JASS.

Dragon27   29 января 2010 в 02:48

Расписывать подробно не буду.

1.что такое переменная таймера?(Больше интересует как сделать переменную)
Variables, там кнопочка есть.

2.к таймеру условие не надо?
В данном случае нет. Но случаи разные бывают :)

3.хочу сделать что бы в начале карты у всех игроков переводились камеры на алтари(где героя выбирать) , как это сделать чет не могу разобраться?я думаю это тут уже описывалось если да дайте ссылку на тему или коперните текст.
По событию Time expired, или как-то так, поставишь 0 секунд. Поставь в редакторе по камере куда надо, а затем действие Apply Camera Object.

4.как сделать так что бы , в альтаре после выбора героя все пропалия думаю это тут уже описывалось если да дайте ссылку на тему или коперните текст.
Вначале нужно добавить героев (перед этим в редакторе объектов магазин сделай пустым), а затем уже их можно удалять. Группа действий Neutral Building

5.Мне все равно нужен рычаг , без него тупо прописывать -open/-cloze тупо и впадлу,хотелось бы что бы ворота открывались с помощью рычага.Где он в декорациях?
Разрушаемые декорации (destructible, рычаг по английски lever). Если не увидишь, попробуй сменить tileset например на Underground.

6.Как сделать телепорт?поставлю область ,а юниты ее обходят как преграду.как сделать телепорт?и какой триггер нужен собстевнно?) +
По событию unit enters region перемещай куда надо действием Unit - Move.

7.Где скачать полностью русский ворд едитор? у меня триггеры на англ. если существует полный русский дайте ссылку на скачку.
Он очень отстойный (там даже ошибки есть). Оставь английский, послушайся моего совета. Заодно язык подучишь.

8.я разобрался с переменной но все же у меня не создается таймер.подробно расскажите какая переменная нужна,таймер или окно таймера ,мб что то другое?
Хватит таймера. Окно нужно только для визуального отображения. Может он у тебя запустился, но ты думаешь, что не запустился, потому что окна нету?

9.как сделать лимит определенного юнита на карте например: можно создать на карте 8 пехотинцев всего, больше нельзя, но если все 8 или меньше умирают - то снова можно создавать их до максимального числа?
В группе действий Unit есть действие. Чёрт, не помню как называется. Поищи что-нибудь вроде Max, Train, Number или типа того.

Я в редактор не заглядывал, могут быть ошибки.

GurmanGurman   29 января 2010 в 15:34

Спосибо хоть за какие то ответы , пытюсь разобраться.
Принимаю совет , но у меня редактор русскоангл. ))
На счет: 1.таймера-скорее всего что я думаю что он не робит из за того что окна нет , а как окно поставить ставил триггер "крит виндов таймер" все равно окно таймера не появлялось.Что бы упростить задачу обосную какой мне нужен таймер-атакующий игрок должен за 2 часа захватить всю местность , по окончаю таймера он проиграет.
2.лимит юнитов-макс. число указывать в редакторе существ или где?
3.алтари с героями-добовлять героев куда , в алтарь?я делал пустые алтари и добавлял своих героев результат один и тот же , еще алтари принадлежат игрокам ,по 1 алтарю 1 игроку.короче нихера не выходит не знаю что я неправильно делаю.
4.телепорт-нужно 2 область делать куда юниты телепортируются?скорее да то как?
НОВЫЕ ВОПРОСЫ:
1.Как сделать ,что бы ворота открывались/закрывались с помощью рычага, ну допустем как в карте компинг оф ве хорд(нашествие орды) там с помощью рычага отрываются ворота.

Andreya   29 января 2010 в 19:05

1.Как работал рычаг? к нему подходили, и он срабатывал ..или что?

4.Да, создаешь 2ую область в триггере указываешь в действиях двигать мгновенно в центр региона (2ая область)

GurmanGurman   29 января 2010 в 20:29

телепорт сделал)
рычаг , например-наводишь курсором на рычаг берешь его в цель ,справо у него должно быть 2 скилла,1 открыть,2 зыкрыть.

Andreya   29 января 2010 в 21:35

Не) не видал такого рычага, ну можно сделать юнита, дать ему способности, при использовании которых ворота открывались - закрывались

Dragon27   29 января 2010 в 22:19

Принимаю совет , но у меня редактор русскоангл. ))
А другого русского переводя и нету. Ищи полностью английский.

таймера-скорее всего что я думаю что он не робит из за того что окна нет , а как окно поставить ставил триггер "крит виндов таймер" все равно окно таймера не появлялось.Что бы упростить задачу обосную какой мне нужен таймер-атакующий игрок должен за 2 часа захватить всю местность , по окончаю таймера он проиграет.
Наличие/отсутствие окна не влияет на работоспособность таймера. Попробуй помимо create window найти что-нибудь вроде show/hide.

2.лимит юнитов-макс. число указывать в редакторе существ или где?
В триггерах.

3.алтари с героями-добовлять героев куда , в алтарь?я делал пустые алтари и добавлял своих героев результат один и тот же , еще алтари принадлежат игрокам ,по 1 алтарю 1 игроку.короче нихера не выходит не знаю что я неправильно делаю.
Добавлять триггерами. После покупки (по событию покупки) убирать триггерами.

рычаг , например-наводишь курсором на рычаг берешь его в цель ,справо у него должно быть 2 скилла,1 открыть,2 зыкрыть.
Объясни подробнее. Выбираешь рычаг мышкой и у него есть способности?

GurmanGurman   29 января 2010 в 23:48

на счет рычага -да,выбираешь рычаг у него 2 способности открыть и закрыть.
на счет героях в алтарях скажи плз имено какие нужны триггеры что бы герои пропали -ремов юнит не помогает.
на счет лимита юнитов-какие нужны триггеры?
на счет таймера попробую, если что отпишусь.
Со всем остальным я разобрался.

Andreya   30 января 2010 в 12:44

Русские триггеры можно сказать отсюда ( правый верхний угол страницы)

Dragon27   30 января 2010 в 13:59

на счет рычага -да,выбираешь рычаг у него 2 способности открыть и закрыть.
Создаёшь юнита с моделью рычага, и создаёшь для него две дамми способности (основанные на разных способностях, или на Channel с разными ID, чтоб не спутались). Дамми - это значит, что они ничего не должны делать, по крайней мере заметного (ты сам задашь им действия в триггерах). Только активироваться. Создаёшь два триггера (можешь и одним, если ability каста проверять будешь). Событие Unit start the effect of an ability, и вставляешь действия по открытию/закрытию дверей.

на счет героях в алтарях скажи плз имено какие нужны триггеры что бы герои пропали -ремов юнит не помогает.
Neutral Building - Add/Remove Unit-Type. В редакторе объектов рынок должен быть без юнитов, иначе не удалишь.
Попробуй также Player - Limit Training of Heroes. Поставь единицу.

на счет лимита юнитов-какие нужны триггеры?
Тут я спутал немного группу. Группа Player. Действие Player - Limit Training of Unit-Type.

GurmanGurman   30 января 2010 в 16:44

а как сделать юнита с моделью рычага?)чет не пойму)

GurmanGurman   30 января 2010 в 17:07

короче ваще нихера люмит не ставится ни на героев, ни на юнитов.
Еще не пойму нахера писать триггер -нейтрал билдинг если здание принадлежит игроку,может из за этого не робит?
лучше распишите подробно каждый триггер что бы мозг не ебть мне и вам,а то делаю все как написали нихера не выходит

GurmanGurman   30 января 2010 в 17:10

ВОПРОС:
1.как сделать защиту на карту?ну что ты в ворде открыть не могли?

GurmanGurman   30 января 2010 в 17:11

2.можно ли ландшафт изменить на другой не меня карты?

Andreya   30 января 2010 в 18:30

ищи в подстроках сверху ( вроде бы Дополнительно-изменить тип ландшафтра)

GurmanGurman   30 января 2010 в 19:57

так мне че надо нового юнита создать или че декорациЮ?если декорацию надо то это легче простого ди и не нужно так как декорация есть уже

GurmanGurman   30 января 2010 в 20:36

воообшем вот вопросы прошу расписать точно нехочу вам мозг ебть и себе:
1.Как сделать лимит определенного юнита на карте.я уже прбовал триггер лимит юнит не помогало,распешите полностью триггер плз .
2.Герои не изчезают после выбора пробовал ремов и адд не помагло ,пробовал лимит хероис , тоже не вышло я не понимаю че за втф.Напишите плз полный триггер так как у вас работает на котором все работает.
3.Все последний вопрос как открывать двери через "рычаГ" какие триггеры надо писать для того что бы у рычага была 2 скила открыть/закрыть,какие нужны триггеры что бы скилы работали .

GurmanGurman   30 января 2010 в 21:49

4.Как сделать что бы за убитого юнита давали определенное количество золота?

GurmanGurman   30 января 2010 в 21:50

5.как сделать -что бы капали деньги каждые 5 секудны по 50 допустем , определенным игрокам?

Andreya   30 января 2010 в 23:17

так мне че надо нового юнита создать или че декорациЮ?если декорацию надо то это легче простого ди и не нужно так как декорация есть уже
Ю-Ни-ТА, который выглядит как рычаг.
Даешь этому юниту ДВА скила, называешь их "открыть" и "закрыть" , но так? чтобы эти два скилла были НЕ на одинаковых основах.
Создаешь триггер: событие - Юнит приводит способность в действие. Условие - Применяемая способность равно (указываешь эту споособность), Применяющий юнит типа - (указываешь своего юнита-рычаг)
Действие - Открыть/ Закрыть Ворота (указываешь, какие именно ворота)

4.Как сделать что бы за убитого юнита давали определенное количество золота?
Событие - Юнит умирает. Условие - Умирающий юнит типа (указываешь)равно да. Действие - Добавить (кол-во) золота владельцу (убивающего юнита)
Или просто указываешь награду в характеристиках юнита

5.как сделать -что бы капали деньги каждые 5 секудны по 50 допустем , определенным игрокам?
Событие - Каждые 5 секунд игрового времени
Действие - Добавить 50 золота Игроку (указываешь игрока)

GurmanGurman   31 января 2010 в 00:43

проблема в том что я не могу сделать юнита РЫЧАГОМ , не вижу я где выбирать облик декораций.



круто спосибо за ответы ,жду ответы на другие вопросы.

Dragon27   31 января 2010 в 00:47

Еще не пойму нахера писать триггер -нейтрал билдинг если здание принадлежит игроку,может из за этого не робит?
Здание конечно нейтральным сделай.

Как сделать лимит определенного юнита на карте.я уже прбовал триггер лимит юнит не помогало,распешите полностью триггер плз .
Действие, которое я тебе советовал, запрещает дальнейшую покупку. Если юнит уже куплен, оно его не удалит.

Напишите плз полный триггер так как у вас работает на котором все работает.
Пля. Создаёшь рынок (новый тип юнита). Пустой. Добавляешь ему способность Sells Units (чтобы продавать юнитов мог)
Ставишь на карту. Создаёшь триггер, навроде:

init
Events
Map initialization
Conditions
Actions
Neutral Building - Add Paladin to Tavern 2 0002 with 1 in stock and a max stock of 1
Neutral Building - Add Archmage to Tavern 2 0002 with 1 in stock and a max stock of 1
Neutral Building - Add Mountain King to Tavern 2 0002 with 1 in stock and a max stock of 1
Neutral Building - Add Blood Mage to Tavern 2 0002 with 1 in stock and a max stock of 1

И ещё один:
tavern
Events
Unit - Tavern 2 0002 Sells a unit
Conditions
Actions
Neutral Building - Remove Paladin from Tavern 2 0002
Neutral Building - Remove Archmage from Tavern 2 0002
Neutral Building - Remove Mountain King from Tavern 2 0002
Neutral Building - Remove Blood Mage from Tavern 2 0002

Dragon27   31 января 2010 в 00:50

проблема в том что я не могу сделать юнита РЫЧАГОМ , не вижу я где выбирать облик декораций.
Art - Model File
Destructibles->Lever

GurmanGurman   31 января 2010 в 00:56

Проблемочка - триггер действие на англ. для "добавить (кол-во) золода владельцу (убивающего юнита)" какой?как пишется ))

Dragon27   31 января 2010 в 01:00

Player - Add Property

В принципе, сам мог догадаться, что раз действие относится только к игроку, то группа - Player.

Владелец Юнита - Owner of Unit.

Dragon27   31 января 2010 в 01:03

А вообще SetPlayerState, и не страдай gui-фигнёй :)

ГИППЕР МАППЕР   31 января 2010 в 01:18

Карабас пля >_< это первый раз когда я написал что то на джассе >_

GurmanGurman   31 января 2010 в 01:24

фак,деньги дают только за того юнита которого выбрал как сделать что бы за весь род за всех например вурдалаков давали по 50 золота ?

GurmanGurman   31 января 2010 в 01:26

короче может проще сделать что бы у вражеских юнитов другого игрока выпадали деньги так же как и нейтрально-враждебных юнитов?ну например убил высвечивается +50

Dragon27   31 января 2010 в 01:32

Событие - Юнит умирает. Условие - Умирающий юнит типа (указываешь)равно да. Действие - Добавить (кол-во) золота владельцу (убивающего юнита)
Написано же.
Unit-Type Comparison юзай.

Dragon27   31 января 2010 в 01:33

Карабас пля >_< это первый раз когда я написал что то на джассе >_
Jass рулит! Чтоб больше к gui не притрагивался :)

GurmanGurman   31 января 2010 в 01:46

событие какое выбрать то , что бы ко всем относилось юнитам а не к одному , не могу найти где выбрать вид юнита а не самого юнита

Dragon27   31 января 2010 в 01:48

Событие - generic - unit dies
условия, главное, проставь.

GurmanGurman   31 января 2010 в 01:50

триггер с лимитом юниитов не робит у мени

Dragon27   31 января 2010 в 01:57

По map initialization делаешь?

GurmanGurman   31 января 2010 в 01:58

блиа меня это уже бесить начинает короче :
деньги за кил юнита
событие-боевая единица-generic unit event- a unit (умирает)
условие-какое надо?то которое стояло у меня считало за всех убитых юнитов хотя я ставил вурдалака
действие-add property-add (50) to (игрок) (золото текущ.)

Dragon27   31 января 2010 в 02:00

(Unit-type of (Dying unit)) Equal to Ghoul

GurmanGurman   31 января 2010 в 02:01

блиаа) сказал бы раньше что надо map initialization поставить , так лимит юнитов работает ,но мозгодрочка продолжается)

Dragon27   31 января 2010 в 02:01

блиаа) сказал бы раньше что надо map initialization поставить , так лимит юнитов работает ,но мозгодрочка продолжается)
Ну там надо было хотя бы какое-нибудь рабочее событие поставить. Легче всего мапинит.

GurmanGurman   31 января 2010 в 02:10

ура заработало)спосибо))
продолжаем кардобалет:
1.как сделать -что бы капали деньги каждые 5 секудны по 50 допустем , определенным игрокам?я подозреваю как это сделать но незнаю команд так как они у меня на англ.подскажи команды.
2.Объесни как сделать юнита выглядищим рычагом?)куда заходить че нажимать что выбирать , и где какие панели находятся ну поточнее тоесть.

Dragon27   31 января 2010 в 02:21

1.как сделать -что бы капали деньги каждые 5 секудны по 50 допустем , определенным игрокам?я подозреваю как это сделать но незнаю команд так как они у меня на англ.подскажи команды.
Событие Timer - Periodic Event. Как добавлять деньги - ты знаешь.

2.Объесни как сделать юнита выглядищим рычагом?)куда заходить че нажимать что выбирать , и где какие панели находятся ну поточнее тоесть.
В редакторе объектов у юнита есть свойство Art - Model File (как по-русски - не знаю). там просто выбираешь или прописываешь модель. Выбери группу Destructibles и найди модель Lever.

GurmanGurman   31 января 2010 в 02:46

так сделал модель все как надо терь надо со спелами разобраться -окрыть/закрыть

Dragon27   31 января 2010 в 02:53

Разбирайся.
Я пошёл спать.

GurmanGurman   31 января 2010 в 02:54

так проблемочка ,как сделать что бы "рычаг" не передвигался и у него небыло ни атаки и не спеллов(тоетсь "стоп,атаковать,патрулировать и т.д.) ,ни защиты.

Dragon27   31 января 2010 в 03:06

Ну ты уж совсем. Найди все поля с переводчиком, напр. movement speed, movement type, attacks enabled, добавь свойство invulnerable, классификацию warden (все остальные убери), сделай нейтральным. Это простейшие вещи! В справочнике редактора глянь, как менять юнита.

GurmanGurman   31 января 2010 в 03:10

все разобрался все сделал, только скиллы остались

ГИППЕР МАППЕР   31 января 2010 в 19:10

у вас тут прям дисскуссия

Kapa6acvlk   1 февраля 2010 в 10:58

ГИППЕР МАППЕР
В данный момент это не jass, а gui код переведенный в jass. Ты кстати английский хорошо знаешь?

Sqeezeeee   2 февраля 2010 в 09:52

Люди помогите а? как можно сделать типы атаки и защиты отличные от стандартных? например огонь, вода как в елемент тд?

Moonlitelf   2 февраля 2010 в 12:02

Помогите плиз
Как создать таблицу, котороая будет показывать золото, древесину и исп.еды всех игроков и их имя (ник).
И чтобы только Игрок 1 (Красный) мог видеть её.

ГИППЕР МАППЕР   2 февраля 2010 в 17:09

английский знаю хорошо..........ПЛЯ ГДЕ ХЕЛИКОПТЕР

BioAleks   3 февраля 2010 в 00:21

Sqeezeeee
Переделать через игровой интерфейс и игровые константы.

Moonlitelf
Читай мануал по созданию таблиц на xgm

Dragon27   3 февраля 2010 в 01:58

Люди помогите а? как можно сделать типы атаки и защиты отличные от стандартных? например огонь, вода как в елемент тд?
если ты имеешь в виду что-то посерьёзнее обычных больше-меньше урона, то придётся серьёзно помучиться :)

Как создать таблицу, котороая будет показывать золото, древесину и исп.еды всех игроков и их имя (ник).
И чтобы только Игрок 1 (Красный) мог видеть её.

multiboard - называется. Её и юзай. Все данные будешь сувать триггерами, или джасом. Надеюсь ты понял :)

Sqeezeeee   3 февраля 2010 в 05:28

Через игровой интервейс можно только иконку поменять атаки, а через игровые константы урон... а мне нада чтоб прям было написано там например Бой1-тип атаки - вода. вот так вот.

BioAleks   3 февраля 2010 в 14:26

Sqeezeeee
Объясняю для тех кто плохо догоняет. В ТД Элементе поменян просто интерфейс, возьми и поменяй все тексты, уроны и т.д.
Повторяю ещё раз, игровые константы и игровой интерфейс, новую атаку не возможно сделать, нету такого.
"Бой 1" это триггерно пишется.

В ТД заменено всё просто.

Dragon27
нащёт помучится.
Я такую ТД за 1 час сделаю. (подобную и нормальную)

Kapa6acvlk   3 февраля 2010 в 18:49

ГИППЕР МАППЕР
Именно поэтому комментарии в коде написаны на нем? о_0 =)) тренируешься =)

BioAleks
Ну такую же за час не сделаешь =) за неделю может, плюс баланс замучаешься править =). Ну это не суть =)

Sqeezeeee   4 февраля 2010 в 07:35

BioAleks
Спс я недогнал сначала что текс можно исправить в интерфейсе.
Next мне нужен триггер,который бы при событиях что закончилось исследование и герой выучил пассивку
он заменялся другим навсегда(имено триггер,ненадо говорить, что типа можно способностью тёмный,в моём
случае она не подходит)

BioAleks   4 февраля 2010 в 08:44

Kapa6acvlk
Ну я не такую говорю, ну подобную. (например за денёк можно лёгкую подобную сделать)

Dr. Manhattan   4 февраля 2010 в 14:34

1) Пытаюсь открыть Demo Campaign в редакторе кампаний, вылезает сообщение о том, что "функция триггера отсутствует в базе
данных: SaveGameCacheBJ, затем "недостаточно памяти для обработки какой-то команды", ОК и редактор закрывается.
Что делать? В игре кампания нормально запускается. Версия игры 1.24.1.6374

2) Существует ли вожможность создать переменную, общую для всех миссий в кампании? Или еще какой-нибудь способ передать
данные из одной миссии в другую?

3) Если не трудно, опишите в двух словах, что такое хэш-таблица и буфер игры, и как с ними работать?

Kapa6acvlk   4 февраля 2010 в 20:21

Dr. Manhattan
1. После обновления редактора функции сохранения кеша нет, близзы забыли вернуть ее на место или просто забили на это дело.
2. Игровой Кеш, кстати проблема в том, что функции сохранения нет, так что юзается только в JASS формате.
3. Ну раз в двух словах =))
Хеш-таблица это: ассоциативный массив

Dragon27   4 февраля 2010 в 21:42

нащёт помучится.
Я такую ТД за 1 час сделаю. (подобную и нормальную)

Есть разница между новичками и продвинутыми?

BioAleks   4 февраля 2010 в 21:43

Dragon27
Не такой уж я и продвинутый... я просто привёл пример что можно сделать подобную.

Dr. Manhattan
Буфер игры это типа хэша на компе.

Sqeezeeee
Опиши точнее что тебе надо, не догнал.

Dr. Manhattan   5 февраля 2010 в 00:13

После обновления редактора функции сохранения кеша нет, близзы забыли вернуть ее на место или просто забили на это дело.

То есть ситуацию исправит только очередной патч?

Хеш-таблица это: ассоциативный массив
Буфер игры это типа хэша на компе.


Я в этом не разбираюсь, если честно. Можете объяснить по-русски, что это за фигня и для чего она может пригодиться?

Dragon27   5 февраля 2010 в 01:09

Ну прочитай же наконец.
А пригодиться табличка может для чего угодно, если сумеешь использовать.

Kapa6acvlk   5 февраля 2010 в 01:24

Dr. Manhattan
Очередной патч с тех времен уже вышел, они ничего не исправили, следовательно придется ручками писать если надо сохранить кешь, типа: call SaveGameCache(udg_cache)

Расписывать для чего нужен хэш, очень долго, т.к. для чего придумаешь, для того он и нужен. Вообще он нужен для хранения данных, пост BioAleks'a можешь пропустить мимо ушей (глаз) т.к. та какой-то бред он написал, только для него понятный.
Вообще для нормального использования хэш таблиц, потребуются знания JASS. Вот очень хорошая статья про хэш таблицы, лучше этой статьи ты вряд ли найдешь.
xgm.ru/forum/showthread.php?t=30742

Sqeezeeee   5 февраля 2010 в 06:18

BioAleks
мне нужно сделать следуйщее:
событие
Герой изучил способность
Исследование завершилось
Условие
изучаемая способность=(название)
Иследование завершилось=(название)
Действие
Герой который выучил скил превратился в другого героя.
Такой триггер у меня НЕ РАБОТАЕТ мне нужен работающий аналог.

BioAleks   5 февраля 2010 в 08:32

Kapa6acvlk
Бред??? Ну это потому-что кое-кто типа тебя не шарит по компу, а шарит по варкрафту. Так что я всё правильно подметил. Т.Е. привёл пример.
И джасс не всегда лучший.

Sqeezeeee
Превратился в другого это типа поменялся вообще как я понял...
Ну события нет такого как я знаю на ГУИ, так как моя специализация больше гуи.
Использовать в качестве события можно Map Initializing или включить этот триггер от другого.
Прийду... посмотрю что придумать.

Dr. Manhattan   5 февраля 2010 в 12:18

Sqeezeeee, я, может, и ошибаюсь, но по-моему проблема в следующем. Триггер запускается одним из событий, перечисленных в разделе
"события". Между этими событиями можно поставить "или". В разделе "условия" стоит логическое "и", т.е. триггер выполняется только
при одновременном выполнении обоих условий. Произошло событие - герой изучил способность. При этом исследование могло еще
не завершиться, а возможно, оно и не начиналось. Но триггер запущен. Что редактор в этой ситуации понимает
под "завершенное исследование" - бог его знает.

BioAleks   5 февраля 2010 в 17:52

Dr. Manhattan
Дело в том что "завершенное исследование" или отслеживание исследований даже в джассе я не нашёл... (может и не увидел, но я не видел).

Kapa6acvlk   5 февраля 2010 в 21:10

BioAleks
В каком плане JASS не самый лучший? В том плане что на нем операционную систему или приложения написать нельзя? Неведомые хакеры при помощи JASS и RB сумели запустить cmd, извлечь из карты вара вирусное тело и заразить комп.
По поводу буфера и хэша. Не спорю структура у них идентичная, НО буфер есть файл, а хэш таблица это кусок памяти. Также в качестве ключей для хэш, можно использовать что угодно, когда как для буфера только строку.
Теперь давай разберем твое высказывание: "Буфер игры это типа хэша на компе."
начнем с того, что оба этих объекта находятся на компе. Я вот вообще не понимаю этого высказывания. То-ли запятых тут не хватает, то-ли куска предложения... Я в отличии от тебя хоть намекнул что искать нужно.

GurmanGurman   5 февраля 2010 в 23:34

вопросы:
1.как сделать что бы при выборе игроков героя в таверне его герой перемешался на указанное мною точку и он не мог больше покупать в таверне героев,после того как игрок выберит героя он исчезает в таверне остаются другие герои ?ну как в доте что бы было понятно что мне надо привиду такой пример.
2.как регулировать высоту мостов?
3.как сделать скилл способность которая открывала/закрывала дверь-ну нажимаешь на скилл выбранная дверь открылась , нажал другой скилл который отвечает за закрытие двери , дверь закрывается.
Пишите плз триггеры на англ. и по подробней плз

Dragon27   6 февраля 2010 в 01:56

событие
Герой изучил способность
Исследование завершилось
Условие
изучаемая способность=(название)
Иследование завершилось=(название)

Действие
Герой который выучил скил превратился в другого героя.
Такой триггер у меня НЕ РАБОТАЕТ мне нужен работающий аналог.

Объясни человеческим языком, что ты хочешь сделать.
Триггер не будет выполняться в любом случае, т.к. он запускается только по одному событию (даже если они произошли одновременно, он просто запустится по одному разу для каждого события), а условия у тебя требуют оба события сразу. Условие с исследованием требует события с исследованием, но при событии с исследованием не пройдёт условие со способностью, и наоборот.

как сделать что бы при выборе игроков героя в таверне его герой перемешался на указанное мною точку и он не мог больше покупать в таверне героев,после того как игрок выберит героя он исчезает в таверне остаются другие герои ?ну как в доте что бы было понятно что мне надо привиду такой пример.
выше читай, там мы разбирали пример с удалением лишних героев, я даже триггер приводил. Перемещать героя, как обычно Unit - Move. Цель - sold unit попробуй. Если не получится, юзай вхождение в регион возле таверны.

как регулировать высоту мостов?
вроде ctrl+Page up, ctrl+Page down.

как сделать скилл способность которая открывала/закрывала дверь-ну нажимаешь на скилл выбранная дверь открылась , нажал другой скилл который отвечает за закрытие двери , дверь закрывается.
Тоже разбирали. Читай, пока не поймёшь :)
Вкратце суть - создаёшь абилку, которая ничего не делает, только активируется (то есть все эффекты и способности у неё надо убрать/обнулить). Создаёшь триггер, который реагирует на использование этой абилки (Unit - Start the effect of an ability), и в триггере открываешь/закрываешь дверь.

GurmanGurman   6 февраля 2010 в 02:36

оо гуд на счет 2 последних вопросов понял , вот перый с удалением героев не вкурил . объесню как я делаю что бы видно было мои ошибки- ставлю таверну , делаю триггер :
событие:
условие:
действие:нейтральное здание-ремов (герой) фром (чет то там)
так надо?
в редакторе объектов че нить надо делать с таверной или как?и какой правельный триггер.?

Sqeezeeee   6 февраля 2010 в 07:00

Dragon27
я понимаю что нужно 1 событие.... но проблема то остаётся.
прямо напишите как сделать триггер с выполнением двух событий?
что вокруг да около ходить то =/

BioAleks   6 февраля 2010 в 11:21

Kapa6acvlk
В прямом плане JASS не самый лучший. Он не идеален, поэтому не самый лучший. (надеюсь до тебя дойдёт о чём я)
Нащёт хеша и буфера... используй википедию чтобы здесь не начинать этот разговор даже.
А в моей фразе я намёк дал, только естественно его некто не понял. Эту тему закрыли.

Форум только засаряем.

BioAleks   6 февраля 2010 в 11:59

Dragon27
Где ты видел событие с исследованием??? У меня лично нету.
Мда... и вообще... если у тебя русский, то понятно всё... там всё фиг знает как переведено и переделано.

Dr. Manhattan   6 февраля 2010 в 14:04

Sqeezeeee, сделай два триггера, по одному на каждое событие, и введи для них целочисленную переменную. Действия в обоих триггерах
одинаковые: сначала увеличиваем переменную на 1 (set i=i+1), затем if i=2 then do (действия, которые у тебя там предусмотрены по замене героя)
else do nothing

Kind Ram   7 февраля 2010 в 05:00

Так народ у меня такой вовпрос какой я бы не задал если бы не просрал одну карту.

Кароче мне надо сделать так чтобы перед кастующи юнитом на расстоянии например 200/400/600 появлялись юниты параллельно ему взгляду (тоесть куда он смотрит там и появляется линия этих юнитов).
Вопрос в том что именно параллельно взгляду ну никак непоявляются всё время кудабы я не смотрел линия юнитов появляется в сторону севера.

Как мне заставить линию юнитов строица параллельно взгляду?

Sqeezeeee   7 февраля 2010 в 09:49

Dr.Manhattan
Хы спс :)
Вроде бы не сложно а сам не догадался.
Правда помучиться придётся на каждого героя делать переменную.
BioAleks
Есть такое событие.И перевод тут не причём.
У меня же получилось. В событиях оно 4 снизу если нажать Generic unit event.
И условие на исследование есть.

Dr. Manhattan   7 февраля 2010 в 10:21

Всегда пожалуйста)

Если героев несколько, то я бы сделал массив, чтобы список переменных не захламлять. А в комментариях к триггеру написал бы,
какой герой в какой ячейке (если бы имел причины не полагаться на свою память).

Hectore, есть такая функция - "Боевая единица - Facing Angle". Она возврацает значение угла поворота юнита. Есть функция "Position of unit",
которая возвращает точку, в которой находится юнит. Есть еще "X of point" и "Y of point", через которые можно получить координаты этой точки,
но они вряд ли понадобятся. Имея координаты юнита и угол поворота, можно с помощью школьной геометрии вычислить координаты точек,
в которые тебе надо переместить юнитов. Так что вперед)

Dragon27   7 февраля 2010 в 11:36

оо гуд на счет 2 последних вопросов понял , вот перый с удалением героев не вкурил
событие: таверна продала юнита
действие: удалить героев из таверны (по одному на каждого юнита)
что там может быть непонятного?

в редакторе объектов че нить надо делать с таверной или как?
таверна должна быть пустая (никого не продавать), всех героев добавишь в начале игры триггерно. Таверна должна иметь свойство Sells Units.

Где ты видел событие с исследованием??? У меня лично нету.
оно должно быть в списке событий с юнитом, насколько я помню

BioAleks   7 февраля 2010 в 14:17

Sqeezeeee
За условие я не говорил. Кажется из-за того что давно не работал с редактором, уже забыл не мало...

Dragon27
Да нашёл я, просто что-то я забывать редактор стал... мда...

Kind Ram   7 февраля 2010 в 16:20

Dr. Manhattan

Непашет как ты предложил теперь он на северовосток кастует но никак не туда куда смотрит.
Есть у каво карта JurrasicExplora.w3x? Мне она очень нужна.

Dr. Manhattan   7 февраля 2010 в 17:32

А я тебе ничего и не предлагал. Просто указал, какими инструментами нужно пользоваться. Триггеры ты сам делал.

Dragon27   7 февраля 2010 в 20:28

Непашет как ты предложил теперь он на северовосток кастует но никак не туда куда смотрит.
Может не пашет как ты сделал?

Sqeezeeee   8 февраля 2010 в 08:00

Блин...
Нашёл баг дело в том что таких героев с трансофрмацией у меня много и они могут повторяться
и получается я у одного героя учу скил i=1 и второму такомуже учу скил i=2 и всё, триггер срабатывает.
Давайте другой способ, повторю что мне надо:
чтоб при двух событиях и соответствующих условиях преисходило нужное мне действие.

Dr. Manhattan   8 февраля 2010 в 11:42

Ну так пропиши в условиях для скила, что triggering unit - это какой-то определенный герой. Например, "unit-type of triggering unit равно" - кажется, так это выглядит.
Или triggering unit равно - смотря, какая у тебя там ситуация.

Jenia_aka_nels   8 февраля 2010 в 15:22

Всем привет!
У меня тут накопилось несколько вопросов по поводу моесь системы собирания оружия. Вот как она работает: когда воин берет предмет "палка" на его месте появляется юнит "воин с палкой", а когда воин берет огнестрельное оружие, наример, "пистолет" то кроме самого боина появляется окно, в котором написано оставшееся количество патронов. А вот и вопросы:
1. Как сделать, чтобы появлялось это окно с количеством патронов, если оно задано переменной x.
2. Как сделать, чтобы когда потроны кончались, юнит не мог атаковать.
3. Как передать все предметы от старого юнита, юниту с новым оружием.
4. Как сделать, чтобы когда юнит с огнестрельным оружием (с окном оставшихся патронов) выкидывал оружие (для этого есть способность) или брал любое другое, пропадало окно с патронами.
И еще отдельно несколько вопросов:
1. Как сделать, чтобы ядовитое облако убивало, не оставляя 1хп.
2. Как сделать, чтобы юниты разных цветов могли садиться на нейтральное транспортное средство, чтобы оно переходило под контроль севшего юнита.
Заранее благодарю тех, кто поможет!

GriPet   8 февраля 2010 в 18:35

Как сделать, чтобы карта была скрыта по умолчанию?

Dragon27   8 февраля 2010 в 19:22

1. Как сделать, чтобы появлялось это окно с количеством патронов, если оно задано переменной x.
Когда юнита меняешь, тогда окно и показывай :) Можешь мультибордом, можешь DGUI заюзать (если получится)

2. Как сделать, чтобы когда потроны кончались, юнит не мог атаковать.
Проверять при атаке юнита, есть ли у него патроны (переменную), и если нет - отдавать приказ Stop.

3. Как передать все предметы от старого юнита, юниту с новым оружием.
Запомнить в массив item'ов и также циклом передать.

4. Как сделать, чтобы когда юнит с огнестрельным оружием (с окном оставшихся патронов) выкидывал оружие (для этого есть способность) или брал любое другое, пропадало окно с патронами.
Точно также, как и показывал, только наоборот.

Совет: изучи самые базовые основы редактора и программирования, прежде чем пытаться чего-то наворотить.

Dragon27   8 февраля 2010 в 19:25

1. Как сделать, чтобы ядовитое облако убивало, не оставляя 1хп.
Тут лучше другую способность заюзать ИМХО. Ну или можешь периодически проверять на баф и количество хитов :)

2. Как сделать, чтобы юниты разных цветов могли садиться на нейтральное транспортное средство, чтобы оно переходило под контроль севшего юнита.
Реализация разная может быть. Можно менять владельца по подхождению к машине на близкое расстояние, можно создать способность, действующую только на нейтралов, и навесить на неё событие.

Dragon27   8 февраля 2010 в 19:25

Как сделать, чтобы карта была скрыта по умолчанию?
В кампании что ли?

ghost   8 февраля 2010 в 20:31

Страницу поправил. Напомню:

На сайте и форуме PlayGround.ru запрещается:

5.Засорять темы бесполезными, неинформативными сообщениями, сообщениями, состоящими из беспорядочно повторяющихся символов, а также многократная отправка идентичных сообщений (флуд).

7.Отправка сообщений, содержащих текст, изображения и скрипты, могущие привести к некорректному отображению форума у других пользователей. В том числе использование ошибок сайта.

Sqeezeeee   9 февраля 2010 в 06:27

Dr.Manhattan
Ну вобщето такого в условии нету)
А ещё я имею ввиду что у меня ОДИНАКОВЫХ героев может быть много.
Есть ещё у каго идеи? Что один манхетан отвечает , я знаю здесь много людей хорошо знающих редактор.
Моя задумка как в знаменитой пошаговой стратегии Disciples (кто не знает там надо нанимать воинов,
и они при повышении уровня превращаются в более сильных и так много раз мне надо также. Соответственно
все воины - герои)

GriPet   9 февраля 2010 в 11:37

Нет. Чтобы нельзя было в игре поменять по умолчанию/разведана/открыта/скрыта, чтобы всегда скрыта была.
Я правда уже сам разобрался.

ГИППЕР МАППЕР   9 февраля 2010 в 16:07

мда экспертов выгнали ))))))))))) Dragon27
Свойства-> параметры карты> убирай галочку с "области карты частично видимы"

BioAleks   9 февраля 2010 в 16:41

Sqeezeeee
Записуй каждого юнита отдельно в переменную... или же если уж и игроков много на этих юнитов, тогда записуй каждому игроку одного такого юнита.

Ну вобщето такого в условии нету)
Условие есть такое кстати, просто немного по другому звучит

Kapa6acvlk   9 февраля 2010 в 18:35

2ALL
Я подчиняюсь требованиям правил форума, о которых написал _Vladislav_. больше не буду отвечать на вопросы, ответы на которые есть где-то в предыдущих темах, ведь новичку не составит проблемы перелистать и перечитать всего 4500 постов =))
А так я жив, и переиодически посещаю ресурс =))

simple.user   10 февраля 2010 в 14:18

Вопрос №1: DisBTN. Вставил я нестандартную иконку в файл, установил её к нужной способности в поля "Пиктограмма: используется" и "Пиктограмма: исследовать" да и был рад в надежде, что моих любимых квадратов зеленых не будет. Но смотрится все хорошо до тех пор, пока способность доступна для исследования или пока игрок не нажмет паузу. Вот тут-то и начинает вместо серой затемненной иконки красоваться во всей пышноте злосчастный зеленый квадратик. Также вместо другой иконки, которую я импортировал, лишь немного изменив цвет, при паузе/недоступности изучения выводится на экран затемненная иконка стандартного цвета. Как это исправляется?

Вопрос №2: Хочу сделать способность, типа блинка к юниту в доцке. Думал, что легко - просто взять любую целевую способность, установить нужные доп. цели, убрать все ненужные эффекты и триггером замутить что-то вроде "Боевая еденица - Move (Casting unit) instantly to (Position of (Target unit of ability being cast))". Это я сделал и все сработало, но по непонятным мне причинам, перезарядка/кулдаун, назначеные на 30/20/10 сек абсолютно не действуют и "блинкаться" можно бесконечно. Причем, перезарядка не производится лишь при наличии вышеописанной функции. А так, что хочешь в триггер кидай - все действовать будет. Но мне "что хочешь", ясное дело, не надо. При этом перезарядки других абилок продолжают свой цикл, как ни в чем не бывало. Пробовал делать так, чтобы для применения способности требовалось исследование, которое бы присваивалось на уровень "0" в течении 30/20/10 сек, но опять-таки зеленый квадрат. :D Пробовал делать на основе телепортации - остается синее поле вокруг героя; выглядит некрасиво, а у меня назначен на это абсолютно другой эффект. Sad, but true.

Sqeezeeee   10 февраля 2010 в 15:05

Ой блин ну кароче с триггерами у меня беда.
Сделайте плиз наработку мб это можно сделать без триггеров.
Один герой(например паладин) выучивает способность делает исследование и превращается в другого (горный король например)
это ладно можно спобность "Тёмный" но дальше , когда я хочу чтоб он превращался в другого (например анубарака) способности остаются со старого (в этом случае паладина) и способности "превращение" нету точнее есть, но в горного короля.
Если незя то григгерами. Но нароботку ПЛЗ.
ЗЫ люди кто непонял просто выложите нароботку с двойным превращением(трансформацией , апгрейдом).

Kapa6acvlk   10 февраля 2010 в 16:49

Reverse reality.
Ответ 1
во первых правильно ли ты пути прописал?
для BTN - ReplaceableTextures\CommandButtons\BTNxxx.BLP
для DISBTN - ReplaceableTextures\CommandButtonsDisabled\DISBTNxxx.BLP
во вторых, я никогда не встречал такого написания DisBTN, возможно регистр влияет на что-то напиши DISBTN
Ответ 2
у тебя в триггере или событие не верное, или в действиях что-то накосячил. скорее всего событие, стоит при котором абила включилась, но кулдайн еще не запустился, потом ты юнита перемещаешь, из-за этого идет отмена приказа каста, и кулдаун не запускается вообще.

Sqeezeeee
так он у тебя после юзания способности превращается, или после исследования??

Dr. Manhattan   10 февраля 2010 в 20:37

Sqeezeeee, условие называется unit comparison или, если говорить про тип героя, то unit-type comparison. Выглядит как Triggering unit равно Value или Unit-type of triggering unit равно пехотинец. Можно создать переменную типа "Боевая единица" и записать в нее твоего героя, а затем проверять на нем условие. Или можно создать массив и записать туда нескольких героев, и дальше уже с каждым из них отдельно работать.

Я в свое время тоже что-то такое делал, но у меня был один герой. Я для него создал массив типа integer и записывал туда уровни развития каждой из его способностей и уровень героя. Затем новому герою присваивал тот же уровень и поднимал уровни развития способностей до того же значения. Ах да, и еще делал массив для предметов и переносил их в инвентарь нового героя, причем в те ячейки инвентаря, в которых они находились у старого. Не знаю, как еще можно сделать.

Много у тебя героев-то?

ghost   10 февраля 2010 в 21:04

Kapa6acvlk

Речь идет о беспорядочно повторяющихся символах; отправка сообщений, больших изображений, которые могут привести к некорректному отображению форума, из за которых расширяется форум.

Ответ на вопрос флудом не является.

simple.user   10 февраля 2010 в 23:23

Kapa6acvlk
во первых правильно ли ты пути прописал?
Вопрос в том, куда их прописывать вообще. В поля "Пиктограмма: используется" и "Пиктограмма: исследовать" я записываю один путь, просто копированием значения поля. Но ведь это не влияет на отображение затемненной пиктограммы, разве нет? Если дисбтн поставить в одно из полей, то пиктограмма всегда будет темной. В ред. обьектов только три поля для пиктограммы и ни одно из них не спасает от зеленых квадратов при паузе. Куда прописывать? В игровой интерфейс?
в триггере или событие не верное
Вероятно, событие. Там есть пять событий со способностями: "Юнит начинает направлять способность", "Юнит начинает применять способность", ""Юнит прекращает применение способности", "Юнит приводит способность в действие", "Юнит завершает применение способности". Какое из них правильней всего использовать в данной ситуации? Из условий у меня стоит только имя способности, из действие - само перемещение и виз. эффекты.

Dragon27   10 февраля 2010 в 23:29

Свойства-> параметры карты> убирай галочку с "области карты частично видимы"
Это не мне :)

Вопрос в том, куда их прописывать вообще. В поля "Пиктограмма: используется" и "Пиктограмма: исследовать" я записываю один путь, просто копированием значения поля. Но ведь это не влияет на отображение затемненной пиктограммы, разве нет? Если дисбтн поставить в одно из полей, то пиктограмма всегда будет темной. В ред. обьектов только три поля для пиктограммы и ни одно из них не спасает от зеленых квадратов при паузе. Куда прописывать? В игровой интерфейс?
В менеджере импорта.
Классическая статья
xgm.ru/articles.php?name=wrong_import
советую изучить (там немного :))

Dragon27   10 февраля 2010 в 23:38

Вероятно, событие. Там есть пять событий со способностями: "Юнит начинает направлять способность", "Юнит начинает применять способность", ""Юнит прекращает применение способности", "Юнит приводит способность в действие", "Юнит завершает применение способности". Какое из них правильней всего использовать в данной ситуации? Из условий у меня стоит только имя способности, из действие - само перемещение и виз. эффекты.
Лучше всего использовать Starts the Effect of an Ability.
Извини - но русский вариант не знаю.

simple.user   10 февраля 2010 в 23:56

Так, с первым понятно. Статья помогла. Спасибо.

Со вторым:
Starts the Effect of an Ability - Если не ошибаюсь, это значит "Приводит способность в действие", а у меня именно это событие и стоит.

Dragon27   11 февраля 2010 в 01:14

Starts the Effect of an Ability - Если не ошибаюсь, это значит "Приводит способность в действие", а у меня именно это событие и стоит.
Попробуй все остальные. Если не поможет - тупо ставь wait короткий (если на триггерах делаешь, если на jass'е, конечно таймер :) )

Sqeezeeee   11 февраля 2010 в 07:24

Kapa6acvlk
у меня првращается герой после исследования и выучивания способности вместе(чтоб эти два условия были выполнены)
Манхетен
ну как много... 4 всего но с них последуйщих форм около 10-14.(ну кароче вобщем не больше 20)
это только одна расса, а надо четыре)
Поэтому хочу избежать всяческих триггеров. Тимболее я в них разбираюсь слабо и с переменными тоже.

simple.user   11 февраля 2010 в 19:06

Ой дурак, ой идиот...с событием "Юнит приводит способность в действие" , которое я сразу и ставил, благодаря ожиданию, теперь все работает, и перезарядка тоже. Я просто пытался делать способность на основе разных абилок и у той, которую тестировал последний раз банально забыл поставить перезарядку! Хах) Я нуп. :D

Спасибо, что помогли найти ошибки.

Dr. Manhattan   11 февраля 2010 в 19:13

Sqeezeeee, а со способностями что? При каждом превращении способности новые, или часть старых остается, а часть замещается?

GriPet   12 февраля 2010 в 21:30

У кого-нибудь была такая странная проблема:
Я создал заклинание, дал его герою, но почему-то как только я его использую, автоматически используется и другое заклинание ("Дух волка"). А когда использую дух волка, то автоматически используется мое заклинание.

Andreya   12 февраля 2010 в 22:40

Всем привет, знающие люди гляньте плиззз...
savepic.org/239424.htm

Вообщем задумка такая:при получении повреждения юниту восстанавливается какая-то часть от получаемого урона.
В триггере последнее действие отображает кол-во полученного урона, и оно всегда 0... Следовательно, юнит не восстанавливает здоровье... что не так?(

Sqeezeeee   13 февраля 2010 в 08:47

Манхетен
способности в том то и дело старые остаются, поэтому и неполучается больше 1 раза превратиться.
GriPet
У меня было такое , когда я поставил у одного героя две однотипные способности.
то есть ты "свою"способность создал на основе" духа волка" изменил там кое-что и поставил обе способности герою,
при таком условии и получается такая шняга. Создай свою способность на основе "дух воды" и всё.

Dr. Manhattan   13 февраля 2010 в 12:51

Sqeezeeee, без триггеров и переменных тут не получится. Придется с ними разбираться, иначе карту не сделаешь. Для каждого героя надо создать переменную-массив типа "целочисленная" на 6 ячеек. В первую ячейку записываешь индикатор исследований и способностей. Каждый раз, когда герой изучил способность или игрок-владелец этого героя провел исследование, этот индикатор увеличивается на 1. Это только для случая, когда каждый игрок имеет по одному герою. Когда индикатор становится равным 2, присваиваем ему значение 0 и меняем героя. Сначала во вторую ячейку массива записываем уровень героя, затем в оставшиеся 4 ячейки - уровень развития каждой способности. После этого героя удаляем, ставим на его место нового, и присваиваем ему уровень опыта и уровни развития способностей из этого массива. Еще нужно сделать отдельно массив для предметов из инвентаря. Тут достаточно одного массива на всех героев, тк замена героя и передача предметов происходит почти мгновенно, и вероятность, что два героя будут превращаться одновременно, исчезающе мала. Массив типа "тип предмета" на 6 ячеек. Циклом for записываешь в каждую ячейку массива тип предмета, находящегося в соответствующей ячейке инвентаря. Когда появляется новый герой, create (item) and give it to (last created unit) - для каждой ячейки инвентаря через цикл for.

Dragon27   13 февраля 2010 в 23:35

Всем привет, знающие люди гляньте плиззз...
savepic.org/239424.htm

Событие "Атакован" не пойдёт с функцией "Полученные повреждение". Есть событие "Получил повреждение"

Kapa6acvlk   14 февраля 2010 в 01:38

GriPet
У твоих заклинаний id приказа одинаковые.

Sqeezeeee
без триггеров не выйдет я думаю. придется с триггерами делать, благо ничего сложного. Если надумаешь, могу вкратце описать варианты.

Andreya
Замечание Dragon27 верно, НО событие о получении повреждений юнитом действительно ТОЛЬКО для юнитов предустановленных на карте. Для динамически создаваемых юнитов, такой способ не подойдет. Нужно для каждого твоего созданного юнита, также создавать триггер (в процессе игры), который будет завязан на твоего юнита, и в случае его гибели, будет уничтожен. В общем довольно сложная для новичка задача. Если не хочешь возится с JASS кодом, можешь поискать наработки на HW, благо их там очень много и подобного типа, я тоже встречал.

Dragon27   14 февраля 2010 в 12:04

Нужно для каждого твоего созданного юнита, также создавать триггер (в процессе игры), который будет завязан на твоего юнита, и в случае его гибели, будет уничтожен.
Если он новичок, то может сделать и на триггерах (создать один триггер, и добавлять к нему событие динамически - такое действие есть в gui). Правда так делать не рекомендуется.

RwC Private League   14 февраля 2010 в 14:21

2ГипперМаппер

Сори я в больнице лежал =\

Сча вот буду доделывать.

Подскажи какую тату делать ему на лбу, я забыл :D

2ALL

Мне нужна помощь. Я хочу обнаружить, сколько игроков в игре: вот допустим карта на 12 человек, набирается 6 и игра начинается. Как мне сосчитать и записать в переменную сколько человек сейчас в игре?

Я примерно хочу так:

Из 12 свободных мест вычесть только 6 имеющихся, тоесть те которые начали играть.
Затем уже из переменной, где подсчитано сколько человек было при старте игры вычитать по еденицы с каждого ливера.

Примено так: Установить переменную X: 12 - количество человек в игре.
Установить переменную X: X-1 когда игрок выходит из игры.

Буду очень благодарен если найдется решение этой проблемы.

GriPet   14 февраля 2010 в 15:28

Можно ли как-то добавить предмет в продажу зданию союзника? Триггер "Нейтральное здание - Add Item Type (to marketplace)" добавляет предмет только нейтрально-пассивым зданиям. Как добавить предмет магазину цвета союзника?

Dragon27   14 февраля 2010 в 16:48

Мне нужна помощь. Я хочу обнаружить, сколько игроков в игре: вот допустим карта на 12 человек, набирается 6 и игра начинается. Как мне сосчитать и записать в переменную сколько человек сейчас в игре?
Циклом. По условию Player Slot Status Comparison, Player slot status Equal to Is Playing

Установить переменную X: X-1 когда игрок выходит из игры.
событие Player - Leaves Game

BioAleks   14 февраля 2010 в 17:04

GriPet
Добавить условия.

ВСЕМ. С днём св.Валентина народ.

GriPet   14 февраля 2010 в 17:32

BioAleks
Какие? я пробовал Owner of triggering unit - Игрок 2(синий). Не помогло

JassMan   14 февраля 2010 в 17:52

Карабас подскажи оболочку (способность-пустышку) для способности у Сикера из Доты 1 скил (где указываешь на кого, и после этого ему прибавляется дамаг, но лишается возможности юзать магию)

Либо просто подскажи что бы подобрать такого чтоб 1-го юнита лишать возможности юзать магию (но однако, чтоб он всё же про-прежнему мог пользоваться предметами)

SaRoF   14 февраля 2010 в 17:57

Привет всем вижу тут много тем.. вобщем я думаю как и все здесь пытаюсь зделать свою карту и у меня очень часто возникают вопросы я уже был на многих сайтах качал наработки но всеравно мало знаю тригеры а Джас и подавно.Вобщем я пытаюсь зделать карту смесь доты и захвата флага чтобы за уничтожение базы пративника начислялось 5 очков к примеру а за флаг 1 очко ну и набираеш 10 очков=победа.. я понимаю что если использовать нестандартные скилы то баланс врядли будет но я стараюсь очень и сам уже просто убиваюсь об стену.. еще прошу прощения за мою безграмотность щас быстро пишу нет на все ето времени ) мой скайп туповатый но прозьба знающим ворлд едит уважаемым людям написать мне ник Sssooolllooo и Ssoolloo просто чтобы было легко искать так зарегался. писать в ету тему достаточно не удобно и я бы с удовольствие принял помощь людей и поучаствовал в какомнибудь проекте.. вот еще интересно когда я хотел зделать карту но не умел ничего кроме ланшафт делать ))) у меня было море идей по героям а когда начал делать половину немогу осуществить а половина просто в процесе производства первой половины вылетела из головы.Заранее спасибо ,и извеняюсь если глупости говорю.

SaRoF   14 февраля 2010 в 18:02

и еще вот сайты на которых я был xgm.ru ,wc3life.com и еще пару но я уже не помню. Читал там гайды но не особо понимаю что да как ) у меня постоянно возникает проблема со скилами так как использую как бы ето сказать "Последний созданый юнит" а выходит что герой например должен притягиватся к стреле все работает но когда спавнятся крипы на коридоре тригер переключается на крипа так как тот уже выходит последний созданый.. вобще логично но как ето испрвить можно зделать бараки чтобы бараки строили крипов Но тогда проблема исправлена на процентов 70% не больше вот моя карта и еще я скачал на комто сайте русификатор так намного проще но, язык же не все нужны знания мне бы примеры скилов доты я знаю как большинство делает но некоторые у меня вызывают ужасные затруднения я хочю чтобы карта была уникальна а у меня и времени ее делать нет ну вобщем жду помощи.

JassMan   14 февраля 2010 в 21:07

новичков дофига, хоть бы один нормальный jass'ep зашёл

SaRoF   14 февраля 2010 в 23:51

ты так говориш как будто без понимания обычных тригеров можно лезть в джазз.. пфф хотя разницы впринцыпе никакой в джазе функциональность больше как я понял но там все в ручную писать можно для етого нужен опыт работы и я думаю не малый.. в обычном построении тригеров.

Sqeezeeee   15 февраля 2010 в 11:18

Манхеттен
мм ты так все расписал... как бы тебе сказать спасибо конечно , но с этим я не разберусь.
Покачто отложу эту идею.

Dr. Manhattan   15 февраля 2010 в 15:13

Я вижу, что тут у некоторых знание триггеров на таком уровне, что бессмысленно что-либо объяснять. Я бы посоветовал просто самим полазить какое-то время в редакторе, почитать, какие там события есть, условия, действия, функции итд, поэксперементировать с ними, посмотреть, как что работает... Тут надо немножко английский знать и из программирования самые основы - что такое переменная, массив, цикл for и if/then/else - это можно в гугле посмотреть. Я, по крайней мере, в свое время так и разбирался.

New_Mapper   15 февраля 2010 в 16:04

Привет все, подскажите как добавить свою можель в редактор, я добавлял а у меня ее невидно и кагда запускаю карту толко тень персонажа,

И ещё как делать артифакти ну тио из 3 собиральсо в 1.

SaRoF   15 февраля 2010 в 17:06

Почитай предидущие темы как можно так ленится если тебе же надо )) а по поводу модели ты просто видимо не правельно импортировал или модель такая просто О_о я хз почитай в нете ето есть а вот живых примеров скилов то что мне нужно нет =( только небольшое количество нароботок нашел но они там баганутые поломаные какието особенно жалко было когда архив 50 скилов оказался испорчен =( с переменными чтото и половина тригеров красные.. + юнитов не зделали чтобы посмотреть ефект етих скилов.

SaRoF   15 февраля 2010 в 17:11

вот например я знаю как зделать стрелу мираны довольно легко НО если стрела летит и спавнятся мобы то никаких багов нет а у меня тригер тут же меняет цель на моба как етого избежать хелп плз оч нуна.. а даже если зделать чтобы мобы именно СТроились т.е каждые 30 сек приказать бараки тряляля построить стоко то мобов и направить их туда то То всеравно в замесе 2 гера пульнули скилы и выходит опять таки баг могут перепутатся скилы +(

JassMan   15 февраля 2010 в 19:12

SaRoF
нужен опыт работы и я думаю не малый.. в обычном построении тригеров.

согласен но на обычных триггерах у тебя как раз всегда и будут проблемы с какими-либо багами в роде того, который ты описал сейчас


да и еще народ не забываейте что вверху темы есть ссылка на FAQ в котором можно найти готовые ответы на часто задаваемые вопросы

те кто новички заглядывайте туда по-чаще, может чо найдете. . .

Да, и не ленитесь темы читать предыдущие, ибо, как кое-кто уже сказал тут, "это вам же надо" так что дерзайте . . .

SaRoF
по поводу скиллов — обращайся, я уже на многое способен

JassMan   15 февраля 2010 в 19:23

Кстати я тут способность Морлока, которую раньше скидывал, переделал в 1 триггер
Murloc Nightcrawler - Slark

Dr. Manhattan   15 февраля 2010 в 19:33

SaRoF, у тебя там, возможно, в триггерах для стрелы и распауна мобов используется одна и та же переменная. Если ты используешь цикл for, то это может быть integer A или integer B.

SaRoF   15 февраля 2010 в 20:26

Хм,Спасибо я впринцыпе догадывался.. т.е на каждого юнита нуна использовать 1 переменную.. просто я когда делал крипов я вобще их без переменных зделал т.е создать 5 юнитов таких то в центре области такой то и все.. а потом 2 тригер каждые 30 сек выходят мобы а каждые 30.1 сек приказать всем юнитам в области перейти нападая на противников туда то вот как я делал..

Dr. Manhattan   15 февраля 2010 в 20:38

Не совсем понимаю, о чем ты говоришь, но если у тебя в распауне мобов никакие переменные не используются, то мой совет не актуален. Кстати, вместо 2х триггеров можно было сделать 1: событие: каждые 30 seconds of game time, действие: создать 5 юнитов, следующее действие: приказать юнитам в области перейти.

JassMan   15 февраля 2010 в 20:39

SaRoF
можно всё в 1 триггер, если сделать через хеш таблицу
обрати внимание на наработку, которую я скинул. В ней есть нечто схожее от стрелы Мираны. В моём случае снарядом является не стрела, а сам герой.
и при столкновении с любым вражеским юнитов происходит какое-либо действие

New_Mapper   15 февраля 2010 в 21:58

как делать артифакти ну тио из 3 собиральсо в 1, ну подскажите плиз или дайте сылку на тему здесь, мне говорили что тут написано.

SaRoF   15 февраля 2010 в 22:29

короч делаеш так у тя какой русский или англ ? короч напишу на русский Событие-юнит получил артефакт условие юнит имеет такойто и такойто артефакт т.е например ты подобрал когти +6 домага условие у тебя есть корона +5 армора и там ветка +1 ко всем статам потом делаеш действие удалить артефакт 1 удалить артефакт 2 и удалить артефакт 3 3 действия и 4-тое создать Тот артефакт который тебе нужен т.е ты его уже должен сам зделать и только подставить в тригер.. От можно так же поставить любой спецефект на герое или вокруг него ну ето все такое уже.. если непонял то читай Тему 1-вую и в FAQ тоже может быть но я его не читал я видел ето в первой теме forums.playground.ru/warcraft_3_the_frozen_thron..

Dragon27   15 февраля 2010 в 22:29

Ребята, вы тут так пишете, хрен разберёшь весь этот поток мыслей. Разделяйте предложения точками, разбивайте на абзацы - удобней читать будет :)
В особенности это к Sarof'у относится.

как делать артифакти ну тио из 3 собиральсо в 1, ну подскажите плиз или дайте сылку на тему здесь, мне говорили что тут написано.
xgm.ru/forum/showthread.php?t=615
Вопрос 2.2 Как сделать скрещивание предметов? Как сделать складывание зарядов в предметах?
Читай триггер, разбирай, осмысливай.

SaRoF   15 февраля 2010 в 22:32

Кстати если кто может помочь ) я щас делаю скил (заранее прозьба не заниматся плагиатом) идея хорошая ) короч чтобы гер создавал вокруг себя камни я уже ето зделал Вот и чтобы камни если к ним подойди запихивали всех к герою как бы талкали я знаю как зделать все по отдельности т.е скил толчок а вот чтобы при приближении вражеского юнита двигать его к герою там и наносить домаг такое я себе не очень представляю как зделать и еще ето как бы ченлинг должен быть так что можите подсказать как зделать чтобы герой кастовал а не бегал туда сюда и камни по всюду ставились ?) типо если герой начинает двигатся То выключить тригер или как ?)Ну ето уже на крайний случай а другие варианты есть ?

Dragon27   15 февраля 2010 в 22:41

(заранее прозьба не заниматся плагиатом)
Не беспокойся - большинство всех твоих идей (если не все) уже давным-давно реализованы другими и в лучшем виде :). Запомни этот простой закон.

короч чтобы гер создавал вокруг себя камни я уже ето зделал Вот и чтобы камни если к ним подойди запихивали всех к герою как бы талкали я знаю как зделать все по отдельности т.е скил толчок а вот чтобы при приближении вражеского юнита двигать его к герою там и наносить домаг такое я себе не очень представляю как зделать и еще ето как бы ченлинг должен быть так что можите подсказать как зделать чтобы герой кастовал а не бегал туда сюда и камни по всюду ставились ?) типо если герой начинает двигатся То выключить тригер или как ?)Ну ето уже на крайний случай а другие варианты есть ?
Попробуй выразить мысли чётко, по отдельности. Можно списком.
Если нужен chanelling, используй в качестве дамми любое заклинание такого типа. Тот же Channel.

New_Mapper   15 февраля 2010 в 22:47

SaRoF
спс, я понял.
По поводу создания вещей была тему? Вообщем я немогу зделать: допустим кольцо регенирации маны допустим 100%. подскажите

SaRoF   15 февраля 2010 в 22:48

Dragon27 ,ну извини ) такой уж я человек.. темпераментный xD.Немогу остановится ,и еще карта у меня довольно интересная будет в конце.Я хочю чтобы она стала действительно популярной,не настолько как дота но все же.. Просто создать очередную карту поиграть в узком круге друзей и когда карта отстой,они тебе говорят что все круто ,чтобы не обидеть.Теперь поясняю что я пытаюсь зделать:Карта будет смесь Аос и Захват флага.Цель такова набрать 10 очков,очки набираются и за то и за то но один из путей много более долгий потому там сразу 5 очков ,а таскать флаги 1 очко за каждый. Так же думаю зделать кучу ловушек если человек имеет в инвинтаре флаг то они срабатывают велик риск умереть + вражеская команда достает вобщем не легок не тот,не иной путь.Если у кого то есть идеи прошу писать но ненужно скатывать чаров с доты я стараюсь чтобы все было не обыденно и уникально ).
На данный момент в моей карте есть 5 героев,совершенно не уравновешеных )),но по смыслу скилы связаны,кстати ето один из важных факторов т.к если захотите придумать героя и сложите его из кусочков которые обсолютно не клеятся - типо Стунера-хилера,то лутше тогда уже вобще ничего не придумывать) полный бред как по мне ) развичто скилы будут действительно интересны ).Я как бы максималист =_= походу дела ) потому что я играл много подобных доте карт и очень многие были глупые и не продуманые.Мне кажется что ланшафт действительно отвратительный пока что.Вобщем когда я зделаю 10 сбалансированых героев ,я ее выпущу в свет,потому что пока она даже на бета версию не тянет )).А пока только друзьям показываю какие изменения ,и иногда они меня наталкивают на идеи.Вобщем то вот и все) если ктото желает помочь мне с ланшафтом с радостью рад принять помощь. =)

New_Mapper   15 февраля 2010 в 22:49

О все по поводу кольца на реген маны я нашол, спс сненадо

SaRoF   15 февраля 2010 в 22:59

Я незнаю,я такого каста не видел.. придумал сам значит для меня уникально =) меня устраивает.А теперь по пунктам.
П.1-Каст chanelling я использовал за основу ульт жрицы луны из стандартных.
П.2-Герой кастует скил.Начинают появлятся камни в воздухе, с перерывом в 0.25 сек.
П.3-Герой закончил каст скила камни падают т.е установил высоту 0-0 и отобрал скил Сфинкс.
п.4-Камни Должны при приближении к ним из вне или внутреннего круга который они образовывают толкать всех к герою при етом наносить некий урон не очень большой.
п.5 Камни пропадают юниты могут спокойно передвигатся длится ето все должно около ну я гляну как по балансу будет я думаю с уроном там и временем я уж какнить сам разберусь) не совсем же дурак.Смысл в том чтобы заключить всех в тюрьму с етим самым героем (Големом) а там уж он их будет бить избивать и камнями посыпать ).На данный момент камни появляются но спускатся с неба не хотят )) а толкать кого-то темболее.

Dragon27   15 февраля 2010 в 23:18

Каст chanelling я использовал за основу ульт жрицы луны из стандартных.
Channel может использоваться множество раз (в разных юнитах). А если менять идентификатор в свойствах, то и у одного.

Герой кастует скил.Начинают появлятся камни в воздухе, с перерывом в 0.25 сек.
Обычный таймер, да какое-нибудь условие на окончание (по счётчику камней, например).
Это на jass'е. На gui даже не знаю как лучше сделать, там всё очень плохо:)
Сделай отдельный триггер и врубай/вырубай его, когда надо. Выдели группу триггеров в списке, так чтоб красиво было и понятно.

Камни Должны при приближении к ним из вне или внутреннего круга который они образовывают толкать всех к герою при етом наносить некий урон не очень большой.
Ну здесь можно на каждый камень триггер/таймер динамически создать, который будет отслеживать неприятелей и move'ать к позиции героя.
А вот на gui... Наверное придётся запоминать позиции всех камней в массив. И в отдельном триггере периодически проверять наличие вражин.
А можно не запоминать позиции, а присобачить все камни к какому-нибудь объекту с помощью хэш-таблицы. К таймеру, например.

Камни пропадают юниты могут спокойно передвигатся длится ето все должно около
Тоже таймер. Который по окончании подчистит всё это дело. И к нему камни привязать можно.
Не забудь делать какие-либо действия по смерти героя, если камни ещё не исчезли.

Ну это всё так, навскидочку. Я очень давно не делал чего-либо в WE.

Смысл в том чтобы заключить всех в тюрьму с етим самым героем (Големом) а там уж он их будет бить избивать и камнями посыпать )
Так они всегда движутся, или только, когда кого-нибудь найдут?

На данный момент камни появляются но спускатся с неба не хотят )) а толкать кого-то темболее.
То есть самые основы мы не знаем.
Значит занимаемся самообучением :)
xgm.ru/articles.php?section=wc3

New_Mapper   15 февраля 2010 в 23:50

Эх... ну подскажите неполучаеться с созданием артов я зделал так
Собитие: Боевая Еденица (Воин такойто) получает предмет.
Условие: (Воин такойто) выбран (владелец такогото предмета) равно да
Действие: Предмет - создать (такойто придем) в (пизиции воин такойто)

Нашол в 1 теме вот:
События - герой получает предмет
Условия - boolean: (Hero has item by type) (Triggering unit) has an item of type X(пример - боевые когти)==да and (Triggering unit) has an item of type Y(пример - сфера льда) =да
Действия - предмет-remove item carried by(Triggering init) of type X
предмет-remove item carried by(Triggering init) of type Y
(герой-create item for hero) create Z(новый предмет) and give it to (Triggering unit)


Но тут на англиском, а у меня русский я не совсем шарю

JassMan   16 февраля 2010 в 16:11

Блин зайдите в FAQ
ссылка на него в самом первом посте (это наверху, для особо одарённых уточняю)

SaRoF   16 февраля 2010 в 16:22

О_о нелюблю самообучение,и что значит незнаем основы ? Я же говорил что все ето читал может недостаточно внимательно.. я впринцыпе знал как зделать скил.. Но ето ж только теоретически.И я уже делал скил чтобы герой прыгал падал тоже самое и тут я просто сказал что у меня на данный момент вышло.Я конечно мало понимаю но как я уже писал кое в чем я разобрался, так что попрошу меня не посылать =)) на самообучение.А теперь список того что мне не ясно:
п.1 Как же все таки зделать чтобы тригер прикращал работу если герой перкратил пременять способность чтото вроде такого:Событие-юнит завершил применение способности. Условия-Способность такая то.. Действие выключить тригер(который создает камни)?
п.2 Создать динамический таймер ? Такого я еще не делал прозьба обяснить как типо каждые 0.01 сек если юнит в пределах 100 аое сопостовляемого юнит враг и т.д То двигать к герою ? кстати незнаю как ето зделать можно зделать групу но тогда оно будет двигать всех в групе а ето уже не верно както или нормально ?Я хз.
п.3 что такое Хеш таблица и с чем его едят если долго так обьяснять плз дай ссылку а то в темах я невижу ничего про такие таблицы а перечитывать сново каждую на ето очень много времени пойдет =(.

Спасибо! =).

JassMan   16 февраля 2010 в 17:03

мой тебе совет — учи jass
потому что то, что ты просишь на гуи геморно и без утечек не обойтись

во вторых на jasse намного удобнее пользоваться таймерами,
потому что к таймеру можно привязать какую-то функцию (действия)

вот простенький пример:

function Trig_Stone_Conditions takes nothing returns boolean
return GetSpellAbilityId()=='A000'
endfunction

function Damage_and_Move takes nothing returns nothing
local timer t=GetExpiredTimer()
local unit u=LoadUnitHandle(udg_Hash,GetHandleId(t),1)

и далее тут какие-то действия
endfunction

function Trig_Stone_Actions takes nothing returns nothing
local unit u=GetSpellAbilityUnit()
local timer t=CreateTimer()
call SaveUnitHandle(udg_Hash,GetHandleId(t),1,u)
call TimerStart(t,0.03,true,function Damage_and_Move)
set u=null
set t=null
endfunction

function InitTrig_Stone takes nothing returns nothing
set gg_trg_Stone=CreateTrigger()
call TriggerRegisterAnyUnitEventBJ(gg_trg_Stone,EVENT_PLAYER_UNIT_SPELL_EFFECT)
call TriggerAddCondition(gg_trg_Stone,Condition(function Trig_Stone_Conditions))
call TriggerAddAction(gg_trg_Stone,function Trig_Stone_Actions)
endfunction


этот таймер и вызывает функцию которая будет
выполнять наши действия с повтором 0.03 сек
если поставить true, тотаймер будет повторяться
а если false, то по истечению указанного периода будет однократно произведены действия

SaRoF   16 февраля 2010 в 17:07

=( как по мне так джазз ето геморно а ты говориш проще... там както понятнее а тут куча буковок ) и еще ето конечно глупо а ладно щас на том сайте почитаю ).. мне проще событие условие действие чем писать целый код,хотя кто знает нельзя говорить о чем либо пока сам не попробуеш ) ну лан буду щас учить =(.Век живи - век учись.

JassMan   16 февраля 2010 в 17:13

я тоже поначалу думал что не осилю jass, а теперь я понимаю что гуи триггеры это вообще бред
в джассе всё намного удобней и все перед лицом, не надо прыгать по триггерам

SaRoF   16 февраля 2010 в 17:15

мм )) прийдется задать глупый вопрос потому что там в начальных темах етого нет хех).Как написать етот код т.е убрать Событие
Условие
Действие
и чтобы появилось поле куда писать етот код же ).

JassMan   16 февраля 2010 в 17:24

В окне триггеров нажимаешь: правка/конвертировать в текст

SaRoF   16 февраля 2010 в 17:26

все нашел сори за флуд все все все учуС! =)

SaRoF   16 февраля 2010 в 17:58

=_= голова закипела (Boom!).Ето я сам точно не освою и как я был прав нужно ж сначала с просто тригерами разобратся я вобще не прочь напрячь таки свой мозг и выучить етот "язык" =) но тут мне реально нужен учитель а засорять тему я нехочю может мне кто написать свой скайп или меня просто добавить? ssoolloo and sssooolllooo как и писалось выше =_= потому что ето копец) я то могу установить переменную типо set unit=udg_unit и все такое но каждый раз залазить создавать новый тригер и н каждый таймер там или событие смортеть как ето будет выглядеть в джазз.. точно голова лопнет О_О.Как я уже писал выше мне нужен человек который обяснил бы мне как писать действие на етом джазе типо создать юнит или чтото подобное чтобы юнит чтолибо делал =( и т.д .

JassMan   16 февраля 2010 в 18:10

да причём тут обычные триггеры, не нужно задрачиваца в обычных чтоб в jasse работать
не говори бред
учи и всё . . ., там главное понять синтаксис как устроена структура кода и функций

начни своё обучение отсюда

В верху темы находятся все ссылки на параграфы данной темы:
Основанием Jass:
» Локальные переменные
» Условия и циклы в jass
» Функции в jass
» Устройство триггера в jass
» События с малым периодом
» Полярные координаты (ликбез)
» Оптимизация: утечки памяти

эти пункты тебе понадобятся для основы.

А дальше идут параграфы с RB (return bug) — они тебе не нужны ! ! ! ибо это старая система, которая в патче 1.24 не работает

читай только то, что я тебе показал


самое главное — не лениться, и почитать, это в твоих же интересах

BioAleks   16 февраля 2010 в 20:25

KiLLiNG_SPREEE
Тебе что, джассеров мало???
Вон Карабасик и другие люди есть.

Новички тоже стают когда-то профессионалами хоть и не все.

SaRoF   16 февраля 2010 в 20:28

xgm.ru/articles.php?name=jass_functions

Прочитал инфу в етой теме "Функции в jass" ,вроде все ясно т.е ничего особо сложного,а потом типо Пример того что мы выучили - огнемет очень легко лекгче некуда.. НИФИГА Ж НЕЯСНО может я тупой но.. =((( куча переменных он бы описывал события что происходят последовательно а то ж =( ну вобщем я расстроился. пример был типо с золотом а тут со спецефектами он бы делал и пример и нароботку одинаковые.. там циклы,переменные и функции но я не понимаю =(. xgm.ru/articles.php?do=getattach&id=167&.. -ссылка на нароботку.Щас ты скажеш что все елементарно но для меня неясно практически ничего.Сразу скажу что я понял.
п.1 переменные локальные и масивы ну тут легко.
п.2 takes и returns вроде тоже ясно но вот call UnitDamageTargetBJ( u2, u, 5, ATTACK_TYPE_HERO, DAMAGE_TYPE_FIRE ) вроде все ясно если перевести но он же ничего про ето не писал как я узнаю что мне нужно писать в действиях? вдруг каето ошибка что я не написал демедж тип или чтото в таком роде +_+ пока я прочитал только ети 3 статьи непонял как там работает анимация куча скобок вот етих.И если интигер +4 то чтото там происходит что такое ето Интигер т.е переменная i? ну вобщем можно подробно что как работает?

New_Mapper   16 февраля 2010 в 21:54

Да читал я ФАК, там на англиском триггера, а у меня на русском и я не пойму, вы че недоганяете,
Прошу вас написать 10 строчек и то вам впадлу!

З.Ы. У МЕНЯ РУССКИЙ ВОРЛД ЕДИТОР И ТРИГГЕРА К НЕМУ!!!!!!

Dragon27   16 февраля 2010 в 22:03

п.1 Как же все таки зделать чтобы тригер прикращал работу если герой перкратил пременять способность чтото вроде такого:Событие-юнит завершил применение способности. Условия-Способность такая то.. Действие выключить тригер(который создает камни)?
Да, Trigger - Turn Off. (лучше на jass'е, конечно :) )

п.2 Создать динамический таймер ? Такого я еще не делал прозьба обяснить как типо каждые 0.01 сек если юнит в пределах 100 аое сопостовляемого юнит враг и т.д То двигать к герою ? кстати незнаю как ето зделать можно зделать групу но тогда оно будет двигать всех в групе а ето уже не верно както или нормально ?Я хз.
Не динамический, а динамически, то есть создать объект во время игры. И потом удалить, чтоб не мешался :). Двигать - move. Вычисляешь координаты и двигаешь. С геометрией знаком? :)

п.3 что такое Хеш таблица и с чем его едят если долго так обьяснять плз дай ссылку а то в темах я невижу ничего про такие таблицы а перечитывать сново каждую на ето очень много времени пойдет =(.
Ассоциативный массив.
А времени, парень, тебе не должно быть жалко. Времени на изучение нужно кидать гораздо больше, чем тебе кажется. Это окупится многократно. Не ленись.

=( как по мне так джазз ето геморно а ты говориш проще... там както понятнее а тут куча буковок ) и еще ето конечно глупо а ладно щас на том сайте почитаю ).. мне проще событие условие действие чем писать целый код,хотя кто знает нельзя говорить о чем либо пока сам не попробуеш ) ну лан буду щас учить =(.Век живи - век учись.
Ещё раз повторю то, что ты уже должен знать. Gui - надстройка над jass. В конечном счёте все gui-действия преобразуются в jass-код. Только преобразуются криво, через многочисленные перевызовы, с утечками и прочей ерундой. Также некоторые jass-возможности через gui не доступны (более простые и эффективные). Писать сразу на jass и проще и эффективнее, если ты его хорошенько позадрачиваешь (что ты делать обязан, если хочешь чему-нибудь научиться).

начни своё обучение отсюда
Также советую обязательно прочитать статьи за авторством ADOLF, т.к. он там объясняет главные проблемы плохого кода и вообще интересные вещи, которые нормальный jass'ер обязан знать :)

там циклы,переменные и функции но я не понимаю =(
Учись читать чужой код. Не понимаешь - значит перечитывай, пока не поймёшь. Внимательно изучай отдельные куски кода, пока не поймёшь, зачем они, и что они вообще делают. Беглым прочтением на лету ты не поймёшь (маловат ышшо :) ).

call UnitDamageTargetBJ( u2, u, 5, ATTACK_TYPE_HERO, DAMAGE_TYPE_FIRE ) вроде все ясно если перевести но он же ничего про ето не писал
Сам должен догадываться, на блюдце тебе ничего не поднесут :)
Смотри в списках действий (в blizzard.j, common.j - изучи их обязательно, обзаведись утилитками, навроде jasscraft).

вдруг каето ошибка что я не написал демедж тип или чтото в таком роде
а ты не бойся. Ошибка - ищи где накосячил.

пока я прочитал только ети 3 статьи непонял как там работает анимация куча скобок вот етих.И если интигер +4 то чтото там происходит что такое ето Интигер т.е переменная i? ну вобщем можно подробно что как работает?
Ну это же основы программирования, обязан знать хоть немного! Integer - это целочисленная переменная.

New_Mapper   16 февраля 2010 в 22:38

Вообщем сори за флуд почти все получилось кроме этого:
Действие
Боевая единица - a-unit получает предмет
как это а-юнит, не смог найте, зделать, щделал так:
Действие
Боевая единица - (сюда указал героя который стоит на карте) получает предмет
И тоесть у меня вышло если ктото соьбирает ту комбинацию которую я там написал, то мой герой получит предмет, а не тот который собрал.
Подскажить что делать

Dragon27   16 февраля 2010 в 23:14

Так укажи triggering unit, ё-моё!

А в событии используй Generic Unit

JassMan   16 февраля 2010 в 23:52

читать статьи Адольфа ему еще далеко пусть основы учит))

у всех у кого русский варик (в общем кто этим отмазываеца)
удалите нахер все русификаторы и учите англ серавно вам понадобица кода на jass переходить будете

Так. . . на xgm не могу найти статьи про библиотеки и структуры, вообще хочу научица этому
знает кто статьи какие?

кстати я тут недавно задумывался а зачем нужно действие call DoNothing()

New_Mapper   16 февраля 2010 в 23:53

А что такое Адольф??

JassMan   16 февраля 2010 в 23:56

это не что а кто, это никнейм одного парня с форума xgm.ru, он статьи для варика пишет (в частности для jassa)

New_Mapper   17 февраля 2010 в 00:00

блин, неполучаеться что такое triggering unit, на русском плиз=(

New_Mapper   17 февраля 2010 в 00:01

Jass я читал, честно говоря нечего непонял)

JassMan   17 февраля 2010 в 00:05

это юнит который привел триггер в действие

New_Mapper   17 февраля 2010 в 08:10

Извените, но нечего неполучаеться, какое событие выбирать ну типо Боевая еденица и дальше чято?

BioAleks   17 февраля 2010 в 11:34

А кто мне подтвердит одну вещь всего-лишь... можно ли триггером (или через jass) поставить иммунитет юниту против ядов??? Чтобы на них не действовал навык "яд" или "отравленное оружие" и т.п.???
Мне ничего не надо, просто чтобы не лазить по редактору мне нужно подтверждение, если можно, то я сам сделаю.

BioAleks   17 февраля 2010 в 11:37

KiLLiNG_SPREEE
А точнее не просто юнит который привёл триггер в действие, а юнит по триггеру.

JassMan   17 февраля 2010 в 14:52

блин это и есть юнит который привел триггер в действие, не тупи

New_Mapper   17 февраля 2010 в 16:03

спс большое.
А как зделаь способность пасивный что бы он у противника броню палил??

BioAleks   17 февраля 2010 в 18:00

KiLLiNG_SPREEE
Я туплю??? А по моему ты тупишь... Есть разница между тем что "юнит который привёл триггер в действие" и "юнит по триггеру"???
По моему ты её не видишь.

BioAleks   17 февраля 2010 в 18:01

New_Mapper
Возьми способность от предмета "сфера проклятия".
Там есть пассивная уменьшающая броню (уберёшь с неё навык который ставит атаку на воздушных).

JassMan   17 февраля 2010 в 19:40

назови блин эту разницу

SaRoF   17 февраля 2010 в 20:06

New_Mapper я тебе советую отказатся от етой идеи.. Делай простенькую карту ,если ты даже на русском с обычными тригерами разобратся не можеш.Извини конечно но ето так тут же даже таланта впринцыпе ненада просто немного интелекта я понимаю я щас немогу сразу так расшарится в джазе,но если ты даже простейших вещей не понимаеш.. Просто ето не твое.

А теперь насчет помего обучения.Я короче щас на теме " Устройство триггера в jass " ,и вобщем то в начале темы говорится что если вы поняли все из предидущих тем,то вы уже не новичек.Я (Вроде) понял то что именно писалось но я всеравно не очень понимаю как работает пример и как мне использовать все ето в своих целях.Я теперь могу читать тригер написанный на джаз и большую чать понимаю,но чтобы свое написать я не представляю как.Можите посоветовать с чего вы начинали ?

SaRoF   17 февраля 2010 в 20:19

Хм а зачем нужен Интигер.. типо чтобы подставить под него ренж из скила.. длительность и т.д ? ну его както менять нада или его можно еще использовать для условий.Я видел подобное когда только начал делать свою карту нашел нароботку крюка бучера.Зделано обычным тригером но такое впечетление что на джазе Все состоит из переменных они там повсюду ) в условие в действие если переменная такаято стала 50 то установить такая = стоко то такая стокото и реально работает.Ех.. щас качаю джазз крафт етот буду смотреть что да как.

SaRoF   17 февраля 2010 в 20:31

ух ты) выглядит довольно функционально +)мб даже смогу ченить зделать О_О щас нада для моего скила таймеры еще ну дочитаю уже все если не пойму наверно еще раз читать буду +_+ а потом попробую что-то соорудить.Просто у меня такой паршивый характер что если ничего не получится раз с 5 ,то я наверняка кину ето дело,и ужасно бесит что я ето знаю нужно себя заставить.В моем характере самое ужасное ето лень,а вы говорите не ленится.Ех нада ж когданить напрягатся ради своих же целий хотя бы. =)

SaRoF   17 февраля 2010 в 21:38

"Jass New Gen Pack (NewGenWE) v.4c Скачать 3.33Mb
Новая надстройка для WE, дающая возможность использовать альтернативный компилятор.
Если Вы в JASS'e новичок, Вам это ни к чему.
Возможности:
Использование JassHelper (язык vJass);
Корректное отображение синтаксических ошибок в коде;
Встроеный Grimoire, позволяет снимать лимиты."

WTF? И зачем мне ведь я и есть новичек)) кстати чето у мну ниче не выходит свой код зделать.. пока что.. я посмотрел пример и т.д но чето всеравно тяжело расшарится че дальше то.. вышло что то вроде



function Trig_skill_2_zhivie_kamni_Conditions takes nothing returns boolean
if ( not ( GetSpellAbilityId() == 'A00Q' ) ) then
return false
endif
return true
endfunction

function Trig_skill_2_zhivie_kamni_Actions takes nothing returns nothing
endfunction

//===========================================================================
function InitTrig_skill_2_zhivie_kamni takes nothing returns nothing
set gg_trg_skill_2_zhivie_kamni = CreateTrigger( )
call TriggerRegisterUnitEvent( gg_trg_skill_2_zhivie_kamni, gg_unit_H008_0056, EVENT_UNIT_SPELL_CHANNEL )
call TriggerAddCondition( gg_trg_skill_2_zhivie_kamni, Condition( function Trig_skill_2_zhivie_kamni_Conditions ) )
call TriggerAddAction( gg_trg_skill_2_zhivie_kamni, function Trig_skill_2_zhivie_kamni_Actions )
local unit u1='h00D'
local timer t=GetExpiredTimer()
endfunction


function Trig_Stone_Actions takes nothing returns nothing
local unit u=GetSpellAbilityUnit()
local timer t=CreateTimer()
call TimerStart(t,0.03,true,)


а дальше я хз че делать и как делать +_+.

BioAleks   17 февраля 2010 в 22:35

KiLLiNG_SPREEE
Сам поймёшь может быть...

SaRoF   17 февраля 2010 в 22:37

Запускаю NewGenWE 2 файл запускает просто варик,а 1-вый NewGen WE или we.bat выдает ошибку worldeditor.. прямо пока писал ето сообщение на 5 раз просто запустилось О_О.+ хотел же добавить что local timer t=GetExpiredTimer() вызывает ошибку local unit u1='h00D' вызывает ошибку и еще 2-е каких то части кода щас уже не скажу. И еще програма просто запустила ворлд едитор О_о все понял теперь там есть функшн лист.И еще как мне таки зделать чтобы создавался нужный мне юнит ? вон я зделал переменную локал юнит u1='h00D' -узнал я всю ету хрень таким образом:зделал действие создать юнит выбрал камень ну то что мне нужно кроче,и конвентировал в текст оно выдало create 1,'h00D' и т.д я непомню уже. вобщем я щас буду кое ками делами другими заниматся напишите я завтра в 5 часов буду тут. Спасибо за помощь.

Самообучение ето зло >_

SaRoF   17 февраля 2010 в 23:07

Я вам скажу честно) мне до сих пор кажется,что обычные тригеры легче =( хоть я тепер и могу читать етот код,но практики мне нехватает,и команды я незнаю,а постоянно искать команды в етом листе ето конечно похоже на обычное построение тригера но.. видимо сильно уж я люблю русский язык) т.е ужасно не удобно и не привычно для меня...Я конечно понимаю после прочтения всех статей,что если использовать стандартные тригеры редактора - то будет куча как ето там называется ? Утечек ),но может и не будет если в конце на все переменный ставить =null ? =( мне кажется что путем исправления ошибок я бы уже зделал етот скилл в стандартном редакторе.НО вы же говорите не ленись,Это окупится многократно,ето того стоит, и т.д) вобщем я стараюсь,а вас тут нет пфф ну завтра будет новый день может у меня настроение не будет таким мрачным.И еще может вы все же дадите мне контактные данные типо скайпа ? или у вас его просто нет только ася ? просто я ее давным давно удалил +( если можно то дайте либо
Dragon27 либо KiLLiNG_SPREEE. Спасибо.

Кстати седня какой-то праздник что-то там с счастьем связаное. Так что всех поздравляю =) хы.
Конец сообщения.

Dragon27   18 февраля 2010 в 01:49

WTF? И зачем мне ведь я и есть новичек)) кстати чето у мну ниче не выходит свой код зделать.. пока что.. я посмотрел пример и т.д но чето всеравно тяжело расшарится че дальше то.. вышло что то вроде
В JNGP много возможностей (понапихано туда всяких свистелок-перделок) и удобней писать код (проверка синтаксиса и прочее). Скачай пока, а потом будешь разбираться потихоньку, если боишься :)
vJass - тоже дополнительная вещь. Не сказал бы, что так уж и нужна...

Самообучение ето зло >_
Самообучением придётся всю жизнь заниматься :)

но может и не будет если в конце на все переменный ставить =null ?
ммм.. тут тебе ещё рановато объяснять.
Но, в-общем, от некоторых проблем (и утечек) в gui хрен избавишься.

мне кажется что путем исправления ошибок я бы уже зделал етот скилл в стандартном редакторе.НО вы же говорите не ленись,Это окупится многократно,ето того стоит, и т.д) вобщем я стараюсь,а вас тут нет пфф ну завтра будет новый день может у меня настроение не будет таким мрачным.
Когда поднатореешь в jass'е и программировании - будешь жутко доволен, что пошёл по этому пути :)
Заглядывай на форум!
xgm.ru/forum/forumdisplay.php?f=40
можешь ещё близзардовский форум почитать (в библиотеке погляди)

JassMan   18 февраля 2010 в 02:42

Dragon27 у тя кстати какой ник там?

Kapa6acvlk   18 февраля 2010 в 14:20

KiLLiNG_SPREEE
Ты привел пример с таймерами, там грубый косяк, таймер нужно уничтожать после использования, или он создаст утечку. ты локальный таймер создал, и потом обнулил его, НО не уничтожил (call DestroyTimer(t))
SaRoF
JASS и vJASS в плане кода не одно и тоже. Мне больше по старинке привычнее на JASS рисовать, кому-то влом постоянно вызывать функции call'ом, закрывать if'ы и т.п. те люди для себя разработали несколько новых веток jass'а , такие как vJASS, cJASS может еще есть не знаю.
2ALL
Я вернулся, могу по отвечать на вопросы.

New_Mapper   18 февраля 2010 в 15:45

А мне вот надо: есть такой пассивный скил доспехи веры, я хочу что бы этот скил давал борню что он и делает но чтобы этот же скил сразу же и уменьшал брону противнику, как это зделать??

SaRoF   18 февраля 2010 в 17:25

Так вот =), знач все темы я прочел т.е
» Локальные переменные
» Условия и циклы в jass
» Функции в jass
» Устройство триггера в jass
» События с малым периодом
» Полярные координаты (ликбез)
» Оптимизация: утечки памяти

От вроде все как бы понятно но как я писал више до сих пор непонятно что делать мне =)).Знач так я вверху написал код,и вроде вот вы все,но никто не обратил внимания видимо вы всегда в самый низ спускаетесь да и по всем).щас я хочю создать скил но обсолютно незнаю с чего начать я установил переменные но каки ето они не правельные исправьте плз.Вот непонял я что делать с етим таймером и какая команда мне нужна чтобы делать те или иные действия.А пока я жду ответа я сам попробую что нибудь зделать поискать програме в вчера скачаной програме =_= ну вот и все впринцыпе.

SaRoF   18 февраля 2010 в 18:14

И еще у меня на данный момент обсолютно писиместические взгляды на перспективу использования джазза.Я просто немогу =( мне нужна куча примеров для вас ето легко.. еще бы ето как велосипед научился 1 раз и на всю жизнь ) и кажется что так просто,а другой не может научится и ему ето совсем не просто.Вот только ето в сотни раз я думаю сложнее чем крутить педали.Ето конечно несправедливо по отношению к вам но можно я буду делать как New_Mapper =))).Буду сам делать скил в gui переводить в джаз ,а вы его подправлять чтобы небыло утечек всяких.А то действительно сам же я щас не понимаю а вы просто даете ссылки почитай почитай.. я уже много всего почитал,и все что я из етого понял - так ето то что я ничего не понял XD ладно шучу ) просто мне нужно разобратся во всем етом как выбирать из всей етой кучи команд нужные мне и чтобы ето еще и работало.

New_Mapper   18 февраля 2010 в 20:25

по поводу скила жду ответа,
KiLLiNG_SPREEE
Ты говорил что Адольфа мне рано читать, почему же? как и увидил что это очень даже сильно похоже на язык, который используееться при написании серверов для ла2 тоесть, java-сервера ла2 в них много используеться jass или очень похожий на них с чем я и работал. Если я прав отпишись.

New_Mapper   18 февраля 2010 в 20:28

Разница толко в том, что в ла2 пишиться сервер тоесть чего сколько и когда, а тут эффекты, скилы и т.п.

SaRoF   18 февраля 2010 в 23:02

Я знаю про коментарий.Но я понимаю все ето,или почти все.Проблема совершенно не в том что я непонимаю.А в том что я немогу применить свои знания на деле потому что я незнаю команд вот как мне приказать чтобы герой при касте скила скил я установил уже делал войска типа камень?Я думаю что все что мне нужно ето пару примеров самых таких распростроненных скилов или скилов которые я щас делаю чтобы я мог использовать ето в дальнейшем конечно у меня есть нароботки с примерами но там же легко а как зделать то что мне нужно ? У меня local unit u=gg_unit_H008_0056 //т.е голем(кастер). local unit u2='h00D' //т.е камень. local timer t =GetExpiredTimer() local intiger i=1

установил все вот ети переменные а дейсвия какие делать ? если перевести из обычного gui то будет чтото вроде такого

set udg_p1 = GetUnitLoc(gg_unit_H008_0056)
set udg_i = 1
loop
exitwhen udg_i > 20
set udg_p = PolarProjectionBJ(udg_p1, 400.00, ( 36.00 * I2R(udg_i) ))
call ll AddSpecialEffectLocBJ( udg_p, "\"Abilities\\\\Spells\\\\Orc\\\\AncestralSpirit\\\\AncestralSpiritCaster.mdl\"" )
call CreateNUnitsAtLoc( 1, 'h00D', Player(0),udg_p1,400.00 ,( 36.00 * I2R(udg_i) ), bj_UNIT_FACING )
set udg_i = udg_i + 1
native DestroyEffect takes effect whichEffect returns nothing


тут куча ошибок я ето знаю можите таки подправить ? и мне ж нужно чтобы ето все происходило каждых 0.1 сек скажем =( т.е создавался камень.Вот т.е кастует ето все он секунд 1.5-2 появляются камни образуя круг.Все перестал кастовать камни остались и всех кто к ним подходит толкают внутрь в центр круга,и через 6 секунд например исчезают.

Dragon27   18 февраля 2010 в 23:54

Dragon27 у тя кстати какой ник там?
Догадайся :)

От вроде все как бы понятно но как я писал више до сих пор непонятно что делать мне =)).Знач так я вверху написал код,и вроде вот вы все,но никто не обратил внимания видимо вы всегда в самый низ спускаетесь да и по всем).щас я хочю создать скил но обсолютно незнаю с чего начать я установил переменные но каки ето они не правельные исправьте плз.Вот непонял я что делать с етим таймером и какая команда мне нужна чтобы делать те или иные действия.А пока я жду ответа я сам попробую что нибудь зделать поискать програме в вчера скачаной програме =_= ну вот и все впринцыпе.
Зайди на форум, в раздел jass или в академию, в темы со спеллами (на заказ, например), в раздел с картами (на самом сайте) пройдись по ссылкам в библиотеке jass, скачай там уже сделанные работы и изучай. Изучай чужие примеры. В статьях тоже такие есть.

Буду сам делать скил в gui переводить в джаз ,а вы его подправлять чтобы небыло утечек всяких.
Пиши сразу на jass. Исправление gui - малоосмысленное занятие.

Проблема совершенно не в том что я непонимаю.А в том что я немогу применить свои знания на деле потому что я незнаю команд вот как мне приказать чтобы герой при касте скила скил я установил уже делал войска типа камень?
Помнишь мы там много всякого интересного говорили про таймеры и динамически создаваемые триггеры? :)
Тут надо мышление менять. Надо учиться мысли вроде "сделать толкающие камни" преобразовывать в множество отдельных элементарных шагов.

Действия посмотри в JassCraft'е (и изучи blizzard.j и common.j). А глядя на реализацию BJ-функции у тебя не возникает идеи запустить нативную функцию напрямую?

SaRoF   19 февраля 2010 в 00:05

О_о у меня такое впечетление что ты читаеш между строк )) в негативном смысле ).Ты пропускаеш мимо ушей то что я пишу и говориш свое ).Я ужасно устал уже от етого самообучения точнее читания всяких статей и поисков информации можеш мне просто зделать пару скилов если не лень конечно и пояснить что где хотя я вроде уже и сам начал понимать что где ) ведь чужой код как я говорил я уже понимаю просто как бы фантазии зделать свой не хватает.Даже не то чтобы фантазии глупо както,а понимания просто... команд.. или ты настойчиво хочеш чтобы я сам все делал,а потом радовался что я ето зделал сам ?).

Kapa6acvlk   19 февраля 2010 в 00:59

KiLLiNG_SPREEE
Это так карта что ты несколько ночей делал, и пол ночи со мной беседовал? =)) Если да, то качать не буду, т.к. есть у мну =)

SaRoF
Ты говоришь, что уже понимаешь и читаешь язык, это уже хорошо. Теперь ставь цели.К примеру:
хочу создать скилл, герой бросает камень в точку, камень летит до тех пор пока не достигнет точки или пока не столкнется с неким юнитом. также камень может ломать деревья и другие разрушаемые декорации.
Реализовать можно разными путями. С чего бы начал ты?
По поводу твоего кода (что ты привел) в данном случа ды использовал голбальную переменную gg_unit_H008_0056 т.е. если это скилл, то работать он юудет только для юнита "находящегося" в этой переменной, следующая ошибка, не закрыт цикл (endloop), едем дальше не желательно использовать BJ функции, т.к. они кривые, т.е. PolarProjectionBJ надо заменить на набор других функций, так же стоило бы отказаться от использования точек при подсчетах смещения (ликбезе) т.к. это ускорит процесс работы и разгрузит процессор. Так, далее, не знаю что за функция ll, вызываемая в 6 строке, там же опять BJ, который спокойно заменяется на нативку. Далее опять убогая БЖ функция создания юнитов в точке, лучше опять же воспользоваться нативкой.
И наверное самая грубая ошибка, функция в jass вызывается call'ом, native не вызывает функцию, таже ты просто скпировал строку описания, вообще должно быть нечто такое:

local integer i
local effect e
set udg_p1 = GetUnitLoc(gg_unit_H008_0056)
loop
exitwhen i > 19
set udg_p = PolarProjectionBJ(udg_p1, 400.00, ( 36.00 * I2R(i) ))
set e = AddSpecialEffectLoc( "Abilities\\Spells\\Orc\\AncestralSpirit\\AncestralSpiritCaster.mdl", udg_p )
call CreateUnitAtLoc(Player(0), 'h00D', udg_p1, 0.00 )
set i = i + 1
call DestroyEffect(e)
endloop
set e = null

Но т.к. изначально код был слишком "сложным" и "ошибочным", я не могу гарантировать, что написал именно то, что ты пытался изобразить.

Dragon27   19 февраля 2010 в 01:36

ведь чужой код как я говорил я уже понимаю просто как бы фантазии зделать свой не хватает.
Чужой код - это и есть примеры того, как можно сделать спелл
Да вот хотя бы барахолка
xgm.ru/forum/showthread.php?t=10376
Чем тебе не примеры кода?
Правда советую тебе смотреть только новые спеллы (где-нибудь с сентября), так как старые сильно устарели, делались на кэше и ещё чёрти что.

Dragon27   19 февраля 2010 в 01:39

set udg_p = PolarProjectionBJ(udg_p1, 400.00, ( 36.00 * I2R(i) ))
БЖшная полярка очень кривая. Лучше сделать самому функцию.

SaRoF, советую тебе пока забить на свой спелл, и начать делать что-нибудь попроще (ну, например, просто кинуть камень).

JassMan   19 февраля 2010 в 09:09

Kapa6acvlk ну во первых тот скил который я те раньш показывал, я исправил на более реалистичный вариант, и во вторых добавил еще 2 скила, по сути дела оч похожие по своему общему коду друг на друга
К тому же 1 скил я сделал уже в ту ночь когда я тебе спать не давал своими вопросами))
А 2-ые два я сделал на следующие два дня когда у мну инет отключили и мне заняца нечем было))

Кстати я тут хотел освоиться как пользоваться структурами и библиотеками, есть ли статейка какая-нибудь?

Devilon   19 февраля 2010 в 10:11

Здарова всем я новенький в картостроении ( ну как новенький немного розобралса , но все равно ) У меня пара вопросов :
- Как зделать шоб герой мог носить только один меч , один щит , шлем...
- Как зделать квесты не попорядку
- Как зделать што когда герой берет баночку она складовалась в один слот и их становилось там все больше?
Зарание Спасибки)

JassMan   19 февраля 2010 в 10:23

иди в FAQ, ссылка наверху

Devilon   19 февраля 2010 в 13:15

Можна задать еще вопрос-
-Как делать переход между картами и штобы герой сохранялса ( скажыте плз )
=)
Спасибо зарание

Devilon   19 февраля 2010 в 13:20

И еще я начал создавать карту и можно я дам ету карту кому-то и он скажет плюсы и минусы , ну и норм карта или не) _)))

Devilon   19 февраля 2010 в 13:22

И у меня еще вопрос как зделать кнопку с надписю на которую мона нажать и шо-то произойдет)
спс)

JassMan   19 февраля 2010 в 13:45

про кнопки тоже есть в FAQ'е (ищи про диалог)
по поводу сохранения героя, об этом тебе еще слишком рано думать, ты должен уметь работать с кешем и для начала тебе придеца освоить триггеры в частности jass
но поначалу придеца пол годика поработать в обычных триггерах чтоб переходить на jass (текстовому программированию)

Devilon   19 февраля 2010 в 13:50

да мне роботать и роботать)))

Kapa6acvlk   19 февраля 2010 в 14:13

Dragon27
Мне влом было перерисовывать БЖ функцию в заведомо нерабочем коде, какой смысл от оптимизации, если это все равно лажа. Это ведь всего лишь пример, да и неохота заморачиваться просто так. Я указал на то, что БЖ лучше не использовать,как и точки при ликбезе. Человек сказал, что все понимает, думаю тогда нет ничего сложного.
Я когда-то тоже очень трудно отвыкал от GUI, когда начал jass изучать. Это самая большая проблема, как реализовать. Ты уже что-то понимаешь, но реализовать не можешь, т.к. не знаешь с чего начать. Тут надо помочь, НО НЕ сделать все за человека, а наставить его на путь истинный, намеками и наводками.

Devilon
По поводу ношения одного предмета, уже разбирался вопрос, и я даже наработку делал, аналогично было по квестам, так же делал наработку, про банки есть в FAQ. Посты должны сохраниться, если карты наработок не качаются, пиши я перезалью.

KiLLiNG_SPREEE
Уговорил =)) Гляну.

Devilon   19 февраля 2010 в 14:45

Kapa6acvlk
Слушай а можна я тебе скину карту и ты скажеш што подкоректировать?

Devilon   19 февраля 2010 в 17:16

Но все равно я должен знать насколько хорошо я научилса делать карты)))
Может я тебе скину)
плз)

JassMan   19 февраля 2010 в 17:29

делай чо хош)
но я предупредил о том что тебе могут сказать

Devilon   19 февраля 2010 в 17:46

Ладно тогда не надо проверять)

SaRoF   19 февраля 2010 в 19:07

Может глупо.. я ж вроде уже умнее,но у меня остался один ужасной раздражающий меня вопрос который я не мог и наверно сейчас несмогу решить )) как зделать респ мобов в лесу

(решил написать еще коечто впереди 2 буквы к потому что оно ето считает за мат)) я пол года искал де тут мат чтобы напичатать ето сообщение омг)

ккак в доте? XD я делал в гуи и вроде все правильно но не работало.. я делал так: Событие:Каждые 30 сек
Условие:юнит А=мертв и юнит Б= мертв и Юнит С=мертв
Действие:Создать юнит А
Создають юни Б - все в локации где необходимо.
Создать юнит С

Но ресались они только 1 раз ) ето связано с тем что оно не создавало юнитов конкретно таких а например юнит был там Троль 004 а оно создало уже троля 056?

И еще я забросил свой проект с флагом и големом так как ето стало сильно меня угнетать.Раньше мне было жутко интересно делать свою карту ,а как с вами пообщался все настроение пропало XD.Может я просто сильно ленивый,а вы с меня требуете) хотя мне же надо я ето все понимаю.Теперь задумка такая:Создать карту на 4 клана:
клан1 из четырех игроков
кланы 2,3,4 по 2 игрока.-Хотя я еще не определился может зделаю клан на клан но смысл чтобы те меж собой еще войну вели.

И клан 1 Защищается всеми возможными способами идет 3 коридора от первого к остальным кланам и на них естестно сражаются мобы.Цель первого клана продержатся определенное время а остальных Либо уничтожить 2 других клана,а потом 1 клан,либо наоборот,в любом случаее выгоднее будет сначала уничтожить Клан 1 так как там больше игроков.И героем зделать интересные скилы интересную местность интересных героев и арты и еще наверно зделаю чтото вроде боса при победе которого 1 клан может не дожидаясь 30-40 минут пока им нужно продержатся-победить.Ну вот в чем суть... впринцыпе ничего особо оригенального,но я надеюсь будет интересно.Вот придумал интересный скил чар типо фуриона Задумывался для обороны и спасения друзей )
Он поднимает руки и из них вырываются Ветви (ну как корни) и летят к ближайшим 2 деревьям.
После уже из деревьев вылетают 2.. РАСТЕНИЯ ) и сростаются таким образом блокируя дорогу.
Обсолютно пока не представляю как ето зделать может подскажите ?) и еще желательно чтобы союзники могли ходить через ети Заросли ).

На данный момент я делаю только ланшафт.
Все я пошел делать ланшафт +) хы.

SaRoF   19 февраля 2010 в 19:31

И еще у меня ужасной багнутый който NewGen WE Он блин врубается с раза 9-10 иза ошибок просто постоянно ошибка ворлд едита и щас когда карту сохранил вылетела ошибка я уж перепугался думал блин что все на смарку хотя я только ланшафт начал но просто сохраняюсь часто на всяк случай мало ли..

JassMan   19 февраля 2010 в 20:35

большинство реплик похожи на мысли в слух . . .

SaRoF   19 февраля 2010 в 20:51

мм разве ето ответ на мой вопрос? Я конечно не намекаю что ты мне что либо должен,но я вобще не понял к чему ето ? Я говорю то что думаю может так оно и есть + расказваю что бы мне хотел и жду вашей помощи и поддержи,а тут такой ответ О_О?! типо WTF?!

SaRoF   19 февраля 2010 в 21:37

Тут никого нет да ?.Есть вопрос надеюсь до 11-ти вы прийдете..

я незнаю как мне установить ближайшии 2 дерева. т.е чтобы функция выбрала 2 ближайших дерева и записала их значения что ето дерево равно O а второе дерево равно О2 и еще было бы очень кстати иначе каст не имеет смысла.. чтобы деревья были по разные стороны от персонажа ИЛИ еще лутше чтобы он их выбирал сам.. и скажите тогда плз какой скил взять как основу ?

Я понимаю что мне советовали скилы по легче зделать.. НО зачем же я тогда учил все ето? Чтобы сейчас делать еще легче чем я могу зделать на Гуи ? Я могу делать и тяжелые и понял что нужно зделать просто функции чтобы каждая последовательно вызывала другую и совершались действия простые мне наверно нужно выписать в блокнот основные действия ,а потом их просто от туда копировать в тригер изменяю переменные и т.д.Я щас немогу зделать скил потому что у меня ужасно лажит ета прога в которой записаны команды.

Dragon27   19 февраля 2010 в 22:29

Кстати я тут хотел освоиться как пользоваться структурами и библиотеками, есть ли статейка какая-нибудь?
в JNGP вроде есть мануал - поройся.
Или в темке про JNGP.

мм разве ето ответ на мой вопрос?
Ну не знаю, может тебе на спецкурсы по улучшению письменной речи ходить? :)
Попробуй сам читать то, что пишешь, прежде чем отсылать пост. Как-то у тебя поток сознания плохо организован. Резкие перескоки с одной мысли на другую, нечёткое выражение мыслей - всё это очень плохо читается (если вообще читается).

Я понимаю что мне советовали скилы по легче зделать.. НО зачем же я тогда учил все ето? Чтобы сейчас делать еще легче чем я могу зделать на Гуи ?
Чтобы достичь состояния сатори и стать сверхчеловеком, наверное.

Научись делать простые вещи. Ну вот сделай, например, снаряд, летящий по параболе в цель. Очень простое задание.

мне наверно нужно выписать в блокнот основные действия ,а потом их просто от туда копировать в тригер изменяю переменные и т.д.
в Jasscraft'е есть список действий. Зачем их копировать из блокнота, если можно копировать оттуда? В нём можно даже весь код выписывать и проверять синтаксис.

Я щас немогу зделать скил потому что у меня ужасно лажит ета прога в которой записаны команды.
А что с ней конкретно?

SaRoF   20 февраля 2010 в 10:51

я не про джазкрафт он то работает,но там же не все ясно я вот уже почти доделал каст чтобы оно создавало спецефект от чара до дерева 1 и дерева 2 что стоят по разные стороны персонажа когда он юзает етот каст - так яснее ? Вот и еще почему ты не прочитал Большой пост сверху ? там же все ясно ? что несяного то ? обьясни плз как зделать чтобы мобы ресались в определенной точке ето может и легко но то что я делал на гуи ,и то что ты не прочитал ибо оно немного громоздкое не работает видимо по причине которую я так же там описал!Есть другие варианты?.

Я в старой карте зделал что если юнит умирает и юнит равно троль такого то типа То портануть его в точку где он должен появится.А потом зделал еще 1 тригер который каждых 30 секунд если владелец равно нейтрально враждебный на месте разлагающегося юнита создать етот юнит ну вобщем ясно да ? Но ето тупо выглядит убил моба а он кудато портанулся +_+.

И еще очень важных 2 вопроса ответы на которые мне очень нужны.
Как обозначить область ? т.е есть значение точки а как зделать значение области скила ? например стун лины? там же походу дела призывается моб который кастует стун и исчезает или еще проще незнаю как ну и спецефект.
И как зделать мой скил который подробно очень описан в етом и постом немного выше.

Пожалуйста. И лагает у меня NewGen WE уже писал не 1 раз у всех так ? врубается с 10 раза и каждый раз ошибка ворлд едитора.

Ты говорил чтобы летела по пораболе ? ето что мне нужно зделать 2 интигер переменные Y=x квадрат и зделать цикл?

SaRoF   20 февраля 2010 в 11:30

и задовать етими переменными точку так получается ? ,и какой скил взять за основу ? например "Волна силы" ? Я вобщето не очень на данный момент представляю как ето зделать.. чтобы он создавал юнита например сюрикен ,и тот летел по пораболе..нужно двигать юнит туда куда он смотрит и постоянно менять его направление на точку параболы правильно ?

Dragon27   21 февраля 2010 в 13:49

обьясни плз как зделать чтобы мобы ресались в определенной точке
А что там проблемного? Создал группу (Unit Group), периодически (периодический триггер, или таймер) проверяешь - есть ли в группе, кто живой. К этой группе можешь приаттачить через хэштаблицу (ты ведь ей умеешь пользоваться?) все точки появления (Location), и потом по условиям (юнитов стало мало в группе) юнитов в этой точке создавать. Это самый простой способ.

Как обозначить область ? т.е есть значение точки а как зделать значение области скила ? например стун лины?
То есть? (я от твоих вопросов в ступор вхожу, непонятные какие-то -_-)

И как зделать мой скил который подробно очень описан в етом и постом немного выше.
Подробно и понятно опиши его в следующем посте.

Пожалуйста. И лагает у меня NewGen WE уже писал не 1 раз у всех так ? врубается с 10 раза и каждый раз ошибка ворлд едитора.
Нет, у меня не лагает. У тебя версия WE подходит?

Ты говорил чтобы летела по пораболе ? ето что мне нужно зделать 2 интигер переменные Y=x квадрат и зделать цикл?
Есть способность. Когда юнит применяет её на точке, от юнита прямо в точку по параболе (по всем законам Ньютона) летит камень. Когда врежется в землю, можешь там взрыв создать (или ещё что-нибудь). Задание ясно?
Могу подсказать, камень будет дамми-юнитом. Основную работу будет выполнять функция таймера (перемещать юнита, проверять расстояния, проч.). К таймеру приаттачишь все нужные числа.

чтобы он создавал юнита например сюрикен ,и тот летел по пораболе..нужно двигать юнит туда куда он смотрит и постоянно менять его направление на точку параболы правильно ?
Запомнишь (и приаттачишь к таймеру) координаты конечной точки, и в таймере перемещаешь юнита маленькими шажками к этой точке. Не забудь рассчитать макс. высоту и поднимать до неё до середины полёта, а после опускать.

JassMan   21 февраля 2010 в 14:23

а кто говорил что учится легко?)) — учись . . .
выполнишь это задание считай, что сможешь уже всё сам делать

Да кстати, я думаю ты возможно не понял значение слова "проттачить" — это связать переменные между функциями (я нашем случае через хеш-таблицы)
ибо все локальные переменные работают внутри функции в которой их создали, следовательно их надо сохранять в этой и загружать в другой функции

RwC Private League   21 февраля 2010 в 15:38

2ГипперМаппер

Сори я в больнице лежал =\

Сча вот буду доделывать.

Подскажи какую тату делать ему на лбу, я забыл :D

Teravisor   21 февраля 2010 в 22:14

Если поставить в свойствах игрока управляющий - "компьютер", то он на автомате юзает абилки стандартных героев. Но при этом юниты очень часто после выполнения приказа возвращаются к месту где они появились.
Если управляющий "нет" то нет ни того, ни другого.
А теперь вопрос: есть ли способ без прописывания всех абилок героев и юнитов через триггеры ручками чтобы было первое, но не было второго?

SaRoF   21 февраля 2010 в 22:15

+_+ Ужас...

я зделал код,а там ошибок не менее 20 я терь незнаю за какую голову хвататся О_О...
вроде исправил,а оно говорит что всеравно не так... копец.

А теперь насчет скила.Я вобще не понимаю что вам неясно ?Почему мне ясно ?конечно я придумал мне должно быть ясно , но мне кажется что написал я достаточно детально...

п.1 герой кастует скил-ИЗ его рук (КОНЕЧНОСТЕЙ) вылетают ветви лозы т.е из каждой руки как бы Вырастает прямо на руке очень стремительно удлиняясь растет Ветка. Что неясно ?
п.2 Ети "Ветки" что выросли из рук летят по прямой и если врезаются в дерево , то вростают туда как бы заражая его ясно ?
п.3 Спустя 0.5 как они вросли в деревья (в которые врезались) они начинают расти (уже из деревьев) по направлению к друг другу (т.е от дерева 1 до дерева 2) образую таким образом преграду (зобор)
п.4 желательно чтобы деревья он выбирал сам т.е кинул скил на одно, а потом на второе и после етого они начали срастатся.Так же можно поставить условие что если растояние меж деревьями более 1500 аое то ефекта не будет.

п.5 Через забор могут пробегать союзники ,но пративники вынуждены обойти преграду или подождать пока ефект кончится.


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

SaRoF   21 февраля 2010 в 22:34

Опять мысли в слух но.. я только что писал очень много всего ,после оказалось что я забыл автаризироватся поетому второй раз я врядли напишу то что хотел сказать но что вспомню смотрите ниже.

У меня очень большая проблема видимо я плохо учился =( но сейчас в коде у меня куча ошибок штук 20 и я не очень понимаю как их решить.Ошибки типа "Отстутствует название" самые распростроненные.. Вот код:


function Trig_skill_1suriken_Conditions takes nothing returns boolean
if ( not ( GetSpellAbilityId() == 'A001' ) ) then
return false
endif
return true
endfunction

//===========================================================================
function InitTrig_skill_1suriken takes nothing returns nothing
set gg_trg_skill_1suriken = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_skill_1suriken, EVENT_PLAYER_UNIT_SPELL_ENDCAST )
call TriggerAddCondition( gg_trg_skill_1suriken, Condition( function Trig_skill_1suriken_Conditions ) )
call TriggerAddAction( gg_trg_skill_1suriken_Actions, function Trig_skill_1suriken_Actions )
endfunction

function Trig_skill_1suriken_Actions takes nothing returns nothing
local unit c
local unit s
local point p
set c=GetSpellAbilityUnit()
set s='h002'
CreateGroup (takes group_shuriken returns nothing)
GroupAddUnit (takes group_shuriken,IsUnitInRange (100,100,))
call CreateNUnitsAtLocFacingLocBJ( 1, 'h002', GetOwningPlayer(udg_c), udg_p, udg_p )
call TriggerAddAction( gg_trg_skill_1_suriken, function Trig_skill_1suriken_point )
endfunction

function Trig_skill_1suriken_point takes nothing returns nothing
local unit c
local unit s
local point p
set c=GetSpellAbilityUnit()
set s='h002'
local intiger x
local intiger y
set y=x*x
loop
exitwhen x >24
set udg_p=OffsetLocation(GetUnitLoc(s, x, y)
call TriggerRegisterTimerEventPeriodic( gg_trg_, 0.04 )
endloop

function Trig_skill_1suriken_move takes nothing returns nothing
call SetUnitPositionLoc(s,udg_p)



И еще кое что.
"Как обозначить область ? т.е есть значение точки а как зделать значение области скила ? например стун лины?
То есть? (я от твоих вопросов в ступор вхожу, непонятные какие-то -_-)"

Я действительно неочень ясно выразился ,но если подумать логически я же спрашиваю про Область скила И привел пример Стун лины. Что неясно ? Я прошу сказать мне как выразить через переменную область заклинания.
Если до сих пор неясно привожу еще пример Область скила Dark Seer из доты.Там функция выбирает всех в ОБЛАСТИ и включает след функцию которая двигает всех в центр ОБЛАСТИ. мне нужно выразить область.Так яснее?


И еще я зделал совершенно не такой скил как вы хотеле я уже понял кажется но у меня както неясно наверно в тригере написано поетому я поясню как смогу:


кастер(асасин дреней) создает в точке (позиция кстер) Юнит (сюрикен) а потом я здела функцию которая должна задавать точку P которая =текущая позиция сюрикена и смещение на x,y где y=x*x т.е должна как бы получатся порабола но я незнаю я до сих пор не разобрался и чтото мне ето все в голову не лезет. т.е изменяется точка х от 1 до 10 может там больше нужно поставить ето нада глянуть в действии.

Я вобще не понимал почему вы просто не ответите на мой вопрос щас вы говорите что совершенно не понятно пишу.. но основную мысль понять можно я думаю.. незнаю я осознано пишу то что пишу ,а вам неясно.Ну я буду еще точнее Выражать свои мысли.И еще если вам тут чтото неясно сразу напишите чтобы я изложил яснее,а то я потом буду думать что вам просто нехочется что либо делать для меня или чтолибо подобное.

Аригато. =)

Teravisor   21 февраля 2010 в 22:45

2SaRoF
скилл с лозой:
заклинание берешь которое таргетит деревья(например кушать дерево...)
убираешь все эффекты с заклинания. ставишь анимацию этих корней.
делаешь триггер:
событие-применение способности
действие:
1)забить первое дерево в переменную и добавить спецэффект
2)выбрать второе дерево(например случайная декорация тип дерева в радиусе скока-то от этого)
3)забить второе дерево в переменную и добавить спецэффект
4)подождать 0.5
5)(вариант)спавнить что-то непроходимое на прямой между двумя деревьями. или создать миниюнит и чтобы он юзанул блокирующую способность между ними и исчез.

блокирующая сопособность должна иметь 2 зоны: большую и мелкую
блокирующая способность скорее всего должна по скрипту ставить столбики например и делать 2 зоны вокруг них. внешняя сохраняет состояние того кто входит если он не союзник, внутренняя откатывает его если он подошел. откат можно как загрузку из хэша с проставлением хп/маны измененных делать

союзники смогут пройти между столбиками и бить врагов, которые втыкнуть не могут почему их откатывает)))

работоспособность не гарантирована, проверок не было.
переменные нужны только чтобы найти другое дерево, забивать в переменные конечно не обязательно... мне просто так легче

насчет области: пример:
действие: set ZONE = (Region centered at (Position of (Triggering Unit) with size (1.00,2.00)))
сделано в GUI редактора, не кастомный скрипт...

ща мож с параболой придумаю

Teravisor   21 февраля 2010 в 23:08

2SaRoF
там не просто парабола должна быть. парабола не сходится, тобишь сюрикен твой не вернется к асасину(если я правильно понимаю он как бумеранг летит?)
таким образом разумно было бы сделать:
переменная X, переменная Y, переменная VX (скорость по X), переменная VY (скорость по Y)
константа AX(ускорение по X), константа AY(ускорение по Y) - могут быть просто числа
дано: точка бросания(x1,y1), точка цели(x2,y2)
а теперь вспоминаем физику, уравнение движения точки...
в начале броска: x=x1;y=y1;
каждый такт:x=x+vx;y=y+vy; vx=vx+ax; vy=vy+ay;
теперь считаем начальные скорости через ускорение и подбираем ускорение:
уравнение: x1+vx*T+ax*T^2=x2, y1+vy*T+ay*T^2=y2 t-время. ну собственно это ДВЕ параболы в общем виде для тех кто не знает) осталось выразить vy через ay и vx через ax и подставить ax,ay-константы. поделай сам математику, а?)
если правильно посчитаешь то будет тебе движение по дуге... в одну сторону. обратно надо симметрично отразить и пустить T в обратную сторону. в зависимости от ax и ay определяется выпуклость дуги. поэксперементируй лучше)
ах да, T-время за которое долетит бумеранг до туда. тоже надо будет подставить какое хочешь)
и да, координаты точки при этом где будет бумеранг будут вычисляться по формулам x=x1+vx*t+ax*t^2 y=аналогично с y где t уже текущее время полета в одну сторону. наращивается по периодическому эвенту

чувствую КПД твоей карты будет убойное если эти скилы будут спамить)))))

мож кто-нить ответит на мой простенький вопрос?(по сравнению с этими)(вопрос выше)

JassMan   21 февраля 2010 в 23:55

расскажите ему кто нибудь про порядок функций)) (а мне лень)

Dragon27   22 февраля 2010 в 13:52

А теперь вопрос: есть ли способ без прописывания всех абилок героев и юнитов через триггеры ручками чтобы было первое, но не было второго?
Там вроде в AI функция есть (Remove All Unit's Guard Positions). Запускай её периодически.

Тааак, тут гляжу Сароф очередную телегу накатал :)
Ща, соберусь с духом и попробую её прочитать...

Dragon27   22 февраля 2010 в 14:04

А теперь насчет скила.
Вот! Расписал чётко и аккуратно, сразу стало понятно, что ты от нас хочешь. Если ещё подправить речевой стиль, станет вообще здорово.

А пока, делай полёт по параболе. Ещё одна картинка-подсказка:
festival.1september.ru/articles/517395/Image4579..
Вот что нам от тебя требуется.

Код смотреть не буду :)
Делай то, что задано.

Я прошу сказать мне как выразить через переменную область заклинания.
А там такого нету? *с надеждой смотрит на список функций*
Ну тогда выдери точку заклинания (или координаты) и задай регион с радиусом.

SaRoF   22 февраля 2010 в 16:14

О_о ты что хочеш чтобы я установил высоту полёта ?.. потому что на картине репяна (festival.1september.ru/articles/517395/Image4579.jpg) мячик летит не вбок по параболе ,а вверх.

Как мне Выдрать ))))) точку?) "Ето мы не проходили,ето нам не задавали" парам пам пам )))

что не так в моем речевом стиле ?) Ты меня как личность я надеюсь пока подправить нехочеш ?)
Я уже зделал несколько скилов довольно простых, в той карте которую я делал до етого но они на гуи.. не стоит даже показывать?

JassMan   22 февраля 2010 в 16:34

подскажу, чтоб установить высоту юнита:
call SetUnitFlyHeight(какой юнит, какая высота, за какое время (сюда надо 0) )
ноль стоит, чтоб мгновенно изменялась высота

Так же, если тип передвижения юнита наземный, то нужно добавить и сразу же удалить юниту способность "превратиться в ворона":
call UnitAddAbility(какой юнит,'Amrf')
call UnitRemoveAbility(какой юнит,'Amrf')

Иначе SetUnitFlyHeight не будет работать

Dragon27   22 февраля 2010 в 18:12

О_о ты что хочеш чтобы я установил высоту полёта ?.. потому что на картине репяна (festival.1september.ru/articles/517395/Image4579.jpg) мячик летит не вбок по параболе ,а вверх.
А ты как думал? Чтоб катился по земле параболой?

Как мне Выдрать ))))) точку?) "Ето мы не проходили,ето нам не задавали" парам пам пам )))
Координаты каста?
constant native GetSpellTargetX takes nothing returns real
constant native GetSpellTargetY takes nothing returns real

что не так в моем речевом стиле ?)
Нечёткость, ( неструктурированность :) ) куча лишних нагромождений букв и знаков.

Ты меня как личность я надеюсь пока подправить нехочеш ?)
Было бы не плохо :)
И для тебя в том числе.

SaRoF   22 февраля 2010 в 18:16

ах да )) извините что не в одном сообщении просто мой мозг меня подводит.

спасибо Teravisor.Но мне не нужно чтобы бумеранг возваращался ) просто он его пустил тот полетел по параболе если врезался в чела ура домаг), не врезался не ура вы просто потритили ману) а сюрикен уничтожился.И еще вылетать он долежн как бы из первой "ресницы" параболы перетикать во вторую через точку графика 0 )) ну вобщем позиция кастера ето конец первой "реснички" и начало полета ну и по совместительству точка создания бумеранга который летит ) и когда он на позиции точки на которую мы нажали кастом он должен уничтожатся. ( ну и летит он туда по пораболе ясно?) я действительно неясно обяснил потому что сам не разобрался в том что я хочю О_О жуть какая прям как женщина) XD.

SaRoF   22 февраля 2010 в 18:24

емм а что по земле параболой не получится ?) ну вобщем смотри мое сообщение выше я думаю там яснее хотя вы такие люди странные все вам не ясно ) люди моего окружения понимают меня с полу слова.. (никаких намёков никого не обижаю).О_о-ето лишний знак ? и всякие там лыбы ? типо етой ) ? Что ж мне емоции не выражать, вы же тоже вставляете свои :) УлыБко :) . ех ладно. спасибо за установление полета мне нужно просто зделать чтобы скил создавал дамми юнита который летит мм по параболе а потом взрывается ?) я не думаю что ето сложно, но я бы с большим удовольствием зделал ето на гуи.

Еще раз извеняюсь если чем либо в етом или других сообщениях задел ваше самолюбие,сам знаю как оно. =
Аригато!

JassMan   22 февраля 2010 в 19:01

Ты когда пишешь, следи не подчёркиваются ли у тебя слова красной волной, если да то по возможности исправь, если там грамматическая ошибка.

SaRoF   22 февраля 2010 в 19:05

local intiger x "отсутствует зарезервырованый тип или тип индификатора" у меня такай ошибка на всех переменных ето связано с тем что у меня русский гуи ? все привильно,я проверил 2 раза с примером из статьи про переменные пример скачал 2 раз все сходится О_О а ему неправельно там правельно а у меня не правельно что не так ? даже если сразу после етого написать

local intiger x
set x = 0

вылетает еще 3 ошибки "отсутствует оператор кода" даже для

//=================================================

вобще глюк който.. // ето же коментарий что ето такое ?.

SaRoF   22 февраля 2010 в 19:36

Ни какой красной волной у меня нет,ничего не подчеркивается.Я думаю,по той причине что я просто так и пишу прямо сюда,а не копирую из ворда или чего подобного,а так же не имею ни каких программ для проверки грамматики. И неужели так уж непонятно,то что я пишу иза грамматики? Или вы просто не хотите читать,либо не вчитываетесь а поверхностно просматриваете написанное?

Удалил файлы русификатора проблема не пропала.Теперь гуи на англ. Кстати,следую из того что я прочел в текстовом документе русификатор перевел джазз на русский,и если ето так то может я верну руссификатор и буду писать скилы на русском.Я думаю ето черезвычайно удобно и очень кстати,НО как всегда есть большое но...
Если я ето зделаю то помощь от вас будет бесполезна ведь у вас все на англ. ,и гайды так же станут бесполезны,и примеры.. тоже самое.Так что я думаю стоит от етого отказатся.И спрашивать вас не желаете ли вы русифицировать свой ворлд едитор будет вобще не уместно и глупо :(.

жду ответа на вопрос заданный мной 22.02.10 19:05.

JassMan   22 февраля 2010 в 22:37

выложи весь код

Dragon27   22 февраля 2010 в 22:43

local intiger x "отсутствует зарезервырованый тип или тип индификатора" у меня такай ошибка на всех переменных ето связано с тем что у меня русский гуи ? все привильно,я проверил 2 раза с примером из статьи про переменные пример скачал 2 раз все сходится О_О а ему неправельно там правельно а у меня не правельно что не так ? даже если сразу после етого написать
integer

Я думаю,по той причине что я просто так и пишу прямо сюда,а не копирую из ворда или чего подобного,а так же не имею ни каких программ для проверки грамматики. И неужели так уж непонятно,то что я пишу иза грамматики? Или вы просто не хотите читать,либо не вчитываетесь а поверхностно просматриваете написанное?
Тяжело читать. Очень. Поэтому только поверхностный просмотр.
Почему, например, пробел после запятой отсутствует?

Грамматику учи. Это не так уж и сложно. Я, например, тоже программы для проверок не использую.
Выражать мысли понятно и без лишних нагромождений слов тоже учись - без этого нормально программировать ты не научишься.
Ты не в чате, и не в аське. У тебя есть время, чтобы проверить сообщение и грамотно выразить мысль.

Кстати,следую из того что я прочел в текстовом документе русификатор перевел джазз на русский,и если ето так то может я верну руссификатор и буду писать скилы на русском.Я думаю ето черезвычайно удобно и очень кстати,НО как всегда есть большое но...
омг о_О
Не надо ничего переводить на русский. "Только английский", запомни это, это аксиома.

вобще глюк който.. // ето же коментарий что ето такое ?.
исправишь все ошибки - ничего такого выскакивать не будет.


И делай параболой ПО ВЫСОТЕ. Обычный полёт камня, как в жизни :)

SaRoF   22 февраля 2010 в 22:51

О_о я непонял возможно ты говорил про редактор ? Тогда,я хочю сказать что у меня все еще каличный NGWE и я его удалил если дадите ссылку на нормальный буду писать в нем у меня версия 1.24с русский варкрафт.. я еле етот нашел не то что под свою версию.И он у меня постоянно вылетал с ошибкой "Извините за неудобства но.." и т.д отправьте отчет виндовс..

Teravisor   22 февраля 2010 в 23:46

2 Dragon27 спасибо за ответ.
2 SaRoF ну если не возвращался так и делай в одну сторону... формулы то все равно те же... конечно если помудрить, то через экспоненту лучше будет дуга, но кому оно надо)) проще конечно анимацию сюрикена сделать чтобы по дуге летело, но тогда нельзя будет поймать если раньше врежется во что-то

SaRoF   23 февраля 2010 в 00:01

NewGenWorldEditor Вылаетает с ошибками у меня версия варкрафта указана выше дайте ссылку на нормальный плз.

О_О ето очень злобно.Я имею ввиду то что иза моей безграмотной письмености страдает моя карта )).Тяжело читать... Не ну ты меня просто обидел =( , во всяких там гаренах люди пишут много безграмотней.Или ты критикуеш только тех кто просит у тебя помощи и обучения, вместо того чтобы просто помочь?) Если ето удобно и понятно тебе, тогда ты помогаеш так чтоли выходит? Как то ето егоистично. и мне интересно зачем давать юниту скил ворона когда можно просто поставить ему летающий вид с высотой полета на минимум а потом просто увеличивать.. я непонимаю как после создания такого "Гениального" скила я смогу делать все остальные свои задумки ? и ето говорилось выше правда я щас ненайду где сильно много всего ) но когда ты дал мне ето задание ты сказал, что если я смогу зделать ето то смогу зделать и все остальное.

JassMan   23 февраля 2010 в 01:31

о господи всё у тя не так, удали нахер варик (тока мапы сохрани), и поставь его заново, зайди в игру нажми кнопку Battle.net произойдёт обновление
и будет тебе щастье

Dragon27   23 февраля 2010 в 08:44

NewGenWorldEditor Вылаетает с ошибками у меня версия варкрафта указана выше дайте ссылку на нормальный плз.
Используй стандартный редактор.

О_О ето очень злобно.Я имею ввиду то что иза моей безграмотной письмености страдает моя карта )).Тяжело читать... Не ну ты меня просто обидел =( , во всяких там гаренах люди пишут много безграмотней.Или ты критикуеш только тех кто просит у тебя помощи и обучения, вместо того чтобы просто помочь?)
Чего тут злобного, не понимаю? Если ты не можешь научиться структурировать собственную речь - как ты можешь научиться структурировать код?

я непонимаю как после создания такого "Гениального" скила я смогу делать все остальные свои задумки ? и ето говорилось выше правда я щас ненайду где сильно много всего ) но когда ты дал мне ето задание ты сказал, что если я смогу зделать ето то смогу зделать и все остальное.
Ну, во-первых, это говорил не я :)
Во-вторых - сделай же ты в конце концов это простое задание (летающим юнита можешь сделать как хочешь). Твоя задача - понять как и зачем расположена каждая строчка кода, понять структуру и взаимодействие всех его частей. Все твои гениальные задумки решаются просто более усложнённой структурой кода, для создания которой нужно чётко понять хотя бы, как работает такой простейший код, который я тебе предложил создать.

JassMan   23 февраля 2010 в 15:53

можно ли как то обозначить группу, всмысле что можно поставить вместо "???"

function Group_Actions takes nothing returns nothing
local group g=
???
local unit u=LoadUnitHandle(udg_Hash,GetHandleId(g),1)
endfunction

function MyFunction takes nothing returns nothing
local unit u=GetSpellAbilityUnit()
local unit d
. . . //какие-то действия
set d=CreateUnit(GetOwningPlayer(u),'n000',0,0,0)
call GroupAddUnit(g,d)
. . .
call ForGroup(g,function Group_Actions)
call SaveUnitHandle(udg_Hash,GetHandleId(g),1,u)
endfunction

Dr. Manhattan   23 февраля 2010 в 20:35

можно ли как то обозначить группу, всмысле что можно поставить вместо "???"

Можно. GetUnitsInRectAll(GetEntireMapRect()), например, или просто null. В зависимости от того, что конкретно требуется. И в конце функции GroupActions можно добавить call DestroyGroup(g) во избежание утечек. Но в следующих функциях g придется создавать заново. Или создать один раз, но использовать глобальную переменную udg_g. Насколько я понимаю, локальная g существует только в пределах одной функции.

Dragon27   23 февраля 2010 в 20:40

можно ли как то обозначить группу, всмысле что можно поставить вместо "???"
в данном случае тебе null нужно поставить, ведь так? А можно вообще ничего не ставить, просто:
local group g

SaRoF   23 февраля 2010 в 21:08

Здравствуйте! в исконно русском значении етого слова :).
А теперь по делу.

Я прошу вас писать понятными мне терминами и давать чуть больше информации.Я постараюсь писать более конструктивно и грамматически правильно, хотя я почти не сомневаюсь что даже в этом сообщении будут найдены ошибки такими великими гениями как вы :).На данный момент, код я почти доделал, но еще немогу зделать чтобы камень взрывался хотя ето не тяжело.Вот что имеется на данный момент:

function Trig_skill_2_bomba_Actions takes nothing returns nothing
local integer x = 0
local integer y = 0
local unit u=GetSpellAbilityUnit()
local unit u2
set x=x+1
set y=y+1
call CreateUnitAtLoc (GetOwningPlayer(u),'h002',GetUnitLoc(u),0)
set u2=GetLastCreatedUnit()
loop
exitwhen x >24
set y=x*x
call TriggerRegisterTimerEventPeriodic( gg_Trig_skill_Move_bomb,0.01 )
endloop
endfunction

function Trig_skill_Move_bomb takes nothing returns nothing
call SetUnitFlyHeight(u2,y,0)
call SetUnitPositionLoc(u2, PolarProjectionBJ(GetUnitLoc(u2), 10.00, GetUnitFacing(u2)
endfunction

gg_Trig_skill_Move_bomb ошибка. Как решить ?) Глупо.. однако вроде правильно нужно писать gg_trig и переписывать название функции.И еще, если высоту можно задать только 1 числом, а для пораболы нужно 2 точки - то как мне зделать чтобы юнит летел по параболе ? Может мне просто повышать каждую 0.01 секунду высоту на 1, а когда высота станет достаточной например 200 или 300 то включить обратную функцию которая будет понижать высоту до 0, и выключить функцию 1 которая повышает. и когда высота становится 0 запустить 3-ю функцию которая уничтожит обьект создаст анимацию взрыва и нанесет урон всем в области из групы g, с условием что юниты враги кастера в области.Можно мне еще пару подсказок? Может я глуп,но ведь джазз не такая легкая штука =(.

JassMan   23 февраля 2010 в 21:33

вы чо реально не догоняете? как мне сохранить handle той группы которую я создал в выше указанном коде в нижней функции

вот пример
function Timer_Actions takes nothing returns nothing
local timer t=GetExpiredTimer()
local unit u=LoadUnitHandle(udg_Hash,GetHandleId(t),1)
endfunction

function MyFunction takes nothing returns nothing
local timer t=CreateTimer()
local unit u=GetSpellAbilityUnit()
. . . //какие-то действия
. . .
call SaveUnitHandle(udg_Hash,GetHandleId(t),1,u)
call TimerStart(t,0.03,true,function Timer_Actions)
endfunction

тоесть как видите загружаем(Load) мы юнита по категории с сыллкой на таймер, который был создан в нижней функции)

такую же фишку я хочу замутить с группой (предыдущий мой пост)

Dragon27   23 февраля 2010 в 21:47

вы чо реально не догоняете? как мне сохранить handle той группы которую я создал ниже
SaveGroupHandle.
Ты хочешь выдрать группу при проходу по ней For'ом?

Dr. Manhattan   23 февраля 2010 в 21:50

call SaveGroupHandle(udg_Hash,GetHandleId(t),1,g).
call LoadGroupHandle(udg_Hash,GetHandleId(t),1).

Просто писать надо так, чтобы все понимали, о чем ты спрашиваешь.

JassMan   23 февраля 2010 в 21:59

да . .лять Dr. Manhattan ты думаешь я до этого не додумался бы?
смотри на мой последний ответ, где я показал образец того что я хочу.
Где ты видишь чтоб я сохранял ссылку от таймера?

И как видишь я использую вверху handle от него чтоб загрузить юнита

такую же херню я хочу замутить с группой.

Рас функция запускается для действий группы, значить эту группу можн как то обозначит внутри этой функции

как в случае с таймерами

Неуежли не догоняете!!!??

Dr. Manhattan   23 февраля 2010 в 22:11

Именно об этом я и говорю. Надо ставить вопрос так, чтобы тебя сразу понимали. И чтоб потом по 10 раз не приходилось переспрашивать. И говори поспокойнее.

Рас функция запускается для действий группы, значить эту группу можн как то обозначит для этой группы

Без понятия, как это можно сделать.

JassMan   23 февраля 2010 в 22:17

SaRoF запомни раз и навсегда, создавать код надо с низу вверх, поясню:

Пример:

function Trig_a_Conditions takes nothing returns boolean
return GetSpellAbilityId()=='A000'
endfunction

function Timer_Actions takes nothing returns nothing
local timer t=GetExpiredTimer()
local unit u=LoadUnitHandle(udg_Hash,GetHandleId(t),1)
//какие-то действия с юнитом (не важно)
set t=null
set u=null
endfunction

function Trig_a_Actions takes nothing returns nothing
local unit u=GetSpellAbilityUnit()
local timer t=CreateTimer()
call SetUnitInvulnerable(u,true)
call SaveUnitHandle(udg_Hash,GetHandleId(t),1,u)
call TimerStart(t,0.01,true,function Timer_Actions)
// можно вставить еще какие-то действия (это опять же не важно)
set t=null
set u=null
endfunction

//========================================================
function InitTrig_a takes nothing returns nothing
set gg_trg_a=CreateTrigger()
call TriggerRegisterAnyUnitEventBJ(gg_trg_a,EVENT_PLAYER_UNIT_SPELL_EFFECT)
call TriggerAddCondition(gg_trg_a,Condition(function Trig_a_Conditions))
call TriggerAddAction(gg_trg_a,function Trig_a_Actions)
endfunction


Начнём с последней функции. Рассмотрим две последние строчки (перед endfunction):
для действия TriggerAddCondition (для условий) мы создали отдельную функцию, в которой эти усдовия и проверяются.
Как видишь, эта строка ссылается на функцию Trig_a_Conditions, а это значит что эта функция должна быть выше чем та, которая её вызывает.

Тоже самое и с функцией Trig_a_Actions — она должна быть выше того места откуда её вызвали, но должна быть ниже функций с проверками, тоесть как бы те действия, которые стоят в Trig_a_Actions, должны выполняться только
при выполнении условий поставленные только для функции неё самой.

Аналогично и с таймерами.
При запуске таймера ты создаёшь функцию для выполнения каких-то действия по истечению этого таймера.
И естественно она должна быть выше того места откуда эту функцию вызвали.

В общем всегда обращай внимание на порядок функции.
И самое главное, это то что ниже функции InitTrig_a ничего быть не может, и не должно быть.

Dr. Manhattan   23 февраля 2010 в 22:18

Не совсем понял, как можно функцию запустить от дейсвий группы. Если функция является действием динамически создаваемого триггера, то для группы событий нет. Если функция запускается в теле другой функции, то группу можно задать в качестве аргумента.

Может, имеет смысл весь код выложить, чтобы вопросов не возникало?

Dragon27   23 февраля 2010 в 22:18

Рас функция запускается для действий группы, значить эту группу можн как то обозначит для этой группы
Аналогичных таймеру функций нету. Зачем тебе нужно выбирать группу в for'е?

JassMan   23 февраля 2010 в 22:21

По-моему я нормально задал вопрос, даже показал образец того что хочу, вон Dragon27 сразу меня понял

проехали, я прост хотел узнать можно ли замутить такую фишку как с таймерами.
Если б это было возможно было бы очень удобно

Dragon27   23 февраля 2010 в 22:23

Еслиб это было возможно было бы очень удобно
Чтоб был какой-нибудь объект для присобачивания на него чего хочешь?
Ну не знаю, без этого вполне можно обойтись.

SaRoF   23 февраля 2010 в 22:55

на счет того где какие функции стоят понял.А с кодом кто поможет или как ? я понимаю что вы хотите что бы я сам или вам просто лень,потому как я вижу вы тут свои проблемы обсуждаете, но может удилите немного времени? =(

JassMan   23 февраля 2010 в 23:52

Вот теперь выпиши сюда свой код в правильном порядке функций

SaRoF   24 февраля 2010 в 00:01

function Trig_skill_2_bomba_Conditions takes nothing returns boolean
if ( not ( GetSpellAbilityId() == 'A002' ) ) then
return false
endif
return true
endfunction

function Trig_skill_Move_bomb takes nothing returns nothing
call SetUnitFlyHeight(u2,y,0) //строка 40
call SetUnitPositionLoc(u2, PolarProjectionBJ(GetUnitLoc(u2), 10.00, GetUnitFacing(u2) //строка 41
endfunction

function Trig_skill_2_bomba_Actions takes nothing returns nothing
local integer x = 0
local integer y = 0
local unit u=GetSpellAbilityUnit()
local unit u2
set x=x+1
set y=y+1
call CreateUnitAtLoc (GetOwningPlayer(u),'h002',GetUnitLoc(u),0)
set u2=GetLastCreatedUnit()
loop
exitwhen x >24
set y=x*x
call TriggerRegisterTimerEventPeriodic( gg_Trig_skill_Move_bomb,0.01 ) //строка 56
endloop
endfunction

//===========================================================================
function InitTrig_skill_2_bomba takes nothing returns nothing
set gg_trg_skill_2_bomba = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_skill_2_bomba, EVENT_PLAYER_UNIT_SPELL_CAST )
call TriggerAddCondition( gg_trg_skill_2_bomba, Condition( function Trig_skill_2_bomba_Conditions ) )
call TriggerAddAction( gg_trg_skill_2_bomba, function Trig_skill_2_bomba_Actions )
endfunction


Условие-действия от последнего к первому-запуск первого действия.Верно?

В строках 40,41 и 56 ошибки типа "отсутствует название".

Dr. Manhattan   24 февраля 2010 в 00:07

По-моему я нормально задал вопрос, даже показал образец того что хочу, вон Dragon27 сразу меня понял

Dragon27 тебя с третьего раза понял. Да и вообще, люди тебе помочь хотят, а ты ругаешься. Ладно, прекращаем оффтоп.

JassMan   24 февраля 2010 в 00:26

Не так сделал. Во-первых у тебя нету триггера gg_Trig_skill_Move_bomb.
То что ты создал функцию и назвал её gg_Trig_skill_Move_bomb, не означает, что ты создал триггер. Поэтому и выдавало ошибки.

лучше вообще не использовать периодическое событие, для таких случаев существуют таймеры:

function Trig_skill_2_bomba_Conditions takes nothing returns boolean
return GetSpellAbilityId()=='A002'
endfunction

function Move_bomb takes nothing returns nothing
. . .
. . .
endfunction

function Trig_skill_2_bomba_Actions takes nothing returns nothing
local timer t=CreateTimer()
. . .
. . .
call TimerStart(t,0.01,true,function Move_bomb)
endfunction

//===========================================================================
function InitTrig_skill_2_bomba takes nothing returns nothing
set gg_trg_skill_2_bomba = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_skill_2_bomba, EVENT_PLAYER_UNIT_SPELL_EFFECT)
call TriggerAddCondition( gg_trg_skill_2_bomba, Condition( function Trig_skill_2_bomba_Conditions ) )
call TriggerAddAction( gg_trg_skill_2_bomba, function Trig_skill_2_bomba_Actions )
endfunction


Вот оболочка, действия сам вставляй.
Кстати обрати внимание как упрощена 1-ая функция

Dr. Manhattan   24 февраля 2010 в 00:26

SaRoF, фигня у тебя, а не код. По-моему, ты вообще не вдавался в механизм его работы, когда все это писал. Попробуй прочитать его и разобраться как он работает, и ты поймешь, что он не должен работать в принципе.

Помимо общей идеи, есть несколько синтаксических ошибок, но от того, что ты их исправишь, триггер не станет выдавать желаемый результат. Максимум, на что он будет способен - это создать юнита типа h002 в точке GetUnitLoc(u).

1) Переменные u2 и y в функции Trig_skill_Move_bomb не объявлялись, поэтому "отсутствует название". Эти переменные создаются при запуске функции Trig_skill_2_bomba_Actions, уничтожаются после ее выполнения и нигде больше не используются.

2) Создавать юнита можно прямо при объявлении переменной: local unit u2=CreateUnitAtLoc (GetOwningPlayer(u),'h002',GetUnitLoc(u),0). Это так, мелочь, но возьми на заметку.

3) Триггера gg_Trig_skill_Move_bomb ты тоже не создавал, поэтому "отсутствует название". Ты пытаешься добавить событие к несуществующему триггеру.

JassMan   24 февраля 2010 в 00:36

Забавно когда я учился jass'у мне никто с таким рвением не помогал))

Радуйся что тебе помогают сразу 3 человека, хорошо знающих своё дело.

А у меня был только один Учитель — Kapa6acvlk ™ ))

Dr. Manhattan   24 февраля 2010 в 00:37

Кстати, добивает траектория полета снаряда через set y=x*x. Как он, по-твоему, полетит?

SaRoF   24 февраля 2010 в 01:01

я знаю что траектория неверная и полетит он с наростащими рывками, но то что говориш ты добивает меня.Я знаю что не код у меня, а "фигня" но говорить ето прямо в лицо.. Спасибо короче обрадовал ппс.Я только учусь, а тут такие притензии рвение ето хорошо и спасибо конечно но прозьба выбирать слова помягчее я ведь тоже вроде человек, а не камень.Да у меня не получается, и да я согласен что я много не понимаю.Почему сразу фигня и сразу вот так все в лицо кидать? другие мои 2 наставника говорят все прямо,ясно,но не обидно.

А вобще я говорил про траекторию выше нужно просто читать иногда.Цитирую "Может мне просто повышать каждую 0.01 секунду высоту на 1, а когда высота станет достаточной например 200 или 300 то включить обратную функцию которая будет понижать высоту до 0, и выключить функцию 1 которая повышает"

Dragon27   24 февраля 2010 в 01:43

Просто тупо условие - расстояние до цели меньше половины - повышать. Больше или равно - понижать.

JassMan   24 февраля 2010 в 02:02

Dragon27 вынужден с тобой не согласиться, тупо ставить сравнение расстояния — не годиться, ибо на юнита могут повлиять внешние факторы и сместить его.

Допустим я возьму скилл (другой; и предположим, есть такой), который притягивает всех юнитов через пол мапы (к примеру)
ты притянешь этого дамми юнита, и тот будет продолжать двигаться, (возможно уже в другую сторону, зависит от структуры триггеров) и всё время расстояние будет не таким как должно быть.

Короче скажу прямо, лучше ставить по количеству срабатывания таймера

Допустим на каждый период передвигаем юнита на 25, следовательно, чтоб пролететь расстояние 600, нужно повторить это 24 раза.

И уже не зависимо долетел юнит до точки или нет, останавливать движение.
А уж долетит или не долетит, это зависит от внешних факторов.
Но эти внешние факторы можно избежать, если юнит будет обладать скилом "москиты" ('Aloc'), и тогда на него не смогут повлиять многие скилы, или тупо ставить фильтрацию на этого юнита во всех скиллах. Это уже по желанию автора

JassMan   24 февраля 2010 в 02:08

Так, объяснит мне кто-нибудь?
local real a=bj_RADTODEG*Atan2(GetUnitY(u)-GetUnitY(d),GetUnitX(u)-GetUnitX(d))

что за херня, постоянно выдает разный угол

допустим a=15

на одно срабатывание он дает 15, а на другое 195, а потом снова 15 и так далее,
тоесть он каждый раз чередует угол с (углом+180).

Чо за херня как быть?

Dr. Manhattan   24 февраля 2010 в 08:06

SaRoF
24.02.10 01:01

Траектория полета снаряда задается через параметр в виде z=-at^2, r=vt, где z и r – координаты по вертикали и по горизонтали соответственно, a – ускоение свободного падения пополам, v – скорость по горизонтали. В программе время t преобразуется в индекс i, который ты с каждым шагом увеличиваешь на 1 (set i=i+1). А то что у тебя, даже если забыть про то, что это вообще не работает, а рассмотреть только идею, - это парабола с ветками, обращенными вверх и с вершиной в точке расположения triggering unit. Он у тебя очень высоко вверх улетит по такой траектории, а вниз не вернется. Дам тебе добрый совет – забудь про снаряд и сделай для начала просто движение юнита по прямой с постоянной скоростью. Лучше даже движение не в любом направлении, а только по x.

Дело не в том, что ты плохо знаешь JASS, а в том, что логики нет в твоих действиях. Я JASS начал изучать тогда же, когда и ты, я его вообще не знал до того, как KiLLiNG_SPREEE выложил ссылку на статью в этой теме. Просто прочитай свой код и напиши, как он работает. Про каждую строчку напиши, что она делает и с какой целью создавалась. А когда поймешь, что писать не о чем, придумай, какие действия надо совершить, чтобы заставить снаряд лететь (или заставить юнита двигаться, если ты решишь последовать моему доброму совету), и как это реализовать в JASSе. Вот тогда у тебя появятся вопросы, на которые стоит отвечать.

Я не думаю, что я слишком резок. Я просто хочу помочь. А для этого нужно объяснить тебе, что ты занимаешься ерундой. И не надо так реагировать, ты же мужик все-таки.

Teravisor   24 февраля 2010 в 09:42

И нафига париться с jass если GUI дает кучу функций...? и париться не надо как их писать...? GUI+local variable(от jassа) рулят... КПД чтоли выше? да и на GUI триггеры для масс баталий не особо тормозили... P.S. при умении даже триггеры в GUI не будут слишком большими и не надо будет их разбивать на тучу мелких функций. P.P.S. jass нужен для тех, кто умеет программировать, а не для всех ;)

SaRoF   24 февраля 2010 в 13:06

"Я не думаю, что я слишком резок. Я просто хочу помочь. А для этого нужно объяснить тебе, что ты занимаешься ерундой. И не надо так реагировать, ты же мужик все-таки."

У меня вчера было плохое настроение т.к я отравился... собственно почему я сейчас дома и сижу.

Далее:формул всех етих я незнал так что ничего по траектории я зделать не мог а вы критиковали.
Так может вы все таки четко сказать что делать ? Нужно в цикле запустить таймер t который нужно так же и создать в начале 1-вой функции и заставить етот таймер выходит каждые 0.01 секнду включать функцию, которая в свою очередь будет устанавливать высоту и скорость полета, но скорость полета должна быть одинаковой просто написать 10 например и все.Щас я попробую что-то такое зделать и напишу ниже.

SaRoF   24 февраля 2010 в 13:40

все осталось почти так же как было:

function Trig_skill_Move_bomb takes nothing returns nothing
local integer y = 1
local integer x = 1
call SetUnitFlyHeight(u2,0,0)
call SetUnitPositionLoc(u2, PolarProjectionBJ(GetUnitLoc(u2), 10.00, GetUnitFacing(u2))
endfunction

function Trig_skill_2_bomba_Actions takes nothing returns nothing
local timer t=CreateTimer()
local integer i = 1
local unit u=GetSpellAbilityUnit()
local unit u2=CreateUnitAtLoc (GetOwningPlayer(u),'h002',GetUnitLoc(u),0)
loop
exitwhen i>24
set i=i+1
call TimerStart(t,0.01,true,function Trig_skill_Move_bomb)
endloop
endfunction

Теперь я уже вобще запутался один кричит делай так, третий кричит вобще не делай, а второго пробило делать свою карту.Я нехочу никого обидеть но меня ето уже достало.Ваше отношение комне меня уже совсем не устраивает.Может чтобы прояснить ситуацию мне стоит сказать что мне только 15 лет и я все еще, что и так ясно учусь в школе заканчиваю 8 класс.Может учитывая етот факт вы будите говорить понятнее, например Manhattan
говорит что я не создал тригер, но совсем ничего нисказал как его создать.Далее он говорит что у меня нет логического мышлния.. Может так оно и есть но почему то на гуи я могу все ето зделать а тут мне просто нехватает как бы "Командного запаса" для вас ето все кажется таким легким и обыденым, но для меня ето все совершенно новое я уже хрен знает какой день бьюсь с етой функцией а вы почти не даете мне информации и чтото хотите чтобы я делал все сам.А я немогу я вобще не знал ни как строить ети функции ни формул всех етих,а щас мне вобще предлагают кинуть все на пол дороге и делать еще легче.Полный абзац одним словом.Наверно учитывая все написаное вы щас мне вобще посоветуете отказатся от джаза потому что не дорос или как нить еще наплевательски отнесетесь.Неважно что написал то написал конечно могу все стереть но смысла не вижу вобщем решайте сами.Либо меня детально ознакомить с етим языком либо говорите нет и я наверно вобще заброшу картостроение и дальше буду играть в доту от которой меня уже тошнит +_+.

JassMan   24 февраля 2010 в 14:51

Лан лан, спокойно. . Я-то на тя не давлю))
Скажу что ты сделал не так:
ты через цикл запустил запустил несколько раз таймер, причом все действия цикла должны сработать мгновенно, а это значит что никакой разницы не будет от ого что ты запустиш его без цикла как бы.

Короче: у тя в строке call TimerStart(t,0.01,true,function Trig_skill_Move_bomb)
стоит слово true, а это значит, что таймер будет работать как многократный, тоесть по его истечению снова будет запускаца. Ну а если там не true, а false будет стоят, то сработает как однократный

SaRoF   24 февраля 2010 в 16:31

Тоесть если я запускаю через цикл то нужно чтобы там стояло false но если все переменные уничтожаются можно както переносить переменные из одной функции в другую ? мне ж нужно чтобы оно двигало именно етого юнита т.е u2.И как создать условия ? можите пару примеров кинуть как зделать допольнительные условия?

JassMan   24 февраля 2010 в 19:53

Вот тебе примерчик. Эта штука при касте двигает юнита в сторону, куда он смотрит:

function Trig_a_Conditions takes nothing returns boolean
return GetSpellAbilityId()=='A000'
//сравниваем абилку которую кастанули
endfunction

function move takes nothing returns nothing
local timer t=GetExpiredTimer()
//истёкший таймер, тот самый который мы запустили ниже
local unit u=LoadUnitHandle(udg_Hash,GetHandleId(t),1)
//выгружаем сохранённого юнита
local real a=GetUnitFacing(u)
//устанавливаем угол поворота лица юнита
call SetUnitX(u,GetUnitX(u)+20*Cos(a*bj_DEGTORAD))
//передвигаем юнита по иксу
call SetUnitY(u,GetUnitY(u)+20*Sin(a*bj_DEGTORAD))
//передвигаем по игреку
set t=null
//обнуляем переменные
set u=null
endfunction

function Trig_a_Actions takes nothing returns nothing
local unit u=GetSpellAbilityUnit()
local timer t=CreateTimer()
//создаём таймер
call SaveUnitHadndle(udg_Hash,GetHandleId(t),1,u)
//комментарий этой строки читай после этого ***
call TimerStart(t,0.03,true,function move)
set t=null
//обнуляем переменные, ибо в этой функции они нам больше не нужны. Всё, что надо мы уже сохранили
set u=null
endfunction

function InitTrig_a takes nothing returns nothing
set gg_trg_a=CreateTrigger()
call TriggerRegisterAnyUnitEventBJ(gg_trg_a,EVENT_PLAYER_UNIT_SPELL_EFFECT)
call TriggerAddCondition(gg_trg_a,Condition(function Trig_a_Conditions))
call TriggerAddAction( gg_trg_a,function Trig_a_Actions)
endfunction


***Переведу (дословно) строку call SaveUnitHadndle(udg_Hash, GetHandleId(t), 1, u):

СохранитьCсылкуЮнита(в этой хеш-таблице, в этой категории, в этой ячейке, этого юнита)
_______________________________________________________________________________________________________

Обрати внимание, что для имени категории я использую ссылку таймера.
Я это делаю для того, чтобы избежать конфлигтов в таких случаях:

Предположим мы сохраним его в категории не GetHandleId(t), а в категории 1
Допустим у нескольких юнитов есть такая абилка, тогда если
сразу несколько юнитов используют этот скилл, то у нас эти юниты запишутся поверх предыдущей категории.
Тоесть в категории 1 будут записываться данные уже новых юнитов.
Это называется коллизией (наложением или совпадением)

А если сохранять в категории GetHandleId(t), то поскольку на каждое срабатывание триггера создаётся новый (уникальный) таймер (с новой ссылкой)
То в такую категорию данные запишутся только 1 раз

Dr. Manhattan   24 февраля 2010 в 20:13

например Manhattan говорит что я не создал тригер, но совсем ничего нисказал как его создать.

Во-первых, в статьях, на которые KiLLiNG_SPREEE тут ссылки выкладывал, все это есть. Во-вторых, через динамическое создание триггера твою задачу можно решить, но не обязательно - гораздо проще это делается через функцию TimerStart. Когда я говорил, что ты ссылаешься на несуществующий триггер, я просто объяснял, почему компиллятор выдал ошибку "отсутствует название".

мне только 15 лет и я все еще, что и так ясно учусь в школе заканчиваю 8 класс.

Что ж ты раньше не сказал, это же в корне все меняет! Формулы, которые я приводил, по физике в 9 классе проходят. Полет снаряда по параболе делать не надо, я думаю, что все с этим согласятся. Задание такое: юнит кастует заклинание, и его относит на 1000 ед. расстояния вправо по х со скоростью 500 ед. расстояния в секунду.

Чтобы задействовать в твоей функции именно юнита u2, нужно сохранить его в хэш-таблицу. Статью по хэш-таблицам тут уже приводили: xgm.ru/forum/showthread.php?t=30742. Если возникнут вопросы по статье - задавай, я отвечу. Ты, кстати, знаешь уже, что такое handle объекта в варкрафте и двумерный массив?

PS Руки опускать не надо, ты вполне можешь со всем этим разобраться. А Дота подождет.

JassMan   24 февраля 2010 в 20:26

Хмм я в 16 лет уже школу заканчивал. А в 17 лет на 1 курс пошёл.

Кстати SaRof посмотри вот этот мой пост 06.01.10 16:27, думаю тебе пригодится для работы с перемещением юнита, да и для понимания вообще той штуки в целом.

А и вот эта штука тебе тоже пригодится 14.01.10 18:50 (ссылка на наработку, которая там показана, обновлю завтра)

Dr. Manhattan   24 февраля 2010 в 20:31

А ведь верно...

Dragon27   24 февраля 2010 в 21:06

Dragon27 вынужден с тобой не согласиться, тупо ставить сравнение расстояния — не годиться, ибо на юнита могут повлиять внешние факторы и сместить его.
Типо "сбить" на полпути?
Можно тогда внутренние счётчики ставить, или ещё чего погеморройнее.
В данном случае у нас простейший случай - зачем извращаться?

Допустим я возьму скилл (другой; и предположим, есть такой), который притягивает всех юнитов через пол мапы (к примеру)
ты притянешь этого дамми юнита, и тот будет продолжать двигаться, (возможно уже в другую сторону, зависит от структуры триггеров) и всё время расстояние будет не таким как должно быть.

Ну так это уже совсем другое. Когда строишь большую карту с различными спеллами - все взаимодействия надо продумывать заранее.
В данном случае ему нужно научиться делать хотя бы это. (направленный полёт на конкретную точку)

Хотя можно более "физично", так сказать. Запоминать вектор скорости (точнее его составляющие по вертикали и горизонтали, а также направление, либо просто параметры по всем трём осям), и двигать в соответствии со всеми радостями Ньютона.

Точно, лучше сделать так.

Нужно в цикле запустить таймер t который нужно так же и создать в начале 1-вой функции и заставить етот таймер выходит каждые 0.01 секнду включать функцию, которая в свою очередь будет устанавливать высоту и скорость полета, но скорость полета должна быть одинаковой просто написать 10 например и все.Щас я попробую что-то такое зделать и напишу ниже.
Никаких циклов, просто таймер. А t - это время, параметр на основе которого ты вычисляешь нужные величины.

например Manhattan говорит что я не создал тригер, но совсем ничего нисказал как его создать.
Ты же читал статью? Там чётко сказано про устройство триггеров.

Тебе нужен всего 1 триггер: тот который запускает функцию спелла. Также у тебя будет:
- функция, которая устанавливает основные параметры (и делает другие стартовые вещи), создаёт таймер, приаттачивает к нему параметры и запускает таймер
- функция, которая выполняется при каждом тике таймера (скажем, каждые 0.04 секунды). В ней у тебя будет движение объекта, и проверка - например, не врезался ли объект в землю. Если врезался (высота нулевая или меньше) объект удалить, взорвать, что хочешь. Все параметры очистить (в хэш-таблице), таймер удалить, мусор прибрать :)

По сути, что ещё надо? Всякие мелкие вспомогательные функции, пока без них можно обойтись.

JassMan   24 февраля 2010 в 21:36

ну в принципе этот пример 24.02.10 19:53 в таком случае подходит как нельзя кстати))

хотя я там не установил конец движения))

Нужна помощь мой пост 24.02.10 02:08

JassMan   25 февраля 2010 в 01:15

ага блин . . . а мне типа помогать никто не будет . .

sahan911   25 февраля 2010 в 13:57

Народ привет! Я только месяц работаю в world editorе поэтому у меня мооорре вопросов, плизз очень прошу помочь кто может (желательно поменьше триггеров где возможно, а то я не разбираюсь в них совсем, ну а где нельзя без них плиз поподробнее объясните плиз?)(Надеюсь что все что я хочу сделать возможно и не требует jass=) хотя сомневаюсь)
Я хочу сделать героев как в wow с похожими характеристиками и способностями. Создал всего 5 класов а вопросов уже ооочень много. Все вопросы я не помню поэтому задавать буду постепенно, что вспомню. Помогите плз! заранее спасибо.
Вот 1) вопрос: создал друида, который может принимать 3 облика, сделал из превращения в медведя, из превращения в ворона, и превращения в ворона(Медив).Так вот с медведем все в порядке , а вот с двумя остальными бардак. Я нажимаю первратится в 1- она превращяет меня в1, а на следую щий раз превращяет во 2. Тоже самое и со 2 я нажимаю 2 превращяет в 1, а потом во 2.
В принципе я догадываюсь почему это происходит. Эти две способности похожи(я думаю поэтому). Но нет больше способностей из которых можно смастерить еще одну форму (есть еще превращение в кибергоблина, но у меня друид не герой и поэтому начинает глючить) помогите чем-нибудь (героем друида я сделать не могу по другой причине).
2) Вопрос тоже по формам друида. Я делал в каждой форме способности разные и ставил некоторым из них кд(перезарядку). Так вот при переходе из одной формы в другую друид легко может сбрасывать это кд(перезарядку). Как сделать чтобы этого не было?
3) Вопрос на туже тему =) только я хотел спросить как мну сделать чтобы друид мог использовать свои превращения с помощбю предметов? я сделал такие предметы поставил , но друид только 1 раз использовал его и дальше почемуто не хотел ее юзать причем предмет не кончался и не имел зарядов и относился к классу постоянных. (Еще помимо этих 3 форм нада сделать чтобы он предметом же мог превращятся обратно в эльфа=)
4) вопрос на тему как можно сделать чтобы любая способность могла ставится на автокаст как лечение например? И как сделать чтобы у одного персонажа могли стоять на автокасте несколько способностей сразу?
5) Еще вопрос можно ли скрывать как нибудь ячейки способностей но не все сразу, а на выбор. И как можно сделать чтобы было несколько способностей например штук 7 видно и штук 7 невидно, как бы пассивки( чтобы они не перегораживали мне способности и тем не менее присутствовали у перса)(без импользования предметов!)
6) еще вопрос у друида в форме медведя не мана, а как бы ярость как в wow (тоесть всего 100(*) и он ее быстро набирает), а в обычной форме у него мана причем очень много , а не 100. Так вот когда у него ярости 76 например, то если я превращюсь в эльфа, у него будет 76% от его маны, а не столько сколько было до превращения. Как мне сделать чтобы количество маны перед превращением сохранялось и после превращения независимо от его ярости оставалось прежним? *еще я не могу сделать ему ярость ровно 100 у него изначально ее 200 как мну сделать ее 100?.
7) вопрос на засыпку: у хантера я сделал способность и написал ее описание, а когда заходишь в игру то описание способности совершенно другое: частично из соседней сопособности и еще + написано чтото вроде этого "авто~e~~п~" Можете помочь исправить этот глюк? И еще один глюк: теперь почемуто в заклинаниях/эффектах когда я пишу запятые то в игре после них текста описания нет, хотя раньше все было норм.
8) В большинстве спеллов в war3 нужно выберать цель. Как можно сделать так, чтобы Все те способности которые требуют цели наводились таким образом: те способности у которых одна цель(Сам воин) Автоматом кидались на него, Все атакующие способности автоматически применялись на ближайшую враждебную цель в зоне действия способности(а если враждебной цели нет в зоне действия или их несколько, нужно выбирать цель) , Позитивные заклинания кидались на самого себя если рядом нет дружелюбных существ(а если есть, то цель надо выбирать).
9) как сделать чтобы у разбойника пока он не виден были одни способности, а после того как он становится видимым-другие? Как сделать чтобы невидимость можно было палить(тоесть если масс атакой попасть по тому месту где прячется невидимый юнит, то он сразу станет видимым) с помощью масс атак?(например Порча или буран, а не ясновидение!)
10) как сделать чтобы заклинания типа: полиморф и сглаз спадали с врага сразу после получения урона?
11) как сделать чтобы способности скачек не запрашивала цель, а прыгала например назад или вперед?Можно ли как нибудь в настройках задать место куда ему нужно автоматически прыгнуть?
12)вопрос: как сделать чтобы юнит мог применять определенную способность только со спины врага или только спереди, а не с любой стороны?
13) Как сделать чтобы при вызывании прислужника все его способности, которые применяются автоматически были включены?(например у меня охотник вызывает вока у которого автоматический спелл "укус", но он выключен).И еще как сделать чтобы у всех юнитов на карте все автоматические способности при инициализации были включены? (В свойствах юнита не все из них можно поставить на автоприменение)
14) как сделать чтобы мне отображался урон от всех способностей и от оружия как в способности "отравленный нож"?
15) Можно ли как нибудь добавить дополнительные панели способностей и предметов и использовать их?
16) дайте плиз сайт где можно бесплатно скачать звуки/музыку/иконки/эффекты и заклинания/модельки из wow специально для world editora.
17) Как сделать чтобы при использовании одной способности юзалось сразу несколько заклинаний нужных мне?(я пробовал добавлять в эффекты, способности и в прочии строки по несколько способностей, но использовалась все равно только одна.
18) мне нужно создать способность "страх" . Она похожа на сглаз или полиморф, графику поменять можно но вопрос в чем: тут юнит не должен беспорядочно бродить, а должен очень быстро и далеко убегать в течении 10 сек. как это сделать?
19) почемуто не работает способность "аура возмездия". Я убедился в этом 100%. Специально чтобы проверить работает они или нет я поставил огромедный урон и по идее любой кто ударит данного юнита должен был умереть с 1 удара.Но у того даже 1 хр не сняло. В чем прикол?
20) как сделать чтобы щит маны не жрал столько маны? Я пробовал там менять числа, но у меня либо щит вообще урон не поглощял, либо поглощял еще больше маны, либо поглощял меньше маны, но все равно много (дело в том что у моих героев от 20 000 до 45 000 хр, от 20 000 до 35 000 маны, и урон соответственный от оружия и способностеей, а теперь пердставьте сколько жрет "щит маны" маны)
21) Еще мне нужно сделать способность "Массовый страх". Это почти тоже самое что и "страх" только все кто воокруг инита находятся должны убежать в разные стороны. как это сделать?
22) мне нужно сделать способность "кольцо льда" при использовании все враги, стоящии рядом должны примерзнуть на 5 сек к земле(но они могут использовать способности, и атаковать). Причем после того как они разморозятся они еще 5 секунд должны быть замедленны на 25%. как это сделать?
23) как сделать чтобы прислужники (например волк) не исчезали, пока их не убьют? а то исчезают через 60 секунд, я в эдиторе покопался сделал так чтобы они существовали максимум час, но не больше.
24) Еще бы мне сделать так, чтобы пока прислужник жив использовать способности на его призыв нельзя, а если он умерает, но начинается кд (перезарядка способности).
25) как сджелать чтобы способности сделанные из оддинаковых спеллов не заменяли друг друга, а суммировались?(например я сделал друиду-медведю способность медвежий рев на 10 брони и 25% урона( из способности рев), а воину сделал боевой клич на 20 брони и 10% урона (из той же способности, потомучто больше не из чего)У этих способностей разные анимации.Так вот когда рычит медведь, то над ним появляется лапа, у него+10 брони и + 25% к урону.Если рядом крикнет воин то у всех теперь лапа останется( а должна быть корона) и будет + 20 брони и + 10% к урону).Можно как нибудь сделать чтобы было 35% к урону и 30 к броне, а анимации сливались?*
26)* та же фигня но только с омоложением. я на основе омоложения сделал дофига исцеляющих и ваосстанавливающих ману способностей и теперь они тоже заменяют друг друга=(
Помогите а то уже крыша едет=( весь инет перерыл .

sahan911   25 февраля 2010 в 14:01

Мда уж вопросов получилось "слегка" многовато... и это еще не все((
Необязательно отвечать все сразу помогите что знаете плз а то я уже пол месяца в инете роюсь.

JassMan   25 февраля 2010 в 14:11

я тебе так скажу, без jassa можно, но не нужно ))

sahan911   25 февраля 2010 в 14:25

да мне делать нефиг вот хочу понять как с этим разобраться=)

JassMan   25 февраля 2010 в 16:03

делать нефиг — читай статьи
Можешь еще зайти в FAQ, ссылка наверху, там тоже можешь найти чо интересного

слишком много вопросов, причом довольно простых, но нудных по объяснению (долго писать), и большинству профессиональных редакторщиков просто будут ленится отвечать на столь простые вопросы

народ парню надо помочь, отвечайте хотяб по 1-3 вопроса в день

23)Вопрос, поставь время действия 0, тогда будет бесконечным.
Я хз уже не помню можно ли там поставить ноль, но если нет, то надо держать шифт shift и потом ентером по той строке, и тогда можн0о вводить любое значение

я как то еще по-моему делал . . . Вроде надо убрать классификацию Вызванный у волков в редакторе объектов

25, 26) попробуй поменять buff у способностей, (создай нестандартный тип заклинания (во вкладке "заклинания") )
и ставь у способности в поле заклинания своё нестандартное заклинание.

я не уверен но возможно должно помочь

sahan911   25 февраля 2010 в 19:22

KiLLiNG SPREEE спасиба тебе за ответы 23) реал заробил надо просто 0 поставить было, а вот насчет 2 двух я итак для каждых способностей делаю свои баффы, а они перекрываются как я описал.=(
Кстати способность "Череда убийств"(Killing spreee) мне тоже надо както сделать=)

SaRoF   25 февраля 2010 в 19:47

О_О офигеть вопросики.Даже я неспособен такое напечатать за одно сообщение ))).Щас хотя я тут сам учение попытаюсь ответить на твои вопросы, ведь они к счастью не по джазу).

1)Я непонимаю как такое может происходить 2 разные способности с разными названиями и ты поставил в каждой превращатся в разных юнитов?..
2)В вове на формы нет перезарядки.. Я думаю тебе просто стоит поставить достаточный манакст чтобы не спамили формы.
4)Непредставляю как зделать несколько способносней на авто каст наверно ето невозможно но способность авто каста делается легко ) береш любую способность с авто кастом и делаеш ей ефект ну ето уже нужно тригеры я думаю хотя если ето хилка.. береш обычный хил жреца из стандартного варика ну тут реально нужно гуи если ето чтото другое.
5)Нужно создать тригер который будет уничтожать способность и добовлять твоему то что дает етот скил т.е армор или еще чтонибудь.Хотя я незнаю как тогда с пракачиванием быть там же вроде ограничение что если не прокачал лвл 1 то нельзя прокачать лвл 2.. хотя проверь если убрать способность можно ли будет прокачать уровень 2 или нет.
6)О_о ну он же использует смену формы в мишку из стандартного варика ? просто поменяю ману юниту в которого он превращается на 100 и все тут.. Редактор обектов ищещ параметр максимум маны и ставиш 100.А нащет маны тоже самое тригеры но тут тебе уже подскажут старшие товарищи ).

sahan911   25 февраля 2010 в 20:02

эм... ну вы не совсем так поняли мои вопросы, я спешил писал не очень понятно. на самом деле там чуток посложнее чем кажется
.

SaRoF   25 февраля 2010 в 20:05

я думаю тебе пригодится.Я когда только начинал делать карту нашел первым делом етот сайт вот тут полезные статейки есть.Внизу пару ссылок дам на то что тебе нужно прочитать чтобы просто ознакомится с тригерами.Если скачать русификатор там совсем просто, но как я сейчас чувствую на своей шкуре лутше етого не далеть потому что потом ничего не поймеш в джазе.Нужно сразу на англ учится.А если джазз тебя не манит ) хотя без него врядли можно норм карту намутить.То конечно можеш скачать русификатор ворлд едитора.

Ссылки:

warcraft3ft.info/board/16 - статейки про ворлд едитор в целом хоя половина из них борохло )
warcraft3ft.info/board/16-1-0-424 - одно из тех 10 статей ) самая ценная как по мне.

xgm.ru/articles.php?do=index&pid=100 - первые 2 ссылки ето хрень но пусть будут вдруг они таки комуто когдато пригодятся ) тебе нужна ета Тут все все все )) и к твоему сожеление прочитать тебе тоже прийдется ВСЕ ВСЕ ВСЕ! xD.

sahan911   25 февраля 2010 в 20:14

SaRoF в 1) там две формы сплетаются сделанные на основе превращения в ворона и превращения в ворона(медив). я заменил ворона-друида на другово юнита, а ворона-медива на еще одного.
2) непонял вообще=)
4 ) так вот мну триггер и нужен=) хил то я знаю как сделать=)
5) насчет прокачки спелов небоись у ми все юниты 80 лвл и все способности не относятся к героям(почти все) И ты не совсем понял вопрос. Мне не нужно удалять эти способности мне нудно чтобы они присутствовали в перечне способностей героя и тем не менее были скрыты нужными мне абилами.
6)САм хз А насчет 100 маны это ты совсем не понял=) я ему задаю параметр "максимум маны": 0 и у него уже 200 маны а мне нужно 100!.
Но сиравно спасибо что хотябы попытался помочь. зато я теперь поподробнее разъяснил некоторые моменты=)
Добавил:
и спс за ссылки хотя я серьезно играми заниматься не собираюсь а просто хочу сделать "вов на варовском движке"=)

JassMan   25 февраля 2010 в 21:19

как минимум 3 года тебе придеца его делать))
если расти будешь быстро и научишся jassy, то возможно год - или полтора затраты времени уберёшь на то чтоб замутить проект

SaRoF   25 февраля 2010 в 21:28

емм если ты несобираешся заниматся в серьйоз, то зачем начинать ? Без тригеров ты нормальной карты не зделаеш.Ето вобще не возможно ), и популярной она не станет ето уж точно.А насчет 6) все я понял ) просто ты недостаточно внимательный поетоум незнаеш что если значение 0 то в большинстве случаев ставится стандартное значение т.е если было 200,а ты посавиш 0 то будет 200 ) а если поставиш 100 то должно стать 100.. если не так то ето очень странно.Насчет 4 если тригер и нужен то начинай читать.. начальный материал по тригерам в третьей ссылке.Чтото я непонял ты хочеш чтобы они были но их небыло ?)

Вобщем я предлагаю альтернативный вариант для пасив выдели для них кингу заклинаний.Ето предмет в стандартном варкрафте но из него можно зделать скилл и таким образом у твоего героя может быть гараздо больше чем 6 способностей что вмещаются.. хотя в прокачке вроде только 12 доступно.. но как зделанно очень умно во многих орпг можно чтобы способности давались по уровням, а если ты хочеш чтобы способности чар качал сам то.. спроси как зделал ето в своей карте " Vengeance" Rewenger скачай карту здесь xgm.ru/page/5769 и посмотри как там зделано мне очень нравится ) хотя я в ету карту не играю особо т.к там очень затянуты квесты и если ты качаеш нового чара по второму разу выслушивать все что там говорят просто невыносимо а пропустить ето никак нельзя.. При загрузке карты высвечивается его mail вот туда и напиши хотя врядли он захочет раскрывать великий секрет)) ну и еще может наши "гуру" тебе подскажут.)

Я впринцыпе понимаю как он ето зделал.. просто тригер высвечивает действия на таблице.. я вобще незнаю как он зделал но можно зделать примитивнии если игрок нажал комбинацию клавиш т.е Esc вправо вправо вправо то дать такой то скил и если скил есть то удалить скил и добавить етот же скил но на уровень выше хотя всеравно совершенно неясно как все ети детали перевести в джазз чтобы небыло ошибок.. ведь я еще даже простой код написать немогу.

Dragon27   26 февраля 2010 в 06:53

ага блин . . . а мне типа помогать никто не будет . .
Вечером вернусь с работы, гляну.

Dragon27   26 февраля 2010 в 18:29

Да вроде нормально показывает, несколько раз вызывал.

sahan911   26 февраля 2010 в 18:38

SaRoF 6) ставлю 100 у друида становится 300 маны, ставлю 200 - у друида 400 маны и так далее... (если че у друида нет ни 1 интеллекта потомучто он не герой), 5) "И как можно сделать чтобы было несколько способностей например штук 7 видно и штук 7 невидно, как бы пассивки( чтобы они не перегораживали мне способности и тем не менее присутствовали у перса)(БЕЗ ИСПОЛЬЗОВАНИЯ ПРЕДМЕТОВ!!)" А насчет прокачки спеллов с левелом я это и не спрашивал мну это не нужно...

JassMan   26 февраля 2010 в 18:58

Dragon27 придеца тебе мапу скинуть, жди в личке

SaRoF   26 февраля 2010 в 19:04

Нужно бы тему обновить ето раз.
А вот что насчет кода ) оно не понимает откуда взялся хеш.

function Trig_skill_2_bomba_Conditions takes nothing returns boolean
if ( not ( GetSpellAbilityId() == 'A002' ) ) then
return false
endif
return true
endfunction

function Trig_skill_Move_bomb takes nothing returns nothing
local timer t=GetExpiredTimer()
local unit u2=LoadUnitHandle(udg_Hash,GetHandleId(t),1) //10
local real a=GetUnitFacing(u2)
call SetUnitFlyHeight(u2,1,0)
call SetUnitX(u2,GetUnitX(u2)+5*Cos(a*bj_DEGTORAD))
endfunction

function Trig_skill_2_bomba_Actions takes nothing returns nothing
local timer t=CreateTimer()
local unit u=GetSpellAbilityUnit()
local unit u2=CreateUnitAtLoc (GetOwningPlayer(u),'h002',GetUnitLoc(u),0) //20
call SaveUnitHandle(udg_Hash,GetHandleId(t),1,u2) //21
call TimerStart(t,0.01,true,function skill_Move_bomb)
set t=null
set u=null
endfunction

//===========================================================================
function InitTrig_skill_2_bomba takes nothing returns nothing
set gg_trg_skill_2_bomba = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_skill_2_bomba, EVENT_PLAYER_UNIT_SPELL_CAST )
call TriggerAddCondition( gg_trg_skill_2_bomba, Condition( function Trig_skill_2_bomba_Conditions ) )
call TriggerAddAction(gg_trg_skill_2_bomba, function Trig_skill_2_bomba_Actions)
endfunction


undeclared variable udg_hash - 2 раза в 10 и 20 строке
SaveUnitHandle - команда белая а не зеленая как должно быть в джазз крафте
undeclared variable gg_trg_skill_2_bomba - вобще непонятно почему..
undeclared function -строка 21 но ето я думаю выплывает из строки 20. т.к там белая команда.

Ето в джазз карфте.. а в обычном редакторе ошибок штук 20 )) и все они выплывают из етих 2 или 3 походу дела. жуть короче. hash както нужно создавать мб ?
gg_trg_skill_2_bomba верно все написано в чем дело ? О_о?! тоже без понятия.

JassMan   26 февраля 2010 в 19:19

Ну так понятно у тяж переменной такой нету в мапе
создаешь переменную типа хеш-таблица (глобальную), называешь её Hash (я так привык)

потом в любой триггер где стоит инициализации карты вставляешь строчку:

set udg_Hash=InitHashtable()
________________________________________________________________________________________________________

по поводу верхней функции . .. НУКА ИСПРАВЬ НЕМЕДЛЕННО ! ! !
я показывал как

SaRoF   26 февраля 2010 в 19:27

Masterwow,Перечетая еще раз все что я писал.. если не поймеш прочитай еще раз т.к я все написал и если до тебя недоходит я незнаю как тебе обьяснить.Я тебе прокачку скилов с лвл предложил как альтернативу и самое верное решение ето после прокачивание пасивы удалять ее просто из скилов и добавлять герою баф.. постоянный и зделать тригер что если у героя есть етот баф то зделать то то и тото например... пасива дает армор.. то просто тригером увеличиваеш армор. Хотя как по мне ето как то жутко примитивно я мог бы чтото и полутше придумать но для етого нужно посидеть ) + у меня маленький опыт работы с тригерами.

И еще ты должен уже учится и прочитать статьи что я тебе дал.Если ты их не прочтеш, и не поймеш никакой карты у тебя не будет.А если ты нехочеш тратить столько времени как указал KiLLiNG_SPREEE (1-3 года ) то лутше кидать ету затею ведь ты же не хочеш в серьйоз етим заниматся.

SaRoF   26 февраля 2010 в 19:31

KiLLiNG_SPREEE xD )) я знаю что ты показывал ) просто Мистер под ником Махахетен ) если быть точнее Dr. Manhattan сказал чтобы юнит двигался по оси х и все потому я так зделал ну ето мое домашнее задание ) Но он еще и вправо по оси Х лететь должен.. я хз как) правда он говорил чтобы кастер летел но тут я думаю не имеет значения.Если нужно чтобы кастер то не создаем никаких юнитов а в хеш таблицу кастера записываем.

JassMan   26 февраля 2010 в 19:34

SaRoF
По поводу названий функции: можешь ставить абсолютно любое, лишь бы оно не повторялось в этом и в других триггерах

Trig_skill_2_bomba_Actions можно назвать bomba_Actions
а функцию Trig_skill_Move_bomb можно назвать Bomba_Move или просто Move

За исключением самой нижней функции InitTrig_. . .

ну я это так на всякий случай говорю. . .
_______________________________________________________________________________________________________

ты в курсе что Cos(0)= 1 ?
он у тя должен лететь в право (тоесть угол должен быть ноль)
а рас у тя должно 5*Cos(0) то посути косинус ваще можно не писать, а только прибавлять то расстояние на которое передвигаешь:

call SetUnitX(u2,GetUnitX(u2)+5)
_______________________________________________________________________________________________________

Ты исправлять верхнюю функцию будешь или нет! ! ! ? Я хочу видеть что ты понял, и что мы не зря комментарии ко всему тут пишем для тебя
_______________________________________________________________________________________________________

Биг thanks Dragon27 ))

SaRoF   26 февраля 2010 в 23:18

все я кажется понял сори ) во первых я написал вторую функцию Trig_skill_Move_bomb, а Trig ето как бы обращение к тригеру а тригера такого нет правильно ? Ну так же я не расставил null.Я незнаю чего я там невижу О_о верхняя строчка имеется ввиду вторая часть тригера а вот что там еще не так.. мм
Ну условие правильное на скилл..
далее local real a=GetUnitFacing(u2) мне уже не нужно выходит InitTrig_skill_2_bomba и создать переменную хеш.

Я если что неувидел то я очень извеняюсь, и нехочю чтобы вы думали что все что вы делаете напрасно.

Dragon27   26 февраля 2010 в 23:19

команда белая а не зеленая как должно быть в джазз крафте
Джаззкрафт не содержит новые команды? Извлеки из архивов (mpq), самые новые из патчей (War3patch, вроде) 3 файла: common.j, blizzard.j и common.ai (последний может не быть в патч-архиве, найди его в других), и замени этими файлами старые файлы в директории джасскрафта.

Dr. Manhattan   26 февраля 2010 в 23:35

"Биг thanks Dragon27 ))"

А в чем проблема-то была?

SaRoF
26.02.10 19:04

Как думаешь, когда твой снаряд остановится? В моем задании сказано, что его надо переместить на 1000.

И еще один момент на заметку: если ты используешь функцию SetUnitX или SetUnitY, то он у тебя летит, не замечая никаких препятствий в виде стен, подъемов, глубоководья итд. Для юнита-снаряда это нормально, но если бы ты перемещал кастера, то надо было бы использовать функцию SetUnitPositionLoc(unit,point1,point2). Тогда он от стен будет отскакивать.

Dragon27   27 февраля 2010 в 00:20

SetUnitPositionLoc(unit,point1,point2)
Шо за point1, point2?
Может просто
SetUnitPosition(unit,x,y)?

Dragon27   27 февраля 2010 в 01:04

А в чем проблема-то была?
плюс на минус

Dr. Manhattan   27 февраля 2010 в 01:25

Шо за point1, point2?

Да херню написал. SetUnitPositionLoc(unit,location). Или SetUnitPosition(unit,x,y).

JassMan   27 февраля 2010 в 08:14

Dragon27 имел ввиду то, что если хочешь передвигать юнита по окружности, то перед
числом, где стоит расстояние, на которое перемещаешь (у меня это 600), нужно ставить минус

local real a=bj_RADTODEG*Atan2(GetUnitY(u)-GetUnitY(d),GetUnitX(u)-GetUnitX(d)) //функция нахождения угла между юнитами u и d
call SetUnitX(d,GetUnitX(u)-600*Cos((a+1)*bj_DEGTORAD))
call SetUnitY(d,GetUnitY(u)-600*Sin((a+1)*bj_DEGTORAD))


иначе юнит будет чередоваться — на каждый тик таймера будет появляться то с одной то с другой с разницей в 180 (хоть и будет совершать вращение)

Dr. Manhattan   27 февраля 2010 в 10:56

Понятно. Вообще-то, если юнита d двигать, то логичнее было бы написать GetUnitY(d)-GetUnitY(u) и GetUnitX(d)-GetUnitX(u), тогда и знак был бы +.

А что вам мешает использовать функции CosBJ и SinBJ, у которых аргументы в градусах?

JassMan   27 февраля 2010 в 14:16

Собственно, CosBJ и SinBJ делают то же, что я и написал, спрашивается:
Зачем писать одну функцию, которая потом вызовет вторую функцию, когда можно сразу написать вторую функцию?

function CosBJ takes real degrees returns real
return Cos(degrees * bj_DEGTORAD)
endfunction

function SinBJ takes real degrees returns real
return Sin(degrees * bj_DEGTORAD)
endfunction


Понятно. Вообще-то, если юнита d двигать, то логичнее было бы написать GetUnitY(d)-GetUnitY(u) и GetUnitX(d)-GetUnitX(u), тогда и знак был бы +.

нуу? а я как написал?

Dr. Manhattan   27 февраля 2010 в 14:24

Что короче: SinBJ(a) или Sin(a*Deg2Rad)? И зачем ты сначала радианы переводишь в градусы, потом тут же градусы - обратно в радианы? Нельзя просто:

local real a=Atan2(GetUnitY(d)-GetUnitY(u),GetUnitX(d)-GetUnitX(u))
call SetUnitX(d,GetUnitX(u)+600*Cos(a+1))
call SetUnitY(d,GetUnitY(u)+600*Sin(a+1))

нуу? а я как написал?

А ты написал наоборот: GetUnitY(u)-GetUnitY(d),GetUnitX(u)-GetUnitX(d). Ну, если по логике, ты же измеряешь угол положения юнита d относительно неподвижного юнита u, а не наоботот?

Существует какая-нибудь функция, чтобы обращаться к группе юнитов, погруженных на транспорт? Например, local group g=???(u), где ??? - это все юниты, погруженные на транспорт u? Или, в качестве альтернативы, способ обратиться к юниту, находящемуся на транспорте u в ячейке под каким-то номером?

SaRoF   27 февраля 2010 в 14:56

Еще раз напоминаю модератору, что было бы неплохо обновить тему.

Файлы я извлек (без инструкций, сам все понял =) ) в папку забросил ети 3 файла и заменил ими те что были там.Теперь у меня че то с синтаксисом.Он сошел сума ), и теперь пишет 40 или 50 строчек:

Unrecognized character:
Unrecognized character:А
Unrecognized character:Л
Unrecognized character: Квадрат незнаю как написать что то вроде етого [] .

Если нажимаеш отмену синтаксиса он вобще виснет.. вобщем, похоже я его сломал О_О.
Извлекал файлы из "Patch WC3TFT 1.24C_ruRU" (из етого файла потому что в том что ты сказал таких файлов небыло там были сплошные.. неопознаные файлы) програмой "WinMPQ".Ето связано с тем что русский патч? И сразу еще 3 вопроса:1) как зделать дополнительные условия?Делать еще 1 функцию или можно в самую первую писать? И если можно то поточнее и с примером желательно.
2)Как мне установить групу к условию.Ну как бы set g=юниты(вражеские) в 100 аое от u2, а потом как зделать чтобы например юнит взрывался и наносил урон, т.е поставить анимацию взрыва и поставить условие что если растояние между u2 и любым юнитом из групы g <100 то нанести урон всем юнитам из групы g и воспроизвести анимацию взрыва паралельно удалив u2.
3)Пока у меня лагает ДК(ДжаззКрафт) то немогли бы вы мне подсказать как зделать хеш таблицу ? local Hashtable hash ?, и hash=udg_hash, а далее как говорилось выше установить что udg_hash=InitHashtable() в любом тригера на инстализацию. Верно?

Dr. Manhattan   27 февраля 2010 в 15:00

Ну как бы set g=юниты в 100 аое от u2, а потом как зделать чтобы например юнит взрывался и наносил урон, т.е поставить анимацию взрыва и поставить условие что если растояние между u2 и любым юнитом из групы g

Ты же знаешь, как это в гуи сделать? Делаешь в гуи, конвертируешь в текст и смотришь, какие функции там используются.

Кстати, что там с нашим заданием? Сделал, проверил, и все работает?

SaRoF   27 февраля 2010 в 15:13

Не зделал,не проверил,не работает. =(
т.к вылетает куча ошибок непонятных.. хотя вроде все правильно видимо все дело в том что у меня който каличный редактор ппс който теперь скопировал файлы ети в джазз крафт еще и его сломал копец полный короче =((( все что в коде выше как было так и осталось.Сижу на мертвой точке.Вот посмотри мой код что вверху и найди там 40 ошибок.. копец что там не верно ?Если я исправлю то что там не правильно должно и все остальное исправится, у меня такое уже было я не правильно написал интингер вылезло 6 ошибок.. исправил все пропали.Т.е прозьба найти где там ошибки.. если нет то прийдется варик заново качать.

И то что я спрашиваю непосредственно косается задания... я хочю чтобы снаряд не просто останавливался, а еще на пути если попадутся враги взрывался же.

JassMan   27 февраля 2010 в 15:35

вообщето это я её в прошлый раз обновил

Dr. Manhattan   27 февраля 2010 в 15:46

SaRoF, ты глобальную переменную udg_Hash создал? Создал под нее хэш-таблицу, как Killing Spreee советовал 26.02.10 19:19?

JassMan   27 февраля 2010 в 15:57

SaRoF
Не зделал,не проверил,не работает. =( ахахахаххах, старательный ты ученик.

1) как зделать дополнительные условия?Делать еще 1 функцию или можно в самую первую писать? И если можно то поточнее и с примером желательно.

Смотря к каким действиям эти условия.

2)Как мне установить групу к условию.Ну как бы set g=юниты(вражеские) в 100 аое от u2, а потом как зделать чтобы например юнит взрывался и наносил урон, т.е поставить анимацию взрыва и поставить условие что если растояние между u2 и любым юнитом из групы g

local group g=GetUnitsInRangeOfLocMatching(100,p,Condition(function Spell_Filter)) //Можешь назвать её как хочешь.

p — это точка, вокруг которой выбираются юниты

Каждый юнит в этой группе считается как GetFilterUnit() —считается как фильтрующийся юнит (Но можно еще и GetEnumUnit() — считается как выбранный юнит. Я привык по своему делать.)

Далее создаешь эту функцию с таким названием (и обязательно выше той функции, откуда её вызываешь):

function Spell_Filter takes nothing returns boolean
return IsPlayerEnemy(GetOwningPlayer(GetTriggerUnit()),GetOwningPlayer(GetFilterUnit()))and(GetWidgetLife(GetFilterUnit())>0.405)and(IsUnitVisible(GetFilterUnit(),GetOwningPlayer(GetTriggerUnit())))and(not(IsUnitType(GetFilterUnit(),UNIT_TYPE_STRUCTURE)))
endfunction

Здесь функция проверяет:
• Игрок (Владелец TriggerUnit() ) (можно поставить любого юнита на своё усмотрение) — Враг GetFilterUnit()
• Жизнь (хп) GetFilterUnit()>0.405 (по стандартам Blizard юнит считается мертвым после 0.404 хп)
Тоесть тем самым мы проверяем жив ли юнит, или нет (так сказать, более точная проверка для отдельных заклинаний)
• GetFilterUnit() должен быть видим (тоесть если он успеет спрятаться в инвиз, к примеру, то на него не подействует твое заклинание, тоесть он не будет взять в группу)
• и, наконец, GetFilterUnit() не должен быть зданием

Можешь еще какие-нибудь свои добавить, либо убрать кое-какие мои. Это уже на твоё усмотрение

SaRoF   27 февраля 2010 в 16:14

емм ) подредактируй свое сообщение плз потому что там все слилось и половина отсутствует + нет команды и сразу начинается с 0.405 вобщем обнови страницу сам увидиш ), и посмотри вверх у меня там 3 вопрос еще стоит )

А насчет действий вот что: мне нужно чтобы если условие выполнено то например юнит в радиусе или юнит умер (возьмем 2 вариант) то через 50 секунд создать етот же юнит в центре указаной локации.

И мне еще очень интересно хотя ето опять же неконструктивность и т.д ) но просто в глову пришло и мне действительно хочется знать ). КАК зделан ульт вивера в доте ? Вернуть его в ту точку где он был 6 секунд назад.. в хеш таблицу постоянно записывается его позиция 6 секунд назад или как ? можно тригером ?)

Просто я еще чара придумал "Мастер ловушек" у него хочю зделать такой скил (конечно не сейчас)
Создает ловушку (невидимую клетку, как бы область обстроена зобором через который можна ходить и он невидим для врагов) и когда ловушку активируют она возвращает всех кто на данный момент в ней или через нее бежит В точку в которой он находился определенное число секунд назад.

Или ето вобще не реально зделать ?)

SaRoF   27 февраля 2010 в 16:40

И еще вот ссылка wc3life.com/load/13 тут можно найти нароботки по героям из доты, правда почти все они бессмысленные так как не доделаные.Но очень интересно там зделан крюк бучера вы наверно скажите что его нужно делать на джазз но вот тут зделано полностью на гуи) wc3life.com/load/butcher_hero_spells/29-1-0-1407 и мне интересно как там зделано чтобы крюк возвращался именно к точке где кастер был, а не к точке где он на данный момент.

там постоянно создаются дамми юниты со смешением и разницей создавания 0.04 секунды, но я так же непонимаю как зделано так что только последний дамми юнит наносит урон а остальные просто уничтожаются притягивая цель на точку на котрой они стояли.

JassMan   27 февраля 2010 в 17:19

SaRoF зайди сюда и поставь в поле Количество выводимых сообщений в теме форумов: 50
И будет тебе счастье.

По поводу крюка:
Там наносит урон не последний юнит, а тот, который окажется ближе всего к цели (как правило, радиус столкновения чаще ставят 100).

JassMan   27 февраля 2010 в 18:08

Так, мне всё таки как-то нужно обратиться к группе внутри call ForGroup(g) тоесть внутри функции (Circle_Move).
как тогда сохранить ссылку группы? вот тут:

function Circle_Move takes nothing returns nothing //внутри этой функции к таймеру тоже ведь нельзя обратиться?
local unit d=GetEnumUnit()
local unit u=LoadUnitHandle(udg_Hash,1,1)
local real a=bj_RADTODEG*Atan2(GetUnitY(d)-GetUnitY(u),GetUnitX(d)-GetUnitX(u))
set g=LoadGroupHandle(udg_Hash,GetHandleId(???),1)
local unit d1=FirstOfGroup(g)
call SetUnitX(d,GetUnitX(u)+600*Cos((a+1)*bj_DEGTORAD))
call SetUnitY(d,GetUnitY(u)+600*Sin((a+1)*bj_DEGTORAD))
call SetUnitFacing(d,a+90)
set u=null
set d=null
endfunction

function Group_Actions takes nothing returns nothing
local timer t=GetExpiredTimer()
local group g=LoadGroupHandle(udg_Hash,GetHandleId(t),2)
call SaveGroupHandle(udg_Hash,GetHandleId(???),1,g)
call ForGroup(g,function Circle_Move)
set g=null
set t=null
endfunction

Dr. Manhattan   27 февраля 2010 в 18:50

внутри этой функции к таймеру тоже ведь нельзя обратиться?

А ты пробовал?

Что-то я не догоняю, как у тебя код работает. Какой-то unit d1, который нигде не используется, опять эти bj_RADTODEG и bj_DEGTORAD, которые тебе нафиг не нужны... Напиши, пожалуйста, что ты вообще сделать хочешь, и выложи весь текст триггера.

JassMan   27 февраля 2010 в 19:18

..лять если я выложил эти строки значит этого достаточно чтоб задать вопрос, Я спрашиваю что нужно поставить вместо ???
чтобы код стал верным?

естественно я хочу использовать этого d1, я просто пока незакончил код, для начало мне нужно в этой функции как то залепить группу из которой взять этого юнита

Dr. Manhattan   27 февраля 2010 в 19:40

GetExpiredTimer() пробовал? Должно сработать, по-моему.

И все-таки, зачем bj_DEGTORAD? Зачем лишние действия?

это я 1 не могу попасть на xgm.ru?

У меня тоже не заходит.

SaRoF   27 февраля 2010 в 19:41

Никто не может.Так что насчет 3 вопроса? И мне нужно просто запустить еще 1 таймер одноразовый перед тем как запустить MOVE таймер на 2 секунды а потом зделать чтобы он зазвинел и когда он зазвонит то вырубить тригер MOVE и уничтожить u2? и все ето чтобы не использовать Wait который лагает верно ? Но как мне указать время когда должен зазвонить таймер и действия которые произойдут ?

JassMan   27 февраля 2010 в 20:13

Dr. Manhattan
а ты попробуй передвигать юнита без bj_DEGTORAD, посмотрим что у тя получится

А потом вернись к моему посту 27.02.10 14:16 и посмотри что такое CosBJ и SinBJ

у тя JassCraft прога вообще есть?
если нет то скачай и почитай blizard.j файл в нём

Dr. Manhattan   27 февраля 2010 в 20:27

Ну расскажи, что получится, мне что-то пробовать лень. Я надеюсь, ты не забыл a+1 заменить на a+0.0314, а a+90 на a+1.57?

Про CosBJ и SinBJ речи сейчас не идет. Просто ты сначала угол в градусы переводишь, потом тут же - в радианы. Нахрена он тебе в градусах?

вернись к моему посту 27.02.10 14:16 и посмотри что такое CosBJ и SinBJ

Да знаю я, что это такое. Зачем, по-твоему, вообще были введены эти функции? Не для того случайно, чтобы пользователи не вводили каждый раз этот bj_DEGTORAD, а пользовались более компактной записью?

SaRoF, 3-й вопрос это про создание хеш-таблицы? Создаешь глобальную переменную типа хеш-таблица с названием Hash. В Джассе к ней обращаешься через udg_Hash. Далее нужен триггер с событием Map initialization и действием set udg_Hash=InitHashtableBJ(). Вот так она и создается.

JassMan   27 февраля 2010 в 22:57

кто тебе сказал что я перевожу их в градусы (покажи мне место где я их перевожу в градусы)? я только пишу их в градусах, а потом перевожу в радианы. ибо комп считает всё внутри этой функции через радианы. Поэтому и надо их переводить в радианы.

Так, мне поможет кто нить? Я всё еще не решил эту проблему 27.02.10 18:08, а продолжение здесь 27.02.10 19:18

Мой пост 27.02.10 15:57 не дурно расширил границы этой темы))

Dragon27   27 февраля 2010 в 23:47

Извлекал файлы из "Patch WC3TFT 1.24C_ruRU" (из етого файла потому что в том что ты сказал таких файлов небыло там были сплошные.. неопознаные файлы) програмой "WinMPQ".Ето связано с тем что русский патч?
Откуда извлекал? Из патчера?
Нельзя так делать :)

На xgm в темке с патчем (в разделе jass) есть ссылка на обновлённый common.j - подставь его, тебе больше ничё особо и не надо.

А ты написал наоборот: GetUnitY(u)-GetUnitY(d),GetUnitX(u)-GetUnitX(d). Ну, если по логике, ты же измеряешь угол положения юнита d относительно неподвижного юнита u, а не наоботот?
Я вроде так пробовал, но результат не добился.

Dragon27   27 февраля 2010 в 23:52

Так, мне поможет кто нить?
Не понимаю, что ты хочешь сделать кодом?

JassMan   27 февраля 2010 в 23:55

..лять xyли тут непонятного?!!!
Я хочу в функции Circle_Move создать переменную группы g
через какой Handle мне нужно сохранить её, чтоб там загрузить?

ну яж ..лять не на татарском вам объясняю, по-моему достаточно повнимательней почитать мой пост чтоб понять суть вопроса.

нихера мне с кодом не нужно делать. мне только нужно знать через чей хандл сохранить группу

сижу часами жду помощи . . . а потом узнаю что вопрос нихера не понятен кому-то.

Dragon27   28 февраля 2010 в 01:20

Буквальную суть вопроса я, разумеется, понял. Но я тебе ещё раз повторяю: для чего тебе это надо? Какой в этом смысл?

JassMan   28 февраля 2010 в 01:54

Да что тебе даст смысл? Просто скажи, каким раком запихнуть в ту функцию мою группу. Тебе ведь смысл задуманного ничего не даст.
Все возможные способы скажи, как туда запихать (сохранить группу).
Желательно через какой нибудь Handle (мне важна уникальность названия категории).

Если я тебе скажу, что я задумал вы еще 3 дня будете думать — чтож я вам тут написал. . . .
Я же на татарском, видите ли, пишу . . .

Dr. Manhattan   28 февраля 2010 в 08:59

KiLLiNG_SPREEE, я тебя еще раз спрашиваю, ты через хэндл GetExpiredTimer() пробовал?

покажи мне место где я их перевожу в градусы

local real a=bj_RADTODEG*Atan2(GetUnitY(d)-GetUnitY(u),GetUnitX(d)-GetUnitX(u)) - значение Atan2 переводится в градусы, тк комп это значение считает в радианах.

call SetUnitX(d,GetUnitX(u)+600*Cos((a+1)*bj_DEGTORAD)) - значение a, которое ты только что перевел в градусы, переводится обратно в радианы, тк комп функцию Cos считает в радианах.

Вопрос: что изменится, если в первой убрать bj_RADTODEG, а во второй - bj_DEGTORAD, и вместо а+1 написать а+0.01?

SaRoF   28 февраля 2010 в 11:42

KiLLiNG_SPREEE =).
Вот теперь помоему ты меня понимаеш я свой код немогу уже неделю с лишним зделать.. если вы заметили конечно.Тяжело же все сразу написать нужно мне каждый день что то новое сообщать, чтобы джазз я освоил через 5 лет XD.

кстати я таки нашел команду как обозначить область порылся во всяких скилах других людей.. Но к сожелению ето все на XGM поетому щас выложить немогу.И еще я до сих пор немогу почему то зделать хештаблицу.. в новом тригере там где событие инстализация карты в действиях пишу следуещее:
local hashtable hash
set hash = udg_hash
udg_Hash=InitHashtableBJ()

а оно кричит отсутствует индекс масива поставил [1] выскакивает "Попытка проиндексировать переменную" - т.е другая ошибка.. я просто реально не помню как делать глобальные... а xgm не работает + там чел который писал гайд говорил что в джазе глобальные вобще не нужны в 90% случаев.. ну вобщем я и не вчитывался поетому.

И Draqon27 по поводу: На xgm в темке с патчем (в разделе jass) есть ссылка на обновлённый common.j" а ссылку на темку ? или мне так в поисковике и вводить Темка с патчем ?) плз ) дай ссылку.

Dr. Manhattan   28 февраля 2010 в 12:06

я просто реально не помню как делать глобальные

В редакторе триггеров сверху есть кнопочка с желтой буквой Х. Это редактор переменных. Если там создать переменную с названием Hash, то в джассе к ней надо будет обращаться как к udg_Hash. В триггере с событием map initialization вводишь одну-единственную строчку custom script'а - call udg_Hash=InitHashtableBJ()

SaRoF   28 февраля 2010 в 12:15

+_+ плять..

у меня нету типа хеш таблицы (когда создаеш переменную вобще любую нужно указать тип).. я создал переменную hash просто переменная разрушаемый обьект.Зделал функцию инсталицазия и ввел call udg_Hash=InitHashtableBJ() выдает ошибку отсутствует название функции.

Dr. Manhattan   28 февраля 2010 в 12:30

у меня нету типа хеш таблицы

У тебя какая версия варика?

SaRoF   28 февраля 2010 в 12:35

1.24c а там так и должно быть написано хеш таблица ? у меня есть таблица рекордов,юнит,декорация и т.д и есть только одна таблица ) таблица рекордов.

Dr. Manhattan   28 февраля 2010 в 12:39

Должен быть тип, ищи лучше.

pix.PlayGround.ru

JassMan   28 февраля 2010 в 14:34

Dr. Manhattan И чож я так туплю . . .
в таком случае почему в первый раз эта херня не сработала

SaRoF   28 февраля 2010 в 17:03

у меня даже ссылка нету а хеш-таблицы уж темболее.. я хз че ето такое.

Dragon27   28 февраля 2010 в 18:16

Да что тебе даст смысл? Просто скажи, каким раком запихнуть в ту функцию мою группу. Тебе ведь смысл задуманного ничего не даст.
Все возможные способы скажи, как туда запихать (сохранить группу).
Желательно через какой нибудь Handle (мне важна уникальность названия категории).

Я это к тому, что это можно сделать совсем другим способом. Например циклом ;)
И ещё раз, глядя на твой код - я не понимаю, зачем тебе это нужно.

Ты делал через таймер, как Манхеттен советовал?

а ссылку на темку ? или мне так в поисковике и вводить Темка с патчем ?) плз ) дай ссылку.
Она на первой странице, в прикреплённых. Сейчас на самом верху.
Кроме того, там даже есть темка "Common.j вопросник"

SaRoF   28 февраля 2010 в 19:50

))))Мне так ето нравится, такое впечетление что они тоже просто незнают етой команды потому растягивают разговор, в етом время предлагая другие варианты.А если ето не так то просто сказать ответ что нельзя ? Если честно то ето ужасно бесит, ты просиш причем уже не первый раз, а тебе вместо ответа.. отмазку как бы суют). (опять же нехочю никого обидить, но выглядит ето именно так.)


я хз мб у меня ворлд едитор ссылается на варик версии 1.22 у меня их просто 2 штуки.. я хз.(спустя несколько минут) Хотя нет я посмотрел инфо пишет версия 1.24с (6059) (нажал кнопку на верхней панеле редактора "Справка"->"О программе") .

Dr. Manhattan   28 февраля 2010 в 20:23

в таком случае почему в первый раз эта херня не сработала

Не знаю, что у тебя было в первый раз.

))))Мне так ето нравится, такое впечетление что они тоже просто незнают етой команды потому растягивают разговор, в етом время предлагая другие варианты.А если ето не так то просто сказать ответ что нельзя ? Если честно то ето ужасно бесит, ты просиш причем уже не первый раз, а тебе вместо ответа.. отмазку как бы суют). (опять же нехочю никого обидить, но выглядит ето именно так.)

По-моему, если твой варик вообще не знает о таком типе объекта, как хэш-таблица, то переменную с этим типом ты вряд ли создашь. Я не специалист, но, скорее всего, это так. Я не знаю, как ты там извращался со всякими патчами, и как у тебя два ворлд эдитора оказались разных версий, но советую тебе снести это все нафиг, установить варкрафт и пропатчить его до 1.24.

Dragon27   1 марта 2010 в 00:15

Мне так ето нравится, такое впечетление что они тоже просто незнают етой команды потому растягивают разговор, в етом время предлагая другие варианты.А если ето не так то просто сказать ответ что нельзя ? Если честно то ето ужасно бесит, ты просиш причем уже не первый раз, а тебе вместо ответа.. отмазку как бы суют). (опять же нехочю никого обидить, но выглядит ето именно так.)
Я просто пытаюсь докопаться до того, что реально нужно человеку, а не то, что он считает, что ему нужно :))

Вариантов решения:
- либо попробовать таймером, как уже предложил Манхэттен
- либо элементарным циклом
- либо самым очевидным (но почему-то самым не признаваемым некоторыми кодерами) способом - глобалками, как делают все нормальные люди.

Facking   1 марта 2010 в 18:54

Воббщем беда такая) создал на одной мапе рассу.. тоесть заменил альянс и попытался седелать их Высшими эльфами.Комп играет за них но пришлось заменить 2-х героев палла и горного короля, сделал других.как сделать что бы комп использовал новые скиллы этих героев.т.к героев он создаёт а скиллы не использует.И 2-я проблема комп не хочет делать 3-й апгрейд на главное здание.Всем спс

Dragon27   1 марта 2010 в 19:23

Воббщем беда такая) создал на одной мапе рассу.. тоесть заменил альянс и попытался седелать их Высшими эльфами.Комп играет за них но пришлось заменить 2-х героев палла и горного короля, сделал других.как сделать что бы комп использовал новые скиллы этих героев.т.к героев он создаёт а скиллы не использует.И 2-я проблема комп не хочет делать 3-й апгрейд на главное здание.Всем спс
переписывать AI - идеальный вариант :)

Dragon27   1 марта 2010 в 22:08

Ты думаешь, что мы не сможем
самостоятельно форматировать
свои надписи?

JassMan   2 марта 2010 в 00:48

Так, народ, слишком много постов. (более 700)
Переезжаем Тема по вопросам о WorldEditor №8

narss   11 августа 2010 в 15:24

помогите можете сделать способность такой шар ставиш в определённую область она ещё выглядит область как огненый дождь и она эта сфера всех притягивает и снимает жизни
ещё можно 3 сособность pit lord как в доте где он могилки вытаскивет из земли

seregasd4   14 мая 2013 в 19:57

Подскажите пожалуйста как вот сделать!Сделал телепорт и хочу что бы герой после 10 лвл мог телепортироваться только!подскажите как сделать заранее спс

k0lenval   14 мая 2013 в 21:18

seregasd4
Измени в Редакторе объектов - Способности - Твоя способность - Требуемый уровень-10.
PS
ты бы еще в теме за 2000г написал - Данная тема считается закрытой, пиши в #9.