Soup 0 Postado Abril 30, 2010 Share Postado Abril 30, 2010 (editado) Bom, na versão 8.54 clico em "Use" no Roller Coaster System do XTibiano Colexe acaba não acontecendo nada, nem dá erro no script. Alguém poderia ajudar? Ok, acho que botei no lugar errado, mas aproveitando. Alguém tem algum sistema que deixe o número de resets no nick da pessoa? Agradeço. Editado Abril 30, 2010 por Soup Link para o comentário https://xtibia.com/forum/topic/131684-resolvido-action-roller-coaster-system-bug/ Compartilhar em outros sites More sharing options...
Kydrai 146 Postado Abril 30, 2010 Share Postado Abril 30, 2010 (editado) actions/actions.xml <action fromid="7131" toid="7132" script="Roller.lua"/> actions/scripts/Roller.lua --[[ Roller Coaster System by Colex ]]-- --[[ Updated by Kydrai ]]-- -- Lib RollerCoaster = {} RollerCids = {} function RollerCoaster:onChangeLevel(cid, fromZ, toZ) return TRUE end function RollerCoaster:onMove(cid, rail, railInfo, pos) return TRUE end function RollerCoaster:onChangeSpeed(cid, power) if power == 2 then doSendAnimatedText(getCreaturePosition(cid),"TROC TROC",210) else doSendAnimatedText(getCreaturePosition(cid),"TSSSIIIIII",210) end return TRUE end function RollerCoaster:onTypeChange(cid, fromType, toType) return TRUE end function RollerCoaster:onExitQuery(cid) RollerCids[cid] = nil return TRUE end function RollerCoaster:onExit(cid) return TRUE end function RollerCoaster:onEnterQuery(cid, cart) return TRUE end function RollerCoaster:onEnter(cid, cartID) return TRUE end -- End Lib 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 local rail 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) local params, pos, rail, newid local dir = -1 if isCreature(cid) then params = INFOS[cid] pos = getCreaturePosition(cid) rail = getRail(pos) 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 local change = rail.actionid - 1000 local power = 0 local 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) 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) 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 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) local pos = getCreaturePosition(cid) pos.y = pos.y - 1 doTeleportThing(cid, pos, 1) doCreatureSetNoMove(cid, 0) end function enterTrain(cid, item, type) if RollerCoaster:onEnter(cid, item) then doSetItemOutfit(cid, item, -1) local pos = getCreaturePosition(cid) table.insert(INFOS, cid, {type = type, speed = SLOW, currZ = pos.z}) addEvent(moveTrain, 1000, cid) 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) then if RollerCoaster:onEnterQuery(cid, item) and RollerCids[cid] == nil then doTeleportThing(cid, toPosition, 1) doCreatureSetNoMove(cid, 1) RollerCids[cid] = addEvent(enterTrain, 500, cid, item.itemid, 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) then if INFOS[cid].type == 1 then INFOS[cid].type = 2 else INFOS[cid].type = 1 end end end end Coloque essas Actionids No trem: 1001 e 1002, isso indica a direção para qual o trem começa (não lembro qual é). Nos trilhos: 1001 para diminuir e 1002 para aumentar a velocidade quando o trem passa por cima. ----- Já o reset é no nick mesmo ou descrição? Mostra qual o script do reset que vc ta usando. Editado Abril 30, 2010 por kydrai Link para o comentário https://xtibia.com/forum/topic/131684-resolvido-action-roller-coaster-system-bug/#findComment-868572 Compartilhar em outros sites More sharing options...
Soup 0 Postado Abril 30, 2010 Autor Share Postado Abril 30, 2010 Nossa, obrigado mesmo, já achei esse sistema de reset c/ descrição no player. Link para o comentário https://xtibia.com/forum/topic/131684-resolvido-action-roller-coaster-system-bug/#findComment-868577 Compartilhar em outros sites More sharing options...
guedes100 56 Postado Abril 30, 2010 Share Postado Abril 30, 2010 então ja que sua duvida ou pedido tenha sido sanado favor reportar o topico para que os moderadores fechem abraços Link para o comentário https://xtibia.com/forum/topic/131684-resolvido-action-roller-coaster-system-bug/#findComment-868578 Compartilhar em outros sites More sharing options...
Posts Recomendados