Ir para conteúdo

Featured Replies

Postado

Fuçando em alguns arquivos antigos, acabei encontrando um script old que havia feito para um jovem.

 

Consiste em clicar no item (no caso, a chave do automóvel), será verificado se o automóvel em questão está estacionado na sua frente, caso não estiver, aparecerá uma mensagem informando. Do contrário, você irá "entrar" no automóvel. Conforme for andando com o mesmo, será gasto uma quantia de "combustível" (se não me engano, usei crystal coins como item), não será possível continuar andando quando o combustível zerar, se tentar, você descerá do automóvel automaticamente, com uma mensagem informando-o. Poderia criar um posto de combustível ou algo assim, seria simples, vai da criatividade do sujeito. 

 

Mas enfim, vamos ao script:

 

 

 

 

Vá em Data/Actions, e abra o arquivo actions.xml, adicione a tag:

<action itemid="Item ID do item que será a chave" event="script" value="drive.lua"/>

Salve.

 

 

 

Ainda em actions, vá em scripts, crie um novo arquivo .lua e o nomeie de drive (ficando drive.lua), adicione o seguinte em seu interior:


function onUse(cid, item, frompos, item2, topos)
local config = {
thing = getThingFromPos(getCreatureLookPosition(cid)),
looktype = {lookType = 129 }, --- lookType do player no automóvel.
storage = 32001, --- Storage usada.
speed = 474 --- Velocidade que será adicionada.
}



if getPlayerStorageValue(cid, config.storage) == 1 then
 setPlayerStorageValue(cid, 32001, 0)
  doCreatureSetLookDir(cid, 4)
   doRemoveCondition(cid, CONDITION_OUTFIT)
    doChangeSpeed(cid, -config.speed)
     doPlayerSendCancel(cid,'Voce acaba de sair de seu veículo.')
      doCreateItem(2397, 1, getCreaturePosition(cid))
       doTeleportThing(cid, getCreatureLookPosition(cid))


 else

  if (config.thing.itemid == 2397) then --- No caso, seria o itemid do automóvel estacionado. Eu adicionei como item, sugiro que faça o mesmo.

 if getPlayerStorageValue(cid, config.storage) ~= 1 then

 doRemoveItem(config.thing.uid, 1)
  doTeleportThing(cid, getCreatureLookPosition(cid))
   doCreatureSetLookDir(cid, 2)
    doChangeSpeed(cid, config.speed)
     doSetCreatureOutfit(cid, config.looktype, -1)
      doSendAnimatedText(getCreaturePosition(cid), 'Vrumm!', 32)
       doPlayerSendCancel(cid, 'Voce acaba de entrar em seu veículo.')
        setPlayerStorageValue(cid, config.storage, 1)

end
 else
  doPlayerSendCancel(cid, 'Não há nenhum automóvel estacionado aqui.')


  end

end

return true
  end

Salve.

 

 

 

Vá em data/movements, abra o arquivo movements.xml, e adicione a tag:

(Esses eram os id's do asfalto, no caso eu coloquei para ser gasto combustível apenas neles, sugiro que use action id ao invés disso, então será só adicionar o action id onde desejar)

 

Tag's como usei, por itemid:

<movevent type="StepIn" itemid="977" event="script" value="combustivel.lua"/>
<movevent type="StepIn" itemid="978" event="script" value="combustivel.lua"/>
<movevent type="StepIn" itemid="979" event="script" value="combustivel.lua"/>
<movevent type="StepIn" itemid="985" event="script" value="combustivel.lua"/>

 

 

 

como sugiro que use a tag:


    <movevent type="StepIn" actionid="Action ID que desejar" event="script" value="combustivel.lua"/>

Ainda em movements, vá em scripts, crie um novo arquivo .lua e o nomeie de combustivel (ficando combustivel.lua), e coloque isso em seu interior:

-

function onStepIn(cid, item, position, fromPosition)

local tab = {
gas = 2152, --- Item ID da gasolina (no caso usei crystal coins, se bem me lembro)
storage = 32001, --- Storage usada no drive.lua
speed = 474 --- Velocidade que configurou no drive.lua
}
if getPlayerStorageValue(cid, tab.storage) == 1 then
 if getPlayerItemCount(cid, tab.gas) ==0 then
   setPlayerStorageValue(cid, tab.storage, 0)
    doCreatureSetLookDir(cid, 4)
     doRemoveCondition(cid, CONDITION_OUTFIT)
      doChangeSpeed(cid, -tab.speed)
       doPlayerPopupFYI(cid, 'Seu combustível acabou.')
        doCreateItem(2397, 1, getCreaturePosition(cid))
         doTeleportThing(cid, getCreatureLookPosition(cid))


  else
doPlayerRemoveItem(cid, tab.gas, 1)

   end
  end

return true
end

Configure a tabela, salve.

 

 

 

 

Agora vá em data, creaturescripts, scripts, e abra o arquivo login.lua, e coloque:

if getPlayerStorageValue(cid, 32001) == 1 then   --- Storage usada no drive.lua
setPlayerStorageValue(cid, 32001, 0)
doCreatureSetLookDir(cid, 4)
doRemoveCondition(cid, CONDITION_OUTFIT)
doChangeSpeed(cid, -Speed) --- Coloque em números a speed que configurou no drive.lua
doCreateItem(2397, 1, getCreaturePosition(cid))
doTeleportThing(cid, getCreatureLookPosition(cid))
end
 

Onde colocar? Logo abaixo de:

function onLogin(cid)
accountManager = "Account Manager"
managerCounter = 0

Pronto. Abraços.


spacer.png

 

 

  • 4 months later...

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo