1) I think you can have only one.
2) It depends on when you want the character to gain the geographical knowledge. All it really takes is a program that increases the skill and sets up a quest bit (so that the increase in skill is not repeated). The most basic form of this program would be something like this:
Code: Select all
if quest(something,1,$n) == 0
mpechoat $n As you move about the AreaThatIBuilt you feel your geographical knowledge of the region has improved.
mppractice $n 25 knowledge-geography
mplog KNOWLEDGE: $n has gained 1 point in knowledge geography for traversing the AreaThatIBuilt.
mpmset $n quest something 1 1
endif
where "mppractice $n 25 knowledge-geography" means "increase $n's knowledge-geography skill once, as long as that increase does not bring it over 25".
If you want $n to gain this knowledge as soon as they enter a room, you can put this as a greet_prog 100 program in the room. If you want it to be triggered at a "random" location, you would then have to put it on an invisible mob who wanders the area. If you want the knowledge to be gained only after completing a quest, you would add this code at the correct point in the quest.
3) For unique mobs, you have to specify some sort of armour. If you do not want to equip your mobs with armour objects, you can set armour type and material to correspond to what the mob would be ICly wearing (e.g., a guard might have scale mail made of metal). Even if you do equip your mobs with armour objects, it's still better to also set their natural armour to what they would ICly wear (in case the armour stops repopping because too many copies are already in the game). If they don't wear armour, you can give them a "cloth" armour (type) made of "cloth" (material).
If the mob has no real "armour", then you can use armour type/material to describe the "natural armour" of the mob. For example, a dragon would perhaps have a full plate made of hide; a lich would have a full plate made of bone; a boar would have a hide armour made of hide; and so on. The armour type here is an indication of how strong the armour is (that's why both dragons and liches would have full plate, even though their natural armour does not look like full plates in any way).
4) Yes, if you describe them as U(nique) mobs, all information must be given; you cannot omit some parts of the description even if they are obvious to the human mind.
But when you actually create "normal" mobiles that have the standard alignment, language, stats, no special spells affecting them, and so on, you can describe them as S(imple) mobs. For simple mobs, you only have to give their levels, class, race, sex, position, deity, and act flags. All the other characteristics are directly taken from the race file (that includes the animal language for race_horse).
So... either you describe them as Simple mobs and you give only basic information; or you describe them as Unique mobs and you have to give out all the information.
5) Whether the bird has a program or not
Birds are not automatically pluck-able. You can consider a program like this on your birds.
Code: Select all
>intercept_prog pluck~
if quest(0,3,self) < 5
mpechoat $n You pluck...
mpechoaround $n $N plucks ...
mpoload 63
mposet i63 short {D0}a pink feather {90}with red {A0}and green dots
mposet i63 long {D0}A pink feather {90}with red {A0}and green dots lies here.
mposet i63 name pink feather red green dots i63
mpgive i63 $n
mpmadd self quest 0 3 1
else
mpechoat $n You try but... no feather left/$I flies away
mpechoaround $n $N tries but... no feather left/$I flies away
endif
~
>time_prog 0~
mpmset self quest 0 3 0
~
The quest bit check is used to limit how many feathers you can get from the bird each game day (since it's set back to 0 at midnight).
Something a little bit tricky: all the mobs with the same vnum share the same quest bits, so, if you pluck dry one of your bird, all the other birds (of the same vnum) will stop giving out feathers. There's no good work-around; the best thing is still to reset the quest bits at midnight for example.
6) I guess so. To be honest, I do not really know what each spec_ functions does. Pets with no spec_ functions are fine too.
7) Yes