Aschbourne_PRC8/_module/nss/_use_map2.nss
GetOffMyYarn 69879d6957 Areas and Fixes
Added CCOH and missing areas
Changed some areas to be craftable,
Fixed some on death issues,
Fixed the Gaurd
2024-08-30 11:38:44 -04:00

86 lines
2.8 KiB
Plaintext

void CreateADecodedMap(object oPC, int iMapLevel);
void CreateMapCopy(object oPC, object oMap);
void main()
{
object oPC = OBJECT_SELF;
object oMapUsed = GetLocalObject(oPC,"oMapUsed");
DeleteLocalObject(oPC,"oMapUsed");
int iMapSkill = GetCampaignInt("UOACraft","iMapSkill",oPC);
int iMapChance = iMapSkill;
if (iMapChance <350)
{
iMapChance = GetAbilityScore(oPC,ABILITY_INTELLIGENCE)*5;
iMapChance = iMapChance +(GetAbilityScore(oPC,ABILITY_WISDOM)*3);
iMapChance = iMapChance +(GetAbilityScore(oPC,ABILITY_DEXTERITY)*2);
iMapChance = iMapChance * 3;
if (iMapChance >350) iMapChance = 350;
if (iMapSkill > iMapChance) iMapChance = iMapSkill;
}
int iMapLevel = StringToInt(GetStringRight(GetTag(oMapUsed),2));
if (iMapLevel==0) iMapLevel=10;
int iMapChanceNeeded = iMapLevel*100;
AssignCommand(oPC,ActionPlayAnimation(ANIMATION_FIREFORGET_READ,0.5,5.0));
AssignCommand(oPC,PlaySound("as_na_grassmove3"));
AssignCommand(oPC,DelayCommand(6.0,PlaySound("as_na_grassmove1")));
AssignCommand(oPC,DelayCommand(5.0,ActionPlayAnimation(ANIMATION_FIREFORGET_READ,0.5,4.0)));
FloatingTextStringOnCreature("You begin decoding the map.",oPC,FALSE);
if (iMapChance<iMapChanceNeeded)
{
DelayCommand(9.5,FloatingTextStringOnCreature("You have no idea how to decode this map..",oPC,FALSE));
return;
}
DestroyObject(oMapUsed,9.0);
DelayCommand(10.0,CreateADecodedMap(oPC,iMapLevel));
}
void CreateADecodedMap(object oPC, int iMapLevel)
{
string sResource;
switch (iMapLevel)
{
case 2:{sResource="_uoa_tmap_lvl002";break;}
case 3:{sResource="_uoa_tmap_lvl003";break;}
case 4:{sResource="_uoa_tmap_lvl004";break;}
case 5:{sResource="_uoa_tmap_lvl005";break;}
case 6:{sResource="_uoa_tmap_lvl006";break;}
case 7:{sResource="_uoa_tmap_lvl007";break;}
case 8:{sResource="_uoa_tmap_lvl008";break;}
case 9:{sResource="_uoa_tmap_lvl009";break;}
case 10:{sResource="_uoa_tmap_lvl010";break;}
default:{sResource="_uoa_tmap_lvl001";break;}
}
object oMap = CreateItemOnObject(sResource,oPC,1);
DelayCommand(1.0,CreateMapCopy(oPC,oMap));
return;
}
void CreateMapCopy(object oPC, object oMap)
{
//In this segment of code you need to set
//exactly how many treasure chest waypoints there are
//in your module.
int iMaxLocations = 1;
//You must set this variable or else the maps will
//all point to the same location.
int iMapLocation = 1;
if (iMaxLocations>1) iMapLocation = Random(iMaxLocations)+1;
string sNewTag = "_UOA_TMAP_"+IntToString(iMapLocation);
CopyObject(oMap,GetLocation(oPC),oPC,sNewTag);
DestroyObject(oMap,2.0);
DelayCommand(1.0,FloatingTextStringOnCreature("You carefully decode the treasure map, noting the location of the buried treasure.",oPC,FALSE));
return;
}