All4Tibia

Forum poświęcone Tibii i Ots...

Ogłoszenie

Witaj na stronie All4Tibia...

#1 2009-04-02 14:59:44

Trojash

Administrator

Zarejestrowany: 2009-03-31
Posty: 10
Punktów :   

[8.1] Samochód w Tibii!

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

 

Stopka forum

RSS
Powered by PunBB
© Copyright 2002–2008 PunBB
Polityka cookies - Wersja Lo-Fi


Darmowe Forum | Ciekawe Fora | Darmowe Fora
www.is2010.pun.pl www.lareallife.pun.pl www.kakashi.pun.pl www.kupsztyl.pun.pl www.sp3a.pun.pl