SNIPPET DEL MANA. Este snipptet muestra el mana (o la sangre, si se es vampiro), necesaria para conjurar un hechizo con éxito. Se puede teclear 'mana todo' ( o 'sangre todo') y aparecerá una lista con todos los hechizos de que dispongas (los que puedas ejecutar por nivel y que hayas practicado) indicándote la cantidad mínima de mana que se requiere para ser conjurado. Si además tienes ajustado el ANSI a ON, te aparecerán los que tengas suficiente mana para conjurarlos en ese momento, de color amarillo y los otros de color rojo. También es posible teclear: mana y te mostrará el maná que necesitas para ese en concreto. En MUD.H: -Añade esto: #define MANA UMAX(skill->min_mana,100/(2+ch->level-skill->skill_level[ch->class])) #define BLOOD UMAX(1,(MANA+4)/8) -Busca declaraciones similares a esta y añade: DECLARE_DO_FUN( do_mana ); En TABLES.C: -Busca en las comparaciones similares a estas y añade: if ( !str_cmp( name, "do_mana" )) return do_mana; if ( skill == do_mana ) return "do_mana"; En ACT_INFO.C: Corta y pega todo esto (p.ej. justo antes de 'void do_slist...) /*************************************************************************** * Muestra el mana o sangre (si vampiro) requerido para hacer un conjuro * * Creado por Desden, el Chaman Tibetano - Jun 1999 * * Snippets : http://luisso.net/smaug_snippets.htm * * Email: jose@luisso.net * ***************************************************************************/ void do_mana( CHAR_DATA *ch, char *argument) { SKILLTYPE *skill=NULL; char arg1[MAX_INPUT_LENGTH]; int sn; int col = 0; argument=one_argument(argument, arg1); if (IS_NPC(ch)) { send_to_char("Los mobs no pueden usar este comando.\n\r", ch); return; } if (ch->class==CLASS_WARRIOR) { send_to_char("Los guerreros no usan mana para conjurar.\n\r",ch); return; } if (arg1[0]=='\0') { if(IS_VAMPIRE(ch)) send_to_char("Sintaxis: sangre todo\n\r sangre \n\r",ch); else send_to_char("Sintaxis: mana todo\n\r mana \n\r",ch); return; } if(!strcmp(arg1,"todo")) { set_pager_color(AT_YELLOW,ch); if(IS_VAMPIRE(ch)) send_to_pager(" SANGRE MINIMA PARA CONJURAR\n\r", ch); else send_to_pager(" MANA MINIMO PARA CONJURAR\n\r", ch); send_to_pager(" -------------------------\n\r", ch); for ( sn = 0; sn < top_sn ; sn++ ) { skill=get_skilltype(sn); if(ch->pcdata->learned[sn] < 1 || !skill->name || !skill->min_mana ) continue; if(ch->level>=skill->skill_level[ch->class] ) { if(IS_VAMPIRE(ch)) { if(ch->pcdata->condition[COND_BLOODTHIRST] >= BLOOD) pager_printf_color(ch, "&Y%-12.12s:%4d ", skill->name, BLOOD); else pager_printf_color(ch, "&R%-12.12s:%4d ", skill->name, BLOOD); } else { if(ch->mana >= MANA) pager_printf_color(ch, "&Y%-12.12s:%4d ", skill->name, MANA ); else pager_printf_color(ch, "&R%-12.12s:%4d ", skill->name, MANA ); } if(++col % 4 == 0) pager_printf(ch,"\n\r"); } } pager_printf(ch,"\n\r"); } else { if((sn =skill_lookup( arg1)) > 0) { skill=get_skilltype(sn); if(!skill->min_mana) { ch_printf(ch, "%s, '%s' no necesita puntos de %s.\n\r", ch->name, skill->name, IS_VAMPIRE(ch)?"sangre":"mana"); return; } if(ch->pcdata->learned[sn] < 1) { if ( ch->level < skill->skill_level[ch->class] ) { send_to_char( "No tienes suficiente nivel para conjurar eso.\n\r", ch ); return; } else { send_to_char("Debes practicar un conjuro antes de poder usarlo.\n\r",ch); return; } } pager_printf(ch,"Necesitas %d puntos de %s para conjurar '%s' con exito.\n\r",IS_VAMPIRE(ch)?BLOOD:MANA,IS_VAMPIRE(ch)?"sangre":"mana", skill->name); } else ch_printf(ch, "Eso no es un conjuro o habilidad.\n\r"); } return; } En ../SYSTEM/COMMANDS.DAT: Añade estos 2 nuevos comandos: #COMMAND Name sangre~ Code do_mana Position 100 Level 1 Log 0 End #COMMAND Name mana~ Code do_mana Position 100 Level 1 Log 0 End Ahora solo queda hacer un 'make clean' y un 'make'. Por favor, si utilizas este snippet te agradecería que me enviaras un email diciendome que te parece, si has encontrado algun error, o sugieres algo, etc. Gracias. Desden el Chaman Tibetano - Jun 1999 Email: jose@luisso.net