Ir para conteúdo

[Talkaction] !buyitem


netflat

Posts Recomendados

Tipo tem como quando o player for usar o comando dizer assim:

 

!comprar "item

 

bom, me disseram que tem que modificar o script...

 

function onSay(cid, words, param)
if doPlayerRemoveMoney(cid,2500000) then
doPlayerAddItem(cid,xxxx,1)
doSendMagicEffect(getPlayerPosition(cid), CONST_ME_MAGIC_BLUE)
else
doPlayerSendCancel(cid, 'Você não possui 250 crystal coins.')
doSendMagicEffect(getPlayerPosition(cid), CONST_ME_FLAMEAREA)
end
end  

Link para o comentário
Compartilhar em outros sites

fiz um exemplo pra você

 

obs: usei tables

 

function onSay(cid, words, param)

 

local t={

armor={2466,1,40000},legs={2470,1,30000},helmet={2471,1,20000},boots={2646,1,10000}

}

 

 

if (param) == "" then

doPlayerSendCancel(cid, "Você precisa digitar o nome de um item.")

return TRUE

end

 

 

if (param) == "golden armor" then

if doPlayerRemoveMoney(cid,t.armor[3]) then

doPlayerAddItem(cid,t.armor[1],t.armor[2])

doSendMagicEffect(getPlayerPosition(cid), CONST_ME_MAGIC_BLUE)

else

doPlayerSendCancel(cid, 'Você precisa de ' .. t.armor[3] .. ' gps para comprar.')

doSendMagicEffect(getPlayerPosition(cid), CONST_ME_FLAMEAREA)

end

 

 

 

 

elseif (param) == "golden legs" then

if doPlayerRemoveMoney(cid,t.legs[3]) then

doPlayerAddItem(cid,t.legs[1],t.legs[2])

doSendMagicEffect(getPlayerPosition(cid), CONST_ME_MAGIC_BLUE)

else

doPlayerSendCancel(cid, 'Você precisa de ' .. t.legs[3] .. ' gps para comprar.')

doSendMagicEffect(getPlayerPosition(cid), CONST_ME_FLAMEAREA)

end

 

 

elseif (param) == "golden helmet" then

if doPlayerRemoveMoney(cid,t.helmet[3]) then

doPlayerAddItem(cid,t.helmet[1],t.helmet[2])

doSendMagicEffect(getPlayerPosition(cid), CONST_ME_MAGIC_BLUE)

else

doPlayerSendCancel(cid, 'Você precisa de ' .. t.helmet[3] .. ' gps para comprar.')

doSendMagicEffect(getPlayerPosition(cid), CONST_ME_FLAMEAREA)

end

 

elseif (param) == "golden boots" then

if doPlayerRemoveMoney(cid,t.boots[3]) then

doPlayerAddItem(cid,t.boots[1],t.boots[2])

doSendMagicEffect(getPlayerPosition(cid), CONST_ME_MAGIC_BLUE)

else

doPlayerSendCancel(cid, 'Você precisa de ' .. t.boots[3] .. ' gps para comprar.')

doSendMagicEffect(getPlayerPosition(cid), CONST_ME_FLAMEAREA)

end

end

return TRUE

end

 

explicação:

 

vermelho: ID DO ITEM

1 = QUANTIA DO ITEM QUE VAI COMPRAR

azul = QUANTOS VAIS CUSTAR O ITEM

 

 

nesse caso os comandos serão

!comprar golden armor
!comprar golden legs
!comprar golden helmet
!comprar golden boots

 

talkactions.xml

 

        <talkaction words="!comprar" script="NOME DO SEU SCRIPT.lua"/>

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

Tem esse meu e do Mkalo também:

 

------Script by MatheusMkalo and apocarai------- 
------Exclusivo para o Xtibia-------- 
function onSay(cid, words, param) 

local a = { 
[2472] = {price = 160000, countmax = 1}, 
[2157] = {price = 13000, countmax = 100}, 
[2466] = {price = 60000, countmax = 1}, 
[2494] = {price = 150000, countmax = 1} 
} 

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

if param == "" or b[1] == "" or b[2] == "" then 
       doPlayerSendCancel(cid,"Command param required. Use /buyitens item name, quantity") 
       return TRUE 
end

      if a[getItemIdByName(b[1], false)] then 
         if isNumber(b[2]) then 
            if tonumber(b[2]) > 0 then 
               if tonumber(b[2]) <= a[getItemIdByName(b[1], false)].countmax then 
                  if getPlayerMoney(cid) >= (a[getItemIdByName(b[1], false)].price*tonumber(b[2])) then  
                     doPlayerRemoveMoney(cid,(a[getItemIdByName(b[1], false)].price*tonumber(b[2]))) 
                     doPlayerAddItem(cid, getItemIdByName(b[1]),b[2]) 
                     doPlayerSendTextMessage(cid,25,"You have bought " .. tonumber(b[2]) .. " " .. getItemNameById(getItemIdByName(b[1])) .. " for " .. (a[getItemIdByName(b[1], false)].price*tonumber(b[2])) .. " gold pieces.") 

                  else 
                      doPlayerSendCancel(cid,"You have not enough money.") 
                  end 
               else 
                   doPlayerSendCancel(cid,"You have informed a quantity higher than count max.") 
               end 
            else 
                doPlayerSendCancel(cid,"You have informed a quantity lower than 0") 
            end 
         else 
             doPlayerSendCancel(cid,"Quantity must be a number.") 
         end
      else
   doPlayerSendCancel(cid, "Invalid item name.")		 	 
      end 


return TRUE 
end

 

flw

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...