Ir para conteúdo

Sistema De "trem" By Mock


Hudsin

Posts Recomendados

O Script consiste em fazer com que seja possivel vc andar de trem(a vá).

Obs: Não escontrei o system no xtibia e resolvi postar :sosad:

Author: Mock

Algumas modificações: Piporealino ---Xtibia

Testado em: TFS 0.3.6

 

Adicione esta tag em data\actions\actions.xml:

 

<action itemid="7131" event="script" value="tremsystem.lua" />
<action itemid="7132" event="script" value="tremsystem.lua" />

 

 

Depois,crie um arquivo.lua em data\actions\scripts e coloque o nome de tremsystem.lua e adicione:

 

 

--Script by mock the bear
--Config
local SPEED = 200
local PLAYERSPEED = 250
--End
local RAILS = {7121, 7122, 7123, 7124, 7125, 7126, 7127, 7128, 7129, 7130} --Thxy rails itemid by nord 
local CART = {[0] = 7132, [2] = 7132, [3] =7131, [1] =7131}
local CONFIG = {
[7121] = 0,[7122] = 0,
[7123] = {EAST, SOUTH},
[7124] = {WEST, SOUTH},
[7125] = {EAST, NORTH},
[7126] = {WEST, NORTH},
[7127] = 0,[7128] = 0,
[7129] = 0,[7130] = 0,
       [152] = {NORTH, SOUTH},     --modificado por  Piporealino Xtibia
       [153] = {SOUTH, NORTH},         
       [154] = {EAST, WEST},   
       [155] = {WEST, EAST},
--Random
}
local reverse = {[0] = 2, 3, 0, 1} -- All that table was made by nord.
local function moveTrain(cid, frompos, direc)
local tab
if not isPlayer(cid) then
	return
end
local pos = getCreaturePosition(cid)
local rar = findRail(pos)
if not rar then
	doPlayerSetNoMove(cid, false)
	doRemoveCondition(cid, CONDITION_OUTFIT)
	doChangeSpeed(cid, -PLAYERSPEED)
	doMoveCreature(cid, direc)
else
	tab = CONFIG[rar]
	if tab and type(tab) == 'table' then
		direc =  tab[tab[1] == reverse[direc] and 2 or 1] -- by nord here
	end
	doSetItemOutfit(cid, CART[direc], -1)
	doMoveCreature(cid, direc)
	addEvent(moveTrain, SPEED, cid, pos,direc)
end
end
function findRail(p)
local p_ = {x=p.x, y=p.y, z=p.z}
for i=0,10 do
	p_.stackpos = i
	local t = getTileThingByPos(p_)
	if isInArray(RAILS, t.itemid) then
		return t.itemid,t.uid
	end
end
end
function onUse(cid, item, frompos) --Script by mock the bear
if hasCondition(cid, CONDITION_OUTFIT) or (item.actionid < 500 and item.actionid > 503) then
	return false
end
doTeleportThing(cid, frompos, false)
doPlayerSetNoMove(cid, true)
   doChangeSpeed(cid, PLAYERSPEED)
addEvent(moveTrain, SPEED, cid, frompos, item.actionid-500)
return true
end

 

 

Depois de tudo pronto,deverá funcionar como mostra o video:

 

 

 

Aqui tem uma ideia que achei interessante :bigsmile:

 

 

9fyz5x.png

 

 

Espero que gostem :laugh:

 

Lembrando que se você usa server global crie novos trens pois se usar os 7131 e 7132 (se não me engano), qualquer trem que estiver no mapa, se clicado, ira bugar.(by Piporealino)

 

Rep+ por trazer ao xtibia :tongue2:

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

No script,onde está o id do trem,você coloca o id do objeto desejado,modificando pelo novo id nas posições(east,west,north,south) nas linhas:

 

local RAILS = {7121, 7122, 7123, 7124, 7125, 7126, 7127, 7128, 7129, 7130} --Thxy rails itemid by nord 
local CART = {[0] = 7132, [2] = 7132, [3] =7131, [1] =7131}
local CONFIG = {
       [7121] = 0,[7122] = 0,
       [7123] = {EAST, SOUTH},
       [7124] = {WEST, SOUTH}, 
       [7125] = {EAST, NORTH},
       [7126] = {WEST, NORTH},
       [7127] = 0,[7128] = 0,
       [7129] = 0,[7130] = 0,
       --Random

 

Você pode dar /i 7121, /i 7122 etc...ver o que significa cada id e subistituir pelo id desejado.

 

e na tag:

<action itemid="7131" event="script" value="tremsystem.lua" />
<action itemid="7132" event="script" value="tremsystem.lua" />

 

no lugar dos ids dai,você coloca o id desejado.

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

  • 3 weeks later...

Opa...desculpe a demora, é que parei com meu serv.

 

a gambiarra que eu fiz foi o seguinte:

 

eu reparei que só os trilhos de curva não bugava..fui da uma olhada no script reparei que só eles estavam mostrando a direção, intao fiz o seguinte:

 

logo a baixo de:

       [7121] = 0,[7122] = 0,
       [7123] = {EAST, SOUTH},
       [7124] = {WEST, SOUTH},
       [7125] = {EAST, NORTH},
       [7126] = {WEST, NORTH},
       [7127] = 0,[7128] = 0,
       [7129] = 0,[7130] = 0,

 

pus:

		[152] = {NORTH, SOUTH},
	[153] = {SOUTH, NORTH},		
	[154] = {EAST, WEST},	
	[155] = {WEST, EAST},	

 

mas preste bem atenção, 152, 153, 154 e 155 são os ids dos trilhos que eu criei e que vocês também precisarão criar.

no caso 152 é um trilho vertical e {NORTH, SOUTH} que vai do SUL para o NORTE(o espaço da primeira virgula é pra onde vai e o segundo espaço é de onde).

 

agora é só por o trem nos novos trilhos... lembre-se que cada novo trilho vai pra uma direção.

 

ja fazendo uma observação, se você usa server global crie novos trens pois se usar os 7131 e 7132 (se não me engano), qualquer trem que estiver no mapa, se clicado, ira bugar.

 

intão é isso.

 

REP + se ajudei... Abraços!

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...