int GetItemlevel(object oCreature) { int iCheck1; int iCheck2; int iCheck3; int iRndCheck; int iLevel; float fCR; iLevel = 0; fCR = GetChallengeRating(oCreature); iCheck1 = FloatToInt(fCR/2); iCheck2 = iCheck1+ FloatToInt(fCR); iCheck3 = iCheck2 + FloatToInt(fCR * 2); iRndCheck = Random(100); if (iRndCheck < iCheck1) { if (fCR < 10.0) { iLevel = 2; } else { iLevel = 3; } } if (iRndCheck >= iCheck1 && iRndCheck < iCheck2) { if (fCR < 10.0) { iLevel = 1; } else { iLevel = 2; } } if (iRndCheck >= iCheck2 && iRndCheck < iCheck3) { if (fCR < 10.0) { iLevel = 0; } else { iLevel = 1; } } if (iRndCheck >= iCheck3) { iLevel = 0; } if (iLevel == 3) { if (Random(5)==0) iLevel = 4; } return iLevel; } string GetShield(object oCreature) { int iItem; int iItemLevel; string sItemTag; iItemLevel = GetItemlevel(oCreature); if (iItemLevel>0) { switch (iItemLevel) { case 1 : sItemTag = "NW_ASHMSW002"; break; case 2 : sItemTag = "NW_ASHMLW008"; break; case 3 : sItemTag = "NW_ASHMTO009"; break; case 4 : sItemTag = "NW_ASHMTO007"; break; } } else { iItem = Random(3); switch (iItem) { case 0 : sItemTag = "NW_ASHSW001"; break; // - small case 1 : sItemTag = "NW_ASHLW001"; break; // - large case 2 : sItemTag = "NW_ASHTO001"; break; // - tower } } return sItemTag; } void WeapRogue(object oCreature) { int iItem; string sItemTag; string sAmmoTag; object oItem; object oOldItem; iItem = Random(6); switch (iItem) { case 0 : sItemTag = "NW_WSWLS001"; break; // - LongSword case 1 : sItemTag = "NW_WSWSS001"; break; // - ShortSword case 2 : sItemTag = "NW_WSWDG001"; break; // - Dagger case 3 : sItemTag = "NW_WSWRP001"; break; // - Rapier case 4 : sItemTag = "NW_WBWSL001"; sAmmoTag = "NW_WAMBU001"; CreateItemOnObject(sAmmoTag,oCreature,99); break; // - Sling case 5 : sItemTag = "NW_WBWSH001"; sAmmoTag = "NW_WAMAR001"; CreateItemOnObject(sAmmoTag,oCreature,99); break; // - SBow } oOldItem = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND,oCreature); AssignCommand(oCreature,ActionUnequipItem(oOldItem)); DestroyObject(oOldItem); oItem=CreateItemOnObject(sItemTag,oCreature,1); AssignCommand(oCreature, ActionEquipItem(oItem, INVENTORY_SLOT_RIGHTHAND)); } void WeapMage(object oCreature) { int iItem; string sItemTag; string sAmmoTag; object oItem; object oOldItem; iItem = Random(2); switch (iItem) { case 0 : sItemTag = "NW_WSWDG001"; break; // - LongSword case 1 : sItemTag = "NW_WDBQS001"; break; // - ShortSword } oOldItem = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND,oCreature); AssignCommand(oCreature,ActionUnequipItem(oOldItem)); DestroyObject(oOldItem); oItem=CreateItemOnObject(sItemTag,oCreature,1); AssignCommand(oCreature, ActionEquipItem(oItem, INVENTORY_SLOT_RIGHTHAND)); } void WeapCleric(object oCreature) { int iItem; string sItemTag; string sAmmoTag; object oItem; object oOldItem; iItem = Random(3); switch (iItem) { case 0 : sItemTag = "NW_WBLHW001"; break; case 1 : sItemTag = "NW_WBLML001"; break; case 2 : sItemTag = "NW_WBLFH001"; break; } oOldItem = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND,oCreature); AssignCommand(oCreature,ActionUnequipItem(oOldItem)); DestroyObject(oOldItem); oItem=CreateItemOnObject(sItemTag,oCreature,1); AssignCommand(oCreature, ActionEquipItem(oItem, INVENTORY_SLOT_RIGHTHAND)); sItemTag = GetShield(oCreature); oItem=CreateItemOnObject(sItemTag,oCreature,1); AssignCommand(oCreature, ActionEquipItem(oItem, INVENTORY_SLOT_LEFTHAND)); } string WeapOneHand() { int iItem; string sItemTag; iItem = Random(11); switch (iItem) { case 0 : sItemTag = "NW_WSWLS001"; break; // - LongSword case 1 : sItemTag = "NW_WSWSS001"; break; // - ShortSword case 2 : sItemTag = "NW_WSWDG001"; break; // - Dagger case 3 : sItemTag = "NW_WSWRP001"; break; // - Rapier case 4 : sItemTag = "NW_WSWSC001"; break; // - Scimitaur case 5 : sItemTag = "NW_WAXHN001"; break; // - 1HAx case 6 : sItemTag = "NW_WBLFH001"; break; // - HvyFlail case 7 : sItemTag = "NW_WBLHW001"; break; // - Warhammer case 8 : sItemTag = "NW_WBLML001"; break; // - Mace case 9 : sItemTag = "NW_WBLMS001"; break; // - Morningstar case 10 : sItemTag = "NW_WSPSC001"; break; // - Sickle } return sItemTag; } string WeapOneHandPlusOne() { int iItem; string sItemTag; iItem = Random(5); switch (iItem) { case 0 : sItemTag = "NW_WSWMLS002"; break; // - LongSword case 1 : sItemTag = "NW_WSWMSS002"; break; // - ShortSword case 2 : sItemTag = "NW_WSWMRP002"; break; // - Other case 3 : sItemTag = "NW_WAXMHN002"; break; // - Ax case 4 : sItemTag = "NW_WBLMFL002"; break; // - Blunt } return sItemTag; } string WeapOneHandPlusTwo() { int iItem; string sItemTag; iItem = Random(6); switch (iItem) { case 0 : sItemTag = "NW_WSWMLS010"; break; // - LongSword case 1 : sItemTag = "NW_WSWMSS009"; break; // - ShortSword case 2 : sItemTag = "NW_WSWMSC010"; break; // - Other case 3 : sItemTag = "NW_WAXMHN010"; break; // - Ax case 4 : sItemTag = "NW_WBLMHW011"; break; // - Blunt case 5 : sItemTag = "NW_WBLMML011"; break; // - Blunt } return sItemTag; } string WeapOneHandPlusThree() { int iItem; string sItemTag; iItem = Random(5); switch (iItem) { case 0 : sItemTag = "NW_WSWMLS012"; break; // - LongSword case 1 : sItemTag = "NW_WSWMSS011"; break; // - ShortSword case 2 : sItemTag = "NW_WSWMKA011"; break; // - Other case 3 : sItemTag = "NW_WAXMHN011"; break; // - Ax case 4 : sItemTag = "NW_WBLMMS011"; break; // - Blunt } return sItemTag; } string WeapOneHandElite() { int iItem; string sItemTag; iItem = Random(8); switch (iItem) { case 0 : sItemTag = "NW_WBLMML009"; break; case 1 : sItemTag = "NW_WBLMMS004"; break; case 2 : sItemTag = "NW_WAXMHN009"; break; case 3 : sItemTag = "NW_WSWMLS009"; break; case 4 : sItemTag = "NW_WSWMDG004"; break; case 5 : sItemTag = "NW_WSWMBS004"; break; case 6 : sItemTag = "NW_WSWMSS008"; break; case 7 : sItemTag = "NW_WSWMRP005"; break; } return sItemTag; } string WeapTwoHand() { int iItem; string sItemTag; iItem = Random(6); switch (iItem) { case 0 : sItemTag = "NW_WAXBT001"; break; // - 2H BAx case 1 : sItemTag = "NW_WAXGR001"; break; // - GreatAx case 2 : sItemTag = "NW_WSWGS001"; break; // - GreatSwrd case 3 : sItemTag = "NW_WPLSS001"; break; // - Spear case 4 : sItemTag = "NW_WPLHB001"; break; // - Halberd case 5 : sItemTag = "NW_WDBQS001"; break; // - Quarterstaff } return sItemTag; } string WeapTwoHandPlusOne() { int iItem; string sItemTag; iItem = Random(5); switch (iItem) { case 0 : sItemTag = "NW_WAXMBT002"; break; // - 2H BAx case 1 : sItemTag = "NW_WAXMGR002"; break; // - GreatAx case 2 : sItemTag = "NW_WSWMGS002"; break; // - GreatSwrd case 3 : sItemTag = "NW_WPLMSS002"; break; // - Spear case 4 : sItemTag = "NW_WPLMHB002"; break; // - Halberd } return sItemTag; } string WeapTwoHandPlusTwo() { int iItem; string sItemTag; iItem = Random(5); switch (iItem) { case 0 : sItemTag = "NW_WAXMBT010"; break; // - 2H BAx case 1 : sItemTag = "NW_WAXMGR009"; break; // - GreatAx case 2 : sItemTag = "NW_WSWMGS011"; break; // - GreatSwrd case 3 : sItemTag = "NW_WPLMSS010"; break; // - Spear case 4 : sItemTag = "NW_WPLMHB010"; break; // - Halberd } return sItemTag; } string WeapTwoHandPlusThree() { int iItem; string sItemTag; iItem = Random(5); switch (iItem) { case 0 : sItemTag = "NW_WAXMBT011"; break; // - 2H BAx case 1 : sItemTag = "NW_WAXMGR011"; break; // - GreatAx case 2 : sItemTag = "NW_WSWMGS012"; break; // - GreatSwrd case 3 : sItemTag = "NW_WPLMSS011"; break; // - Spear case 4 : sItemTag = "NW_WPLMHB011"; break; // - Halberd } return sItemTag; } string WeapTwoHandElite() { int iItem; string sItemTag; iItem = Random(6); switch (iItem) { case 0 : sItemTag = "NW_IT_NOVEL009"; break; case 1 : sItemTag = "NW_WSWMGS009"; break; case 2 : sItemTag = "NW_WAXMGR005"; break; case 3 : sItemTag = "NW_WAXMBT003"; break; case 4 : sItemTag = "NW_WPLMSS007"; break; case 5 : sItemTag = "NW_WPLMSC006"; break; } return sItemTag; } string WeapRange(object oCreature) { int iItem; string sItemTag; string sAmmoTag; iItem = Random(4); switch (iItem) { case 0 : sItemTag = "NW_WBWSL001"; sAmmoTag = "NW_WAMBU001"; CreateItemOnObject(sAmmoTag,oCreature,99); break; // - Sling case 1 : sItemTag = "NW_WBWSH001"; sAmmoTag = "NW_WAMAR001"; CreateItemOnObject(sAmmoTag,oCreature,99); break; // - SBow case 2 : sItemTag = "NW_WBWLN001"; sAmmoTag = "NW_WAMAR001"; CreateItemOnObject(sAmmoTag,oCreature,99); break; // - LBow case 3 : sItemTag = "NW_WBWXH001"; sAmmoTag = "NW_WAMBO001"; CreateItemOnObject(sAmmoTag,oCreature,99); break; // - XBow } return sItemTag; } string WeapRangePlusOne(object oCreature) { int iItem; string sItemTag; string sAmmoTag; iItem = Random(3); switch (iItem) { case 0 : sItemTag = "NW_WBWMSL001"; sAmmoTag = "NW_WAMMBU004"; CreateItemOnObject(sAmmoTag,oCreature,99); break; // - Sling case 1 : sItemTag = "NW_WBWMLN002"; sAmmoTag = "NW_WAMMAR005"; CreateItemOnObject(sAmmoTag,oCreature,99); break; // - LBow case 2 : sItemTag = "NW_WBWMXH002"; sAmmoTag = "NW_WAMMAR005"; CreateItemOnObject(sAmmoTag,oCreature,99); break; // - XBow } return sItemTag; } string WeapRangePlusTwo(object oCreature) { int iItem; string sItemTag; string sAmmoTag; iItem = Random(3); switch (iItem) { case 0 : sItemTag = "NW_WBWMSL009"; sAmmoTag = "NW_WAMMBU004"; CreateItemOnObject(sAmmoTag,oCreature,99); break; // - Sling case 1 : sItemTag = "NW_WBWMSH008"; sAmmoTag = "NW_WAMMAR006"; CreateItemOnObject(sAmmoTag,oCreature,99); break; // - LBow case 2 : sItemTag = "NW_WBWMXL008"; sAmmoTag = "NW_WAMMBO002"; CreateItemOnObject(sAmmoTag,oCreature,99); break; // - XBow } return sItemTag; } string WeapRangePlusThree(object oCreature) { int iItem; string sItemTag; string sAmmoTag; iItem = Random(3); switch (iItem) { case 0 : sItemTag = "NW_WBWMSL010"; sAmmoTag = "NW_WAMMBU004"; CreateItemOnObject(sAmmoTag,oCreature,99); break; // - Sling case 1 : sItemTag = "NW_WBWMLN009"; sAmmoTag = "NW_WAMMAR002"; CreateItemOnObject(sAmmoTag,oCreature,99); break; // - LBow case 2 : sItemTag = "NW_WBWMXH009"; sAmmoTag = "NW_WAMMAR005"; CreateItemOnObject(sAmmoTag,oCreature,99); break; // - XBow } return sItemTag; } void EquipMonster(object oCreature) { int iItemType; int iItemLevel; string sItemTag; object oItem; object oOldItem; iItemType = Random(5) + 1; //iItemType = 1 will pass through code without equipping if (iItemType == 2) // 1-H Weapon { iItemLevel = GetItemlevel(oCreature); switch (iItemLevel) { case 0 : sItemTag = WeapOneHand(); break; case 1 : sItemTag = WeapOneHandPlusOne(); break; case 2 : sItemTag = WeapOneHandPlusTwo(); break; case 3 : sItemTag = WeapOneHandPlusThree(); break; case 4 : sItemTag = WeapOneHandElite(); break; } oOldItem = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND,oCreature); AssignCommand(oCreature,ActionUnequipItem(oOldItem)); DestroyObject(oOldItem); oItem=CreateItemOnObject(sItemTag,oCreature,1); AssignCommand(oCreature, ActionEquipItem(oItem, INVENTORY_SLOT_RIGHTHAND)); } if (iItemType == 3) // 1-H Weapon + Shield { iItemLevel = GetItemlevel(oCreature); switch (iItemLevel) { case 0 : sItemTag = WeapOneHand(); break; case 1 : sItemTag = WeapOneHandPlusOne(); break; case 2 : sItemTag = WeapOneHandPlusTwo(); break; case 3 : sItemTag = WeapOneHandPlusThree(); break; case 4 : sItemTag = WeapOneHandElite(); break; } oOldItem = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND,oCreature); AssignCommand(oCreature,ActionUnequipItem(oOldItem)); DestroyObject(oOldItem); oItem=CreateItemOnObject(sItemTag,oCreature,1); AssignCommand(oCreature, ActionEquipItem(oItem, INVENTORY_SLOT_RIGHTHAND)); sItemTag = GetShield(oCreature); oItem=CreateItemOnObject(sItemTag,oCreature,1); AssignCommand(oCreature, ActionEquipItem(oItem, INVENTORY_SLOT_LEFTHAND)); } if (iItemType == 4) // 2-H Weapon { iItemLevel = GetItemlevel(oCreature); switch (iItemLevel) { case 0 : sItemTag = WeapTwoHand(); break; case 1 : sItemTag = WeapTwoHandPlusOne(); break; case 2 : sItemTag = WeapTwoHandPlusTwo(); break; case 3 : sItemTag = WeapTwoHandPlusThree(); break; case 4 : sItemTag = WeapTwoHandElite(); break; } oOldItem = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND,oCreature); AssignCommand(oCreature,ActionUnequipItem(oOldItem)); DestroyObject(oOldItem); oItem=CreateItemOnObject(sItemTag,oCreature,1); AssignCommand(oCreature, ActionEquipItem(oItem, INVENTORY_SLOT_RIGHTHAND)); } if (iItemType == 5) // Range { iItemLevel = GetItemlevel(oCreature); switch (iItemLevel) { case 0 : sItemTag = WeapRange(oCreature); break; case 1 : sItemTag = WeapRangePlusOne(oCreature); break; case 2 : sItemTag = WeapRangePlusTwo(oCreature); break; case 3 : sItemTag = WeapRangePlusThree(oCreature); break; case 4 : sItemTag = WeapRangePlusThree(oCreature); break; } oOldItem = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND,oCreature); AssignCommand(oCreature,ActionUnequipItem(oOldItem)); oItem=CreateItemOnObject(sItemTag,oCreature,1); AssignCommand(oCreature, ActionEquipItem(oItem, INVENTORY_SLOT_RIGHTHAND)); // sItemTag = WeapOneHand(); // oItem=CreateItemOnObject(sItemTag,oCreature,1); } } void EquipMonsterCheck(object oCreature) { int iFlag; string sTag; iFlag = 0; sTag = GetTag(oCreature); //Auto Equip if (sTag == "NW_GOBLINA") iFlag = 1; if (sTag == "NW_GOBCHIEFA") iFlag = 1; if (sTag == "NW_GOBCHIEFB") iFlag = 1; if (sTag == "NW_ORCA") iFlag = 1; if (sTag == "NW_OrcChiefA") iFlag = 1; if (sTag == "NW_ORCCHIEFB") iFlag = 1; if (sTag == "NW_SKELETON") iFlag = 1; if (sTag == "NW_SKELCHIEF") iFlag = 1; if (sTag == "NW_SKELWARR01") iFlag = 1; if (sTag == "NW_SKELWARR02") iFlag = 1; if (sTag == "NW_BANDIT001") iFlag = 1; if (sTag == "NW_TIEFLING02") iFlag = 1; if (sTag == "NW_BUGBEARA") iFlag = 1; if (sTag == "NW_OLDWARRA") iFlag = 1; if (sTag == "NW_OLDCHIEFA") iFlag = 1; if (sTag == "NW_MINOTAUR") iFlag = 1; if (sTag == "NW_MINOTAURBOSS") iFlag = 1; if (sTag == "NW_VAMPIRE") iFlag = 1; if (sTag == "NW_MinChief") iFlag = 1; if (sTag == "NW_MUMFIGHT") iFlag = 1; if (sTag == "NW_HALFFND001") iFlag = 1; if (sTag == "NW_DROWFIGHT001") iFlag = 1; if (sTag == "NW_DUEFIGHT001") iFlag = 1; if (sTag == "NW_DROWFIGHT005") iFlag = 1; if (sTag == "NW_DUEFIGHT005") iFlag = 1; if (sTag == "NW_DROWFIGHT010") iFlag = 1; if (sTag == "NW_DUEFIGHT010") iFlag = 1; if (sTag == "NW_DROWFIGHT015") iFlag = 1; if (sTag == "NW_DUEFIGHT015") iFlag = 1; if (sTag == "NW_DROWFIGHT020") iFlag = 1; if (sTag == "NW_DUEFIGHT020") iFlag = 1; if (sTag == "NW_CURST001") iFlag = 1; if (sTag == "NW_VAMPIRE001") iFlag = 1; //Half Equip if (sTag == "NW_GOBLINB") if (Random(2) == 0) iFlag = 1; if (sTag == "NW_ORCB") if (Random(2) == 0) iFlag = 1; if (sTag == "NW_BUGBEARB") if (Random(2) == 0) iFlag = 1; if (sTag == "NW_OLDWARRB") if (Random(2) == 0) iFlag = 1; if (sTag == "NW_BANDIT006") if (Random(2) == 0) iFlag = 1; if (sTag == "NW_ZOMBIE01") if (Random(2) == 0) iFlag = 1; if (sTag == "NW_ZOMBIE02") if (Random(2) == 0) iFlag = 1; if (sTag == "NW_ZOMBWARR01") if (Random(2) == 0) iFlag = 1; if (sTag == "NW_ZOMBWARR02") if (Random(2) == 0) iFlag = 1; if (sTag == "NW_OLDWARB") if (Random(2) == 0) iFlag = 1; if (sTag == "NW_MUMMY") if (Random(2) == 0) iFlag = 1; if (sTag == "NW_MUMMYBOSS") if (Random(2) == 0) iFlag = 1; if (sTag == "NW_BODAK") if (Random(2) == 0) iFlag = 1; if (sTag == "NW_GNTHILL") if (Random(2) == 0) iFlag = 1; if (sTag == "NW_GNTMOUNT") if (Random(2) == 0) iFlag = 1; //Rogue Equip if (sTag == "NW_CURST002") { if (Random(2) == 0) WeapRogue(oCreature); } if (sTag == "NW_VAMPIRE002") { if (Random(2) == 0) WeapRogue(oCreature); } if (sTag == "NW_DROWROGUE001") { if (Random(2) == 0) WeapRogue(oCreature); } if (sTag == "NW_DUEROGUE001") { if (Random(2) == 0) WeapRogue(oCreature); } if (sTag == "NW_DROWROGUE005") { if (Random(2) == 0) WeapRogue(oCreature); } if (sTag == "NW_DUEROGUE005") { if (Random(2) == 0) WeapRogue(oCreature); } if (sTag == "NW_DROWROGUE010") { if (Random(2) == 0) WeapRogue(oCreature); } if (sTag == "NW_DUEROGUE010") { if (Random(2) == 0) WeapRogue(oCreature); } if (sTag == "NW_DROWROGUE015") { if (Random(2) == 0) WeapRogue(oCreature); } if (sTag == "NW_DUEROGUE015") { if (Random(2) == 0) WeapRogue(oCreature); } if (sTag == "NW_DROWROGUE020") { if (Random(2) == 0) WeapRogue(oCreature); } if (sTag == "NW_DUEROGUE020") { if (Random(2) == 0) WeapRogue(oCreature); } if (sTag == "NW_DROWCLER001") WeapCleric(oCreature); if (sTag == "NW_DUECLER001") WeapCleric(oCreature); if (sTag == "NW_DROWCLER005") WeapCleric(oCreature); if (sTag == "NW_DUECLER005") WeapCleric(oCreature); if (sTag == "NW_DROWCLER010") WeapCleric(oCreature); if (sTag == "NW_DUECLER010") WeapCleric(oCreature); if (sTag == "NW_DROWCLER015") WeapCleric(oCreature); if (sTag == "NW_DUECLER015") WeapCleric(oCreature); if (sTag == "NW_DROWCLER020") WeapCleric(oCreature); if (sTag == "NW_DUECLER020") WeapCleric(oCreature); if (sTag == "NW_DROWMAGE001") WeapMage(oCreature); if (sTag == "NW_DUEMAGE001") WeapMage(oCreature); if (sTag == "NW_DROWMAGE005") WeapMage(oCreature); if (sTag == "NW_DUEMAGE005") WeapMage(oCreature); if (sTag == "NW_DROWMAGE010") WeapMage(oCreature); if (sTag == "NW_DUEMAGE010") WeapMage(oCreature); if (sTag == "NW_DROWMAGE015") WeapMage(oCreature); if (sTag == "NW_DUEMAGE015") WeapMage(oCreature); if (sTag == "NW_DROWMAGE020") WeapMage(oCreature); if (sTag == "NW_DUEMAGE020") WeapMage(oCreature); if (iFlag == 1) { EquipMonster(oCreature); } }