CO

Roller Coaster System

Por colex, 02 de ago. de 2008 em Actions e Talkactions

otserv
script
58
14.7k
djlucas15D
31 de outubro de 2008 às 09:23

Coloquei as IDS tudo certo ai quando eu clico no carrinho o char vai até o carro e...

[31/10/2008 09:17:27] data/actions/scripts/RollerCoaster.lua:142: attempt to call global 'mayNotMove' (a nil value)

[31/10/2008 09:17:27] stack traceback:

[31/10/2008 09:17:27] data/actions/scripts/RollerCoaster.lua:142: in function <data/actions/scripts/RollerCoaster.lua:138>

NilokzN
02 de novembro de 2008 às 06:02

cara....seus posts saunnn massaa..!!

mais explica melhor aee.... ;/

só falta isso pro seu post fika feraa

=)

1 mês depois...
matheusbrM
28 de dezembro de 2008 às 19:42

ihh eu arrumo tudo certo,mas na hora de dar use no carrinho nao acontece nada.

Coloquei action 1001 nos carrinhos. E Meu OT é o Servfull 1.1 para tibia 8.1.

 

Obrigado

Editado Dezembro 28 por MatheusBR

1 mês depois...
raalgustoR
23 de janeiro de 2009 às 17:15
Actionid 1001 no trem faz o trem começar a andar para um lado e o actionid 1002 faz ele começar a andar pro outro lado...

Para o carrinho parar, voce tem de colocar um "fim de trilho" (aquele trilho com uma placa ou algo do genero) no fim...

 

Minha Esperança

Vlw Cara Tbm Queria Falar Que Voce É o Melhor Script Do Mundo.

Nota 1000

Fiquei Tentando Isso 1 Semana.

Mais Consegui Hojeeeeeeeeeeeeeeeeeeee!

Editado Janeiro 25 por Gladiador Negro

SyphosS
24 de janeiro de 2009 às 18:38

Ow Colex, parabéns mesmo! Revolucionário seu script! Me ajudou a fazer o tipo de OT que eu quero!

 

Putz! Alguém me ajuda plz?

Eu consegui fazer o trenzinho andar, mas, qd ele sobe uma escada, fica parado e o char volta a ter outfit normal. Se eu testo c/ player normal (em vez de GM) eu fico lá pra sempre! :rip:

 

O que devo fazer pra ele continuar andando?

 

Outra pergunta: Será que pode fazer uma curva atrás da outra? Fazendo um trajeto mais serpenteado? Vai travar e parar de andar?

 

Vlw! Se alguém puder me ajudar eu agradeço muito! Preciso muito dessa Montanha Russa! xD

 

 

Fui! :yipi:

SyphosS
25 de janeiro de 2009 às 21:32
Ow Colex, parabéns mesmo! Revolucionário seu script! Me ajudou a fazer o tipo de OT que eu quero!

 

Putz! Alguém me ajuda plz?

Eu consegui fazer o trenzinho andar, mas, qd ele sobe uma escada, fica parado e o char volta a ter outfit normal. Se eu testo c/ player normal (em vez de GM) eu fico lá pra sempre! :rip:

 

O que devo fazer pra ele continuar andando?

 

Outra pergunta: Será que pode fazer uma curva atrás da outra? Fazendo um trajeto mais serpenteado? Vai travar e parar de andar?

 

Vlw! Se alguém puder me ajudar eu agradeço muito! Preciso muito dessa Montanha Russa! xD

 

 

Fui! :yipi:

 

 

A deixa! Já consegui resolver xD

 

Era só colocar chão debaixo dos trilhos e tem q colocar "traphole" para descer as escadas.

 

Vlw, flw! :smile_positivo:

guguzinhoG
27 de janeiro de 2009 às 12:39

Roller Coaster System



Developed by Colex

 

Introdução:

Este script de Montanha-Russa é um sistema facil de utilizar, foi elaborado de forma a que qualquer pessoa pudesse usar sem qualquer alteração no script, mas para aquele que gostam de personalizar o script, eu adicionei um sistema de "eventos" e um par de funções para tornar muito facil a alteração e adaptação do script sem ser necessário entender o script em si.

 

O script foi criado num OTServer 8.1, porém voce pode facilmente actualiza-lo para qualquer outra versão, quando voce faz o download do script, ele vem com um ficheiro README que ajuda-o no processo de actualização e tambem dá algumas informações extras.

 

Features:

  • Um script funciona com todas as montanhas-russas do server
  • A velocidade aumenta quando voce desce uma rampa
  • A velocidade diminui quando voce sobe uma rampa
  • Voce pode adicionar impulsores ao trilho (aumenta a velocidade)*
  • Voce pode adicionar freios ao trilho (diminui a velocidade)*
  • Voce pode facilmente adicionar comportamentos personalizados ao ficheiro de eventos

 

*leia o README para ter mais informações de como fazer isso

 

Roller Coaster's Video:

Este é um filme de exemplo da Roller Coaster que eu fiz para testar o script (não foi filmado com a ultima versão do script)

 

Download:

RollerCoaster___Colex.rar

O download contem 4 arquivos: README.txt, RollerCoaster.lua, RollerCoasterEvents.lua e actions.xml

 

 

Script:

Estou a postar o script no próprio tópico para aqueles que não querem fazer o download do mesmo, mas querem dar uma olhada no script... Para obter todas as informações e ter um funcionamento correcto do sistema, é necessário o download do mesmo.

 

------Roller Coaster System by Colex-------
dofile('data\\actions\\scripts\\RollerCoasterEvents.lua')

local TRAINS = {7131, 7132}
local all = {7121, 7122, 7123, 7124, 7125, 7126, 7133, 7134, 7135, 7136}

local ACTION_TRAIN = {1001, 1002}

local RAILS = {
{id = all[1], dirs = {{dir = SOUTH, out = 2},{dir = NORTH, out = 2}}}, 
{id = all[2], dirs = {{dir = EAST, out = 1},{dir = WEST, out = 1}}},
{id = all[3], dirs = {{dir = EAST, out = 1},{dir = SOUTH, out = 2}}},
{id = all[4], dirs = {{dir = WEST, out = 1},{dir = SOUTH, out = 2}}},
{id = all[5], dirs = {{dir = EAST, out = 1},{dir = NORTH, out = 2}}},
{id = all[6], dirs = {{dir = WEST, out = 1},{dir = NORTH, out = 2}}},
{id = all[7], stop = 1},
{id = all[8], stop = 1},
{id = all[9], stop = 1},
{id = all[10], stop = 1},
}

local SLOW = 500
local FAST = 200
local INCREASE = 50
local DECREASE = 50
local DOWN_INCREASE = 450
local UP_DECREASE = 155

local INFOS = {}

TRUE = 1
FALSE = 0


function getRail(pos)
 local stack = 1 
 local found = 0
 repeat
   pos.stackpos = stack
   rail = getThingfromPos(pos)
   if (rail.itemid == 0) then break end   
   for i, r in ipairs(RAILS) do
     if (rail.itemid == r.id) then
       found = 1
       break
     end   
   end
   stack = stack + 1
 until (found == 1)
 return rail
end

function moveTrain(cid)
 params = INFOS[cid]
 pos = getCreaturePosition(cid)
 rail = getRail(pos)
 dir = -1
 for i,r in ipairs(RAILS) do
   if (rail.itemid == r.id) then
     if (RollerCoaster:onMove(cid, rail, r, pos) == FALSE) then table.remove(INFOS, cid) return 1 end 
     if (r.stop ~= nil) then
       if (r.stop == 1) then
         RollerCoaster:onExitQuery(cid)
         addEvent(exitTrain, 2000, cid)
         return 1
       end
     end 
     change = rail.actionid - 1000 
     power = 0    
     power = change

     doChangeType(cid, r.id, INFOS[cid].beforeid)                 
     info = r.dirs[iNFOS[cid].type]
     dir = info.dir  
     if ((power == 1) or (power == 2)) then
       if (RollerCoaster:onChangeSpeed(cid, power) == TRUE) then
         if (power == 2) then
           INFOS[cid].speed = INFOS[cid].speed - INCREASE
         elseif (power == 1) then
           INFOS[cid].speed = INFOS[cid].speed + DECREASE
         end 
       end
     end
     if (INFOS[cid].currZ ~= pos.z) then
       if (RollerCoaster:onChangeLevel(cid, INFOS[cid].currZ, pos.z) == TRUE) then
         if (INFOS[cid].currZ > pos.z) then
            INFOS[cid].speed = INFOS[cid].speed + UP_DECREASE
         elseif (params.currZ < pos.z) then 
            params.speed = params.speed - DOWN_INCREASE
         end  
       end 
     end
     if (params.speed < 1) then params.speed = 1 end
     params.currZ = pos.z
     newid = TRAINS[info.out]  
     INFOS[cid].beforeid = r.id
     break
   end  
 end      
 if (dir ~= -1) then
   doSetItemOutfit(cid, newid, -1)
   doMoveCreature(cid, dir)
   addEvent(moveTrain,params.speed,cid)
 else
   RollerCoaster:onExitQuery(cid)
   addEvent(exitTrain, 2000, cid)
 end
end

function exitTrain(cid)
 table.remove(INFOS, cid)
 RollerCoaster:onExit(cid)
 doSetItemOutfit(cid, TRAINS[1], 0)
 pos = getCreaturePosition(cid)
 pos.y = pos.y - 1
 doTeleportThing(cid, pos, 1)
 mayNotMove(cid, 0)
end

function enterTrain(params)   
 if (RollerCoaster:onEnter(cid, params[2]) == TRUE) then
   doSetItemOutfit(params[1], params[2], -1)
   pos = getCreaturePosition(params[1])
   table.insert(INFOS, params[1],{type = params.type, speed = SLOW, currZ = pos.z}) 
   addEvent(moveTrain,1000,params[1])
 end
end

function getSpeed(cid)
 if (INFOS[cid].speed ~= nil) then return INFOS[cid].speed end
 return FALSE
end

function setSpeed(cid, speed)
 if (INFOS[cid].speed ~= nil) then INFOS[cid].speed = speed return TRUE end
 return FALSE
end

function onUse(cid, item, fromPosition, itemEx, toPosition)
 if (isInArray(ACTION_TRAIN, item.actionid) == TRUE) then
   if (RollerCoaster:onEnterQuery(cid, item) == TRUE) then
     doTeleportThing(cid, toPosition, 1)
     mayNotMove(cid, 1)
     addEvent(enterTrain,500,{cid, item.itemid, type=(item.actionid-1000)})
   end
 end
 return TRUE
end


----"No Scripting Needed" System-----
local change = {}
change[all[1]] = {all[3], all[4]}
change[all[2]] = {all[4], all[6]}
change[all[3]] = {all[1], all[4], all[6]}
change[all[4]] = {all[1], all[2], all[3], all[5], all[6]}
change[all[5]] = {all[4]}
change[all[6]] = {all[2], all[3], all[4]}
change[all[7]] = {}
change[all[8]] = {}
change[all[9]] = {}
change[all[10]] = {}

function doChangeType(cid, id, beforeID)
 if (table.getn(change[id]) > 0) then
   if (isInArray(change[id],beforeID) == TRUE) then
     if (INFOS[cid].type == 1) then INFOS[cid].type = 2 else INFOS[cid].type = 1 end
   end   
 end
end

 

Espero que gostem e façam bom proveito dele.

 

Atenciosamente,

Colex

 

 

eu n sei se vai responder acho meio dificiu mas ...

n estou conseguindo atualizar o script para 8.40

se houver como alguem me falar agradeço

 

vlw

 

 

:thumbsupsmiley2: eu consegui uhuu em ot 8.4 :thumbsupsmiley2:

--->ROX<---

¬¬ so q o carrin e mais lerdo q 1 em rook ¬¬

como fasso ele fk fast

XD

se alguem puder responder

vlw

grt217G
28 de janeiro de 2009 às 00:03

@Guguzinho

 

Isso e so vc arrumar no RollerCoaster.Lua

 

local SLOW = 500

local FAST = 200

local INCREASE = 50

local DECREASE = 50

local DOWN_INCREASE = 450

local UP_DECREASE = 155

 

Se for para ser Rapido vc colocar 300 ou 350 não sei direito

pq ainda nao testei...

 

 

Sobre Script e ótimo mais tem explicar melhor por meu ingles e basico não intendo algumas coisas

 

 

 

Bye Bye

t1c0z1nh0T
30 de janeiro de 2009 às 18:57

Oq tenho que fazer para o meu carrinho continuar andando qndo sobe uma escada???

 

ele para qndo sobe..

 

 

 

Parabens Colex!! PERFEITO!

3 meses depois...
KakarecoK
18 de abril de 2009 às 17:41

Colex se e foda mesmo tava caçando esse script fais mó tempao e agora achei o seu e funfa direitin. Unica coisa que nao funfo foi aquelas mensagem animada quando o carrinho começa a movimenta e quando ele para. Se alguem pude me ajudar ficarei agradeçido. Te+ :smile_positivo:

19 de abril de 2009 às 00:21

LOL, eu ja tinha ouvido falar do colex, mas nunca tinha visto um dos seus scripts!!

 

Vc eh um dos poucos feras que ja vi aki no tópico, =D Gratz pelo script =DDD

 

Vey se tu faz uma coisa dessas fais qualquer coisa uashsauhsauhasuhsa

Flws, fuuuii!!

8 meses depois...
25 de dezembro de 2009 às 01:11

Aqui ta bugando Pq será ?

warcraftzzW
26 de dezembro de 2009 às 12:03

aew eu fiz tudo coloquei a action id 1001 no carrinho mais eu dou Use nele e não acontece nada!

ajuda ae!

Editado Dezembro 26 por warcraftzz

EhooGuuh5E
27 de dezembro de 2009 às 00:46

kkkkk Testei aqui....bem loko.. rox

 

Mais o Video Foi Removido???

Coloca ai dinovo pra galera.. ver. :)

 

Super Aprovado

haiguriH
28 de dezembro de 2009 às 08:43

Video Removido .. Assim nem vejo .. conserta isso ae ..

 

Agradeço desde já