JH

Clicar no item e ganhar montaria (10.0)

Por Jhony Araujo, 13 de mar. de 2020 em Scripts

8
2.3k
13 de março de 2020 às 10:22

Pessoal, alguém poderia me ajudar com um script que se vc clicar em X item (configurável) vc ganha X montaria (configurável)

se eu estiver postado no lugar errado, por favor, perdão!
grato

M i s sM
13 de março de 2020 às 10:46

Creio que não seja exatamente isso que esteja procurando mas essa script faz o player usar a bike/montaria com speed configuravel, porém não adiciona o item ao personagem.

 

Spoiler

local config =
{
    velocidadeDaSuaBike = 5000,
    outfitMale = 3612, -- Outfit MALE
    outfitFemale = 3613, -- Outfit FEMALE
    storageValue = 243656,
}
 
function onUse(cid, item, itemEx, fromPosition, toPosition)

    if getPlayerStorageValue(cid, 17001) > 0 or getPlayerStorageValue(cid, 17000) > 0 or getPlayerStorageValue(cid, 63215) > 0 then
        doPlayerSendCancel(cid, "Você não pode usar esta outfit em situações especiais.")
    return true
end
 
    if isPlayer(cid) and getCreatureOutfit(cid).lookType == 814 then return false end
        if getPlayerStorageValue(cid, config.storageValue) <= 0 then
            local a = {lookType = config.outfitMale, lookHead = getCreatureOutfit(cid).lookHead, lookBody = getCreatureOutfit(cid).lookBody, lookLegs = getCreatureOutfit(cid).lookLegs, lookFeet = getCreatureOutfit(cid).lookFeet}
            local b = {lookType = config.outfitFemale, lookHead = getCreatureOutfit(cid).lookHead, lookBody = getCreatureOutfit(cid).lookBody, lookLegs = getCreatureOutfit(cid).lookLegs, lookFeet = getCreatureOutfit(cid).lookFeet}
            setPlayerStorageValue(cid, 3624, ""..getPlayerStamina(cid).."")
            doChangeSpeed(cid, -getCreatureSpeed(cid))
            doChangeSpeed(cid, config.velocidadeDaSuaBike)
            setPlayerStorageValue(cid, config.storageValue, 1)        
            if getPlayerSex(cid) == 0 then
                doSetCreatureOutfit(cid, b, -1)
            else
                doSetCreatureOutfit(cid, a, -1)
            end
        else
            setPlayerStorageValue(cid, config.storageValue, 0)
            doRemoveCondition(cid, CONDITION_OUTFIT)
       end
    return true
end

 

Creditos: Lucas Rafaeel

13 de março de 2020 às 19:06

mano obrigado por tentar ajudar mas não é isso que eu procuro. eu procuro um script com o id 2278 (configuravel) que ao clicar nesse item ele dar X montaria (configuravel) ao personagem que clicar por que eu quero vender esse item no meu site entendeu? para quando a galera comprar eu configurar os items e os ids e colocar qual  montaria vai dar de acordo com o id da montaria na xml tlgd?
Desculpa o incomodo, e mais uma vez, obrigado por tentar me ajudar!

M i s sM
13 de março de 2020 às 20:33

Entendo

Editado Março 13 por R e d

Yan OliveiraY
16 de março de 2020 às 19:41
Em 13/03/2020 em 10:22, Jhony Araujo disse:
Versão do Servidor: TFS - 0.4
Tipo de Script: actions
Código:
  Ocultar conteúdo


 

Pessoal, alguém poderia me ajudar com um script que se vc clicar em X item (configurável) vc ganha X montaria (configurável)

se eu estiver postado no lugar errado, por favor, perdão!
grato

Sim amigo, você criou o post na seção errada, o certo seria em Pedidos de Script já que quer um script, e essa seção é para pessoas que tem um script existente e precisa de suporte.

 

Mas vamos lá, vai em Data/Actions/Scripts e crie um arquivo recebe_montaria.lua e adicione o código dentro:

local id_montaria = XXXX -- AQUI COLOCA O ID DA MONTARIA
local repetir = false -- AQUI É UMA CONDIÇÃO PARA SABER SE O PLAYER PODE RECEBER NOVAMENTE A MONTARIA, CASO ELE SÓ POSSA USAR O ITEM 1 VEZ, DEIXE FALSE, SENÃO TRUE
local storage = 36587 -- STORAGE PARA SABER SE O PLAYER JÁ USOU O ITEM ANTES
local level = 1 -- NÍVEL MÍNIMO PARA USAR O ITEM

function onUse(cid, item, frompos, item2, topos)
  
  if getPlayerLevel(cid) < level then
    doPlayerSendTextMessage(cid, 27, "You need to be at least level " ..level.. " or more to use this item.")
  return true
  end
  
  if (getPlayerStorageValue(cid, storage) < 1) and (not repetir) then
    doSendMagicEffect(getThingPos(cid), 29)
    doPlayerAddMount(cid, id_montaria)
    doPlayerSendTextMessage(cid, 27, "Congratulations! You received a mount " ..getItemNameById(id_montaria).. ".")
    doRemoveItem(item.uid)
    setPlayerStorageValue(cid, storage, 1)
  return true
  elseif (getPlayerStorageValue(cid, storage) > 0) and (not repetir) then
    doPlayerSendTextMessage(cid, 27, "You have already used the item before.")
  return true
  end

  if repetir then
    doSendMagicEffect(getThingPos(cid), 29)
    doPlayerAddMount(cid, id_montaria)
    doPlayerSendTextMessage(cid, 27, "Congratulations! You received a mount " ..getItemNameById(id_montaria).. ".")
    doRemoveItem(item.uid)
  return true
  end

return true
end

end

agora vai em Data/Actions e abra o Scripts.xml e adicione a seguinte tag dentro:

<action itemid="2278" event="script" value="recebe_montaria.lua"/> <!-- COLOCA O ID DO ITEM ALI ONDE PEDE -->

 

Coloque o ID da montaria na variável onda ta "XXXX".

 

Como você não deu muitas informações do item, se pode usar mais de uma vez ou não, eu deixei para usar só 1 vez, mas caso queira usar mais, só mudar a variável repetir para true, senão deixa false. (Seria bom avisar se quer que repita ou não, porque com a condição que deixei deixo o código um pouco poluído, ai sabendo como você quer, eu deixo o código limpo caso não possa repetir.)

 

Também coloquei uma verificação de nível, mas deixei 1 para que todos possa usar, mas caso queira especificar, só mudar na variável level.

 

Testa e me fala, eu fiz de cabeça e não consigo testar porque não tenho nenhuma base de Tibia aqui.

Editado Março 16 por Yan18

17 de março de 2020 às 12:14
16 horas atrás, Yan18 disse:

Sim amigo, você criou o post na seção errada, o certo seria em Pedidos de Script já que quer um script, e essa seção é para pessoas que tem um script existente e precisa de suporte.

 

Mas vamos lá, vai em Data/Actions/Scripts e crie um arquivo recebe_montaria.lua e adicione o código dentro:

local id_montaria = XXXX -- AQUI COLOCA O ID DA MONTARIA
local repetir = false -- AQUI É UMA CONDIÇÃO PARA SABER SE O PLAYER PODE RECEBER NOVAMENTE A MONTARIA, CASO ELE SÓ POSSA USAR O ITEM 1 VEZ, DEIXE FALSE, SENÃO TRUE
local storage = 36587 -- STORAGE PARA SABER SE O PLAYER JÁ USOU O ITEM ANTES
local level = 1 -- NÍVEL MÍNIMO PARA USAR O ITEM

function onUse(cid, item, frompos, item2, topos)
  
  if getPlayerLevel(cid) < level then
    doPlayerSendTextMessage(cid, 27, "You need to be at least level " ..level.. " or more to use this item.")
  return true
  end
  
  if (getPlayerStorageValue(cid, storage) < 1) and (not repetir) then
    doSendMagicEffect(getThingPos(cid), 29)
    doPlayerAddMount(cid, id_montaria)
    doPlayerSendTextMessage(cid, 27, "Congratulations! You received a mount " ..getItemNameById(id_montaria).. ".")
    doRemoveItem(item.uid)
    setPlayerStorageValue(cid, storage, 1)
  return true
  elseif (getPlayerStorageValue(cid, storage) > 0) and (not repetir) then
    doPlayerSendTextMessage(cid, 27, "You have already used the item before.")
  return true
  end

  if repetir then
    doSendMagicEffect(getThingPos(cid), 29)
    doPlayerAddMount(cid, id_montaria)
    doPlayerSendTextMessage(cid, 27, "Congratulations! You received a mount " ..getItemNameById(id_montaria).. ".")
    doRemoveItem(item.uid)
  return true
  end

return true
end

end

agora vai em Data/Actions e abra o Scripts.xml e adicione a seguinte tag dentro:

<action itemid="2278" event="script" value="recebe_montaria.lua"/> <!-- COLOCA O ID DO ITEM ALI ONDE PEDE -->

 

Coloque o ID da montaria na variável onda ta "XXXX".

 

Como você não deu muitas informações do item, se pode usar mais de uma vez ou não, eu deixei para usar só 1 vez, mas caso queira usar mais, só mudar a variável repetir para true, senão deixa false. (Seria bom avisar se quer que repita ou não, porque com a condição que deixei deixo o código um pouco poluído, ai sabendo como você quer, eu deixo o código limpo caso não possa repetir.)

 

Também coloquei uma verificação de nível, mas deixei 1 para que todos possa usar, mas caso queira especificar, só mudar na variável level.

 

Testa e me fala, eu fiz de cabeça e não consigo testar porque não tenho nenhuma base de Tibia aqui.

 

beleza irei testar, obrigado irmão quando eu testar aviso!

Editado Março 17 por Jhony Araujo

Yan OliveiraY
17 de março de 2020 às 12:46
30 minutos atrás, Jhony Araujo disse:

 

beleza irei testar, obrigado irmão quando eu testar aviso!

De nada bro ☺️, só não esquece de colocar o ID da montaria porque coloquei XXX pois não sei qual o id da que quer, se não trocar vai dar erro no script.

 

Qualquer problema só me avisar.

18 de março de 2020 às 06:15

pode deixar é noix irmão obrigado mesmo