/* This is just a simple replacement for the stock score function for low4. It should * work for any Godwars derivative with little to no tweaking, but it has only been * tested on LoW4. Nothing needs to be done to this to make it work in a stock low4, * but you may want to colorize divide_to_char in act_info.c. The divide_to_char that * is on the mud this was designed for is a little different than the one in the stock * release of LoW4. Here is what the divide_to_char function looks like in my mud, in * case you removed it or your code doesn't have it for some reason. * * void divide_to_char(CHAR_DATA *ch) * { * stc("{m-------------------------------------------------------------------------------{x\r\n",ch); * } * * You may use this in any way you like as long as you abide by the other licenses * on LoW4. I don't require an email or any credits in a helpfile or any of those * other insane terms on snippets. Just don't claim this as your own work. * * I would like to take this opportunity to request that you release any and all * snippets you can to help the Godwars community grow. A good place to release * snippets for any and all codebases is www.mudbytes.net. They have the biggest * code repository available at the moment and it is still growing. A good place * to find any Godwars related code and snippets is www.godwars.net. * * If you need help installing this (you really shouldn't have problems with this one) * visit the forums at www.mudbytes.net and ask for some help. That is where I go * for most of my coding related questions. There are also forums available at * www.godwars.net which I visit often as well. * * -Igabod- */ /* * New score function by -Igabod- */ void do_score(CHAR_DATA *ch,char *argument) { char buf[MAX_STRING_LENGTH]; char golc[MAX_STRING_LENGTH]; int a_c = char_ac(ch); if (!IS_NPC(ch) && (IS_EXTRA(ch,EXTRA_OSWITCH) || IS_HEAD(ch,LOST_HEAD) || IS_EXTRA(ch,EXTRA_PLASMA) || IS_EXTRA(ch,EXTRA_ASH))) { obj_score(ch,ch->pcdata->chobj); return; } divide_to_char(ch); sprintf(buf,"{RCharacter Data for {Y%s{x",ch->name); cent_to_char(buf,ch); divide_to_char(ch); stc("\r\n",ch); sprintf(buf,"{cTitle:{D%s {cPlay Time: {R%d {whours{x\r\n",IS_NPC(ch) ? "" : ch->pcdata->title,(get_age(ch) - 17) * 2); stc(buf,ch); stc("{cPosition: {w",ch); if (ch->position == POS_DEAD) stc("{wDEAD!{x ",ch); else if (ch->position == POS_MORTAL) stc("{wMortally Wounded{x ",ch); else if (ch->position == POS_INCAP) stc("{wIncapacitated{x ",ch); else if (ch->position == POS_STUNNED) stc("{wStunned{x ",ch); else if (ch->position == POS_SLEEPING) stc("{wSleeping{x ",ch); else if (ch->position == POS_RESTING) stc("{wResting{x ",ch); else if (ch->position == POS_MEDITATING) stc("{wMeditating{x ",ch); else if (ch->position == POS_SITTING) stc("{wSitting{x ",ch); else if (ch->position == POS_STANDING) stc("{wStanding{x ",ch); else if (ch->position == POS_FIGHTING) stc("{wFighting{x ",ch); sprintf(buf," {cWimpy: {R%d {whp{x\r\n",ch->wimpy); stc(buf,ch); sprintf( buf,"{cAutoexit: %s. {cAutoloot: %s. {cAutosac: %s.{x\r\n", (!IS_NPC(ch) && IS_SET(ch->act, PLR_AUTOEXIT)) ? "{GYES{x" : "{RNO{x", (!IS_NPC(ch) && IS_SET(ch->act, PLR_AUTOLOOT)) ? "{GYES{x" : "{RNO{x", (!IS_NPC(ch) && IS_SET(ch->act, PLR_AUTOSAC) ) ? "{GYES{x" : "{RNO{x"); stc(buf,ch); sprintf(buf,"{cPrimal: {R%d{x ",ch->practice); stc(buf,ch); sprintf(buf,"{cQuest Points: {Y%d{x ",ch->pcdata->quest); stc(buf,ch); sprintf(buf,"{cExperience: {Y%d{x\r\n",ch->exp); stc(buf,ch); sprintf(buf,"{cAlignment: {R%d{x ",ch->alignment); stc(buf,ch); stc("{wYou are ",ch); if (ch->alignment > 900) stc("{wangelic.{x\r\n",ch); else if (ch->alignment > 700) stc("{wsaintly{x\r\n",ch); else if (ch->alignment > 350) stc("{wgood{x\r\n",ch); else if (ch->alignment > 100) stc("{wkind{x\r\n",ch); else if (ch->alignment > -100) stc("{wneutral{x\r\n",ch); else if (ch->alignment > -350) stc("{wmean{x\r\n",ch); else if (ch->alignment > -700) stc("{wevil{x\r\n",ch); else if (ch->alignment > -900) stc("{wdemonic{x\r\n",ch); else stc("{wsatanic{x\r\n",ch); sprintf(buf,"{cArmor Class: {R%d{x ",a_c); stc(buf,ch); stc("{wYou are ",ch); if (a_c >= 101) stc("{wnaked!{x\r\n",ch); else if (a_c >= 80) stc("{wbarely clothed.{x\r\n",ch); else if (a_c >= 60) stc("{wwearing clothes.{x\r\n",ch); else if (a_c >= 40) stc("{wslightly armored.{x\r\n",ch); else if (a_c >= 20) stc("{wsomewhat armored.{x\r\n",ch); else if (a_c >= -50) stc("{warmored.{x\r\n",ch); else if (a_c >= -150) stc("{wwell armored.{x\r\n",ch); else if (a_c >= -300) stc("{wstrongly armored.{x\r\n",ch); else if (a_c >= -500) stc("{wheavily armored.{x\r\n",ch); else if (a_c >= -750) stc("{wsuperbly armored.{x\r\n",ch); else if (a_c >= -1000) stc("{wdivinely armored.{x\r\n",ch); else stc("{wultimately armored!{x\r\n",ch); sprintf(buf,"{cHitroll: {R%d{x {cDamroll: {R%d{x {cDamcap: {R%d{x\r\n",char_hitroll(ch),char_damroll(ch),ch->damcap[0]); stc(buf,ch); sprintf(buf,"{cStr: {R%d{x {cInt: {R%d{x {cWis: {R%d{x {cDex: {R%d{x {cCon: {R%d{x\r\n", get_curr_str(ch),get_curr_int(ch),get_curr_wis(ch),get_curr_dex(ch),get_curr_con(ch)); stc(buf,ch); sprintf(buf,"{cHp: {W%d{C/{w%d {cMana: {W%d{C/{w%d {cMove: {W%d{C/{w%d{x\r\n", ch->hit,ch->max_hit,ch->mana,ch->max_mana,ch->move,ch->max_move); stc(buf,ch); divide_to_char(ch); cent_to_char("{RKills and Status{x\r\n",ch); sprintf(buf,"{cStatus: {R%d {wYou are ",ch->race); stc(buf,ch); if (!IS_NPC(ch) && ch->level == 1) stc("{wa Mortal.{x\r\n",ch); else if (!IS_NPC(ch) && ch->level == 2) stc("{wa Mortal.{x\r\n",ch); else if (!IS_NPC(ch) && ch->level == 7) stc("{wa Builder.{x\r\n",ch); else if (!IS_NPC(ch) && ch->level == 8) stc("{wa Quest Maker.{x\r\n",ch); else if (!IS_NPC(ch) && ch->level == 9) stc("{wan Enforcer.{x\r\n",ch); else if (!IS_NPC(ch) && ch->level == 10) stc("{wa Judge.{x\r\n",ch); else if (!IS_NPC(ch) && ch->level == 11) stc("{wa High Judge.{x\r\n",ch); else if (!IS_NPC(ch) && ch->level == 12) stc("{wan Implementor.{x\r\n",ch); else if (!IS_NPC(ch) && ch->race <= 0) stc("{wan Avatar.{x\r\n",ch); else if (!IS_NPC(ch) && ch->race <= 10) stc("{wan Immortal.{x\r\n",ch); else if (!IS_NPC(ch) && ch->race <= 20) stc("{wa Godling.{x\r\n",ch); else if (!IS_NPC(ch) && ch->race <= 30) stc("{wa Demigod.{x\r\n",ch); else if (!IS_NPC(ch) && ch->race <= 40) stc("{wa Lesser God.{x\r\n",ch); else if (!IS_NPC(ch) && ch->race <= 50) stc("{wa Greater God.{x\r\n",ch); else if (!IS_NPC(ch) && ch->race >= 60) stc("{wa Supreme God.{x\r\n",ch); else if (!IS_NPC(ch) && ch->race >= 60) stc("{wa Ultimate God.{x\r\n",ch); else if (!IS_NPC(ch)) stc( "{Ya Bugged Character!{x\r\n",ch); sprintf(buf,"{cMkills: {R%d{x {cMdeaths: {R%d {cPkills: {R%d {cPdeaths: {R%d{x\r\n", ch->mkill,ch->mdeath,ch->pkill,ch->pdeath); stc(buf,ch); if (ch->fight_timer > 0) { sprintf(buf,"{c#FFIGHT TIMER: {Y#F%d {w#Fticks remaining.{x#n\r\n",ch->fight_timer); stc(buf,ch); } divide_to_char(ch); if (ch->class > 0) { cent_to_char("{RClass Related{x\r\n",ch); sprintf(buf,"{cGeneration: {R%d{x\r\n",ch->pcdata->stats[UNI_GEN]); stc(buf,ch); if (!IS_NPC(ch) && (IS_CLASS(ch,CLASS_DEMON) || IS_SET(ch->special,SPC_CHAMPION))) { sprintf(buf,"{cDemon points: {R%d {wout of {r%d {wdemon points stored.\r\n", ch->pcdata->stats[DEMON_CURRENT],ch->pcdata->stats[DEMON_TOTAL]); stc(buf,ch); if (ch->pcdata->stats[DEMON_POWER] > 0) { sprintf(buf,"{cDemon Armor Bonus: {R+%d {wHitroll and Damroll{x\r\n", ((ch->pcdata->stats[DEMON_POWER]) * ch->pcdata->stats[DEMON_POWER])); stc(buf,ch); } } if (!IS_NPC(ch) && IS_CLASS(ch,CLASS_DROW)) { sprintf(buf,"{cDrow Points: {M%d {cMagic Resistance: {m%d{x\r\n", ch->pcdata->stats[DROW_POWER],ch->pcdata->stats[DROW_MAGIC]); stc(buf,ch); } if (!IS_NPC(ch) && IS_CLASS(ch,CLASS_MONK)) { sprintf(buf,"{cBlock Counter: {R%d{x\r\n",ch->monkblock); stc(buf,ch); sprintf(buf,"{cChi: {Y%d{R/{y%d{x",ch->chi[CURRENT],ch->chi[MAXIMUM]); stc(buf,ch); sprintf(buf,"{cFocus Points: {R%d{R/{B%d{x",ch->focus[CURRENT],ch->focus[MAXIMUM]); stc(buf,ch); } if (!IS_NPC(ch) && IS_CLASS(ch,CLASS_VAMPIRE)) { sprintf(buf,"{cBlood Pool: {R%d{x",ch->pcdata->condition[COND_THIRST]); stc(buf,ch); if (ch->beast < 0 ) sprintf(golc,"{R#FYou are a cheat!{x#n\r\n"); else if (ch->beast == 0 ) sprintf(golc,"{wYou have attained Golconda!{x\r\n"); else if (ch->beast <= 5 ) sprintf(golc,"{wYou have almost reached Golconda!{x\r\n"); else if (ch->beast <= 10) sprintf(golc,"{wYou are nearing Golconda!{x\r\n"); else if (ch->beast <= 15) sprintf(golc,"{wYou have great control over your beast.{x\r\n"); else if (ch->beast <= 20) sprintf(golc,"{wYour beast has little influence over your actions.{x\r\n"); else if (ch->beast <= 30) sprintf(golc,"{wYou are in control of your beast.{x\r\n"); else if (ch->beast <= 40) sprintf(golc,"{wYou are able to hold back the beast.{x\r\n"); else if (ch->beast <= 60) sprintf(golc,"{wYou are constantly struggling for control of your beast.{x\r\n"); else if (ch->beast <= 75) sprintf(golc,"{wYour beast has great control over your actions.{x\r\n"); else if (ch->beast <= 90) sprintf(golc,"{wThe power of the beast overwhelms you.{x\r\n"); else if (ch->beast <= 99) sprintf(golc,"{wYou have almost lost your battle with the beast!{x\r\n"); else sprintf(golc,"{wThe beast has taken over!{x\r\n"); sprintf(buf,"{cBeast: {R%d{x %s",ch->beast,golc); stc(buf,ch); sprintf(buf,"{cBeast Bonus: {R+%d {wHitroll {R+%d {wDamroll{x\r\n",ch->pcdata->stats[UNI_RAGE],ch->pcdata->stats[UNI_RAGE]); stc(buf,ch); } if (IS_CLASS(ch,CLASS_WEREWOLF)) { sprintf(buf,"{cGnosis: {W%d{R/{w%d{x ",ch->gnosis[GCURRENT],ch->gnosis[GMAXIMUM]); stc(buf,ch); sprintf(buf,"{cSilver Tolerance: {R%d{x\r\n",ch->pcdata->powers[WPOWER_SILVER]); stc(buf,ch); sprintf(buf,"{cRage Bonus: {R+%d {wHitroll {R+%d {wDamroll{x\r\n",ch->pcdata->stats[UNI_RAGE],ch->pcdata->stats[UNI_RAGE]); stc(buf,ch); } if (IS_CLASS(ch,CLASS_NINJA)) { sprintf(buf,"{cNinja Ki: {R%d {wout of {r500 {wstored.{x ",ch->pcdata->powers[NINJAKI]); stc(buf,ch); sprintf(buf,"{cHaraKiri: {R%d {wticks{x\r\n",ch->pcdata->powers[HARA_KIRI]); stc(buf,ch); sprintf(buf,"{cMichi Bonus: {R+%d {wHitroll and Damroll{x\r\n",ch->pcdata->stats[UNI_RAGE]); stc(buf,ch); } } divide_to_char(ch); return; }