I got this a while ago, but could never implement it...
If anyone can make it work in OasisOLC let me know what they did... I
think it is a diff file from a non-stock circle.
--- cut here for oedit.diff ---
363a364,371
> for (counter2 = 0; counter2 < MAX_SPELL_AFFECT; counter2++)
> if ((obj->spell_affect[counter].spelltype)!=0)
> fprintf(fp, "S\n"
> "%d %d %d\n",
> obj->spell_affect[counter2].spelltype,
> obj->spell_affect[counter2].level,
> obj->spell_affect[counter2].percentage
> );
446a455,479
> /* Ask for *which* spell to edit */
> void oedit_disp_prompt_spell_menu(struct descriptor_data * d)
> {
> int counter;
>
> get_char_cols(d->character);
> send_to_char("", d->character);
> for (counter = 0; counter < MAX_SPELL_AFFECT; counter++) {
> if (OLC_OBJ(d)->spell_affect[counter].spelltype) {
> sprinttype(OLC_OBJ(d)->spell_affect[counter].spelltype, spells, buf2);
> sprintf(buf, " %s%d%s) %3d%% %s(%d)\r\n",
> grn, counter + 1, nrm,
> OLC_OBJ(d)->spell_affect[counter].percentage, buf2,
> OLC_OBJ(d)->spell_affect[counter].level
> );
> send_to_char(buf, d->character);
> } else {
> sprintf(buf, " %s%d%s) None.\r\n", grn, counter + 1, nrm);
> send_to_char(buf, d->character);
> }
> }
> send_to_char("\r\nEnter spell to modify (0 to quit): ", d->character);
> OLC_MODE(d) = OEDIT_PROMPT_SPELL;
> }
>
763a797
> "%sG%s) Weaponspell menu\r\n"
777c811
< grn, nrm, grn, nrm, grn, nrm
---
> grn, nrm, grn, nrm, grn, nrm, grn, nrm
790a825
> extern char *spelllist;
903a939,942
> case 'g':
> case 'G':
> oedit_disp_prompt_spell_menu(d);
> break;
1138a1178,1227
> case OEDIT_PROMPT_SPELL:
> number = atoi(arg);
> if (number == 0)
> break;
> else if (number < 0 || number > MAX_SPELL_AFFECT)
> { oedit_disp_prompt_spell_menu(d);
> return;
> }
> OLC_VAL(d) = number - 1;
> send_to_char("Spell num ('list' for list): ", d->character);
> OLC_MODE(d) = OEDIT_SPELL;
> return;
>
> case OEDIT_SPELL:
> if (!strcmp(arg,"list"))
> {
> send_to_char(spelllist, d->character);
> send_to_char("Spell num ('list' for list): ", d->character);
> return;
> }
> number = atoi(arg);
> if (number == 0)
> { OLC_OBJ(d)->spell_affect[OLC_VAL(d)].spelltype = 0;
> OLC_OBJ(d)->spell_affect[OLC_VAL(d)].level = 0;
> OLC_OBJ(d)->spell_affect[OLC_VAL(d)].percentage = 0;
> OLC_MODE(d) = OEDIT_PROMPT_SPELL;
> oedit_disp_prompt_spell_menu(d);
> } else if (number < 0 || number > MAX_SPELLS)
> send_to_char("Spell num ('list' for list): ", d->character);
> else
> { OLC_OBJ(d)->spell_affect[OLC_VAL(d)].spelltype = number;
> send_to_char("Spell Level: ", d->character);
> OLC_MODE(d) = OEDIT_SPELL_LEVEL;
> }
> return;
>
> case OEDIT_SPELL_LEVEL:
> number = atoi(arg);
> OLC_OBJ(d)->spell_affect[OLC_VAL(d)].level = number;
> send_to_char("Spell Probability: ", d->character);
> OLC_MODE(d) = OEDIT_SPELL_CHANCE;
> return;
>
> case OEDIT_SPELL_CHANCE:
> number = atoi(arg);
> OLC_OBJ(d)->spell_affect[OLC_VAL(d)].percentage = number;
> OLC_MODE(d) = OEDIT_PROMPT_SPELL;
> oedit_disp_prompt_spell_menu(d);
> return;
>
--- end of oedit.diff ---
---------------------------------------------------------------------------
Eduardo Gutierrez de Oliveira eduo@sparc.ciateq.conacyt.mx
Administrador de Internet Internet Administrator
Proveedor de Servicio Internet Internet Service Provider
CIATEQ, A.C.
Centro de Investigacion y Asistencia Tecnica del Estado de Queretaro, A.C.
http://sparc.ciateq.conacyt.mx/
---------------------------------------------------------------------------
This archive was generated by hypermail 2b30 : 12/07/00 PST