Merentha Website
- Overview
- About LPC Coding
- Header Files
- The Problem Sets
- Rooms
- Normal Rooms
- Monster Rooms
- Search Rooms
- Exit Rooms
- Door Rooms
- Monsters
- Normal Monster
- Random/Emote Monster
- Patrol/Talking Monster
- Skills/Interactive Monster
- Armour
- A Vest
- A Ring
- Cursed Armour
- Weapons
- Normal Staff
- Two Handed Sword
- Special Attack Weapon
- Cursed Weapon
- Talkin Weapon
- Lights
- A Match
- A Torch
- A Lantern
- Bags
- A Normal Bag
- A Backpack (wearable)
- An Expanding Bag
- Misc Objects
- A Leaf
- A Sea Shell
- A Key
- A Snowball
|
// Petrarch (from NM Mudlib)
#include
inherit WEAPON;
void create() {
::create();
set_name("cursed sword of the elves");
set_id( ({ "sword", "cursed sword" }) );
set_adjectives( ({ "the", "cursed", "elven" }) );
set_short("a cursed sword made by the elves");
set_long("It is a very finely made sword, but it "
"does not look very effective.");
set_mass(12);
set_value(200);
set_wc(16);
set_type("blade");
set_material(({"metal","steel"}));
set_wield("You fool! You have wielded a cursed sword!");
set_unwield( (: call_other, this_object(), "remove_sword" :) );
set_prevent_drop( (: call_other, this_object(), "can_drop" :) );
}
int remove_sword() {
if((string)query_wielded()->query_race() == "elf") return 1;
write("The sword is stuck to your hand and cannot be unwielded!");
return 0;
}
void unequip() {
if(query_wielded() && remove_sword()) __ActuallyUnwield();
}
int can_drop(object ob) {
if(!query_wielded() || query_wielded() != ob) return 1;
if((string)this_player()->query_race() == "elf") return 1;
else {
message("my_action", "The sword refuses to leave your hands!", ob);
message("other_action", (string)ob->query_cap_name()+" tries to drop "+
possessive(ob)+" sword, but it will not unwield!",
environment(ob), ({ ob }) );
return 0;
}
}
|