TO
dúvida

Como usar essa funçao aqui?

Por tonynamoral, 18 de dez. de 2012 em Scripts

tibia
otserv
8
903
tonynamoralT
18 de dezembro de 2012 às 20:39

Olá galera , eu estou criando 1 sistema de Tibia-Cast , e eu estou com 1 duvida na funçao .

 

eu criei um param aqui , porém ele nao está funcionado , ele está assim

 

if param == "users" then

local users = getChannelUsers(10)

doPlayerSendChannelMessage(cid,"",""..users.." Users.",TALKTYPE_BLABLABLA_W,10)

end

 

o Que tem de errado?

RoksasR
18 de dezembro de 2012 às 20:48

Não está funcionando com erro no Distro, ou não está funcionando nada mesmo?

tonynamoralT
18 de dezembro de 2012 às 21:02

naum ta funfando nada .

brun123B
18 de dezembro de 2012 às 23:34

posta o código inteiro se quiser que a gente arrume

 

você tá verificando se a variável param é uma string com valor "users", eu duvido muito que é isso mesmo que você queria fazer

se você tiver declarado ela como qualquer outra coisa ou não tiver declarado, esse bloco do if nunca vai ser lido, pois sua condição sempre será false

SlicerS
18 de dezembro de 2012 às 23:41

/\

achu q o param ali eh de uma talk..

e oq ele queria eh saber como funciona a funçao...

doPlayerSendChannelMessage()...

q alias eh assim..

doPlayerSendChannelMessage(cid, author, message, SpeakClasses, channel)

achu q da pra usar assim..

doPlayerSendChannelMessage(cid, getCreatureName(cid), "blablabla", 20, 10)

Editado Dezembro 18 por Slicer

tonynamoralT
19 de dezembro de 2012 às 10:07

@

Slicer

 

, de enviar para o channel , eu ja fiz . agora eu quero por para quando o cara falar , /cast users.

 

aparecer quantas pessoas estao no channel

Editado Dezembro 19 por tonynamoral

OneshotO
19 de dezembro de 2012 às 10:39

int32_t LuaInterface::luaGetChannelUsers(lua_State* L)
{
//getChannelUsers(channelId)
ScriptEnviroment* env = getEnv();
uint16_t channelId = popNumber(L);

if(ChatChannel* channel = g_chat.getChannelById(channelId))
{
	UsersMap usersMap = channel->getUsers();
	UsersMap::iterator it = usersMap.begin();

	lua_newtable(L);
	for(int32_t i = 1; it != usersMap.end(); ++it, ++i)
	{
		lua_pushnumber(L, i);
		lua_pushnumber(L, env->addThing(it->second));
		pushTable(L);
	}
}
else
	lua_pushboolean(L, false);

return 1;
}

 

Ela funciona como descrito acima.

 

Abraços.

Editado Dezembro 19 por Oneshot

SmiXS
19 de dezembro de 2012 às 10:49

Tente assim:

function onSay(cid, words, param, channel)
if(param == '') then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command param required.")
return true
end
        local userid = getChannelUsers(10)
        doPlayerSendChannelMessage(cid,"",""..users.." Users.",TALKTYPE_BLABLABLA_W,10)

return true
end