Сейчас 05:01:19 Среда, 10 августа, 2022 год
[ x ] Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Картинки В о й т и   или   з а р е г и с т р и р о в а т ь с я


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Модератор форума: Bru  
Форум о Warcraft 3 » Прочее » Отвал » Вопросник
Вопросник
VedunДата: Пятница, 18 Мая 2007, 13:15:16 | Сообщение # 1
2 уровень
Группа: Проверенные
Сообщений: 39
Награды: 0
Репутация: 47
Блокировки:
Выкладывайте здесь вопросы по JASS. Постараюсь ответить на все.

Q. Что такое JASS?
A. JASS - язык программирования.


Сообщение отредактировал Vedun - Пятница, 18 Мая 2007, 13:19:10
 

ApollonДата: Суббота, 12 Июля 2008, 14:49:51 | Сообщение # 51
6 уровень
Группа: Проверенные
Сообщений: 197
Награды: 0
Репутация: 17
Блокировки:
Quote (Zakhar)
GetLocalPlayer() вернет игрока за данным компом.

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

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


My skills:


Сообщение отредактировал Apollon - Суббота, 12 Июля 2008, 14:57:28
 

ZakharДата: Воскресенье, 13 Июля 2008, 00:27:04 | Сообщение # 52
2 уровень
Группа: Заблокированные
Сообщений: 28
Награды: 0
Репутация: 7
Блокировки:
Даже в коллективной игре на компе каждого игрока запускается скрипт карты. 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(16.7 Kb)


Следы моей активности на форуме удалить
 

MaSerДата: Воскресенье, 13 Июля 2008, 01:44:01 | Сообщение # 53
Котобог
Группа: Стримеры
Сообщений: 3574
Награды: 13
Блокировки:
Zakhar, и не десинят такие вещи случайно? А то йа сам не работал

 

dredsssДата: Воскресенье, 13 Июля 2008, 03:06:57 | Сообщение # 54
7 уровень
Группа: Проверенные
Сообщений: 403
Награды: 1
Репутация: 50
Блокировки:
как заставить компа игрока напасть на другого игрока с Х количестовм юнитов и если он проигрывает чтоб он отступил ???
 

MaSerДата: Воскресенье, 13 Июля 2008, 03:43:04 | Сообщение # 55
Котобог
Группа: Стримеры
Сообщений: 3574
Награды: 13
Блокировки:
dredsss, редактором ии....

 

ZakharДата: Воскресенье, 13 Июля 2008, 12:05:23 | Сообщение # 56
2 уровень
Группа: Заблокированные
Сообщений: 28
Награды: 0
Репутация: 7
Блокировки:
dredsss, способ реализации зависит от того, каким способом ты пишешь скрипт: редактор ИИ, триггеры, JASS в war3map.j, JASS в *.ai, а также используешь ли ты капитанов.
--------------
Если скрипт передает послание через сеть, то возникает десинхронизация и бан. В остальных случаях могут нарисоваться баги. Виноватым может быть или картостроитель или близзард, а бан получит игрок. Риск.


Следы моей активности на форуме удалить
 

GryphonДата: Понедельник, 14 Июля 2008, 07:21:35 | Сообщение # 57
Техногенный Упырь
Группа: Заблокированные
Сообщений: 277
Награды: 0
Репутация: 19
Блокировки:
Quote (MaSer)
Zakhar, и не десинят такие вещи случайно? А то йа сам не работал

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


Взломала вашего спеца по безопасности. Считалось, что это очень трудно.
06061409 - был пароль. Тупость.
 

dredsssДата: Понедельник, 14 Июля 2008, 12:49:12 | Сообщение # 58
7 уровень
Группа: Проверенные
Сообщений: 403
Награды: 1
Репутация: 50
Блокировки:
не парни мне не для бота :)
я тут картку делаю и вот решил разнообразить её

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

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

Сообщение отредактировал dredsss - Понедельник, 14 Июля 2008, 12:50:16
 

GryphonДата: Понедельник, 14 Июля 2008, 14:23:16 | Сообщение # 59
Техногенный Упырь
Группа: Заблокированные
Сообщений: 277
Награды: 0
Репутация: 19
Блокировки:
dredsss, стукни мне в Жаббер Mutofreak@gmail.com

Взломала вашего спеца по безопасности. Считалось, что это очень трудно.
06061409 - был пароль. Тупость.
 

PadlaДата: Понедельник, 14 Июля 2008, 15:23:10 | Сообщение # 60
жнец
Группа: Ветераны
Сообщений: 839
Награды: 5
Репутация: 924
Блокировки:
А как расшифровывается слово Jass?



Сообщение отредактировал Padla - Понедельник, 14 Июля 2008, 15:23:32
 

GryphonДата: Понедельник, 14 Июля 2008, 15:23:47 | Сообщение # 61
Техногенный Упырь
Группа: Заблокированные
Сообщений: 277
Награды: 0
Репутация: 19
Блокировки:
Padla, Just another script что то там еще.

Взломала вашего спеца по безопасности. Считалось, что это очень трудно.
06061409 - был пароль. Тупость.
 

MaSerДата: Вторник, 15 Июля 2008, 01:59:52 | Сообщение # 62
Котобог
Группа: Стримеры
Сообщений: 3574
Награды: 13
Блокировки:
Чудо, систем

 

GryphonДата: Вторник, 15 Июля 2008, 06:11:28 | Сообщение # 63
Техногенный Упырь
Группа: Заблокированные
Сообщений: 277
Награды: 0
Репутация: 19
Блокировки:
local trackable tr=GetTriggeringTrackable()
Собственно по поводу этой функции вопрос требует ли обнуление функция, потому что выделяемая на нее ячейка автоматически уничтожилась O.O просто после потерки самого трекабля, сама ячейка без всяких null у меня высвабодилась, причем не одна. Что за чертовщина с варом у меня твариться?


Взломала вашего спеца по безопасности. Считалось, что это очень трудно.
06061409 - был пароль. Тупость.
 

ZakharДата: Вторник, 15 Июля 2008, 08:38:05 | Сообщение # 64
2 уровень
Группа: Заблокированные
Сообщений: 28
Награды: 0
Репутация: 7
Блокировки:
Наверно не функция и не ячейка, а переменная.
Действительно, не все переменные, наследующие тип 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 Июля 2008, 08:41:27
 

GryphonДата: Вторник, 15 Июля 2008, 08:52:12 | Сообщение # 65
Техногенный Упырь
Группа: Заблокированные
Сообщений: 277
Награды: 0
Репутация: 19
Блокировки:
Zakhar, спасибо за помощь, пойду проверять))).

Взломала вашего спеца по безопасности. Считалось, что это очень трудно.
06061409 - был пароль. Тупость.
 

MaSerДата: Вторник, 15 Июля 2008, 13:52:46 | Сообщение # 66
Котобог
Группа: Стримеры
Сообщений: 3574
Награды: 13
Блокировки:
Zakhar, ятд бесконечный цикл выкидывает сразу итак )

 

GryphonДата: Вторник, 15 Июля 2008, 14:40:05 | Сообщение # 67
Техногенный Упырь
Группа: Заблокированные
Сообщений: 277
Награды: 0
Репутация: 19
Блокировки:
MaSer, ога))), не совсем. Его можно прекрашать, я запускал через определенную промежутки таймером и смотрел изменения.

Взломала вашего спеца по безопасности. Считалось, что это очень трудно.
06061409 - был пароль. Тупость.
 

ZakharДата: Среда, 16 Июля 2008, 09:42:58 | Сообщение # 68
2 уровень
Группа: Заблокированные
Сообщений: 28
Награды: 0
Репутация: 7
Блокировки:
Когда мой пример сохраняют и используют в виде ИИ (elf.ai), он работает без единой проблемы. Результат работы заметен уже через 5 секунд.
JASS - проклятый язык. То что в одном месте работает в другом месте может не работать и наоборот.
Таймеры в этом исследовании не нужны, а нужны Ctrl+Shift+Esc и Ctrl+Alt+Del.


Следы моей активности на форуме удалить
 

MaSerДата: Среда, 16 Июля 2008, 12:44:15 | Сообщение # 69
Котобог
Группа: Стримеры
Сообщений: 3574
Награды: 13
Блокировки:
Zakhar, ну да, если в ии, то вроде так и должно быть :хз: . Но проще сделать просто ве с событием 0,01 сек.

 

GryphonДата: Среда, 16 Июля 2008, 13:39:55 | Сообщение # 70
Техногенный Упырь
Группа: Заблокированные
Сообщений: 277
Награды: 0
Репутация: 19
Блокировки:
Quote (MaSer)
у да, если в ии, то вроде так и должно быть

РОФЛ


Взломала вашего спеца по безопасности. Считалось, что это очень трудно.
06061409 - был пароль. Тупость.
 

ZakharДата: Среда, 16 Июля 2008, 17:18:05 | Сообщение # 71
2 уровень
Группа: Заблокированные
Сообщений: 28
Награды: 0
Репутация: 7
Блокировки:
Уточню.
Безобразия, возникающие привыполнении скриптов ИИ и карты различаются, поэтому участки кода из war3map.j там же и надо проверять.
В ИИ проще всего использовать бесконечный цикл как в примере. Остается секунд 10 на останов вара.
В war3map.j лучше использовать цикл на 20 - 100 итераций внутри триггера с событием 0.01 сек. Иначе любопытствующий программер либо не заметит утечек либо утечки снесут ОС.
Еще одна странность: в всевдопотоке main я утечек что-то не поймал.


Следы моей активности на форуме удалить
 

GryphonДата: Четверг, 17 Июля 2008, 04:19:21 | Сообщение # 72
Техногенный Упырь
Группа: Заблокированные
Сообщений: 277
Награды: 0
Репутация: 19
Блокировки:
Quote (Zakhar)
в всевдопотоке main я утечек что-то не поймал.

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


Взломала вашего спеца по безопасности. Считалось, что это очень трудно.
06061409 - был пароль. Тупость.
 

IskaДата: Понедельник, 28 Июля 2008, 22:00:01 | Сообщение # 73
1 уровень
Группа: Пользователи
Сообщений: 17
Награды: 0
Репутация: 1
Блокировки:
Извините можете помочь как зделать что бы при магии Молот Бурь врак отлетал от тебя а? :D
------------------------------------
ДОБАВЛЕНО МЕСНЫМ ХАКЕРОМ
Этот смайлик и грамматические ошибки выглядят оскорбительно.
Пароль на аккаунт тоже оскорбителен для сайта:12345678
По сабжу: можно использовать SetUnitPosition, но эта функция создает утечки. Лучшего ответа не заслуживаешь.


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


Сообщение отредактировал Iska - Вторник, 29 Июля 2008, 11:35:14
 

MalfattoДата: Пятница, 08 Августа 2008, 07:26:28 | Сообщение # 74
Группа: Модераторы
Сообщений: 3806
Награды: 7
Репутация: 2425
Блокировки:
насчет бесконечного цикла: а не попробывать ли так?
local integer int = 0
loop
exitwhen int = 9999999999 //О_о
//
set int = int + 1
endloop
 

GoobliinДата: Пятница, 08 Августа 2008, 10:00:32 | Сообщение # 75
8 уровень
Группа: Ветераны
Сообщений: 618
Награды: 0
Репутация: 116
Блокировки:
что называется потоком?
 

Форум о Warcraft 3 » Прочее » Отвал » Вопросник
Поиск:

Copyright © 2006 - 2022 Warcraft3FT.info При копировании материалов c сайта ставьте, пожалуйста, активную обратную ссылку на нас • Design by gReeB04ki ©
Хостинг от uCoz