[MoveEvent] Car System
5 participantes
- °ஃŠﺕρξŘθஃ°Aportador
- Mensajes : 213
[MoveEvent] Car System
Miér Sep 07, 2011 6:55 pm
Car System, bueno este MoveEvent esta muy bueno jeje y es muy divertido yo lo e visto en muy pocos ots y era lo mejor bueno aqui les va :
Primero vamos a
data/movements/scripts
creamos un archivo.lua
nombre: car.lua
movements.xml
Ahora talkactions/scripts crean otro:
"car.lua"
en talcactions.xml
Listo terminamos cuando tengas todo el Id del item es "7266" y los comandos son una ves que estas arriva del Car "Up", "Down", "Left", "Right", "Fast" y "Slow"
Bueno creo que me meresco Mucha +REP =)
Creditos : 99% BT y 1% yo
Primero vamos a
data/movements/scripts
creamos un archivo.lua
nombre: car.lua
- Código:
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
- Código:
<movevent type="StepIn" itemid="7266" event="script" value="car.lua"/>
<movevent type="StepIn" itemid="7267" event="script" value="car.lua"/>
Ahora talkactions/scripts crean otro:
"car.lua"
- Código:
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
en talcactions.xml
- Código:
<talkaction words="car" script="car.lua"/>
Listo terminamos cuando tengas todo el Id del item es "7266" y los comandos son una ves que estas arriva del Car "Up", "Down", "Left", "Right", "Fast" y "Slow"
Bueno creo que me meresco Mucha +REP =)
Creditos : 99% BT y 1% yo
Re: [MoveEvent] Car System
Miér Sep 07, 2011 6:57 pm
rep que buena yegaras amm botare para ti para mod
- °ஃŠﺕρξŘθஃ°Aportador
- Mensajes : 213
Re: [MoveEvent] Car System
Miér Sep 07, 2011 7:04 pm
Jejeje Muchisimas Gracias Skanet estoy tratando de hacer lo mejor para este foro ya que esta muy bueno
Pd : cuando digas rep ponme rep jejeje
Pd : cuando digas rep ponme rep jejeje
- GOD MarranoMiembro
- Mensajes : 49
Re: [MoveEvent] Car System
Miér Sep 07, 2011 8:10 pm
lo probare y rep porke te amo <3
- Dj MajestickMiembro
- Mensajes : 131
Re: [MoveEvent] Car System
Miér Sep 07, 2011 8:28 pm
buena
Super8 no escribar varias veces en un solo post
Super8 no escribar varias veces en un solo post
- OT MaldadoscuraMiembro
- Mensajes : 26
Re: [MoveEvent] Car System
Miér Sep 21, 2011 10:20 am
Una fotito por ahi
pero me encanto +REP [100000000000000000000/10] lo busco ace tiempo :3
pero me encanto +REP [100000000000000000000/10] lo busco ace tiempo :3
Permisos de este foro:
No puedes responder a temas en este foro.