Author Information.
Name, Country : Rainer Roomet, Estonia.
Email/MSN : rainer_roomet@hotmail.com
Url : http://www.zone.ee/gain/
Telnet : telnet://irc.nohik.ee 4242
MUD name : The Lost Lands of Arion
J.R.R. Tolkien Theme PK and RP MUD.
(http://www.zone.ee/gain/Changelog
Snippet Information.
--------------------
This snippet converts silver and coppers into gold pennies,
if nessecary. 20 copper = 1 silver, 20 silver = 1 gold and 400
coppers = 1 gold. If you have 19 coppers and you type worth
then you see: You have 19 copper pennies. If you get 2 coppers
more and now you have 21 copper, then this snippet converts
21 coppers to 1 silver and 1 copper. Same as buying, selling
etc. Good for MUDs what love RP.
Credits.
--------
I don't need any credit. Maybe if you find some bug or type
or you have some idea, you may email or msn to me at
rainer_roomet@hotmail.com.
Installing.
-----------
First BACKUP your code!
First type "grep 'ch->silver' *.[c,h]"
Also you have to check 'victim->silver', keeper->silver etc.
And delete all ch->silver functions or replace them ch->gold.
then
OPEN the file 'handler.c'
and add the following at the end of the file:
char *format_coins(int amount)
{
static char buf[MAX_STRING_LENGTH];
int copper = amount;
int silver = amount/20;
int gold = amount/400;
/*
* definitions of currency
* 20 copper == 1 silver;
* 20 silver == 1 gold;
* 4,00 copper == 1 gold;
*/
if (amount < 20)
{
sprintf(buf, "%d copper penn%s",
amount, amount > 1 ? "ies" : "y");
return buf;
}
else if (amount >= 20 && amount < 400
&& (amount - silver * 20) == 0)
{
sprintf(buf, "%d silver penn%s",
silver,
silver > 1 ? "ies" : "y" );
return buf;
}
else if (amount >= 20 && amount < 400)
{
sprintf(buf, "%d silver and %d copper penn%s",
amount/20, copper - silver * 20, copper > 1 ? "ies" : "y" );
return buf;
}
else if (amount >= 400
&& (amount/20 - gold * 20) == 0
&& (amount - silver * 20) == 0)
{
sprintf(buf, "%d gold penn%s", gold, gold > 1 ? "ies" : "y");
return buf;
}
else if (amount > 400 && (amount/20 - gold * 20) == 0)
{
sprintf(buf, "%d gold and %d copper penn%s",
gold, copper - gold * 400,
copper - gold * 400 > 1 ? "ies" : "y");
return buf;
}
else if (amount > 400 && (amount - silver * 20 ) == 0)
{
sprintf(buf, "%d gold and %d silver penn%s",
gold, (amount - gold * 400) / 20,
(amount - gold * 400) / 20 > 1 ? "ies" : "y");
return buf;
}
else if (amount > 400 && (amount - silver * 20 ) != 0
&& (amount/20 - gold * 20) != 0)
{
sprintf(buf, "%d gold, %d silver and %d copper penn%s",
gold,
(amount - gold * 400) / 20,
copper - silver * 20,
copper - silver * 20 > 1 ? "ies" : "y");
return buf;
}
return buf;
}
NOW TYPE:
grep 'ch->victim' *.[c,h]
and PUT
format_coins(ch->victim)
Thank you for using my snippet.
Rainer Roomet.
Email/MSN: rainer_roomet@hotmail.com