//* This does all the actions connected to Rule Tokens for oPlayer. void RuleCheck(object oPlayer); //* This checks what, if any, Rule Token we have. int IsRuleItem(object oItem); //* This creates the right ammount of Rule Tokens and sets the Campaign Integer to right value. void DoRuleCheck(int nNumber, string sRule, object oPlayer, string sRuleToken); void RuleCheck(object oPlayer) { int nNumber1 = 0, nNumber2 = 0, nNumber3 = 0, nNumber4 = 0, nNumber5 = 0, nNumber6 = 0; int nNumber7 = 0, nNumber8 = 0, nNumber9 = 0, nNumber10 = 0; int nRule, nStack; object oItem = GetFirstItemInInventory(oPlayer); while(GetIsObjectValid(oItem)) { nRule = IsRuleItem(oItem); if(nRule) { nStack = GetItemStackSize(oItem); if(nRule == 1){nNumber1 = nNumber1 + nStack;} else if(nRule == 2){nNumber2 = nNumber2 + nStack;} else if(nRule == 3){nNumber3 = nNumber3 + nStack;} else if(nRule == 4){nNumber4 = nNumber4 + nStack;} else if(nRule == 5){nNumber5 = nNumber5 + nStack;} else if(nRule == 6){nNumber6 = nNumber6 + nStack;} else if(nRule == 7){nNumber7 = nNumber7 + nStack;} else if(nRule == 8){nNumber8 = nNumber8 + nStack;} else if(nRule == 9){nNumber9 = nNumber9 + nStack;} else if(nRule == 10){nNumber10 = nNumber10 + nStack;} } oItem = GetNextItemInInventory(oPlayer); } DoRuleCheck(nNumber1, "BR_RULE1", oPlayer, "bb_rules_cheat"); DoRuleCheck(nNumber2, "BR_RULE2", oPlayer, "bb_rules_disarm"); DoRuleCheck(nNumber3, "BR_RULE3", oPlayer, "bb_rules_farming"); DoRuleCheck(nNumber4, "BR_RULE4", oPlayer, "bb_rules_kilspaw"); DoRuleCheck(nNumber5, "BR_RULE5", oPlayer, "bb_rules_maldisp"); DoRuleCheck(nNumber6, "BR_RULE6", oPlayer, "bb_rules_grief"); DoRuleCheck(nNumber7, "BR_RULE7", oPlayer, "bb_rules_pickp"); DoRuleCheck(nNumber8, "BR_RULE8", oPlayer, "bb_rules_swear"); DoRuleCheck(nNumber9, "BR_RULE9", oPlayer, "bb_rules_spetown"); DoRuleCheck(nNumber10, "BR_RULE10", oPlayer, "bb_rules_monweak"); } int IsRuleItem(object oItem) { string sTag = GetTag(oItem); if(sTag == "bb_rules_cheat") return 1; else if(sTag == "bb_rules_disarm") return 2; else if(sTag == "bb_rules_farming") return 3; else if(sTag == "bb_rules_kilspaw") return 4; else if(sTag == "bb_rules_maldisp") return 5; else if(sTag == "bb_rules_grief") return 6; else if(sTag == "bb_rules_pickp") return 7; else if(sTag == "bb_rules_swear") return 8; else if(sTag == "bb_rules_spetown") return 9; else if(sTag == "bb_rules_monweak") return 10; else return FALSE; } void DoRuleCheck(int nNumber, string sRule, object oPlayer, string sRuleToken) { int nOld; int nDifrence; string sPlayer = GetPCPlayerName(oPlayer); sRule = sRule + "_" + sPlayer; if(nNumber != 0) { nOld = GetCampaignInt("LOD-HOTU", sRule); if(nNumber > nOld) SetCampaignInt("LOD-HOTU", sRule, nNumber); else if(nOld > nNumber) { nDifrence = nOld - nNumber; CreateItemOnObject(sRuleToken, oPlayer, nDifrence); } } else { nOld = GetCampaignInt("LOD-HOTU", sRule); if(nOld > nNumber) CreateItemOnObject(sRuleToken, oPlayer, nOld); } }