本文整理汇总了C++中roll_chance_i函数的典型用法代码示例。如果您正苦于以下问题:C++ roll_chance_i函数的具体用法?C++ roll_chance_i怎么用?C++ roll_chance_i使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了roll_chance_i函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: HandleImprovedFreeze
void HandleImprovedFreeze()
{
if (!_didHit)
return;
Unit* owner = GetCaster()->GetOwner();
if (!owner)
return;
if (AuraEffect* aurEff = owner->GetAuraEffect(SPELL_AURA_DUMMY, SPELLFAMILY_MAGE, ICON_MAGE_IMPROVED_FREEZE, EFFECT_0))
{
if (roll_chance_i(aurEff->GetAmount()))
owner->CastCustomSpell(SPELL_MAGE_FINGERS_OF_FROST, SPELLVALUE_AURA_STACK, 2, owner, true);
}
}
开发者ID:Ksenon,项目名称:multi_realm_cell,代码行数:15,代码来源:spell_mage.cpp
示例2: JustDied
void JustDied(Unit* killer) override
{
Player* player = killer->ToPlayer();
if (!player)
return;
if (roll_chance_i(20))
{
player->CastSpell(me, SPELL_SUMMON_FREED_MIST_WHISPER_SCOUT, true);
player->KilledMonsterCredit(NPC_MIST_WHISPER_SCOUT);
}
else
player->CastSpell(me, rivenWidowCocoonVictims[urand(0, 10)], true);
}
开发者ID:090809,项目名称:TrinityCore,代码行数:15,代码来源:zone_howling_fjord.cpp
示例3: HandleImprovedFlamestrike
void HandleImprovedFlamestrike()
{
if (_targetCount >= 2)
if (AuraEffect* aurEff = GetCaster()->GetAuraEffect(SPELL_AURA_DUMMY, SPELLFAMILY_MAGE, ICON_MAGE_IMPROVED_FLAMESTRIKE, EFFECT_0))
if (roll_chance_i(aurEff->GetAmount()))
{
float x, y, z;
WorldLocation const* loc = GetExplTargetDest();
if (!loc)
return;
loc->GetPosition(x, y, z);
GetCaster()->CastSpell(x, y, z, SPELL_MAGE_FLAMESTRIKE, true);
}
}
开发者ID:Ksenon,项目名称:multi_realm_cell,代码行数:15,代码来源:spell_mage.cpp
示例4: Absorb
void Absorb(AuraEffect* aurEff, DamageInfo & dmgInfo, uint32 & absorbAmount)
{
Unit* target = GetTarget();
if (AuraEffect* talentAurEff = target->GetAuraEffectOfRankedSpell(SPELL_MAGE_FROST_WARDING_R1, EFFECT_0))
{
int32 chance = talentAurEff->GetSpellInfo()->Effects[EFFECT_1].CalcValue();
if (roll_chance_i(chance))
{
absorbAmount = dmgInfo.GetDamage();
int32 bp = absorbAmount;
target->CastCustomSpell(target, SPELL_MAGE_FROST_WARDING_TRIGGERED, &bp, NULL, NULL, true, NULL, aurEff);
}
}
}
开发者ID:Ksenon,项目名称:multi_realm_cell,代码行数:15,代码来源:spell_mage.cpp
示例5: HandleOnHit
void HandleOnHit()
{
// Fix Sword and Board
if (Player* _player = GetCaster()->ToPlayer())
{
if (Unit* target = GetHitUnit())
{
if (roll_chance_i(30))
{
_player->CastSpell(_player, WARRIOR_SPELL_SWORD_AND_BOARD, true);
_player->RemoveSpellCooldown(WARRIOR_SPELL_SHIELD_SLAM, true);
}
}
}
}
开发者ID:CATACLYSMDEV,项目名称:JadeCore-5.4.8-18291--dev-,代码行数:15,代码来源:spell_warrior.cpp
示例6: GossipHello_go_ulduar_teleporter
bool GossipHello_go_ulduar_teleporter(Player* pPlayer, GameObject* pGo)
{
instance_ulduar* pInstance = (instance_ulduar*)pGo->GetInstanceData();
if (!pInstance)
return true;
if (roll_chance_i(10))
DoOrSimulateScriptTextForMap(-1603430, 1000103, pGo->GetMap());
// Base camp
pPlayer->ADD_GOSSIP_ITEM_ID(GOSSIP_ICON_CHAT, GOSSIP_ITEM_TELE_BASE_CAMP, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF);
// Formation grounds
if (pInstance->GetData(TYPE_LEVIATHAN) != NOT_STARTED || pPlayer->isGameMaster())
pPlayer->ADD_GOSSIP_ITEM_ID(GOSSIP_ICON_CHAT, GOSSIP_ITEM_TELE_FORMATION_GROUNDS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
// Colossal Forge
if (pInstance->GetData(TYPE_LEVIATHAN) == DONE || pPlayer->isGameMaster())
pPlayer->ADD_GOSSIP_ITEM_ID(GOSSIP_ICON_CHAT, GOSSIP_ITEM_TELE_COLOSSAL_FORGE, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
// Scrapyard
if ((pInstance->GetData(TYPE_IGNIS) == DONE && pInstance->GetData(TYPE_RAZORSCALE) == DONE && pInstance->GetData(TYPE_XT002) != NOT_STARTED) || pPlayer->isGameMaster())
pPlayer->ADD_GOSSIP_ITEM_ID(GOSSIP_ICON_CHAT, GOSSIP_ITEM_TELE_SCRAPYARD, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3);
// Antechamber
if (pInstance->GetData(TYPE_XT002) == DONE || pPlayer->isGameMaster())
pPlayer->ADD_GOSSIP_ITEM_ID(GOSSIP_ICON_CHAT, GOSSIP_ITEM_TELE_ANTECHAMBER, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 4);
// Shattered walkway
if (pInstance->GetData(TYPE_KOLOGARN) == DONE || pPlayer->isGameMaster())
pPlayer->ADD_GOSSIP_ITEM_ID(GOSSIP_ICON_CHAT, GOSSIP_ITEM_TELE_WALKWAY, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 5);
// Conservatory of life
if (pInstance->GetData(TYPE_AURIAYA) == DONE || pPlayer->isGameMaster())
pPlayer->ADD_GOSSIP_ITEM_ID(GOSSIP_ICON_CHAT, GOSSIP_ITEM_TELE_CONSERVATORY, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 6);
// Spark of imagination
if (pInstance->GetData(TYPE_MIMIRON) != NOT_STARTED || pPlayer->isGameMaster())
pPlayer->ADD_GOSSIP_ITEM_ID(GOSSIP_ICON_CHAT, GOSSIP_ITEM_TELE_SPARK_IMAGINATION, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 7);
// Prison of Yogg-Saron
if (pInstance->GetData(TYPE_VEZAX) == DONE || pPlayer->isGameMaster())
pPlayer->ADD_GOSSIP_ITEM_ID(GOSSIP_ICON_CHAT, GOSSIP_ITEM_TELE_YOGG_SARON, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 8);
pPlayer->SEND_GOSSIP_MENU(pPlayer->GetGossipTextId(pGo->GetGOInfo()->GetGossipMenuId()), pGo->GetGUID());
return true;
}
开发者ID:Reamer,项目名称:cyber-scriptdev2,代码行数:48,代码来源:ulduar.cpp
示例7: UpdateAI
void UpdateAI(const uint32 uiDiff) override
{
if (!m_creature->SelectHostileTarget() || !m_creature->getVictim())
return;
// Cleave
if (m_uiCleaveTimer <= uiDiff)
{
if (DoCastSpellIfCan(m_creature->getVictim(), SPELL_SHADOW_CLEAVE) == CAST_OK)
m_uiCleaveTimer = urand(4000, 8000);
}
else
m_uiCleaveTimer -= uiDiff;
// Necrotic Strike
if (m_uiNecroticStrikeTimer <= uiDiff)
{
if (DoCastSpellIfCan(m_creature->getVictim(), SPELL_NECROTIC_STRIKE) == CAST_OK)
m_uiNecroticStrikeTimer = urand(5000, 10000);
}
else
m_uiNecroticStrikeTimer -= uiDiff;
// random transformation
if (m_uiTransformationTimer <= uiDiff)
{
if (roll_chance_i(50))
{
if (DoCastSpellIfCan(m_creature, SPELL_DARK_TRANSFORMATION) == CAST_OK)
{
m_creature->SetSpeedRate(MOVE_RUN, 0.5f);
m_uiTransformationTimer = HOUR * IN_MILLISECONDS;
}
}
else
{
if (DoCastSpellIfCan(m_creature, SPELL_DARK_MARTYRDOM) == CAST_OK)
{
DoCastSpellIfCan(m_creature, SPELL_FANATICS_DETERMINATION, CAST_TRIGGERED);
m_uiTransformationTimer = HOUR * IN_MILLISECONDS;
}
}
}
else
m_uiTransformationTimer -= uiDiff;
DoMeleeAttackIfReady();
}
开发者ID:mynew4,项目名称:RustEmu-Core,代码行数:48,代码来源:boss_lady_deathwhisper.cpp
示例8: AttackedBy
void AttackedBy(Unit* pAttacker) override
{
if (!m_bIsFirstHit)
{
if (pAttacker->GetEntry() == NPC_MUTANUS)
DoScriptText(SAY_MUTANUS, m_creature, pAttacker);
// Check if already in ritual
else if (m_uiPoint >= 30)
DoScriptText(SAY_AGGRO_3, m_creature, pAttacker);
else
// Aggro 1 should be in 90% of the cases
DoScriptText(roll_chance_i(90) ? SAY_AGGRO_1 : SAY_AGGRO_2, m_creature, pAttacker);
m_bIsFirstHit = true;
}
}
开发者ID:zwisus,项目名称:mangos-classic,代码行数:16,代码来源:wailing_caverns.cpp
示例9: UpdateAI
void UpdateAI(uint32 diff) override
{
if (!UpdateVictim())
return;
events.Update(diff);
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
while (uint32 eventId = events.ExecuteEvent())
{
switch (eventId)
{
case EVENT_FROST_ATTACK:
DoCastVictim(SPELL_FROST_ATTACK, true);
events.ScheduleEvent(EVENT_FROST_ATTACK, urand(7000, 10000));
break;
case EVENT_ARCANE_BLAST:
DoCastVictim(SPELL_ARCANE_BLAST, true);
events.ScheduleEvent(EVENT_ARCANE_BLAST, 15000);
break;
case EVENT_DRAGONS_BREATH:
DoCastVictim(SPELL_DRAGONS_BREATH, true);
events.ScheduleEvent(EVENT_DRAGONS_BREATH, urand(12000, 22000));
if (roll_chance_i(50))
Talk(SAY_DRAGONS_BREATH);
break;
case EVENT_KNOCKBACK:
DoCastVictim(SPELL_KNOCKBACK, true);
events.ScheduleEvent(EVENT_KNOCKBACK, urand(15000, 25000));
break;
case EVENT_SOLARBURN:
DoCastVictim(SPELL_SOLARBURN, true);
events.ScheduleEvent(EVENT_SOLARBURN, 30000);
break;
default:
break;
}
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
DoMeleeAttackIfReady();
}
开发者ID:Carbenium,项目名称:TrinityCore,代码行数:46,代码来源:boss_nethermancer_sepethrea.cpp
示例10: DoSummonMushrooms
void DoSummonMushrooms(bool bIsFirstSummon)
{
// This implementation may not be 100% accurate;
// On aggro boss summons about 20 mushrooms; On timer it summons about 5 mushrooms per turn
// There is a 33% chance that the mushroom will be healthy
// The summon position is based on the center of the area coords
float fX, fY, fZ;
uint32 uiMaxMushrooms = bIsFirstSummon ? 20 : 5;
for (uint8 i = 0; i < uiMaxMushrooms; ++i)
{
uint32 uiMushroomEntry = roll_chance_i(33) ? NPC_HEALTHY_MUSHROOM : NPC_POISONOUS_MUSHROOM;
m_creature->GetRandomPoint(aMushroomPos[0], aMushroomPos[1], aMushroomPos[2], 30.0f, fX, fY, fZ);
m_creature->SummonCreature(uiMushroomEntry, fX, fY, fZ, 0.0f, TEMPSUMMON_DEAD_DESPAWN, 0);
}
}
开发者ID:dvdvideo1234,项目名称:mangos-wotlk,代码行数:17,代码来源:boss_amanitar.cpp
示例11: UpdateAI
void UpdateAI(uint32 diff)
{
if (!me->IsInCombat())
{
events2.Update(diff);
if (events2.ExecuteEvent() == EVENT_PHANTOM)
{
me->CastSpell(me, SPELL_SUMMON_PHANTOM, true);
events2.ScheduleEvent(EVENT_PHANTOM, urand(20000, 25000));
}
}
if (!UpdateVictim())
return;
events.Update(diff);
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
switch (events.ExecuteEvent())
{
case EVENT_GROUND_TREMOR:
if (roll_chance_i(50))
Talk(SAY_QUAKE);
me->CastSpell(me, me->GetDisplayId() != me->GetNativeDisplayId() ? SPELL_QUAKE : SPELL_GROUND_TREMOR, false);
events.ScheduleEvent(EVENT_GROUND_TREMOR, 10000);
break;
case EVENT_NUMBLING_SHOUT:
me->CastSpell(me, me->GetDisplayId() != me->GetNativeDisplayId() ? SPELL_NUMBING_ROAR : SPELL_NUMBING_SHOUT, false);
events.ScheduleEvent(EVENT_NUMBLING_SHOUT, 10000);
break;
case EVENT_DETERMINED_STAB:
me->CastSpell(me->GetVictim(), me->GetDisplayId() != me->GetNativeDisplayId() ? SPELL_DETERMINED_GORE : SPELL_DETERMINED_STAB, false);
events.ScheduleEvent(EVENT_DETERMINED_STAB, 8000);
break;
case EVENT_TRANSFORMATION:
Talk(EMOTE_TRANSFORM);
Talk(SAY_TRANSFORM);
me->CastSpell(me, SPELL_TRANSFORMATION, false);
me->CastSpell(me,SPELL_SUMMON_PHANTOM_TRANSFORM, true);
events.ScheduleEvent(EVENT_TRANSFORMATION, 10000);
break;
}
DoMeleeAttackIfReady();
}
开发者ID:AzerothShard-Dev,项目名称:azerothcore,代码行数:46,代码来源:boss_moorabi.cpp
示例12: HandleAfterHit
void HandleAfterHit()
{
Unit* target = GetHitUnit();
Unit* caster = GetCaster();
if (!caster || !target)
return;
// Remove Mind Spike debuff
target->RemoveAurasDueToSpell(87178, GetCaster()->GetGUID());
// Improved Mind blast - Mind Trauma cast
if (AuraEffect* improvedMindBlast = caster->GetDummyAuraEffect(SPELLFAMILY_PRIEST, 95, EFFECT_1))
if (caster->GetShapeshiftForm() == FORM_SHADOW)
if (roll_chance_i(improvedMindBlast->GetAmount()))
caster->CastSpell(target, 48301, true);
}
开发者ID:AnthoDevMoP,项目名称:Genesis,代码行数:17,代码来源:spell_priest.cpp
示例13: Absorb
void Absorb(AuraEffect* aurEff, DamageInfo& dmgInfo, uint32& absorbAmount)
{
Unit* target = GetTarget();
if (AuraEffect* talentAurEff = target->GetAuraEffectOfRankedSpell(SPELL_MAGE_FROST_WARDING_R1, EFFECT_0))
{
int32 chance = talentAurEff->GetSpellInfo()->Effects[EFFECT_1].CalcValue(); // SPELL_EFFECT_DUMMY with NO_TARGET
if (roll_chance_i(chance))
{
int32 bp = dmgInfo.GetDamage();
dmgInfo.AbsorbDamage(bp);
target->CastCustomSpell(target, SPELL_MAGE_FROST_WARDING_TRIGGERED, &bp, NULL, NULL, true, NULL, aurEff);
absorbAmount = 0;
PreventDefaultAction();
}
}
}
开发者ID:CrazyMeal,项目名称:Serval_Core,代码行数:17,代码来源:spell_mage.cpp
示例14: HandleCheckProc
bool HandleCheckProc(ProcEventInfo& eventInfo)
{
Unit const* const caster = GetCaster();
SpellInfo const* const triggerSpell = eventInfo.GetSpellInfo();
if (triggerSpell)
{
// Prevents proc by damage from the spell itself
if (triggerSpell->Id != GetId())
return true;
// Sanguinary Vein
if (AuraEffect const* const aurEff = caster->GetAuraEffectOfRankedSpell(SPELL_SANGUINARY_VEIN, EFFECT_1))
if (triggerSpell->GetAuraState() == AURA_STATE_BLEEDING && roll_chance_i(aurEff->GetAmount()))
return false;
}
return true;
}
开发者ID:Tithand,项目名称:TER-Server,代码行数:19,代码来源:spell_rogue.cpp
示例15: ReceiveEmote
void ReceiveEmote(Player* player, uint32 emote)
{
if (following)
return;
if (player->HasAura(SPELL_WARTS))
return;
if ((player->GetQuestStatus(QUEST_1) == QUEST_STATUS_INCOMPLETE) ||
(player->GetQuestStatus(QUEST_2) == QUEST_STATUS_INCOMPLETE) ||
(player->GetQuestStatus(QUEST_3) == QUEST_STATUS_INCOMPLETE) ||
(player->GetQuestStatus(QUEST_4) == QUEST_STATUS_INCOMPLETE) ||
(player->GetQuestStatus(QUEST_5) == QUEST_STATUS_INCOMPLETE) ||
(player->GetQuestStatus(QUEST_6) == QUEST_STATUS_INCOMPLETE) ||
(player->GetQuestStatus(QUEST_7) == QUEST_STATUS_INCOMPLETE) ||
(player->GetQuestStatus(QUEST_8) == QUEST_STATUS_INCOMPLETE) ||
(player->GetQuestStatus(QUEST_9) == QUEST_STATUS_INCOMPLETE) ||
(player->GetQuestStatus(QUEST_10) == QUEST_STATUS_INCOMPLETE) ||
(player->GetQuestStatus(QUEST_11) == QUEST_STATUS_INCOMPLETE) ||
(player->GetQuestStatus(QUEST_12) == QUEST_STATUS_INCOMPLETE))
{
if (emote == TEXT_EMOTE_KISS && me->IsWithinDistInMap(player, 30.0f))
{
if (!player->HasAura(SPELL_WARTSBGONE_LIP_BALM))
player->AddAura(SPELL_WARTS, player);
else if (roll_chance_i(10))
{
if (Creature* maiden = player->SummonCreature(NPC_MAIDEN_OF_ASHWOOD_LAKE, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN, 30000))
maiden->MonsterSay(SAY_FREED, LANG_UNIVERSAL, 0);
me->DisappearAndDie();
}
else
{
player->RemoveAura(SPELL_WARTSBGONE_LIP_BALM);
me->AddAura(SPELL_FROG_LOVE, me);
me->GetMotionMaster()->MoveFollow(player, PET_FOLLOW_DIST, PET_FOLLOW_ANGLE);
following = true;
}
}
}
}
开发者ID:Albis,项目名称:TrinityCore,代码行数:42,代码来源:grizzly_hills.cpp
示例16: DoSummonWave
void DoSummonWave()
{
// summoning on all sides
if (m_bIs25Man)
{
// summon 1 fanatic and 2 adherents on right side
m_creature->SummonCreature(NPC_CULT_ADHERENT, SpawnLoc[1].x, SpawnLoc[1].y, SpawnLoc[1].z, 0.0f, TEMPSUMMON_CORPSE_DESPAWN, 0);
m_creature->SummonCreature(NPC_CULT_FANATIC, SpawnLoc[2].x, SpawnLoc[2].y, SpawnLoc[2].z, 0.0f, TEMPSUMMON_CORPSE_DESPAWN, 0);
m_creature->SummonCreature(NPC_CULT_ADHERENT, SpawnLoc[3].x, SpawnLoc[3].y, SpawnLoc[3].z, 0.0f, TEMPSUMMON_CORPSE_DESPAWN, 0);
// summon 2 fanatics and 1 adherent on left side
m_creature->SummonCreature(NPC_CULT_FANATIC, SpawnLoc[4].x, SpawnLoc[4].y, SpawnLoc[4].z, 0.0f, TEMPSUMMON_CORPSE_DESPAWN, 0);
m_creature->SummonCreature(NPC_CULT_ADHERENT, SpawnLoc[5].x, SpawnLoc[5].y, SpawnLoc[5].z, 0.0f, TEMPSUMMON_CORPSE_DESPAWN, 0);
m_creature->SummonCreature(NPC_CULT_FANATIC, SpawnLoc[6].x, SpawnLoc[6].y, SpawnLoc[6].z, 0.0f, TEMPSUMMON_CORPSE_DESPAWN, 0);
// summon random on stairs
m_creature->SummonCreature(roll_chance_i(50) ? NPC_CULT_FANATIC : NPC_CULT_ADHERENT, SpawnLoc[8].x, SpawnLoc[8].y, SpawnLoc[8].z, 0.0f, TEMPSUMMON_CORPSE_DESPAWN, 0);
}
// summoning on 1 side alternatively
else
{
// left side summoning
if (m_bIsLeftSideSummon)
{
// summon 1 fanatic and 2 adherents
m_creature->SummonCreature(NPC_CULT_ADHERENT, SpawnLoc[1].x, SpawnLoc[1].y, SpawnLoc[1].z, 0.0f, TEMPSUMMON_CORPSE_DESPAWN, 0);
m_creature->SummonCreature(NPC_CULT_FANATIC, SpawnLoc[2].x, SpawnLoc[2].y, SpawnLoc[2].z, 0.0f, TEMPSUMMON_CORPSE_DESPAWN, 0);
m_creature->SummonCreature(NPC_CULT_ADHERENT, SpawnLoc[3].x, SpawnLoc[3].y, SpawnLoc[3].z, 0.0f, TEMPSUMMON_CORPSE_DESPAWN, 0);
}
else
{
// summon 2 fanatics and 1 adherent
m_creature->SummonCreature(NPC_CULT_FANATIC, SpawnLoc[4].x, SpawnLoc[4].y, SpawnLoc[4].z, 0.0f, TEMPSUMMON_CORPSE_DESPAWN, 0);
m_creature->SummonCreature(NPC_CULT_ADHERENT, SpawnLoc[5].x, SpawnLoc[5].y, SpawnLoc[5].z, 0.0f, TEMPSUMMON_CORPSE_DESPAWN, 0);
m_creature->SummonCreature(NPC_CULT_FANATIC, SpawnLoc[6].x, SpawnLoc[6].y, SpawnLoc[6].z, 0.0f, TEMPSUMMON_CORPSE_DESPAWN, 0);
}
// change sides for next summoning
m_bIsLeftSideSummon = !m_bIsLeftSideSummon;
}
}
开发者ID:mynew4,项目名称:RustEmu-Core,代码行数:41,代码来源:boss_lady_deathwhisper.cpp
示例17: OnGossipSelect
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
if (action == GOSSIP_ACTION_INFO_DEF+HALLOWEEN_EVENTID && IsEventActive(HALLOWEEN_EVENTID) && !player->HasAura(SPELL_TRICKED_OR_TREATED))
{
player->CastSpell(player, SPELL_TRICKED_OR_TREATED, true);
creature->CastSpell(player, roll_chance_i(50) ? SPELL_TRICK : SPELL_TREAT, true);
player->CLOSE_GOSSIP_MENU();
return true;
}
player->CLOSE_GOSSIP_MENU();
switch (action)
{
case GOSSIP_ACTION_TRADE: player->GetSession()->SendListInventory(creature->GetGUID()); break;
case GOSSIP_ACTION_INN: player->SetBindPoint(creature->GetGUID()); break;
}
return true;
}
开发者ID:beyourself,项目名称:yangyangwow,代码行数:21,代码来源:npc_innkeeper.cpp
示例18: UpdateAI
void UpdateAI(const uint32 uiDiff) override
{
DialogueUpdate(uiDiff);
if (m_uiCrowdSpeechTimer)
{
if (m_uiCrowdSpeechTimer <= uiDiff)
{
// only 15% chance to yell (guessed)
if (roll_chance_i(15))
{
if (Creature* pCitizen = m_creature->GetMap()->GetCreature(SelectRandomCrowdNpc()))
DoScriptText(aRandomTextEntries[urand(0, MAX_CROWD_TEXT_ENTRIES - 1)], pCitizen);
}
m_uiCrowdSpeechTimer = 1000;
}
else
m_uiCrowdSpeechTimer -= uiDiff;
}
}
开发者ID:AwkwardDev,项目名称:mangos-d3,代码行数:21,代码来源:howling_fjord.cpp
示例19: HandleOnHit
void HandleOnHit()
{
if (Unit* caster = GetCaster())
{
if (Unit* target = GetHitUnit())
{
if (caster->GetTypeId() == TYPEID_PLAYER && caster->HasAura(MASTERY_MONK_WINDWALKER))
{
float Mastery = caster->GetFloatValue(PLAYER_MASTERY) * 1.4f;
if (roll_chance_f(Mastery))
{
if (roll_chance_i(50))
caster->CastSpell(caster, MASTERY_SPELL_COMBO_BREAKER_1, true);
else
caster->CastSpell(caster, MASTERY_SPELL_COMBO_BREAKER_2, true);
}
}
}
}
}
开发者ID:Rastrian,项目名称:DeathCore_6.x-1,代码行数:21,代码来源:spell_mastery.cpp
示例20: ExecuteEvent
void ExecuteEvent(uint32 eventId) override
{
switch (eventId)
{
case EVENT_HATEFUL_BOLT:
if (Unit* target = SelectTarget(SELECT_TARGET_MAXTHREAT, 1))
DoCast(target, SPELL_HATEFUL_BOLT);
events.Repeat(Seconds(7), Seconds(15));
break;
case EVENT_ARCANE_INFUSION:
DoCastSelf(SPELL_ARCANE_INFUSION, true);
break;
case EVENT_SUMMON_ASTRAL_FLARE:
if (roll_chance_i(50))
Talk(SAY_SUMMON);
DoCastSelf(RAND(SPELL_SUMMON_ASTRAL_FLARE_NE, SPELL_SUMMON_ASTRAL_FLARE_NW, SPELL_SUMMON_ASTRAL_FLARE_SE, SPELL_SUMMON_ASTRAL_FLARE_SW), true);
if (int32 mana = int32(me->GetMaxPower(POWER_MANA) / 10))
{
me->ModifyPower(POWER_MANA, -mana);
if (me->GetPower(POWER_MANA) * 100 / me->GetMaxPower(POWER_MANA) < 10)
{
Talk(SAY_EVOCATE);
me->InterruptNonMeleeSpells(false);
DoCastSelf(SPELL_EVOCATION);
}
}
events.Repeat(Seconds(10));
break;
case EVENT_BERSERK:
Talk(SAY_ENRAGE);
DoCastSelf(SPELL_BERSERK, true);
break;
default:
break;
}
}
开发者ID:ElunaLuaEngine,项目名称:ElunaTrinityWotlk,代码行数:39,代码来源:boss_curator.cpp
注:本文中的roll_chance_i函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论