rafakings 0 Postado Janeiro 9, 2010 Share Postado Janeiro 9, 2010 Eae pessoal queria pedir um sistema de trem tipow tu sobe no "cart" id=7131 ai ele te leva pro outro lado por favor postem aee se souberem Obrigado Link para o comentário Compartilhar em outros sites More sharing options...
IrapuanPuan 3 Postado Janeiro 10, 2010 Share Postado Janeiro 10, 2010 (editado) Vamos começar, primeiro, abra a pasta do seu ot/data/actions/scripts, copie qualquer arquivo lua que esteja lá, renomeie para trem.lua, abra-o em bloco de notas e coloque isso dentro: dofile('data\\actions\\scripts\\trem.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 em seguida, abra a pasta do seu ot/data/actions, abra o arquivo actions.xml em bloco de notas, e coloque isso dentro: <action fromid="7131" toid="7132" script="RollerCoaster.lua"/> Fim! Script Feito Por Colex: Roller Coaster System - XTibia - A sua comunidade de Tibia e OTserv Tirei a sua dúvida?Adicione minha FanBar (ou não ) e logo imediatamente em seguida Reporte este tópico para que algum moderador ou Algum nivel acima ao moderador Feche Este Tópico. Grato. SirAvatar Editado Janeiro 10, 2010 por SirAvatar Link para o comentário Compartilhar em outros sites More sharing options...
Killua 389 Postado Janeiro 10, 2010 Share Postado Janeiro 10, 2010 Se me permite uma dúvida (inchirido =P) eu gostaria de saber oque eu teria de fazer para dar certo esse script. Digo, inGame, tenho que dar use? Pois use não deu certo... Espero sua resposta Link para o comentário Compartilhar em outros sites More sharing options...
IrapuanPuan 3 Postado Janeiro 10, 2010 Share Postado Janeiro 10, 2010 Se me permite uma dúvida (inchirido =P) eu gostaria de saber oque eu teria de fazer para dar certo esse script. Digo, inGame, tenho que dar use? Pois use não deu certo... Espero sua resposta Bom Você Dizer isso, pois na verdade esse tópico não foi eu que criei na verdade, foi o collex, em que o link do post dele encontra-se no tutorial, ainda bem que você reportou, agora sabemos que não pega. Mas Quem Sabe pega no dele? Vamos Esperar! Grato. SirAvatar. Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados