Ir para conteúdo
  • 0

[Movement] Surf Sistem


NatsuMcDonald

Pergunta

Tipo do script: Movement

Protocolo: 8.50 ~ Quero passar ele para 8.54

Servidor utilizado: RookWar 0.2 - TFS 0.3.6

Nivel de experiencia: Quase nenhum

 

Ola Pessoal, eu peguei hoje 1 script de "surfar na neve" , porém ele é para ots 8.4 e 8.50 , e eu gostaria de passar ele para OT 8.54. E o script foi testado no 0.3.4

O Erro dele é que quando eu subo no carro, ele cria outro logo a frente :S

Script:

local CAR_ID = {7266, 7267, 7266, 7267}

function onStepIn(cid, item, pos, frompos)

if isPlayer(cid) == TRUE then

local carpos = getThingPos(item.uid)

addEvent(carMove, 200, {cid = cid, oldpos = carpos})

end

end

 

function carMove(param)

local car = getThingfromPos(param.oldpos)

local newpos = getPlayerLookPos(param.cid)

if getDistanceBetween(getThingPos(param.cid), param.oldpos) == 0 then

if isInArray(CAR_ID, car.itemid) == TRUE then

local tmp = newpos

tmp.stackpos = 253

if doTileQueryAdd(car.uid, newpos) == 1 and getTilePzInfo(newpos) == FALSE and isCreature(getThingFromPos(tmp).uid) == FALSE then

local carid = CAR_ID[getPlayerLookDir(param.cid)+1]

local newcar = doCreateItem(carid, 1, newpos)

doSetItemActionId(newcar, car.actionid)

doSetItemSpecialDescription(newcar, car.description)

doRemoveItem(car.uid, 1)

doTeleportThing(param.cid, newpos, FALSE)

doSendMagicEffect(param.oldpos, CONST_ME_GROUNDSHAKER)

end

end

end

return TRUE

end

Editado por NatsuMcDonald
Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0

Modifiquei algumas coisas e tirei um bug que da quando a posição não existe.

O script é movement, para usar precisa por actionid 5500 no item.

{1675, 1676, 1674, 1677} são os items de acordo com o lado que está virado.

 

movements.xml

<movevent type="StepIn" actionid="5500" event="script" value="car.lua"/>

car.lua

local CAR_ID = {1675, 1676, 1674, 1677}

function onStepIn(cid, item, pos, frompos)
if isPlayer(cid) == TRUE then
	local oldPos = getThingPos(item.uid)
	addEvent(carMove, 200, cid, oldPos)
end
end

function carMove(cid, oldPos)
local car = getThingfromPos(oldPos)
local newPos = getCreatureLookPosition(cid)
if getDistanceBetween(getThingPos(cid), oldPos) == 0 then
	if isInArray(CAR_ID, car.itemid) == TRUE then
		local tmp = newPos
		tmp.stackpos = 253
		if getTileThingByPos({x=newPos.x, y=newPos.y, z=newPos.z}).uid ~= 0 and doTileQueryAdd(car.uid, newPos) == 1
		   and getTilePzInfo(newPos) == FALSE and isCreature(getThingFromPos(tmp).uid) == FALSE then
			local carId = CAR_ID[getCreatureLookDirection(cid)+1]
			doTransformItem(car.uid, carId)
			doTeleportThing(car.uid, newPos, false)
			doTeleportThing(cid, newPos, false)
			doSendMagicEffect(oldPos, CONST_ME_GROUNDSHAKER)
		end
	end
end
end

Editado por kydrai
Link para o comentário
Compartilhar em outros sites

  • 0

Modifiquei algumas coisas e tirei um bug que da quando a posição não existe.

O script é movement, para usar precisa por actionid 5500 no item.

{1675, 1676, 1674, 1677} são os items de acordo com o lado que está virado.

 

movements.xml

<movevent type="StepIn" actionid="5500" event="script" value="car.lua"/>

car.lua

local CAR_ID = {1675, 1676, 1674, 1677}

function onStepIn(cid, item, pos, frompos)
if isPlayer(cid) == TRUE then
	local oldPos = getThingPos(item.uid)
	addEvent(carMove, 200, cid, oldPos)
end
end

function carMove(cid, oldPos)
local car = getThingfromPos(oldPos)
local newPos = getCreatureLookPosition(cid)
if getDistanceBetween(getThingPos(cid), oldPos) == 0 then
	if isInArray(CAR_ID, car.itemid) == TRUE then
		local tmp = newPos
		tmp.stackpos = 253
		if getTileThingByPos({x=newPos.x, y=newPos.y, z=newPos.z}).uid ~= 0 and doTileQueryAdd(car.uid, newPos) == 1
		   and getTilePzInfo(newPos) == FALSE and isCreature(getThingFromPos(tmp).uid) == FALSE then
			local carId = CAR_ID[getCreatureLookDirection(cid)+1]
			doTransformItem(car.uid, carId)
			doTeleportThing(car.uid, newPos, false)
			doTeleportThing(cid, newPos, false)
			doSendMagicEffect(oldPos, CONST_ME_GROUNDSHAKER)
		end
	end
end
end

 

 

EU tenho esse script em 8.50 , mas esse dai serve em 8.54?

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...