Воскресенье, 07-09-2008, 09:32 Приветствую Вас Гость, пожалуйста зарегистрируйтесь!


Всё для Warcraft 3

Главная | Форум | Регистрация | Вход | RSS | MAP
[ Файлы | Статьи | Обои ]
[Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 3 из 4«1234»
Модератор форума: BL-AF, MaSer 
Форум о Warcraft 3 » Раздел для картостроителей » JASS » JASS вопросник (см. название)
JASS вопросник
Apollon Дата: Суббота, 12-07-2008, 09:22 | Сообщение # 51
Генерал-майор
Группа: Проверенные
Сообщений: 277
Репутация: 13 [2%]
Замечания: 20%

Есть какие нибудь JASS функции, чтобы заставить компа-игрока сказать что-нибудь в чат?

Практикуйте спонтанные акты доброты, милосердия и красоты
Zakhar Дата: Суббота, 12-07-2008, 10:35 | Сообщение # 52
Сержант
Группа: Пользователи
Сообщений: 32
Репутация: 7 [1%]
Замечания: 0%

nothing DisplayTextToPlayer(player toPlayer, real x, real y, string message )
nothing DisplayTimedTextToPlayer (player toPlayer, real x, real y, real duration, string message )
nothing DisplayTimedTextFromPlayer(player toPlayer, real x, real y, real duration, string message )
nothing ClearTextMessages()
real x и real y должны быть равны 0.
real duration - время показа сообщения.
GetLocalPlayer() вернет игрока за данным компом.
Apollon Дата: Суббота, 12-07-2008, 14:49 | Сообщение # 53
Генерал-майор
Группа: Проверенные
Сообщений: 277
Репутация: 13 [2%]
Замечания: 20%

Quote (Zakhar)
GetLocalPlayer() вернет игрока за данным компом.

Как понять "вернет игрока за данным компом"?

И еще плиз, покажи примеры:
1)Комп 3 игрок пишет всем:" Привет!"
2)Комп 3 игрок пишет союзникам: "Привет!"
3)Комп 3 игрок пишет зритеоям: "Привет"!
4)Комп 3 игрок пишет 6 игроку: "Привет!"


Практикуйте спонтанные акты доброты, милосердия и красоты


Сообщение отредактировал Apollon - Суббота, 12-07-2008, 14:57
Zakhar Дата: Воскресенье, 13-07-2008, 00:27 | Сообщение # 54
Сержант
Группа: Пользователи
Сообщений: 32
Репутация: 7 [1%]
Замечания: 0%

Даже в коллективной игре на компе каждого игрока запускается скрипт карты. GetLocalPlayer возвращает объект карты с контекстом одного игрока, того - на котором запущен данный скрипт.
Если скриптом передать сообщение не локальному игроку, то получится так, что все скрипты карты на всех подлюченных компах отправят сообщение какому-то игроку. Скрипты то одинаковые (думает близзард). И возникает баг. Поэтому нам остается работать только с локальным игроком.
Пример на JASS и на триггерах. Не отлажен и не проверен.
Code
globals

endglobals
//-----------------
function TextToAllz takes nothing returns integer
     call DisplayTimedTextToPlayer(GetLocalPlayer(),0,0,15, "Hello")
endfunction
function TextToAlliesz takes nothing returns integer
     if IsPlayerAlly(GetLocalPlayer(),Player(2)) then
         call DisplayTimedTextToPlayer(GetLocalPlayer(),0,0,15, "Hello")
     endif
endfunction
function TextToObserversz takes nothing returns integer
     if IsPlayerObserver(GetLocalPlayer()) then
         call DisplayTimedTextToPlayer(GetLocalPlayer(),0,0,15, "Hello")
     endif
endfunction
function TextToPlayer6z takes nothing returns integer
     if GetLocalPlayer() == Player(5) then
         call DisplayTimedTextToPlayer(GetLocalPlayer(),0,0,15, "Hello")
     endif
endfunction
//-----------------
function main takes nothing returns nothing
     loop
         call Sleep(11)
     endloop
endfunction

Прикрепления: message.w3m(17Kb)
MaSer Дата: Воскресенье, 13-07-2008, 01:44 | Сообщение # 55
Генерал-лейтенант
Группа: КоМодераторы
Сообщений: 725
Репутация: 30 [6%]
Замечания: 0%

Zakhar, и не десинят такие вещи случайно? А то йа сам не работал

RTFM!
dredsss Дата: Воскресенье, 13-07-2008, 03:06 | Сообщение # 56
Генерал-майор
Группа: Пользователи
Сообщений: 300
Репутация: 13 [2%]
Замечания: 20%

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

и почему у меня этот аватар на всех форумах :)
я понял одно какой же я нуб.........................
MaSer Дата: Воскресенье, 13-07-2008, 03:43 | Сообщение # 57
Генерал-лейтенант
Группа: КоМодераторы
Сообщений: 725
Репутация: 30 [6%]
Замечания: 0%

dredsss, редактором ии....

RTFM!
Zakhar Дата: Воскресенье, 13-07-2008, 12:05 | Сообщение # 58
Сержант
Группа: Пользователи
Сообщений: 32
Репутация: 7 [1%]
Замечания: 0%

dredsss, способ реализации зависит от того, каким способом ты пишешь скрипт: редактор ИИ, триггеры, JASS в war3map.j, JASS в *.ai, а также используешь ли ты капитанов.
--------------
Если скрипт передает послание через сеть, то возникает десинхронизация и бан. В остальных случаях могут нарисоваться баги. Виноватым может быть или картостроитель или близзард, а бан получит игрок. Риск.
Чудо Дата: Понедельник, 14-07-2008, 07:21 | Сообщение # 59
Техногенный Упырь
Группа: Модераторы
Сообщений: 733
Репутация: 13 [2%]
Замечания: 20%

Quote (MaSer)
Zakhar, и не десинят такие вещи случайно? А то йа сам не работал

Нет. Локал плеер десинхронизует всего лишь в парочке случаев.
dredsss, ты хочешь чтобы за тебя контролил в батле бот? Не стоит мен)))). Если и писать бота для батлы то хилера. Чтобы он отводил юнита игнорируя твои приказы и хилял другими по возможности, лично мне бы помогло сократить апм, и расслабиться немного в игре ;)

Даже когда мы не вместе, мы будем смотреть в одно небо...
dredsss Дата: Понедельник, 14-07-2008, 12:49 | Сообщение # 60
Генерал-майор
Группа: Пользователи
Сообщений: 300
Репутация: 13 [2%]
Замечания: 20%

не парни мне не для бота :)
я тут картку делаю и вот решил разнообразить её

хм если можно то поподробней распишите я в ккартостроительстве моно сказать нуб :)

П.с:масер у тя мейлагент есть ??? а то я винду переустанавливал и запорол асю


и почему у меня этот аватар на всех форумах :)
я понял одно какой же я нуб.........................


Сообщение отредактировал dredsss - Понедельник, 14-07-2008, 12:50
Чудо Дата: Понедельник, 14-07-2008, 14:23 | Сообщение # 61
Техногенный Упырь
Группа: Модераторы
Сообщений: 733
Репутация: 13 [2%]
Замечания: 20%

dredsss, стукни мне в Жаббер Mutofreak@gmail.com

Даже когда мы не вместе, мы будем смотреть в одно небо...
Padla Дата: Понедельник, 14-07-2008, 15:23 | Сообщение # 62
Свихнувшийся гений
Группа: Новостейщики
Сообщений: 298
Репутация: 22 [4%]
Замечания: 0%

А как расшифровывается слово Jass?

Помешан на науке...
В топку CMS системы всё делаю руками и с нуля

Я отомсю всем за тему "захвать мира" и мстя моя будет ужасна к каждому из вас придёт гигантский робот ёжик и съест!
помогу чем смогу
ГИГАНТСКИЙ РОБОТ ЁЖИК ГОТОВ НА 5%
$$$


Сообщение отредактировал Padla - Понедельник, 14-07-2008, 15:23
Чудо Дата: Понедельник, 14-07-2008, 15:23 | Сообщение # 63
Техногенный Упырь
Группа: Модераторы
Сообщений: 733
Репутация: 13 [2%]
Замечания: 20%

Padla, Just another script что то там еще.

Даже когда мы не вместе, мы будем смотреть в одно небо...
MaSer Дата: Вторник, 15-07-2008, 01:59 | Сообщение # 64
Генерал-лейтенант
Группа: КоМодераторы
Сообщений: 725
Репутация: 30 [6%]
Замечания: 0%

Чудо, систем

RTFM!
Чудо Дата: Вторник, 15-07-2008, 06:11 | Сообщение # 65
Техногенный Упырь
Группа: Модераторы
Сообщений: 733
Репутация: 13 [2%]
Замечания: 20%

local trackable tr=GetTriggeringTrackable()
Собственно по поводу этой функции вопрос требует ли обнуление функция, потому что выделяемая на нее ячейка автоматически уничтожилась O.O просто после потерки самого трекабля, сама ячейка без всяких null у меня высвабодилась, причем не одна. Что за чертовщина с варом у меня твариться?

Даже когда мы не вместе, мы будем смотреть в одно небо...
Zakhar Дата: Вторник, 15-07-2008, 08:38 | Сообщение # 66
Сержант
Группа: Пользователи
Сообщений: 32
Репутация: 7 [1%]
Замечания: 0%

Наверно не функция и не ячейка, а переменная.
Действительно, не все переменные, наследующие тип hadle, требуют освобождения или не всегда. Чтобы проверить требуется ли освобождение переменной в теле функции можно вызывать свою функцию в цикле и смотреть на виртуальныю память, сожранную вариком. Пример:
globals

endglobals
function MyTestFnz takes nothing returns nothing
local location pAz = Location(0,0)
//call RemoveLocation(pAz)
//set pAz = null
endfunction
function main takes nothing returns nothing
loop
call MyTestFnz()
endloop
endfunction

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

Сообщение отредактировал Zakhar - Вторник, 15-07-2008, 08:41
Чудо Дата: Вторник, 15-07-2008, 08:52 | Сообщение # 67
Техногенный Упырь
Группа: Модераторы
Сообщений: 733
Репутация: 13 [2%]
Замечания: 20%

Zakhar, спасибо за помощь, пойду проверять))).

Даже когда мы не вместе, мы будем смотреть в одно небо...
MaSer Дата: Вторник, 15-07-2008, 13:52 | Сообщение # 68
Генерал-лейтенант
Группа: КоМодераторы
Сообщений: 725
Репутация: 30 [6%]
Замечания: 0%

Zakhar, ятд бесконечный цикл выкидывает сразу итак )

RTFM!
Чудо Дата: Вторник, 15-07-2008, 14:40 | Сообщение # 69
Техногенный Упырь
Группа: Модераторы
Сообщений: 733
Репутация: 13 [2%]
Замечания: 20%

MaSer, ога))), не совсем. Его можно прекрашать, я запускал через определенную промежутки таймером и смотрел изменения.

Даже когда мы не вместе, мы будем смотреть в одно небо...
Zakhar Дата: Среда, 16-07-2008, 09:42 | Сообщение # 70
Сержант
Группа: Пользователи
Сообщений: 32
Репутация: 7 [1%]
Замечания: 0%

Когда мой пример сохраняют и используют в виде ИИ (elf.ai), он работает без единой проблемы. Результат работы заметен уже через 5 секунд.
JASS - проклятый язык. То что в одном месте работает в другом месте может не работать и наоборот.
Таймеры в этом исследовании не нужны, а нужны Ctrl+Shift+Esc и Ctrl+Alt+Del.
MaSer Дата: Среда, 16-07-2008, 12:44 | Сообщение # 71
Генерал-лейтенант
Группа: КоМодераторы
Сообщений: 725
Репутация: 30 [6%]
Замечания: 0%

Zakhar, ну да, если в ии, то вроде так и должно быть :хз: . Но проще сделать просто ве с событием 0,01 сек.

RTFM!
Чудо Дата: Среда, 16-07-2008, 13:39 | Сообщение # 72
Техногенный Упырь
Группа: Модераторы
Сообщений: 733
Репутация: 13 [2%]
Замечания: 20%

Quote (MaSer)
у да, если в ии, то вроде так и должно быть

РОФЛ

Даже когда мы не вместе, мы будем смотреть в одно небо...
Zakhar Дата: Среда, 16-07-2008, 17:18 | Сообщение # 73
Сержант
Группа: Пользователи
Сообщений: 32
Репутация: 7 [1%]
Замечания: 0%

Уточню.
Безобразия, возникающие привыполнении скриптов ИИ и карты различаются, поэтому участки кода из war3map.j там же и надо проверять.
В ИИ проще всего использовать бесконечный цикл как в примере. Остается секунд 10 на останов вара.
В war3map.j лучше использовать цикл на 20 - 100 итераций внутри триггера с событием 0.01 сек. Иначе любопытствующий программер либо не заметит утечек либо утечки снесут ОС.
Еще одна странность: в всевдопотоке main я утечек что-то не поймал.
Чудо Дата: Четверг, 17-07-2008, 04:19 | Сообщение # 74
Техногенный Упырь
Группа: Модераторы
Сообщений: 733
Репутация: 13 [2%]
Замечания: 20%

Quote (Zakhar)
в всевдопотоке main я утечек что-то не поймал.

Хз хз, там они есть полюбому, видимо близы что то по хитрому химичат и скрывают от простых смертных)

Даже когда мы не вместе, мы будем смотреть в одно небо...
Iska Дата: Понедельник, 28-07-2008, 22:00 | Сообщение # 75
Рядовой
Группа: Пользователи
Сообщений: 18
Репутация: 1 [0%]
Замечания: 20%

Извините можете помочь как зделать что бы при магии Молот Бурь врак отлетал от тебя а? :D
------------------------------------
ДОБАВЛЕНО МЕСНЫМ ХАКЕРОМ
Этот смайлик и грамматические ошибки выглядят оскорбительно.
Пароль на аккаунт тоже оскорбителен для сайта:12345678
По сабжу: можно использовать SetUnitPosition, но эта функция создает утечки. Лучшего ответа не заслуживаешь.


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


Сообщение отредактировал Iska - Вторник, 29-07-2008, 11:35
Форум о Warcraft 3 » Раздел для картостроителей » JASS » JASS вопросник (см. название)
Страница 3 из 4«1234»
Поиск: