Effet: c'est d'la drogue! bande de tox! selon la fréquence de consommation il est possible de faire une overdose, ou de simplement planer, les valeurs du perso changent, ainsi que son alignement et si on en prend une fois et qu'on a arrété pendant longtemps les risque sont moindre que si on se shootait un max avec!
comme pour mon script précédent je passe pas un executescript() donc dans le script se trouvant dans le OnactivateItem on ajoute ça:
le nom de l'item ajouté s'appelle blacklotus tout comme le script ci-dessous:
void main()
{
object oUser = GetItemActivator();
int DoAlignmentAdjustment = TRUE;
int iBLUse = GetLocalInt(oUser,"BL_USE");
int iBLUseR = GetLocalInt(oUser,"BL_USER");
int iCh = d2(1)+iBLUse;
int iCh2 = d4(1);
int iCh3 = d10(1);
int iCh4 = d2(1);
int iDie = d100(1);
int iHP = GetCurrentHitPoints(oUser);
int iCon = GetAbilityScore(oUser,ABILITY_CONSTITUTION);
int iInt = GetAbilityScore(oUser,ABILITY_INTELLIGENCE);
int iUp = d6(1)*30;
int iDown = (d6(1)+iBLUse)*30;
effect eUp1 = EffectAbilityIncrease(ABILITY_STRENGTH,d4(1)-iBLUse);
effect eUp2 = EffectAbilityIncrease(ABILITY_DEXTERITY,d4(1)-iBLUse);
effect eUp3 = EffectHaste();
effect eBad1 = EffectBlindness();
effect eBad2 = EffectAbilityDecrease(ABILITY_STRENGTH,d4(1)+iBLUse);
effect eBad3 = EffectAbilityDecrease(ABILITY_CONSTITUTION,d4(1)+iBLUse);
effect eBad4 = EffectAbilityDecrease(ABILITY_DEXTERITY,d4(1)+iBLUse);
effect eBad5 = EffectConfused();
effect eBad6 = EffectStunned();
effect eBad7 = EffectSlow();
effect eBad9 = EffectAbilityDecrease(ABILITY_INTELLIGENCE,d4(1)+iBLUse);
SetLocalInt(oUser,"BL_USE",(iBLUse + 1));
SetLocalInt(oUser,"BL_USER",(iBLUseR + 1));
if(iCh > ((iCon / 3) + d2(1)))
{int iHP = GetCurrentHitPoints(oUser);
effect eBad8 = EffectDamage(iHP+iHP,DAMAGE_TYPE_MAGICAL,DAMAGE_POWER_NORMAL);
DelayCommand(20.0,ApplyEffectToObject(DURATION_TYPE_INSTANT,eBad8,oUser));
DelayCommand(20.0,SendMessageToPC(oUser,"Vous avez abusé du lotus noir... vous êtes en train de mourir."));
return;}
if(iCh > ((iCon / 3)))
{DelayCommand(20.0,SendMessageToPC(oUser,"Votre coeur commence a battre la chamade c'est comme si il allait sortir de votre poitrine"));}
if(iCh > ((iCon / 3) - d2(1)))
{DelayCommand(20.0,SendMessageToPC(oUser,"Vos paumes deviennent moites votre tête semble parcourue d'électricité"));}
if(iDie == 1)
{int iHP = GetCurrentHitPoints(oUser);
effect eBad8 = EffectDamage(iHP+iHP,DAMAGE_TYPE_MAGICAL,DAMAGE_POWER_NORMAL);
DelayCommand(20.0,ApplyEffectToObject(DURATION_TYPE_INSTANT,eBad8,oUser));
DelayCommand(20.0,SendMessageToPC(oUser,"Vous avez abusé du lotus noir... vous êtes en train de mourir."));
return;}
DelayCommand(20.0,AssignCommand(oUser, PlayVoiceChat(VOICE_CHAT_LAUGH,oUser)));
if(iCh2 == 1)
{DelayCommand(20.0,AssignCommand(oUser,ActionSpeakString("Wow! quel trip!",TALKVOLUME_TALK)));}
if(iCh2 == 2)
{DelayCommand(20.0,AssignCommand(oUser,ActionSpeakString("Ooooh... Les jolies couleurs!",TALKVOLUME_TALK)));}
if(iCh2 == 3)
{DelayCommand(20.0,AssignCommand(oUser,ActionSpeakString("DES INSECTES PARTOUT IL GROUILLENT SUR MOI AAAAAAAAAAAAH!",TALKVOLUME_TALK)));}
if(iCh2 == 4)
{DelayCommand(20.0,AssignCommand(oUser,ActionSpeakString("Qu'est-ce que c'était?? Vous avez vu?",TALKVOLUME_TALK)));}
if(iCh3 == 7)
{DelayCommand(20.0,ApplyEffectToObject(DURATION_TYPE_TEMPORARY,eBad1,oUser,iCh2*10.0));}
if(iCh3 >= 9)
{DelayCommand(20.0,ApplyEffectToObject(DURATION_TYPE_TEMPORARY,eBad5,oUser,iCh2*10.0));}
if(iCh3 == 8)
{DelayCommand(20.0,ApplyEffectToObject(DURATION_TYPE_TEMPORARY,eBad6,oUser,iCh2*10.0));}
if(iCh4 == 1)
{DelayCommand(20.0,AssignCommand(oUser, ActionPlayAnimation( ANIMATION_LOOPING_PAUSE_DRUNK, 1.0, 10.0)));}
if(iCh4 == 2)
{DelayCommand(20.0,AssignCommand(oUser, ActionPlayAnimation( ANIMATION_LOOPING_DEAD_FRONT, 1.0, 10.0)));}
DelayCommand(20.0,ApplyEffectToObject(DURATION_TYPE_TEMPORARY,eUp1,oUser,iUp*1.0));
DelayCommand(20.0,ApplyEffectToObject(DURATION_TYPE_TEMPORARY,eUp2,oUser,iUp*1.0));
DelayCommand(20.0,ApplyEffectToObject(DURATION_TYPE_TEMPORARY,eUp3,oUser,iCh3*10.0));
DelayCommand(20.0,ApplyEffectToObject(DURATION_TYPE_TEMPORARY,eBad9,oUser,(iUp+iDown*1.0)));
if(iBLUse > 2)
{
DelayCommand(iUp+20*1.0,ApplyEffectToObject(DURATION_TYPE_TEMPORARY,eBad4,oUser,iDown*1.0));
DelayCommand(iUp+20*1.0,ApplyEffectToObject(DURATION_TYPE_TEMPORARY,eBad2,oUser,iDown*1.0));
DelayCommand(iUp+20*1.0,ApplyEffectToObject(DURATION_TYPE_TEMPORARY,eBad3,oUser,iDown*1.0));
}
if(DoAlignmentAdjustment)
{
int nShift = (GetLawChaosValue(oUser)-21)/5;
if(nShift > 0)
{DelayCommand(20.0,AdjustAlignment(oUser,ALIGNMENT_CHAOTIC,nShift));
}
}
DelayCommand((iUp+iDown*2.0),SetLocalInt(oUser,"BL_USE",(iBLUse - 1)));
DelayCommand(((20+iUp+iDown)*1.0),SetLocalInt(oUser,"BL_USER",(iBLUseR - 1)));
}