ESO Lua File v100010

ingame/guild/zo_guildutils_common.lua

[◄ back to folders ]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
local function GetGuildDialogFunction(playerGuildId, data, isGamepad)
    local allianceIconSize = 17
    if(isGamepad) then
    end
     local guildName = GetGuildName(playerGuildId)
     local numGuildMembers = GetNumGuildMembers(playerGuildId)
     local playerIndex = GetPlayerGuildMemberIndex(playerGuildId)
     local _,_,rankIndex,_,_ = GetGuildMemberInfo(playerGuildId, playerIndex)
     local playerIsGuildmaster = IsGuildRankGuildMaster(playerGuildId, rankIndex)
    local guildAlliance = GetGuildAlliance(playerGuildId)
     local allianceIcon = zo_iconFormat(GetAllianceBannerIcon(guildAlliance), allianceIconSize, allianceIconSize)
     local isLastMemberOfGuild = (numGuildMembers == 1)
    if(data == nil) then
        data = {}
    end
    if(isGamepad) then
        allianceIcon = ""
        guildName = ZO_PrefixIconNameFormatter(ZO_GetAllianceIconUserAreaDataName(guildAlliance), guildName)
    end
    data.guildId = playerGuildId
     if(isLastMemberOfGuild) then
        return function() showDialogFunc("GUILD_DISBAND", data, { mainTextParams = { allianceIcon, guildName }}) end
    elseif(playerIsGuildmaster) then
        return function() showDialogFunc("GUILD_LEAVE_LEADER", data, { mainTextParams = { allianceIcon, guildName }}) end
    else
        return function() showDialogFunc("GUILD_LEAVE", data, { mainTextParams = { allianceIcon, guildName }}) end
    end
end
function ZO_AddLeaveGuildMenuItem(playerGuildId)
     AddMenuItem(GetString(SI_GUILD_LEAVE), GetGuildDialogFunction(playerGuildId))
end
function ZO_ShowLeaveGuildDialog(playerGuildId, data, isGamepad)
     GetGuildDialogFunction(playerGuildId, data, isGamepad)()
end
    local playerIsGuildMaster = false
    local numGuilds = GetNumGuilds()
    for i = 1, numGuilds do
        local guildId = GetGuildId(i)
        if(not playerIsGuildMaster) then
            local guildPlayerIndex = GetPlayerGuildMemberIndex(guildId)
            local _, _, rankIndex = GetGuildMemberInfo(guildId, guildPlayerIndex)
            if(IsGuildRankGuildMaster(guildId, rankIndex)) then
                playerIsGuildMaster = true
                break
            end
        end
    end
    local tooLowLevel = GetUnitLevel("player") < MIN_REQUIRED_LEVEL_TO_CREATE_GUILD
    return not (numGuilds >= MAX_GUILDS or playerIsGuildMaster or tooLowLevel), numGuilds >= MAX_GUILDS, playerIsGuildMaster, tooLowLevel
end
    local status = GetPlayerStatus()
    local statusTexture = GetPlayerStatusIcon(status)
    local text = zo_strformat(SI_GAMEPAD_GUILD_STATUS_SELECTOR_FORMAT, statusTexture, GetString("SI_PLAYERSTATUS", status))
    dropdown:SetSelectedItem(text)
end
function ZO_UpdateGuildStatusDropdown(dropdown)
    dropdown:ClearItems()
        
    for i = 1, GetNumPlayerStatuses() do
        local function GuildStatusSelect()
            SelectPlayerStatus(i)
        end
        local statusTexture = GetPlayerStatusIcon(i)
        local text = zo_strformat(SI_GAMEPAD_GUILD_STATUS_SELECTOR_FORMAT, statusTexture, GetString("SI_PLAYERSTATUS", i))
        local entry = ZO_ComboBox:CreateItemEntry(text, GuildStatusSelect)
        dropdown:AddItem(entry, ZO_COMBOBOX_SUPRESS_UPDATE)
    end
    dropdown:UpdateItems()
end
function ZO_GetGuildData(guildId)
    local numGuildMembers = GetNumGuildMembers(guildId)
    local numOnline = 0
    local guildMasterName = ""
    for guildMemberIndex = 1, numGuildMembers do
        local name, _, rankIndex, status = GetGuildMemberInfo(guildId, guildMemberIndex)
        if(status ~= PLAYER_STATUS_OFFLINE) then
            numOnline = numOnline + 1
        end
        if(IsGuildRankGuildMaster(guildId, rankIndex)) then
            guildMasterName = name
        end
    end
    return numGuildMembers, numOnline, guildMasterName
end
function ZO_SetGuildCreateError(label)
    local canCreateGuild, tooManyGuilds, isAlreadyGuildmaster, tooLowLevel = ZO_CanPlayerCreateGuild()
    if(not canCreateGuild) then
        label:SetHidden(false)
        if(tooManyGuilds) then
            label:SetText(zo_strformat(SI_GUILD_CREATE_ERROR_TOO_MANY, MAX_GUILDS))
        elseif(isAlreadyGuildmaster) then
            label:SetText(GetString(SI_GUILD_CREATE_ERROR_ALREADY_LEADER))
        else
            label:SetText(zo_strformat(SI_GUILD_CREATE_ERROR_LOW_LEVEL, MIN_REQUIRED_LEVEL_TO_CREATE_GUILD))
        end
    else
        label:SetHidden(true)
    end
    return canCreateGuild
end
function ZO_ValidatePlayerGuildId(guildIdToValidate)
    local numGuilds = GetNumGuilds()
    for i = 1, numGuilds do
        local guildId = GetGuildId(i)
        if(guildIdToValidate == guildId) then
            return true
        end
    end
    return false
end