Мини Решение [важно]
|
|
Всем привет,
Хочу сделать сделать чтобы итем давал опыт (в поднятие лвл)
Вот пример:
pPlayer->SetFreeTalentPoints(1); тут дает талант, мне нужно чтобы давал опыт.
Спс)
Сообщение # 1 написано 12.09.2015 в 04:39
|
Код +#include "ScriptPCH.h" + +class item_lvl_up : public ItemScript +{ + public: + + item_lvl_up() + : ItemScript("item_lvl_up") + { + } + + bool OnUse(Player* player, Item* item, SpellCastTargets const& /*targets*/) + { + player->DestroyItemCount(54452, 1, true, false); + player->SetLevel ( player->getLevel() + 1 ); + return true; + } +}; + +void AddSC_item_lvl_up() +{ + new item_lvl_up(); +} Добавлено (12.09.2015, 05:08) --------------------------------------------- Это даёт уровень Добавлено (12.09.2015, 05:12) --------------------------------------------- pPlayer->GiveXP(40000, NULL); -> это даёт хр, подставь под этот скрипт
Сообщение # 2 написано 12.09.2015 в 05:12
|
Mocosin, не подскажете еще как сделать итем чтобы нажималось и давалось, а то сделал и не жмется и нечего не дает
Сообщение # 3 написано 16.09.2015 в 21:20
|
r0m1ntik, сделай итем юзабельным через трайс колонка там где касты вроде 1 или 2 флаг делает его On use(юзабельным)
Сообщение # 4 написано 16.09.2015 в 21:23
|
Сообщение # 5 написано 16.09.2015 в 21:40
|
Цитата FreeCat ( ) сделай итем юзабельным через трайс колонка там где касты вроде 1 или 2 флаг делает его On use(юзабельным) "Юзабельность" - флаг. А если быть точным - 0x40 в поле Flags.
Сообщение # 6 написано 16.09.2015 в 21:41
|
Сообщение # 7 написано 17.09.2015 в 01:06
|
Цитата r0m1ntik ( ) не помогает Предмет стал писать что-нибудь при нажатии по нему ПКМ?
Сообщение # 8 написано 17.09.2015 в 01:26
|
неа нечего не пишетДобавлено (17.09.2015, 03:31) --------------------------------------------- неа нечего не пишет
Сообщение # 9 написано 17.09.2015 в 03:31
|
Не ломай мозг и добавь спелл в таблицу spell_dbc в базе world, со свойством лвл-апа.
Сообщение # 10 написано 17.09.2015 в 10:02
|
Какую базу используешь? и какой ревизии? Я тебе сделаю такой предмет просто присвоишь ему ScriptNames
Сообщение # 11 написано 17.09.2015 в 11:25
|
FreeCat, TDB 58Добавлено (17.09.2015, 14:22) --------------------------------------------- Pallam, у меня через с++ предмет сделан
Сообщение # 12 написано 17.09.2015 в 14:22
|
Цитата r0m1ntik ( ) Pallam, у меня через с++ предмет сделан Смысл лишний раз делать подобные предметы, если их единственная задача - lvlup?
Сообщение # 13 написано 17.09.2015 в 14:23
|
Не только) я много чего добавил туда
Сообщение # 14 написано 17.09.2015 в 14:26
|
что бы юзалось, добавь к нему любой спел, например я делал из камня возвращения, и у меня юзался)
Сообщение # 15 написано 18.09.2015 в 02:47
|
Mocosin, спасибо помогло)Добавлено (18.09.2015, 15:14) --------------------------------------------- + через 24 часа только смогу
Сообщение # 16 написано 18.09.2015 в 15:14
|
Цитата r0m1ntik ( ) Mocosin, спасибо помогло) я забыл тут добавить на максимальный плеер левелпроверку вроде, поставь) а то после 80 будет давать)Добавлено (19.09.2015, 03:13) ---------------------------------------------
Код #include "ScriptPCH.h"
class item_lvl_up : public ItemScript { public:
item_lvl_up() : ItemScript("item_lvl_up") { }
bool OnUse(Player* player, Item* item, SpellCastTargets const& /*targets*/) { if(player->HasItemCount(100202, 1) && player->getLevel() > 299) { } else {
player->DestroyItemCount(100202, 1, true, false); player->SetLevel ( player->getLevel() + 1 ); player->SaveToDB(); return true; } } };
void AddSC_item_lvl_up() { new item_lvl_up(); } Добавлено (19.09.2015, 03:13) ---------------------------------------------
Цитата Mocosin ( ) player->getLevel() > 299) тут поставь 79
Сообщение # 17 написано 19.09.2015 в 03:13
|
Код if(player->HasItemCount(100202, 1) && player->getLevel() > 79) { } else {
player->DestroyItemCount(100202, 1, true, false); player->SetLevel ( player->getLevel() + 1 ); player->SaveToDB(); return true; } Ты серьезно?) Моделирую ситуацию - предмет есть, лвл = 80. Первое условие - да, второе - нет. Пойдет в else, даст уровень. А вот при 79 лвл-е уже не даст. Смешно.
Сообщение # 18 написано 19.09.2015 в 05:34
|
Ребят у меня все это стоит) то что я просил в начале просто 1 строка из 289 Спс еще раз) я придумал фишку по круче)
Сообщение # 19 написано 20.09.2015 в 03:26
|
Цитата Pallam ( ) Моделирую ситуацию - предмет есть, лвл = 80. намаделируй в коде, посмотрим как тебе даст 81 уровень, умник
Сообщение # 20 написано 24.10.2015 в 11:54
|
Цитата Pallam ( ) Моделирую ситуацию - предмет есть, лвл = 80. Первое условие - да, второе - нет. Пойдет в else, даст уровень. В том то и дело, что оба условия - *да*, и ничего не произойдет. Но вот если хотя бы одно не будет выполняться - пойдет в else. В том числе и то, которое проверяет, есть ли у игрока предмет. В любом случае так никто не пишет. Создавать if-конструкцию ТОЛЬКО ради else-ветви - по меньшей мере странное решение.
Сообщение # 21 написано 24.10.2015 в 14:18
|