• Страница 1 из 1
  • 1
Модератор форума: Dimitro  
Форум » TrinityCore » [TrinityCore] Help » Не сохраняет бафы
Не сохраняет бафы
dimakpro
Центурион
#include "ScriptMgr.h"
#include "GossipDef.h"

#include "string"


uint32 BuffList[] = {72525, 71195, 71193, 71188, 62276, 63364, 48869, 69787, 2583, 90007, 47008, 26662, 62555, 27680, 24378, 51512, 33377, 34086, 70692, 35912, 35874, 38734, 43776, 41969, 19883, 72726, 11009, 43827, 48162, 48074, 48170, 43223, 36880, 467, 69994, 48469, 31305, 22818, 26035, 32120, 16609, 26393, 36001, 35076, 17467};


class Buff_saver : public CreatureScript
{
public: Buff_saver() : CreatureScript("Buff_saver") {}

bool OnGossipHello(Player* players, Creature* creature)
{
players->ADD_GOSSIP_ITEM(GOSSIP_ICON_BATTLE, "Сохрани мои Бафы!", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
players->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT_18, "Верни мне мои Бафы!", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2);
players->SEND_GOSSIP_MENU(100350, creature->GetGUID());

return true;
}

bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
int SpellIs[100] = {};
QueryResult buff_check = WorldDatabase.PQuery("SELECT player_guid FROM active_buff_list WHERE player_guid = %i;", player->GetGUID());

time_t t = time(NULL);

switch(action)
{
case GOSSIP_ACTION_INFO_DEF+1:
if(!buff_check)
{
for(int i = 0; i < 100; i++)
{
if(player->GetAura(BuffList[i]))
SpellIs[i] = BuffList[i];

player->RemoveAura(BuffList[i]);
}

WorldDatabase.PQuery("INSERT INTO active_buff_list VALUE(%i, %i, %i, %i, %i, %i, %i, %i, %i, %i, %i, %i, %i, %i, %i, %i, %i);", player->GetGUID(), SpellIs[0], SpellIs[1], SpellIs[2], SpellIs[3], SpellIs[4], SpellIs[5], SpellIs[6], SpellIs[7], SpellIs[8], SpellIs[9], SpellIs[10], SpellIs[11], SpellIs[12], SpellIs[13], SpellIs[15]);
WorldDatabase.PQuery("INSERT INTO played_loged VALUE(4, %i, '%s', '%i, %i, %i, %i, %i, %i, %i, %i, %i, %i, %i, %i, %i, %i, %i, %i');", t, player->GetName(), SpellIs[0], SpellIs[1], SpellIs[2], SpellIs[3], SpellIs[4], SpellIs[5], SpellIs[6], SpellIs[7], SpellIs[8], SpellIs[9], SpellIs[10], SpellIs[11], SpellIs[12], SpellIs[13], SpellIs[15]);
creature->Whisper("Ваши бафы были успешно сохранены", LANG_UNIVERSAL, player);
}
else
creature->Whisper("У вас уже есть сохроненные бафы!", LANG_UNIVERSAL, player);
break;

case GOSSIP_ACTION_INFO_DEF+2:
if(buff_check)
{
QueryResult result_buff = WorldDatabase.PQuery("SELECT * FROM active_buff_list WHERE player_guid = %i;", player->GetGUID());

Field* field_buff = result_buff->Fetch();

for(int i = 1; i < 100; i++)
{
player->AddAura(field_buff[i].GetInt32(), player);

}
WorldDatabase.PQuery("DELETE FROM active_buff_list WHERE player_guid = %i;", player->GetGUID());
WorldDatabase.PQuery("INSERT INTO played_loged VALUE(5, %i, '%s', 'Restored');", t, player->GetName());
creature->Whisper("Вот ваши бафы!", LANG_UNIVERSAL, player);
}
else
creature->Whisper("У вас нету сохраненных бафов!", LANG_UNIVERSAL, player);
break;
}

player->CLOSE_GOSSIP_MENU();
return true;
}
};

void AddSC_Buff_saver()
{
new Buff_saver();
}

Сохранить мои бафы,но при использовании данного скрипта,он сохраняет всё по нулях и в итоге забирает баффы и не возвращает
Продажа сервера wow blood-fire (WoW 3.3.5a + Lua engine) 6500 руб
---->https://vk.com/jimteck<----
Сообщение # 1 написано 05.07.2015 в 19:48
Pallam
Рыцарь
Дам совет.. Итерации.. Просто.. Подумай, что может быть такого, что не скатается?

Добавлено (07.07.2015, 22:51)
---------------------------------------------
ну а если точно, то ткну вот сюда
Код
case GOSSIP_ACTION_INFO_DEF+1:
  if(!buff_check)
   {
    //int num = 0; //---------------------------------------------
    for(int i = 0; i < 100; i++)
     {
      if(player->GetAura(BuffList[i]))
      SpellIs[i] = BuffList[i]; //---------------------------------------------
      //Дам совет, Spells[num++] = BuffList[i]; //---------------------------------------------
      player->RemoveAura(BuffList[i]);
    }

    WorldDatabase.PQuery("INSERT INTO active_buff_list VALUE(%i, %i, %i, %i, %i, %i, %i, %i, %i, %i, %i, %i, %i, %i, %i, %i, %i);", player->GetGUID(), [u]SpellIs[0], SpellIs[1], SpellIs[2], SpellIs[3], SpellIs[4], SpellIs[5], SpellIs[6], SpellIs[7], SpellIs[8], SpellIs[9], SpellIs[10], SpellIs[11], SpellIs[12], SpellIs[13], SpellIs[15][/u]);


И дам намек - А если он дойдет до баффа, к примеру, 100? (Ну, по факту он не дойдет и обзовет тебя мудаком, ибо ты просишь из 100 ячейки массива, которой, по факту, нет...)
Сообщение # 2 отредактировано Pallam - Среда, 08.07.2015, 02:06
Форум » TrinityCore » [TrinityCore] Help » Не сохраняет бафы
  • Страница 1 из 1
  • 1
Поиск: