Nie tylko o Tibii i OTS...
Skrypt nie jest moj !
Dodajemy do global.lua:
function isWall(id)
local walls = {1025, 1032, 1028, 1030, 1035, 1027, 1219, 4645, 4647, 4646, 4644}
if isInArray(walls, id) == 1 then
return 1
else
return 0
end
end
Teraz wchodzimy w data/movements/scripts i robimy plik o nazwie car.lua a w nim:
local storages = {
isMoving = 12550,
direction = 12551,
speed = 12552
}
function CarMoveLeft(x)
cpos = x.Cpos
Car = getThingfromPos(cpos)
newpos = {x=x.pos.x-1, y=x.pos.y, z=x.pos.z}
doCreateItem(7267,1,newpos)
doTeleportThing(x.cid, newpos)
doRemoveItem(Car.uid,1)
end
function CarMoveRight(x)
cpos = x.Cpos
Car = getThingfromPos(cpos)
newpos = {x=x.pos.x+1, y=x.pos.y, z=x.pos.z}
doCreateItem(7267,1,newpos)
doTeleportThing(x.cid, newpos)
doRemoveItem(Car.uid,1)
end
function CarMoveUp(x)
cpos = x.Cpos
Car = getThingfromPos(cpos)
newpos = {x=x.pos.x, y=x.pos.y-1, z=x.pos.z}
doCreateItem(7266,1,newpos)
doTeleportThing(x.cid, newpos)
doRemoveItem(Car.uid,1)
end
function CarMoveDown(x)
cpos = x.Cpos
Car = getThingfromPos(cpos)
newpos = {x=x.pos.x, y=x.pos.y+1, z=x.pos.z}
doCreateItem(7266,1,newpos)
doTeleportThing(x.cid, newpos)
doRemoveItem(Car.uid,1)
end
function onStepIn(cid, item, pos)
if isPlayer(cid) == 1 then
local status = {
isMoving = getPlayerStorageValue(cid, storages.isMoving),
direction = getPlayerStorageValue(cid, storages.direction),
speed = getPlayerStorageValue(cid, storages.speed)
}
if status.speed <= 0 then
setPlayerStorageValue(cid, storages.speed, 500)
status.speed = 800
elseif status.speed >= 2500 then
setPlayerStorageValue(cid, storages.speed, 500)
status.speed = 800
end
CarPos = getThingPos(item.uid)
if status.isMoving == 1 then
if status.direction == 1 then
CheckLeft = getThingfromPos({x = pos.x-1, y = pos.y, z = pos.z, stackpos = 1})
if isWall(CheckLeft.itemid) == 1 or isCreature(CheckLeft.uid) == 1 then
setPlayerStorageValue(cid, storages.direction, 2)
x = {cid = cid, pos = pos, Cpos = CarPos}
addEvent(CarMoveRight, status.speed, x)
else
x = {cid = cid, pos = pos, Cpos = CarPos}
addEvent(CarMoveLeft, status.speed, x)
end
elseif status.direction == 2 then
CheckRight = getThingfromPos({x = pos.x+1, y = pos.y, z = pos.z, stackpos = 1})
if isWall(CheckRight.itemid) == 1 or isCreature(CheckRight.uid) == 1 then
setPlayerStorageValue(cid, storages.direction, 1)
x = {cid = cid, pos = pos, Cpos = CarPos}
addEvent(CarMoveLeft, status.speed, x)
else
x = {cid = cid, pos = pos, Cpos = CarPos}
addEvent(CarMoveRight, status.speed, x)
end
elseif status.direction == 3 then
CheckUp = getThingfromPos({x = pos.x, y = pos.y-1, z = pos.z, stackpos = 1})
if isWall(CheckUp.itemid) == 1 or isCreature(CheckUp.uid) == 1 then
setPlayerStorageValue(cid, storages.direction, 4)
x = {cid = cid, pos = pos, Cpos = CarPos}
addEvent(CarMoveDown, status.speed, x)
else
x = {cid = cid, pos = pos, Cpos = CarPos}
addEvent(CarMoveUp, status.speed, x)
end
elseif status.direction == 4 then
CheckDown = getThingfromPos({x = pos.x, y = pos.y+1, z = pos.z, stackpos = 1})
if isWall(CheckDown.itemid) == 1 or isCreature(CheckDown.uid) == 1 then
setPlayerStorageValue(cid, storages.direction, 3)
x = {cid = cid, pos = pos, Cpos = CarPos}
addEvent(CarMoveUp, status.speed, x)
else
x = {cid = cid, pos = pos, Cpos = CarPos}
addEvent(CarMoveDown, status.speed, x)
end
end
elseif status.isMoving == -1 then
setPlayerStorageValue(cid, storages.isMoving, 1)
end
end
end
Teraz do movements.xml dodajemy:
<movevent event="StepIn" itemid="7267" script="car.lua" />
<movevent event="StepIn" itemid="7266" script="car.lua" />
Teraz wchodzimy w data/talkactions/scripts i robimy plik o nazwie car.lua a w nim:
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
ctrl = controls[param]
if (ctrl ~= nil) then
setPlayerStorageValue(cid, ctrl.storage, ctrl.new)
doPlayerSay(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
end
Do talkactions.xml dodajemy:
<talkaction words="car" script="car.lua" />
I tu macie filmik:
http://pl.youtube.com/watch?v=cEZ-Dc4eyRA
Offline
WoW super 15/10 dla tego co to zrobi³ ! Przerobiæ trochê tibie i bêdzie Need For Speed OTS
Offline
Zrobilem all i nie dziala :(Pisze car i pojawia sie to
Inalid operation...
Ostatnio edytowany przez pat999 (2008-05-08 12:31:04)
Offline
Nie je¼dzi ;/
Offline
No ciekawy skrypt przetestuje pó¼niej
Offline
elo fajny zajebi,... samochód normalnie Porsche albo Formula 1 ;]
Offline
Seeker napisał:
POmys³ dobry ale wykonanie nie takie jak powinno i wyglad tego auta to krzes³o juz bardziej...
No sorry w Tibi nie zrobili grafiki samochodów... A tylko oni mog± dodawaæ nowe grafiki :(
Offline
Ale jak stworzyæ go na ots?? Jakie id??
Offline
xd xd xd poprostu nie je¼d¼i xd xd xd nie dzia³a kolo ;/
Offline
Xovadis jaki silnik ?
Offline
Nie dziala wszystko zrobilem ale nie rusza sie wogule
2009-02-23 - data mianowania na Redaktora
2010-08-26 - data rezygnacji
Offline
Boze na Evo nie dzia³a !
Pewnie zaraz bêd± takie teksty: To po co tu to umieszcza³e¶ lub co¶... Odrazu Minus Leci
Ostatnio edytowany przez Pirath (2008-05-09 11:48:28)
Offline