Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Script "DnD Monster Scanner Picker" ENTER {
- int thisactor = ActivatorTID();
- int monhp, monlvl, monsterid, mmaxhp, healthbarcolor, traits, traits2, nameskip, monprop;
- bool monelite = false;
- while(1) {
- SetActivatorToTarget(thisactor);
- if(!CheckInventory("EnemyInDisguise") && (CheckActorProperty(0, APROP_Friendly, 0) || CheckInventory("FriendlyInDisguise")))
- healthbarcolor = 1;
- else if(CheckActorProperty(0, APROP_Friendly, 1) || CheckInventory("EnemyInDisguise"))
- healthbarcolor = 0;
- if(ActivatorTID() == thisactor || CheckInventory("EnemyInDisguise")) {
- // player has no targets
- SetActivator(thisactor);
- SetInventory("TargetMaximumHealth", 0);
- SetInventory("TargetCurrentHealth", 0);
- SetInventory("TargetLevel", 0);
- SetInventory("TargetTraits", 0);
- SetInventory("TargetTraits2", 0);
- SetInventory("TargetIsWhat", 0);
- SetInventory("TargetIsElite", 0);
- SetInventory("TargetProperties", 0);
- }
- else {
- mmaxhp = CheckInventory("MonsterMaxHealth");
- monhp = GetActorProperty (0, APROP_Health);
- monlvl = CheckInventory("MonsterLevel");
- monsterid = CheckInventory("MonsterID");
- traits = CheckInventory("MonsterTraits");
- traits2 = CheckInventory("MonsterTraits2");
- nameskip = CheckInventory("MonsterNameSkip");
- monelite = CheckInventory("MonsterIsElite");
- monprop = CheckInventory("MonsterProperties");
- str temp = GetActorProperty(0, APROP_NAMETAG);
- SetActivator(thisactor);
- SetInventory("TargetMaximumHealth", mmaxhp);
- SetInventory("TargetCurrentHealth", monhp);
- SetInventory("TargetHealthBarColor", healthbarcolor);
- SetInventory("TargetLevel", monlvl);
- SetInventory("TargetTraits", traits);
- SetInventory("TargetTraits2", traits2);
- SetInventory("TargetIsWhat", monsterid);
- SetInventory("TargetIsElite", monelite);
- SetInventory("TargetProperties", monprop);
- SetCVarString(Strparam(s:"DND_NAMETAGS", i:PlayerNumber()), temp);
- }
- // fixes initialization bug
- SetActivator(thisactor);
- Delay (1);
- }
- }
- Script "DnD Monster Scanner" ENTER CLIENTSIDE {
- int mmaxhp, hdisp, monhp, monlevel, monid, traits, traits2;
- bool isPet = false;
- while(1) {
- // if we have any shared items in our player queue to turn, do turn them
- if(CheckInventory("Ability_MonsterInfo")) {
- mmaxhp = CheckInventory("TargetMaximumHealth");
- if(mmaxhp && GetCVar("dnd_monsterbars")) {
- monhp = CheckInventory("TargetCurrentHealth");
- monlevel = CheckInventory("TargetLevel");
- monid = CheckInventory("TargetIsWhat");
- traits = CheckInventory("TargetTraits");
- traits2 = CheckInventory("TargetTraits2");
- isPet = traits2 & DND_PET_POW;
- hdisp = (monhp * 100 / mmaxhp);
- int i, j = 0.0;
- if(CheckInventory("TargetHealthBarColor"))
- SetFont("MNRHPBAR");
- else
- SetFont("MNGHPBAR");
- SetHudSize(800, 600, 0);
- HudMessage(s:"a"; 1, MONSTER_BARID, CR_UNTRANSLATED, 400.0, 27.0, 1);
- if(!isPet) {
- if(!CheckInventory("TargetProperties"))
- SetFont(MonsterTypeIcons[GetMonsterType(monid)]);
- else {
- SetFont(MonsterTypeIcons[InferMonsterPower(CheckInventory("TargetProperties"))]);
- }
- }
- else
- SetFont(MonsterTypeIcons[GetPetMonsterType(monid)]);
- HudMessage(s:"a"; 1, MONSTER_TYPEICONID, CR_UNTRANSLATED, 270.0, 27.0, 1);
- HudMessage(s:"a"; 1, MONSTER_TYPEICONID - 1, CR_UNTRANSLATED, 540.0, 27.0, 1);
- // inner text
- SetFont ("MONFONT");
- HudMessage(s:"Lvl: ", i:monlevel, s:" ", i:monhp, s:"/", i:mmaxhp; 1, MONSTER_TEXTID, CR_WHITE, 400.0, 27.0, 1);
- str prefix = "";
- if(CheckInventory("TargetIsElite"))
- prefix = "\cfElite ";
- if(traits2 & DND_LEGENDARY)
- HudMessage(s:prefix, s:GetCVarString(Strparam(s:"DND_NAMETAGS", i:PlayerNumber())); 1, MONSTER_NAMEID, CR_RED, 404.4, 10.0, 1);
- else if(isBoss())
- HudMessage(s:prefix, s:GetCVarString(Strparam(s:"DND_NAMETAGS", i:PlayerNumber())); 1, MONSTER_NAMEID, CR_ORANGE, 404.4, 10.0, 1);
- else
- HudMessage(s:prefix, s:GetCVarString(Strparam(s:"DND_NAMETAGS", i:PlayerNumber())); 1, MONSTER_NAMEID, CR_WHITE, 404.4, 10.0, 1);
- for (i = 0; i <= hdisp && i <= 100; ++i) {
- j = j + 2.0;
- if(CheckInventory("TargetHealthBarColor"))
- SetFont("FILLCRIT");
- else
- SetFont("FILLNORM");
- if(monhp)
- HudMessage(s:"a"; 1, MONSTER_BARFILLID + i, CR_GREEN, 303.0 + j, 27.0, 1);
- }
- i = j = 0;
- // show monster traits
- if(traits) {
- SetFont ("MONFONT");
- for(i = 0; i < MAX_MONSTER_TRAITS; ++i) {
- if(IsSet(traits, i)) {
- HudMessage(s:GetTraitColorCode(i, DND_TRAITSIDE_1), s:MonsterTraits[i]; 1, MONSTER_TRAITID + j, CR_WHITE, 404.4, 44.0 + 8.0 * j, 1);
- ++j;
- }
- }
- }
- if(traits2) {
- SetFont ("MONFONT");
- for(i = 0; i < MAX_MONSTER_TRAITS2; ++i) {
- if(IsSet(traits2, i)) {
- HudMessage(s:GetTraitColorCode(i, DND_TRAITSIDE_2), s:MonsterTraits2[i]; 1, MONSTER_TRAITID + j, CR_WHITE, 404.4, 44.0 + 8.0 * j, 1);
- ++j;
- }
- }
- }
- if(traits2 & DND_LEGENDARY)
- HudMessage(s:"Legendary Monster"; 1, MONSTER_TRAITID + j, CR_WHITE, 404.4, 44.0 + 8.0 * j, 1);
- }
- }
- Delay (1);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement