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

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

Ответ
 
SLI
"Ня" © Happy
offline
Опыт: 8,415
Активность:
Возможно ли отследить цену предмета триггером?
Думаю из заголовка и так все понятно.
Старый 02.03.2011, 15:43
alexprey
познающий Unity
offline
Опыт: 68,501
Активность:
SLI, вроде как нет. Делай через бд.

alexprey добавил:
А хотя... Брать золото перед покупкой и после, и из первого вычитать последние. Но в этом есть много нюансов и неточностей. Так что лучше бд
Старый 02.03.2011, 15:45
SLI
"Ня" © Happy
offline
Опыт: 8,415
Активность:
я видите делаю систему что если которая сканирует все предметы у всех героев каждые 0.5 секунд. Если лвл предметы выше лвл героя то предмет автом. продается, возвращая полную цену. Значит никак да? =(
Старый 02.03.2011, 15:50
16GB
GhostOne User
offline
Опыт: 60,317
Активность:
устанавливай хп предмета на его цену а узнать количество хп предмета можно и запретить их атаковать тоже
Старый 02.03.2011, 16:04
alexprey
познающий Unity
offline
Опыт: 68,501
Активность:
16GB, но бд универсальный, и не надо постоянно отслеживать создание новых предметов
Старый 02.03.2011, 16:06
SLI
"Ня" © Happy
offline
Опыт: 8,415
Активность:
хп?
хп у предмета вроде макс 100?
Старый 02.03.2011, 16:08
Versus
Miss me?
offline
Опыт: 17,736
Активность:
SLI, создай невидимый дамми магазин, в который герою будет отдан приказ продавать предмет))) Юзай базы данных... это единственный оптимальный способ...
Старый 02.03.2011, 16:11
MyRtZ

offline
Опыт: 6,530
Активность:
SLI:
хп?
хп у предмета вроде макс 100?
Вроде там нет таких "узких" ограничений.
У меня макс. прочность может быть до 999 999 ед.
Старый 02.03.2011, 16:14
alexprey
познающий Unity
offline
Опыт: 68,501
Активность:
SLI, не слушай 16гб. БД КРУЧЕ
Есть 2 варианта для vJass и для гуи. Тебе какой?
» Скорее всего гуи

Тогда создаешь переменную типа интегер. (целостичный) Указываешь как массив. Называем его например ItemCost
Дальше создает триг DBInit. При инициализации карты делаешь так, через custom script в действиях
Код:
set udg_ItemCost['I001'-'I000'] = 15

где I001 - RawCode предмета
15 - стоимость
Можно сделать и через Гуи, но не очень удобно, например
set ItemCost [ Берет тип у нужного объекта - константа, которую заранее объявил] = 15
В константе пишешь Взять тип у предмета (предмет нужно указать с RawCode = I000)


alexprey добавил:
Может статью накатать про бд???
Старый 02.03.2011, 16:16
Rapture

offline
Опыт: 16,634
Активность:
alexprey, это же гемор. + если массив овер или= 100 будет каждый раз перебирать сотку предметов.
чем плохо хп юзать?

Отредактировано Rapture, 02.03.2011 в 16:26.
Старый 02.03.2011, 16:19
SLI
"Ня" © Happy
offline
Опыт: 8,415
Активность:
Versus, такое мне не пойдет так как мне нужно возвращение полной цены.
alexprey, спасибо, пойду делать, тему не закрывайте, плз наверное возникнут еще проблемы
Старый 02.03.2011, 16:24
alexprey
познающий Unity
offline
Опыт: 68,501
Активность:
Rapture, а ну хп указывается в РО. А хп можно оставить и на прочность =) БД вообще самая универсальная вещь, которая может открыть безграничные возможности. И еще: А если предмет за золото и дерево??? Вот не задачка то =) А БД решает

alexprey добавил:
Цитата:
Сообщение от Rapture
если массив овер или= 100 будет каждый раз перебирать сотку предметов.

Ты видимо не читал как я предложил реализацию бд. Скорость доступа бд такая же быстрая, как и доступ к обычному массиву. Если вы в этом не разбираетесь, не стоит высказывать свои не верные представления.
Старый 02.03.2011, 16:29
ScorpioT1000
Работаем
online
Опыт: отключен
есть фича одна
ScorpioT1000 добавил:
кароче 1 - создавать временный магаз, юнита, заставить юнита купить итем и сравнить деньги
2 - можно забить цены через shift+enter в раздел "эффект" у итема, там можно создать произвольное кол-во строк, а строки брать триггерно с помощью спец функций предметов
Старый 02.03.2011, 18:33
Скайнет
Kicked by ZlaYa1000
offline
Опыт: 8,234
Активность:
alexprey, если есть способ обойтись без бд и не слишком геморный - значит нужно обходиться без него. иначе под тысячу систем придётся делать тысячу дб и терять время на обращение к ним. способ через ро - это 1 строчка кода с заполнением строчки в РО, вызов будет прямым, а не как в бд. в общем, это должно быть ясно ежу, который хоть что-то смыслит в оптимизации. впрочем, для ощущения собственной мегакрутости, можно потратить несколько тысяч строк на лишние дб, круто же!
самый оптимальный способ решения был предложен 16Гб
Старый 02.03.2011, 18:38
alexprey
познающий Unity
offline
Опыт: 68,501
Активность:
ScorpioT1000, ему надо продать пиедмет если лвл его выше
пс. стоит бобавит пункт в правила, чтобы создавали темы с фопросом как мне сделать Х. А не как сделать z через y чтобы у меня получилось x.
alexprey добавил:
Скайнет, а если стоит не только голд и но и дерево?
Старый 02.03.2011, 18:41
Скайнет
Kicked by ZlaYa1000
offline
Опыт: 8,234
Активность:
а если стоит не только голд и но и дерево?
можно забить цены через shift+enter в раздел "эффект" у итема, там можно создать произвольное кол-во строк, а строки брать триггерно с помощью спец функций предметов

DGUI мастер
пожар
Старый 02.03.2011, 18:48
Дед Банзай

offline
Опыт: 196
Активность:
Вот, вроде всё как надо!
Прикрепленные файлы
Тип файла: w3x Пример.w3x (25.7 Кбайт, 14 просмотров )
Старый 02.03.2011, 21:16
SLI
"Ня" © Happy
offline
Опыт: 8,415
Активность:
Дед Банзай, этот способ не работает, но даже если его пофиксить он мне не подойдет. вобщем, ну буду я париться, придумал способ гораздо легче не давать игроку артефакт высокого уровня, всем спасибо!
Тему в топку.
Старый 03.03.2011, 17:22
Myth
The Temple
offline
Опыт: 19,141
Активность:
SLI, самый простой способ:
  1. каждые 0.5 допустим секунд сохранять золото игрока в переменную.
  2. при покупке предмета вычитать из значения переменной золото игрока = стоимость предмета
PS никакого гемора нету, если игрок очень шустр то можно и 0.1 сек поставить :)
Старый 03.03.2011, 18:21
alexprey
познающий Unity
offline
Опыт: 68,501
Активность:
Myth, а если в этот же момент игроку пришлют голд?
Старый 03.03.2011, 19:03
Ответ

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

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

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

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



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