Advertisement
Guest User

Untitled

a guest
Dec 18th, 2017
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.54 KB | None | 0 0
  1. void BossEmir(object oBoss)
  2. {
  3.     int nRandom = Random(100) + 1 ;
  4.  
  5.    
  6.     if(nRandom <= 20)
  7.     {
  8.         int bSpawned = FALSE;
  9.                
  10.         if(GetLocalInt(oBoss, "bHasSpawnedElementaireTerre") == FALSE)
  11.         {
  12.         //invoque Elementaire spécifique      
  13.             SetLocalInt(oBoss, "bHasSpawnedElementaireTerre", TRUE);
  14.             SpeakString("texte à mettre");
  15.             CreateCreature("resref_ElementaireTerre",GetLocation(GetObjectByTag("tp_boss_elementaire_terre")));
  16.             bSpawned = TRUE;
  17.            
  18.         // applique effet sur PC sur rayon 6 metres
  19.             effect e;
  20.    
  21.             e = EffectDamage(Random(50) + 50, DAMAGE_TYPE_BLUDGEONING, TRUE);
  22.             e = EffectLinkEffects(EffectNWN2SpecialEffectFile("sp_meteor_swarm_tiny_imp.sef"), e);
  23.    
  24.    
  25.             location lBoss = GetLocation(oBoss);
  26.             object oEnemy = GetFirstObjectInShape(SHAPE_SPHERE, 6.0, lBoss);
  27.             while(GetIsObjectValid(oEnemy))
  28.             {
  29.                 if(GetIsEnemy(oEnemy, oBoss))
  30.                 {
  31.                     ApplyEffectToObject(DURATION_TYPE_INSTANT, e, oEnemy);
  32.                     FloatingTextStringOnCreature("**texte à mettre**", oEnemy, FALSE);
  33.                 }
  34.                 oEnemy = GetNextObjectInShape(SHAPE_SPHERE, 6.0, lBoss);
  35.             }
  36.             AssignCommand(oBoss, SpeakString("texte à mettre"));
  37.             AssignCommand(oBoss, PlayVoiceChat(VOICE_CHAT_BATTLECRY1));        
  38.         }
  39.         break;             
  40.     }
  41.        
  42.     else if(nRandom <=40)
  43.     {
  44.         int bSpawned = FALSE;
  45.            
  46.         if(GetLocalInt(oBoss, "bHasSpawnedElementaireFeu") == FALSE)
  47.         {
  48.         //invoque Elementaire spécifique
  49.             SetLocalInt(oBoss, "bHasSpawnedElementaireFeu", TRUE);
  50.             SpeakString("texte à mettre");
  51.             CreateCreature("resref_ElementaireFeu",GetLocation(GetObjectByTag("tp_boss_elementaire_feu")));
  52.             bSpawned = TRUE;
  53.         // applique effet sur PC sur rayon 20 metres       
  54.             effect e;
  55.    
  56.             e = EffectDamage(Random(150) + 50, DAMAGE_TYPE_FIRE, TRUE);
  57.             e = EffectLinkEffects(EffectNWN2SpecialEffectFile("ror_lavabrst_01"), e);
  58.             e = EffectLinkEffects(EffectNWN2SpecialEffectFile("sp_fire_aoe"), e);
  59.    
  60.             location lBoss = GetLocation(oBoss);
  61.             object oEnemy = GetFirstObjectInShape(SHAPE_SPHERE, 20.0, lBoss);
  62.            
  63.             while(GetIsObjectValid(oEnemy))
  64.             {
  65.                 if(GetIsEnemy(oEnemy, oBoss))
  66.                 {
  67.                     ApplyEffectToObject(DURATION_TYPE_INSTANT, e, oEnemy);
  68.                     FloatingTextStringOnCreature("**texte à mettre**", oEnemy, FALSE);
  69.                 }
  70.                 oEnemy = GetNextObjectInShape(SHAPE_SPHERE, 20.0, lBoss);
  71.             }
  72.             AssignCommand(oBoss, SpeakString("texte à mettre"));
  73.             AssignCommand(oBoss, PlayVoiceChat(VOICE_CHAT_BATTLECRY1));
  74.         }
  75.         break;             
  76.     }
  77.     else if(nRandom <=55)
  78.     {
  79.         // applique effet sur PC sur rayon 20 metres       
  80.             effect e;
  81.    
  82.             e = EffectDamage(Random(40) + 40, DAMAGE_TYPE_BLUDGEONING, TRUE);
  83.             e = EffectLinkEffects(EffectNWN2SpecialEffectFile("sp_earthquake"), e);
  84.             e = EffectLinkEffects(EffectKnockdown(), e);
  85.    
  86.             location lBoss = GetLocation(oBoss);
  87.             object oEnemy = GetFirstObjectInShape(SHAPE_SPHERE, 20.0, lBoss);
  88.            
  89.             while(GetIsObjectValid(oEnemy))
  90.             {
  91.                 if(GetIsEnemy(oEnemy, oBoss))
  92.                 {
  93.                     ApplyEffectToObject(DURATION_TYPE_INSTANT, e, oEnemy);
  94.                     FloatingTextStringOnCreature("**texte à mettre**", oEnemy, FALSE);
  95.                 }
  96.                 oEnemy = GetNextObjectInShape(SHAPE_SPHERE, 20.0, lBoss);
  97.             }
  98.             AssignCommand(oBoss, SpeakString("texte à mettre"));
  99.             AssignCommand(oBoss, PlayVoiceChat(VOICE_CHAT_BATTLECRY1));
  100.     }
  101.    
  102.     else if(nRandom <=70)
  103.     {
  104.         // applique effet sur PC et rayons sur 2 metres    
  105.             effect e;
  106.    
  107.             e = EffectDamage(100, DAMAGE_TYPE_FIRE, TRUE);
  108.             e = EffectLinkEffects(EffectNWN2SpecialEffectFile("sp_ray_fire"), e);
  109.    
  110.             location lBoss = GetLocation(oBoss);
  111.             object oEnemy = GetFirstObjectInShape(SHAPE_SPHERE, 2.0, lBoss);
  112.            
  113.             while(GetIsObjectValid(oEnemy))
  114.             {
  115.                 if(GetIsEnemy(oEnemy, oBoss))
  116.                 {
  117.                     DelayCommand(0.1, ApplyEffectToObject(DURATION_TYPE_INSTANT, e, oEnemy));
  118.                     DelayCommand(3.1, ApplyEffectToObject(DURATION_TYPE_INSTANT, e, oEnemy));
  119.                     DelayCommand(6.1, ApplyEffectToObject(DURATION_TYPE_INSTANT, e, oEnemy));
  120.                     DelayCommand(9.1, ApplyEffectToObject(DURATION_TYPE_INSTANT, e, oEnemy));                                                          
  121.                     FloatingTextStringOnCreature("**texte à mettre**", oEnemy, FALSE);
  122.                 }
  123.                 oEnemy = GetNextObjectInShape(SHAPE_SPHERE, 2.0, lBoss);
  124.             }
  125.             AssignCommand(oBoss, SpeakString("texte à mettre"));
  126.             AssignCommand(oBoss, PlayVoiceChat(VOICE_CHAT_BATTLECRY1));
  127.     }
  128.     else if(nRandom <=100) //30% rien
  129.     {
  130.         SpeakString("texte à mettre");
  131.     }
  132.     if(bSpawned)
  133.     {//Spawn d'un elementaire
  134.         ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectNWN2SpecialEffectFile("sp_curse.sef"), oBoss);
  135.     }
  136.     else
  137.     {//BossEmir déja spawné, on recommence
  138.         BossEmir(oBoss);
  139.     }
  140.            
  141. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement