Advertisement
Guest User

NPCDialogWnd

a guest
Jun 23rd, 2024
202
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.76 KB | None | 0 0
  1. class NPCDialogWnd extends UICommonAPI;
  2.  
  3. const DIALOG_DEFAULT_WIDTH = 314;
  4. const DIALOG_DEFAULT_HEIGHT = 408;
  5.  
  6. var WindowHandle _this;
  7. var String _thisName;
  8.  
  9. var HtmlHandle _HTML;
  10. var TextureHandle _textureBG;
  11.  
  12. function OnRegisterEvent()
  13. {
  14. RegisterEvent(EV_NPCDialogWndShow);
  15. RegisterEvent(EV_NPCDialogWndHide);
  16. RegisterEvent(EV_NPCDialogWndLoadHtmlFromString);
  17. RegisterEvent(EV_QuestIDWndLoadHtmlFromString);
  18. }
  19.  
  20. function OnLoad()
  21. {
  22. if (CREATE_ON_DEMAND == 0)
  23. OnRegisterEvent();
  24.  
  25. _this = GetWindowHandleDemand(_thisName);
  26. _this.SetWindowSize(DIALOG_DEFAULT_WIDTH, DIALOG_DEFAULT_HEIGHT);
  27.  
  28. _HTML = GetHtmlHandleDemand(_thisName $ ".HtmlViewer");
  29. _textureBG = GetTextureHandleDemand(_thisName $ ".texBack");
  30. }
  31.  
  32. function OnEvent(int eventID, String param)
  33. {
  34. LOGGER(_thisName, eventID, param);
  35. switch (eventID)
  36. {
  37. case EV_NPCDialogWndShow:
  38. ExecuteEvent(EV_QuestHtmlWndHide);
  39. ShowNPCDialogWindow();
  40. break;
  41. case EV_NPCDialogWndHide:
  42. _this.HideWindow();
  43. break;
  44. case EV_NPCDialogWndLoadHtmlFromString:
  45. _this.SetWindowTitle(GetSystemString(444));
  46. HandleLoadHtmlFromString(param);
  47. break;
  48. case EV_QuestIDWndLoadHtmlFromString:
  49. _this.HideWindow();
  50. break;
  51. }
  52. }
  53.  
  54. function OnHtmlMsgHideWindow(HtmlHandle iHtmlHandle)
  55. {
  56. if (iHtmlHandle == _HTML)
  57. _this.HideWindow();
  58. }
  59.  
  60. function OnHide()
  61. {
  62. _this.SetWindowSize(DIALOG_DEFAULT_WIDTH, DIALOG_DEFAULT_HEIGHT);
  63. _HTML.SetScrollBarPosition(0, 0, 0);
  64. }
  65.  
  66. function ShowNPCDialogWindow()
  67. {
  68. local PrivateShopWnd varScriptPrivateShopWnd;
  69.  
  70. varScriptPrivateShopWnd = PrivateShopWnd(GetScript("PrivateShopWnd"));
  71. if (IsShowWindow("PrivateShopWnd"))
  72. {
  73. varScriptPrivateShopWnd.RequestQuit();
  74. HideWindow("PrivateShopWnd");
  75. }
  76.  
  77. _this.ShowWindow();
  78. _this.SetFocus();
  79. }
  80.  
  81. function HandleLoadHtmlFromString(String param)
  82. {
  83. local String varParam;
  84. local int varWidth;
  85. local int varHeight;
  86. local String varImage;
  87. local bool varScrollBar;
  88. local String varHTMLString;
  89.  
  90. ParseString(param, "HTMLString", varHTMLString);
  91.  
  92. // Initialize Default Values
  93. varParam = Caps(StringBetween(varHTMLString, "<html ", ">"));
  94. varWidth = DIALOG_DEFAULT_WIDTH;
  95. varHeight = DIALOG_DEFAULT_HEIGHT;
  96. varImage = "L2UI_CT1.GroupBox.GroupBox_DF";
  97. varScrollBar = !Contain(varParam, "NOSCROLL");
  98.  
  99. if (Len(varParam) > 0)
  100. {
  101. ParseInt(varParam, "WIDTH", varWidth);
  102. ParseInt(varParam, "HEIGHT", varHeight);
  103. ParseString(varParam, "IMAGE", varImage);
  104. }
  105.  
  106. _textureBG.SetTexture(varImage);
  107. _this.SetWindowSize(varWidth, varHeight);
  108.  
  109. if (!varScrollBar)
  110. _HTML.SetScrollBarPosition(5000, 5000, 0);
  111. else
  112. _HTML.SetScrollBarPosition(0, 0, 0);
  113.  
  114. _HTML.LoadHtmlFromString(varHTMLString);
  115. }
  116.  
  117. defaultproperties
  118. {
  119. _thisName="NPCDialogWnd"
  120. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement