//Makes the Initial Dialog, the tooltips in question are part of gv_casperSkills_BILL[8][3], BILL refers to a struct of Button, //Image, Label, Label, 8 to playernumber, and 3 to the 4 different abilities. I will post the trigger that initializes this //and my button/image/label making functions, as well as my CasperAbilityPurchaser and setCasperUpgrades functions. I believe //that will cover everything that has anything to do with what I'm trying to do. void gf_MakeCasperDialog (int lp_p) { // Variable Declarations int lv_x1; int lv_y1; int lv_x2; int lv_x3; int lv_y2; int lv_y3; int lv_xOff1; int lv_yOff1; int lv_xOff2; int lv_xOff3; int lv_yOff2; int lv_yOff3; int lv_xA1; int lv_yA1; int lv_xA2; int lv_yA2; string lv_fontSet; // Variable Initialization lv_x1 = 25; lv_y1 = 25; lv_x2 = 250; lv_x3 = 200; lv_y2 = 35; lv_y3 = 35; lv_xOff1 = 25; lv_yOff1 = 25; lv_xOff2 = 0; lv_xOff3 = 0; lv_yOff2 = 20; lv_yOff3 = 20; lv_xA1 = 20; lv_yA1 = 20; lv_xA2 = 40; lv_yA2 = 40; lv_fontSet = "MonospaceTemplate"; // Implementation gf_NewDialogBox(450, 600, 0, 0, c_anchorLeft, false, PlayerGroupSingle(lp_p), "Assets\\Textures\\ui_frame_small_base_terran.dds", c_triggerImageTypeHorizontalBorder, false); gv_casperSkillPages[lp_p][0] = DialogLastCreated(); gf_NewDialogBox(450, 600, 0, 0, c_anchorLeft, false, PlayerGroupSingle(lp_p), "Assets\\Textures\\ui_frame_small_base_zerg.dds", c_triggerImageTypeHorizontalBorder, false); gv_casperSkillPages[lp_p][1] = DialogLastCreated(); gf_NewDialogBox(450, 600, 0, 0, c_anchorLeft, false, PlayerGroupSingle(lp_p), "Assets\\Textures\\ui_frame_small_base_zerg.dds", c_triggerImageTypeHorizontalBorder, false); gv_casperSkillPages[lp_p][2] = DialogLastCreated(); gv_casperDialogLabels_IL[lp_p][0].lv_lbl = gf_NewDialogItemLbl(gv_casperSkillPages[lp_p][0], lv_x2, lv_y2, lv_xOff2, lv_yOff2, c_anchorTop, StringExternal("Param/Value/921A9332"), "AB_Description"); gv_casperDialogLabels_IL[lp_p][0].lv_img = gf_NewDialogItemImg(gv_casperSkillPages[lp_p][0], lv_x2, lv_y2, lv_xOff2, lv_yOff2, c_anchorTop, "Assets\\Textures\\ui_loadingscreen_playerloadingbar_highlighted.dds", c_triggerImageTypeBorder, false, Color(100.00, 50.20, 0.00)); gv_casperPageTurnersAndMinimizers_BIL[lp_p][6].lv_lbl = gf_NewDialogItemLbl(gv_casperSkillPages[lp_p][0], lv_x1, lv_y1, lv_xOff1, lv_yOff1, c_anchorTopRight, null, "AB_Description"); gv_casperPageTurnersAndMinimizers_BIL[lp_p][6].lv_img = gf_NewDialogItemImg(gv_casperSkillPages[lp_p][0], lv_x1, lv_y1, lv_xOff1, lv_yOff1, c_anchorTopRight, "uiimages\\btn-ui-No.dds", c_triggerImageTypeNormal, false, Color(100.00, 50.20, 0.00)); gv_casperPageTurnersAndMinimizers_BIL[lp_p][6].lv_btn = gf_NewDialogItemBtn(gv_casperSkillPages[lp_p][0], lv_x1, lv_y1, lv_xOff1, lv_yOff1, c_anchorTopRight, StringExternal("Param/Value/0187FCBA")); lv_x1 = 25; lv_y1 = 25; lv_x2 = 25; lv_y2 = 25; lv_x3 = 76; lv_y3 = 76; lv_xOff3 = -75; lv_yOff3 = 100; lv_xOff1 = lv_xOff3 + lv_xA1; lv_yOff1 = lv_yOff3 + lv_yA1; lv_xOff2 = lv_xOff3 + lv_xA2; lv_yOff2 = lv_yOff3 + lv_yA2; gv_casperSkills_BILL[lp_p][0].lv_img = gf_NewDialogItemImg(gv_casperSkillPages[lp_p][0], lv_x3, lv_y3, lv_xOff3, lv_yOff3, c_anchorTop, "Assets\\Textures\\btn-ability-terran-stimpack-color.dds", c_triggerImageTypeNormal, false, Color(100.00, 50.20, 0.00)); gv_casperSkills_BILL[lp_p][0].lv_btn = gf_NewDialogItemBtn(gv_casperSkillPages[lp_p][0], lv_x3, lv_y3, lv_xOff3, lv_yOff3, c_anchorTop, StringExternal("Param/Value/80578725")); gv_casperSkills_BILL[lp_p][0].lv_lbl1 = gf_NewDialogItemLbl(gv_casperSkillPages[lp_p][0], lv_x1, lv_y1, lv_xOff1, lv_yOff1, c_anchorTop, StringExternal("Param/Value/2E431DC1"), lv_fontSet); gv_casperSkills_BILL[lp_p][0].lv_lbl2 = gf_NewDialogItemLbl(gv_casperSkillPages[lp_p][0], lv_x2, lv_y2, lv_xOff2, lv_yOff2, c_anchorTop, StringExternal("Param/Value/845EADCE"), lv_fontSet); lv_xOff3 = 75; lv_yOff3 = 100; lv_xOff1 = lv_xOff3 + lv_xA1; lv_yOff1 = lv_yOff3 + lv_yA1; lv_xOff2 = lv_xOff3 + lv_xA2; lv_yOff2 = lv_yOff3 + lv_yA2; gv_casperSkills_BILL[lp_p][1].lv_img = gf_NewDialogItemImg(gv_casperSkillPages[lp_p][0], lv_x3, lv_y3, lv_xOff3, lv_yOff3, c_anchorTop, "Assets\\Textures\\btn-ability-terran-tychustossgrenade.dds", c_triggerImageTypeNormal, false, Color(100.00, 50.20, 0.00)); gv_casperSkills_BILL[lp_p][1].lv_btn = gf_NewDialogItemBtn(gv_casperSkillPages[lp_p][0], lv_x3, lv_y3, lv_xOff3, lv_yOff3, c_anchorTop, StringExternal("Param/Value/C9960B2B")); gv_casperSkills_BILL[lp_p][1].lv_lbl1 = gf_NewDialogItemLbl(gv_casperSkillPages[lp_p][0], lv_x1, lv_y1, lv_xOff1, lv_yOff1, c_anchorTop, StringExternal("Param/Value/8D1083C2"), lv_fontSet); gv_casperSkills_BILL[lp_p][1].lv_lbl2 = gf_NewDialogItemLbl(gv_casperSkillPages[lp_p][0], lv_x2, lv_y2, lv_xOff2, lv_yOff2, c_anchorTop, StringExternal("Param/Value/86AF4A34"), lv_fontSet); lv_xOff3 = -75; lv_yOff3 = 250; lv_xOff1 = lv_xOff3 + lv_xA1; lv_yOff1 = lv_yOff3 + lv_yA1; lv_xOff2 = lv_xOff3 + lv_xA2; lv_yOff2 = lv_yOff3 + lv_yA2; gv_casperSkills_BILL[lp_p][2].lv_img = gf_NewDialogItemImg(gv_casperSkillPages[lp_p][0], lv_x3, lv_y3, lv_xOff3, lv_yOff3, c_anchorTop, "Assets\\Textures\\btn-upgrade-zerg-seismicspines.dds", c_triggerImageTypeNormal, false, Color(100.00, 50.20, 0.00)); gv_casperSkills_BILL[lp_p][2].lv_btn = gf_NewDialogItemBtn(gv_casperSkillPages[lp_p][0], lv_x3, lv_y3, lv_xOff3, lv_yOff3, c_anchorTop, StringExternal("Param/Value/011D74D7")); gv_casperSkills_BILL[lp_p][2].lv_lbl1 = gf_NewDialogItemLbl(gv_casperSkillPages[lp_p][0], lv_x1, lv_y1, lv_xOff1, lv_yOff1, c_anchorTop, StringExternal("Param/Value/467A5E8C"), lv_fontSet); gv_casperSkills_BILL[lp_p][2].lv_lbl2 = gf_NewDialogItemLbl(gv_casperSkillPages[lp_p][0], lv_x2, lv_y2, lv_xOff2, lv_yOff2, c_anchorTop, StringExternal("Param/Value/F228C892"), lv_fontSet); lv_xOff3 = 75; lv_yOff3 = 250; lv_xOff1 = lv_xOff3 + lv_xA1; lv_yOff1 = lv_yOff3 + lv_yA1; lv_xOff2 = lv_xOff3 + lv_xA2; lv_yOff2 = lv_yOff3 + lv_yA2; gv_casperSkills_BILL[lp_p][3].lv_img = gf_NewDialogItemImg(gv_casperSkillPages[lp_p][0], lv_x3, lv_y3, lv_xOff3, lv_yOff3, c_anchorTop, "Assets\\Textures\\btn-upgrade-zerg-chitinousplating.dds", c_triggerImageTypeNormal, false, Color(100.00, 50.20, 0.00)); gv_casperSkills_BILL[lp_p][3].lv_btn = gf_NewDialogItemBtn(gv_casperSkillPages[lp_p][0], lv_x3, lv_y3, lv_xOff3, lv_yOff3, c_anchorTop, StringExternal("Param/Value/ECADD110")); gv_casperSkills_BILL[lp_p][3].lv_lbl1 = gf_NewDialogItemLbl(gv_casperSkillPages[lp_p][0], lv_x1, lv_y1, lv_xOff1, lv_yOff1, c_anchorTop, StringExternal("Param/Value/FA816BE9"), lv_fontSet); gv_casperSkills_BILL[lp_p][3].lv_lbl2 = gf_NewDialogItemLbl(gv_casperSkillPages[lp_p][0], lv_x2, lv_y2, lv_xOff2, lv_yOff2, c_anchorTop, StringExternal("Param/Value/29CD96AD"), lv_fontSet); } int gf_NewDialogItemImg (int lp_dialog, int lp_sizeX, int lp_sizeY, int lp_offsetX, int lp_offsetY, int lp_anchor, string lp_image, int lp_imageType, bool lp_imageTiled, color lp_desatColor) { // Variable Declarations int lv_img; // Variable Initialization lv_img = c_invalidDialogControlId; // Implementation libNtve_gf_CreateDialogItemImage(lp_dialog, lp_sizeX, lp_sizeY, lp_anchor, lp_offsetX, lp_offsetY, StringExternal("Param/Value/AC9541EC"), lp_image, lp_imageType, lp_imageTiled, Color(100,100,100), c_triggerBlendModeNormal); lv_img = DialogControlLastCreated(); libNtve_gf_SetDialogItemDesaturationColor(lv_img, lp_desatColor, PlayerGroupAll()); return lv_img; } int gf_NewDialogItemLbl (int lp_dialog, int lp_sizeX, int lp_sizeY, int lp_offsetX, int lp_offsetY, int lp_anchor, text lp_text, string lp_style) { // Variable Declarations int lv_lbl; // Variable Initialization lv_lbl = c_invalidDialogControlId; // Implementation libNtve_gf_CreateDialogItemLabel(lp_dialog, lp_sizeX, lp_sizeY, lp_anchor, lp_offsetX, lp_offsetY, lp_text, Color(100,100,100), false, 2.0); lv_lbl = DialogControlLastCreated(); libNtve_gf_SetDialogItemStyle(lv_lbl, lp_style, PlayerGroupAll()); return lv_lbl; } int gf_NewDialogItemBtn (int lp_dialog, int lp_sizeX, int lp_sizeY, int lp_offsetX, int lp_offsetY, int lp_anchor, text lp_tooltip) { // Variable Declarations int lv_btn; // Variable Initialization lv_btn = c_invalidDialogControlId; // Implementation libNtve_gf_CreateDialogItemButton(lp_dialog, lp_sizeX, lp_sizeY, lp_anchor, lp_offsetX, lp_offsetY, lp_tooltip, StringExternal("Param/Value/E0C36243"), ""); lv_btn = DialogControlLastCreated(); DialogControlFadeTransparency(lv_btn, PlayerGroupAll(), 0.0, 100.0); return lv_btn; } void gf_MakeTheDialogsClassSpecific (int lp_p) { int autoEA65CAE7_val; // Implementation autoEA65CAE7_val = gv_theHeroes[lp_p].lv_heroType; if (autoEA65CAE7_val == 0) { } else if (autoEA65CAE7_val == 1) { } else if (autoEA65CAE7_val == 2) { gf_MakeCasperDialog(lp_p); } else if (autoEA65CAE7_val == 3) { gf_MakeImpDialog(lp_p); } else if (autoEA65CAE7_val == 4) { } else { } } void gf_CasperAbilityPurchaser (int lp_p, int lp_n) { int auto7554F190_val; // Implementation auto7554F190_val = lp_n; if (auto7554F190_val == 0) { //Stimpack if(gv_theHeroes[lp_p].lv_heroLevel >= gv_casperCostLevel[lp_p][1][0] && gv_theHeroes[lp_p].lv_heroAttributePoints >= gv_casperCostLevel[lp_p][0][0] && gv_theHeroes[lp_p].lv_abilCount[0] < 10) { gv_theHeroes[lp_p].lv_abilCount[0] += 1; gv_theHeroes[lp_p].lv_heroAttributePoints -= gv_casperCostLevel[lp_p][0][0]; gv_casperCostLevel[lp_p][1][0] += 5; gf_SetCasperUpgrades(lp_p); } libNtve_gf_SetDialogItemText(gv_casperSkills_BILL[lp_p][lp_n].lv_lbl2, IntToText(gv_theHeroes[lp_p].lv_abilCount[lp_n]), PlayerGroupSingle(lp_p)); } else if (auto7554F190_val == 1) { //Grenade if(gv_theHeroes[lp_p].lv_heroLevel >= gv_casperCostLevel[lp_p][1][1] && gv_theHeroes[lp_p].lv_heroAttributePoints >= gv_casperCostLevel[lp_p][0][1] && gv_theHeroes[lp_p].lv_abilCount[1] < 10) { gv_theHeroes[lp_p].lv_abilCount[1] += 1; gv_theHeroes[lp_p].lv_heroAttributePoints -= gv_casperCostLevel[lp_p][0][1]; gv_casperCostLevel[lp_p][1][1] += 5; gf_SetCasperUpgrades(lp_p); } libNtve_gf_SetDialogItemText(gv_casperSkills_BILL[lp_p][lp_n].lv_lbl2, IntToText(gv_theHeroes[lp_p].lv_abilCount[lp_n]), PlayerGroupSingle(lp_p)); } else if (auto7554F190_val == 2) { //Snare if(gv_theHeroes[lp_p].lv_heroLevel >= gv_casperCostLevel[lp_p][1][2] && gv_theHeroes[lp_p].lv_heroAttributePoints >= gv_casperCostLevel[lp_p][0][2] && gv_theHeroes[lp_p].lv_abilCount[2] < 10) { gv_theHeroes[lp_p].lv_abilCount[2] += 1; gv_theHeroes[lp_p].lv_heroAttributePoints -= gv_casperCostLevel[lp_p][0][2]; gv_casperCostLevel[lp_p][1][2] += 5; gf_SetCasperUpgrades(lp_p); } libNtve_gf_SetDialogItemText(gv_casperSkills_BILL[lp_p][lp_n].lv_lbl2, IntToText(gv_theHeroes[lp_p].lv_abilCount[lp_n]), PlayerGroupSingle(lp_p)); } else if (auto7554F190_val == 3) { //Root if(gv_theHeroes[lp_p].lv_heroLevel >= gv_casperCostLevel[lp_p][1][3] && gv_theHeroes[lp_p].lv_heroAttributePoints >= gv_casperCostLevel[lp_p][0][3] && gv_theHeroes[lp_p].lv_abilCount[3] < 10) { gv_theHeroes[lp_p].lv_abilCount[3] += 1; gv_theHeroes[lp_p].lv_heroAttributePoints -= gv_casperCostLevel[lp_p][0][3]; gv_casperCostLevel[lp_p][1][3] += 5; gf_SetCasperUpgrades(lp_p); } libNtve_gf_SetDialogItemText(gv_casperSkills_BILL[lp_p][lp_n].lv_lbl2, IntToText(gv_theHeroes[lp_p].lv_abilCount[lp_n]), PlayerGroupSingle(lp_p)); } else { } gf_UpdateStats(lp_p); //gf_BankSave(lp_p); } void gf_SetCasperUpgrades (int lp_p) { // Variable Declarations int lv_junk; // Variable Initialization lv_junk = 0; // Implementation if ((gv_theHeroes[lp_p].lv_abilCount[0] > 0)) { libNtve_gf_SetUpgradeLevelForPlayer(lp_p, "CasperStimpack", 1); lv_junk = gv_theHeroes[lp_p].lv_abilCount[0]; if ((lv_junk < 10)) { libNtve_gf_SetUpgradeLevelForPlayer(lp_p, "CasperStimpackLevelReq", lv_junk); } else { libNtve_gf_SetUpgradeLevelForPlayer(lp_p, "CasperStimpackLevelReq", 9); } lv_junk -= 1; libNtve_gf_SetUpgradeLevelForPlayer(lp_p, "CasperStimpack9", lv_junk); } else { } if ((gv_theHeroes[lp_p].lv_abilCount[1] > 0)) { libNtve_gf_SetUpgradeLevelForPlayer(lp_p, "CasperTossGrenade", 1); lv_junk = gv_theHeroes[lp_p].lv_abilCount[1]; if ((lv_junk < 10)) { libNtve_gf_SetUpgradeLevelForPlayer(lp_p, "CasperGrenadeLevelReq", lv_junk); } else { libNtve_gf_SetUpgradeLevelForPlayer(lp_p, "CasperGrenadeLevelReq", 9); } lv_junk -= 1; libNtve_gf_SetUpgradeLevelForPlayer(lp_p, "CasperTossGrenade9", lv_junk); } else { } if ((gv_theHeroes[lp_p].lv_abilCount[2] > 0)) { libNtve_gf_SetUpgradeLevelForPlayer(lp_p, "Snare", 1); lv_junk = gv_theHeroes[lp_p].lv_abilCount[2]; if ((lv_junk < 10)) { libNtve_gf_SetUpgradeLevelForPlayer(lp_p, "CasperSnareLevelReq", lv_junk); } else { libNtve_gf_SetUpgradeLevelForPlayer(lp_p, "CasperSnareLevelReq", 9); } lv_junk -= 1; libNtve_gf_SetUpgradeLevelForPlayer(lp_p, "Snare9", lv_junk); } else { } if ((gv_theHeroes[lp_p].lv_abilCount[3] > 0)) { libNtve_gf_SetUpgradeLevelForPlayer(lp_p, "Root", 1); lv_junk = gv_theHeroes[lp_p].lv_abilCount[3]; libNtve_gf_SetDialogItemText(gv_casperSkills_BILL[lp_p][3].lv_lbl2, IntToText(gv_casperCostLevel[lp_p][0][0]), PlayerGroupAll()); if ((lv_junk < 10)) { libNtve_gf_SetUpgradeLevelForPlayer(lp_p, "CasperRootLevelReq", lv_junk); } else { libNtve_gf_SetUpgradeLevelForPlayer(lp_p, "CasperRootLevelReq", 9); } lv_junk -= 1; libNtve_gf_SetUpgradeLevelForPlayer(lp_p, "Root9", lv_junk); } else { } }