|
Новичкам Информация для всех новичков, новичкам рекомендуется задавать свои вопросы здесь |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
26.06.2010, 14:43 | #1 |
Умный
Старожил
Регистрация: 06.03.2010
Сообщений: 886
Сказал(а) спасибо: 698
Поблагодарили 433 раз(а) в 181 сообщениях
Записей в дневнике: 4
|
Создание итема игроку
Решил тут кое-что сделать, но что-то не получается...
Нужно при опред условии создать игроку итем. Вызывается из item.cpp Использую конструкцию: Код:
if (GetEntry() == id_1) { owner->DestroyItem(GetBagSlot(), GetSlot(), true); Item *pItem = Item::CreateItem(id_2, 1, owner); owner->SendNewItem(pItem, 1, true, false); return; } Если использовать конструкцию типа: Код:
if (GetEntry() == id_1) { owner->DestroyItem(GetBagSlot(), GetSlot(), true); ItemPosCountVec dest; Item *pItem = owner->StoreNewItem(dest, id_2, true, Item::GenerateItemRandomPropertyId(id_2)); owner->SendNewItem(pItem, 1, true, false); return; } |
26.06.2010, 14:48 | #2 |
Супер-модератор
Регистрация: 07.03.2010
Сообщений: 647
Сказал(а) спасибо: 100
Поблагодарили 252 раз(а) в 123 сообщениях
|
Для готового объекта Item:
Код:
Item* item = ...; ItemPosCountVec dest; if(CanStoreItem(NULL_BAG, NULL_SLOT, dest, item) == EQUIP_ERR_OK) { StoreItem(dest, item, true); SendNewItem(item, item->GetCount(), true, false); } Код:
uint32 itemId = ...; uint8 count = ...; ItemPosCountVec dest; if(CanStoreNewItem(NULL_BAG, NULL_SLOT, dest, itemId, count) == EQUIP_ERR_OK) { Item* item = StoreNewItem(dest, itemId, true, Item::GenerateItemRandomPropertyId(itemId)); SendNewItem(item, count, true, false); } |
26.06.2010, 15:17 | #3 |
Умный
Старожил
Регистрация: 06.03.2010
Сообщений: 886
Сказал(а) спасибо: 698
Поблагодарили 433 раз(а) в 181 сообщениях
Записей в дневнике: 4
|
Неа... Это по сути тоже самое что пишу я только добавлена проверка... Так же не пашет - картинка буд-то итем кладётся в сумку есть, но сам итем в сумке не появляется.
Мне кажется проблема в том, что код вызывается в item.cpp и ItemPosCountVec dest; не определяется, поэтому итем создаётся вникуда... |
26.06.2010, 15:23 | #4 |
Супер-модератор
Регистрация: 07.03.2010
Сообщений: 647
Сказал(а) спасибо: 100
Поблагодарили 252 раз(а) в 123 сообщениях
|
Эта "Проверка" (CanStore[New]Item) заполняет вектор положения предмета. Т.е. именно ItemPosCountVec
|
26.06.2010, 15:32 | #5 | |
Умный
Старожил
Регистрация: 06.03.2010
Сообщений: 886
Сказал(а) спасибо: 698
Поблагодарили 433 раз(а) в 181 сообщениях
Записей в дневнике: 4
|
Цитата:
Я просто забыл добавить return; в твой вариант и у меня следующим действием удалялся новосозданный итем CanStore - мне казалось что это проверка можно ли создать итем, а у меня перед создание обязательно один слот освобождался, вот я её и пропустил Спасибо! Патчик на реализацию итема: http://ru.wowhead.com/item=39878: PHP код:
|
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
[10504][fix bug] урон петом по игроку на нейтральной територии | Chipleo | Принятые патчи | 3 | 19.09.2010 01:26 |
Создание спелов | antigm | Корзина | 8 | 15.08.2010 12:43 |
Создание внутриигровой команды | Houk | Новичкам | 9 | 10.08.2010 19:23 |
Лицом к игроку, как??? | Lordronn | Скрипты | 4 | 04.08.2010 12:43 |
Создание диалога для NPC | tozter | Корзина | 1 | 31.03.2010 13:31 |