539 lines
12 KiB
Plaintext
539 lines
12 KiB
Plaintext
|
//#include "_persist_01a"
|
||
|
|
||
|
void ItemCreate(object oPC, string sSeedResRef);
|
||
|
|
||
|
void CreatePlaceable(string sObject, location lPlace, float fDuration)
|
||
|
{
|
||
|
object oPlaceable = CreateObject(OBJECT_TYPE_PLACEABLE,sObject,lPlace,FALSE);
|
||
|
if (fDuration != 0.0)
|
||
|
DestroyObject(oPlaceable,fDuration);
|
||
|
}
|
||
|
|
||
|
void main()
|
||
|
{
|
||
|
object oPC = OBJECT_SELF;
|
||
|
string sPlantSeedTag = GetLocalString(oPC,"sItemActivated");
|
||
|
string sPlantResRef = "";
|
||
|
string sSeedResRef = "";
|
||
|
int iFailPlant = 0;
|
||
|
object oTool = OBJECT_INVALID;
|
||
|
object oWater = OBJECT_INVALID;
|
||
|
int iWater = GetLocalInt(oPC,"iWaterFull");
|
||
|
|
||
|
//int iFarmSkill = GetTokenPair(oPC,14,6);
|
||
|
int iFarmSkill = GetCampaignInt("UOACraft","iFarmSkill",oPC);
|
||
|
int iFarmChance = iFarmSkill;
|
||
|
int iSuccess = 0;
|
||
|
|
||
|
oTool = GetItemPossessedBy(oPC,"TOOL_SHOVEL");
|
||
|
oWater = GetItemPossessedBy(oPC,"ITEM_BUCKETOFWATER");
|
||
|
|
||
|
if (GetLocalInt(oPC,"iAmInField") != 99)
|
||
|
{
|
||
|
FloatingTextStringOnCreature("You must be in a fertilized field in order to plant seeds.",oPC,FALSE);
|
||
|
iFailPlant = 99;
|
||
|
}
|
||
|
|
||
|
if (oTool == OBJECT_INVALID)
|
||
|
{
|
||
|
if (iFailPlant != 99) FloatingTextStringOnCreature("You must have a shovel in order to plant these seeds.",oPC,FALSE);
|
||
|
iFailPlant = 99;
|
||
|
}
|
||
|
|
||
|
if (oWater == OBJECT_INVALID)
|
||
|
{
|
||
|
if (iFailPlant != 99) FloatingTextStringOnCreature("You must have a bucket of water in order to plant seeds.",oPC,FALSE);
|
||
|
iFailPlant = 99;
|
||
|
}
|
||
|
|
||
|
if (iFarmChance <350)
|
||
|
{
|
||
|
iFarmChance = GetAbilityScore(oPC,ABILITY_WISDOM)*5;
|
||
|
iFarmChance = iFarmChance + (GetAbilityScore(oPC,ABILITY_INTELLIGENCE)*3);
|
||
|
iFarmChance = iFarmChance+ (GetAbilityScore(oPC,ABILITY_CHARISMA)*2);
|
||
|
iFarmChance = iFarmChance *3;
|
||
|
if (iFarmChance > 350) iFarmChance = 350;
|
||
|
if (iFarmSkill > iFarmChance) iFarmChance = iFarmSkill;
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
if (sPlantSeedTag=="SEED_CORN")
|
||
|
{
|
||
|
sPlantResRef = "plant001";
|
||
|
sSeedResRef = "cornkernels";
|
||
|
}
|
||
|
|
||
|
if (sPlantSeedTag =="SEED_WHEAT")
|
||
|
{
|
||
|
sPlantResRef = "plant002";
|
||
|
sSeedResRef = "wheatgrains";
|
||
|
}
|
||
|
|
||
|
if (sPlantSeedTag =="SEED_OATS")
|
||
|
{
|
||
|
sPlantResRef = "plant004";
|
||
|
sSeedResRef = "oatgrains";
|
||
|
}
|
||
|
|
||
|
if (sPlantSeedTag =="SEED_BARLEY")
|
||
|
{
|
||
|
sPlantResRef = "plant005";
|
||
|
sSeedResRef = "barleygrains";
|
||
|
}
|
||
|
|
||
|
if (sPlantSeedTag =="SEED_SORGHUM")
|
||
|
{
|
||
|
sPlantResRef = "plant006";
|
||
|
sSeedResRef = "sorghumgrains";
|
||
|
}
|
||
|
|
||
|
|
||
|
if (sPlantSeedTag=="SEED_SPEARMINT")
|
||
|
{
|
||
|
sPlantResRef = "plant008";
|
||
|
sSeedResRef = "spearmint";
|
||
|
}
|
||
|
|
||
|
if (sPlantSeedTag =="SEED_PEPPERMINT")
|
||
|
{
|
||
|
sPlantResRef = "plant009";
|
||
|
sSeedResRef = "peppermint";
|
||
|
}
|
||
|
|
||
|
if (sPlantSeedTag =="SEED_GARLIC")
|
||
|
{
|
||
|
sPlantResRef = "plant010";
|
||
|
sSeedResRef = "cloveofgarlic";
|
||
|
}
|
||
|
|
||
|
if (sPlantSeedTag =="SEED_ONION")
|
||
|
{
|
||
|
sPlantResRef = "plant011";
|
||
|
sSeedResRef = "onionbulb";
|
||
|
}
|
||
|
|
||
|
|
||
|
if (sPlantSeedTag =="SEED_BLUEBERRY")
|
||
|
{
|
||
|
sPlantResRef = "plant012";
|
||
|
sSeedResRef = "blueberry";
|
||
|
}
|
||
|
|
||
|
if (sPlantSeedTag =="SEED_BLACKBERRY")
|
||
|
{
|
||
|
sPlantResRef = "plant013";
|
||
|
sSeedResRef = "blackberry";
|
||
|
}
|
||
|
|
||
|
if (sPlantSeedTag =="SEED_RASPBERRY")
|
||
|
{
|
||
|
sPlantResRef = "plant014";
|
||
|
sSeedResRef = "raspberry";
|
||
|
}
|
||
|
|
||
|
if (sPlantSeedTag =="SEED_CRANBERRY")
|
||
|
{
|
||
|
sPlantResRef = "plant015";
|
||
|
sSeedResRef = "cranberry";
|
||
|
}
|
||
|
|
||
|
if (sPlantSeedTag =="SEED_GRAPE1")
|
||
|
{
|
||
|
sPlantResRef = "plant016";
|
||
|
sSeedResRef = "grapepurple";
|
||
|
}
|
||
|
|
||
|
if (sPlantSeedTag =="SEED_GRAPE2")
|
||
|
{
|
||
|
sPlantResRef = "plant017";
|
||
|
sSeedResRef = "grapered";
|
||
|
}
|
||
|
|
||
|
if (sPlantSeedTag =="SEED_GRAPE3")
|
||
|
{
|
||
|
sPlantResRef = "plant018";
|
||
|
sSeedResRef = "grapeyellow";
|
||
|
}
|
||
|
|
||
|
if (sPlantSeedTag =="SEED_GOOSEBERRY")
|
||
|
{
|
||
|
sPlantResRef = "plant019";
|
||
|
sSeedResRef = "gooseberry";
|
||
|
}
|
||
|
|
||
|
if (sPlantSeedTag =="SEED_JUNIPERBERRY")
|
||
|
{
|
||
|
sPlantResRef = "plant020";
|
||
|
sSeedResRef = "juniperberry";
|
||
|
}
|
||
|
|
||
|
if (sPlantSeedTag =="SEED_MARIGOLD")
|
||
|
{
|
||
|
sPlantResRef = "plant021";
|
||
|
sSeedResRef = "marigold";
|
||
|
}
|
||
|
|
||
|
if (sPlantSeedTag =="SEED_SNAPDRAGON")
|
||
|
{
|
||
|
sPlantResRef = "plant022";
|
||
|
sSeedResRef = "snapdragon";
|
||
|
}
|
||
|
|
||
|
if (sPlantSeedTag =="SEED_NASTURTIUM")
|
||
|
{
|
||
|
sPlantResRef = "plant023";
|
||
|
sSeedResRef = "nasturtium";
|
||
|
}
|
||
|
|
||
|
if (sPlantSeedTag =="SEED_BLACKIRIS")
|
||
|
{
|
||
|
sPlantResRef = "plant024";
|
||
|
sSeedResRef = "blackiristuber";
|
||
|
}
|
||
|
|
||
|
if (sPlantSeedTag =="SEED_YELLOWIRIS")
|
||
|
{
|
||
|
sPlantResRef = "plant025";
|
||
|
sSeedResRef = "yellowiristuber";
|
||
|
}
|
||
|
|
||
|
if (sPlantSeedTag =="SEED_BLUEIRIS")
|
||
|
{
|
||
|
sPlantResRef = "plant026";
|
||
|
sSeedResRef = "blueiristuber";
|
||
|
}
|
||
|
|
||
|
if (sPlantSeedTag =="SEED_REDIRIS")
|
||
|
{
|
||
|
sPlantResRef = "plant027";
|
||
|
sSeedResRef = "rediristuber";
|
||
|
}
|
||
|
|
||
|
if (sPlantSeedTag =="SEED_WHITEIRIS")
|
||
|
{
|
||
|
sPlantResRef = "plant028";
|
||
|
sSeedResRef = "whiteiristuber";
|
||
|
}
|
||
|
|
||
|
if (sPlantSeedTag =="SEED_COTTON")
|
||
|
{
|
||
|
sPlantResRef = "plant029";
|
||
|
sSeedResRef = "cottonseeds";
|
||
|
}
|
||
|
|
||
|
|
||
|
if (sPlantSeedTag =="SEED_GINGER")
|
||
|
{
|
||
|
sPlantResRef = "plant030";
|
||
|
sSeedResRef = "gingerroot";
|
||
|
}
|
||
|
if (sPlantSeedTag =="SEED_MANDRAKE")
|
||
|
{
|
||
|
sPlantResRef = "plant031";
|
||
|
sSeedResRef = "mandrakeroot";
|
||
|
}
|
||
|
if (sPlantSeedTag =="SEED_SASSAFRASS")
|
||
|
{
|
||
|
sPlantResRef = "plant032";
|
||
|
sSeedResRef = "sassafrassroot";
|
||
|
}
|
||
|
if (sPlantSeedTag =="SEED_REDTULIP")
|
||
|
{
|
||
|
sPlantResRef = "plant033";
|
||
|
sSeedResRef = "redtulipbulb";
|
||
|
}
|
||
|
if (sPlantSeedTag =="SEED_BLACKTULIP")
|
||
|
{
|
||
|
sPlantResRef = "plant034";
|
||
|
sSeedResRef = "blacktulipbulb";
|
||
|
}
|
||
|
if (sPlantSeedTag =="SEED_WHITETULIP")
|
||
|
{
|
||
|
sPlantResRef = "plant035";
|
||
|
sSeedResRef = "whitetulipbulb";
|
||
|
}
|
||
|
if (sPlantSeedTag =="SEED_YELLOWTULIP")
|
||
|
{
|
||
|
sPlantResRef = "plant036";
|
||
|
sSeedResRef = "yellowtulipbulb";
|
||
|
}
|
||
|
if (sPlantSeedTag =="SEED_BLUETULIP")
|
||
|
{
|
||
|
sPlantResRef = "plant037";
|
||
|
sSeedResRef = "bluetulipbulb";
|
||
|
}
|
||
|
|
||
|
if (sPlantSeedTag =="SEED_TARRAGON")
|
||
|
{
|
||
|
sPlantResRef = "plant038";
|
||
|
sSeedResRef = "tarragon";
|
||
|
}
|
||
|
if (sPlantSeedTag =="SEED_SAGE")
|
||
|
{
|
||
|
sPlantResRef = "plant039";
|
||
|
sSeedResRef = "sage";
|
||
|
}
|
||
|
if (sPlantSeedTag =="SEED_LAVENDER")
|
||
|
{
|
||
|
sPlantResRef = "plant040";
|
||
|
sSeedResRef = "lavender";
|
||
|
}
|
||
|
if (sPlantSeedTag =="SEED_PERIWINKLE")
|
||
|
{
|
||
|
sPlantResRef = "plant041";
|
||
|
sSeedResRef = "periwinkle";
|
||
|
}
|
||
|
if (sPlantSeedTag =="SEED_MISTLETOE")
|
||
|
{
|
||
|
sPlantResRef = "plant042";
|
||
|
sSeedResRef = "mistletoe";
|
||
|
}
|
||
|
|
||
|
if (sPlantSeedTag =="SEED_ORIENTALPOPPY")
|
||
|
{
|
||
|
sPlantResRef = "plant043";
|
||
|
sSeedResRef = "orientalpoppy";
|
||
|
}
|
||
|
if (sPlantSeedTag =="SEED_LARKSPUR")
|
||
|
{
|
||
|
sPlantResRef = "plant044";
|
||
|
sSeedResRef = "larkspur";
|
||
|
}
|
||
|
if (sPlantSeedTag =="SEED_MAYAPPLE")
|
||
|
{
|
||
|
sPlantResRef = "plant045";
|
||
|
sSeedResRef = "mayapple";
|
||
|
}
|
||
|
if (sPlantSeedTag =="SEED_CHIVES")
|
||
|
{
|
||
|
sPlantResRef = "plant046";
|
||
|
sSeedResRef = "chives";
|
||
|
}
|
||
|
if (sPlantSeedTag =="SEED_RADISH")
|
||
|
{
|
||
|
sPlantResRef = "plant047";
|
||
|
sSeedResRef = "radish";
|
||
|
}
|
||
|
if (sPlantSeedTag =="SEED_LETTUCE")
|
||
|
{
|
||
|
sPlantResRef = "plant048";
|
||
|
sSeedResRef = "lettuce";
|
||
|
}
|
||
|
if (sPlantSeedTag =="SEED_TURNIP")
|
||
|
{
|
||
|
sPlantResRef = "plant049";
|
||
|
sSeedResRef = "turnip";
|
||
|
}
|
||
|
if (sPlantSeedTag =="SEED_PUMPKIN")
|
||
|
{
|
||
|
sPlantResRef = "plant050";
|
||
|
sSeedResRef = "pumpkinseeds";
|
||
|
}
|
||
|
if (sPlantSeedTag =="SEED_WATERMELON")
|
||
|
{
|
||
|
sPlantResRef = "plant051";
|
||
|
sSeedResRef = "watermelonseeds";
|
||
|
}
|
||
|
if (sPlantSeedTag =="SEED_SQUASH")
|
||
|
{
|
||
|
sPlantResRef = "plant052";
|
||
|
sSeedResRef = "wintersquashseed";
|
||
|
}
|
||
|
|
||
|
if (sPlantSeedTag =="SEED_ZUCCHINI")
|
||
|
{
|
||
|
sPlantResRef = "plant053";
|
||
|
sSeedResRef = "zucchinisquashse";
|
||
|
}
|
||
|
if (sPlantSeedTag =="SEED_CARROT")
|
||
|
{
|
||
|
sPlantResRef = "plant054";
|
||
|
sSeedResRef = "carrot";
|
||
|
}
|
||
|
if (sPlantSeedTag =="SEED_POTATO")
|
||
|
{
|
||
|
sPlantResRef = "plant055";
|
||
|
sSeedResRef = "potato";
|
||
|
}
|
||
|
if (sPlantSeedTag =="SEED_SWEETPOTATO")
|
||
|
{
|
||
|
sPlantResRef = "plant056";
|
||
|
sSeedResRef = "sweetpotato";
|
||
|
}
|
||
|
if (sPlantSeedTag =="SEED_PEANUTS")
|
||
|
{
|
||
|
sPlantResRef = "plant057";
|
||
|
sSeedResRef = "peanuts";
|
||
|
}
|
||
|
|
||
|
if (sPlantSeedTag =="SEED_INDIANCORN")
|
||
|
{
|
||
|
sPlantResRef = "plant058";
|
||
|
sSeedResRef = "indiancornkernel";
|
||
|
}
|
||
|
if (sPlantSeedTag =="SEED_POPCORN")
|
||
|
{
|
||
|
sPlantResRef = "plant059";
|
||
|
sSeedResRef = "popcornkernels";
|
||
|
}
|
||
|
if (sPlantSeedTag =="SEED_CATNIP")
|
||
|
{
|
||
|
sPlantResRef = "plant060";
|
||
|
sSeedResRef = "catnip";
|
||
|
}
|
||
|
if (sPlantSeedTag =="SEED_GREENBEANS")
|
||
|
{
|
||
|
sPlantResRef = "plant061";
|
||
|
sSeedResRef = "greenbeans";
|
||
|
}
|
||
|
if (sPlantSeedTag =="SEED_PEAS")
|
||
|
{
|
||
|
sPlantResRef = "plant062";
|
||
|
sSeedResRef = "peas";
|
||
|
}
|
||
|
if (sPlantSeedTag =="SEED_BEETS")
|
||
|
{
|
||
|
sPlantResRef = "plant063";
|
||
|
sSeedResRef = "beets";
|
||
|
}
|
||
|
if (sPlantSeedTag =="SEED_OREGANO")
|
||
|
{
|
||
|
sPlantResRef = "plant064";
|
||
|
sSeedResRef = "oregano";
|
||
|
}
|
||
|
if (sPlantSeedTag =="SEED_BASIL")
|
||
|
{
|
||
|
sPlantResRef = "plant065";
|
||
|
sSeedResRef = "basil";
|
||
|
}
|
||
|
if (sPlantSeedTag =="SEED_PARSLEY")
|
||
|
{
|
||
|
sPlantResRef = "plant066";
|
||
|
sSeedResRef = "parsley";
|
||
|
}
|
||
|
if (sPlantSeedTag =="SEED_ARTICHOKE")
|
||
|
{
|
||
|
sPlantResRef = "plant067";
|
||
|
sSeedResRef = "artichoke";
|
||
|
}
|
||
|
|
||
|
if (sPlantSeedTag =="SEED_CELERY")
|
||
|
{
|
||
|
sPlantResRef = "plant068";
|
||
|
sSeedResRef = "celery";
|
||
|
}
|
||
|
if (sPlantSeedTag =="SEED_OKRA")
|
||
|
{
|
||
|
sPlantResRef = "plant069";
|
||
|
sSeedResRef = "okra";
|
||
|
}
|
||
|
if (sPlantSeedTag =="SEED_TOMATO")
|
||
|
{
|
||
|
sPlantResRef = "plant070";
|
||
|
sSeedResRef = "tomato";
|
||
|
}
|
||
|
if (sPlantSeedTag =="SEED_HOPS")
|
||
|
{
|
||
|
sPlantResRef = "plant071";
|
||
|
sSeedResRef = "seed_hops_001";
|
||
|
iFarmChance = iFarmChance - 200;
|
||
|
}
|
||
|
|
||
|
|
||
|
if (iFailPlant == 99)
|
||
|
{
|
||
|
CreateItemOnObject(sSeedResRef,oPC,1);
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
AssignCommand(oPC,ActionPlayAnimation(ANIMATION_LOOPING_GET_LOW,1.0,6.0));
|
||
|
PlaySound("as_cv_mineshovl1");
|
||
|
DelayCommand(3.0,PlaySound("as_na_splash2"));
|
||
|
|
||
|
if (iWater == 0) iWater=5;
|
||
|
iWater--;
|
||
|
if (iWater <1)
|
||
|
{
|
||
|
DelayCommand(3.0,FloatingTextStringOnCreature("Your water bucket is now empty...",oPC,FALSE));
|
||
|
DestroyObject(oWater);
|
||
|
DelayCommand(3.0,ItemCreate(oPC,"item001"));
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
SendMessageToPC(oPC,"Your water bucket has "+IntToString(iWater)+" uses left.");
|
||
|
}
|
||
|
SetLocalInt(oPC,"iWaterFull",iWater);
|
||
|
|
||
|
int iRandom = Random(1000);
|
||
|
int iSkillGain = 0;
|
||
|
if (iRandom <= iFarmChance)
|
||
|
{
|
||
|
iSuccess = 1;
|
||
|
iRandom = Random(1000);
|
||
|
if (iRandom >= iFarmSkill)
|
||
|
{
|
||
|
if (d10(1)+1 >= iFarmChance/100) iSkillGain = 1;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
if (iSuccess == 0)
|
||
|
{
|
||
|
DelayCommand(6.0,FloatingTextStringOnCreature("You are unable to make the plant grow.",oPC,FALSE));
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
DelayCommand(6.0,FloatingTextStringOnCreature("You plant and water the seed with tender care.",oPC,FALSE));
|
||
|
|
||
|
if (iSkillGain ==1)
|
||
|
{
|
||
|
string sOldSkill = "";
|
||
|
string sOldSkill2 = "";
|
||
|
iFarmSkill++;
|
||
|
sOldSkill2 = IntToString(iFarmSkill);
|
||
|
sOldSkill = "."+GetStringRight(sOldSkill2,1);
|
||
|
if (iFarmSkill > 9)
|
||
|
{
|
||
|
sOldSkill = GetStringLeft(sOldSkill2,GetStringLength(sOldSkill2)-1)+sOldSkill;
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
sOldSkill = "0"+sOldSkill;
|
||
|
}
|
||
|
if (iFarmSkill <= 1000)
|
||
|
{
|
||
|
//DelayCommand(5.0,SetTokenPair(oPC,14,6,iFarmSkill));
|
||
|
DelayCommand(6.0,SetCampaignInt("UOACraft","iFarmSkill",iFarmSkill,oPC));
|
||
|
DelayCommand(6.0,SendMessageToPC(oPC,"==============================="));
|
||
|
DelayCommand(6.0,SendMessageToPC(oPC,"Your Farming skill has gone up!"));
|
||
|
DelayCommand(6.0,SendMessageToPC(oPC,"Current Farming skill : "+ sOldSkill+"%"));
|
||
|
DelayCommand(6.0,SendMessageToPC(oPC,"==============================="));
|
||
|
if (GetLocalInt(GetModule(),"_UOACraft_XP")!=0) DelayCommand(5.9,GiveXPToCreature(oPC,GetLocalInt(GetModule(),"_UOACraft_XP")));
|
||
|
}
|
||
|
}
|
||
|
|
||
|
float fPause = 1800.0 - IntToFloat(iFarmSkill);
|
||
|
//fPause = fPause/10.0;
|
||
|
object oTemp = CreateObject(OBJECT_TYPE_PLACEABLE,"temporaryhole",GetLocation(oPC),FALSE);
|
||
|
AssignCommand(oTemp,DelayCommand(fPause,CreatePlaceable(sPlantResRef,GetLocation(oTemp),0.0)));
|
||
|
DestroyObject(oTemp,fPause+10.0);
|
||
|
DelayCommand(7.0,SendMessageToPC(oPC,"Be sure to check back later to see if your plant has grown yet."));
|
||
|
|
||
|
int iToolBreak=GetLocalInt(oPC,"iToolWillBreak");
|
||
|
iToolBreak++;
|
||
|
if (iToolBreak > 100)
|
||
|
{
|
||
|
DelayCommand(2.0,FloatingTextStringOnCreature("Your shovel has broken while digging..",oPC,FALSE));
|
||
|
DestroyObject(oTool,2.0);
|
||
|
iToolBreak = 0;
|
||
|
}
|
||
|
SetLocalInt(oPC,"iToolWillBreak",iToolBreak);
|
||
|
|
||
|
}
|
||
|
|
||
|
void ItemCreate(object oPC, string sSeedResRef)
|
||
|
{
|
||
|
object oSeed = CreateItemOnObject(sSeedResRef,oPC,1);
|
||
|
return;
|
||
|
}
|