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

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

 
J
expert
offline
Опыт: 48,447
Активность:
я не учусь на программера, все говорю по своему опыту в кодинге, так что правильно говорят
Старый 17.08.2009, 22:49
JamesBlack
black mind
offline
Опыт: 6,595
Активность:
так, я совсем запутался. Я ща скажу свое видение этого мира, вы меня поправьте если что не так.

handle - это один из типов переменных, он подразделяется на destructable, unit, item и другие.
Каждый игровой объект имеет свой тип, создаваемый в РО. Этот тип относится к одному из типов переменных destructable, unit, item и других. При этом этот тип имеет целочисленный номер, т.е. id.

Так вот, типы объектов в РО должны иметь разные id, даже если они относятся к разным типам переменных? Т.е. образно массив id-шек один для всех типов переменных - и для декораций и для предметов и для юнитов?
Старый 17.08.2009, 23:23
ZeToX2007

offline
Опыт: 7,009
Активность:
Цитата:
Сообщение от JamesBlack
destructable, unit, item

Юнит, предмет и юнит это widget, а widget это handle получается..)

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

ZeToX2007 добавил:
JamesBlack, Но если создаёшь 2 спела с обним id они сливаются.

ZeToX2007 добавил:
Цитата:
Сообщение от J
никакого опыта и тестов в отличии от ZeToX2007, где то что он говорит основано на не опыте, а лишь на его теории из здравого смысла

это было глупо так говорить, поверь, у меня опыт не малый в этом плане.
Старый 18.08.2009, 00:58
Hellfim
Новичок
offline
Опыт: 79,707
Активность:
ZeToX2007, твой способ дерьмовый, хотя бы потому, что он неправильный, не находишь? Не задумывался для чего в варе даны разные "первые буквы" для равкодов разных типов объектов? Для того, чтоб можно было отличить, что это за объект хотя бы по первой букве в его названии. В стандартных равкодах еще и название объекта забито. То, что это работает не значит, что это правильно. Слипэкшн работает в циклах, но использовать его там не надо, т.к. он для этого не предназначен. Так же и здесь. Равкод нужен для определения _какой_это_объект_, а не для голубых фантазий розового программиста. Для этого есть системы, которые он пишет и если они целиком и полностью зависят от того, что находится не в их коде, то такая система является говном.
Старый 18.08.2009, 01:06
JamesBlack
black mind
offline
Опыт: 6,595
Активность:
Hellfim, зачем так сурово сразу? return bug раньше тоже не был предусмотрен. Это лишь баг, найденый прогерами. Если кто-нибудь сможет доказать, что использование одинаковых id объектов на машинном уровне может привести к ошибкам, разговоров нет, юзать не будем.

Но если такая фишка возможна... То почему нельзя отличить "зачем нужен этот объект" не по id, а по расположению в РО?

Ведь тогда можно соотносить с помощью равкода 1-му юниту спелл или декор или предмет. Иногда я думаю, это может сильно облегчить задачу.
Старый 18.08.2009, 01:21
Hellfim
Новичок
offline
Опыт: 79,707
Активность:
JamesBlack, ты ошибаешься. Чтоб облегчить задачу, достаточно заполнить базу данных. +рб тоже является плохим примером, т.к. в новом патче его пофиксили и карты его использовавшие пошли к чертям, а все потому, что авторы поленились найти _нормальный_ способ для замены рб. Я не спорю, что это удобно, но по сравнению с массивами и возможно структурами, которые так любит джон =) рб плох, но речь не о нем. О системах, которые полностью зависят от того, что находится вне их написано постом выше.
Старый 18.08.2009, 01:49
J
expert
offline
Опыт: 48,447
Активность:
ZeToX2007
ничего страшного не будет если ты создаш спел, юнит, спец эфект, улучшение, декорацию с одним id. проверял сегодня и не раз.
у меня опыт не малый в этом плане.
как багат и удивителен твой опыт полученный за сегодня, так и хочется поверить...
JamesBlack
  1. это в 3 раза неудобнее чем создать свою базу данных (а создавать ее в любом случае придется, т.к. есть еще несколько вещей которые нужно повесить на типы предметов кроме декораций)
  2. нет выйграша в скорости
  3. лишнии декорации, которых не 2-5, а 100-150
  4. Разобраться другому человеку проще в бд чем в каких то соответствиях равкодов
  5. это просто не тру, времена "сверления зубов дракона через задний проход" прошли лет 20 назад
  6. нужно не шарить в этом - чтобы предложить такое, и полностью не шарить - всерьез задумываться делать так
  7. всем пофиг, будешь ты делать так или так, кто играет в твою карту это будет без разницы, речь не о работоспособности метода, а о его правильности, делай то что считаешь правильным, рано или поздно сам поймешь что действительно удобно, быстро и правильно

Отредактировано J, 18.08.2009 в 04:49.
Старый 18.08.2009, 04:36
ZeToX2007

offline
Опыт: 7,009
Активность:
Цитата:
Сообщение от J
это в 3 раза неудобнее чем создать свою базу данных (а создавать ее в любом случае придется, т.к. есть еще несколько вещей которые нужно повесить на типы предметов кроме декораций)

Необязательно.... если руки не кривые и серое вещество на месте

Цитата:
Сообщение от J
нет выйграша в скорости

Тут не прав, на предыдущию страницу тебе.

Цитата:
Сообщение от J
лишнии декорации, которых не 2-5, а 100-150

Смотря где.

Цитата:
Сообщение от J
Разобраться другому человеку проще в бд чем в каких то соответствиях равкодов

Кому ? Новичкам ?объяснив, им легче поработать в РО чем в бд. тем более создавать не так уж трудно



Цитата:
Сообщение от J
это просто не тру, времена "сверления зубов дракона через задний проход" прошли лет 20 назад

не говори бред


Цитата:
Сообщение от Hellfim
рб тоже является плохим примером

Еретик ! сжечь !
Старый 18.08.2009, 14:03
J
expert
offline
Опыт: 48,447
Активность:
ZeToX2007, вода вода вода, боевые выкрики по каждому поводу, никакой аргументации, никакого опыта, ты еще слишком мал...
я не вижу причин объяснять тебе то что объяснял раньше если ты будешь не аргументировано говорить что угодно что кажется тебе правильным

Отредактировано J, 18.08.2009 в 14:11.
Старый 18.08.2009, 14:06
XOR

offline
Опыт: 38,159
Активность:
примеры?

Отредактировано XiMiKs, 11.12.2009 в 15:12.
Старый 18.08.2009, 19:03
KhChaos

offline
Опыт: 42
Активность:
J, я создаю (хотя правдивее будет сказать что просто повторяю, попутно разбираясь что к чему) инв по твоей статье, правда хочу потом сделать слоты для активных предметов, а стандартные игровые оставить для используемых предметов, для этого думаю использовать наработку которая позволяет давать герою N-ое кол-во невидимых предметов. Впринцыпе я думаю, если разберусь во всем, то это проблема относительная. Навыков в джазе минимум, и в принцыпе мне кажется что я пытаюсь прыгнуть выше своей головы, но меньшим мне сложно удовлетвориться =(
В ходе коддинга возникли проблемы, JNGP не использую, глобальные переменные заявлены заранее, к переменным добавляю приставку Inv_, и соответственно в коде udg_Inv_
set udg_Inv_gcinv = InitGameCache("MyInventory.w3v")
"MyInventory.w3v", тут надо брать любое понравишееся название, или оно откудато взято ? Интернет не работал 2 дня, поэтому не мог спросить решил оставить как есть и писать дальше.
function GetOpenInvTk takes nothing returns boolean
return udg_Inv_OpenInv[GetStoredInteger(udg_Inv_gcinv, I2S(H2I(GetTriggeringTrackable())), "IdPlayer")]
endfunction
Дошел до этой функции, на ней все и застопорилось, при сохранении карты, Редактор пишет Строка N: отсуствует название.
Интересно также, то что если пишу просто
function GetOpenInvTk takes nothing returns boolean
endfunction
то Редактор вылетает при сохранении
И еще, я так понял что если делать иконки на трекейблах (модель empinv.mdl), то они из заменяемого файла текстур (перевод редактора не ах-ти) берут только кусок по своему размеру начиная с нижнего-левого угла ?
В статье ты объявляешь глобальные переменные:
real array N
Т.к. я неиспользую JNGP то в редакторе могу создавать массивы только (во всяком случае не знаю как) с заданной продолжительностью пока решил проблему ставив примерно нужную продолжительность массивов. Как это решается через редактор или Jass ?
И кстать у меня еще вопрос, не будет ли глючить карта если у меня в ней Весь урон и магия контролируется тригерами, система квестов реализована через Спелбуки (спелами) и использованы чужие наработки типа SST и отображение урона плавающим текстом, плюс вот щас инвентарь. Тоесть вопрос в том, есть ли лимит на сложность кода, кол-во работающих систем и функций (кривые, пока что, руки не учитываем).
Старый 24.08.2009, 11:45
XOR

offline
Опыт: 38,159
Активность:
мб сделаешь все по статье, и потом уже, зная весь материал будешь добавлять свое? Кстати наработка с невидимыми предметами уже есть

XiMiKs добавил:
Если сложно удолетворится меньшим- пиши системы, делать фсгуи на простом ВЕ извращенство, имхо, лучше через структуры

Отредактировано XiMiKs, 11.12.2009 в 15:14.
Старый 24.08.2009, 12:41
J
expert
offline
Опыт: 48,447
Активность:
KhChaos
"MyInventory.w3v", тут надо брать любое понравишееся название, или оно откудато взято ? Интернет не работал 2 дня, поэтому не мог спросить решил оставить как есть и писать дальше.
любое понравившееся...
Дошел до этой функции, на ней все и застопорилось, при сохранении карты, Редактор пишет Строка N: отсуствует название.
наверно отсутствует функция H2I(), тогда тебе бегом идти читать статьи по Return Bug, если же у тебя вар 1,24, то замени просто функцию на GetHandleId()
то Редактор вылетает при сохранении
функция должна возвращать бул обязательно потому что у нее в параметрах возвращения так написана
И еще, я так понял что если делать иконки на трекейблах (модель empinv.mdl), то они из заменяемого файла текстур (перевод редактора не ах-ти) берут только кусок по своему размеру начиная с нижнего-левого угла ?
не понял...
Т.к. я неиспользую JNGP то в редакторе могу создавать массивы только (во всяком случае не знаю как) с заданной продолжительностью пока решил проблему ставив примерно нужную продолжительность массивов. Как это решается через редактор или Jass ?
любой массив в варе имеет размер 8192, то что ты принял за продолжительность это наверно инициализация начальных значений, вообще левая фигня, она тебе ненужна
И кстать у меня еще вопрос, не будет ли глючить карта если у меня в ней Весь урон и магия контролируется тригерами, система квестов реализована через Спелбуки (спелами) и использованы чужие наработки типа SST и отображение урона плавающим текстом, плюс вот щас инвентарь. Тоесть вопрос в том, есть ли лимит на сложность кода, кол-во работающих систем и функций (кривые, пока что, руки не учитываем).
все зависит от рук

XiMiKs
Не понял а как ты системы без жнгп пишешь? А ид декора? Мб скачаешь жнгп сделаешь все по статье, и потом уже, зная весь материал будешь добавлять свое? Кстати наработка с невидимывыми предметами уже есть
в статье так напрямую и написано, что из возможностей жнпг используются только объявления глобалок, потому если его нет то читатель может делать их через редактор переменных, разницы не будет, больший геморой читателю, но это его выбор...
Старый 24.08.2009, 15:15
KhChaos

offline
Опыт: 42
Активность:
XiMiKs
Я читал, что для JNGP нужно, чтобы вар работал от образа, а через NO-CD ниче работать не будет, а щас на Камчатке имея даже в наличии сеть в 200-300 человек, найти образ вара, мягко говоря сложно =), либо молчат либо уже и забыли когда в последний раз диск видели.
Также хочу сказать, что я просто захотел сделать карту, первую кстати =), узнал про тригеры, увидел че можно сделать... вот и делаю =)
J
*И еще, я так понял что если делать иконки на трекейблах (модель empinv.mdl), то они из заменяемого файла текстур (перевод редактора не ах-ти) берут только кусок по своему размеру начиная с нижнего-левого угла ?*
Короч, я хотел переназначить иконку с пустой ячейки инвентаря (модель empinv.mdl, там где используется текстуры из UI игры), хотел поставить, к примеру, DISBNT меча, для слота, примерить так сказать... в итоге, иконка полностью в ячейку не влезла.
Ок, посмотрю насчет ретурн бага, если в этом проблема.
Старый 24.08.2009, 15:53
KhChaos

offline
Опыт: 42
Активность:
В принципе со всем разобрался, функцию RB добавил, про то, что вар с какого-то патча отказывается от диска я напрочь забыл, а без образа ставить JNGP не пробовал =)
J
Блин... если я хочу заменить иконку пустого слота на свою, как мне это сделать? А то трекейбл (модель empinv.mdl) показывает только кусок текстуры по своему размеру от куда-то из середины (откуда именно я разобрался, но только для одного размера, картинка весит при этом 340 Кб, при меньших размерах выходит очень уж плохое качество в игре) картинки пропорционально ее масштабу и размеру.
Щас встрял на моменте, где ты предлагаешь второй раз потестить инвентарь:
call echo("Игрок " + I2S(PId) + " нажал на трекабл № "+ I2S(Index))
Такой функции даже в JNGP нету, заменил на
call DisplayTextToForce( GetPlayersAll(), "Игрок " + I2S(PId) + " нажал на трекабл № "+ I2S(Index) )
Но при проверке инвентаря, сообщение не вылазит.
Щас буду сидеть и искать где я ошибся или чего-то не дописал, подозреваю дело именно в этом =)
Старый 29.08.2009, 02:02
ScorpioT1000
Работаем
offline
Опыт: отключен
Щас встрял на моменте, где ты предлагаешь второй раз потестить инвентарь:
call echo("Игрок " + I2S(PId) + " нажал на трекабл № "+ I2S(Index))
Такой функции даже в JNGP нету
правильно, а самому написать? она же облегчит чтобы не вводить лишние параметры
ScorpioT1000 добавил:
если я хочу заменить иконку пустого слота на свою, как мне это сделать?
я думаю, там должна быть другая модель, на которую специально натянута иконка)
Старый 29.08.2009, 03:14
DmCreator

offline
Опыт: 3,205
Активность:
Помоему отличная статья! Мне её было легко читать (ну может и потому что я многое уже знал) и легко подчерпнуть то, что хотел узнать.
Автору - большой и искренний респект
Старый 15.11.2009, 23:25
Rewenger
The culprit will not die
offline
Опыт: 35,873
Активность:
правильно, а самому написать? она же облегчит чтобы не вводить лишние параметры
А BJDebugMsg никто не отменял, стоит заметить.
Старый 16.11.2009, 09:35
Nauirisbek

offline
Опыт: 701
Активность:
Инвентарь не работает на 1.24. Что надо сделать чтобы он работал?
Старый 22.02.2010, 20:20
XOR

offline
Опыт: 38,159
Активность:
xgm.ru/search.php
мне не совсем понятны кое чьимотивы..
замени все h2i >> GetHandleId, i2h >> ConvertFogState
Старый 22.02.2010, 20:52

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

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

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

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



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