читы для wow, баги wow, аддоны для wow
Главная | Регистрация | Вход Приветствую Вас Гость | RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]   
  • Страница 1 из 1
  • 1
Модератор форума: apostl, Ze[Fy]ne  
Пишем Скрипты на С++
rom4ins (Offline)Дата: Среда, 10.02.2010, 12:13 | Сообщение # 1
Сотрудник WoW-SGP
---------


Пол: мужчина


Должность:


Ранг/Титул:


Репутация: 89 ±


Награды/Медали: 15 ±




Сервер: WoW-Europe


Пример скрипта где использован один спелл у одного моба
Code
//Начинает сам скрипт моба

//Задание констант для удобного пользования
// CRYSTALCORE MECHANIC
#define CN_CRYSTAL_MECHANIC 20052 //номер моба

#define SAW_BLADE 37123  //номер спела

//Начинается сам скрипт, важно задавать имя скрипта уникальным
class CRYSTALMECHANICAI : public CreatureAIScript
{
//Сдесь задаются переменные и функции доступные только для этого моба
protected:
      int nrspells; //создание целой переменной
      SP_AI_Spell spells[1]; //создание массива спелов из 1 одного спела

//Сдесь задаются  переменные и функции доступные для всего скрипта или класса(точно не уверен)
public:
      ADD_CREATURE_FACTORY_FUNCTION(CRYSTALMECHANICAI);

      CRYSTALMECHANICAI(Creature* pCreature) : CreatureAIScript(pCreature)
      {
          nrspells = 1;//указывается число спелов в массиве(если число больше числа в массиве краш сервера)

          [b]//Часть где указываются характеристики спелов
          spells[0].info = dbcSpell.LookupEntry(SAW_BLADE);//создание самого спела
          spells[0].targettype=TARGET_SELF;//Тип спела
/*Все типы   
      TARGET_SELF,на себя
      TARGET_VARIOUS,на себя//Не использовать
      TARGET_ATTACKING,на атакуещего
      TARGET_DESTINATION,каст по области где атакакующий
      TARGET_SOURCE,//каст по области где сам юнит
//касты на рандом цели(смысл тот же)
      TARGET_RANDOM_FRIEND,
      TARGET_RANDOM_SINGLE,
      TARGET_RANDOM_SINGLE_ANGLE,//выбор цели по углу место положения цели относительно взгляда моба(пока не реализовал угл но уже можно прописывать)
      TARGET_RANDOM_DESTINATION,
*/
          spells[0].instant=false;//мгновенный ли каст. если мгновенный то можно не указывать поле
          spells[0].perctrigger=100.0f;//процент каст при каждой попытке
          spells[0].attackstoptimer=2000;//остановка физ урона на определенное время(по умолчанию 1000) если 1000 не указывать(в мил сек)
          spells[0].soundid=0;//звук который будет играть при касте
          spells[0].speech='бла бла';//речь которую скажет моб при касте
          spells[0].cooldown=2;//перезарядка спела(в секах)
          spells[0].casttime=3000;//время каста(лучше указывать пока сам не знаю зачем)(в мил сек)
          spells[0].mindist2cast=0.0f;//минимальная дистанция каста для рандом цели(по умолч 0)
          spells[0].maxdist2cast=100.0f;//макс ---(умолчан 100)
          spells[0].minhp2cast=0;//минимальное здоровье цели
          spells[0].maxhp2cast=100;//максимальное здоровье цели

//Если вы используете значение по умолчанию то просто не надо его вообще задавать

      }
        
//функция срабатывающая при начале боя
      void OnCombatStart(Unit* mTarget)
      {
          for(int i=0;i<nrspells;i++)  spells[i].Timer = 0;  //обнуление таймеров
          RegisterAIUpdateEvent(1000);   //создания события которое будет повторятся каждые 1000 милсек
      }

//функция при смерти моба
      void OnTargetDied(Unit* mTarget)
      {
      }

//при остановке боя
          void OnCombatStop(Unit *mTarget)
      {
          _unit->GetAIInterface()->setCurrentAgent(AGENT_NULL);//нужно чтоб моб остался в последнем месте где дрался
          _unit->GetAIInterface()->SetAIState(STATE_IDLE);//нужно чтоб моб остался в последнем месте где дрался
          RemoveAIUpdateEvent();//удаления события таймера
      }

//событие при смерти
      void OnDied(Unit * mKiller)
      {
      RemoveAIUpdateEvent();//удаления события таймера
      }

//Функция таймера которая постоянно повторяется
      void AIUpdate()
      {
          SpellCastVal(spells,_unit,0,nrspells);//передатача массива спелов для рандом кастов и тп(вообщем сам каст мобов
      }
};

//сдесь прописывают сами скрипты мобов
void SetupTheEye(ScriptMgr * mgr)
{
      mgr->register_creature_script(CN_CRYSTAL_MECHANIC, &CRYSTALMECHANICAI::Create);
}

Пример скрипт Сгущёного_молочка
Code

     spells[0].info = dbcSpell.LookupEntry(THUNDER_SHOCK);
          spells[0].targettype=TARGET_DESTINATION;
          spells[0].instant=false;
          spells[0].perctrigger=50.0f;
          spells[0].attackstoptimer=2000;
          spells[0].cooldown=10;
          spells[0].casttime=30;

    spells[1].info = dbcSpell.LookupEntry(TERRIFY);
          spells[1].targettype=TARGET_ATTACKING;
          spells[1].perctrigger=60.0f;
          spells[1].attackstoptimer=2000;
          spells[1].cooldown=50;

      }
        
      void OnCombatStart(Unit* mTarget)
      {
          for(int i=0;i<nrspells;i++)  spells[i].Timer = 0;    
          RegisterAIUpdateEvent(1000);     
      }

      void OnTargetDied(Unit* mTarget)
      {
      }

          void OnCombatStop(Unit *mTarget)
      {
          _unit->GetAIInterface()->setCurrentAgent(AGENT_NULL);
          _unit->GetAIInterface()->SetAIState(STATE_IDLE);
          RemoveAIUpdateEvent();
      }

      void OnDied(Unit * mKiller)
      {
      RemoveAIUpdateEvent();
      }

      void AIUpdate()
      {
          SpellCastVal(spells,_unit,0,nrspells);
      }
};

void SetupWC(ScriptMgr * mgr)
{
      mgr->register_creature_script(CN_MUTANUS_THE_DEVOURERAI, &MUTANUSTHEDEVOURERAIAI::Create);
 
Реклама
  • Страница 1 из 1
  • 1
Поиск:

Администратор Cezar | sitemap sitemap forum | Хостинг от uCoz | ICQ: ICQ 6652242 | E-Mail: e-mail roman.sarvarov[@]gmail.com | русский фан сайт про игру state of decay
Читы для wow скачать бесплатно без регистрации, аддоны для wow скачать бесплатно с быстрой скоростью, баги wow без хайда, боты wow скачать, гайды wow мануалы,
макросы wow паладину ханту магу присту чернокнижнику разбойнику воину друиду, 2.4.3, 3.3.5, вов, wotlk, 4.0.3, 4.0, катаклизм, cataclysm, скачать бесплатно читы,
читы для wow cataclysm, читы для wow 3.3.5, боты 3.3.5