Ir para conteúdo
  • Cadastre-se

Action%252FTalkaction [TFS 1.1-1.2] Mudar outfit da guild - Guild Outfit Change (!go)


Posts Recomendados

Screenshot


9hkzE7c4m.png
 

Descrição


Lembra quando apenas o leader e vice-leader da guild poderiam usar o comando !go e logo mudava o outfit de todos? Pois então.
 

Instalando


Crie um arquivo chamado guild_outfit.lua na pasta talkactions e coloque: 
function string.diff(self)
	local format = {
		{'day', self / 60 / 60 / 24},
		{'hour', self / 60 / 60 % 24},
		{'minute', self / 60 % 60},
		{'second', self % 60}
	}

	local out = {}
	for k, t in ipairs(format) do
		local v = math.floor(t[2])
		if(v > 0) then
			table.insert(out, (k < #format and (#out > 0 and ', ' or '') or ' and ') .. v .. ' ' .. t[1] .. (v ~= 1 and 's' or ''))
		end
	end

	local ret = table.concat(out)
	if ret:len() < 16 and ret:find('second') then
		local a, b = ret:find(' and ')
		ret = ret:sub(b+1)
	end
	
	return ret
end

local config = {
	exhaustion = 299551, -- exhaust storage
	duration = 5 -- CONTADO EM SEGUNDOS, POR EXEMPLO 5*60 PARA 5 MINUTOS.
}

function onSay(player, words, param, channel, creature)

	local playerGuild = player:getGuild()
	local creature = player

	if (os.time() - player:getStorageValue(config.exhaustion)) < config.duration then
		player:sendTextMessage(MESSAGE_INFO_DESCR,"You have to wait ' .. string.diff(player:getStorageValue(config.exhaustion)-os.time()) .. ' before using this command again.")
		return false
	end

	if(not playerGuild or playerGuild:getId() == 0) then
		player:sendTextMessage(MESSAGE_INFO_DESCR,"Sorry, you're not in a guild.")
		return false
	end

	if player:getGuildLevel() < 2 then -- 3 = Leader, 2 = Vice-Leader, 1 = Regular Member
		player:sendTextMessage(MESSAGE_INFO_DESCR,"You have to be Leader or Vice-Leader of your guild to change outfits!")
		return false
	end

	local outfit = creature:getOutfit()
	local count = 0
	local message = "*Guild* Your outfit has been changed by leader. (" ..player:getName() .. ")"

	for _, members in ipairs(Game.getPlayers()) do
		if(members:getGuild() == playerGuild and player ~= members) then
			local newOutfit = outfit
			if(not members:hasOutfit(outfit.lookType, outfit.lookAddons)) then
				local tmpOutfit = members:getOutfit()
				newOutfit.lookAddons = 0 --tmpOutfit.lookAddons
				if(not members:hasOutfit(outfit.lookType, 0)) then
					newOutfit.lookType = tmpOutfit.lookType
				end
			end

			members:getPosition():sendMagicEffect(66)
			members:setOutfit(newOutfit)
			members:sendTextMessage(MESSAGE_INFO_DESCR, message)
			count = count + 1
		end
	end

	player:sendTextMessage(MESSAGE_INFO_DESCR,"Guild members outfit has been changed. (Total: " .. count .. ")")
	player:setStorageValue(config.exhaustion, os.time() + config.duration)
	
	return false
end 

talkactions.xml

<talkaction words="!go" event="script" value="guild_outfit.lua"/>

Créditos

  • Slawkens, narko.
Link para o post
Compartilhar em outros sites
  • 3 weeks later...
  • 2 months later...

Bem legal, haha

Só arruma a tag q ta errada

<talkaction words="!cor" script="guild_outfit.lua"/>
tem q ser assim :)

Link para o post
Compartilhar em outros sites

Devido a um bug conhecido sobre montarias em Proctetion Zone, etc.. Em baixo da linha 60 adicione newOutfit.lookMount = 0.

discord.pngDiscord: vankk #7765

Precisando de ajuda? Entre em contato comigo via Discord.

 

Muitos vêm seus muitos dias de glória, mas poucos vêm seus muitos dias de luta.

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.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

  • Conteúdo Similar

    • Por Sphynx1
      Olá comunidade.
      Eu criei um script a madrugada passada para tentar ajudar um amigo que usa 'OTX' porém dá um erro bizarro no 'lib/compat.lua' e a função 'doAddPlayerOutfit' retorna valor 'NIL'. Eu não sei como resolver, mas está funcionando perfeitamente no 'TFS 0.4'. Espero que alguém em algum lugar do tempoespaço possa se beneficiar desse script já que os que encontrei estão todos muito feios e confusos.

      1. Acesse a pasta 'data/talkactions/scripts' e crie um novo 'arquivo.lua' chamado 'addonpresent.lua', dentro adicione o conteúdo abaixo.
      function onSay(cid, words, param, channel) local maleOutfits = {["citizen"] = {128}, ["mage"] = {130}, ["knight"] = {131}, ["nobleman"] = {132}, ["summoner"] = {133}, ["warrior"] = {134} } local femaleOutfits = {["citizen"] = {136}, ["mage"] = {138}, ["knight"] = {139}, ["nobleman"] = {140}, ["summoner"] = {141}, ["warrior"] = {142} } local mensagens = {"Você recebeu o seu addon e consumiu o item bônus para isto.", "Verifique o que você digitou e tente novamente, parametros inválidos.", "Você não possui o item necessário para receber um addon.", "Certifique-se que você digitou o nome do addon corretamente e tente mais uma vez."} local efeitinga = {[1] = {name = CONST_ME_POFF}, [2] = {name = CONST_ME_CAKE}, [3] = {name = CONST_ME_HEARTS}, [4] = {name = CONST_ME_GIFT_WRAPS} -- efeitos que seram exibidos } local param = string.lower(param) if not isPremium(cid) then doCreatureSay(cid, "Você não possui Premium Account, portanto não poderá utilizar o item de addon.", TALKTYPE_ORANGE_1) -- MSG que será exibida p/ o nao premium return true end if getPlayerItemCount(cid, 6497) > 0 then -- 6497 é o ID do item que será usado por você, se for maior que 0 a quanidade na sua bag então if param ~= "" and maleOutfits[param] and femaleOutfits[param] then doPlayerRemoveItem(cid, 6497, 1) -- o item 6497 será consumido doCreatureSay(cid, mensagens[1], TALKTYPE_ORANGE_1) for k, v in pairs(efeitinga) do doSendMagicEffect(getCreaturePosition(cid), v.name) end if getPlayerSex(cid) == 0 then doPlayerAddOutfit(cid, femaleOutfits[param][1], 3) elseif getPlayerSex(cid) == 1 then doPlayerAddOutfit(cid, maleOutfits[param][1], 3) end else doCreatureSay(cid, mensagens[2], TALKTYPE_ORANGE_1) end else doCreatureSay(cid, mensagens[3], TALKTYPE_ORANGE_1) end return true end  
      2. Regresse até 'data/talkactions' e abra o arquivo 'talkactions.xml', dentro adicione o conteúdo abaixo.
      <talkaction words="!addon" event="script" value="addonpresent.lua"/>  
       
    • Por Movie
      Tentei fazer esse talkactions , mas não deu certo , alguém poderia me ajudar ?
       

       
         
       
    • Por eviltox
      Olá galera, tenho um problema com um script gringo.    
      Então a Função do Script é Ficar Mudando o Addon e sua cor Continuamente.
      O único problema do script até agora é a hora que o player desloga.   
       
      Então esse é o meu pedido, Gostaria de adicionar um OnLogout ou um meio de encerrar o script quando o player desloga(não entendo muito de script, mas acho que é isso que falta, se não for agradeço em adicionarem oque falta. *(Versão do TFS 0.3.1)*     
       
      O Script é esse:
      O Erro é esse:
      Dês de já, Agradeço. Darei Rep+ Para quem ajudar, mesmo que não funcione. Grato   
    • Por rolas69
      Estou com problema no talkaction /attr.
       
      Uso TFS 0.4 que veio sem o talk.
       
      Adicionei com a tag <talkaction log="yes" words="/attr" access="5" script="attr.lua"/> mas sempre dava "unknown comand". Quando mudei pra <talkaction log="yes" words="/attr" access="5" event="function" value="thingProporties"/>, parou de dar erro e aparece o efeito do script, mas nada acontece com o item/teleporte etc...
      O script adicionado é esse:



       
      Na segunda tag, o comando usado sem erro é por ex. /attr set attack 20.
       
      Algm sabe o que pode estar errado?
    • Por jonatasfl
      Ola, galera preciso de um talkaction que faça o seguinte, quando o player alcançar lvl 160 ele ganhara um item para sua vocação, achei um talkaction ele funciona e tudo mas ele só da o item se vc nao tiver promotion, caso vc for Master sorcerer e etc vc n ganha o item, e eu queria que ganhasse, tem como alguem me ajudar? vou postar o script que eu tenho. 
       
         
                  no talkactions.xml    
      Desculpe estar sem os créditos, não lembro quem criou o script.
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo