Hi All- I wrote this litte Zap command for a fun way to remind mortals who's in charge. Well, apparently gcc tells me that "victim" might be used uninitialized in the function, which I know is true because of the way it works (not comparing levels correctly, etc). I don't know what's wrong because I've written commands like this many times before and did it nearly identically and never had initialization problems. I thought the struct char_data *victim line took care of that. Anyway here's the code. Any help is appreciated. -Brian ACMD(do_zap) { struct char_data *victim; int zap_points; one_argument(argument, arg); if (!*arg) { send_to_char("Who do you want to zap?\r\n", ch); return; } if (IS_NPC(victim)) { send_to_char("You can't zap a mob!\r\n", ch); return; } if (GET_LEVEL(victim) >= GET_LEVEL(ch)) { send_to_char("Probably not a good idea.\r\n", ch); return; } switch (GET_LEVEL(ch)) { case LVL_IMMORT: zap_points = GET_HIT(victim) / 10; break; case LVL_LDTY: case LVL_QTOR: zap_points = GET_HIT(victim) / 6; break; case LVL_QMST: case LVL_DTY: zap_points = GET_HIT(victim) / 5; break; case LVL_GDTY: zap_points = GET_HIT(victim) / 4; break; case LVL_GOD: zap_points = GET_HIT(victim) / 3; break; case LVL_GRGOD: case LVL_IMPL: zap_points = GET_HIT(victim) / 2; break; default: zap_points = 0; break; } send_to_all("The clouds part and a powerful bolt of lightning arcs from the s$ sprintf(buf, "%s is struck down by the unholy wrath of %s!\r\n", GET_NAME(victim), GET_NAME(ch)); send_to_all(buf); sprintf(buf, "(GC) %s ZAPPED %s for %i damage.", GET_NAME(ch), GET_NAME(victim), zap_points); mudlog(buf, NRM, LVL_HERO, FALSE); GET_HIT(victim) -= zap_points; } +-----------------------------------------------------------+ | Ensure that you have read the CircleMUD Mailing List FAQ: | | http://cspo.queensu.ca/~fletcher/Circle/list_faq.html | +-----------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/18/00 PST