TO
talkaction

[V1.0] Send System

Por Tony Araujo, 16 de mar. de 2013 em Actions e Talkactions

script
24
2.9k
Tony AraujoT
16 de março de 2013 às 12:53

Fala ai galera, eu estava pensnado em criar um sistema que é igual ao Parcel. , voce usa o comando

 

!send PlayerName, ItemName, Quantidade

 

E ele envia os items em sua respectiva quantidade.

Exemplo :

 

!send Orochi, demon armor, 2

 

Eu enviaria 2 demon armor para o Orochi.

 

Bom, para começar a instalaçao voce vai em data/talkactions/talkactions.xml

e lá adiciona

 

<talkaction words="!send" hide="yes" event="script" value="send.lua"/>

 

Agora contunue na pasta dos talkactions, e vá em scripts. crie um arquivo chamado "send.lua" e dentro adicione

 

 

 

 

function onSay(cid, words, param, channel)

q = string.explode(param, ",")

pid = getPlayerByName(q[1])

 

if not pid then

doPlayerSendTextMessage(cid, 27, "Player Not Found or Player Offline")

return true

end

 

if pid == cid then

doPlayerSendTextMessage(cid, 27, "You cant send to you")

return true

end

 

i = string.lower(q[2])

x = getItemIdByName(i)

n = tonumber(q[3])

 

if not n then

doPlayerSendTextMessage(cid, 27, "You only use numbers")

return true

end

 

if not x then

doPlayerSendTextMessage(cid, 27, "Item not exist")

return true

end

 

if isInArray({"gold coin", "platinum coin", "crystal coin"}, q[2]) then

doPlayerSendTextMessage(cid, 27, "You cant send money")

return true

end

 

if getPlayerStorageValue(cid, 87123) <= 0 then

doPlayerSendTextMessage(cid, 27, "The "..q[1].." dont wanna receive your send")

return true

end

 

if param == "accept" then

setPlayerStorageValue(cid, 87123, 1)

doPlayerSendTextMessage(cid, 27, "You accept for receive items")

return true

end

 

if(doPlayerRemoveItem(cid, x, n) == true) then

for h = 1,n do

 

doPlayerAddItem(pid, x, h)

end

doPlayerSendTextMessage(pid, 27, "You received "..n.."x "..i.." of "..getCreatureName(cid))

doPlayerSendTextMessage(cid, 27, "You send "..n.."x "..i.." to "..q[1])

setPlayerStorageValue(pid, 87123, -1)

return true

else

 

doPlayerSendTextMessage(cid, 27, "You dont have "..n.."x of "..i)

return true

end

return true

end

 

 

 

OBS : O Site tirou a identaçao do script.

 

Bom, feito isso basta usar o seu sistema.

 

Créditos :

OrochiElf 100%

 

@EDIT : Feito uma alteraçao em :

Para o player aceitar o item, antes que o player2 envia

o player precisa executar o comando

!send accept

 

para que depois o player2 possa enviar o item.

caso contrario o player2 nao poderá envialo.

Editado Março 16 por OrochiElf

ThiagoBjiT
16 de março de 2013 às 15:13

Gostei! Bem criativo! Seria bom, que quando enviar o item, ia pro dp, mesmo que o player estive-se online ou offline. Fica a dica!

 

Atenciosamente, Thiagobji.

LuckinhaSanL
16 de março de 2013 às 15:17

Nossa, Muito Bom Man!

Acho Que Vou Adicionar No Meu Servidor,

Bem Criativo e Bem Prático!

SlicerS
16 de março de 2013 às 15:20

e vc n testou o script denovo neh? --'

1* -

if pid == cid then
doPlayerSendTextMessage(cid, 27, "You cant send to you")
end

 

2* - pra q fazer isso? o.O

for h = 1,n do
doPlayerAddItem(pid, x, h)
end

se pode fazer isso..

doPlayerAddItem(pid, x, n)

 

3* e se o player n tiver cap para 'segurar' esses itens mandados heim?...

Tony AraujoT
16 de março de 2013 às 15:34

Script testado.

 

1º Para checar se o PID, o player que o script checou pelo nome, é o mesmo player que está executando.

 

2º O For foi criado para repetir em adicionar o item, porque o doPlayerAddItem, estava apenas adicionando um só.

 

3º Teste voce mesmo.

SlicerS
16 de março de 2013 às 15:36

1* falto return true --' vai da pra dar o item pra si ms...

 

2* entao tavas fazendo algu errado o.O

 

3* quem deve testar eh quem posta o script n acha? --' depois n sabe pq 2 de seus scripts ja foram fechados neh?

Tony AraujoT
16 de março de 2013 às 15:40

1º Eu ja tinha arrumado , só esqueci de editar o topico.

 

2º Eu usei exatamente como voce escreveu

 

3º O Script foi testado.

LuckinhaSanL
16 de março de 2013 às 15:41

Chega De Briga Os Dois... Resolvam Por MP

Para Que Não Sugem o Tópico.

StyloMaldosoS
16 de março de 2013 às 15:43

3º O Script foi testado.

script foi testado com erros bobos assim ? ;x

Chega De Briga Os Dois... Resolvam Por MP

Para Que Não Sugem o Tópico.

onde tu ta vendo briga aq? osh o slicer so ta avisando sobre os bugs do script lawl kk

SlicerS
16 de março de 2013 às 15:43

brigando? eu soh tentei mostrar oq tinha de errado no script uU tu q pare de floodar nos topicos...

Tony AraujoT
16 de março de 2013 às 15:46

Galera, eu acho que chega né.

 

Obrigado Slicer por avisar sobre o error do Pid == cid (blablabla)

 

Acho melhor nao ficarem comentando os floods para nao sujar o tópico.

 

Bjokas.

StyloMaldosoS
16 de março de 2013 às 15:48

otimo systema tony até bem melhor doque no de tibia q tem q faze aquelas gambiarra tal..

 

 

mais tu testo se o player tive com backpack full?

o item iria pro chao ?

Tony AraujoT
16 de março de 2013 às 15:51

Sim, EUHUEHUEHUEHUEH iria pro xao...EEUHEHUEHUEUHE

 

Vou tentar por para que se a backpack tivesse full. nao desse para enviar.

SlicerS
16 de março de 2013 às 15:54

seria melhor usar..

doPlayerSendMailByName(name, item, qntdade)

 

isso manda pro depot... mas bem q o depot tb pode ta full entao... sei la

SkyLighS
16 de março de 2013 às 16:05

Acho que é melhor os 2 pararem de brigar se ele ta dizendo que o script funciona deve funcionar vamos esperar alguém que for usar testar ele ai fala aki no tópico se não pegar. pois ele ja recebeu reputação então eu acho que o script ta pegando .