TO
dúvida

Como usar essa funçao aqui?

By tonynamoral, 18 de dez. de 2012 in Scripts

tibia
otserv
8
922
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)

Edited Dezembro 18 by 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

Edited Dezembro 19 by 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.

Edited Dezembro 19 by 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