Back to Home

ESO Lua File v100032

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
142
143
144
145
146
147
148
149
150
151
152
153
154
155
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(GetPlatformAllianceSymbolIcon(guildAlliance), allianceIconSize, allianceIconSize)
    local isLastMemberOfGuild = (numGuildMembers == 1)
    if(data == nil) then
        data = {}
    end
    if(isGamepad) then
        allianceIcon = ""
        guildName = ZO_AllianceIconNameFormatter(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
            if IsPlayerGuildMaster(guildId) 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))
end
    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
end
    local canCreateGuild, tooManyGuilds, isAlreadyGuildmaster, tooLowLevel = ZO_CanPlayerCreateGuild()
    if(not canCreateGuild) then
        if(tooManyGuilds) then
            return zo_strformat(SI_GUILD_CREATE_ERROR_TOO_MANY, MAX_GUILDS)
        elseif(isAlreadyGuildmaster) then
            return GetString(SI_GUILD_CREATE_ERROR_ALREADY_LEADER)
        else
            return zo_strformat(SI_GUILD_CREATE_ERROR_LOW_LEVEL, MIN_REQUIRED_LEVEL_TO_CREATE_GUILD)
        end
    end
    return nil
end
function ZO_SetGuildCreateError(label)
    local error = ZO_GetGuildCreateError()
    label:SetHidden(not error)
    label:SetText(error)
    return error == nil
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
function ZO_TryGuildInvite(guildId, displayName)
    if not DoesPlayerHaveGuildPermission(guildId, GUILD_PERMISSION_INVITE) then
        ZO_AlertEvent(EVENT_SOCIAL_ERROR, SOCIAL_RESULT_NO_INVITE_PERMISSION)
        return
    end
    if GetNumGuildMembers(guildId) == MAX_GUILD_MEMBERS then
        ZO_AlertEvent(EVENT_SOCIAL_ERROR, SOCIAL_RESULT_NO_ROOM)
        return
    end
    local guildName = GetGuildName(guildId)
    if IsConsoleUI() then
        local function GuildInviteCallback(success)
            if success then
                GuildInvite(guildId, displayName)
            end
        end
        ZO_ConsoleAttemptInteractOrError(GuildInviteCallback, displayName, ZO_PLAYER_CONSOLE_INFO_REQUEST_DONT_BLOCK, ZO_CONSOLE_CAN_COMMUNICATE_ERROR_ALERT, ZO_ID_REQUEST_TYPE_DISPLAY_NAME, displayName)
    else
        if IsIgnored(displayName) then
            ZO_Alert(UI_ALERT_CATEGORY_ALERT, nil, SI_GROUP_ALERT_INVITE_PLAYER_BLOCKED)
            return
        end
        GuildInvite(guildId, displayName)
    end
end