Сейчас 22:33:14 Четверг, 25 апреля, 2024 год
[ x ] Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Картинки В о й т и   или   з а р е г и с т р и р о в а т ь с я


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Модератор форума: PUVer, SirNikolas, Ty3uK  
Форум о Warcraft 3 » Раздел для картостроителей » GUI / Jass » [ВАЖНО] Общалка кодеров (Обмен опытом | Обсуждение проблем)
[ВАЖНО] Общалка кодеров
SirNikolasДата: Понедельник, 27 Января 2014, 08:43:51 | Сообщение # 326
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Цитата Melodia ()
кинжал можно кликнуть на себя и герой тпшнется хп куда, всегда в разную точку
Нет, он блинкнется в позицию кинжала. А позиция предмета, находящегося в инвентаре героя - это позиция, в которой он лежал перед подбором.


 

BiboДата: Понедельник, 27 Января 2014, 14:49:40 | Сообщение # 327
Группа: Проверенные
Сообщений: 741
Награды: 0
Блокировки:
А-а-а-а, так вот о чем ты, дескать, как в новых дотах "Двойное нажатие применяет на себя"

Сообщение отредактировал Bibo - Понедельник, 27 Января 2014, 14:50:18
 

MelodiaДата: Понедельник, 27 Января 2014, 14:50:36 | Сообщение # 328
Группа: Проверенные
Сообщений: 8026
Награды: 5
Репутация: 5041
Блокировки:
Цитата Bibo ()
как в новых дотах

Я додумался до этого раньше килфрога, но кто поверит? trollface


CM wars 1.15
ЭПОХА АНИМИРОВАННЫХ ТРИГГИРАФ ПРЕШЛА
 

OverkillsДата: Пятница, 31 Января 2014, 19:02:12 | Сообщение # 329
Группа: Проверенные
Сообщений: 1785
Награды: 0
Репутация: 880
Блокировки:
Цитата Melodia ()
но кто поверит

Конечно же твой боевой дух.


 

MelodiaДата: Понедельник, 03 Февраля 2014, 11:35:13 | Сообщение # 330
Группа: Проверенные
Сообщений: 8026
Награды: 5
Репутация: 5041
Блокировки:
Можно ли как-то задать индекс группе All players
В смысле, если я хочу обратиться к группа(игрок с номером)
Так вот можно ли задать номер так, что ты обратишься не к 1 игроку а к all players?


CM wars 1.15
ЭПОХА АНИМИРОВАННЫХ ТРИГГИРАФ ПРЕШЛА
 

BiboДата: Понедельник, 03 Февраля 2014, 13:00:00 | Сообщение # 331
Группа: Проверенные
Сообщений: 741
Награды: 0
Блокировки:
Ты хочешь сказать, нечто вроде Player(all players)? Дескать, одновременно ко всем сразу? Тогда нет.

Сообщение отредактировал Bibo - Понедельник, 03 Февраля 2014, 13:00:36
 

MelodiaДата: Понедельник, 03 Февраля 2014, 13:02:53 | Сообщение # 332
Группа: Проверенные
Сообщений: 8026
Награды: 5
Репутация: 5041
Блокировки:
Ну написал функцию, чтобы 1 строчкой заставлять текст всплывать.
Награда за убийство например, исчезающая и видная только убийце.
Но вот я хочу использовать ту же функцию для отображения текста всем игрокам.

function tix takes real ang, real fad, real dur, real dal, string tex, location Poso, real rr, real gg, real bb, real fs, real tp, integer pg returns nothing
call CreateTextTagLocBJ( tex, Poso, 0, fs, rr, gg, bb, tp )
call SetTextTagPermanentBJ( GetLastCreatedTextTag(), false )
call SetTextTagLifespanBJ( GetLastCreatedTextTag(), dur )
call SetTextTagFadepointBJ( GetLastCreatedTextTag(), fad )
call SetTextTagVelocityBJ( GetLastCreatedTextTag(), dal, ang )
call ShowTextTagForceBJ( false, GetLastCreatedTextTag(), GetPlayersAll() )
call ShowTextTagForceBJ( true, GetLastCreatedTextTag(), udg_Player[pg] )
endfunction


CM wars 1.15
ЭПОХА АНИМИРОВАННЫХ ТРИГГИРАФ ПРЕШЛА
 

BiboДата: Понедельник, 03 Февраля 2014, 13:05:36 | Сообщение # 333
Группа: Проверенные
Сообщений: 741
Награды: 0
Блокировки:
В таком случае можно просто добавить проверку, если функция вместо конкретного игрока получает значение NULL(то бишь нет игрока), то вывести сообщение всем игрокам.

Сообщение отредактировал Bibo - Понедельник, 03 Февраля 2014, 13:05:55
 

MelodiaДата: Понедельник, 03 Февраля 2014, 13:06:07 | Сообщение # 334
Группа: Проверенные
Сообщений: 8026
Награды: 5
Репутация: 5041
Блокировки:
Тока если брать ещё логическую и если она false - то не прятать текст. =\

Добавлено (03 Февраля 2014, 13:06:07)
---------------------------------------------

Цитата Bibo ()
В таком случае можно просто добавить проверку, если функция вместо конкретного игрока получает значение NULL(то бишь нет игрока)

Я нипанимат(


CM wars 1.15
ЭПОХА АНИМИРОВАННЫХ ТРИГГИРАФ ПРЕШЛА
 

BiboДата: Понедельник, 03 Февраля 2014, 13:08:19 | Сообщение # 335
Группа: Проверенные
Сообщений: 741
Награды: 0
Блокировки:
Цитата Melodia ()
function tix takes real ang, real fad, real dur, real dal, string tex, location Poso, real rr, real gg, real bb, real fs, real tp, integer pg returns nothing
call CreateTextTagLocBJ( tex, Poso, 0, fs, rr, gg, bb, tp )
call SetTextTagPermanentBJ( GetLastCreatedTextTag(), false )
call SetTextTagLifespanBJ( GetLastCreatedTextTag(), dur )
call SetTextTagFadepointBJ( GetLastCreatedTextTag(), fad )
call SetTextTagVelocityBJ( GetLastCreatedTextTag(), dal, ang )
call ShowTextTagForceBJ( false, GetLastCreatedTextTag(), GetPlayersAll() )
call ShowTextTagForceBJ( true, GetLastCreatedTextTag(), udg_Player[pg] )
endfunction

Откуда ты взял эту коллекцию бж? Тут становится непонятно, то ли ты на гуях пытаешься извращаться, то ли жасс такой плохой получается.
 

MelodiaДата: Понедельник, 03 Февраля 2014, 13:26:15 | Сообщение # 336
Группа: Проверенные
Сообщений: 8026
Награды: 5
Репутация: 5041
Блокировки:
Цитата Bibo ()
Откуда ты взял эту коллекцию бж?

Правка - конвертировать в текст)))))00


CM wars 1.15
ЭПОХА АНИМИРОВАННЫХ ТРИГГИРАФ ПРЕШЛА
 

BiboДата: Понедельник, 03 Февраля 2014, 13:35:28 | Сообщение # 337
Группа: Проверенные
Сообщений: 741
Награды: 0
Блокировки:
Цитата Melodia ()
конвертировать в текст



Ты собираешься его через Custom Script задействовать? Может тогда я тебе что-нибудь более приличное напишу?


Сообщение отредактировал Bibo - Понедельник, 03 Февраля 2014, 13:35:42
 

MelodiaДата: Понедельник, 03 Февраля 2014, 13:45:27 | Сообщение # 338
Группа: Проверенные
Сообщений: 8026
Награды: 5
Репутация: 5041
Блокировки:
Цитата Bibo ()
Ты собираешься его через Custom Script задействовать?

Вообще-то уже давно использую. Вместо борозды действий - одна длиннющая строчка, в которой без бутылки не разберёшься)).
Цитата Bibo ()
Может тогда я тебе что-нибудь более приличное напишу?

А оно короче будет?) Давай!


CM wars 1.15
ЭПОХА АНИМИРОВАННЫХ ТРИГГИРАФ ПРЕШЛА
 

BiboДата: Понедельник, 03 Февраля 2014, 14:24:20 | Сообщение # 339
Группа: Проверенные
Сообщений: 741
Награды: 0
Блокировки:
Цитата Melodia ()
А оно короче будет?

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


Сообщение отредактировал Bibo - Понедельник, 03 Февраля 2014, 14:25:15
 

MelodiaДата: Понедельник, 03 Февраля 2014, 14:32:32 | Сообщение # 340
Группа: Проверенные
Сообщений: 8026
Награды: 5
Репутация: 5041
Блокировки:
Всё нужно. Если бы было ненужно - я бы не писал в функции этого. ._.

Добавлено (03 Февраля 2014, 14:32:32)
---------------------------------------------
Единственное, что не нужно - отступ по Z, поэтому там постоянная.

Цитата Melodia ()
call CreateTextTagLocBJ( tex, Poso, 0, fs, rr, gg, bb, tp )


CM wars 1.15
ЭПОХА АНИМИРОВАННЫХ ТРИГГИРАФ ПРЕШЛА
 

BiboДата: Понедельник, 03 Февраля 2014, 15:05:28 | Сообщение # 341
Группа: Проверенные
Сообщений: 741
Награды: 0
Блокировки:
Тогда в этом мало смысла dunno
Код
function tix takes real ang, real fad, real dur, real dal, string tex, location Poso, real rr, real gg, real bb, real fs, real tp, integer pg returns nothing

Могу посоветовать убрать переменные rr, gg и bb, а цвет текста задавать hex-ом.
Что касательно отображения текста игрокам, даже просто изменив эту функцию, тебе придется пройтись по всем местам где ты ее ранее использовал.
 

MelodiaДата: Понедельник, 03 Февраля 2014, 15:08:33 | Сообщение # 342
Группа: Проверенные
Сообщений: 8026
Награды: 5
Репутация: 5041
Блокировки:
Цитата Bibo ()
Что касательно отображения текста игрокам, даже просто изменив эту функцию, тебе придется пройтись по всем местам где ты ее ранее использовал.

Ну да. :(


CM wars 1.15
ЭПОХА АНИМИРОВАННЫХ ТРИГГИРАФ ПРЕШЛА
 

SirNikolasДата: Понедельник, 03 Февраля 2014, 16:47:08 | Сообщение # 343
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
[code=jass]function AddTextTagPoint takes string text, real textHeight, real x, real y, real angle, real speed, real fadepoint, real lifespan, force displayTo returns nothing
local texttag t = CreateTextTag()
call SetTextTagText(t, text, textHeight)
call SetTextTagPos(t, x, y, .0)
call SetTextTagVelocity(t, speed * .000554688 * Cos(angle), speed * .000554688 * Sin(angle))
call SetTextTagFadepoint(t, fadepoint)
call SetTextTagPermanent(t, false)
call SetTextTagLifespan(t, lifespan)
call SetTextTagVisibility(t, IsPlayerInForce(GetLocalPlayer(), displayTo))
set t = null
endfunction[/code]Если нужно показывать всем игрокам, передать bj_FORCE_ALL_PLAYERS как displayTo, если одному - bj_FORCE_PLAYER[zero_based_index].
Следует учитывать, что для того, чтобы получить "высоту" текста, нужно "размер" (который используется в GUI) умножить на .0023
Углы измеряются, разумеется, в радианах.


 

MelodiaДата: Понедельник, 03 Февраля 2014, 18:10:13 | Сообщение # 344
Группа: Проверенные
Сообщений: 8026
Награды: 5
Репутация: 5041
Блокировки:
Как быдло скажу, что разницы не вижу, ещё и в радианах писать и чета вычислять.

CM wars 1.15
ЭПОХА АНИМИРОВАННЫХ ТРИГГИРАФ ПРЕШЛА
 

SirNikolasДата: Понедельник, 03 Февраля 2014, 18:53:13 | Сообщение # 345
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
[code=jass]function AddTextTagPointBJ takes string text, real size, real x, real y, real angleDeg, real speed, real fadepoint, real lifespan, force displayTo returns nothing
call AddTextTagPoint(text, size * .0023, x, y, angleDeg * .0174533, speed, fadepoint, lifespan, displayTo)
endfunction[/code]

Добавлено (03 Февраля 2014, 18:53:13)
---------------------------------------------

Цитата Melodia ()
разницы не вижу
Насколько я помню, изначально вопрос был в том, как адаптировать функцию для работы как с группами, так и с одиночными игроками.


 

MelodiaДата: Понедельник, 03 Февраля 2014, 19:18:17 | Сообщение # 346
Группа: Проверенные
Сообщений: 8026
Награды: 5
Репутация: 5041
Блокировки:
Цитата SirNikolas ()
Насколько я помню, изначально вопрос был в том, как адаптировать функцию для работы как с группами, так и с одиночными игроками.

Точно :D Верно. Спасибо. Правда я уже переправил, сорри.

function tix takes real ang, real fad, real dur, real dal, string tex, location Poso, real rr, real gg, real bb, real fs, real tp, integer pg returns nothing
call CreateTextTagLocBJ( tex, Poso, 0, fs, rr, gg, bb, tp )
call SetTextTagPermanentBJ( GetLastCreatedTextTag(), false )
call SetTextTagLifespanBJ( GetLastCreatedTextTag(), dur )
call SetTextTagFadepointBJ( GetLastCreatedTextTag(), fad )
call SetTextTagVelocityBJ( GetLastCreatedTextTag(), dal, ang )
if pg>0 then
call ShowTextTagForceBJ( false, GetLastCreatedTextTag(), GetPlayersAll() )
call ShowTextTagForceBJ( true, GetLastCreatedTextTag(), udg_Player[pg] )
endif
endfunction


CM wars 1.15
ЭПОХА АНИМИРОВАННЫХ ТРИГГИРАФ ПРЕШЛА
 

SirNikolasДата: Понедельник, 03 Февраля 2014, 19:32:03 | Сообщение # 347
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Ужас.

 

ВолчачкаДата: Понедельник, 03 Февраля 2014, 19:45:48 | Сообщение # 348
САЙТ УМЕР ППЦ
Группа: Проверенные
Сообщений: 1361
Награды: 0
Репутация: 2165
Блокировки:
SirNikolas, ага. Согласен.
Ещё бы переделать "function tix" под "function MegaTextTagSBJ". Super Blizzard Jass от NatureKid aka Melodia


Сообщение отредактировал Волчачка - Понедельник, 03 Февраля 2014, 19:47:02
 

MelodiaДата: Понедельник, 03 Февраля 2014, 19:57:13 | Сообщение # 349
Группа: Проверенные
Сообщений: 8026
Награды: 5
Репутация: 5041
Блокировки:
Цитата SirNikolas ()
Ужас.

ненаю, зато не загорождает экран 8 или 9 строк, просто 1 кска.
call tix (GetRandomDirectionDeg(), 3, 4, 101, "+"+I2S(udg_Bounty), udg_PP[GetConvertedPlayerId(GetOwningPlayer(GetKillingUnitBJ()))] , 70, 70, 100, 10, 15, GetConvertedPlayerId(GetOwningPlayer(GetKillingUnitBJ())))

Добавлено (03 Февраля 2014, 19:57:13)
---------------------------------------------
в минимальном виде вообще ничего страшного
call tix (90, 3, 4, 101, "мой текст", udg_PP[1] , 70, 70, 100, 10, 15, 1)


CM wars 1.15
ЭПОХА АНИМИРОВАННЫХ ТРИГГИРАФ ПРЕШЛА
 

SirNikolasДата: Понедельник, 03 Февраля 2014, 20:32:19 | Сообщение # 350
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Цитата Волчачка ()
Ещё бы переделать "function tix" под "function MegaTextTagSBJ".
Угу. Melodia, вот я совершенно не телепат. И я уже 10 часов не могу понять, что такое "tix".


 

Форум о Warcraft 3 » Раздел для картостроителей » GUI / Jass » [ВАЖНО] Общалка кодеров (Обмен опытом | Обсуждение проблем)
Поиск:

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