• Страница 1 из 1
  • 1
Архив - только для чтения
Модератор форума: andycrowz  
Каст рандомного спела из списка
infinium
Маршал
Собственно как проще и не строя пирамиды написать каст рандомного спела для для каждого case:
Код
switch (KillStreakData[KillerGUID].killstreak)
              {
                          case 5:
                          //Killer->CastSpell(Killer, 24378, true);
                          //Killer->AddItem(47241, 2);
                          //Server Broadcast
                          ss << "[PvP System]:|cFF81CF42" << Killer->GetName() << "|r has killed|cFF81CFCF" << Victim->GetName() << "|r and is at a " << 5 << " man killstreak and is on a|cFFFF0303 Killing Spree!";
                          sWorld->SendServerMessage(SERVER_MSG_STRING, ss.str().c_str());
                          //Give Player Gold Reward
                          Killer->SetMoney(Killer->GetMoney() + (KillStreakData[KillerGUID].killstreak));
                          //Send Notification
                          ss << "[PvP System]:|cFF00FF00 You are on a killing streak!";
                          Killer->GetSession()->SendAreaTriggerMessage(ss.str().c_str());
                          break;

                          case 10:
                          //Killer->CastSpell(Killer, 24378, true);
                          //Killer->AddItem(47241, 2);
                          //Server Broadcast
                          ss << "[PvP System]:|cFF81CF42" << Killer->GetName() << "|r has killed|cFF81CFCF" << Victim->GetName() << "|r and is at a " << 10 << " man killstreak and is on a|cFF20C000 Dominating!";
                          sWorld->SendServerMessage(SERVER_MSG_STRING, ss.str().c_str());
                          //Give Player Gold Reward
                          Killer->SetMoney(Killer->GetMoney() + (KillStreakData[KillerGUID].killstreak));
                          //Send Notification
                          ss << "[PvP System]:|cFF00FF00 You are on a killing streak!";
                          Killer->GetSession()->SendAreaTriggerMessage(ss.str().c_str());
                          break;
.
.
.
etc

Весь патч
Сообщение # 1 отредактировано infinium - Понедельник, 02.06.2014, 17:04
infinium
Маршал
Димитро как всегда на высоте в своих ответах, ну да ладно, в своей, более осведомлённой сфере я веду себя аналогично.

Собственно по теме, сделал таким образом:
Код
            case 5:
             {
                   int32 sprand = urand(1, 3);
                   switch (sprand)
                  {
                         case 1:
                             Killer->CastSpell(Killer, 35874, true);
                             break;
                         case 2:
                             Killer->CastSpell(Killer, 35912, true);
                             break;
                         case 3:
                             Killer->CastSpell(Killer, 38734, true);
                             break;
                  }
               }
               //Killer->CastSpell(Killer, 24378, true);
               //Killer->AddItem(47241, 2);
               //Server Broadcast
               ss << "|cFF8B008B[PvP System]:|r|cFF81CF42" << Killer->GetName() << "|r has killed |cFF81CFCF" << Victim->GetName() << "|r and is at a " << 5 << " man killstreak and is on a|cFFFF0303 Killing Spree!";
               sWorld->SendServerMessage(SERVER_MSG_STRING, ss.str().c_str());

Для каждого case будет своя группа спелов в большем количестве, если избежать вот такие пирамиды нельзя, то вопрос закрыт.
Сообщение # 2 отредактировано infinium - Понедельник, 02.06.2014, 20:24
Dimitro
Praise the sun!
Цитата infinium ()
Димитро как всегда на высоте в своих ответах

А зачем мне тратить время на написание готового варианта? Да и какая польза будет от этого как мне, так и пользователю?

По сабжу, достаточно было поискать немного в ядре и найти уже готовую реализацию.
Код
DoCast(target, RAND(spell1, spell2, spell3, spell4));


Уже сам разберешся как это к своему скрипту "подключить" и т.д.

Причем это не единственный вариант.
Возможностей реализовать это сотни.
Arcanum Core © Dev.
Для запросов на выдачу наград/снятие замечаний есть темы в Работе Портала. Не пишите по этому поводу в личку.
Сообщение # 3 отредактировано Dimitro - Понедельник, 02.06.2014, 20:44
  • Страница 1 из 1
  • 1
Поиск: