Ir para conteúdo
  • Cadastre-se

Posts Recomendados

function onSay(cid, words, param, channel)
    
    local letter_id = 2597
    
    local config = { 
        only_one = false, -- pode usar só uma vez, false se puder mais de uma, é uma defesa contra spam.
        one_per_time = false, -- caso only_one seja falso, você pode configurar aqui se terá exhaust, true para sim, false para não.
        time = 10, -- tempo em minutos para esperar.
        exhaust_error = "Você precisa esperar ".. math.ceil((getPlayerStorageValue(cid, "letter") - os.time())/3600) .." horas para usar o comando novamente.",
        msg_error = "Você só pode usar uma vez!", -- caso only_one seja true.
        msg_inside = "O que você acha\n do nosso sistema de double XP? \n\n use !sugest send para enviar\n~~==============~~\n Resposta: ", -- messagem dentro da carta. 
        msg_sent = "Obrigado por opinar! , caso a opinião seja séria, você será recompensado.", 
        letter_desc = "Opinião do player: ".. getCreatureName(cid) .." enviada às: " .. os.date("%d %B %Y %X") .. ".",
        letter_request = getCreatureName(cid) .. " escreva sua opinião e use !sugest send , para envia-la",
        letter_count_msg = "Você precisa ter 1 ".. getItemNameById(letter_id) .." no seu inventário para enviar a sugestão.", 
        houseGod_position = {x = 91, y = 121, z = 7}, -- para onde enviará a carta
    }	
    
    if config.only_one then 
        if getPlayerStorageValue(cid, "letter") ~= -1 then 
            return doSendMagicEffect(getThingPos(cid), CONST_ME_POFF) and doPlayerSendCancel(cid, config.msg_error) and false 
        end
    end
    
    if not config.only_one and config.one_per_time and param ~= "send" then
        if getPlayerStorageValue(cid, "letter") - os.time() > 0 then
            doPlayerSendTextMessage(cid,26, config.exhaust_error) 
            doSendMagicEffect(getThingPos(cid), CONST_ME_POFF)
            return true
        else
            setPlayerStorageValue(cid, "letter", os.time() + (60*config.time))
        end 
    end
    
    
    if param == "send" then	 
        if getPlayerItemCount(cid, letter_id) ~= 1 then 
            return doPlayerSendTextMessage(cid,21, config.letter_count_msg) and false
        end
        
        if getItemAttribute(tonumber( getPlayerGUID(cid) + 1000), "text") == config.msg_inside then
            doPlayerSendTextMessage(cid,26, "Por favor, escreva algo.") -- caso tente enviar carta sem escrever.
            doSendMagicEffect(getThingPos(cid), CONST_ME_POFF)
            return false
        end
        
        doSendMagicEffect(getThingPos(cid), CONST_ME_FIREWORK_BLUE)	 
        doPlayerSendTextMessage(cid, 21, config.msg_sent)	 
        local player_opinion = getItemAttribute(tonumber( getPlayerGUID(cid) + 1000), "text")	 
        local letter = doCreateItem( letter_id, 1, config.houseGod_position) 
        doItemSetAttribute(letter, "text", player_opinion) 
        doItemSetAttribute(letter, "description", config.letter_desc) 	
        doPlayerRemoveItem(cid, letter_id, 1) 
        return true	
    end 
    
    setPlayerStorageValue(cid, "letter", getPlayerStorageValue(cid, "letter") + 1) 
    local letter = doPlayerAddItem(cid, letter_id) 
    doItemSetAttribute(letter, "text", config.msg_inside)	
    doItemSetAttribute(letter, "uid", tonumber( getPlayerGUID(cid) + 1000)) 
    doPlayerSendTextMessage(cid,21,config.letter_request )
    
    return true
end

 

 

<talkaction words="/sugest;!sugest" event="script" value="arquivo.lua"/>

 

OFIhaMl.png

yBmH1tu.png

Fiz o tópico na pressa, ainda está em versão beta, porém, vai melhorar assim que eu tiver um Pc para editar melhor.

Possíveis erros: se tiver mais de uma carta do comando, ele talvez bugue.

(Coisa que eu vou consertar)

Se quiser sua dúvida tirada, mande PM com os links, e não com a dúvida (outros podem ter a mesma dúvida, e o fórum serve para ser usado).

 

Tópicos:


 

yNlhRVC.png

 

55px-Judo_yellow_belt.svg.png

Link para o post
Compartilhar em outros sites

Qualquer erro por favor, reportar...

Se quiser sua dúvida tirada, mande PM com os links, e não com a dúvida (outros podem ter a mesma dúvida, e o fórum serve para ser usado).

 

Tópicos:


 

yNlhRVC.png

 

55px-Judo_yellow_belt.svg.png

Link para o post
Compartilhar em outros sites

Cara, uma ótima ideia, gostei bastante!

Só umas observações: 

• Na verificação se pode usar mais de uma vez, já poderia fazer a verificação da global storage junto ... 
• Caso o parâmetro da talk seja "send", é para realizar o que esta no if e depois teria o return true, se você colocar um ELSE economizaria linhas (eu acho)
• O que seria essa posição x = 157, y = 387, z = 5 ? A casa do GOD? rsrsrs.

Apenas essas dúvidas, de resto esta ótimo :D

 

Link para o post
Compartilhar em outros sites

Cara, uma ótima ideia, gostei bastante!

Só umas observações: 

• Na verificação se pode usar mais de uma vez, já poderia fazer a verificação da global storage junto ... 

• Caso o parâmetro da talk seja "send", é para realizar o que esta no if e o que esta abaixo ou teria que ter um ELSE?

• O que seria essa posição x = 157, y = 387, z = 5 ? A casa do GOD? rsrsrs.

Apenas essas dúvida, de resto esta ótimo :D

 

 

Então, esse script eu fiz muito rápido, pois eu tava saindo do computador apressado.

 

Por enquanto, sim é para ser a casa do God, porém eu vou colocar para mandar para o inventário futuramente, caso tenha espaço, se não tiver, vou ter que colocar um local padrão para ela cair...

 

...Nesse caso vou ter que verificar se o god está online, para usar uma função ou query. Porém o ideal é Puxar para um POO, e deixar duas opções.

 

O send é só para dentro do if, por isso coloquei o return.

 

Vou ver sobre o storage.

Tudo issoc eu vou demorar um pouco, pois estou pelo celular.

Se quiser sua dúvida tirada, mande PM com os links, e não com a dúvida (outros podem ter a mesma dúvida, e o fórum serve para ser usado).

 

Tópicos:


 

yNlhRVC.png

 

55px-Judo_yellow_belt.svg.png

Link para o post
Compartilhar em outros sites
local config = {
	only_one = false, -- pode usar só uma vez, false se puder mais de uma, é uma defesa contra spam.
	msg_error = "Você só pode usar uma vez!", -- caso only_one seja true.
	msg_inside = "O que você acha\n do nosso sistema de double XP? \n\n use !sugest send para enviar\n~~==============~~\n Resposta:          \n~~==============~~", -- messagem dentro da carta.                   
	msg_sent = "Obrigado por opinar! , caso a opinião seja séria, você será recompensado.",  
	letter_desc = "Opinião do player: ".. getCreatureName(cid) .." enviada às: " .. os.date("%d %B %Y %X") .. ".",
	houseGod_position = {x = 157, y = 387, z = 5},
}	

function onSay(cid, words, param, channel)

	if config.only_one and getPlayerStorageValue(cid, "letter") > 0 then         
		return doSendMagicEffect(getThingPos(cid), CONST_ME_POFF) and doPlayerSendCancel(cid, config.msg_error) and false 
	end

	if param == "send" then	   
		doSendMagicEffect(getThingPos(cid), CONST_ME_FIREWORK_BLUE)
		doPlayerSendTextMessage(cid, 21, config.msg_sent)
		local player_opinion = getItemAttribute(38383, "text")
		local letter = doCreateItem(2597, 1, config.houseGod_position)
		doItemSetAttribute(letter, "text", player_opinion)
		doItemSetAttribute(letter, "description", config.letter_desc) 
	else
		setPlayerStorageValue(cid, "letter", 1)     
		local letter = doPlayerAddItem(cid, 2597)    
		doItemSetAttribute(letter, "text", config.msg_inside)	
		doItemSetAttribute(letter, "uid", 38383)   
	end

	return true
end
Link para o post
Compartilhar em outros sites

 Comando atualizado para ser testado, quem puder reportar erros...

o comando é só um rascunho...

Se quiser sua dúvida tirada, mande PM com os links, e não com a dúvida (outros podem ter a mesma dúvida, e o fórum serve para ser usado).

 

Tópicos:


 

yNlhRVC.png

 

55px-Judo_yellow_belt.svg.png

Link para o post
Compartilhar em outros sites
  • 9 months later...

Man cade os bangui que indica onde colocar as coisas sou iniciante em criaçao de server e vou seguindo tutoriais para add as coisas pfv coloca ai

Link para o post
Compartilhar em outros sites
Em 28/07/2015 at 15:03, luanluciano93 disse:

local config = {
	only_one = false, -- pode usar só uma vez, false se puder mais de uma, é uma defesa contra spam.
	msg_error = "Você só pode usar uma vez!", -- caso only_one seja true.
	msg_inside = "O que você acha\n do nosso sistema de double XP? \n\n use !sugest send para enviar\n~~==============~~\n Resposta:          \n~~==============~~", -- messagem dentro da carta.                   
	msg_sent = "Obrigado por opinar! , caso a opinião seja séria, você será recompensado.",  
	letter_desc = "Opinião do player: ".. getCreatureName(cid) .." enviada às: " .. os.date("%d %B %Y %X") .. ".",
	houseGod_position = {x = 157, y = 387, z = 5},
}	

function onSay(cid, words, param, channel)

	if config.only_one and getPlayerStorageValue(cid, "letter") > 0 then         
		return doSendMagicEffect(getThingPos(cid), CONST_ME_POFF) and doPlayerSendCancel(cid, config.msg_error) and false 
	end

	if param == "send" then	   
		doSendMagicEffect(getThingPos(cid), CONST_ME_FIREWORK_BLUE)
		doPlayerSendTextMessage(cid, 21, config.msg_sent)
		local player_opinion = getItemAttribute(38383, "text")
		local letter = doCreateItem(2597, 1, config.houseGod_position)
		doItemSetAttribute(letter, "text", player_opinion)
		doItemSetAttribute(letter, "description", config.letter_desc) 
	else
		setPlayerStorageValue(cid, "letter", 1)     
		local letter = doPlayerAddItem(cid, 2597)    
		doItemSetAttribute(letter, "text", config.msg_inside)	
		doItemSetAttribute(letter, "uid", 38383)   
	end

	return true
end

O seu da erro no meu systema

http://prntscr.com/b8oqee

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