Ir para conteúdo

[NPC] Mensageira - Players deixam mensagens num bloco de notas

Featured Replies

Postado
  • Este é um post popular.

Oi. Eu fiz esse NPC para que ele possa deixar mensagens em um bloco de notas para que os administradores vejam. É uma forma de comunicação com os jogadores.

 

[data/npc/Mensageira.xml]

<npc name="Mensageira" script="data/npc/scripts/messenger.lua" walkinterval="0" floorchange="0" access="5" level="1" maglevel="1">
<health now="150" max="150"/>
<look type="347" head="20" body="100" legs="50" feet="99" corpse="2212"/>
<parameters>
<parameter key="message_greet" value="Ola |PLAYERNAME|. Eu tenho a função de deixar mensagens para que o administrador possa ler mais tarde, como críticas, ou simplesmente um bom dia. Gostaria de deixar uma {mensagem}?"/>
</parameters>
</npc>

[data/npc/scripts/messenger.lua]

local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}
local moneyTo = {}
local playerTo = {}
 
function onCreatureAppear(cid)            npcHandler:onCreatureAppear(cid)        end
function onCreatureDisappear(cid)        npcHandler:onCreatureDisappear(cid)        end
function onCreatureSay(cid, type, msg)        npcHandler:onCreatureSay(cid, type, msg)    end
function onThink()                npcHandler:onThink()                end

function creatureSayCallback(cid, type, msg)
 
    if(not npcHandler:isFocused(cid)) then
        return false
    end
 
if talkState[cid] == 1 then
        selfSay("A mensagem \""..msg.."\" foi deixada. Obrigado pela contribuicao! Sua mensagem sera revisada por um administrador.", cid)
local texto = ""
local read = io.open("mensagens.txt", "r")
texto = read:read("*all")
read:close()
local write = io.open("mensagens.txt", "w")
write:write(texto.."["..getPlayerName(cid)..", "..os.date("%c").."]: \""..msg.."\"\n")
write:close()
        talkState[cid] = 0
    elseif msgcontains(msg, 'mensagem') then
        selfSay("Escreva a mensagem que voce gostaria de deixar. Pede-se rever o texto e escrever claramente o que deseja. Spam causa banimento por IP.", cid)
        talkState[cid] = 1 
    end
    return TRUE
end
 
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())  
 
cpMGUWN.png
DtjuWR8.png
 
Aí você deixa ele no templo, sei lá, faz qualquer coisa
Ps0xnqc.png
 
Só pra avisar, o mensagens.txt fica na pasta raiz do servidor, lá onde tem config.lua

Editado por Godfather (veja o histórico de edições)

koe

  • 1 month later...
Postado

o meu fez tudo menos deixar a mensagem no arquivos nen criou o arquivo e ainda deu erro :

 

[28/01/2015 20:33:19] [Error - Npc interface] 
[28/01/2015 20:33:19] data/npc/scripts/menssenger.lua:onCreatureSay
[28/01/2015 20:33:19] Description: 
[28/01/2015 20:33:19] data/npc/scripts/menssenger.lua:23: attempt to index local 'read' (a nil value)
[28/01/2015 20:33:19] stack traceback:
[28/01/2015 20:33:19] data/npc/scripts/menssenger.lua:23: in function 'callback'
[28/01/2015 20:33:19] data/npc/lib/npcsystem/npchandler.lua:390: in function 'onCreatureSay'
[28/01/2015 20:33:19] data/npc/scripts/menssenger.lua:10: in function <data/npc/scripts/menssenger.lua:10>
 
 
o meu é o tfs 3.6.0 eu acho meu servidor na versão 8.6

wq3bBzt.png
Pokémon Dust Evolution
 
É aonde começa sua nova aventura!! 

 

Facebook

 
Verifique Atualizações

 

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