On Sun, 19 Jan 1997, DJ Pure wrote:
> Question 3.
> I have this if statement in my code.
> The following variables (with their current values) are this [taken from
> printf AND the MSVC *watch* command]
>
> GET_CLASS(ch) returns the number 9.
> #define CLASS_CONJURER 9
>
> // First check to see that they can scroll spells.
> if ( (GET_CLASS(ch) != CLASS_CONJURER) ||
> (GET_CLASS(ch) != CLASS_INVOKER) ||
> (GET_CLASS(ch) != CLASS_ILLUSIONIST) ||
> (GET_CLASS(ch) !=CLASS_NECROMANCER) ||
> (GET_CLASS(ch) != CLASS_SORCERER)) {
> // Not a valid class to scroll, so leave please.
> send_to_char ("Only those with the ability to cast arcane spells can
> scribe scrolls.\n", ch);
> return;
> }
> Now this statement goes INSIDE this if statement, which it shouldn't as i
> told it to only go inside if it DOESN'T equal one of the classes. Why is it
> going inside ??? I've gone over it SO many times .. it shouldn't be going
> inside. Those are simple logical OR i have used, right?
>
> Thanks to all those who give some advice. All flames go into recyling.
> Jussy.
My knowledge of C is limited at best, but if you want it so Conjurers,
Invokers, Necromancers, Illusionists, Sorcerers to be able to scribe
scrolls, shouldn't it be a logical AND, ie if !conjurer && !invoker &&
!necromancer etc then they can't do it... the Logical OR will always be
true because the character doesn't have all those classes..
but like I said, my knowledge of C is poor so I may be wrong.
Regards,
James Stephens
Senior System Administrator Anarch@SNNI.COM
Southwest Nineteen Networks 714-991-1919 ext 310
+-----------------------------------------------------------+
| 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