Ir para conteúdo

[Talkaction] Dirigindo "carro"


Hudsin

Posts Recomendados

Olá pessoal,venho ao Xtibia através desse post trazer um sistema que eu achei muito legal,encontrei no otland e como nao encontrei aqui resolvi postar,testei em meu server todos gostaram!!!

Não sei se ja tem esse sistema postado aqui,se ja tiver me desculpem :tongue:

O Sistema consistem em,quando você digitar o comando,aparecerá um "carro" em você e sairá andando sozinho,para controlar basta usar control + as setinhas,assim que trombar aparece Crashed! e ele some :smile:

Créditos do criador: Doggynub

Créditos pelas auterações: Hudsin,Pinpao,Arkires,DarkVelocity

 

Edit: Versão testada 8.60

 

Lembrando: A velocidade máxima do carro pode ser configurada,sendo quanto maior o numero menor a velocidade e quanto menor o numero maior a velocidade. :smile_positivo:

 

Modificações: O script que vem no otlando vem com bug(se você está pk e tromba o carro o pk sai, eu e meus amigos arrumamos isso e mais alguns "bugs").Retirado o bug de quando estiver pk trombar o carro e sai o battle(por Hudsin,Arkires e Pinpão)

 

Comandos:

!car move: Sumona o carro e começa a andar com a velocidade inicial

!car speed: aumenta a velocidade do carro

!car slow: diminui a velocidade do carro

!car stop: para o carro

 

Obs: Caso você morra usando o carro,quando você nascer nao ira conseguir sumonar de primeira,precisará usar !car stop e ai sim !car move novamente,pois como você morreu usando o carro fica salvo como se ainda estivece nele,dando !car stop ele para e você pode usa-lo novamente.

 

Em Talkactions/Scripts,crie um arquivo.lua com o nome de car.lua e adicione:

 

 

--<< Configurable >>--

local storages = { speed = 314622, status = 352993 } -- Empty storages

 

local cfg = { min_speed = 300, -- better not increase than that [ the least speed for a car ]

max_speed = 200, -- better not decrease than this [ the maximum speed for a car ]

Increase_per_command = 100, -- The speed increase or decrease value per each command (!car speed // !car slow)

Car_Explode = true -- Keep it true , so your map isnt filled with cars

}

-->> END <<--

 

--<< Functions >>--

 

function isWalkable(pos, creature, pz)-- Modificações by Hudsin,Arkires e Pinpao Xtibia

if getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid == 0 then return false end

if getTopCreature(pos).uid > 0 and creature then return false end

if getTileInfo(pos).protection and pz then return false, true end

local n = not proj and 3 or 2

for i = 0, 255 do

pos.stackpos = i

local tile = getTileThingByPos(pos)

if tile.itemid ~= 0 and not isCreature(tile.uid) then

if hasProperty(tile.uid, n) or hasProperty(tile.uid, 7) then

return false

end

end

end

return true

end

 

function getCarSpeed(cid) return getPlayerStorageValue(cid,storages.speed) end

function setCarSpeed(cid,value) return setPlayerStorageValue(cid,storages.speed, getPlayerStorageValue(cid,storages.speed) + value) end

function setCarStatus(cid,value) return setPlayerStorageValue(cid,storages.status,value) end

function carMove(cid) return getPlayerStorageValue(cid,storages.status) > 0 and true or false end

 

function move(cid,time)

local dir = getCreatureLookDir(cid)

local id = isInArray({1,3},getCreatureLookDir(cid)) and 7267 or 7266

local place = getPositionByDirection(getThingPos(cid),dir,1)

if isWalkable(place,true,true,true) then

doRemoveItem( getTileItemById(getThingPos(cid),7267).uid > 0 and getTileItemById(getThingPos(cid),7267).uid or getTileItemById(getThingPos(cid),7266).uid )

doTeleportThing(cid,place,false)

addEvent(doSendMagicEffect,time+10,place,34)

doCreateItem(id,1,place)

if carMove(cid) then

addEvent(move,time,cid,getCarSpeed(cid))

else

doRemoveItem( getTileItemById(getThingPos(cid),7267).uid > 0 and getTileItemById(getThingPos(cid),7267).uid or getTileItemById(getThingPos(cid),7266).uid )

end

else

doCreatureSetNoMove(cid, 0)

doPlayerSendTextMessage(cid,27,"You have hit somthng.")

setCarStatus(cid,0)

if cfg.Car_Explode then

doRemoveItem( getTileItemById(getThingPos(cid),7267).uid > 1 and

getTileItemById(getThingPos(cid),7267).uid or getTileItemById(getThingPos(cid),7266).uid )

doSendAnimatedText(getThingPos(cid),"Crashed",TEXTCOLOR_RED)

doSendMagicEffect(getThingPos(cid),31)

end

end

end

 

--<< Functions Ends <<--

 

function onSay(cid, words, param, channel)

if param == "speed" then

if carMove(cid) then

if getCarSpeed(cid) > cfg.max_speed then

setCarSpeed(cid,-(cfg.Increase_per_command))

addEvent(doSendAnimatedText,10,getThingPos(cid),"Speeding",TEXTCOLOR_GREEN)

else

setCarSpeed(cid,cfg.max_speed)

doPlayerSendCancel(cid,"The car is in its maximum speed.")

end

else

doPlayerSendCancel(cid,"You should start moving first.")

end

elseif param == "slow" then

if carMove(cid) then

if getCarSpeed(cid) < cfg.min_speed then

setCarSpeed(cid,cfg.Increase_per_command)

addEvent(doSendAnimatedText,10,getThingPos(cid),"Slowing",TEXTCOLOR_GREEN)

else

setCarSpeed(cid,cfg.min_speed)

doPlayerSendCancel(cid,"The car is in its minumium speed.")

end

else

doPlayerSendCancel(cid,"You should start moving first.")

end

elseif param == "stop" then -- by DarkVelocity Xtibia

if carMove(cid) then

setCarStatus(cid,0)

doCreatureSetNoMove(cid, 0)

 

else

doPlayerSendCancel(cid,"Car is already stopped.")

end

elseif param == "move" then

if not carMove(cid) then

if getTileItemById(getThingPos(cid),7267).uid < 1 and getTileItemById(getThingPos(cid),7266).uid < 1 then

local item = isInArray({1,3},getCreatureLookDir(cid)) and 7267 or 7266

doCreateItem(item,1,getThingPos(cid))

end

setPlayerStorageValue(cid,storages.speed,cfg.min_speed)

setCarStatus(cid,1)

doCreatureSetNoMove(cid, 1)

move(cid,getCarSpeed(cid))

else

doPlayerSendCancel(cid,"Car is already moving.")

end

end

 

return true

end

 

 

E em Talkactions.xml adicione:

 

 

<talkaction words="!car" event="script" value="car.lua"/>

 

 

ScreenShot:

 

trutaosv.jpg

 

 

Divirtam-se e me deem Rep+ :smile_positivo: ahsuaSHUIAUSAIUD

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

Sim amigo o script peguei no Otland,mas o script que vem no otland vem com bug,se você está pk e tromba o carro o pk sai, eu e meus amigos arrumamos isso(e muitos outros bugs). E eu não coloquei creditos ao que postou no otland pois ele mesmo não colocou os creditos dele,o que me faz pensar que ele pode ter copiado. :happy:

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

  • 2 weeks later...

Wooow que dahora o script veeeei XD

 

Aqui quando eu uso o comando !car stop o carro para so que o player fica travado sem andar como arrumo ?

 

e tambem quando você desloga no carro, o carro continua no mapa D:

 

Fora isso o script ta perfeito vei mt bom xD :smile_positivo:

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

@santos1996 ; Quanto a isso deve ser por causa da versão do seu ot.

 

@b0mb3r ; Quanto ao bug do !car stop,foi arrumado com a ajuda do DarkVelocity,tente subistituir o script :smile_positivo:

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

  • 2 weeks later...

Otimo script, sou novo por aqui mas estou adorando essa area :)

Sou um scripter iniciante, porem eu sei resolver um dos bug ali.

@b0mb3r, para resolver aquele bug de quando dar !car stop ele nao ficar parado, add essa linha

doCreatureSetNoMove(cid, 0)

Aqui ficou assim:

elseif param == "stop" then
if carMove(cid) then
setCarStatus(cid,0)
doCreatureSetNoMove(cid, 0)

Espero ter ajudado :)

Link para o comentário
Compartilhar em outros sites

O script não é seu e pronto, não sabe quem é o autor?

Coloque abaixo do tópico que não sabe de quem é mas diz a fonte com link e nome de quem publicou.

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

Rapaz, este script é de um usuário da OTLand, segue o link:

 

|- http://otland.net/f81/riding-car-one-file-only-113386/

 

Poste os devidos créditos ao autor, o script não é de sua autoria, apesar de você ter arrumado alguns bugs, poste seus créditos juntamente com o dele.

 

Você tem 24 horas para fazer isto, caso contrário, seu tópico será trancado e você suspenso.

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...