Ir para conteúdo

Featured Replies

Postado

Quando digito !cast on, aparece esse erro logo a baixo, só que o cast fica con consigo ver, porem da esse erro enorme,e chega ate da uma trava no servidor.

alguem poe me ajuda a solucionar?

 

Eu uso esse OTX  \/

 

The OTX Server Version: (2.1.70 - 1591) - Codename: (Mycological)
Compilied with Microsoft Visual C++ version 10.0 for arch 64 Bits at Feb  3 2016 17:02:53

 

Citar

[Error - TalkAction Interface]
                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
        :onSay
Description:
[string "LuaInterface::loadBuffer"]:13: attempt to call global 'doPlayerOpenPrivateChannel' (a nil value)
stack traceback:
        [string "LuaInterface::loadBuffer"]:13: in function <[string "LuaInterface::loadBuffer"]:1>

 

Esse é o script do cast que utilizei

[MODS] Cast on/off em OTX! 8.60 - Tibia Clássico (migrando) - Tibia King - Tudo sobre Tibia, OTServ e Bots!

 

 

 

  • Respostas 9
  • Visualizações 636
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • verifica se existe essa função na sua source, essa é uma função do luascript.cpp     caso não exista, va em luascript.cpp procure por: doPlayerOpenChannel ou doCreatureChannelSay

  • tenta modificar o script da sua source pelo que mandei, e verifica se existe a acc de cast tudo certinho

Postado
22 horas atrás, vitinhoo96 disse:

doPlayerOpenPrivateChannel(cid)

 

22 horas atrás, vitinhoo96 disse:

[string "LuaInterface::loadBuffer"]:13: attempt to call global 'doPlayerOpenPrivateChannel' (a nil value)

 

verifica se existe essa função na sua source, essa é uma função do luascript.cpp

 

 

caso não exista, va em luascript.cpp
procure por:

doPlayerOpenChannel ou doCreatureChannelSay

e adicione abaixo isso:

	//doPlayerOpenPrivateChannel(cid)
	lua_register(m_luaState, "doPlayerOpenPrivateChannel", LuaInterface::luaDoPlayerOpenPrivateChannel);

 

 

depois procure novamente por doPlayerOpenChannel ou doCreatureChannelSay

vai achar uma função +/- assim:

int32_t LuaInterface::luaDoPlayerOpenChannel(lua_State* L)
{
	//doPlayerOpenChannel(cid, channelId)
	uint16_t channelId = popNumber(L);
	uint32_t cid = popNumber(L);

	ScriptEnviroment* env = getEnv();
	if(env->getPlayerByUID(cid))
	{
		lua_pushboolean(L, g_game.playerOpenChannel(cid, channelId));
		return 1;
	}

	errorEx(getError(LUA_ERROR_PLAYER_NOT_FOUND));
	lua_pushboolean(L, false);
	return 1;
}

 

ADICIONE ABAIXO DELA isso:

int32_t LuaInterface::luaDoPlayerOpenPrivateChannel(lua_State* L)
{
	//doPlayerOpenPrivateChannel(cid)
	uint32_t cid = popNumber(L);

	ScriptEnviroment* env = getEnv();
	if(env->getPlayerByUID(cid))
	{
		lua_pushboolean(L, g_game.playerCreatePrivateChannel(cid));
		return 1;
	}

	errorEx(getError(LUA_ERROR_PLAYER_NOT_FOUND));
	lua_pushboolean(L, false);
	return 1;
}

 

 

depois abra o luascript.h
procure por luaDoPlayerOpenChannel

vai ser algo tipo: 

static int32_t luaDoPlayerOpenChannel(lua_State* L);

 

e ADICIONE ABAIXO:

static int32_t luaDoPlayerOpenPrivateChannel(lua_State* L);

 

após isso, RECOMPILE SUA SOURCE, e REABRA SEU OT com o novo arquivo que foi compilado e teste.

Postado
  • Autor
1 minuto atrás, FeeTads disse:

 

 

verifica se existe essa função na sua source, essa é uma função do luascript.cpp

 

 

caso não exista, va em luascript.cpp
procure por:

doPlayerOpenChannel ou doCreatureChannelSay

e adicione abaixo isso:


	//doPlayerOpenPrivateChannel(cid)
	lua_register(m_luaState, "doPlayerOpenPrivateChannel", LuaInterface::luaDoPlayerOpenPrivateChannel);

 

 

depois procure novamente por doPlayerOpenChannel ou doCreatureChannelSay

vai achar uma função +/- assim:


int32_t LuaInterface::luaDoPlayerOpenChannel(lua_State* L)
{
	//doPlayerOpenChannel(cid, channelId)
	uint16_t channelId = popNumber(L);
	uint32_t cid = popNumber(L);

	ScriptEnviroment* env = getEnv();
	if(env->getPlayerByUID(cid))
	{
		lua_pushboolean(L, g_game.playerOpenChannel(cid, channelId));
		return 1;
	}

	errorEx(getError(LUA_ERROR_PLAYER_NOT_FOUND));
	lua_pushboolean(L, false);
	return 1;
}

 

ADICIONE ABAIXO DELA isso:


int32_t LuaInterface::luaDoPlayerOpenPrivateChannel(lua_State* L)
{
	//doPlayerOpenPrivateChannel(cid)
	uint32_t cid = popNumber(L);

	ScriptEnviroment* env = getEnv();
	if(env->getPlayerByUID(cid))
	{
		lua_pushboolean(L, g_game.playerCreatePrivateChannel(cid));
		return 1;
	}

	errorEx(getError(LUA_ERROR_PLAYER_NOT_FOUND));
	lua_pushboolean(L, false);
	return 1;
}

 

 

depois abra o luascript.h
procure por luaDoPlayerOpenChannel

vai ser algo tipo: 


static int32_t luaDoPlayerOpenChannel(lua_State* L);

 

e ADICIONE ABAIXO:


static int32_t luaDoPlayerOpenPrivateChannel(lua_State* L);

 

após isso, RECOMPILE SUA SOURCE, e REABRA SEU OT com o novo arquivo que foi compilado e teste.

consegui resolver ja, so que agora quando digito !cast on, nao aprece nem um erro, porem não abre o channel do cast

 

Postado
1 minuto atrás, vitinhoo96 disse:

consegui resolver ja, so que agora quando digito !cast on, nao aprece nem um erro, porem não abre o channel do cast

tenta modificar o script da sua source pelo que mandei, e verifica se existe a acc de cast tudo certinho

Postado
  • Autor
Agora, FeeTads disse:

tenta modificar o script da sua source pelo que mandei, e verifica se existe a acc de cast tudo certinho

sim ele esta funcioando certinho, consigo ver o player assisinto a cast, mas quando digito o comando !cast on, ele não abre o channel chat, tenho que apertar CTRL+O pra abrir o chat pra conversar com os espectadores 

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

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.7k

Informação Importante

Confirmação de Termo