WORLD NAME Underworld2 CLUSTER Underworld VERSION 9.7.7 ' See underworld.dxw for details 'AUTHOR Cris, Lorenzo Ficarra ' English revision by JoKen Jash SITE http://www.underworld-game.net/ IMAGESFOLDER_LOCAL /dimx/uwpics/ ' The following for network (light) mode IMAGESFOLDER_PUBLIC http://www.dimensionex.net/underworld/uwpics/ 'alternates 'IMAGESFOLDER_PUBLIC http://www.underworld-game.net/uwpics/ 'IMAGESFOLDER_PUBLIC http://digilander.libero.it/dimensionexy/uwpics/ HELP http://www.underworld-game.net/?page_id=12 SAVEGAME_PERSISTENCE 2 INTERPHONE 1 ' The following only for network (light) mode COUNTERHTML


















MUTING 1 GUI SCENE SIZE 400x230 SCREEN SIZE 800x600 LOGOSRC uw2/logoarea2.jpg MSGLISTSIZE 4 COMPASS true SKINS bloody.txt 'PAGE flash flash.htm MAP map_uw2.gif HOOKS findobj=doFindObj,viewitem=doViewItem,expertswitch=doExpertSwitch Include "uwpanels.dxl" PANEL pronald BUTTON dothis, "Do this: ", "Command", doCommand DROPDOWN ronaldops, "getChoices(ronald)", 0 PANEL prookie BUTTON dothis, "Do this: ", "Command", doCommand DROPDOWN rookieops, "getChoices(rookie)", 0 END_GUI ROOMS ROOM entrance DEFAULT NAME Start DESCRIPTION I am entering the Reign of Graiel.

The forward arrow in the grey box will let me get closer to the Castle.

(Direct access to this area is not allowed, you will be now brought to the main entrance). IMAGE uw2/clouds.jpg PANEL initial ROOM outside NAME Outside ROOM start NAME the mountain side DESCRIPTION There's an ancient pathway carved in the rocky side, probably it was meant to be an escape way from the castle. IMAGE S SHOWAREA 90,-1,-1 uw2/mroad.png IMAGE N SHOWAREA 70,300,-1 uw2/canyon1.png ATTRLIST mapx=82,mapy=188 ROOM rockpath NAME the path DESCRIPTION The castle lays south-west, un pathway leads far away... IMAGE S uw2/rockpath.png IMAGE E uw2/castleside.png ATTRLIST mapx=82,mapy=140 ROOM castlebridge NAME the bridge DESCRIPTION I am on the bridge leading to the castle. Up there I see a closed gate. IMAGE N SHOWAREA 80,255,-1 uw2/castlebridge.png IMAGE E uw2/bridge.png ATTRLIST mapx=33,mapy=122 PANEL pgather ROOM path2 NAME a grass field IMAGE W uw2/grassfield.png ATTRLIST mapx=100,mapy=95 ROOM grassf NAME a grass field 2 IMAGE W uw2/mplaints.png ATTRLIST mapx=135,mapy=95 ROOM grassfm NAME a grass field 3 IMAGE N uw2/grass2.png ATTRLIST mapx=139,mapy=127 ROOM bof3 NAME river woods IMAGE N uw2/bof3.jpg ATTRLIST mapx=140,mapy=147 ROOM bof2 NAME beginning of forest IMAGE S uw2/bof2.jpg ATTRLIST mapx=102,mapy=75 ROOM forest1 NAME ghost forest IMAGE S uw2/ghostforest.jpg ATTRLIST mapx=102,mapy=60 ROOM lunarc NAME ghost forest 2 IMAGE S uw2/lunarc.jpg ATTRLIST mapx=118,mapy=59 ROOM lunarb NAME ghost forest 3 IMAGE S uw2/lunarb.jpg ATTRLIST mapx=135,mapy=55 ROOM hellfire NAME the pit PANEL initial ROOM foggyp NAME foggy plains DESCRIPTION In the distance I see the river that flows to the Castle. IMAGE W uw2/foggyplains.png ATTRLIST mapx=162,mapy=95 ROOM canyonplains NAME canyon plains IMAGE S uw2/canyon_plains.png ATTRLIST mapx=157,mapy=50 ROOM lunar4 NAME trees near the rocks IMAGE E uw2/lunar4.jpg ATTRLIST mapx=139,mapy=40 ROOM riverplains NAME river plains IMAGE N uw2/plains.png ATTRLIST mapx=161,mapy=127 ROOM rockborder NAME the rocks' border IMAGE S uw2/rockborder.jpg ATTRLIST mapx=149,mapy=18 ROOM lunarg NAME devil's valley DESCRIPTION @panelhtml("pbuyshop")+"
At Kovalsky's I can buy with confidence." IMAGE S uw2/lunarg.png ATTRLIST mapx=135,mapy=13,shop=1,shopkeeper=kovalsky PANEL pshop ROOM forestborder NAME forest border IMAGE S uw2/forestborder.jpg ATTRLIST mapx=132,mapy=73 ROOM bof4 NAME dry zone IMAGE S SHOWAREA 60,-1,-1 uw2/bof4.jpg ATTRLIST mapx=115,mapy=7 END_ROOMS LINKS LINK toA1 entrance-outside N LINK w1 start-rockpath S LINK w2 rockpath-path2 S LINK w2a rockpath-castlebridge D LINK w3 path2-grassf W LINK w4 path2-bof2 S LINK w5 bof2-forest1 S LINK w6 grassf-foggyp W LINK w6a grassf-grassfm N LINK w7 foggyp-canyonplains S LINK w8 foggyp-riverplains N LINK w9 grassfm-bof3 N LINK w10 canyonplains-lunar4 E LINK w11 grassfm-riverplains W LINK w12 canyonplains-rockborder S LINK w13 bof2-forestborder W MLINK w14 forestborder-canyonplains W LINK w16 grassf-forestborder S LINK w17 rockborder-lunarg E LINK w18 lunarg-bof4 E LINK w19 forest1-lunarc W LINK w20 lunarc-lunarb W LINK w21 lunarb-forestborder N LINK w22 lunarb-lunar4 S END_LINKS CHARACTERS ATTRLIST Health=10,Strength=1,Experience=0,type=0,Level=1,gender=M ' Types from 10 to up are monsters ' from 1 to 9 are humans ' 0 means unattackable character CHARACTER rookie NAME Rookie DESCRIPTION Rookie is a busy guy POSITION grassf IMAGE 37x95 uw2/rookie.gif ATTRLIST type=0 'ACCEPTS money SHOW ONSCREEN CHARACTER ronald NAME Ronald the druid DESCRIPTION He's a wiseman POSITION bof2 IMAGE 62x95 uw2/anziano.gif ATTRLIST type=0 ACCEPTS money SHOW ONSCREEN CHARACTER kovalsky NAME Kovalsky DESCRIPTION He's a travelling merchant POSITION lunarg IMAGE 37x97 uw2/kovalsky.gif ATTRLIST type=0 ACCEPTS money SHOW ONSCREEN END_CHARACTERS ITEMS ITEM lionsword NAME lions sword POSITION start DESCRIPTION An ancient sword with magical powers ATTRLIST type=weapon.swordlion,pickable,Power=4,Value=40,sound=swordlong.wav,Level=4 ICON uw2/lionswordico.gif IMAGE 32x54 uw2/lionswordsmall.gif SHOW ONSCREEN ITEM bluepill NAME blue pill POSITION lunarg DESCRIPTION Blue pill gives you 5 minutes of invulnerability ATTRLIST type=pill.blue,pickable,Value=20,seller=kovalsky ICON magicpill.gif IMAGE 50x52 magicpill.gif SHOW ICON ITEM garlic NAME garlic TYPE garlic POSITION lunarg DESCRIPTION a piece of garlic. It stinks a little bit. ATTRLIST type=garlic,pickable,Value=20,seller=kovalsky ICON garlic.gif IMAGE 70x70 garlic.gif SHOW ICON ITEM eyespell NAME Eye Spell POSITION lunarg DESCRIPTION Psychic attack producing a distorted view in the victim ATTRLIST type=spell.eye,pickable,Value=30,seller=kovalsky ICON spelleye.gif IMAGE 48x48 spelleye.gif SHOW ICON END_ITEMS SETS SET setAll start,rockpath,path2,grassf,bof2,bof3,forest1,foggyp,canyonplains,riverplains,lunar4,rockborder,forestborder,lunarg,bof4,lunarb,lunarc 'covered places - needed for stepAway procedure (vampires movement) SET setCovered forest1,lunarc,lunarb END_SETS SCRIPTS Include "commons.dxl" EVENT onStart Call common_onStart() Call config() rookie.todo = NewSet() rookie.requests = NewSet() rookie.choices = NewSet("s1=Build a HUT,s2=Build a HOUSE,s3=Build a FORT,x_1rep=Repair HQ of your guild") rookie.costs = NewSet("s1=500,s2=1000,s3=2000,x_1rep=100") rookie.houseimages = NewSet("s1=uw2/hut.gif|246|160,s2=uw2/house.gif|189|170,s3=uw2/fort.gif|237|170") rookie.house_places = NewSet("path2,grassf,grassfm,bof3,bof2,forest1,foggyp,canyonplains,lunar4,riverplains,rockborder,forestborder,bof4,lunarc") ronald.todo = NewSet() ronald.choices = NewSet("s1=heal from infection,s2=change your look,s3=restore your personal weapon,s4=write a message") ronald.costs = NewSet("s1=200,s2=500,s3=10,s4=10") arrShopkeepers = NewArray("kovalsky") Call LoadContext() ' Reads game saved status from disk If debugtype Or mode=2 passg = NewItem(start,"a passage","An exit to outside",NewImage("uw2/crack2.gif",46,64),"type=passg,pickable=0,showmode=1,showx=0,showy=150,hideable,showFor=uw2/mroad.png") AttachEvent passg,"onLook","transfer1" End_If If tournament=2 Dim month = Int(getTime("MM")) Dim knife = NewItem(hellfire,"bloody knife","It is a knife covered with human blood!!",NewImage("uw2/knife2.gif",64,64),"type=weapon.knife,pickable,Power=1,Value=0,sound=sword1.wav,icon=uw2/knife.gif,showmode=2") If month >= 5 ' Game phase Move knife,RndSet(setAll) End_If End_If END_EVENT ' ' Game configuration parameters ' Sub config() debugtype=0 '1=debug mode ON monstersPopupSet=setAll 'Set of rooms where monsters will pop up escapeSet=setAll 'Set of rooms where monsters can escape End_Sub Sub onNew_local() If debugtype Call giveMoney($AGENT,2000) End_If $AGENT.lastreporter = "" End_Sub Sub onNewDay_local() Dim people = getPlayersIn(foggyp) Dim w If SetLen(people) > 0 w = MakeWeapon("xe",RndSet(people)) Speak SYS,w.container.container,"An Eye spell was given to: " + w.container.name + "!" End_If ' Auto-restore headquarters... ' Update headquarters' capacity... End_Sub Sub LoadContext_Local() buildingtypes = getSetting("ctx_buildingtypes","!set!") buildingplaces = getSetting("ctx_buildingplaces","!set!") buildingguilds = getSetting("ctx_buildingguilds","!set!") Dim buildingname For Each buildingname In SetKeys(buildingtypes) 'Debug "Rebuilding " + buildingname Call buildBuilding(buildingtypes(buildingname),buildingplaces(buildingname),buildingname,buildingguilds(buildingname)) Next mode = getSetting("ctx_mode",mode) End_Sub EVENT onExit If $TARGET=toA1 ' User is exiting to Main Area MoveOutside $AGENT,"Underworld" Return False End_If END_EVENT EVENT entrance.onReceive If $TARGET.type <> 0 'Player has restored from saved game, he saved inside a building Move $TARGET,start End_If If $TARGET.fromarea <> "" ' Teleport comers from other areas to correct places If Not(Exists(passg)) passg = NewItem(start,"a passage","An exit to outside",NewImage("uw2/crack2.gif",46,64),"type=passg,pickable=0,showmode=1,showx=0,showy=150,hideable,showFor=uw2/mroad.png") AttachEvent passg,"onLook","transfer1" End_If $TARGET.fromarea = "" Move $TARGET,start $TARGET.facing = "S" End_If If debugtype=1 ' Debug mode - accept direct access Move $TARGET,start End_If End_EVENT EVENT entrance.onReceiveItem If $TARGET.type <> "msg" 'Unknown object, make it visible Move $TARGET,start Return End_If Call HandleCommandMessage_Common($TARGET) Kill $TARGET End_EVENT ' Transfer function to move people to Area 1 Function transfer1 $AGENT.fromarea = $WORLD.name MoveOutside $AGENT,"Underworld" Return False End_Function 'Local explosives management 'input: cont=bomb container Sub bombExplode_local(cont) Dim houses = getObjectsType(cont,"house") If SetLen(houses) > 0 And tournament <> 2 Dim h = houses(1) Dim buildingname = h.name Dim txt = buildingname + " has been attacked!" Journal txt,gameInfo("site"),txt&"\nIt's located in the place named: "&cont.name&"\n"&" and it is abuilding of type: "&Replace(rookie.choices(buildingtypes(buildingname)),"Build a ",""),"news,disasters,guild:"&guildnames(buildingguilds(buildingname)) Call BroadcastOtherWorlds("shout","txt="+txt) h.Resist = h.Resist-1 If h.Resist < 1 DropItems h Kill h Dim logos = getObjectsType(cont,"logo") If SetLen(logos) > 0 Kill logos(1) End_If SetRemove buildingtypes, buildingname SetRemove buildingplaces, buildingname SetRemove buildingguilds, buildingname saveSetting "ctx_buildingtypes",buildingtypes saveSetting "ctx_buildingplaces",buildingplaces saveSetting "ctx_buildingguilds",buildingguilds End_If End_If End_Sub Sub popMonster_Local(new) Dim dummy End_Sub EVENT rookie.onLook Print PanelHtml("prookie") Speak "I can make buildings!","Just ask me, and I'll do everything!" $AGENT.__clearFocus=true $OWNER.__clearInfo=true End_EVENT EVENT ronald.onLook Print PanelHtml("pronald") Speak "I have learnt to listen to the words of the trees... They taught me their secrets.","Tell me what you want me to do." $AGENT.__clearFocus=true $OWNER.__clearInfo=true End_EVENT Function getChoices(person) Dim i Dim choices = NewSet() For Each k In SetKeys(person.choices) choices(k) = person.choices(k) + " (" + person.costs(k) + " coins)" Next Return choices End_Function Sub rookie_doCommand(cmd) Dim what = rookie.choices(cmd) Dim cost = Int(rookie.costs(cmd)) If getMoneyFrom($AGENT,cost) Speak rookie,$AGENT,"So you want: " + what + ". It costs " + cost + " coins." If Left(cmd,2) = "x_" Dim guild = guildSubscribed($AGENT) If guild = null Speak rookie,$AGENT,"You don't belong to any guild! I don't understand which HQ I should be repairing..." Call giveMoney($AGENT,cost) Return false End_If Dim buildingname = "Headquarters of " + guildnames(guild) Dim c Dim found=null For Each c In getObjectsType($WORLD,"house") If c.name=buildingname found=c End_If Next If found <> null Move rookie,found.container found.Resist = getGuildCount(guild)*10 Speak rookie,$AGENT,"Repaired!" Else Speak rookie,$AGENT,"Could not find it. Perhaps it had been destroyed..." Call giveMoney($AGENT,cost) Return false End_If Else Dim guild = guildSubscribed($AGENT) If guild = null Speak rookie,$AGENT,"I had permission to build, but only for who is member of a guild!","You know, each guild is supposed to have its headquarters!" Call giveMoney($AGENT,cost) Return false End_If Dim builder = $AGENT Dim buildingname = "House of " + builder.name 'If tournament guild = guildSubscribed($AGENT) buildingname = "Headquarters of " + guildnames(guild) 'End_If If buildingtypes(buildingname) <> null Speak rookie,$AGENT,"There is " + buildingname + " already in " + buildingplaces(buildingname).name + " I cannot build another." Call giveMoney($AGENT,cost) Return false End_If rookie.requests($AGENT.name) = cmd 'Print $AGENT,"Richieste: " + rookie.requests + " Da fare: " + rookie.todo Dim new = NewItem($AGENT,"flag","a flag",null,"volume=0,pickable,vanishing,icon=uw2/flag.gif,housetype=" + cmd) AttachEvent new,"whenDropped","flag_whenDropped" Speak rookie,$AGENT,"Well, now go and place the flag I just gave you where you would like it to be built." End_If Else Print "Don't have enough money. It costs " + value + " coins." End_If Return true End_Sub EVENT doCommand_Local(input) Dim cmd = input("ronaldops") If (cmd <> null) Call ronald_doCommand(cmd) Else cmd = input("rookieops") Call rookie_doCommand(cmd) End_If END_EVENT EVENT ronald.onHear() If ronald.todo($AGENT.name) = "avatar" If Left($TARGET,7) = "http://" ronald.todo($AGENT.name) = "set" If $AGENT.type = 12 $AGENT.oldimage = NewImage($TARGET,64,100) Else $AGENT.image = NewImage($TARGET,64,100) End_If Speak ronald, $AGENT, "Done!" Else Speak ronald, $AGENT, "You need to tell me an URL (starts with http://)" End_If Return true End_If If ronald.todo($AGENT.name) = "msg" If $TARGET <> "" ronald.todo($AGENT.name) = "" Dim new = NewItem($AGENT.container,"a message","...",NewImage("pergamena.gif",100,100),"icon=scrollspecial.gif,showmode=2,pickable,volume=0") new.description = $TARGET Move new,$AGENT Speak ronald, $AGENT, "Done!" End_If Return true End_If End_EVENT Sub ronald_doCommand(cmd) Dim what = ronald.choices(cmd) Dim cost = ronald.costs(cmd) If cmd="s1" And $AGENT.type = 16 Speak ronald,$AGENT,"Vi dispiacerebbe tornare in forma umana, prima?" Return false End_If If cmd = "s3" If $AGENT.pw = null Speak "You don't own any personal weapon, by now." Return false End_If If weaponsfactory($AGENT.pw) = null Speak "Impossible to make personal weapons of type: " + $AGENT.pw Return false End_If End_If If getMoneyFrom($AGENT,cost) Speak ronald,$AGENT,"So you wanna " + what + ". This will cost you " + cost + " coins." Else Speak ronald,$AGENT,"This service will cost you "+cost+" coins!","Hey, can you afford it?" Return false End_If Dim req=cmd If req = "s1" If $AGENT.type = 10 Or $AGENT.type = 12 Or $AGENT.type = 14 If $AGENT.prevtype > 0 $AGENT.type = $AGENT.prevtype $AGENT.prevtype = "" If Not($AGENT.type = 10) Call restoreAvatar($AGENT) End_If Call restoreClass($AGENT) Speak ronald,$AGENT,"Done!" Return true Else Speak "The infection is gone too far away. You are incurable now." End_If Else Speak "You don't look infected. Perhaps you just have to accept your nature, heh heh." End_If Call giveMoney($AGENT,cost) End_If If req = "s2" Speak ronald,$AGENT,"Well now tell me the URL of the image you have chosen. Check well or you will lose your money!" SetAdd ronald.todo,$AGENT.name,"avatar" Return true End_If If req = "s3" If SetLen(getObjectsType($AGENT,"weapon.personal")) > 0 Speak ronald,$AGENT,"You have got it, already. Nothing to restore." Else Call MakeWeapon($AGENT.pw,$AGENT) Speak ronald,$AGENT,"Done!" Return true End_If Call giveMoney($AGENT,cost) End_If If req = "s4" Speak "Well, now tell me what you want me to write!" SetAdd ronald.todo,$AGENT.name,"msg" Return true End_If Return false End_Sub Function restoreClass(person) If Not(IsPlayer(person)) Speak SYS,$AGENT,"Cannot operate on robots" Return False End_If If person.type=1 And person.gender = "M" person.Class = "Warrior" Return true End_If If person.type=1 And person.gender = "F" person.Class = "Female Warrior" Return true End_If If person.type=2 And person.gender = "M" person.Class = "Cleric" Return true End_If If person.type=2 And person.gender = "F" person.Class = "Sorceress" Return true End_If If person.type=4 And person.gender = "M" person.Class = "Craftsman" Return true End_If Speak $AGENT,"Not implemented yet for this player type." Return False End_Function EVENT flag_whenDropped Dim builder = $AGENT Dim buildingname = "House of " + builder.name Dim guild Dim where = $TARGET If rookie = null ' Flag dropped in wrong area Print "Rookie won't follow me here." Return false End_If If containsType(where,"house",false) Move rookie,where Speak rookie,$AGENT,"Here it is not allowed: there is already a building. Try elsewhere." Return false End_If If Not(SetContainsKey(rookie.house_places,where.id)) Move rookie,where Speak rookie,$AGENT,"This place is not suitable. Try elsewhere." Return false End_If 'If QG... guild = guildSubscribed($AGENT) buildingname = "Headquarters of " + guildnames(guild) 'End_If Dim req = rookie.requests($OWNER.housetype) Move rookie, where new = buildBuilding($OWNER.housetype,where,buildingname,guild) buildingtypes(buildingname) = $OWNER.housetype buildingplaces(buildingname) = where.id buildingguilds(buildingname) = guild saveSetting "ctx_buildingtypes",buildingtypes saveSetting "ctx_buildingplaces",buildingplaces saveSetting "ctx_buildingguilds",buildingguilds Speak "Done sir! Please come back in a minute, just the time to fix the interiors..." Speak rookie.choices(buildingtypes(buildingname)) Journal "New Headquarters!",guildwebs(guild),"Somebody has built a new headquarters building for the guild "&guildnames(guild)&".\nIt is located in the place named: "&where.name&"\n and it is a building of type: "&Replace(rookie.choices(buildingtypes(buildingname)),"Build a ",""),"news,guild:"&guildnames(guild) End_EVENT Function buildBuilding(housetype,where,buildingname,guild) Dim imagecomps = Split(rookie.houseimages(housetype),"|") Dim imagefile = imagecomps(1) Dim imagewidth = imagecomps(2) Dim imageheight = imagecomps(3) Dim showx = (400-imagewidth) / 2 If where = null Debug "Unexistent place in buildBuilding: "+ where Return null End_If If guild <> null Dim logo = guildlogos(guild) If logo <> null Call NewItem(where,"logo " + guildnames(guild),"It's the logo of " + guildnames(buildingguilds(buildingname)),NewImage(logo,32,32),"type=logo,showmode=1,hideable=0,showy=200,showx="+(showx+imagewidth/2)) End_If End_If Dim new = NewItem(where,buildingname,buildingname,NewImage(imagefile,imagewidth,imageheight),"capacity=100,showmode=1,showy=50,showx="+showx+",type=house,dark=1,hideable=0,showPolicyPeople=1") new.innerimage = NewImage("uw2/inner.gif",400,230) If SetContainsKey(guildnames,guild) ' Guild still exists new.guild = guild new.Resist = getGuildCount(guild)*10 new.Capacit = 1+getGuildCount(guild) new.capacity = 10*new.Capacit Else new.guild = null new.Resist = 50 new.Capacit = 5 new.capacity = 25 End_If If logo <> null new.icon = logo End_If AttachEvent new,"onReceive","building_onReceive" SetPanel where,"penterexit" SetPanel new,"penterexit" If tournament=2 And guild = assassinguild Dim new1 = NewItem($AGENT,"a note","",NewImage("pergamena.gif",100,100),"icon=scroll.gif,pickable,volume=0,showmode=2") new1.description = "The note says:

Mi dispiace doverti lasciare questa lettera, so di avervi messo nei guai. Lei diceva che ci sarebbe stata fedele, ma non potevamo fidarci di lei, e io lo sapevo. Ci avrebbe traditi, io la conoscevo troppo bene.

Farò in modo che la mia colpa non ricada sugli altri, dì loro che non potuto fare altrimenti.

Ti prometto che da dove sto per andare, non sentirai più parlare di me.

Addio." End_If Return new End_Function EVENT building_onReceive Dim person = $TARGET Dim private If person <> null If Left($OWNER.name,8) = "House of" 'Private house private = true If LCase(person.name) <> LCase(Right($OWNER.name,Len(person.name))) And Not(person.master) Print "It's not my house..." Move person,$OWNER.container Return false End_If Else If LCase(person.guild) <> LCase($OWNER.guild) And Not(person.master) And $OWNER.guild <> null Print "I don't belong to " + guildnames($OWNER.guild) + "... and this is their headquarters." Move person,$OWNER.container Return false Else If containsUnique(person) Print "Cannot enter until a carry a unique object." Move person,$OWNER.container Return false End_If End_If End_If End_If If Not(private Or $OWNER.guild=null) If $OWNER.laststats <> getTime("dd") Dim new = NewItem(person,"situation "+ guildnames($OWNER.guild),"...",NewImage("pergamena.gif",100,100),"icon=scroll.gif,showmode=2,vanishing,pickable,volume=0") new.description = getGuildKillStats($OWNER.guild,true) AttachEvent new,"whenPicked","stats_whenPicked" $OWNER.laststats = getTime("dd") $OWNER.lastreporter = person.name Else If $OWNER.lastreporter Print "The last statistics were taken by: " + $OWNER.lastreporter End_If End_If End_If END_EVENT EVENT stats_whenPicked $OWNER.container.lastreporter = $AGENT.name End_EVENT EVENT kovalsky.onLook Speak "Hello, I'm Kovalsky. Need something?", "I've got rare stuff, I've travelled a lot to bring it here","I'll stay just a few days. It's a deal." $AGENT.__clearFocus=true $OWNER.__clearInfo=true END_EVENT EVENT lunarg.onLooseItem ' Management of sold items If $TARGET.seller <> "" Display "This item is sold by " + $TARGET.seller.name Speak $TARGET.seller, $AGENT, "It costs " + $TARGET.Value + " coins!", "Need " + $TARGET.name + " right? It's a deal!", "Just for you: buy it for "+ $TARGET.Value + " coins!" Return false End_If END_EVENT END_SCRIPTS END_WORLD