DW
talkaction

[Talkaction] Additem | Coloque Um Item Na Bp De Um Jogador

Por dwhfms, 31 de out. de 2011 em Actions e Talkactions

otserv
tibia
script
5
1.5k
dwhfmsD
31 de outubro de 2011 às 17:13

semttuloat.png

 

Protocolo: 8.6+

 

Com esse script você pode colocar qualquer item na Backpack de qualquer jogador que esteja online no servidor. Caso o jogador não tenha capacidade o suficiente o item não será enviado.

 

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

 

Vamos ao que interessa. 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"/>

 

É isso aí galera, dúvidas coloquem nos comentários :)

Editado Outubro 31 por Won Helder

Revis&#227;o

31 de outubro de 2011 às 17:37

por que vc declarou uma variável com o mesmo valor de uma já existente?

dwhfmsD
31 de outubro de 2011 às 17:44

O que? Poderia especificar? rsrs

 

edit: Já corrigi. A parte da capacidade eu coloquei depois, aí por isso acabei colocando duas vezes.

Editado Outubro 31 por Won Helder

31 de outubro de 2011 às 18:23

nice, parabéns, embora não esperava te ver por aqui.

dwhfmsD
31 de outubro de 2011 às 18:27

Já sabia um pouco de LUA e agora vou começar a criar scripts. Sempre gostei mas era muito preguiçoso, agora estou criando coragem :)