void main() { effect eVis = EffectVisualEffect(VFX_DUR_LIGHT_YELLOW_15); effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_POSITIVE); effect eLink = EffectLinkEffects(eVis, eDur); object oPC = GetPCSpeaker(); location loc = GetLocation(oPC); int nInt = GetAbilityModifier(ABILITY_DEXTERITY, oPC); int nLore = GetSkillRank(SKILL_LORE, oPC); int nRoll=d20(1); int nTotal = nInt + nLore + nRoll; int nExtra = nInt+nLore; if (nExtra>0) { nExtra=nExtra*20; } else { nExtra=1; } float fExtra=IntToFloat(nExtra); AssignCommand(oPC,PlayAnimation(ANIMATION_LOOPING_GET_LOW,1.0,5.0)); AssignCommand(oPC,FloatingTextStringOnCreature("starts a campfire",oPC)); SendMessageToPC(oPC,"Rolled "+IntToString(nRoll)+" + lore and dex bonus = "+IntToString(nTotal)+" vs minimum DC 10"); //AssignCommand(oPC,PlaySound("al_cv_firecamp1")); if (nTotal > 10) { CreateObject(OBJECT_TYPE_PLACEABLE , "nk_gn_campfire", loc, TRUE); object oFire = GetNearestObjectByTag("nk_gn_campfire" , oPC, 1); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eLink, oFire); PlaySound("al_cv_firecamp1"); DelayCommand(200.0+fExtra,DestroyObject(oFire)); object oWood = GetItemPossessedBy(oPC, "jw_logs"); DestroyObject(oWood); } else { ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectDamage(1, DAMAGE_TYPE_FIRE, DAMAGE_POWER_ENERGY), oPC); ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_COM_HIT_FIRE, FALSE), oPC); AssignCommand(oPC, ActionSpeakString("*burns fingers*", TALKVOLUME_TALK)); } }