Ir para conteúdo
  • Cadastre-se

(Resolvido)[ERROR] Cast System [MOD]


Ir para solução Resolvido por mullino,

Posts Recomendados

Preciso de uma ajuda com 1 Erro que está ocorrendo no meu otserv, é no Cast System :

 

ERRO :

 

 

[1:13:32.013] [Error - GlobalEvent Interface]
[1:13:32.013]           function onThink(interval)
[1:13:32.013]                   local players = getPlayersOnline()
[1:13:32.013]                   for _, pid in ipairs(players) do
[1:13:32.013]                           local data = getPlayerSpectators(pid)
[1:13:32.013]                           if(data.broadcast) then
[1:13:32.013]                                   db.executeQuery("UPDATE `players` set `viewers` = " .. table.maxn(data.names) .. " where `id` = " .. getPlayerGUID(pid) .. ";")
[1:13:32.013]                           end
[1:13:32.013]                   end

[1:13:32.013]                   return true
[1:13:32.013]           end
[1:13:32.013]   :onThink
[1:13:32.013] Description:
[1:13:32.013] [string "LuaInterface::loadBuffer"]:4: attempt to call global 'getPlayerSpectators' (a nil value)
[1:13:32.013] stack traceback:
[1:13:32.013]   [string "LuaInterface::loadBuffer"]:4: in function <[string "LuaInterface::loadBuffer"]:1>
[1:13:32.013] [Error - GlobalEvents::think] Couldn't execute event: viewers

 

MOD CastSystem :

 

<?xml version="1.0" encoding="UTF-8"?>
<mod name="Mod Cast" version="1.0" author="Martyx" contact="[email protected]" enabled="yes">
    <event type="logout" name="cast-log-out" event="script"><![CDATA[
        function onLogout(cid, forceLogout)
            db.executeQuery("UPDATE `players` SET `broadcasting` = 0, `viewers` = 0 WHERE `id` = " .. getPlayerGUID(cid) .. " LIMIT 1")
            return true
        end
    ]]></event>
    <globalevent name="viewers" interval="10000" event="script"><![CDATA[
        function onThink(interval)
            local players = getPlayersOnline()
            for _, pid in ipairs(players) do
                local data = getPlayerSpectators(pid)
                if(data.broadcast) then
                    db.executeQuery("UPDATE `players` set `viewers` = " .. table.maxn(data.names) .. " where `id` = " .. getPlayerGUID(pid) .. ";")
                end
            end

            return true
        end
    ]]></globalevent>
    <talkaction words="/live" event="script"><![CDATA[
        function onSay(cid, words, param, channelId)
            local t, data = string.explode(param, " ", 1), getPlayerSpectators(cid)
            if(isInArray({'off', 'no', 'disable'}, t[1])) then
                data.mutes = {}
                data.broadcast = false
                doPlayerSetSpectators(cid, data)

                db.executeQuery("UPDATE `players` SET `broadcasting` = 0, `viewers` = 0 WHERE `id` = " .. getPlayerGUID(cid))
                doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You have disabled your live stream.")
            elseif(isInArray({'on', 'yes', 'enable'}, t[1])) then
                data.broadcast = true
                doPlayerSetSpectators(cid, data)

                db.executeQuery("UPDATE `players` SET `broadcasting` = 1 WHERE `id` = " .. getPlayerGUID(cid))
                doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You have enabled your live stream.")
            elseif(isInArray({'show', 'count', 'see'}, t[1])) then
                if(data.broadcast) then
                    local count = table.maxn(data.names)
                    if(count > 0) then
                        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You are currently watched by " .. count .. " people.")
                        local str = ""
                        for _, name in ipairs(data.names) do
                            str = str .. (str:len() > 0 and ", " or "") .. name
                        end

                        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, str .. ".")
                    else
                        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "None is watching your stream right now.")
                    end
                else
                    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You are not streaming right now.")
                end
            elseif(isInArray({'kick', 'remove'}, t[1])) then
                if(data.broadcast) then
                    if(t[2]) then
                        if(t[2] ~= "all") then
                            local found = false
                            for _, name in ipairs(data.names) do
                                if(t[2]:lower() == name:lower()) then
                                    found = true
                                    break
                                end
                            end

                            if(found) then
                                table.insert(data.kick, t[2])
                                doPlayerSetSpectators(cid, data)
                                doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Spectator " .. t[2] .. " has been kicked.")
                            else
                                doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Spectator " .. t[2] .. " not found.")
                            end
                        else
                            data.kick = data.names
                            doPlayerSetSpectators(cid, data)
                        end
                    else
                        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You need to type a name.")
                    end
                else
                    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You are not streaming right now.")
                end
            elseif(isInArray({'ban', 'block'}, t[1])) then
                if(data.broadcast) then
                    if(t[2]) then
                        local found = false
                        for _, name in ipairs(data.names) do
                            if(t[2]:lower() == name:lower()) then
                                found = true
                                break
                            end
                        end

                        if(found) then
                            table.insert(data.bans, t[2])
                            doPlayerSetSpectators(cid, data)
                            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Spectator " .. t[2] .. " has been banned.")
                        else
                            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Spectator " .. t[2] .. " not found.")
                        end
                    else
                        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You need to type a name.")
                    end
                else
                    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You are not streaming right now.")
                end
            elseif(isInArray({'unban', 'unblock'}, t[1])) then
                if(data.broadcast) then
                    if(t[2]) then
                        local found, i = 0, 1
                        for _, name in ipairs(data.bans) do
                            if(t[2]:lower() == name:lower()) then
                                found = i
                                break
                            end

                            i = i + 1
                        end

                        if(found > 0) then
                            table.remove(data.bans, found)
                            doPlayerSetSpectators(cid, data)
                            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Spectator " .. t[2] .. " has been unbanned.")
                        else
                            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Spectator " .. t[2] .. " not found.")
                        end
                    else
                        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You need to type a name.")
                    end
                else
                    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You are not streaming right now.")
                end
            elseif(isInArray({'bans', 'banlist'}, t[1])) then
                if(table.maxn(data.bans)) then
                    local str = ""
                    for _, name in ipairs(data.bans) do
                        str = str .. (str:len() > 0 and ", " or "") .. name
                    end

                    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Currently banned spectators: " .. str .. ".")
                else
                    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Your ban list is empty.")
                end
            elseif(isInArray({'mute', 'squelch'}, t[1])) then
                if(data.broadcast) then
                    if(t[2]) then
                        local found = false
                        for _, name in ipairs(data.names) do
                            if(t[2]:lower() == name:lower()) then
                                found = true
                                break
                            end
                        end

                        if(found) then
                            table.insert(data.mutes, t[2])
                            doPlayerSetSpectators(cid, data)
                            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Spectator " .. t[2] .. " has been muted.")
                        else
                            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Spectator " .. t[2] .. " not found.")
                        end
                    else
                        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You need to type a name.")
                    end
                else
                    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You are not streaming right now.")
                end
            elseif(isInArray({'unmute', 'unsquelch'}, t[1])) then
                if(data.broadcast) then
                    if(t[2]) then
                        local found, i = 0, 1
                        for _, name in ipairs(data.mutes) do
                            if(t[2]:lower() == name:lower()) then
                                found = i
                                break
                            end

                            i = i + 1
                        end

                        if(found > 0) then
                            table.remove(data.mutes, found)
                            doPlayerSetSpectators(cid, data)
                            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Spectator " .. t[2] .. " has been unmuted.")
                        else
                            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Spectator " .. t[2] .. " not found.")
                        end
                    else
                        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You need to type a name.")
                    end
                else
                    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You are not streaming right now.")
                end
            elseif(isInArray({'mutes', 'mutelist'}, t[1])) then
                if(table.maxn(data.mutes)) then
                    local str = ""
                    for _, name in ipairs(data.mutes) do
                        str = str .. (str:len() > 0 and ", " or "") .. name
                    end

                    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Currently muted spectators: " .. str .. ".")
                else
                    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Your mute list is empty.")
                end
            elseif(isInArray({'auth', 'protect', 'protection', 'protected'}, t[1])) then
                if(isInArray({'off', 'no', 'disable'}, t[2])) then
                    data.auth = false
                    doPlayerSetSpectators(cid, data)
                    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Your chat is now unprotected, all spectators can chat without authentication.")
                elseif(isInArray({'on', 'yes', 'enable'}, t[2])) then
                    data.auth = true
                    doPlayerSetSpectators(cid, data)
                    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Your chat is now protected, all spectators have to authenticate before they can talk.")
                else
                    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Your chat is currently " .. (data.auth and "protected" or "unprotected") .. " from guests.")
                end
            elseif(isInArray({'password', 'guard'}, t[1])) then
                if(t[2]) then
                    if(isInArray({'off', 'no', 'disable'}, t[2])) then
                        if(data.password:len() ~= 0) then
                            db.executeQuery("UPDATE `players` SET `broadcasting` = `broadcasting` - 2 WHERE `id` = " .. getPlayerGUID(cid))
                        end

                        data.password = ""
                        doPlayerSetSpectators(cid, data)
                        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You have removed password for your stream.")
                    else
                        if(data.password:len() ~= 0) then
                            db.executeQuery("UPDATE `players` SET `broadcasting` = `broadcasting` + 2 WHERE `id` = " .. getPlayerGUID(cid))
                        end

                        data.password = string.trim(t[2])
                        doPlayerSetSpectators(cid, data)
                        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You have set new password for your stream.")
                    end
                elseif(data.password ~= "") then
                    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Your stream is currently protected with password: " .. data.password .. ".")
                else
                    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Your stream is currently not protected.")
                end
            elseif(isInArray({'status', 'info'}, t[1])) then
                doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Your stream is currently " .. (data.broadcast and "enabled" or "disabled") .. ".")
            else
                doShowTextDialog(cid, 1950, "Available commands:\n\n/live on - enables the stream\n/live off - disables the stream\n/live password {password} - sets a password on the stream\n/live password off - disables the password protection\n/live auth on - enables requirement of authentication on chat\n/live auth off - disables requirement of authentication on chat\n/live kick {name} - kick a spectator from your stream\n/live ban {name} - locks spectator IP from joining your stream\n/live unban {name} - removes banishment lock\n/live bans - shows banished spectators list\n/live mute {name} - mutes selected spectator from chat\n/live unmute {name} - removes mute\n/live mutes - shows muted spectators list\n/live show - displays the amount and nicknames of current spectators\n/live status - displays stream status")
            end

            return true
        end
    ]]></talkaction>
</mod>
 

Editado por tiroleivi (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
3 minutos atrás, tiroleivi disse:

Preciso de uma ajuda com 1 Erro que está ocorrendo no meu otserv, é no Cast System :

 

ERRO :

 

  Ocultar conteúdo

[1:13:32.013] [Error - GlobalEvent Interface]
[1:13:32.013]           function onThink(interval)
[1:13:32.013]                   local players = getPlayersOnline()
[1:13:32.013]                   for _, pid in ipairs(players) do
[1:13:32.013]                           local data = getPlayerSpectators(pid)
[1:13:32.013]                           if(data.broadcast) then
[1:13:32.013]                                   db.executeQuery("UPDATE `players` set `viewers` = " .. table.maxn(data.names) .. " where `id` = " .. getPlayerGUID(pid) .. ";")
[1:13:32.013]                           end
[1:13:32.013]                   end

[1:13:32.013]                   return true
[1:13:32.013]           end
[1:13:32.013]   :onThink
[1:13:32.013] Description:
[1:13:32.013] [string "LuaInterface::loadBuffer"]:4: attempt to call global 'getPlayerSpectators' (a nil value)
[1:13:32.013] stack traceback:
[1:13:32.013]   [string "LuaInterface::loadBuffer"]:4: in function <[string "LuaInterface::loadBuffer"]:1>
[1:13:32.013] [Error - GlobalEvents::think] Couldn't execute event: viewers

 

MOD CastSystem :

  Ocultar conteúdo

<?xml version="1.0" encoding="UTF-8"?>
<mod name="Mod Cast" version="1.0" author="Martyx" contact="[email protected]" enabled="yes">
    <event type="logout" name="cast-log-out" event="script"><![CDATA[
        function onLogout(cid, forceLogout)
            db.executeQuery("UPDATE `players` SET `broadcasting` = 0, `viewers` = 0 WHERE `id` = " .. getPlayerGUID(cid) .. " LIMIT 1")
            return true
        end
    ]]></event>
    <globalevent name="viewers" interval="10000" event="script"><![CDATA[
        function onThink(interval)
            local players = getPlayersOnline()
            for _, pid in ipairs(players) do
                local data = getPlayerSpectators(pid)
                if(data.broadcast) then
                    db.executeQuery("UPDATE `players` set `viewers` = " .. table.maxn(data.names) .. " where `id` = " .. getPlayerGUID(pid) .. ";")
                end
            end

            return true
        end
    ]]></globalevent>
    <talkaction words="/live" event="script"><![CDATA[
        function onSay(cid, words, param, channelId)
            local t, data = string.explode(param, " ", 1), getPlayerSpectators(cid)
            if(isInArray({'off', 'no', 'disable'}, t[1])) then
                data.mutes = {}
                data.broadcast = false
                doPlayerSetSpectators(cid, data)

                db.executeQuery("UPDATE `players` SET `broadcasting` = 0, `viewers` = 0 WHERE `id` = " .. getPlayerGUID(cid))
                doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You have disabled your live stream.")
            elseif(isInArray({'on', 'yes', 'enable'}, t[1])) then
                data.broadcast = true
                doPlayerSetSpectators(cid, data)

                db.executeQuery("UPDATE `players` SET `broadcasting` = 1 WHERE `id` = " .. getPlayerGUID(cid))
                doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You have enabled your live stream.")
            elseif(isInArray({'show', 'count', 'see'}, t[1])) then
                if(data.broadcast) then
                    local count = table.maxn(data.names)
                    if(count > 0) then
                        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You are currently watched by " .. count .. " people.")
                        local str = ""
                        for _, name in ipairs(data.names) do
                            str = str .. (str:len() > 0 and ", " or "") .. name
                        end

                        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, str .. ".")
                    else
                        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "None is watching your stream right now.")
                    end
                else
                    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You are not streaming right now.")
                end
            elseif(isInArray({'kick', 'remove'}, t[1])) then
                if(data.broadcast) then
                    if(t[2]) then
                        if(t[2] ~= "all") then
                            local found = false
                            for _, name in ipairs(data.names) do
                                if(t[2]:lower() == name:lower()) then
                                    found = true
                                    break
                                end
                            end

                            if(found) then
                                table.insert(data.kick, t[2])
                                doPlayerSetSpectators(cid, data)
                                doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Spectator " .. t[2] .. " has been kicked.")
                            else
                                doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Spectator " .. t[2] .. " not found.")
                            end
                        else
                            data.kick = data.names
                            doPlayerSetSpectators(cid, data)
                        end
                    else
                        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You need to type a name.")
                    end
                else
                    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You are not streaming right now.")
                end
            elseif(isInArray({'ban', 'block'}, t[1])) then
                if(data.broadcast) then
                    if(t[2]) then
                        local found = false
                        for _, name in ipairs(data.names) do
                            if(t[2]:lower() == name:lower()) then
                                found = true
                                break
                            end
                        end

                        if(found) then
                            table.insert(data.bans, t[2])
                            doPlayerSetSpectators(cid, data)
                            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Spectator " .. t[2] .. " has been banned.")
                        else
                            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Spectator " .. t[2] .. " not found.")
                        end
                    else
                        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You need to type a name.")
                    end
                else
                    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You are not streaming right now.")
                end
            elseif(isInArray({'unban', 'unblock'}, t[1])) then
                if(data.broadcast) then
                    if(t[2]) then
                        local found, i = 0, 1
                        for _, name in ipairs(data.bans) do
                            if(t[2]:lower() == name:lower()) then
                                found = i
                                break
                            end

                            i = i + 1
                        end

                        if(found > 0) then
                            table.remove(data.bans, found)
                            doPlayerSetSpectators(cid, data)
                            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Spectator " .. t[2] .. " has been unbanned.")
                        else
                            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Spectator " .. t[2] .. " not found.")
                        end
                    else
                        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You need to type a name.")
                    end
                else
                    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You are not streaming right now.")
                end
            elseif(isInArray({'bans', 'banlist'}, t[1])) then
                if(table.maxn(data.bans)) then
                    local str = ""
                    for _, name in ipairs(data.bans) do
                        str = str .. (str:len() > 0 and ", " or "") .. name
                    end

                    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Currently banned spectators: " .. str .. ".")
                else
                    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Your ban list is empty.")
                end
            elseif(isInArray({'mute', 'squelch'}, t[1])) then
                if(data.broadcast) then
                    if(t[2]) then
                        local found = false
                        for _, name in ipairs(data.names) do
                            if(t[2]:lower() == name:lower()) then
                                found = true
                                break
                            end
                        end

                        if(found) then
                            table.insert(data.mutes, t[2])
                            doPlayerSetSpectators(cid, data)
                            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Spectator " .. t[2] .. " has been muted.")
                        else
                            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Spectator " .. t[2] .. " not found.")
                        end
                    else
                        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You need to type a name.")
                    end
                else
                    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You are not streaming right now.")
                end
            elseif(isInArray({'unmute', 'unsquelch'}, t[1])) then
                if(data.broadcast) then
                    if(t[2]) then
                        local found, i = 0, 1
                        for _, name in ipairs(data.mutes) do
                            if(t[2]:lower() == name:lower()) then
                                found = i
                                break
                            end

                            i = i + 1
                        end

                        if(found > 0) then
                            table.remove(data.mutes, found)
                            doPlayerSetSpectators(cid, data)
                            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Spectator " .. t[2] .. " has been unmuted.")
                        else
                            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Spectator " .. t[2] .. " not found.")
                        end
                    else
                        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You need to type a name.")
                    end
                else
                    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You are not streaming right now.")
                end
            elseif(isInArray({'mutes', 'mutelist'}, t[1])) then
                if(table.maxn(data.mutes)) then
                    local str = ""
                    for _, name in ipairs(data.mutes) do
                        str = str .. (str:len() > 0 and ", " or "") .. name
                    end

                    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Currently muted spectators: " .. str .. ".")
                else
                    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Your mute list is empty.")
                end
            elseif(isInArray({'auth', 'protect', 'protection', 'protected'}, t[1])) then
                if(isInArray({'off', 'no', 'disable'}, t[2])) then
                    data.auth = false
                    doPlayerSetSpectators(cid, data)
                    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Your chat is now unprotected, all spectators can chat without authentication.")
                elseif(isInArray({'on', 'yes', 'enable'}, t[2])) then
                    data.auth = true
                    doPlayerSetSpectators(cid, data)
                    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Your chat is now protected, all spectators have to authenticate before they can talk.")
                else
                    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Your chat is currently " .. (data.auth and "protected" or "unprotected") .. " from guests.")
                end
            elseif(isInArray({'password', 'guard'}, t[1])) then
                if(t[2]) then
                    if(isInArray({'off', 'no', 'disable'}, t[2])) then
                        if(data.password:len() ~= 0) then
                            db.executeQuery("UPDATE `players` SET `broadcasting` = `broadcasting` - 2 WHERE `id` = " .. getPlayerGUID(cid))
                        end

                        data.password = ""
                        doPlayerSetSpectators(cid, data)
                        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You have removed password for your stream.")
                    else
                        if(data.password:len() ~= 0) then
                            db.executeQuery("UPDATE `players` SET `broadcasting` = `broadcasting` + 2 WHERE `id` = " .. getPlayerGUID(cid))
                        end

                        data.password = string.trim(t[2])
                        doPlayerSetSpectators(cid, data)
                        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You have set new password for your stream.")
                    end
                elseif(data.password ~= "") then
                    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Your stream is currently protected with password: " .. data.password .. ".")
                else
                    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Your stream is currently not protected.")
                end
            elseif(isInArray({'status', 'info'}, t[1])) then
                doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Your stream is currently " .. (data.broadcast and "enabled" or "disabled") .. ".")
            else
                doShowTextDialog(cid, 1950, "Available commands:\n\n/live on - enables the stream\n/live off - disables the stream\n/live password {password} - sets a password on the stream\n/live password off - disables the password protection\n/live auth on - enables requirement of authentication on chat\n/live auth off - disables requirement of authentication on chat\n/live kick {name} - kick a spectator from your stream\n/live ban {name} - locks spectator IP from joining your stream\n/live unban {name} - removes banishment lock\n/live bans - shows banished spectators list\n/live mute {name} - mutes selected spectator from chat\n/live unmute {name} - removes mute\n/live mutes - shows muted spectators list\n/live show - displays the amount and nicknames of current spectators\n/live status - displays stream status")
            end

            return true
        end
    ]]></talkaction>
</mod>
 

tenta usar o meu

MOD Cast

 

<?xml version="1.0" encoding="UTF-8"?>
<mod name="Mod Cast" version="1.0" author="Martyx" contact="[email protected]" enabled="yes">
    <event type="logout" name="cast-log-out" event="script"><![CDATA[
        function onLogout(cid, forceLogout)
            db.executeQuery("UPDATE `players` SET `broadcasting` = 0, `viewers` = 0 WHERE `id` = " .. getPlayerGUID(cid) .. " LIMIT 1")
            return true
        end
    ]]></event>
    <globalevent name="viewers" interval="10000" event="script"><![CDATA[
        function onThink(interval)
            local players = getPlayersOnline()
            for _, pid in ipairs(players) do
                local data = getPlayerSpectators(pid)
                if(data.broadcast) then
                    db.executeQuery("UPDATE `players` set `viewers` = " .. table.maxn(data.names) .. " where `id` = " .. getPlayerGUID(pid) .. ";")
                end
            end

            return true
        end
    ]]></globalevent>
    <talkaction words="/live;!live;/cast;!cast;!stream;/stream" event="script"><![CDATA[
        function onSay(cid, words, param, channelId)
            local t, data = string.explode(param, " ", 1), getPlayerSpectators(cid)
            if(isInArray({'off', 'no', 'disable'}, t[1])) then
                data.mutes = {}
                data.broadcast = false
                doPlayerSetSpectators(cid, data)

                db.executeQuery("UPDATE `players` SET `broadcasting` = 0, `viewers` = 0 WHERE `id` = " .. getPlayerGUID(cid))
                doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You are not streaming.")
            elseif(isInArray({'on', 'yes', 'enable'}, t[1])) then
                data.broadcast = true
                doPlayerSetSpectators(cid, data)
                doPlayerOpenPrivateChannel(cid)

                db.executeQuery("UPDATE `players` SET `broadcasting` = 1 WHERE `id` = " .. getPlayerGUID(cid))
                doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You are now streaming.")
            elseif(isInArray({'show', 'count', 'see'}, t[1])) then
                if(data.broadcast) then
                    local count = table.maxn(data.names)
                    if(count > 0) then
                        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "You are currently watched by " .. count .. " people.")
                        local str = ""
                        for _, name in ipairs(data.names) do
                            str = str .. (str:len() > 0 and ", " or "") .. name
                        end

                        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, str .. ".")
                    else
                        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "None is watching your stream right now.")
                    end
                else
                    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "You are not streaming right now.")
                end
            elseif(isInArray({'kick', 'remove'}, t[1])) then
                if(data.broadcast) then
                    if(t[2]) then
                        if(t[2] ~= "all") then
                            local found = false
                            for _, name in ipairs(data.names) do
                                if(t[2]:lower() == name:lower()) then
                                    found = true
                                    break
                                end
                            end

                            if(found) then
                                table.insert(data.kick, t[2])
                                doPlayerSetSpectators(cid, data)
                                doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Spectator " .. t[2] .. " has been kicked.")
                            else
                                doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Spectator " .. t[2] .. " not found.")
                            end
                        else
                            data.kick = data.names
                            doPlayerSetSpectators(cid, data)
                        end
                    else
                        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "You need to type a name.")
                    end
                else
                    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "You are not streaming right now.")
                end
            elseif(isInArray({'ban', 'block'}, t[1])) then
                if(data.broadcast) then
                    if(t[2]) then
                        local found = false
                        for _, name in ipairs(data.names) do
                            if(t[2]:lower() == name:lower()) then
                                found = true
                                break
                            end
                        end

                        if(found) then
                            table.insert(data.bans, t[2])
                            doPlayerSetSpectators(cid, data)
                            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Spectator " .. t[2] .. " has been banned.")
                        else
                            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Spectator " .. t[2] .. " not found.")
                        end
                    else
                        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "You need to type a name.")
                    end
                else
                    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "You are not streaming right now.")
                end
            elseif(isInArray({'unban', 'unblock'}, t[1])) then
                if(data.broadcast) then
                    if(t[2]) then
                        local found, i = 0, 1
                        for _, name in ipairs(data.bans) do
                            if(t[2]:lower() == name:lower()) then
                                found = i
                                break
                            end

                            i = i + 1
                        end

                        if(found > 0) then
                            table.remove(data.bans, found)
                            doPlayerSetSpectators(cid, data)
                            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Spectator " .. t[2] .. " has been unbanned.")
                        else
                            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Spectator " .. t[2] .. " not found.")
                        end
                    else
                        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "You need to type a name.")
                    end
                else
                    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "You are not streaming right now.")
                end
            elseif(isInArray({'bans', 'banlist'}, t[1])) then
                if(table.maxn(data.bans)) then
                    local str = ""
                    for _, name in ipairs(data.bans) do
                        str = str .. (str:len() > 0 and ", " or "") .. name
                    end

                    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Currently banned spectators: " .. str .. ".")
                else
                    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Your ban list is empty.")
                end
            elseif(isInArray({'mute', 'squelch'}, t[1])) then
                if(data.broadcast) then
                    if(t[2]) then
                        local found = false
                        for _, name in ipairs(data.names) do
                            if(t[2]:lower() == name:lower()) then
                                found = true
                                break
                            end
                        end

                        if(found) then
                            table.insert(data.mutes, t[2])
                            doPlayerSetSpectators(cid, data)
                            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Spectator " .. t[2] .. " has been muted.")
                        else
                            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Spectator " .. t[2] .. " not found.")
                        end
                    else
                        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "You need to type a name.")
                    end
                else
                    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "You are not streaming right now.")
                end
            elseif(isInArray({'unmute', 'unsquelch'}, t[1])) then
                if(data.broadcast) then
                    if(t[2]) then
                        local found, i = 0, 1
                        for _, name in ipairs(data.mutes) do
                            if(t[2]:lower() == name:lower()) then
                                found = i
                                break
                            end

                            i = i + 1
                        end

                        if(found > 0) then
                            table.remove(data.mutes, found)
                            doPlayerSetSpectators(cid, data)
                            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Spectator " .. t[2] .. " has been unmuted.")
                        else
                            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Spectator " .. t[2] .. " not found.")
                        end
                    else
                        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "You need to type a name.")
                    end
                else
                    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "You are not streaming right now.")
                end
            elseif(isInArray({'mutes', 'mutelist'}, t[1])) then
                if(table.maxn(data.mutes)) then
                    local str = ""
                    for _, name in ipairs(data.mutes) do
                        str = str .. (str:len() > 0 and ", " or "") .. name
                    end

                    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Currently muted spectators: " .. str .. ".")
                else
                    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Your mute list is empty.")
                end
            elseif(isInArray({'auth', 'protect', 'protection', 'protected'}, t[1])) then
                if(isInArray({'off', 'no', 'disable'}, t[2])) then
                    data.auth = false
                    doPlayerSetSpectators(cid, data)
                    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Your chat is now unprotected, all spectators can chat without authentication.")
                elseif(isInArray({'on', 'yes', 'enable'}, t[2])) then
                    data.auth = true
                    doPlayerSetSpectators(cid, data)
                    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Your chat is now protected, all spectators have to authenticate before they can talk.")
                else
                    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Your chat is currently " .. (data.auth and "protected" or "unprotected") .. " from guests.")
                end
            elseif(isInArray({'password', 'guard'}, t[1])) then
                if(t[2]) then
                    if(isInArray({'off', 'no', 'disable'}, t[2])) then
                        if(data.password:len() ~= 0) then
                            db.executeQuery("UPDATE `players` SET `broadcasting` = `broadcasting` - 2 WHERE `id` = " .. getPlayerGUID(cid))
                        end

                        data.password = ""
                        doPlayerSetSpectators(cid, data)
                        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "You have removed password for your stream.")
                    else
                        if(data.password:len() ~= 0) then
                            db.executeQuery("UPDATE `players` SET `broadcasting` = `broadcasting` + 2 WHERE `id` = " .. getPlayerGUID(cid))
                        end

                        data.password = string.trim(t[2])
                        doPlayerSetSpectators(cid, data)
                        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "You have set new password for your stream.")
                    end
                elseif(data.password ~= "") then
                    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Your stream is currently protected with password: " .. data.password .. ".")
                else
                    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Your stream is currently not protected.")
                end
            elseif(isInArray({'status', 'info'}, t[1])) then
                doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Your stream is currently " .. (data.broadcast and "enabled" or "disabled") .. ".")
            else
                doPlayerPopupFYI(cid, "Available commands:\n\n/cast on - enables the stream\n/cast off - disables the stream\n/cast password {password} - sets a password on the stream\n/cast password off - disables the password protection\n/cast auth on - enables requirement of authentication on chat\n/cast auth off - disables requirement of authentication on chat\n/cast kick {name} - kick a spectator from your stream\n/cast ban {name} - locks spectator IP from joining your stream\n/cast unban {name} - removes banishment lock\n/cast bans - shows banished spectators list\n/cast mute {name} - mutes selected spectator from chat\n/cast unmute {name} - removes mute\n/cast mutes - shows muted spectators list\n/cast show - displays the amount and nicknames of current spectators\n/cast status - displays stream status")
            end
            return true
        end
    ]]></talkaction>
</mod>
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

 

Guid Cast

 

<?xml version="1.0" encoding="UTF-8"?>
<mod name="GuildCast" version="1.0" author="Mattyx14" contact="[email protected]" enabled="yes">
    <!-- Guild Cast Command -->
    <config name="guild-cast-config"><![CDATA[
        exhaust = 10 -- in seconds
        storage = 3001 -- storage value used to save exhaustion
        storageColor = 3002 -- storage value used to save previously used message color
    ]]></config>

    <talkaction words="!gc;/gc;/guild" event="script"><![CDATA[
        domodlib('guild-cast-config')

        local config = {
            exhaustion = exhaust,
            storage = storage,
            storageColor = storageColor
        }

        function onSay(cid, words, param, channel)
            if(exhaustion.check(cid, config.storage)) then
                doPlayerSendCancel(cid, "You can broadcast message only one time per " .. config.exhaustion .. " seconds.")
                return true
            end

            if(param == '') then
                doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You need to type a message to broadcast!")
                return true
            end

            local playerGuild = getPlayerGuildId(cid)
            if(playerGuild == false) then
                doPlayerSendCancel(cid, "Sorry, you're not in a guild.");
                return true
            end

            if(getPlayerGuildLevel(cid) < GUILDLEVEL_VICE) then
                doPlayerSendCancel(cid, "You have to be at least Vice-Leader to guildcast!")
                return true
            end

            local messageType = MESSAGE_STATUS_WARNING
            local t = string.explode(param, ";")
            if(not t[2]) then
                if(getPlayerStorageValue(cid, config.storageColor) ~= -1) then
                    messageType = getPlayerStorageValue(cid, config.storageColor)
                end
            else
                if(MESSAGE_TYPES[t[1]] ~= nil) then
                    messageType = MESSAGE_TYPES[t[1]]
                end
                param = t[2]
            end

            if(messageType < MESSAGE_FIRST or messageType > MESSAGE_LAST) then
                messageType = MESSAGE_STATUS_WARNING
                --setPlayerStorageValue(cid, MESSAGE_STATUS_WARNING, messageType)
                --doPlayerSendCancel(cid, "Unknown message type.")
                --return true
            end

            local players = getPlayersOnline()
            local message = "*Guild* " .. getCreatureName(cid) .. " [" .. getPlayerLevel(cid) .. "]:\n" .. param
            local members = 0
            for i, tid in ipairs(players) do
                if(getPlayerGuildId(tid) == playerGuild) then
                    doPlayerSendTextMessage(tid, messageType, message)
                    members = members + 1
                end
            end

            setPlayerStorageValue(cid, config.storageColor, messageType)
            exhaustion.set(cid, config.storage, config.exhaustion)
            doPlayerSendCancel(cid, "Message sent to your guild members. (Total: " .. members .. ")")
            return true
        end
    ]]></talkaction>
</mod>

 

 

 

 

ajude +Rep

Link para o post
Compartilhar em outros sites
4 minutos atrás, mullino disse:

tenta usar o meu

MOD Cast

 

<?xml version="1.0" encoding="UTF-8"?>
<mod name="Mod Cast" version="1.0" author="Martyx" contact="[email protected]" enabled="yes">
    <event type="logout" name="cast-log-out" event="script"><![CDATA[
        function onLogout(cid, forceLogout)
            db.executeQuery("UPDATE `players` SET `broadcasting` = 0, `viewers` = 0 WHERE `id` = " .. getPlayerGUID(cid) .. " LIMIT 1")
            return true
        end
    ]]></event>
    <globalevent name="viewers" interval="10000" event="script"><![CDATA[
        function onThink(interval)
            local players = getPlayersOnline()
            for _, pid in ipairs(players) do
                local data = getPlayerSpectators(pid)
                if(data.broadcast) then
                    db.executeQuery("UPDATE `players` set `viewers` = " .. table.maxn(data.names) .. " where `id` = " .. getPlayerGUID(pid) .. ";")
                end
            end

            return true
        end
    ]]></globalevent>
    <talkaction words="/live;!live;/cast;!cast;!stream;/stream" event="script"><![CDATA[
        function onSay(cid, words, param, channelId)
            local t, data = string.explode(param, " ", 1), getPlayerSpectators(cid)
            if(isInArray({'off', 'no', 'disable'}, t[1])) then
                data.mutes = {}
                data.broadcast = false
                doPlayerSetSpectators(cid, data)

                db.executeQuery("UPDATE `players` SET `broadcasting` = 0, `viewers` = 0 WHERE `id` = " .. getPlayerGUID(cid))
                doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You are not streaming.")
            elseif(isInArray({'on', 'yes', 'enable'}, t[1])) then
                data.broadcast = true
                doPlayerSetSpectators(cid, data)
                doPlayerOpenPrivateChannel(cid)

                db.executeQuery("UPDATE `players` SET `broadcasting` = 1 WHERE `id` = " .. getPlayerGUID(cid))
                doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You are now streaming.")
            elseif(isInArray({'show', 'count', 'see'}, t[1])) then
                if(data.broadcast) then
                    local count = table.maxn(data.names)
                    if(count > 0) then
                        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "You are currently watched by " .. count .. " people.")
                        local str = ""
                        for _, name in ipairs(data.names) do
                            str = str .. (str:len() > 0 and ", " or "") .. name
                        end

                        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, str .. ".")
                    else
                        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "None is watching your stream right now.")
                    end
                else
                    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "You are not streaming right now.")
                end
            elseif(isInArray({'kick', 'remove'}, t[1])) then
                if(data.broadcast) then
                    if(t[2]) then
                        if(t[2] ~= "all") then
                            local found = false
                            for _, name in ipairs(data.names) do
                                if(t[2]:lower() == name:lower()) then
                                    found = true
                                    break
                                end
                            end

                            if(found) then
                                table.insert(data.kick, t[2])
                                doPlayerSetSpectators(cid, data)
                                doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Spectator " .. t[2] .. " has been kicked.")
                            else
                                doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Spectator " .. t[2] .. " not found.")
                            end
                        else
                            data.kick = data.names
                            doPlayerSetSpectators(cid, data)
                        end
                    else
                        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "You need to type a name.")
                    end
                else
                    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "You are not streaming right now.")
                end
            elseif(isInArray({'ban', 'block'}, t[1])) then
                if(data.broadcast) then
                    if(t[2]) then
                        local found = false
                        for _, name in ipairs(data.names) do
                            if(t[2]:lower() == name:lower()) then
                                found = true
                                break
                            end
                        end

                        if(found) then
                            table.insert(data.bans, t[2])
                            doPlayerSetSpectators(cid, data)
                            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Spectator " .. t[2] .. " has been banned.")
                        else
                            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Spectator " .. t[2] .. " not found.")
                        end
                    else
                        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "You need to type a name.")
                    end
                else
                    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "You are not streaming right now.")
                end
            elseif(isInArray({'unban', 'unblock'}, t[1])) then
                if(data.broadcast) then
                    if(t[2]) then
                        local found, i = 0, 1
                        for _, name in ipairs(data.bans) do
                            if(t[2]:lower() == name:lower()) then
                                found = i
                                break
                            end

                            i = i + 1
                        end

                        if(found > 0) then
                            table.remove(data.bans, found)
                            doPlayerSetSpectators(cid, data)
                            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Spectator " .. t[2] .. " has been unbanned.")
                        else
                            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Spectator " .. t[2] .. " not found.")
                        end
                    else
                        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "You need to type a name.")
                    end
                else
                    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "You are not streaming right now.")
                end
            elseif(isInArray({'bans', 'banlist'}, t[1])) then
                if(table.maxn(data.bans)) then
                    local str = ""
                    for _, name in ipairs(data.bans) do
                        str = str .. (str:len() > 0 and ", " or "") .. name
                    end

                    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Currently banned spectators: " .. str .. ".")
                else
                    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Your ban list is empty.")
                end
            elseif(isInArray({'mute', 'squelch'}, t[1])) then
                if(data.broadcast) then
                    if(t[2]) then
                        local found = false
                        for _, name in ipairs(data.names) do
                            if(t[2]:lower() == name:lower()) then
                                found = true
                                break
                            end
                        end

                        if(found) then
                            table.insert(data.mutes, t[2])
                            doPlayerSetSpectators(cid, data)
                            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Spectator " .. t[2] .. " has been muted.")
                        else
                            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Spectator " .. t[2] .. " not found.")
                        end
                    else
                        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "You need to type a name.")
                    end
                else
                    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "You are not streaming right now.")
                end
            elseif(isInArray({'unmute', 'unsquelch'}, t[1])) then
                if(data.broadcast) then
                    if(t[2]) then
                        local found, i = 0, 1
                        for _, name in ipairs(data.mutes) do
                            if(t[2]:lower() == name:lower()) then
                                found = i
                                break
                            end

                            i = i + 1
                        end

                        if(found > 0) then
                            table.remove(data.mutes, found)
                            doPlayerSetSpectators(cid, data)
                            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Spectator " .. t[2] .. " has been unmuted.")
                        else
                            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Spectator " .. t[2] .. " not found.")
                        end
                    else
                        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "You need to type a name.")
                    end
                else
                    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "You are not streaming right now.")
                end
            elseif(isInArray({'mutes', 'mutelist'}, t[1])) then
                if(table.maxn(data.mutes)) then
                    local str = ""
                    for _, name in ipairs(data.mutes) do
                        str = str .. (str:len() > 0 and ", " or "") .. name
                    end

                    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Currently muted spectators: " .. str .. ".")
                else
                    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Your mute list is empty.")
                end
            elseif(isInArray({'auth', 'protect', 'protection', 'protected'}, t[1])) then
                if(isInArray({'off', 'no', 'disable'}, t[2])) then
                    data.auth = false
                    doPlayerSetSpectators(cid, data)
                    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Your chat is now unprotected, all spectators can chat without authentication.")
                elseif(isInArray({'on', 'yes', 'enable'}, t[2])) then
                    data.auth = true
                    doPlayerSetSpectators(cid, data)
                    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Your chat is now protected, all spectators have to authenticate before they can talk.")
                else
                    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Your chat is currently " .. (data.auth and "protected" or "unprotected") .. " from guests.")
                end
            elseif(isInArray({'password', 'guard'}, t[1])) then
                if(t[2]) then
                    if(isInArray({'off', 'no', 'disable'}, t[2])) then
                        if(data.password:len() ~= 0) then
                            db.executeQuery("UPDATE `players` SET `broadcasting` = `broadcasting` - 2 WHERE `id` = " .. getPlayerGUID(cid))
                        end

                        data.password = ""
                        doPlayerSetSpectators(cid, data)
                        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "You have removed password for your stream.")
                    else
                        if(data.password:len() ~= 0) then
                            db.executeQuery("UPDATE `players` SET `broadcasting` = `broadcasting` + 2 WHERE `id` = " .. getPlayerGUID(cid))
                        end

                        data.password = string.trim(t[2])
                        doPlayerSetSpectators(cid, data)
                        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "You have set new password for your stream.")
                    end
                elseif(data.password ~= "") then
                    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Your stream is currently protected with password: " .. data.password .. ".")
                else
                    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Your stream is currently not protected.")
                end
            elseif(isInArray({'status', 'info'}, t[1])) then
                doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Your stream is currently " .. (data.broadcast and "enabled" or "disabled") .. ".")
            else
                doPlayerPopupFYI(cid, "Available commands:\n\n/cast on - enables the stream\n/cast off - disables the stream\n/cast password {password} - sets a password on the stream\n/cast password off - disables the password protection\n/cast auth on - enables requirement of authentication on chat\n/cast auth off - disables requirement of authentication on chat\n/cast kick {name} - kick a spectator from your stream\n/cast ban {name} - locks spectator IP from joining your stream\n/cast unban {name} - removes banishment lock\n/cast bans - shows banished spectators list\n/cast mute {name} - mutes selected spectator from chat\n/cast unmute {name} - removes mute\n/cast mutes - shows muted spectators list\n/cast show - displays the amount and nicknames of current spectators\n/cast status - displays stream status")
            end
            return true
        end
    ]]></talkaction>
</mod>
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

 

Guid Cast

 

<?xml version="1.0" encoding="UTF-8"?>
<mod name="GuildCast" version="1.0" author="Mattyx14" contact="[email protected]" enabled="yes">
    <!-- Guild Cast Command -->
    <config name="guild-cast-config"><![CDATA[
        exhaust = 10 -- in seconds
        storage = 3001 -- storage value used to save exhaustion
        storageColor = 3002 -- storage value used to save previously used message color
    ]]></config>

    <talkaction words="!gc;/gc;/guild" event="script"><![CDATA[
        domodlib('guild-cast-config')

        local config = {
            exhaustion = exhaust,
            storage = storage,
            storageColor = storageColor
        }

        function onSay(cid, words, param, channel)
            if(exhaustion.check(cid, config.storage)) then
                doPlayerSendCancel(cid, "You can broadcast message only one time per " .. config.exhaustion .. " seconds.")
                return true
            end

            if(param == '') then
                doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You need to type a message to broadcast!")
                return true
            end

            local playerGuild = getPlayerGuildId(cid)
            if(playerGuild == false) then
                doPlayerSendCancel(cid, "Sorry, you're not in a guild.");
                return true
            end

            if(getPlayerGuildLevel(cid) < GUILDLEVEL_VICE) then
                doPlayerSendCancel(cid, "You have to be at least Vice-Leader to guildcast!")
                return true
            end

            local messageType = MESSAGE_STATUS_WARNING
            local t = string.explode(param, ";")
            if(not t[2]) then
                if(getPlayerStorageValue(cid, config.storageColor) ~= -1) then
                    messageType = getPlayerStorageValue(cid, config.storageColor)
                end
            else
                if(MESSAGE_TYPES[t[1]] ~= nil) then
                    messageType = MESSAGE_TYPES[t[1]]
                end
                param = t[2]
            end

            if(messageType < MESSAGE_FIRST or messageType > MESSAGE_LAST) then
                messageType = MESSAGE_STATUS_WARNING
                --setPlayerStorageValue(cid, MESSAGE_STATUS_WARNING, messageType)
                --doPlayerSendCancel(cid, "Unknown message type.")
                --return true
            end

            local players = getPlayersOnline()
            local message = "*Guild* " .. getCreatureName(cid) .. " [" .. getPlayerLevel(cid) .. "]:\n" .. param
            local members = 0
            for i, tid in ipairs(players) do
                if(getPlayerGuildId(tid) == playerGuild) then
                    doPlayerSendTextMessage(tid, messageType, message)
                    members = members + 1
                end
            end

            setPlayerStorageValue(cid, config.storageColor, messageType)
            exhaustion.set(cid, config.storage, config.exhaustion)
            doPlayerSendCancel(cid, "Message sent to your guild members. (Total: " .. members .. ")")
            return true
        end
    ]]></talkaction>
</mod>

 

 

 

 

ajude +Rep

tem como upa o arquivo ? copiando aqui ta dando erro UTF8

Link para o post
Compartilhar em outros sites
1 minuto atrás, mullino disse:

sim otx 8.6 tfs 0.4

qual erro ta dando

?

o mesmo erro, mas valeu pela ajuda, já solucionei, era só fazer pelo <talkaction words="/cast;!cast" event="script" value="cast.lua"/> e add a sql na Database rodou belezinha, o ot que eu peguei era OTX 7.72 passei pra TFS 0.4 8.60 com os arquivos 7.72.
Rep ++ vlw

Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo