std_skills.c-Dateireferenz

#include <living/skills.h>
#include <living/skill_attributes.h>
#include <thing/properties.h>
#include <attributes.h>
#include <new_skills.h>
Include-Abhängigkeitsdiagramm für std_skills.c:

gehe zum Quellcode dieser Datei

Makrodefinitionen

#define NEED_PROTOTYPES
#define SIG(x)   (x?(x>0?1:-1):0)

Funktionen

protected int StdSkill_Nightvision (object me, string sname, mixed sinfo)
protected mapping StdSkill_Bihand (object me, string sname, mapping sinfo)
protected mapping StdSkill_Fight_sword (object me, string sname, mapping sinfo)
protected mapping StdSkill_Fight_hands (object me, string sname, mapping sinfo)
protected int StdSkill_Booze (object me, string sname, mapping sinfo)

Makro-Dokumentation

#define NEED_PROTOTYPES

Definiert in Zeile 12 der Datei std_skills.c.

#define SIG ( x   )     (x?(x>0?1:-1):0)

Definiert in Zeile 21 der Datei std_skills.c.

Wird benutzt von StdSkill_Fight_hands() und StdSkill_Fight_sword().


Dokumentation der Funktionen

protected mapping StdSkill_Bihand ( object  me,
string  sname,
mapping  sinfo 
)

Definiert in Zeile 53 der Datei std_skills.c.

Benutzt A_STR, MAX_ABILITY, QueryAttribute(), QuerySkillAttribute(), SA_DAMAGE, SI_SKILLABILITY und SI_SKILLDAMAGE.

00053                                                                           {
00054   int abil,val;
00055 
00056   // printf("Bihand: %O\n",sinfo);
00057   if (!sinfo) return 0;
00058   abil=sinfo[SI_SKILLABILITY];
00059   val=(abil*(QueryAttribute(A_STR)+33))/MAX_ABILITY;
00060   val=(val*QuerySkillAttribute(SA_DAMAGE))/100;
00061   sinfo[SI_SKILLDAMAGE]+=val;
00062   // + max. 53
00063   return sinfo;
00064 }

Hier ist ein Graph der zeigt, was diese Funktion aufruft:

protected int StdSkill_Booze ( object  me,
string  sname,
mapping  sinfo 
)

Definiert in Zeile 93 der Datei std_skills.c.

Benutzt MAX_ABILITY, SI_SKILLABILITY und SI_SKILLARG.

00093                                                                      {
00094   int abil,val;
00095 
00096   val=0;
00097   if (!sinfo || (val=sinfo[SI_SKILLARG])<=0)
00098     return val;
00099   abil=sinfo[SI_SKILLABILITY];
00100   val-=(val*abil)/(MAX_ABILITY+2500); // Bis zu 80% Abzug bei Alkoholikern.
00101   if (val<=0) val=1;
00102   return val;
00103 }

protected mapping StdSkill_Fight_hands ( object  me,
string  sname,
mapping  sinfo 
)

Definiert in Zeile 79 der Datei std_skills.c.

Benutzt A_DEX, A_STR, MAX_ABILITY, QueryAttribute(), QuerySkillAttribute(), SA_DAMAGE, SI_SKILLABILITY, SI_SKILLDAMAGE und SIG.

00079                                                                                {
00080   int abil,asig,val;
00081 
00082   if (!sinfo) return 0;
00083   abil=sinfo[SI_SKILLABILITY];asig=SIG(abil);
00084   val=(abil*(QueryAttribute(A_STR) +
00085              QueryAttribute(A_DEX)*3*asig +
00086              100))/MAX_ABILITY;
00087   val=(val*QuerySkillAttribute(SA_DAMAGE))/100;
00088   sinfo[SI_SKILLDAMAGE]+=val;
00089   // + max. 180
00090   return sinfo;
00091 }

Hier ist ein Graph der zeigt, was diese Funktion aufruft:

protected mapping StdSkill_Fight_sword ( object  me,
string  sname,
mapping  sinfo 
)

Definiert in Zeile 66 der Datei std_skills.c.

Benutzt A_DEX, A_STR, MAX_ABILITY, QueryAttribute(), QuerySkillAttribute(), SA_DAMAGE, SI_SKILLABILITY, SI_SKILLDAMAGE und SIG.

00066                                                                                {
00067   int abil,asig,val;
00068 
00069   abil=sinfo[SI_SKILLABILITY];asig=SIG(abil);
00070   val=(abil*(QueryAttribute(A_STR) +
00071              QueryAttribute(A_DEX)*asig +
00072              33))/MAX_ABILITY;
00073   val=(val*QuerySkillAttribute(SA_DAMAGE))/100;
00074   sinfo[SI_SKILLDAMAGE]+=val;
00075   // + max. 73
00076   return sinfo;
00077 }

Hier ist ein Graph der zeigt, was diese Funktion aufruft:

protected int StdSkill_Nightvision ( object  me,
string  sname,
mixed  sinfo 
)

Definiert in Zeile 23 der Datei std_skills.c.

Benutzt light(), MAX_ABILITY, ModifySkill(), P_PLAYER_LIGHT, QueryProp(), SI_LASTLIGHT und SI_SKILLABILITY.

Wird benutzt von CannotSee().

00023                                                                          {
00024   int abil,light,llt,dt,res;
00025 
00026   if (!sinfo || !environment()) return 0;
00027   if (intp(sinfo)) sinfo=([SI_SKILLABILITY:sinfo]);
00028   if (!mappingp(sinfo)) return 0;
00029   if ((light=QueryProp(P_PLAYER_LIGHT))>0) {
00030     ModifySkill(sname,([SI_LASTLIGHT:time()]));
00031     return light;
00032   }
00033   abil=sinfo[SI_SKILLABILITY];
00034   if (!(llt=sinfo[SI_LASTLIGHT])) {
00035     ModifySkill(sname,([SI_LASTLIGHT:time()]));
00036     dt=0;
00037   } else {
00038     dt=time()-llt;
00039     if (dt<0) dt=0;
00040     if (dt>86400) dt=86400;
00041   }
00042 
00043   res=(abil*dt)/(20*MAX_ABILITY)+light;
00044   if (res<=0) {
00045     res--; // Wert muss !=0 sein
00046     if (res<-MAX_ABILITY) res=-MAX_ABILITY;
00047   } else {
00048     if (res>MAX_ABILITY) res=MAX_ABILITY;
00049   }
00050   return res;
00051 }

Hier ist ein Graph der zeigt, was diese Funktion aufruft:

Hier ist ein Graph der zeigt, wo diese Funktion aufgerufen wird:

Erzeugt am Thu Jun 3 14:42:38 2010 für MorgenGrauen Mudlib von  doxygen 1.6.3