[Arquivado][moveevent] Nahruto's Car [atualizado]

makabrotaliban
em Noticias - Arquivo

makabrotaliban

avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 08/01/09Posts: 331Char no Tibia: Orcshaball

:forward: Nahruto's Car :back:

 

:arrow: Um pequeno vídeo do Srcipt:

 

Rescriptado e testado utilizando TFS (0.3.4)

 

movemenst / scripts

 

car.lua

local storages = {isMoving = 12550, direction = 12551, speed = 12552}

 

local SpeedMeter = {Default = 800, Max = 0, Min = 2500}

 

function tileChecker(pos, type_)

local myTable = {}

if (type(pos) == 'table') then

for i = 1, 5 do

pos.stackpos = i

local Thing = getThingFromPos(pos)

local thisID, thisUID = Thing.itemid, Thing.uid

if thisID > 1 then

if type_ == "itemID" then

table.insert(myTable, thisID)

elseif type_ == "itemUID" then

table.insert(myTable, thisUID)

end

end

end

end

return #myTable > 0 and myTable or nil

end

 

local function findItem(pos, t)

if (type(pos) == 'table' and type(t) == 'table') then

for _i, i in ipairs(tileChecker(pos, "itemID")) do

if isInArray(t, i) then

pos.stackpos = _i

ret = getThingFromPos(pos).uid

break

end

end

end

return ret

end

 

function moveCar(x)

if x.Dir ~= -1 then

doCreateItem(isInArray({1, 2}, x.Dir) == TRUE and 7267 or 7266, 1, x.nPos)

doTeleportThing(x.cid, x.nPos, FALSE)

doRemoveItem(findItem(x.pos, {7266, 7267}))

end

end

 

function onStepIn(cid, item, position, fromPosition)

if isPlayer(cid) == TRUE then

local status =

{

isMoving = getPlayerStorageValue(cid, storages.isMoving),

direction = getPlayerStorageValue(cid, storages.direction),

speed = getPlayerStorageValue(cid, storages.speed)

}

if status.speed <= SpeedMeter.Max then

setPlayerStorageValue(cid, storages.speed, SpeedMeter.Default)

status.speed = SpeedMeter.Default

elseif status.speed >= SpeedMeter.Min then

setPlayerStorageValue(cid, storages.speed, SpeedMeter.Default)

status.speed = SpeedMeter.Default

end

if status.isMoving == 1 then

local Movements =

{

[1] = {x = position.x - 1, y = position.y, z = position.z},

[2] = {x = position.x + 1, y = position.y, z = position.z},

[3] = {x = position.x, y = position.y - 1, z = position.z},

[4] = {x = position.x, y = position.y + 1, z = position.z}

}

 

if not Movements[status.direction] then setPlayerStorageValue(cid, status.direction, 1) end

 

local Stor = status.direction

 

local newPos = Movements[stor]

 

local Check = tileChecker(newPos, "itemUID")

 

if Check ~= nil then

for _, i in ipairs(Check) do

if (hasProperty(i, CONST_PROP_BLOCKSOLID) == TRUE or isCreature(i) or getTilePzInfo(newPos)) then

Stor = isInArray({1, 2}, Stor) == TRUE and (Stor == 1 and 2 or 1) or isInArray({3, 4}, Stor) and (Stor == 3 and 4 or 3) or nil

newPos = Movements[stor]

setPlayerStorageValue(cid, storages.direction, Stor)

break

end

end

end

addEvent(moveCar, status.speed, {cid = cid, pos = position, nPos = newPos, Dir = Stor})

 

elseif status.isMoving == -1 then

setPlayerStorageValue(cid, storages.isMoving, 1)

end

end

return TRUE

end

 

movements.xml

<movevent type="StepIn" itemid="7266" event="script" value="car.lua"/>

<movevent type="StepIn" itemid="7267" event="script" value="car.lua"/>

talkactions / scripts

 

car.lua

local storages = {isMoving = 12550, direction = 12551, speed = 12552}

 

function onSay(cid, words, param)

local status =

{

isMoving = getPlayerStorageValue(cid, storages.isMoving),

direction = getPlayerStorageValue(cid, storages.direction),

speed = getPlayerStorageValue(cid, storages.speed)

}

local controls =

{

["up"] = {storage = storages.direction, new = 3, txt = "up"},

["down"] = {storage = storages.direction, new = 4, txt = "down"},

["left"] = {storage = storages.direction, new = 1, txt = "left"},

["right"] = {storage = storages.direction, new = 2, txt = "right"},

["speedup"] = {storage = storages.speed, new = status.speed - 50, txt = "fast"},

["speeddown"] = {storage = storages.speed, new = status.speed + 50, txt = "slow"},

["stop"] = {storage = storages.direction, new = -1, txt = "stop"}

}

if status.isMoving == 1 then

local ctrl = controls[param]

if ctrl then

setPlayerStorageValue(cid, ctrl.storage, ctrl.new)

doCreatureSay(cid, ctrl.txt, TALKTYPE_SAY)

else

doSendMagicEffect(getPlayerPosition(cid), 2)

doPlayerSendCancel(cid, "Invalid operation.")

end

else

doPlayerSendCancel(cid, "You are not in a car.")

end

return TRUE

end

talkactions.xml

<talkaction words="car" script="car.lua"/>

 

Créditos



 
Nahruto

Nosctradamus

 

<~> Versão Atualizada em 09/07/2009 <~>

- Xtibia.com seu site de Tibia e OTServer ! -

Henrique Moura

Ex-administrador
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 17/02/08Posts: 2541

Simplesmente magnifico. Funciona perfeitamente, é bem legal.

Deixa o Tibia mais engraçado e mais divertido, fazendo assim que o player

seja fiel ao servidor. Mas é claro, quem quiser um sistema desse no seu server, é presciso um pouco de dedicação e trabalho. Continue trazendo mais conteúdo para o Xtibia.

Por mim, aprovado. :button_ok:

 

 

 

~~ Kakilo

KaKilo ~
 


Lom14fD.png

makabrotaliban

avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 08/01/09Posts: 331Char no Tibia: Orcshaball

@Kakilo

 

Grato Pelo COment

 

..A intenção eh essa...sempre inovar o Xtibia !!

- Xtibia.com seu site de Tibia e OTServer ! -

grafit

avatar
Banidos
Banidos

INFOS

Grupo: BanidosRegistrado: 17/01/08Posts: 85Char no Tibia: Sweet Khelix

como podem perceber eu não sou muito de postar no xtibia :]

mais nesse postei porque é realmente muuito bom o script O:

o vídeo é bem legal mesmo

 

Aprovado[2]

(:

makabrotaliban

avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 08/01/09Posts: 331Char no Tibia: Orcshaball

@grafit

 

Grato pelo post !!

 

..E obrigado pelos coments !!

- Xtibia.com seu site de Tibia e OTServer ! -

dwhfms

Eterno Coordenador - ou não :(
avatar
Marquês
Marquês

INFOS

Grupo: MarquêsRegistrado: 08/05/08Posts: 1342

Teria como voce postar umas SS's? Gostaria de sabe como é mais ou - sabe?

 

Agradecido

Entrada como Estagiário: 10/05/09

Entrada na Equipe de Imprensa: 23/06/09

Coordenador de Imprensa: 11/09/09

Coordenador de Redação: 20/03/11

Coordenador de Imprensa: 11/07/11

Diretor de Publicidade: 19/10/12

Contato: wonhelder@xtibia.com

 

"Não podemos prever o futuro, mas podemos criá-lo." Paul Pilzer

"Todo homem morre, mas são poucos os que realmente vivem." William Wallace

 



 

Conheça o Facebook do XTibia.com, lá você vê o melhor conteúdo do XTibia e ainda pode concorrer a prêmios incríveis!

 

facebooklogoq.jpg

makabrotaliban

avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 08/01/09Posts: 331Char no Tibia: Orcshaball

@dwhfms

 

Não há necessidade de postar SS's .....há um minivídeo no começo do post explicando e mostrando o Script !!!

- Xtibia.com seu site de Tibia e OTServer ! -

123Will321

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 23/01/09Posts: 17

Cara me interessei muito no topico mais não entendi uma coisa:

 

Onde eu tenhu q por esta parte aki Function isWall...?

 

Poderia me explicar melhor?

 

Obrigado

lucasatak

Egoísmo?... Nunca!
avatar
Artesão
Artesão

INFOS

Grupo: ArtesãoRegistrado: 07/05/08Posts: 120

Eu n entendi uma coisa,aonde eu ponho isso --> Function isWall...

 

Brigado!

 

Eu n entendi uma coisa,aonde eu ponho isso --> Function isWall...

 

Brigado!

porco.gif

 

 

voltando aos poucos.

 

 

hsb.gif

 

É CAMPEÃO CARIOCA 2010 PORRA !

makabrotaliban

avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 08/01/09Posts: 331Char no Tibia: Orcshaball

@luacasatak

 

Pergunta respondida via PM como pediu...espero ter sanado sua dúvida !!

 

Grato pelo post

 

SEM MAIS

- Xtibia.com seu site de Tibia e OTServer ! -

Schiavinato

Aprendendo Scripting *-*
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 12/08/07Posts: 345Char no Tibia: Lokeded

Explika aki no topico sobre esse inWall

 

Ngm intendeu onde eh pra por ele

:]

The Crystal Server(Sorcerer´s Stone) - Project



 

Venha participar deste projeto - Desenvolvido por Shynzo

 

Link para download do distro:

http://www.xtibia.com/forum/topic/143282-862-the-crystal-server-v018/

Link da formação do projeto:

http://www.xtibia.com/forum/topic/143247-the-crystal-server-recruta/

makabrotaliban

avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 08/01/09Posts: 331Char no Tibia: Orcshaball

Suporte e dúvidas sobre o script via PM!

 

...Ultimamente estou sem tempo ateh de postar ....por isso estou respondendo via PM !!!

 

Grato a atenção de todos !!

- Xtibia.com seu site de Tibia e OTServer ! -

Bruno TIBIANo

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 12/03/09Posts: 22

Desculpe as ofenças

Bruno TIBIANo

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 12/03/09Posts: 22

Luiz Exclui um dois post as por favor

makabrotaliban

avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 08/01/09Posts: 331Char no Tibia: Orcshaball

@BRUNO TIBIANo

 

Me ofender n vai levar a nada...só te prejudicar mesmo.

Pra que discutir se a minha é resposta é obvia, ker bater boca envia PM!

 

Aff esses NOOBS !!

 

Reportado

 

@post

 

A function wall não é obrigatória, é como se fosse um túnel ou algo que escondesse os trilhos é só ver os IDs que estão expostos e comparar no Map Editor.

O script funfa perfeitamente sem ela!

 

- Xtibia.com seu site de Tibia e OTServer ! -