//**************************************************************************** //SPHERE by : Menasoft ©1997-2000 //www.sphereserver.com // All SPHERE script files and formats are copyright Menasoft & Partners. // This file may be freely edited for personal use, but may not be distributed // in whole or in part, in any format without express written permission from // Menasoft & Partners. All donations and contributions // become the property of Menasoft & Partners. //**************************************************************************** // FILE LAST UPDATED: Friday, April 28, 2000 // NOTE: This is loaded 2nd after SPHERE.INI watch out for order of dependancies ! (keyword DEFNAME) VERSION=0.54 [RESOURCES] // sphere.ini and spheretable.scp are automatic. // All the other scripts we want to load. spherebook.scp spherechar.scp sphereevents.scp spherechar_human.scp trackersblades.scp spherechar_evil.scp spherechar_anim.scp spheredefs.scp spheredialog.scp spherehelp.scp sphereresources.scp sphereitemb1.scp sphereitemb2.scp sphereitemb3.scp sphereitemb4.scp sphereitemb5.scp sphereitemb6.scp sphereitemb7.scp sphereitem_potions.scp sphereitem_multis.scp sphereitem_x.scp sphereitem_deed.scp sphereitem_ore.scp sphereregion.scp spheremap.scp spheremenu.scp spherename.scp spherenewb.scp sphereskill.scp spheretable_x.scp spheretemplate.scp spheretemp_loot.scp spheretemp_vend.scp spheretrig.scp housemenu.scp gray.scp namingstone.scp drydock.scp quests.scp guilds.scp [RESOURCES] // speech and events files. scripts\speech\ //scripts\test\ [MAP 0] // This is the default map0.mul file. SIZE=6144,4096 WRAPX=5120 [OBSCENE] *fuck* *shit shit* nigger* *nigger nigga cunt* cock cocksucker //ass asshole asswipe tits whore jigaboo chigaboo wop kyke kike tit spic prick piss lezbo lesbo felatio dyke dildo chinc chink cunniling* cum clitor* clit penis klit kunt jiz jism jerkoff jackoff goddamn fag blowjob bitch //dick //pussy snatch twat [BLOCKEMAIL] // List of some of the free email services. @hotmail.com @juno.com @yahoo.com @netscape.com @geocities.com @angelfire.com @beer.com @email.com @excite.com @hotpop.com @rocketmail.com @bigfoot.com @mailexcite.com @garfield.com @bemail.org [NOTOTITLES] // NotoTitles[5*11] // highest karma Trustworthy Estimable Great Glorious Glorious Honest Commendable Famed Illustrious Illustrious Good Honorable Admirable Noble Noble Kind Respectable Proper Eminent Eminent Fair Upstanding Reputable Distinguished Distinguished Notable Prominent Renowned Renowned Rude Disreputable Notorious Imfamous Dishonored Unsavory Dishonorable Ignoble Sinister Sinister Scoundrel Malicious Vile Villainous Dark Despicable Dastardly Wicked Evil Evil Outcast Wretched Nefarious Dread Dread [PLEVEL 1] // extra player commands. AFK ANIM POINT RESEND SYNC RESYNC DETAIL SLEEP UNDERWEAR WHERE HUNGRY CAST TELE SUICIDE FLIP SELF LAST BARK GRAY GREY PASS TASKS MACRODIALOG STATS HELP REGS HelpPage EQUIPARMOR EQUIPWEAPON FIX STUCK UNSTUCK NECRO [PLEVEL 2] // extra counselor commands. f_laminate isnpcstuck countclients npcrandvalidlocation nearestregion randloc TIMERSAFE TRAPCONTAINER BLADETRACK STUCKCHECK RUNESPEAK UNTILREGIONCHANGE THINGBODY ONLINE GOSOMEWHERE INFO PROPS TWEAK ELVEN CLIENTS PAGE GO GOUID GOCHAR GOSOCK GOCLI XGO SUMMONPLAYER INVIS INVISEFFECT JAIL JAILTIME FORGIVE PARDON RESTOREPLAYERMEMORY FILLNECROBOOK [PLEVEL 3] ANONCURSE REMOVECURSE SAVEEGO RESTOREEGO REMOVEEGO LYCANTHROPE RAGE CHARM ENSLAVE FREE TAME WOUND REMOVERAGE RAISENPC FINISHBOOK CAMPHEAL macrocheck FILLPOTION ADMIN IAMYOU MIMIC RPRATING CHARLIST HEALWIND INVUL [PLEVEL 4] f_roof_target macroskill SPELL CLERIC CHIVALRYGAIN SAFECONSUME SUMMONEDPET SUMMONUNDEAD AWARDFAME LINK TILE NUKE SAVE GOTYPE GONAME [PLEVEL 6] ACCOUNT SETPRIV DIALOG BLOCKIP TOME EVALRP EXTRACT UNEXTRACT EXPORT IMPORT PASSWORD EMAIL [ADVANCE] STR=7500,1800,375 INT=7500,1800,375 DEX=7450,1750,365 [STARTS] // new client Yew Yew Territory //The Sturdy Bow 634,1197,0 //567,978,0 Minoc The Barnacle Tavern 2477,407,15 Britain Britain's Warriors Guild //Sweet Dreams Inn 1343,1738,20 //1496,1629,10 Moonglow The Scholars Inn 4404,1169,0 Trinsic The Traveller's Inn 1844,2745,0 Magincia The Great Horns Tavern 3738,2223,20 Jhelom The Morning Star Inn 1378,3817,0 Skara Brae The Falconers Inn 594,2227,0 Vesper The Ironwood Inn 2771,977,0 [RUNES] An Bet Corp Des Ex Flam Grav Hur In Jux Kal Lor Mani Nox Ort Por Quas Rel Sanct Tym Uus Vas Wis Xen Ylem Zan [COMMENT SKILL x] ADV_RATE=10.0,200.0,800.0 // 10.0 successes at 0% to gain .1, 800.0 successes at 100% to gain .1 skill, 200.0 successes at 50% to gain .1, VALUES=0,100 // The amount of value an item created with the skill gets at skill levels. STAT_STR=80 // You will tend toward these stat vals if you use this skill a lot. BONUS_STATS=10 // What percent of the skill success is based on stat levels. = 10% BONUS_STR=80 // % of each stat toward success at skill [SKILL 0] DEFNAME=SKILL_ALCHEMY KEY=Alchemy TITLE=Alchemist //PROMPT_MSG=What would you like to make a potion out of? DELAY=3.0,1.0 // per stroke. EFFECT=0.0,100.0 ADV_RATE=2.5,40.0,190.0 VALUES=1,20,100 BONUS_STATS=10 BONUS_STR=0 BONUS_DEX=20 BONUS_INT=80 STAT_STR=5 STAT_INT=75 STAT_DEX=40 ON=@Fail SRC.EMOTE toss the failed mixture from the mortar. [SKILL 1] DEFNAME=SKILL_ANATOMY KEY=Anatomy TITLE=Scholar PROMPT_MSG=Whom shall I examine? DELAY=3.0,1.0 ADV_RATE=2.5,50.0,200.0 BONUS_STATS=50 BONUS_STR=0 BONUS_DEX=0 BONUS_INT=90 STAT_STR=15 STAT_INT=120 STAT_DEX=15 ON=@Fail SRC.SYSMESSAGE You can't think of anything about this creature [SKILL 2] DEFNAME=SKILL_ANIMAL_LORE KEY=AnimalLore TITLE=Scholar PROMPT_MSG=What animal should I look at? DELAY=3.0,1.0 ADV_RATE=2.5,50.0,200.0 STAT_STR=0 STAT_INT=110 STAT_DEX=0 BONUS_STR=0 BONUS_DEX=0 BONUS_INT=100 BONUS_STATS=50 ON=@Fail SRC.SYSMESSAGE You can't think of anything off hand [SKILL 3] DEFNAME=SKILL_APPRAISE KEY=ItemID TITLE=Merchant PROMPT_MSG=What do you wish to appraise and identify? DELAY=1.0 ADV_RATE=2.5,50.0,200.0 STAT_STR=0 STAT_INT=85 STAT_DEX=0 BONUS_STR=0 BONUS_DEX=0 BONUS_INT=100 BONUS_STATS=25 ON=@Fail SRC.SYSMESSAGE You can't think of anything off hand [SKILL 4] DEFNAME=SKILL_ARMSLORE KEY=ArmsLore TITLE=Arms%s PROMPT_MSG=What would you like to evaluate? DELAY=1.0 STAT_STR=10 STAT_INT=60 STAT_DEX=15 BONUS_STR=33 BONUS_DEX=33 BONUS_INT=34 BONUS_STATS=25 ADV_RATE=2.5,50.0,200.0 ON=@Fail SRC.SYSMESSAGE You are uncertain about this item [SKILL 5] DEFNAME=SKILL_Parrying KEY=Parrying TITLE=Shieldfighter ADV_RATE=5.0,100.0,200.0 EFFECT=0.0,90.0 STAT_STR=65 STAT_INT=15 STAT_DEX=95 BONUS_STR=50 BONUS_DEX=50 BONUS_INT=0 BONUS_STATS=10 [SKILL 6] DEFNAME=SKILL_Begging KEY=Begging TITLE=Beggar PROMPT_MSG=To whom do you wish to grovel? DELAY=2.0 ADV_RATE=2.5,50.0,200.0 STAT_STR=5 STAT_INT=55 STAT_DEX=25 BONUS_STR=0 BONUS_DEX=50 BONUS_INT=50 BONUS_STATS=10 [SKILL 7] DEFNAME=SKILL_Blacksmith KEY=Blacksmithing TITLE=Blacksmith PROMPT_MSG= DELAY=1.0 STAT_STR=140 STAT_INT=15 STAT_DEX=25 BONUS_STR=75 BONUS_DEX=20 BONUS_INT=5 BONUS_STATS=10 ADV_RATE=4.5,70.0,150.0 VALUES=1,20,80 ON=@Fail SRC.SYSMESSAGE You have failed to make anything [SKILL 8] DEFNAME=Skill_Bowcraft KEY=Bowcraft TITLE=Bowyer PROMPT_MSG= DELAY=2.0 STAT_STR=40 STAT_INT=45 STAT_DEX=130 BONUS_STR=15 BONUS_DEX=70 BONUS_INT=15 BONUS_STATS=20 ADV_RATE=3.5,80.0,170.0 VALUES=1,30,200 ON=@Fail SRC.SYSMESSAGE You fail to create the item [SKILL 9] DEFNAME=SKILL_PEACEMAKING KEY=Peacemaking TITLE=Bard PROMPT_MSG= DELAY=2.0 STAT_STR=0 STAT_INT=80 STAT_DEX=80 BONUS_STR=0 BONUS_DEX=50 BONUS_INT=50 BONUS_STATS=5 ADV_RATE=2.5,50.0,200.0 ON=@Fail SRC.MESSAGE You attempt to calm everyone, but fail. [SKILL 10] DEFNAME=Skill_Camping KEY=Camping TITLE=Camper PROMPT_MSG= DELAY=6.0 STAT_STR=30 STAT_INT=30 STAT_DEX=30 BONUS_STR=33 BONUS_DEX=33 BONUS_INT=34 BONUS_STATS=50 ADV_RATE=2.5,50.0,200.0 ON=@Fail SRC.SYSMESSAGE You fail to ignite the campfire. [SKILL 11] DEFNAME=Skill_Carpentry KEY=Carpentry TITLE=Carpenter PROMPT_MSG= DELAY=2.0 STAT_STR=80 STAT_INT=40 STAT_DEX=50 BONUS_STR=50 BONUS_DEX=30 BONUS_INT=20 BONUS_STATS=25 ADV_RATE=2.5,50.0,100.0 VALUES=1,20,80 ON=@Fail SRC.SYSMESSAGE You fail to create the item [SKILL 12] DEFNAME=SKILL_CARTOGRAPHY KEY=Cartography TITLE=Cartographer PROMPT_MSG= DELAY=2.0 STAT_STR=15 STAT_INT=100 STAT_DEX=80 BONUS_STR=0 BONUS_DEX=20 BONUS_INT=80 BONUS_STATS=15 ADV_RATE=2.5,50.0,150.0 VALUES=1,20,80 ON=@Fail SRC.SYSMESSAGE Thy trembling hand results in an unusable map. [SKILL 13] DEFNAME=Skill_Cooking KEY=Cooking TITLE=Chef PROMPT_MSG=What would you like to cook? DELAY=2.0 STAT_STR=25 STAT_INT=45 STAT_DEX=20 BONUS_STR=0 BONUS_DEX=40 BONUS_INT=60 BONUS_STATS=50 ADV_RATE=2.5,50.0,100.0 VALUES=1,20,80 ON=@Fail SRC.SYSMESSAGE You burn the food to a crisp! It's ruined. [SKILL 14] DEFNAME=Skill_DetectHidden KEY=DetectingHidden TITLE=Detective PROMPT_MSG= DELAY=3.0,2.0 STAT_STR=15 STAT_INT=70 STAT_DEX=20 BONUS_STR=0 BONUS_DEX=20 BONUS_INT=80 BONUS_STATS=25 ADV_RATE=2.5,50.0,200.0 ON=@Fail SRC.MESSAGE You can see nothing hidden there. [SKILL 15] DEFNAME=Skill_Enticement KEY=Enticement TITLE=Bard PROMPT_MSG=Whom do you wish to entice? DELAY=2.0 STAT_STR=15 STAT_INT=80 STAT_DEX=50 BONUS_STR=0 BONUS_DEX=50 BONUS_INT=50 BONUS_STATS=5 ADV_RATE=2.5,50.0,200.0 ON=@Fail SRC.SYSMESSAGE Your music fails to attract anyone. [SKILL 16] DEFNAME=Skill_EvalInt KEY=EvaluatingIntel TITLE=Scholar PROMPT_MSG=Select char to inspect. DELAY=1.0 STAT_STR=5 STAT_INT=150 STAT_DEX=10 BONUS_STR=0 BONUS_DEX=0 BONUS_INT=100 BONUS_STATS=50 ADV_RATE=2.5,50.0,200.0 ON=@Fail SRC.SYSMESSAGE You cannot seem to judge the creature correctly. [SKILL 17] DEFNAME=Skill_Healing KEY=Healing TITLE=Healer PROMPT_MSG=Who will you use the bandages on? DELAY=4.0,2.0 EFFECT=0.5,5.0 ADV_RATE=3.0,100.0,200.0 STAT_STR=10 STAT_INT=80 STAT_DEX=100 BONUS_STATS=20 BONUS_STR=0 BONUS_DEX=30 BONUS_INT=70 ON=@Fail SRC.SYSMESSAGE You apply the bandages, but they barely help. [SKILL 18] DEFNAME=Skill_Fishing KEY=Fishing TITLE=Fisher%s PROMPT_MSG=What water do you want to fish in? DELAY=2.0 STAT_STR=40 STAT_INT=30 STAT_DEX=40 BONUS_STR=10 BONUS_DEX=90 BONUS_INT=0 BONUS_STATS=25 ADV_RATE=2.5,50.0,200.0 VALUES=1,30,200 ON=@Fail SRC.SYSMESSAGE You fish a while, but fail to catch anything. [SKILL 19] DEFNAME=Skill_Forensics KEY=Forensics TITLE=Scholar PROMPT_MSG=What corpse would you like to examine? DELAY=1.0 STAT_STR=10 STAT_INT=75 STAT_DEX=25 BONUS_STR=0 BONUS_DEX=0 BONUS_INT=100 BONUS_STATS=25 ADV_RATE=2.5,50.0,200.0 ON=@Fail SRC.SYSMESSAGE You can tell nothing about the corpse. [SKILL 20] DEFNAME=Skill_Herding KEY=Herding TITLE=Shepherd PROMPT_MSG= DELAY=2.0 STAT_STR=50 STAT_INT=50 STAT_DEX=50 BONUS_STR=25 BONUS_DEX=45 BONUS_INT=30 BONUS_STATS=25 ADV_RATE=2.5,50.0,200.0 ON=@Fail SRC.MESSAGE You don't seem to be able to persuade that to move. [SKILL 21] DEFNAME=Skill_Hiding KEY=Hiding TITLE=Rogue PROMPT_MSG= DELAY=6.0, 5.0 STAT_STR=20 STAT_INT=30 STAT_DEX=40 BONUS_STR=0 BONUS_DEX=80 BONUS_INT=20 BONUS_STATS=25 ADV_RATE=2.5,100.0,300.0 ON=@Fail SRC.SYSMESSAGE You can't seem to hide here. // IF !() // SRC.NEWITEM i_failmacro // SRC.ACT.MOREX= // SRC.ACT.MOREY= // SRC.ACT.MOREZ= // SRC.ACT.TIMER=1 // SRC.ACT.EQUIP // ENDIF [SKILL 22] DEFNAME=SKILL_PROVOCATION KEY=Provocation TITLE=Bard PROMPT_MSG=Whom do you wish to incite? DELAY=13.0 STAT_STR=20 STAT_INT=60 STAT_DEX=70 BONUS_STR=0 BONUS_DEX=90 BONUS_INT=10 BONUS_STATS=5 ADV_RATE=2.5,50.0,200.0 ON=@Fail SRC.SYSMESSAGE Your music fails to incite enough anger. [SKILL 23] DEFNAME=Skill_Inscription KEY=Inscription TITLE=Scribe PROMPT_MSG= DELAY=3.0 STAT_STR=15 STAT_INT=150 STAT_DEX=40 BONUS_STR=0 BONUS_DEX=0 BONUS_INT=100 BONUS_STATS=10 ADV_RATE=2.5,50.0,100.0 VALUES=1,30,200 ON=@Fail SRC.SYSMESSAGE You fail to inscribe the scroll, and the scroll is ruined. SRC.CONSUME 1 i_scroll_blank [SKILL 24] DEFNAME=Skill_LockPick KEY=LockPicking TITLE=Locksmith PROMPT_MSG=What do you want to pick? DELAY=3.0 STAT_STR=20 STAT_INT=60 STAT_DEX=70 BONUS_STR=0 BONUS_DEX=80 BONUS_INT=20 BONUS_STATS=25 ADV_RATE=2.5,50.0,200.0 ON=@Fail SRC.EMOTE fail to pick the lock if (rand(10)==1) SRC.CONSUME i_lockpick SRC.SYSMESSAGE You have broken your lockpick trying to pick this lock endif SRC.CRIMINAL //Make it public that they were trying [SKILL 25] DEFNAME=Skill_Magery KEY=Magery TITLE=Mage PROMPT_MSG= STAT_STR=20 STAT_INT=150 STAT_DEX=40 BONUS_STR=0 BONUS_DEX=0 BONUS_INT=100 BONUS_STATS=15 ADV_RATE=8.0,225.0,570.0 VALUES=1,20,80 //DELAY=1.0 // based on skill and difficulty. ON=@Fail SRC.SYSMESSAGE The spell fizzles. [SKILL 26] DEFNAME=Skill_MagicResist KEY=MagicResistance TITLE=Resistor PROMPT_MSG= EFFECT=0.0,90.0 STAT_STR=20 STAT_INT=125 STAT_DEX=40 BONUS_STR=0 BONUS_DEX=0 BONUS_INT=100 BONUS_STATS=50 ADV_RATE=2.0,10.0,80.0 [SKILL 27] DEFNAME=Skill_Tactics KEY=Tactics TITLE=Warrior STAT_STR=80 STAT_INT=40 STAT_DEX=70 BONUS_STR=50 BONUS_DEX=50 BONUS_INT=0 BONUS_STATS=10 ADV_RATE=50.0,250.0,400.0 [SKILL 28] DEFNAME=Skill_Snooping KEY=Snooping TITLE=Pickpocket PROMPT_MSG= DELAY=2.0 STAT_STR=30 STAT_INT=50 STAT_DEX=130 BONUS_STR=0 BONUS_DEX=100 BONUS_INT=0 BONUS_STATS=25 ADV_RATE=2.5,50.0,200.0 ON=@Fail SRC.SYSMESSAGE You fail to peek into the container. [SKILL 29] DEFNAME=Skill_Musicianship KEY=Musicianship TITLE=Bard PROMPT_MSG= DELAY=2.0 STAT_STR=20 STAT_INT=50 STAT_DEX=90 BONUS_STR=0 BONUS_DEX=80 BONUS_INT=20 BONUS_STATS=10 ADV_RATE=4.5,150.0,270.0 ON=@Fail SRC.SYSMESSAGE You play poorly, and there is no effect. // IF !() // SRC.NEWITEM i_failmacro // SRC.ACT.MOREX= // SRC.ACT.MOREY= // SRC.ACT.MOREZ= // SRC.ACT.TIMER=1 // SRC.ACT.EQUIP // ENDIF [SKILL 30] DEFNAME=SKILL_POISONING KEY=Poisoning TITLE=Assassin PROMPT_MSG=To what do you wish to apply the poison? DELAY=2.0 STAT_STR=15 STAT_INT=40 STAT_DEX=40 BONUS_STR=0 BONUS_DEX=20 BONUS_INT=80 BONUS_STATS=20 ADV_RATE=2.5,50.0,200.0 VALUES=1,30,200 ON=@Fail SRC.SYSMESSAGE You fail to apply a sufficient dose of poison to it. [SKILL 31] DEFNAME=Skill_Archery KEY=Archery TITLE=Archer PROMPT_MSG= DELAY=2.8,1.5 STAT_STR=70 STAT_INT=20 STAT_DEX=150 BONUS_STR=0 BONUS_DEX=95 BONUS_INT=5 BONUS_STATS=10 ADV_RATE=6.0,100.0,300.0 [SKILL 32] DEFNAME=SKILL_SPIRITSPEAK KEY=SpiritSpeak TITLE=Medium PROMPT_MSG= DELAY=2.0 STAT_STR=20 STAT_INT=150 STAT_DEX=30 BONUS_STR=0 BONUS_DEX=0 BONUS_INT=100 BONUS_STATS=50 ADV_RATE=2.5,50.0,200.0 ON=@Fail SRC.SYSMESSAGE You fail your attempt at contacting the netherworld. [SKILL 33] DEFNAME=Skill_Stealing KEY=Stealing TITLE=Thief PROMPT_MSG=Which item will you attempt to steal? DELAY=5.0 STAT_STR=40 STAT_INT=50 STAT_DEX=140 BONUS_STR=0 BONUS_DEX=100 BONUS_INT=0 BONUS_STATS=10 ADV_RATE=10.0,400.0,800.0 ON=@SkillTry SRC.CRIMINAL 1 ON=@Try SRC.CRIMINAL 1 ON=@SUCCESS SRC.CRIMINAL 1 ON=@SkillSuccess SRC.CRIMINAL 1 ON=@SkillStart SRC.CRIMINAL 1 ON=@Succeed SRC.CRIMINAL 1 ON=@Fail SRC.SYSMESSAGE You fail to steal the item. SRC.CRIMINAL 1 [SKILL 34] DEFNAME=Skill_Tailoring KEY=Tailoring TITLE=Tailor PROMPT_MSG= DELAY=3.0 STAT_STR=30 STAT_INT=30 STAT_DEX=60 BONUS_STR=5 BONUS_DEX=75 BONUS_INT=20 BONUS_STATS=25 ADV_RATE=3.5,80.0,140.0 VALUES=1,20,80 ON=@Fail SRC.SYSMESSAGE Tailoring failed. Some of the cloth is ruined. [SKILL 35] DEFNAME=Skill_Taming KEY=Taming TITLE=Animal Tamer PROMPT_MSG=Tame which animal? DELAY=2.0 STAT_STR=30 STAT_INT=90 STAT_DEX=60 BONUS_STR=30 BONUS_DEX=10 BONUS_INT=60 BONUS_STATS=20 ADV_RATE=2.0,50.0,100.0 ON=@Fail SRC.MESSAGE You fail to tame the creature. [SKILL 36] DEFNAME=skill_tasteid KEY=TasteID TITLE=Food Taster PROMPT_MSG=What would you like to taste? DELAY=1.0 STAT_STR=25 STAT_INT=50 STAT_DEX=15 BONUS_STR=20 BONUS_DEX=0 BONUS_INT=80 BONUS_STATS=50 ADV_RATE=2.5,50.0,200.0 ON=@Fail SRC.SYSMESSAGE You cannot discern anything about this substance. [SKILL 37] DEFNAME=Skill_Tinkering KEY=Tinkering TITLE=Tinker PROMPT_MSG= DELAY=3.0 STAT_STR=30 STAT_INT=70 STAT_DEX=150 BONUS_STR=20 BONUS_DEX=20 BONUS_INT=60 BONUS_STATS=10 ADV_RATE=4.0,70.0,125.0 VALUES=1,20,80 ON=@Fail SRC.SYSMESSAGE Tinkering failed. [SKILL 38] DEFNAME=Skill_Tracking KEY=Tracking TITLE=Ranger PROMPT_MSG= DELAY=4.0 STAT_STR=25 STAT_INT=50 STAT_DEX=60 BONUS_STR=0 BONUS_DEX=50 BONUS_INT=50 BONUS_STATS=25 ADV_RATE=2.5,150.0,400.0 ON=@Fail SRC.MESSAGE Tracking failed. [SKILL 39] DEFNAME=Skill_Vet KEY=Chivalry TITLE=Cleric PROMPT_MSG=What animal would you like to heal? DELAY=7.0,5.0 STAT_STR=30 STAT_INT=50 STAT_DEX=40 BONUS_STR=20 BONUS_DEX=20 BONUS_INT=60 BONUS_STATS=20 ADV_RATE=10.0,200.0,400.0 ON=@Fail SRC.SYSMESSAGE You apply the bandages, but they barely help. [SKILL 40] DEFNAME=Skill_Swordsmanship KEY=Swordsmanship TITLE=Swords%s PROMPT_MSG= DELAY=1.5,1.0 STAT_STR=145 STAT_INT=40 STAT_DEX=75 BONUS_STR=50 BONUS_DEX=50 BONUS_INT=0 BONUS_STATS=10 ADV_RATE=2.5,70.0,200.0 [SKILL 41] DEFNAME=Skill_Macefighting KEY=Macefighting TITLE=Macefighter PROMPT_MSG= STAT_STR=150 STAT_INT=35 STAT_DEX=55 BONUS_STR=80 BONUS_DEX=20 BONUS_INT=0 BONUS_STATS=10 DELAY=1.5,1.0 ADV_RATE=2.5,70.0,200.0 [SKILL 42] DEFNAME=Skill_Fencing KEY=Fencing TITLE=Fencer PROMPT_MSG= STAT_STR=55 STAT_INT=60 STAT_DEX=150 BONUS_STR=20 BONUS_DEX=80 BONUS_INT=0 BONUS_STATS=10 DELAY=1.5,0.5 ADV_RATE=3.5,150.0,400.0 [SKILL 43] DEFNAME=Skill_Wrestling KEY=Wrestling TITLE=Wrestler PROMPT_MSG= STAT_STR=150 STAT_INT=30 STAT_DEX=75 BONUS_STR=50 BONUS_DEX=50 BONUS_INT=0 BONUS_STATS=10 DELAY=0.8 ADV_RATE=2.5,50.0,200.0 [SKILL 44] DEFNAME=SKILL_LUMBERJACK KEY=Lumberjacking TITLE=Lumberjack PROMPT_MSG= DELAY=1.0 STAT_STR=60 STAT_INT=30 STAT_DEX=45 BONUS_STR=90 BONUS_DEX=10 BONUS_INT=0 BONUS_STATS=20 ADV_RATE=2.5,50.0,200.0 VALUES=1,10,50 ON=@Fail SRC.SYSMESSAGE You hack at the tree for a while, but fail to produce any useable wood. // IF !() // SRC.NEWITEM i_failmacro // SRC.ACT.MOREX= // SRC.ACT.MOREY= // SRC.ACT.MOREZ= // SRC.ACT.TIMER=1 // SRC.ACT.EQUIP // ENDIF [SKILL 45] DEFNAME=SKILL_MINING KEY=Mining TITLE=Miner PROMPT_MSG=Where would you like to mine? DELAY=1.0 STAT_STR=125 STAT_INT=30 STAT_DEX=45 BONUS_STR=70 BONUS_DEX=30 BONUS_INT=0 BONUS_STATS=20 ADV_RATE=5.5,200.0,400.0 VALUES=1,10,80 ON=@Fail SRC.SYSMESSAGE You loosen some rocks but fail to find any useable ore. // IF !() // SRC.NEWITEM i_failmacro // SRC.ACT.MOREX= // SRC.ACT.MOREY= // SRC.ACT.MOREZ= // SRC.ACT.TIMER=1 // SRC.ACT.EQUIP // ENDIF [SKILL 46] DEFNAME=SKILL_MEDITATION KEY=Meditation TITLE=Stoic DELAY=2.0,1.0 STAT_STR=10 STAT_INT=110 STAT_DEX=10 BONUS_STR=5 BONUS_DEX=90 BONUS_INT=5 BONUS_STATS=20 ADV_RATE=10.0,75.0,175.0 ON=@Fail SRC.SYSMESSAGE You lose your concentration [SKILL 47] DEFNAME=SKILL_STEALTH KEY=Stealth TITLE=Rogue PROMPT_MSG= DELAY=6.0,5.0 STAT_STR=20 STAT_INT=30 STAT_DEX=40 BONUS_STR=0 BONUS_DEX=80 BONUS_INT=20 BONUS_STATS=25 ADV_RATE=10.0,50.0,200.0 ON=@Fail SRC.SYSMESSAGE You can't seem to hide here. // IF !() // SRC.NEWITEM i_failmacro // SRC.ACT.MOREX= // SRC.ACT.MOREY= // SRC.ACT.MOREZ= // SRC.ACT.TIMER=1 // SRC.ACT.EQUIP // ENDIF [SKILL 48] DEFNAME=SKILL_REMOVE_TRAP KEY=RemoveTrap TITLE=Jack PROMPT_MSG=Select the trap to disarm DELAY=7.0,3.0,2.0 STAT_STR=20 STAT_INT=60 STAT_DEX=140 BONUS_STR=0 BONUS_DEX=80 BONUS_INT=20 BONUS_STATS=25 ADV_RATE=2.5,50.0,100.0 ON=@Fail SRC.SYSMESSAGE You fail to disarm the trap. [SKILL 49] DEFNAME=SKILL_Necromancy KEY=Necromancy TITLE=Necromancer STAT_STR=20 STAT_INT=150 STAT_DEX=40 BONUS_STR=0 BONUS_DEX=0 BONUS_INT=100 BONUS_STATS=15 ADV_RATE=10.0,200.0,800.0 VALUES=1,10,80 ON=@Fail SRC.SYSMESSAGE The spell fizzles. [SKILLCLASS 0] // undeclared class. // max skills for players of this skill class. // might want this to be all 50.0 to make people declare a class? DEFNAME=Class_undeclared NAME=undeclared // EVENTS=e_ClassUndeclared STATSUM=325 SKILLSUM=10000.0 STR=150 INT=150 DEX=150 Anatomy=100.0 ItemID=100.0 ArmsLore=100.0 Parrying=100.0 Begging=100.0 Blacksmithing=100.0 Bowcraft=100.0 Peacemaking=100.0 Camping=100.0 Carpentry=100.0 Cartography=100.0 Cooking=100.0 DetectingHidden=100.0 Enticement=100.0 EvaluatingIntel=100.0 Healing=100.0 Fishing=100.0 Forensics=100.0 Herding=100.0 Hiding=100.0 Provocation=100.0 Inscription=100.0 LockPicking=100.0 Magery=100.0 MagicResistance=100.0 Tactics=100.0 Snooping=100.0 Musicianship=100.0 Poisoning=100.0 Archery=100.0 SpiritSpeak=100.0 Stealing=100.0 Tailoring=100.0 Taming=100.0 TasteID=100.0 Tinkering=100.0 Tracking=100.0 Chivalry=100.0 Swordsmanship=100.0 Macefighting=100.0 Fencing=100.0 Wrestling=100.0 Lumberjacking=100.0 Mining=100.0 Meditation=100.0 Stealth=100.0 RemoveTrap=100.0 Necromancy=100.0 ON=@EnvironChange IF (( < 100.0)&&( < 010000000)&&!( & statf_dead)) VAR.BEENHERE=0> IF (> == 0) SYSMESSAGE This is your first time in . You learn a bit more about Britannia's geography... CARTOGRAPHY= + {.1 .3}> IF (( > 100.0)&&( < 101.0)) CARTOGRAPHY=100.0 ENDIF TRYP 0 TAG.Visited_=1 ENDIF VAR.BEENHERE= ENDIF ON=@Death IF () OBODY=> BODY=> FINDID.i_newpoly.TAG.OLDBODY= FINDID.i_newpoly.TAG.OLDOBODY= FINDID.i_newpoly.TIMERd=1 ENDIF IF () FINDID.i_newincog.TIMERd=1 ENDIF ON=@ItemDClick IF (( = t_container)||( = t_container_locked)) VAR.TRAPZ= VAR.TRAPM= VAR.OLDACT= IF !() ACT.MOREZ=0 ACT.MOREM=0 DOSWITCH > RETURN 0 BEGIN //MOREZ=1 - Explosion trap SRC.NEWITEM i_fx_explode SRC.ACT.TYPE=t_explosion SRC.ACT.MOREP=>,094,5 SRC.ACT.ATTR=attr_move_never SRC.ACT.P= SRC.ACT.TIMERd=1 END BEGIN //MOREZ=2 - Poison trap SRC.SFX 517 SRC.POISON * 20> * 40>}> END BEGIN //MOREZ=3 - Drain trap SRC.SFX 504 SRC.HITS=1 SRC.MANA=1 SRC.STAM=1 END BEGIN //MOREZ=4 - Fire trap SRC.SYSMESSAGE You were set on fire! SRC.NEWITEM i_fire_memory SRC.ACT.LINK= SRC.ACT.MORE2= / 10> SRC.ACT.EQUIP END BEGIN //MOREZ=5 - Cold trap SRC.DAMAGE * 12 / 10>,0284 SRC.NEWITEM i_fire_column SRC.ACT.ATTR=attr_magic|attr_move_never|attr_decay SRC.ACT.COLOR=0480 SRC.ACT.P= SRC.ACT.TIMER=3 END ENDDO ELSE DOSWITCH > RETURN 0 SYSMESSAGE is a trapped container. Type = Explosion, strength = >/100 SYSMESSAGE is a trapped container. Type = Poison, strength = >/100 SYSMESSAGE is a trapped container. Type = Drain SYSMESSAGE is a trapped container. Type = Fire, strength = >/100 SYSMESSAGE is a trapped container. Type = Cold, strength = >/100 ENDDO ENDIF SRC.ACT=> ENDIF ON=@HitTry if ( == ) SRC.ACTION = -1 SRC.FLAGS = & ~statf_war return 1 endif //IF ((==0)||( > 600)) // //"Boss" music. // MIDILIST midi_Serpents //ENDIF IF () IF ( = i_bow_enchanted) IF !() IF (!() && !()) SYSMESSAGE You are out of ammunition. ACTION=-1 RETURN 1 ELSE IF ( = 0) FINDLAYER.2.MORE2=i_arrow ENDIF IF !(>) FINDLAYER.2.MORE2= ENDIF IF (()&&(i_arrow_fire = .BASEID>)) SYSMESSAGE This target is already on fire. ACTION=-1 RETURN 1 ENDIF CONSUME 1 ENDIF ENDIF ENDIF ENDIF ON=@GetHit IF (( & 0010)||(> = 1)) IF () TAG.EXPLOSIONPOTION=1 IF ( != ) FINDID.i_potion_explosionless.LINK= ENDIF FINDID.i_potion_explosionless.DAMAGE RETURN 0 ENDIF IF () TAG.EXPLOSIONPOTION=1 IF ( != ) FINDID.i_potion_explosion.LINK= ENDIF FINDID.i_potion_explosion.DAMAGE RETURN 0 ENDIF IF () TAG.EXPLOSIONPOTION=1 IF ( != ) FINDID.i_potion_explosiongreat.LINK= ENDIF FINDID.i_potion_explosiongreat.DAMAGE RETURN 0 ENDIF IF () TAG.EXPLOSIONPOTION=1 FINDID.i_potion_lava.TYPE=t_potion FINDID.i_potion_lava.MORE1=s_explosion FINDID.i_potion_lava.MORE2=230.0 IF ( != ) FINDID.i_potion_lava.LINK= ENDIF FINDID.i_potion_lava.DAMAGE ENDIF ENDIF IF () IF ((> = )&&(> != )) IF (RAND(200) < >) DAMAGE + > ENDIF ENDIF ENDIF //IF ((==0)||( > 600)) // //"Boss" music. // MIDILIST midi_Serpents //ENDIF ON=@Login //Equip all players with a memory object if they don't already have one. RESTOREPLAYERMEMORY EVENTS=+e_macrocheck IF ( > 3) SYSMESSAGE You have been jailed due to excessive murder counts. You must wait for them to decay and then page a GM to free you. JAIL ENDIF IF ((> = 0)||(> = 0)||(> = 0)) IF !() SYSMESSAGE Your str, dex, and int caps have not yet been set. The default values of 109/108/108 will be used for them, respectively. Type .stats to set your caps. TAG.STRCAP=109 TAG.DEXCAP=108 TAG.INTCAP=108 ENDIF ELSEIF (++> < 325) IF !() SYSMESSAGE The total stat. cap is 325, but you are only making use of ++> skill points. Type .stats to increase your caps. ENDIF ENDIF IF (> > 0) IF (>.ISITEM>) IF (>.TYPE> = t_ship) GOUID > NUDGEUP 5 ENDIF ENDIF TAG.LOGOFFSHIP= ENDIF IF (( = 0400)&&( = 0)) COLOR=0401 OSKIN=0401 ENDIF HOME=5300,1184 IF (> == 0) TAG.RPRATING=0 ENDIF IF !(STRCMPI(,0.0.0)) SYSMESSAGE Invalid client. Please do not use sphereclient/injection. IF !() NEWITEM i_memory_badclient ACT.TIMER=10 ACT.CONT= SYSMESSAGE Disconnecting you in 10 seconds. ENDIF ENDIF //IF !(STRCMPI(,2.0.3)) //SYSMESSAGE Please use client 2.0.0. Client 2.0.3 can be spoofed with injection/ignition. //IF !() //NEWITEM i_memory_badclient //ACT.TIMERD=1 //ACT.CONT= //SYSMESSAGE Disconnecting you... //ENDIF //ENDIF //IF (> = 0) //IF ( < 90) //STR=+10 //ELSE //STR=100 //ENDIF //IF ( < 90) //INT=+10 //ELSE //INT=100 //ENDIF //IF ( < 90) //DEX=+10 //ELSE //DEX=100 //ENDIF //TAG.GOTSTATBONUS=1 ON=@Logout IF ( & region_flag_ship) //Assume they crashed. TAG.LOGOFFSHIP= ENDIF IF () FINDID.i_rune_polymorph.REMOVE ENDIF ON=@Hit IF () IF () IF !() SYSMESSAGE You cannot damage this from inside a guarded zone if it is not in a guarded zone as well RETURN 1 ENDIF ENDIF ENDIF IF () IF ((> = )&&(> != )) IF ( <= 1) IF (> = 0) TAG.LASTFOUGHTTIMES=1 //Init if empty. ENDIF TAG.LASTFOUGHTTIMES= * 2> ENDIF ELSEIF ((> = )&&(> != )) IF ( <= 1) IF (> = 0) TAG.LASTFOUGHTTIMES=1 //Init if empty. ENDIF TAG.LASTFOUGHTTIMES= * 2> ENDIF ELSEIF ((> != )&&(> != )) IF (> = 0) TAG.LASTFOUGHTSPAWN= ELSEIF (> = 0) TAG.LASTFOUGHTSPAWN2= ELSE TAG.LASTFOUGHTSPAWN= TAG.LASTFOUGHTSPAWN2= TAG.LASTFOUGHTTIMES= ENDIF ENDIF TAG.LASTFOUGHTUID= ELSE TAG.LASTFOUGHTSPAWN= TAG.LASTFOUGHTUID= TAG.LASTFOUGHTTIMES= ENDIF IF (RAND(100) < >) RETURN 1 ENDIF IF () IF ( = i_bow_enchanted) IF (i_arrow_fire = .BASEID>) VAR.OLDACT= NEWITEM i_arroweffect_equip ACT.LINK= ACT.MORE1=i_fx_fireball ACT.MOREP=14,14,1 EQUIP ACT=> VAR.OLDACT= ELSEIF (i_arrow_ice = .BASEID>) VAR.OLDACT= NEWITEM i_arroweffect_equip ACT.LINK= ACT.MORE1=0e5c ACT.MOREP=14,14,0 EQUIP ACT=> VAR.OLDACT= ELSEIF (i_arrow_light = .BASEID>) VAR.OLDACT= NEWITEM i_arroweffect_equip ACT.LINK= ACT.MORE1=01535 ACT.MOREP=14,14,0 EQUIP ACT=> VAR.OLDACT= ENDIF IF (i_arrow = .BASEID>) RETURN 0 ELSEIF (i_arrow_blunt = .BASEID>) VAR.ARROWDAMAGE=/100) + (/200) + (/20)> VAR.ARROWDAMAGE= + RAND(>)> IF (> < 1) VAR.ARROWDAMAGE= * -1> ENDIF IF ( + >> < 1) SRC.STAM=1 ELSE SRC.STAM= + >> ENDIF VAR.ARROWDAMAGE= SRC.DAMAGE 02 SRC.SFX 309 IF ( < 7) STAM=1 ELSE STAM=+(-7)> ENDIF RETURN 1 ELSEIF (i_arrow_poison = .BASEID>) SRC.POISON ELSEIF (i_arrow_silver = .BASEID>) VAR.ARROWDAMAGE=/100) + (/200) + (/20)> VAR.ARROWDAMAGE= + RAND() + RAND(>))> SRC.DAMAGE > 0802 VAR.ARROWDAMAGE= ELSEIF (i_arrow_fire = .BASEID>) VAR.OLDACT= SRC.SYSMESSAGE You were set on fire! SRC.NEWITEM i_fire_memory SRC.ACT.LINK= SRC.ACT.EQUIP SRC.ACT=> VAR.OLDACT= RETURN 0 ELSEIF (i_arrow_ice = .BASEID>) SRC.SFX 254 VAR.ARROWDAMAGE=/100) + (/200) + (/20)> VAR.ARROWDAMAGE= + RAND(>))> SRC.DAMAGE > 0284 VAR.ARROWDAMAGE= VAR.OLDACT= SRC.FLAGS=|statf_freeze SRC.NEWITEM i_rune_paralyze SRC.ACT.MOREX=s_paralyze SRC.ACT.MOREY=100.0 SRC.ACT.LINK= SRC.ACT.MORE2=1 SRC.ACT.TIMER={2 5} SRC.ACT.TYPE=t_spell SRC.ACT.LAYER=38 SRC.ACT.CONT= SRC.ACT=> VAR.OLDACT= SRC.EFFECT 3, 03779, 100, 100 RETURN 1 ELSEIF (i_arrow_light = .BASEID>) SRC.SFX 489 VAR.OLDACT= SRC.NEWITEM i_arrow_light_effect SRC.ACT.LINK= SRC.ACT.P= SRC.ACT=> VAR.OLDACT= RETURN 0 ELSEIF (i_arrow_darkness = .BASEID>) VAR.OLDACT= SRC.NEWITEM i_arrow_darkness_effect SRC.ACT.LINK= SRC.ACT.MORE1=1 SRC.ACT.MORE2=200 SRC.ACT.P= SRC.ACT.TIMER=1 SRC.NEWITEM i_arrow_darkness_effect SRC.ACT.LINK= SRC.ACT.MORE1=1 SRC.ACT.MORE2=200 SRC.ACT.P= SRC.ACT.TIMER=1 SRC.NEWITEM i_arrow_darkness_effect SRC.ACT.LINK= SRC.ACT.MORE1=1 SRC.ACT.MORE2=200 SRC.ACT.P= SRC.ACT.TIMER=1 SRC.NEWITEM i_arrow_darkness_effect SRC.ACT.LINK= SRC.ACT.MORE1=1 SRC.ACT.MORE2=200 SRC.ACT.P= SRC.ACT.TIMER=1 SRC.ACT=> VAR.OLDACT= RETURN 0 ELSE RETURN 0 ENDIF ENDIF ENDIF IF ((> >= 40)&&(> <= 43)) //No archery criticals, no magery criticals //From ithycaworld.com var.skill_req = 500.0 var.skill_curr = ++>>>> var.skill_diff + -> // Notice the +- to deal with issues var.skill_bell , 50.0 )> var.skill_curr= var.skill_req= if ( < 0 ) var.skill_bell > endif IF (RAND(1000) <= >) EMOTE score a critical hit on ! SRC.BARK 4 VAR.OLDACT= SRC.NEWITEM i_scroll_haste SRC.ACT.ATTR=attr_invis|attr_magic|attr_move_never SRC.ACT.P=

SRC.ACT.MORE1=4 SRC.ACT.LINK= SRC.ACT.TIMERd=1 SRC.ACT=> VAR.OLDACT= ENDIF var.skill_bell= var.skill_diff= ENDIF ON=@HitMiss IF () IF ( = i_bow_enchanted) IF (i_arrow_fire = .BASEID>) VAR.OLDACT= NEWITEM i_arroweffect_equip ACT.LINK= ACT.MORE1=i_fx_fireball ACT.MOREP=14,14,1 EQUIP ACT=> VAR.OLDACT= ELSEIF (i_arrow_ice = .BASEID>) VAR.OLDACT= NEWITEM i_arroweffect_equip ACT.LINK= ACT.MORE1=0e5c ACT.MOREP=14,14,0 EQUIP ACT=> VAR.OLDACT= ENDIF ENDIF ENDIF ON=@SpellCast IF ( == 0) IF () IF ( != t_weapon_mace_staff) IF ( != t_spellbook) IF ( != t_wand) FINDLAYER(1).BOUNCE ENDIF ENDIF ENDIF ENDIF IF () IF ( != t_weapon_mace_staff) IF ( != t_spellbook) IF ( != t_wand) FINDLAYER(2).BOUNCE ENDIF ENDIF ENDIF ENDIF IF ( == i_platemail_helm)||( == i_platemail_gorget)||( == i_platemail_arms)||( == i_platemail_chest)||( == i_platemail_gloves)||( == i_platemail_leggings) IF ( == 0) IF (rand(2) == 0) ACTION=-1 ENDIF ENDIF ENDIF ENDIF //IF ( + .4> < ) //TAG.RESISTMAGERY= //IF ( < 100.0) //MAGICRESISTANCE= + .1 //ENDIF //ENDIF IF ( = 13) IF (( != t_container)&&( != t_container_locked)) SRC.SYSMESSAGE You may only magic trap containers. ELSE ACT.MOREZ={1 5} ACT.MOREM=+) / 50> ACT.SFX 495 ENDIF RETURN 1 ENDIF IF ( = 14) IF (( != t_container)&&( != t_container_locked)) IF (( = t_trap_active)||( = t_trap)) ACT.TYPE=t_trap_inactive ACT.EMOTE is untrapped ELSE SRC.SYSMESSAGE You can only untrap containers or traps. ENDIF ELSE IF (( / 10> < )&&( / 10> < )) SRC.SYSMESSAGE Either your magery or your remove trap needs to be or higher to attempt this. RETURN 1 ENDIF IF ((RAND( / 10>) > RAND())&&(RAND( / 10>) > RAND())) ACT.MOREZ=0 ACT.MOREM=0 ACT.SFX 496 ACT.EMOTE is untrapped ELSE ACT.EMOTE remains trapped ENDIF RETURN 1 ENDIF ENDIF IF ( = 19) IF ( != 0) SRC.SYSMESSAGE This door already has a key-lock on it. RETURN 1 ENDIF IF ( = t_door_locked) SRC.SYSMESSAGE This door is already locked. ELSEIF ( = t_door) ACT.TYPE=t_door_locked ACT.MOREX= ACT.MOREY= ACT.EMOTE is magically sealed shut ACT.SFX 500 ELSEIF ( = t_container_locked) SRC.SYSMESSAGE This container is already locked. ELSEIF ( = t_container) ACT.TYPE=t_container_locked ACT.MOREX= ACT.MOREY= ACT.SFX 500 ACT.EMOTE is magically sealed shut ELSE SRC.SYSMESSAGE You cannot lock this. ENDIF RETURN 1 ENDIF IF ( = 23) IF ( != 0) SRC.SYSMESSAGE This door already has a key-lock on it. RETURN 1 ENDIF IF ( = t_door_locked) IF ( = 19) IF ( < + (-20.0)>) SRC.SYSMESSAGE This door is sealed too powerfully for you to open. RETURN 1 ENDIF IF (RAND() < RAND(+20.0>)) ACT.EMOTE budges slightly... but does not unlock. RETURN 1 ENDIF ACT.MOREX=0 ACT.MOREY=0 ACT.TYPE=t_door ACT.SFX 511 ACT.EMOTE is unsealed ELSE SRC.SYSMESSAGE You may only unlock doors locked with magic lock. ENDIF ELSEIF ( = t_container_locked) IF ( = 19) IF ( < + (-20.0)>) SRC.SYSMESSAGE This door is sealed too powerfully for you to open. RETURN 1 ENDIF IF (RAND() < RAND(+20.0>)) ACT.EMOTE budges slightly... but does not unlock. RETURN 1 ENDIF ACT.MOREX=0 ACT.MOREY=0 ACT.TYPE=t_container ACT.SFX 511 ACT.EMOTE is unsealed ELSE SRC.SYSMESSAGE You may only unlock containers locked with magic lock. ENDIF ELSE SRC.SYSMESSAGE You cannot unlock this. ENDIF RETURN 1 ENDIF IF =27 IF () IF (=t_clothing) //ACT.DAMAGE {40 100} DAMAGE {10 20} CONSUME 1 i_reag_garlic CONSUME 1 i_reag_nightshade CONSUME 1 i_reag_sulfur_ash MANA=+(-11) RETURN 1 ENDIF ENDIF ENDIF IF (=21) //Telekinesis IF !() RETURN 0 ENDIF IF (( & 010)||( & 08000)||(=t_door)||(=t_door_locked)) SYSMESSAGE This item is locked down and cannot be moved. RETURN 0 ENDIF IF () IF ((=t_multi)||(=t_ship)) SYSMESSAGE You cannot move items inside of a house or ship. RETURN 0 ENDIF ENDIF ACT.P= ACT.UPDATE ACT.EMOTE floats over to ACT.SFX 501 RETURN 1 ENDIF IF (=20) IF () VAR.POISONREQMANA= ACT.DAMAGE {10 20} ELSEIF () VAR.POISONREQMANA = * 10> / 125> VAR.POISONREQSKILL = ELSE VAR.POISONREQMANA = * 10> / 25> VAR.POISONREQSKILL = * 10> ENDIF IF (> < 15) VAR.POISONREQMANA = 15 ENDIF IF (> < 20.0) VAR.POISONREQSKILL = 20.0 ENDIF IF ( < >) SRC.SYSMESSAGE You require > to sustain poison on RETURN 1 ENDIF IF ( < >) SRC.SYSMESSAGE You are too unskilled to poison . You need > / 10> Magery to poison this. RETURN 1 ENDIF SRC.MANA = + ( * -1>) VAR.POISONREQMANA= VAR.POISONREQSKILL= IF ( == ) SRC.POISON + > ENDIF ENDIF ON=@SpellEffect IF ((==1)||(==3)||(==8)||(==27)||(==46)) IF () SYSMESSAGE You are immune to curses. RETURN 1 ENDIF ENDIF IF (==57) IF () FINDID.i_stone_castambre.EMOTE absorbs the energy of the earthquake FINDID.i_stone_castambre.MORE2=+1> RETURN 1 ENDIF IF () RETURN 1 ENDIF ELSEIF (==51) IF () FINDID.i_brazier_keefe.EMOTE absorbs the energy of the flamestrike spell FINDID.i_brazier_keefe.MORE2=+1> RETURN 1 ENDIF IF () RETURN 1 ENDIF ELSEIF (==30) IF () FINDID.i_crystal_zephyr.EMOTE absorbs the energy of the lightning FINDID.i_crystal_zephyr.MORE2=+1> ENDIF IF () RETURN 1 ENDIF ELSEIF (==38) IF () FINDID.i_vase_undine.EMOTE absorbs the energy of the paralyze spell FINDID.i_vase_undine.MORE2=+1> ENDIF IF () RETURN 1 ENDIF ENDIF IF ((=41)||(=54)) IF () FINDID.i_newpoly.TIMERd=1 ENDIF IF () FINDID.i_newincog.TIMERd=1 ENDIF ENDIF IF (=35) IF () SAYUA 021,0,0,eng,*The polymorph interferes with the incognito!* RETURN 1 ENDIF IF () SYSMESSAGE You may not be affected by this spell again until it has worn off. RETURN 1 ENDIF NEWITEM i_newincog_equip ACT.LINK= EQUIP RETURN 1 ENDIF IF (=56) IF () SAYUA 021,0,0,eng,*The incognito interferes with the polymorph!* RETURN 1 ENDIF IF () FINDID.i_newpoly.TIMER={120 300} ELSE NEWITEM i_newpoly ACT.CONT= ACT.TAG.OLDNAME= ACT.TAG.OLDOBODY= ACT.TAG.OLDBODY= ACT.TAG.OLDFAME= ACT.TAG.OLDKARMA= ACT.TAG.OLDSTR= ACT.TAG.OLDDEX= ACT.TAG.OLDINT= ACT.TAG.OLDCOLOR= ACT.TIMER={120 300} ENDIF BODY= IF (=0190) //Man NAME=#NAMES_HUMANMALE COLOR=colors_skin IF ( > 100) STR=100 ENDIF IF ( > 100) INT=100 ENDIF IF ( > 100) DEX=100 ENDIF ELSEIF (=0191) //Woman NAME=#NAMES_HUMANFEMALE COLOR=colors_skin IF ( > 100) STR=100 ENDIF IF ( > 100) INT=100 ENDIF IF ( > 100) DEX=100 ENDIF ELSEIF (=0D0) //Chicken NAME=Chicken KARMA={-1 -99} FAME=0 COLOR=0 STR=5 DEX=15 INT=5 ELSEIF (=0D9) //Dog NAME=Dog KARMA={-1 -99} FAME=0 COLOR={0 1 colors_animal 1} STR={25 37} DEX={33 43} INT={25 37} ELSEIF (=015) //Giant Serpent NAME=Giant Serpent FAME={600 2000} KARMA={-3000 -3999} COLOR=colors_snake STR={85 115} DEX={40 60} INT={10 30} ELSEIF (=0d2) //Oclock NAME=Oclock COLOR=0 FAME=0 KARMA=-9000 STR={70 110} DEX={100 250} INT={5 15} ELSEIF (=0db) //Orn NAME=Orn COLOR=0 FAME=0 KARMA=-9000 STR={70 110} DEX={100 250} INT={5 15} ELSEIF (=0da) //Zostrich NAME=Zostrich COLOR=0 FAME=0 KARMA=-9000 STR={70 130} DEX={250 350} INT={5 15} ELSEIF (=09) //Daemon NAME=#NAMES_DAEMON COLOR=colors_daemon FAME={4000 8000} KARMA={-5000 -5999} STR={145 185} DEX={36 75} INT={160 300} ELSE //Dragon NAME=#NAMES_DRAGON FAME={3000 9000} KARMA={-5000 -5999} STR={175 305} DEX={85 145} INT={10 20} ENDIF FLAGS=|statf_polymorph UPDATE SFX 527 BARK 3 RETURN 1 ENDIF IF (=46)||(=27)||(=17)||(=1)||(=3)||(=8)||(=9)||(=10)||(=16) IF !() SRC.NEWITEM i_statreset SRC.ACT.TAG.CHARSTR= SRC.ACT.TAG.CHARDEX= SRC.ACT.TAG.CHARINT= SRC.ACT.TIMER=60 SRC.ACT.CONT= ENDIF ENDIF IF ((==11)||(==25)) IF (> != 1) IF (rand() < rand( * 2>)) SYSMESSAGE has failed to cure you. SRC.SYSMESSAGE You have failed to cure . EFFECT 3, i_fx_sparkle_2, 20, 16 SFX 480 SFX 470 RETURN 1 ENDIF SYSMESSAGE has cured you. SRC.SYSMESSAGE You have cured . ELSE SRC.SYSMESSAGE has cured you. ENDIF ENDIF ON=@SkillStart IF !() IF (!() && !() && !() && !() && !()) IF ( > >) STR= +(-1)> SYSMESSAGE Your STR cap is currently at >. Type .stats to change it. ENDIF IF ( > >) DEX= +(-1)> SYSMESSAGE Your DEX cap is currently at >. Type .stats to change it. ENDIF IF ( > >) INT= +(-1)> SYSMESSAGE Your INT cap is currently at >. Type .stats to change it. ENDIF ENDIF ENDIF IF ((==35)||(==skill_taming)) IF ( < 864000) IF !(STRCMPI(,Mustang)) SYSMESSAGE You are too new to Britannia to know the ways of these creatures... perhaps in a few days. ACTION=-1 RETURN 1 ENDIF ENDIF ENDIF IF ((==48)||(==skill_remove_trap)) IF () FINDID.i_memory_remove_trap.REMOVE ENDIF IF (( = t_container)||( = t_container_locked)) IF (( > 0)&&( > 0)) IF ( / 10> < +(-20)>) SYSMESSAGE Your remove trap needs to be +(-20)> or higher to attempt this. ELSE VAR.OLDACT= NEWITEM i_memory_remove_trap ACT.LINK=> ACT.TIMER={1 3} ACT.EQUIP ACT=> VAR.OLDACT= RETURN 1 ENDIF ENDIF ENDIF ENDIF IF ((==019)||(==skill_magery)) IF (( == 0)&&(&statf_polymorph)&&(STRMATCH(*dragon*,))) ACTARG1=43 ENDIF ENDIF TAG.EXPLOSIONPOTION= IF ((==skill_appraise)||(==03)) IF !(STRCMPI(,sword mold)) IF (> == 0) ACT.TAG.IDED=1 DORAND 21 ACT.TAG.MOLDTYPE=Bandit ACT.TAG.MOLDTYPE=Orc ACT.TAG.MOLDTYPE=Troll ACT.TAG.MOLDTYPE=Ettin ACT.TAG.MOLDTYPE=Ogre ACT.TAG.MOLDTYPE=Cyclops and Titan ACT.TAG.MOLDTYPE=Undead ACT.TAG.MOLDTYPE=Dragon ACT.TAG.MOLDTYPE=Horse ACT.TAG.MOLDTYPE=Llama ACT.TAG.MOLDTYPE=Elemental ACT.TAG.MOLDTYPE=Ophidian ACT.TAG.MOLDTYPE=Terathan ACT.TAG.MOLDTYPE=Lizard ACT.TAG.MOLDTYPE=Rat ACT.TAG.MOLDTYPE=Wisp ACT.TAG.MOLDTYPE=Daemon ACT.TAG.MOLDTYPE=Serpent ACT.TAG.MOLDTYPE=Bird ACT.TAG.MOLDTYPE=Insect ACT.TAG.MOLDTYPE=Mimic ENDDO ACT.TAG.INGREDIENT1AMOUNT= ACT.TAG.INGREDIENT2AMOUNT= ACT.TAG.INGREDIENT3AMOUNT= ACT.TAG.INGREDIENT4AMOUNT= DORAND 7 BEGIN ACT.TAG.INGREDIENT1ID=i_potion_lava ACT.TAG.INGREDIENT1=Lava Bomb END BEGIN ACT.TAG.INGREDIENT1ID=i_potion_life ACT.TAG.INGREDIENT1=Elixir of Life END BEGIN ACT.TAG.INGREDIENT1ID=i_potion_manatotal ACT.TAG.INGREDIENT1=Total Mana Refresh END BEGIN ACT.TAG.INGREDIENT1ID=i_potion_mana ACT.TAG.INGREDIENT1=Mana Refresh END BEGIN ACT.TAG.INGREDIENT1ID=i_potion_nullify ACT.TAG.INGREDIENT1=Nullification END BEGIN ACT.TAG.INGREDIENT1ID=i_potion_shrink ACT.TAG.INGREDIENT1=Shrink END BEGIN ACT.TAG.INGREDIENT1ID=i_potion_invisibility ACT.TAG.INGREDIENT1=Invisibility Potion END ENDDO DORAND 7 BEGIN ACT.TAG.INGREDIENT2ID=i_ingot_valorite ACT.TAG.INGREDIENT2=Valorite Ingot END BEGIN ACT.TAG.INGREDIENT2ID=i_ingot_bloodrock ACT.TAG.INGREDIENT2=Bloodrock Ingot END BEGIN ACT.TAG.INGREDIENT2ID=i_ingot_verite ACT.TAG.INGREDIENT2=Verite Ingot END BEGIN ACT.TAG.INGREDIENT2ID=i_ingot_agapite ACT.TAG.INGREDIENT2=Agapite Ingot END BEGIN ACT.TAG.INGREDIENT2ID=i_ingot_rose ACT.TAG.INGREDIENT2=Rose Ingot END BEGIN ACT.TAG.INGREDIENT2ID=i_ingot_silver ACT.TAG.INGREDIENT2=Silver Ingot END BEGIN ACT.TAG.INGREDIENT2ID=i_ingot_shadow ACT.TAG.INGREDIENT2=Shadow Ingot END ENDDO DORAND 2 BEGIN ACT.TAG.INGREDIENT3ID=i_wand_1 ACT.TAG.INGREDIENT3=Empty Wand (Type 1) END BEGIN ACT.TAG.INGREDIENT3ID=i_wand_2 ACT.TAG.INGREDIENT3=Empty Wand (Type 2) END ENDDO DORAND 7 BEGIN ACT.TAG.INGREDIENT4ID=i_scroll_recall ACT.TAG.INGREDIENT4=Recall Scroll END BEGIN ACT.TAG.INGREDIENT4ID=i_scroll_teleport ACT.TAG.INGREDIENT4=Teleport Scroll END BEGIN ACT.TAG.INGREDIENT4ID=i_scroll_summon_creature ACT.TAG.INGREDIENT4=Summon Creature Scroll END BEGIN ACT.TAG.INGREDIENT4ID=i_scroll_gate_travel ACT.TAG.INGREDIENT4=Gate Travel Scroll END BEGIN ACT.TAG.INGREDIENT4ID=i_scroll_telekinesis ACT.TAG.INGREDIENT4=Telekinesis Scroll END BEGIN ACT.TAG.INGREDIENT4ID=i_scroll_mark ACT.TAG.INGREDIENT4=Mark Scroll END BEGIN ACT.TAG.INGREDIENT4ID=i_scroll_resurrection ACT.TAG.INGREDIENT4=Resurrection Scroll END ENDDO VAR.OLDACT=> DORAND 3 NEWITEM random_swordtype_ruin NEWITEM random_axetype_ruin NEWITEM random_fencingtype_ruin ENDDO VAR.SWORDTYPE= ACT.FINDCONT.0.REMOVE ACT.REMOVE NEWITEM > VAR.SWORDNAME= ACT.REMOVE ACT=> ACT.TAG.SWORDTYPE= ACT.TAG.SWORDNAME= VAR.SWORDTYPE= VAR.SWORDNAME= VAR.OLDACT= ENDIF SYSMESSAGE This mold seems to be shaped like a ... IF ( < 20.0) SYSMESSAGE You cannot tell anything more about the mold... RETURN 0 ELSEIF ( < 40.0) SYSMESSAGE You seem to need , ingots of some kind, empty wands of one type or another, and of some kind of scroll to make something of this... SYSMESSAGE You can't quite figure out the ingredients needed for this item. RETURN 0 ELSEIF ( < 60.0) SYSMESSAGE You seem to need , , empty wands of one type or another, and of some kind of scroll to make something of this... SYSMESSAGE You can't quite figure out all of the ingredients needed for this item. RETURN 0 ELSEIF ( < 80.0) SYSMESSAGE You seem to need , , , and of some kind of scroll to make something of this... SYSMESSAGE There's one more thing you need to make this, but you can't figure it out... RETURN 0 ELSE SYSMESSAGE The mold seems to be reactive to s SYSMESSAGE You seem to need , , , and to make something of this. RETURN 0 ENDIF ENDIF ENDIF IF ((==04)||(=skill_armslore)) IF ( == 0) RETURN 0 ENDIF IF ( > * 10>) IF ( == 0) SYSMESSAGE This blade is a(n) . It has a blue glow. It will respond from tiles away. ELSEIF ( == 1) SYSMESSAGE This blade is a(n) . It has a red glow. It will respond from tiles away. ELSEIF ( == 2) SYSMESSAGE This blade is a(n) . It has a yellow glow. It will respond from tiles away. ELSEIF ( == 3) SYSMESSAGE This blade is a(n) . It has a green glow. It will respond from tiles away. ELSEIF ( == 4) SYSMESSAGE This blade is a(n) . It has a white glow (OOC: The hues are required to see all shades that this blade displays). It will respond from tiles away. ENDIF ELSE IF ( < 30) SYSMESSAGE You cannot tell the exact details of this blade, but then again, you are not well versed in arms lore. It doesn't seem very sensitive at all. ELSEIF ( < 40) SYSMESSAGE You cannot tell the exact details of this blade, but then again, you are not very well versed in arms lore. It doesn't seem too sensitive. ELSEIF ( < 50) SYSMESSAGE You cannot tell the exact details of this blade, but then again, you are not an expert when it comes to arms lore. It seems somewhat sensitive. ELSEIF ( < 60) SYSMESSAGE You cannot tell the exact details of this blade, but then again, you are not an expert when it comes to arms lore. It seems rather sensitive. ELSEIF ( < 70) SYSMESSAGE You cannot tell the exact details of this blade, but then again, you are not an expert when it comes to arms lore. It seems very sensitive. ELSE SYSMESSAGE You cannot tell the exact details of this blade, but then again, it is difficult to tell, and you are not a reknowned source in arms lore. It seems extremely sensitive. ENDIF ENDIF ENDIF //IF (==21) //IF () //IF ( < 20) //SRC.SYSMESSAGE You cannot hide so near . //ACTION=-1 //RETURN 1 //ENDIF //ENDIF //IF () //IF ( < 20) //SRC.SYSMESSAGE You cannot hide so near . //ACTION=-1 //RETURN 1 //ENDIF //ENDIF //ENDIF IF ((==016)||(==skill_provocation)) IF !() //IF ( > -1000) SRC.SYSMESSAGE Provocation has been disabled. ACTION=-1 RETURN 1 //ENDIF ENDIF ENDIF IF (( == 9)||(=skill_peacemaking)) IF () IF (rand() < rand( * 10>)) MEMORYFINDTYPE.memory_war_targ.LINK.FLAGS= &~ statf_war SRC.SYSMESSAGE The calms down a bit. RETURN 0 ELSE SRC.SYSMESSAGE The looks more enraged than ever. MEMORYFINDTYPE.memory_war_targ.LINK.ATTACK RETURN 1 ENDIF ELSEIF () IF (rand() < rand( * 10>)) MEMORYFINDTYPE.memory_fight.LINK.FLAGS= &~ statf_war SRC.SYSMESSAGE The calms down a bit. RETURN 0 ELSE SRC.SYSMESSAGE The looks more enraged than ever. MEMORYFINDTYPE.memory_fight.LINK.ATTACK RETURN 1 ENDIF ENDIF ENDIF IF (( == 15)||(=skill_enticement)) IF (&statf_war) SRC.SYSMESSAGE You cannot entice something that is bent on attacking you. RETURN 1 ENDIF IF ( == 0) SRC.SYSMESSAGE You cannot entice players. ELSEIF ( == 3) SRC.SYSMESSAGE You cannot entice this. RETURN 1 ELSEIF ( == 8) SRC.SYSMESSAGE You cannot entice this. RETURN 1 ENDIF IF (rand() < rand( * 10>)) SRC.SYSMESSAGE You fail to entice the creature. IF (rand() < rand( * 5>)) ACT.ATTACK ENDIF RETURN 1 ENDIF ACT.TAG.OLDACTION= ACT.TAG.ENTICEDSKILL= ACT.TAG.ENTICER= ACT.ACTION=064 ACT.EVENTS=+e_enticed RETURN 1 ENDIF IF (( == 01c)||(==skill_snooping)) IF !() IF ( == 3) ACT.CONT.SAY Por Ort Grav ACT.CONT.ANIM 17 ACTION=-1 KILL RETURN 1 ELSEIF ( == 8) ACT.CONT.SAY Por Ort Grav ACT.CONT.ANIM 17 ACTION=-1 KILL RETURN 1 ENDIF ENDIF ENDIF IF ((==021)||(==skill_stealing)) IF ( > -1000) CRIMINAL 1 KARMA= + {-300 -100} IF ( < -10000) KARMA=-10000 ENDIF ELSEIF ( > -1000) CRIMINAL 1 KARMA= + {-300 -100} IF ( < -10000) KARMA=-10000 ENDIF ENDIF IF !() IF ( == 3) ACT.CONT.SAY Por Ort Grav ACT.CONT.ANIM 17 ACTION=-1 KILL RETURN 1 ELSEIF ( == 8) ACT.CONT.SAY Por Ort Grav ACT.CONT.ANIM 17 ACTION=-1 KILL RETURN 1 ENDIF ENDIF ENDIF [FUNCTION RESTOREPLAYERMEMORY] //This could be put on an NPC as well, though why you'd do that is questionable. IF !() RETURN 1 ENDIF IF (!()&&!()) VAR.OLDACT= NEWITEM i_player_memory EQUIP ACT=> VAR.OLDACT= ENDIF [ITEMDEF i_player_memory] ID=i_memory TYPE=t_eq_script NAME=Player memory WEIGHT=0 ON=@Create ATTR=attr_invis|attr_newbie|attr_move_never //ON=@Equip //TIMERd={20 70} //At the moment, this does nothing but mark the character's presence to the server when logged off. //It could also serve as a normal memory item, making the character do things on a timer, listening to speech, etc. //ON=@Timer //VAR.MIMICPLAYER= //TIMERd={20 70} //RETURN 1 //This is how we "randomly" select a player - by constantly iterating deterministically on a timer. [CHARDEF c_select_logged_off_player] //ID=c_man_invisible ID=01a8 NAME=" " CAN=0 ON=@Create FLAGS=statf_invul|statf_hidden|statf_insubstantial ON=@NPCRestock ITEMNEWBIE=i_memory_nextplayer ON=@EnvironChange IF ( < 0) //Restart the timer if it was stopped due to sector sleep or something. FINDID.i_memory_nextplayer.TIMERd={5 10} ENDIF [ITEMDEF i_memory_nextplayer] ID=i_memory TYPE=t_eq_script NAME=Go to next logged off player ON=@Create ATTR=attr_newbie|attr_invis|attr_move_never TIMERd={5 10} ON=@Timer CONT.BODY=c_select_logged_off_player CONT.FLAGS=|statf_invul|statf_hidden|statf_insubstantial CONT.NAME=" " CONT.P=50,50 CONT.GOITEMID i_player_memory CONT.P=50,50 VAR.MIMICPLAYER= TIMERd={5 10} RETURN 1 [EOF]