Ir para conteúdo
  • 0

Comando Adicionar Quant. Item Ao Player


piratadoidao

Pergunta

Bom, galera é o seguinte..

Andei pesquisando pelo SITE, até encontrei alguns tópicos relacionados,... mas não do jeito que eu gostaria...

Eu gostaria de pedir um Script, para que o GOD possa dar determinada quantidade de itens à um player...

Ex:

/additem FULANO 2160,5

 

No caso, o FULANO receberia 5 Coins.

Mas gostaria que esse sistema funcionasse também, para players que estivessem OFFLINE, pois estou com um

projeto bem legal, e gostaria de colocar esse sistema...

Se alguém puder me ajudar... ficaria muito agradecido!

REP ++ também.. :)

 

Muito obrigado, conto com vocês!

 

Ps: Meu servidor utiliza TFS 4

8.60

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

Primeiramente, bom dia, irei postar o script feito pelo Diretor Won Helder,

 

 

 

Comando: /additem Nome do Jogador, Nome do Item, Quantidade

 

Comece indo em \data\talkactions\scripts, crie um arquivo com o nome additem.lua e coloque isso dentro:

 

 

--[[ ADDITEM by Won Helder ]]--

--[[ Créditos: 20% Vodkart e DevilMoon pela lógica ]]--

--[[ XTIBIA.COM ]]--

function onSay(cid, words, param)

local t = string.explode(param, ",")

if not t[3] then

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Invalid param specified.")

return true

end

 

local player = getPlayerByName(t[1])

local quanty = t[3]

local pid = getPlayerByNameWildcard(t[1])

if(not pid or (isPlayerGhost(pid) and getPlayerGhostAccess(pid) > getPlayerGhostAccess(cid))) then

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player with this name doesn\'t exist or is offline.")

return true

end

 

local id = tonumber(t[2])

if(not id) then

id = getItemIdByName(t[2], false)

if(not id) then

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Item wich such name does not exists.")

return true

end

end

 

local itemtoadd = getItemIdByName(t[2])

if getItemWeightById(itemtoadd) > getPlayerFreeCap(player) then

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "O jogador " .. t[1] .. " não tem capacidade o suficiente.")

return true

end

 

doPlayerAddItem(player, itemtoadd, t[3])

doPlayerSendTextMessage(player, 22, "Você ganhou " ..quanty.. " " .. t[2] .. " ")

doPlayerSendTextMessage(cid, 22, "Você deu " ..quanty.. " " .. t[2] .. " ao jogador " .. t[1] .. " ")

return true

end

 

 

 

Depois vá até o talkactions.xml e adicione essa linha:

 

<talkaction log="yes" words="/additem" access="5" event="script" value="additem.lua"/>

 

 

Aqui está! Agora, quanto colocar OFFLINE, creio que seja uma coisa + avançada. Por que muitos OTS, entregam items do Shop do Site, automaticamente com o player OFFLINE. Oque pude responder foi isso! Obrigado e BENÇA :))

Link para o comentário
Compartilhar em outros sites

  • 0

esse aki manda pro depot caso o player n esteja on..

 

function isValidName(name)

return db.getResult("SELECT `id` FROM `players` WHERE `name` = " .. db.escapeString(name) .. ";"):getID() ~= -1

end

 

function onSay(cid, words, param, channel)

 

if param == "" then

doPlayerSendTextMessage(cid, 27, "Params missing! [name], [item], [qnt]")

return true

end

 

local t = string.explode(param, ",")

local depot = false

 

if type(t) ~= "table" then

doPlayerSendTextMessage(cid, 27, "Params missing! [name], [item], [qnt]")

return true

end

 

local player = getPlayerByName(tostring(t[1]))

if not isPlayer(player) then

player = tostring(t[1])

depot = true

if not isValidName(t[1]) then

doPlayerSendTextMessage(cid, 27, "Player with that name doesn't exist!")

return true

end

end

 

local id = tonumber(t[2])

local qnt = tonumber(t[3]) or 1

if not id then

id = getItemIdByName(t[2], false)

if not id then

doPlayerSendTextMessage(cid, 27, "Item wich such name does not exists.")

return true

end

end

 

local itemtoadd = getItemIdByName(t[2])

if isPlayer(player) and getItemWeightById(itemtoadd) > getPlayerFreeCap(player) then

depot = true

end

 

if isPlayer(player) then

if depot then

doPlayerSendMailByName(t[1], t[2], t[3])

else

doPlayerAddItem(getPlayerByName(t[1]), t[2], t[3])

end

doPlayerSendTextMessage(cid, 20, "Item delivered to the player: "..t[1]..".")

else

doPlayerSendMailByName(t[1], t[2], t[3])

doPlayerSendTextMessage(cid, 20, "Item delivered to the player: "..t[1]..".")

end

return true

end

 

 

tag eh a ms..

<talkaction log="yes" words="/additem" access="5" event="script" value="additem.lua"/>

Editado por Slicer
Link para o comentário
Compartilhar em outros sites

  • 0

Na verdade deu um probleminha...

Quando mando

/additem ...

Tudo certinho com os parametros...

Ele diz que enviou... mas no distro aparece:

 

" [error - Talkaction interface]

data/talkactions/scripts/additem.lua: onSay;

Description:

<luaDoPlayerSendMailByName> Item not Found. "

 

Se alguém puder ajudar... to precisando muito desse sisteminha! hehe

Obrigado.

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...