Hay ! Well here comes my Specproc thingy with the Mage i have been talking about i need a little more help and then i am done with it ! :) I will then post the final version to you fellas that is a worse coder than i am . (wonder if there are any in the circle list that is worse than me :) ) SPECIAL(yarrash) /* Magikern i ett torn nanstans i 16 Zonen */ /* Coded By The Main Man .. ZORDAG .. */ { struct char_data *vict, *tmp_ch; struct char_data *mob = NULL; static int count = 0; ACMD(do_say); ~~~~~CUT if (GET_HIT(ch) <50 && count <1) { act("\r\n\r\n\r\n\r\n", FALSE, ch, 0, 0, TO_ROOM); do_say(ch, "YOU WILL NOT GET ME ALIVE !!!", 0, 0); act("\r\n$n swings his arms in a wierd gesture.", FALSE, ch, 0, 0, TO_ROOM); act("The room is filled with a blue streaking light.", FALSE, ch, 0, 0, TO_ROOM); act("Suddenly you see a hideous creature.\r\n", FALSE, ch, 0, 0, TO_ROOM); act("The Creature rescues Yarrash and starts to fight YOU", FALSE, ch, 0, 0, TO_ROOM); mob = read_mobile(1608, VIRTUAL); /* Insert the Stone Golem Here*/ log("Loading Mob At Yarrash"); char_to_room(mob, ch->in_room); SET_BIT(AFF_FLAGS(mob), AFF_PROT_FIRE); /* give em some AFFs */ SET_BIT(AFF_FLAGS(mob), AFF_SANCTUARY); for (tmp_ch = world[ch->in_room].people; tmp_ch && (FIGHTING(tmp_ch) != vict); tmp_ch = tmp_ch->next_in_room); /* This makes the PC,NPC stop fighting */ if (FIGHTING(vict) == tmp_ch) stop_fighting(vict); if (FIGHTING(tmp_ch)) stop_fighting(tmp_ch); if (FIGHTING(ch)) stop_fighting(ch); set_fighting(mob, vict); /* make loaded mob fight victim */ set_fighting(vict, mob); /* make victim fight mob */ set_fighting(ch, vict); /* make character (mage) fight victim */ count = 1; /* counter so the mob wont load again */ } ~~~~~~CUT } Now the Mage (yarrash) loads the mob when his HP is below 50 points and when the counter is <1 My problem right now is, when the players managed to kill the LOADED STONE GOLEM (MOB) and killed the mage (yarrash) i somehow have to RESET the count variable so that the next time the SPECIAL(yarrash) is loaded it will work properly (ie: counter = 0 so it can load the mob again) as the code is now it wount work. (sadly) Also tried to do a thing when the mage is POS_DEAD or POS_MORTALLYW it will set then count = 0; but if the mob (mage) is dead .. naturly the special(yarrash) wount beloaded ... and if i do a get_hit(ch) <10 count =0 it starts loading the mob again ... so that was not an smart idea ... Any suggestions ??? Also wonders how i freeze all the players and the mob in a special room at the same time i have tried with those WAIT_STATE(ch,PULSE_VIOLENCE) WAIT_STATE(vict,PULSE_VIOLENCE) prob is that it first do the ch for the pulse and the after the ch it does it for the vict .. /Uffe +------------------------------------------------------------+ | Ensure that you have read the CircleMUD Mailing List FAQ: | | http://democracy.queensu.ca/~fletcher/Circle/list-faq.html | +------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/08/00 PST