void main() { object oPC = GetClickingObject(); object oFishingRod = GetObjectByTag("FishingRod"); object oPoss = GetItemPossessedBy(oPC, "FishingRod"); object oBearspawn = GetWaypointByTag("BearSpawn"); location lBear = GetLocation(oBearspawn); location lLoc = GetLocation(oPC); int nDexMod = GetAbilityModifier (ABILITY_DEXTERITY, oPC); int nWisMod = GetAbilityModifier (ABILITY_WISDOM, oPC); int nRoll = d20(); //The roll int nTotal = nRoll + nDexMod + nWisMod; //Total roll int nFishLong = d20() + 9; //The longer of the fish string sFish = IntToString(nFishLong); if (oPoss != OBJECT_INVALID) //Checks if the PC has a fishing rod! { PlaySound("as_na_splash2"); if (nTotal >= 18) //DC check to catch a fish, it's not that easy! { int nCatch= d100(); //ok, what did the PC caught? if (nCatch == 100) //PC gets a loot bag! { CreateObject(OBJECT_TYPE_PLACEABLE, "plc_lootbag2", lLoc, TRUE); SendMessageToPC(oPC, "You caught a bag!!!!"); } if ( (nCatch >= 50) && (nCatch <= 99) ) //PC gets a fish { CreateObject(OBJECT_TYPE_ITEM, "nw_it_msmlmisc20", lLoc, TRUE); SendMessageToPC(oPC, "You caught a " + sFish + " inches fish!!!!"); object oFishes = GetObjectByTag("NW_IT_MSMLMISC20", 3); //Checks if there are 3 fishes around if (oFishes != OBJECT_INVALID) //So, if there are more than 3 fishes around... { int nAttrackRoll = d100(); //The % roll to attrack a bear if (nAttrackRoll >= 90) //The (reversed) % of attracting a bear { CreateObject(OBJECT_TYPE_CREATURE, "nw_bearbrwn", lBear, TRUE); SendMessageToPC(oPC, "The smell of fish attracked a BEAR, run (and don't forget your fishing rod)!"); } } } if ( (nCatch >= 30) && (nCatch <=49) ) //PC gets a bottle { CreateObject(OBJECT_TYPE_ITEM, "nw_it_thnmisc001", lLoc, TRUE); SendMessageToPC(oPC, "You caught an empty bottle!!!!"); } if ( (nCatch >= 25) && (nCatch <=29) ) //PC gets a skeleton and fight { CreateObject(OBJECT_TYPE_PLACEABLE, "nw_pl_skeleton", lLoc, TRUE); SendMessageToPC(oPC, "You caught a skeleton!!!"); } if ( (nCatch >= 20) && (nCatch <=24) ) //PC gets a corpse { CreateObject(OBJECT_TYPE_PLACEABLE, "plc_corpse1", lLoc, TRUE); SendMessageToPC(oPC, "You caught a corpse!!!"); } if ( (nCatch >= 10) && (nCatch <=19) ) //PC gets rags { CreateObject(OBJECT_TYPE_ITEM, "nw_it_msmlmisc21", lLoc, TRUE); SendMessageToPC(oPC, "You caught some smelly rags!!!"); } if ( (nCatch >= 05) && (nCatch <=09) ) //PC gets a gargoyle skull { CreateObject(OBJECT_TYPE_ITEM, "nw_it_msmlmisc14", lLoc, TRUE); SendMessageToPC(oPC, "You caught a skull!!!!"); } if ( (nCatch >= 01) && (nCatch <=04) ) //PC gets stein { CreateObject(OBJECT_TYPE_ITEM, "nw_it_thnmisc002", lLoc, TRUE); SendMessageToPC(oPC, "You caught an empty ale stein!!!!"); } } if (nTotal <=17) //Too bad! { SendMessageToPC(oPC, "You caught nothing, better luck next time!"); AssignCommand(oPC, ActionPlayAnimation(ANIMATION_FIREFORGET_PAUSE_BORED , 1.0, 2.0)); } int nBreak = d100(); //that's to check if the rod will break! if (nBreak >= 95) { SendMessageToPC(oPC, "You almost got one but it got away and your fishing rod broke!!!!"); DestroyObject(oPoss, 0.0); PlaySound("as_na_branchsnp3"); AssignCommand(oPC, ActionPlayAnimation(ANIMATION_LOOPING_SIT_CROSS , 1.0, 2.0)); } } else { SendMessageToPC(oPC, "You don't have a fishing rod, get one if you want to fish!"); AssignCommand(oPC, ActionPlayAnimation(ANIMATION_FIREFORGET_PAUSE_SCRATCH_HEAD , 1.0, 2.0)); } }