mirror of
				https://github.com/ErikasKontenis/SabrehavenServer.git
				synced 2025-10-30 19:56:22 +01:00 
			
		
		
		
	commit client
This commit is contained in:
		| @@ -0,0 +1,148 @@ | ||||
| unjustifiedPointsWindow = nil | ||||
| unjustifiedPointsButton = nil | ||||
| contentsPanel = nil | ||||
|  | ||||
| openPvpSituationsLabel = nil | ||||
| currentSkullWidget = nil | ||||
| skullTimeLabel = nil | ||||
|  | ||||
| dayProgressBar = nil | ||||
| weekProgressBar = nil | ||||
| monthProgressBar = nil | ||||
|  | ||||
| daySkullWidget = nil | ||||
| weekSkullWidget = nil | ||||
| monthSkullWidget = nil | ||||
|  | ||||
| function init() | ||||
|   connect(g_game, { onGameStart = online, | ||||
|                     onUnjustifiedPointsChange = onUnjustifiedPointsChange, | ||||
|                     onOpenPvpSituationsChange = onOpenPvpSituationsChange }) | ||||
|   connect(LocalPlayer, { onSkullChange = onSkullChange } ) | ||||
|  | ||||
|   unjustifiedPointsButton = modules.client_topmenu.addRightGameToggleButton('unjustifiedPointsButton', | ||||
|     tr('Unjustified Points'), '/images/topbuttons/unjustifiedpoints', toggle) | ||||
|   unjustifiedPointsButton:setOn(true) | ||||
|   unjustifiedPointsButton:hide() | ||||
|  | ||||
|   unjustifiedPointsWindow = g_ui.loadUI('unjustifiedpoints', modules.game_interface.getRightPanel()) | ||||
|   unjustifiedPointsWindow:disableResize() | ||||
|   unjustifiedPointsWindow:setup() | ||||
|  | ||||
|   contentsPanel = unjustifiedPointsWindow:getChildById('contentsPanel') | ||||
|  | ||||
|   openPvpSituationsLabel = contentsPanel:getChildById('openPvpSituationsLabel') | ||||
|   currentSkullWidget = contentsPanel:getChildById('currentSkullWidget') | ||||
|   skullTimeLabel = contentsPanel:getChildById('skullTimeLabel') | ||||
|  | ||||
|   dayProgressBar = contentsPanel:getChildById('dayProgressBar') | ||||
|   weekProgressBar = contentsPanel:getChildById('weekProgressBar') | ||||
|   monthProgressBar = contentsPanel:getChildById('monthProgressBar') | ||||
|   daySkullWidget = contentsPanel:getChildById('daySkullWidget') | ||||
|   weekSkullWidget = contentsPanel:getChildById('weekSkullWidget') | ||||
|   monthSkullWidget = contentsPanel:getChildById('monthSkullWidget') | ||||
|  | ||||
|   if g_game.isOnline() then | ||||
|     online() | ||||
|   end | ||||
| end | ||||
|  | ||||
| function terminate() | ||||
|   disconnect(g_game, { onGameStart = online, | ||||
|                        onUnjustifiedPointsChange = onUnjustifiedPointsChange, | ||||
|                        onOpenPvpSituationsChange = onOpenPvpSituationsChange }) | ||||
|   disconnect(LocalPlayer, { onSkullChange = onSkullChange } ) | ||||
|  | ||||
|   unjustifiedPointsWindow:destroy() | ||||
|   unjustifiedPointsButton:destroy() | ||||
| end | ||||
|  | ||||
| function onMiniWindowClose() | ||||
|   unjustifiedPointsButton:setOn(false) | ||||
| end | ||||
|  | ||||
| function toggle() | ||||
|   if unjustifiedPointsButton:isOn() then | ||||
|     unjustifiedPointsWindow:close() | ||||
|     unjustifiedPointsButton:setOn(false) | ||||
|   else | ||||
|     unjustifiedPointsWindow:open() | ||||
|     unjustifiedPointsButton:setOn(true) | ||||
|   end | ||||
| end | ||||
|  | ||||
| function online() | ||||
|   if g_game.getFeature(GameUnjustifiedPoints) then | ||||
|     unjustifiedPointsButton:show() | ||||
|   else | ||||
|     unjustifiedPointsButton:hide() | ||||
|     unjustifiedPointsWindow:close() | ||||
|   end | ||||
|  | ||||
|   refresh() | ||||
| end | ||||
|  | ||||
| function refresh() | ||||
|   local localPlayer = g_game.getLocalPlayer() | ||||
|  | ||||
|   local unjustifiedPoints = g_game.getUnjustifiedPoints() | ||||
|   onUnjustifiedPointsChange(unjustifiedPoints) | ||||
|  | ||||
|   onSkullChange(localPlayer, localPlayer:getSkull()) | ||||
|   onOpenPvpSituationsChange(g_game.getOpenPvpSituations()) | ||||
| end | ||||
|  | ||||
| function onSkullChange(localPlayer, skull) | ||||
|   if not localPlayer:isLocalPlayer() then return end | ||||
|  | ||||
|   if skull == SkullRed or skull == SkullBlack then | ||||
|     currentSkullWidget:setIcon(getSkullImagePath(skull)) | ||||
|     currentSkullWidget:setTooltip('Remaining skull time') | ||||
|   else | ||||
|     currentSkullWidget:setIcon('') | ||||
|     currentSkullWidget:setTooltip('You have no skull') | ||||
|   end | ||||
|  | ||||
|   daySkullWidget:setIcon(getSkullImagePath(getNextSkullId(skull))) | ||||
|   weekSkullWidget:setIcon(getSkullImagePath(getNextSkullId(skull))) | ||||
|   monthSkullWidget:setIcon(getSkullImagePath(getNextSkullId(skull))) | ||||
| end | ||||
|  | ||||
| function onOpenPvpSituationsChange(amount) | ||||
|   openPvpSituationsLabel:setText(amount) | ||||
| end | ||||
|  | ||||
| local function getColorByKills(kills) | ||||
|   if kills < 2 then | ||||
|     return 'red' | ||||
|   elseif kills < 3 then | ||||
|     return 'yellow' | ||||
|   end | ||||
|  | ||||
|   return 'green' | ||||
| end | ||||
|  | ||||
| function onUnjustifiedPointsChange(unjustifiedPoints) | ||||
|   if unjustifiedPoints.skullTime == 0 then | ||||
|     skullTimeLabel:setText('No skull') | ||||
|     skullTimeLabel:setTooltip('You have no skull') | ||||
|   else | ||||
|     skullTimeLabel:setText(unjustifiedPoints.skullTime .. ' days') | ||||
|     skullTimeLabel:setTooltip('Remaining skull time') | ||||
|   end | ||||
|  | ||||
|   dayProgressBar:setValue(unjustifiedPoints.killsDay, 0, 100) | ||||
|   dayProgressBar:setBackgroundColor(getColorByKills(unjustifiedPoints.killsDayRemaining)) | ||||
|   dayProgressBar:setTooltip(string.format('Unjustified points gained during the last 24 hours.\n%i kill%s left.', unjustifiedPoints.killsDayRemaining, (unjustifiedPoints.killsDayRemaining == 1 and '' or 's'))) | ||||
|   dayProgressBar:setText(string.format('%i kill%s left',  unjustifiedPoints.killsDayRemaining, (unjustifiedPoints.killsDayRemaining == 1 and '' or 's'))) | ||||
|  | ||||
|   weekProgressBar:setValue(unjustifiedPoints.killsWeek, 0, 100) | ||||
|   weekProgressBar:setBackgroundColor(getColorByKills(unjustifiedPoints.killsWeekRemaining)) | ||||
|   weekProgressBar:setTooltip(string.format('Unjustified points gained during the last 7 days.\n%i kill%s left.', unjustifiedPoints.killsWeekRemaining, (unjustifiedPoints.killsWeekRemaining == 1 and '' or 's'))) | ||||
|   weekProgressBar:setText(string.format('%i kill%s left',  unjustifiedPoints.killsWeekRemaining, (unjustifiedPoints.killsWeekRemaining == 1 and '' or 's'))) | ||||
|  | ||||
|   monthProgressBar:setValue(unjustifiedPoints.killsMonth, 0, 100) | ||||
|   monthProgressBar:setBackgroundColor(getColorByKills(unjustifiedPoints.killsMonthRemaining)) | ||||
|   monthProgressBar:setTooltip(string.format('Unjustified points gained during the last 30 days.\n%i kill%s left.', unjustifiedPoints.killsMonthRemaining, (unjustifiedPoints.killsMonthRemaining == 1 and '' or 's'))) | ||||
|   monthProgressBar:setText(string.format('%i kill%s left',  unjustifiedPoints.killsMonthRemaining, (unjustifiedPoints.killsMonthRemaining == 1 and '' or 's'))) | ||||
| end | ||||
| @@ -0,0 +1,8 @@ | ||||
| Module | ||||
|   name: game_unjustifiedpoints | ||||
|   description: View unjustified points | ||||
|   author: Summ | ||||
|   sandboxed: true | ||||
|   scripts: [ unjustifiedpoints ] | ||||
|   @onLoad: init() | ||||
|   @onUnload: terminate() | ||||
| @@ -0,0 +1,81 @@ | ||||
| SkullProgressBar < ProgressBar | ||||
|   height: 13 | ||||
|   margin: 4 18 0 10 | ||||
|   anchors.top: prev.bottom | ||||
|   anchors.left: parent.left | ||||
|   anchors.right: parent.right | ||||
|  | ||||
| SkullWidget < UIWidget | ||||
|   size: 13 13 | ||||
|   margin-right: 2 | ||||
|   anchors.right: parent.right | ||||
|   image-source: /images/game/skull_socket | ||||
|  | ||||
| MiniWindow | ||||
|   id: unjustifiedPointsWindow | ||||
|   !text: tr('Unjustified Points') | ||||
|   height: 114 | ||||
|   icon: /images/topbuttons/unjustifiedpoints | ||||
|   @onClose: modules.game_unjustifiedpoints.onMiniWindowClose() | ||||
|   &save: true | ||||
|   &autoOpen: false | ||||
|  | ||||
|   MiniWindowContents | ||||
|     Label | ||||
|       anchors.top: parent.top | ||||
|       anchors.left: parent.left | ||||
|       !text: tr('Open PvP') | ||||
|       !tooltip: tr('Open PvP Situations') | ||||
|       phantom: false | ||||
|       margin-top: 2 | ||||
|       margin-left: 10 | ||||
|  | ||||
|     Label | ||||
|       id: openPvpSituationsLabel | ||||
|       anchors.top: prev.bottom | ||||
|       anchors.left: parent.left | ||||
|       font: verdana-11px-rounded | ||||
|       margin-left: 12 | ||||
|       phantom: false | ||||
|  | ||||
|     Label | ||||
|       anchors.top: parent.top | ||||
|       anchors.right: parent.right | ||||
|       !text: tr('Skull Time') | ||||
|       margin-top: 2 | ||||
|       margin-right: 10 | ||||
|  | ||||
|     SkullWidget | ||||
|       id: currentSkullWidget | ||||
|       anchors.top: prev.bottom | ||||
|       margin-right: 10 | ||||
|  | ||||
|     Label | ||||
|       id: skullTimeLabel | ||||
|       anchors.top: prev.top | ||||
|       anchors.right: prev.left | ||||
|       font: verdana-11px-rounded | ||||
|       margin-right: 6 | ||||
|       phantom: false | ||||
|  | ||||
|     SkullProgressBar | ||||
|       id: dayProgressBar | ||||
|       margin-top: 10 | ||||
|  | ||||
|     SkullWidget | ||||
|       id: daySkullWidget | ||||
|       anchors.top: prev.top | ||||
|  | ||||
|     SkullProgressBar | ||||
|       id: weekProgressBar | ||||
|  | ||||
|     SkullWidget | ||||
|       id: weekSkullWidget | ||||
|       anchors.top: prev.top | ||||
|  | ||||
|     SkullProgressBar | ||||
|       id: monthProgressBar | ||||
|  | ||||
|     SkullWidget | ||||
|       id: monthSkullWidget | ||||
|       anchors.top: prev.top | ||||
		Reference in New Issue
	
	Block a user
	 ErikasKontenis
					ErikasKontenis