What's new

Movements Samoch?d w Tibii!

Status
Not open for further replies.

Xafaso

Advanced User
Joined
Apr 8, 2008
Messages
217
Reaction score
15
Witam, nie mog?em si? powstrzyma? by tego tutaj nie da?.

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 to wszystko, acha i tutaj macie jeszcze filmik (my?l?, ?e wszystko on dobrze t?umaczy, je?li nie to mog? napisa?).
Link -

Skrypt nie jest m?j! Kiedy? te? mia?em podobny samochodzik zrobiony przez mnie, ale to na Tibi? 7.92 i ?w samochodzik by? z skrzynki ;d
 

Michasel

User
Joined
Apr 8, 2008
Messages
15
Reaction score
2
Jest par? b??d?w, a mianowicie, gdy skr?casz w prawo, samoch?d ustawiony jest w lewo, tak samo gdy jedziesz do g?ry, samoch?d ustawiony jest w d??.
 

ospa

Active User
Joined
Apr 7, 2008
Messages
86
Reaction score
7
Mi niestety skrypcik nie dzia?a :/ Pisze "Invalid Operation" :/ Szkoda ale fajnie na filmiku wygl?da :D
 

Charlie

User
Joined
Apr 20, 2008
Messages
22
Reaction score
1
Swietny skrypt. I strasznie du?o roboty z nim pewnie by?o ... :/
 

Daniolki

Active User
Joined
Apr 18, 2008
Messages
129
Reaction score
11
Age
29
Ehm.. Prosz? O Poprawienie Tego Skryptu Bo To Naprawde Ciekawa Rzecz Bo Mi Pisze Invalid Operation A Je?eli To Ja Co? ?le Zrobi?em To Napiszcie Jak Mam To Zrobi?!!
 

Pinokio12

User
Joined
Apr 4, 2008
Messages
15
Reaction score
1
Skrypt nei jest twoj widzialem go na otfans... wiec napisz Uzytkownika...
 

dadi11

New User
Joined
Apr 8, 2008
Messages
3
Reaction score
1
Prosze o pomoc xd

Prosze o pomoc xd

Prosze O Pomoc Bo Nie Wiem O Co Chodzi W Tym, Ze Jak Zrobie Sobie Samochodzik I Wsiadam Na Niego I Pisze Car To Mi Wyskakuje Invalid Operation :/ A Taki Fajny Skrypt ! Dalbym 100/10 Xd
 

Wawus

Active User
Joined
Apr 4, 2008
Messages
70
Reaction score
9
=(

=(

Powiedzcie dlaczego po wejsciu na "car" nie dzia?a mi mimo gadania comend?
W kt?rym miejscu w global.lua to wklei??
 

Wiron

User
Joined
Apr 7, 2008
Messages
10
Reaction score
1
Fajny skrypt. Kto? musia? w?o?y? w niego du?o wysi?ku.

A takie pytanie... Czy jak kto? stoi obok kierowcy i wypowiada kom?dy to samoch?d te? reaguje?
 

Xafaso

Advanced User
Joined
Apr 8, 2008
Messages
217
Reaction score
15
#UP
Nie powinien reagowa?.

#Topic
Nie wiem co wy ?le robicie, przecie? wszystko jest napisane tak jak powinno to by? zrobione. Pr?bowa? kto? testowa? ten skrypt na TFS ?
 

Pakito

User
Joined
Apr 5, 2008
Messages
40
Reaction score
1
Age
29
Mi te? nie dzia?a : ( jak pisze car to tez "Invalid operation." i jeszcze raz : ( ?e nie dzia?a :( :( :(
 

Wawus

Active User
Joined
Apr 4, 2008
Messages
70
Reaction score
9
Ja na sql - Devlandzie testowa?em i dzia?a.
Ale nie dzia?a na xml - Evolution :(
 

ospa

Active User
Joined
Apr 7, 2008
Messages
86
Reaction score
7
No to fajnie :/ Ja mam silnik aries 0.4.0 xml , wi?c mi nie pujdzie tak? Wi?c prosz? tego co zrobi? ten skrypt aby zrobi? go na xml aries , evolution ;] Nie powinien mie? problemu z tym bo sam robi? skrypcik :D
 

Rainbowek

New User
Joined
Apr 16, 2008
Messages
1
Reaction score
0
?wietne eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
 

Xafaso

Advanced User
Joined
Apr 8, 2008
Messages
217
Reaction score
15
- Sprawdzcie czy dzia?a ten skrypt na TFS, bo napewno powinien.
- Sprawdzcie czy dobre id dajecie, acha i jeszcze zobaczcie tak - Nie wyczarowywujcie tego "samochodu" tylko postawcie go w MapEdytorze na waszej mapie i zobaczcie czy b?dzie dzia?a?.
 

Emil_6

User
Joined
Apr 4, 2008
Messages
26
Reaction score
1
Code:
setPlayerStorageValue(cid, ctrl.storage, ctrl.new)
doPlayerSay(cid, ctrl.txt, TALKTYPE_SAY)
else
doSendMagicEffect(getPlayerPosition(cid), 2)
doPlayerSendCancel(cid, "Invalid operation.")
end
else

Gdzie trzeba wypowiedziec komende "car" aby nie wyskoczy?o "Invalid operation" :D?

Aaa.. postawi?em w MapEditorze : nie dzia?a :cool:

A w skryptach trzeba zmieni? "pozycje" czyli : x , y , z ?? :D
 
Last edited:

Minokon

Active User
Joined
Apr 8, 2008
Messages
76
Reaction score
1
nie dzia?a mi ten skrypt wpakowa?em go na Evo by Dami
pisze "Invalid Operation" pomo?e mi kto??
 
Status
Not open for further replies.
Top