Ir para conteúdo
Entre para seguir isso  
Dean

Valentine's Card System!

Recommended Posts

Dean    1
Dean

Informações = {
Nome = Valentine's Card System
Autor = Iuri Mandello, ideia nesse tópico : http://forums.otserv.com.br/f330/cartao-de-amor-139041/
Versão testada = TFS 0.3.5
}

 

Boa tarde,ainda não tenho quase nenhum script postado no fórum, mas prometo a partir de agora me dedicar mais ao fórum (Y)

 

Informações

 

Bom vamos ao que interessa, esse script da uma ultilidade a mais ao Valentine's Card, com ele você pode enviar e receber cartões de amor.

 

Comandos

 

/love Fulano,mensagem -- Envia um cartão para a pessoa, se ele estiver online receberá na hora senão receberá no login.

/love info -- Informações sobre o script

 

Script

 

Crie um arquivo chamado love.lua na pasta Talkactions/scripts e coloque isso dentro:

 

function onSay(cid,words,param,channel)
         if param == 'info' then
           return doPlayerPopupFYI(cid, 'Valentine s Card System v 1.0 by Iuri Mandello\a Comandos: /love Player,Mensagem = Envia o cartão para o player.')
         end               
local t1,t2 = param:match('(.-),%s*(.+)')-- Valeu Mock
         if t1 == nil then
           return doPlayerSendTextMessage(cid,22,"Select a player to send the message")
         end
         if (getPlayerGUIDByName(t1) == nil) then
            return doPlayerSendTextMessage(cid,22,"Player does not exist")
         end
         if t2 == nil then
            return doPlayerSendTextMessage(cid,22,"No message specified")
         end
         if string.len(tostring(t2)) > 100 then
            return doPlayerSendTextMessage(cid,22,"The message is long")
         end
         if string.len(tostring(t2)) < 0 then
            return doPlayerSendTextMessage(cid,22,"The message is short")
         end
         if isOnline(t1) then
local item = doPlayerAddItem(getPlayerByName(t1),6538)
           doSetItemText(item, tostring(t2))
           doPlayerSendTextMessage(cid,22,"Card send successfully")
           return TRUE
         end
         if io.open("data//love//".. tostring(t1) ..".txt") == nil then
           local file = io.open("data//love//".. tostring(t1) ..".txt","w")
             file:write("by ".. getPlayerName(cid) ..":".. tostring(t2) .."\n")
             file:close()          
             doPlayerSendTextMessage(cid,22,"Card send successfully")
            else
           local file = io.open("data//love//".. tostring(t1) ..".txt","a+")
             file:write("by ".. getPlayerName(cid) ..":".. tostring(t2))
             file:close()          
             doPlayerSendTextMessage(cid,22,"Card send successfully")
         end
return TRUE
end                                 

Tag xml para ser colocada em talkactions.xml:

   <talkaction words="/love" event="script" value="love.lua"/>

Crie um arquivo chamado lovelogin.lua na pasta creaturescripts/scripts e coloque isso dentro:

function onLogin(cid)
local file = io.open("data//love//".. getCreatureName(cid) ..".txt")
        if file ~= nil then
        doPlayerSendTextMessage(cid,22,"You received one love card!") 
            for msg in io.lines("data//love//".. getCreatureName(cid) ..".txt") do
              item = doPlayerAddItem(cid,6538)
             doSetItemText(item,msg)
           end
        file:close()
        os.remove("data//love//".. getCreatureName(cid) ..".txt")
        end          
return TRUE
end

Tag para ser colocada em creaturescripts.xml:

<event type="login" name="Love" script="lovelogin.lua"/>

Agora abra o arquivo creaturescripts/scripts/login.lua e adicione entes do último return TRUE:

registerCreatureEvent(cid, "Love")

<font face="Comic Sans MS"><font size="4"><font size="2"><font size="4"><font size="2"><font size="4"><font size="2">

 

Você precisará da OTAL ou simplesmente coloque isso em lib/functions.lua ou arquivo semelhante:

function isOnline(name)--by mock
local  players = getOnlinePlayers()
name = string.lower(name)
   for i, player in ipairs(players) do
   player = string.lower(player)
   if name == player then
  return TRUE 
   end 
   end
   return FALSE
end 

Por último, crie uma pasta chamada love na pasta data do seu servidor e está pronto :D

 

Espero que tenham gostado, e por favor não faça comentários como "Legal","Vou usar no meu server", se quiser agradecer use o botão Thanks,use o tópico somente para dúvidas e bugs.

 

Esse script é exclusivo da OTnet,

se encontrar em outro fórum por favor avise

Editado por Black Ice

Compartilhar este post


Link para o post
Flatronez    1
Flatronez

Mutubão!

 

aprovadog.png

Compartilhar este post


Link para o post
Mock    32
Mock

Poderia ter usado sql nao? =x

Compartilhar este post


Link para o post
Sky Pirate Fer'z    0
Sky Pirate Fer'z

fico bom, vo por no meu sv de testes ^^'

Compartilhar este post


Link para o post
Dean    1
Dean

Sim, eu fiz uma versão em sql mas decidi postar essa pois ele pega em servers sql e xml, na próxima versão eu coloco uma opção de escolher entre arquivos ou sql, e um npc para enviar os cartões também

Compartilhar este post


Link para o post
pejuge2    1
pejuge2

Acho que faltou algo essencial...

 

Acredito que seria muito mais legal se o player escrevesse no cartão... Eu estava fazendo mas estou meio sem tempo e não terminei...

 

De qualquer forma, PARABÉNS.

 

Atenciosamente,

PeJuGe.

Compartilhar este post


Link para o post
god_dreamer    1
god_dreamer

Poxa cara, achei mto massa, vlw por ter gostado da minha ideia e desembolado o script^^ se kiser agora ver minha nova ideia : http://forums.otserv.com.br/f153/items-combo-139560/

 

Edit: Quando a pessoa recebe o cartao poderia aparecer efeitos de coração nela^^

 

E Eu tive esse problema:

 

[17/03/2010 21:14:00] mysql_real_query(): SELECT `online` FROM `players` WHERE `id` = jumpstyle; - MYSQL ERROR: Unknown column 'jumpstyle' in 'where clause' (1054)

 

[17/03/2010 21:14:00] Lua Script Error: [TalkAction Interface]

[17/03/2010 21:14:00] data/talkactions/scripts/valentine.lua:onSay

 

[17/03/2010 21:14:00] data/lib/database.lua:60: [Result:getDataInt] Result not set!

[17/03/2010 21:14:00] stack traceback:

[17/03/2010 21:14:01] [C]: in function 'error'

[17/03/2010 21:14:01] data/lib/database.lua:60: in function 'getDataInt'

[17/03/2010 21:14:01] data/lib/function.lua:799: in function 'isOnline'

[17/03/2010 21:14:01] data/talkactions/scripts/valentine.lua:22: in function <data/talkactions/scripts/valentine.lua:1>

Editado por god_dreamer

Compartilhar este post


Link para o post
Dean    1
Dean

Esqueci de dizer, precisa da OTAL(acho que nela tem a function isOnline) quando chegar em casa eu vou add no tópico a function.

Compartilhar este post


Link para o post
Visitante
Este tópico está impedido de receber novos posts.
Entre para seguir isso  
  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×