Echoes of Whisp continue to haunt us.
posted in Design & Advanced System Discussion
P
Posts made by pollution
-
RE: TransmogrifyI'm not sure how my words could be taken to mean **I LOVE MINDLESS HACK AND SLASH, BLAARRRGG!!!**. Hooray hyperbole.posted in Design & Advanced System Discussion
-
RE: Upgradeposted in Immortals Forum
> Fatal error: Call to a member function bbcode_second_pass() on a non-object in /home/.doggs/sentience_imm/immsite/viewtopic.php on line 1263
Also noticed on the public board in the thread with the meeting logs:> You do not have the required permissions to view the files attached to this post.
Happens whether I'm logged in or not. -
RE: Anyone here?The host and port are right at the top of the page usually: sentiencemud.net port 9000.posted in Discussion/OOC
-
RE: Possible unintended behavior with dual wieldYeah, I don't think that should be allowed even though the benefits are negligible.posted in Bug Reports
-
RE: Meeting Log - 12/28/06Here is the summary of the meeting held 12/28/06\. It is in pdf format so you'll need acrobat reader to view the file.posted in Announcements Archive
-
RE: Knockdown has no effect on combat.Keep in mind that changing this will dramatically impact combat all across the game. This shouldn't be taken lightly.posted in Bug Reports
-
Exit Namesposted in Bug Reports
[b]Reported by:[/b] Me
[b]Flags:[/b] Immortal Annoyance
Exits with custom exit names only show the first word of the name when the exit is manipulated. In redit the name is displayed correctly. -
Act no_huntposted in Requests
We have a no_hunt extra flag for objects, how about an act flag for mobs? -
RE: New Areas: Spirit's Forest (Elite) and Mierkwood KeepMy only issue with this proposition is that it just bleeds sappy bad fantasy. Lords and ladies? Check. Lost love? Check. Things of beauty and prestige befouled by mysterious black magic? Check. I think we should really strive to avoid cheese and try to create a more believable world than the stuff we're stuck with at this point (see Reza). Maybe the backstory can be tweaked in some fashion to avoid those elements. Or maybe it's just my bias against fantasy in general.posted in Design & Advanced System Discussion
-
Boost Spellsposted in Coding Discussion
Here is the code for the boost spells I (badly) wrote. Critiques welcome.
A brief summary:
divine favor = 2x exp
divine rage = 2x damage
divine valor = 2x qp
divine spirit = 2x pneuma
I personally don't like these names much and I'd rather see them changed before implementation, same goes for the echoes. They are placeholders, nothing more.
[b]merc.h[/b] [code]#define MAX_SKILL 256 #define AFF2_DIVINE_FAVOR (V) #define AFF2_DIVINE_RAGE (W) #define AFF2_DIVINE_VALOR (X) #define AFF2_DIVINE_SPIRIT (Y)[/code] [b]magic.c[/b] [code]void spell_divine_favor(int sn, int level, CHAR_DATA *ch, void *vo, int target) { CHAR_DATA *victim; AFFECT_DATA af; bool perm = FALSE; if (level > 9000) // Is an obj { level -= 9000; perm = TRUE; } if ((IS_NPC(ch)) || (ch->tot_level < MAX_LEVEL)) { send_to_char("Only IMPs can cast this spell.\n\r",ch); return; } /* character target */ victim = (CHAR_DATA *) vo; if (perm == TRUE && is_affected(victim, sn)) { affect_strip(victim, sn); } else if (IS_AFFECTED2(victim, AFF2_DIVINE_FAVOR)) { if (victim == ch) send_to_char("You are already favored by the gods.\n\r",ch); else act("$N is already favored by the gods.",ch,NULL,victim,TO_CHAR); return; } af.where = TO_AFFECTS; af.type = sn; af.level = level; if (perm) af.duration = -1; else af.duration = level/10; af.location = APPLY_NONE; af.modifier = 0; af.bitvector = 0; af.bitvector2 = AFF2_DIVINE_FAVOR; affect_to_char(victim, &af); send_to_char("You begin to glow with a radiant white aura.\n\r", victim); act("$n glows with a radiant white aura.", victim, NULL, NULL, TO_ROOM); } void spell_divine_rage(int sn, int level, CHAR_DATA *ch, void *vo, int target) { CHAR_DATA *victim; AFFECT_DATA af; bool perm = FALSE; if (level > 9000) // Is an obj { level -= 9000; perm = TRUE; } if ((IS_NPC(ch)) || (ch->tot_level < MAX_LEVEL)) { send_to_char("Only IMPs can cast this spell.\n\r",ch); return; } /* character target */ victim = (CHAR_DATA *) vo; if (perm == TRUE && is_affected(victim, sn)) { affect_strip(victim, sn); } else if (IS_AFFECTED2(victim, AFF2_DIVINE_RAGE)) { if (victim == ch) send_to_char("You are already favored by the gods.\n\r",ch); else act("$N is already favored by the gods.",ch,NULL,victim,TO_CHAR); return; } af.where = TO_AFFECTS; af.type = sn; af.level = level; if (perm) af.duration = -1; else af.duration = level/10; af.location = APPLY_NONE; af.modifier = 0; af.bitvector = 0; af.bitvector2 = AFF2_DIVINE_RAGE; affect_to_char(victim, &af); send_to_char("You begin to glow with a fiery red aura.\n\r", victim); act("$n glows with a fiery red aura.", victim, NULL, NULL, TO_ROOM); } void spell_divine_valor(int sn, int level, CHAR_DATA *ch, void *vo, int target) { CHAR_DATA *victim; AFFECT_DATA af; bool perm = FALSE; if (level > 9000) // Is an obj { level -= 9000; perm = TRUE; } if ((IS_NPC(ch)) || (ch->tot_level < MAX_LEVEL)) { send_to_char("Only IMPs can cast this spell.\n\r",ch); return; } /* character target */ victim = (CHAR_DATA *) vo; if (perm == TRUE && is_affected(victim, sn)) { affect_strip(victim, sn); } else if (IS_AFFECTED2(victim, AFF2_DIVINE_VALOR)) { if (victim == ch) send_to_char("You are already favored by the gods.\n\r",ch); else act("$N is already favored by the gods.",ch,NULL,victim,TO_CHAR); return; } af.where = TO_AFFECTS; af.type = sn; af.level = level; if (perm) af.duration = -1; else af.duration = 2; af.location = APPLY_NONE; af.modifier = 0; af.bitvector = 0; af.bitvector2 = AFF2_DIVINE_VALOR; affect_to_char(victim, &af); send_to_char("You begin to glow with a powerful gold aura.\n\r", victim); act("$n glows with a powerful gold aura.", victim, NULL, NULL, TO_ROOM); } void spell_divine_spirit(int sn, int level, CHAR_DATA *ch, void *vo, int target) { CHAR_DATA *victim; AFFECT_DATA af; bool perm = FALSE; if (level > 9000) // Is an obj { level -= 9000; perm = TRUE; } if ((IS_NPC(ch)) || (ch->tot_level < MAX_LEVEL)) { send_to_char("Only IMPs can cast this spell.\n\r",ch); return; } /* character target */ victim = (CHAR_DATA *) vo; if (perm == TRUE && is_affected(victim, sn)) { affect_strip(victim, sn); } else if (IS_AFFECTED2(victim, AFF2_DIVINE_SPIRIT)) { if (victim == ch) send_to_char("You are already favored by the gods.\n\r",ch); else act("$N is already favored by the gods.",ch,NULL,victim,TO_CHAR); return; } af.where = TO_AFFECTS; af.type = sn; af.level = level; if (perm) af.duration = -1; else af.duration = 2; af.location = APPLY_NONE; af.modifier = 0; af.bitvector = 0; af.bitvector2 = AFF2_DIVINE_SPIRIT; affect_to_char(victim, &af); send_to_char("You begin to glow with a pulsing blue aura.\n\r", victim); act("$n glows with a pulsing blue aura.", victim, NULL, NULL, TO_ROOM); }[/code] [b]magic.h[/b] [code]DECLARE_SPELL_FUN( spell_divine_spirit ); DECLARE_SPELL_FUN( spell_divine_valor ); DECLARE_SPELL_FUN( spell_divine_rage ); DECLARE_SPELL_FUN( spell_divine_favor );[/code] [b]bit.c (as affect2)[/b] [code]if ( vector & AFF2_DIVINE_FAVOR ) strcat( buf, " divine_favor" ); if ( vector & AFF2_DIVINE_RAGE ) strcat( buf, " divine_rage" ); if ( vector & AFF2_DIVINE_SPIRIT ) strcat( buf, " divine_spirit" ); if ( vector & AFF2_DIVINE_VALOR ) strcat( buf, " divine_valor" );[/code] [b]const.c[/b] [code]"divine favor", { 31, 31, 31, 31 }, { 10, 10, 10, 10}, spell_divine_favor, TAR_CHAR_DEFENSIVE, POS_STANDING, NULL, SLOT(100), 100, 4, "", "The radiant white aura surrounding you fades.", "" }, { "divine rage", { 31, 31, 31, 31 }, { 10, 10, 10, 10}, spell_divine_rage, TAR_CHAR_DEFENSIVE, POS_STANDING, NULL, SLOT(101), 100, 4, "", "The fiery red aura surrounding you fades.", "" }, { "divine spirit", { 31, 31, 31, 31 }, { 10, 10, 10, 10}, spell_divine_spirit, TAR_CHAR_DEFENSIVE, POS_STANDING, NULL, SLOT(102), 100, 4, "", "The pulsing blue aura surrounding you fades.", "" }, { "divine valor", { 31, 31, 31, 31 }, { 10, 10, 10, 10}, spell_divine_valor, TAR_CHAR_DEFENSIVE, POS_STANDING, NULL, SLOT(103), 100, 4, "", "The powerful gold aura surrounding you fades.", "" },[/code] [b]act_obj2.c (immediately after the check for pneuma boost)[/b] [code]else if ((IS_AFFECTED2(ch, AFF2_DIVINE_SPIRIT)) && (boost_table[BOOST_PNEUMA].boost == 100)) //Boost for divine spirit. { send_to_char("{WThe gods smile upon you and double your pneuma! {x\n\r", ch); ch->pneuma += (i * 2); }[/code] [b]fight.c (immediately after the check for damage boost)[/b] [code]// Damage boost for divine rage. if ((IS_AFFECTED2(ch, AFF2_DIVINE_RAGE)) && (boost_table[BOOST_DAMAGE].boost == 100) && (IS_NPC(victim))) dam = (dam * 2);[/code] [b]fight.c (immediately after the check for exp boost)[/b] [code]if (IS_AFFECTED2(ch, AFF2_DIVINE_FAVOR)) { if (boost_table[BOOST_EXPERIENCE].boost != 100 || boost_table[BOOST_RECKONING].boost != 100) { sprintf(buf, "The favor of the gods cannot boost your experience any higher. \n\r"); send_to_char(buf, gch); } else { sprintf(buf, "{WThe favor of the gods doubles your experience! {x\n\r"); send_to_char(buf, gch); xp = (xp * 2); } }[/code] [b]quest.c (once again, after the check for qp boost)[/b] [code]// Boost for divine valor. if ((IS_AFFECTED2(ch, AFF2_DIVINE_VALOR)) && (boost_table[BOOST_QP].boost == 100)) { pointreward = (pointreward * 2); } sprintf(buf, "As a reward, I am giving you %d quest points and %d silver.", pointreward, reward); do_say(mob,buf); // Only display "QUEST POINTS boost!" if a qp boost is active -- Areo if(boost_table[BOOST_QP].boost != 100) send_to_char("{WQUEST POINTS boost!{x\n\r", ch); // Echo for divine valor. if ((IS_AFFECTED2(ch, AFF2_DIVINE_VALOR)) && (boost_table[BOOST_QP].boost == 100)) send_to_char("{WThe gods smile upon you and double your quest points! {x\n\r", ch);[/code] -
RE: Aggressive mobs do not attack.The problem seems to be related to mobs using conventional attack commands. For anyone that can use switch, try switching to an npc and attacking something. You can't.posted in Bug Reports
-
Scrolls, Potions, Wands, Staves, etcposted in Bug Reports
These are all totally fucked up. In oedit they either don't have all the v#'s they should or they have none at all (ie potions should have v0 - v4, in oedit they have none of them). Setting these values sometimes works correctly, in other cases it doesn't. For instance setting the number of charges on a wand seems to work right, but the spell level and spell name do not save correctly. Many, many of these objects are not working correctly in the game, and with oedit also malfunctioning they can't be repaired. -
RE: Eq BalancingI made a small quest designed for players level 10 - 60 to fill a bit of the hole left by the absence of those haste items. There is an apprentice mage named Emath, the sensitive type, who has spent a lot of time lately searching for the perfect familiar. He loves every animal so much though that he can't make up his mind and pick one, so he brings five of them back to Olaria. Upon arriving he promptly dumps over the cart carrying the animal cages and they all escape. The quest, predictably, is to track them down and bring them back. Violence is discouraged throughout the quest, attacking any of the familiars or Emath will earn you the cold shoulder. Right now the quest is about 95% done, just a few odds and ends to tie up and a bugfix or two to make. The reward for each of the 5 familiars is object 6900, a level 10 potion with level 30 haste and a 25% chance of spawning with level 30 sanctuary also. I intend to make the reward for successfully returning all 5 familiars a potion of double experience, still in development. The quest can be completed once per reboot per player, but the double exp potion can only be acquired once during the lifetime of the character. I'll probably restrict the double exp potion to players of at least level 20, maybe level 30, to keep it from being farmed. Check out mobs 6900 - 6905, tokens 6900 - 6902, and mprogs 6900 - 6907 to look it over. Suggestions welcome.posted in Immortal Projects
-
Event Queue Snippetposted in Coding Discussion
You know you want it.
[url]http://www.mudmagic.com/codes/server-snippet/1558[/url]
[url]http://www.mudmagic.com/codes/server-snippet/1558/board/663/693 [/url] -
Grouped Mobsposted in Bug Reports
[b]Reported by:[/b] Me
[b]Flags:[/b] Immortal Annoyance
Mobs in your group, at least those caused to follow and group with you by a prog, still wander around as if free. -
Whisperposted in Bug Reports
[b]Reported by:[/b] Me
[b]Flags:[/b] Immortal Annoyance
In scripts whisper doesn't work with a $q (remembered) target. Verified with mobs, unknown with objects or rooms.