Jump to content

Skymagnum

Marquês
  • Posts

    1025
  • Joined

  • Last visited

  • Days Won

    2

Reputation Activity

  1. Upvote
    Skymagnum got a reaction from marvadon in Script para salvar e reiniciar server   
    Se você usa global 10.96 ele já vem instalado no seu servidor, se encontra em globalevents/scripts/serversave.lua, caso não tenha estarei deixando ele aqui.
     
    local shutdownAtServerSave = truelocal cleanMapAtServerSave = truelocal function serverSave()    if shutdownAtServerSave then        Game.setGameState(GAME_STATE_SHUTDOWN)    else        Game.setGameState(GAME_STATE_NORMAL)    end    if cleanMapAtServerSave then        cleanMap()    end    saveServer()endlocal function secondServerSaveWarning()    Game.broadcastMessage('Server is saving game in one minute. Please go to a safe place.', MESSAGE_STATUS_WARNING)    addEvent(serverSave, 60000)endlocal function firstServerSaveWarning()    Game.broadcastMessage('Server is saving game in 3 minutes. Please go to a safe place.', MESSAGE_STATUS_WARNING)    addEvent(secondServerSaveWarning, 120000)endfunction onTime(interval)    Game.broadcastMessage('Server is saving game in 5 minutes. Please go to a safe place.', MESSAGE_STATUS_WARNING)    Game.setGameState(GAME_STATE_STARTUP)    addEvent(firstServerSaveWarning, 120000)    return not shutdownAtServerSaveend  
    tag
    <globalevent name="ServerSave" time="04:55:00" script="serversave.lua" />  
    PS: Sempre coloque 5 minutos antes do horário que você quer que o server caia, se quer que caia as 14:00, coloque 13:55.
  2. Upvote
    Skymagnum reacted to Deadpool in Reward System   
    Manda o xml do Boss. Provavelmente, é só configurar nele.
  3. Upvote
    Skymagnum reacted to Drakopoulos in Modificar algumas coisas   
  4. Upvote
    Skymagnum reacted to miupinho in Mudar logo e letras   
    A logo não ficou muito boa, mas tentei fazer algo parecido, espero que goste!
    v1

     
     
    v2

     
  5. Upvote
    Skymagnum reacted to miupinho in Mudar logo e letras   
    E aí jovem, essa foi difícil, pois não consegui achar a tipografia do canal History, mas fiz duas versões, se gostar use, se não, desuse
     
    v1

     
    v2

     
    v3

     
    v4

     
    Abraços, precisando estamos aí!
    Se gostou, use!
  6. Upvote
    Skymagnum reacted to Wicke in Mudar logo e letras   
    Poderia fazer uma capa para min?
     
  7. Upvote
    Skymagnum reacted to Slicer in Alguma função   
    /\ eh fiquei nessa duvida tb, tem hora q ele fla 'os items' e tem hora q ele fla 'o item'... tava esperando ele flar algu ;p
  8. Upvote
    Skymagnum reacted to Slicer in Alguma função   
    /\ algu assim?
    local function getItemInPos(pos) local info = getTileInfo(pos) local p = {x=pos.x, y=pos.y, z=pos.z} for i = info.things, 1, -1 do p.stackpos = i local item = getTileThingByPos(p) if item.itemid > 0 and not isCreature(item.uid) then return item end end return {itemid = 0, uid = 0}endlocal positions = { {x = 1052, y = 1056, z = 7}, {x = 1052, y = 1057, z = 7}, {x = 1052, y = 1058, z = 7}, {x = 1052, y = 1059, z = 7}, {x = 1052, y = 1060, z = 7}, {x = 1052, y = 1051, z = 7}}local lastPos = nilfor i = 0, math.random(0, 19) do lastPos = positions[(i%#positions)+1] addEvent(doSendMagicEffect, i*150, lastPos, 6) endlocal item = getItemInPos(lastPos)--agora podes usar item.itemid e item.uid  
  9. Upvote
    Skymagnum reacted to dalvorsn in Alguma função   
    Yep, mas podem haver mais items, nesse caso tem que ver o que ele precisa, como ele vai identificar qual item certo. O que tu fez retornaria sempre apenas um item, o primeiro mais acima.
    @Skymagnum Qual o metodo de identificação do item correto? Ou basta ser o topitem?
  10. Upvote
    Skymagnum reacted to Marco Oliveira in TFS 1.X Rainbow Outfit   
    Em talkactions/talkactions.xml:
    <talkaction words="!rainbow" separator=" " script="rainbowoutfit.lua"/> Em talkactions/scripts crie um arquivo chamado rainbowoutfit.lua dentro dele coloque:
    function onSay(player, words, param) if param == 'on' or param == 'ON' then player:setStorageValue(8178237, 1) player:sendCancelMessage("rainbow outfit is actived.") elseif param == 'off' or param == 'OFF' then player:setStorageValue(8178237, 0) player:sendCancelMessage("rainbow outfit is disabled.") else player:sendCancelMessage("wrong parameter, use on or off.") end return false end Em globalevents/globalevents.xml:
    <globalevent name="Rainbow" interval="500" script="others/rainbow_outfit.lua"/> Em globalevents/scripts/others crie um arquivo chamado rainbow_outfit.lua:
    function onThink(interval) for _, player in ipairs(Game.getPlayers()) do if player:getStorageValue(8178237) == 1 then -- here is the storage to check if is "on" or "off" local outfit = player:getOutfit() outfit.lookHead = math.random(0, 132) outfit.lookBody = math.random(0, 132) outfit.lookLegs = math.random(0, 132) outfit.lookFeet = math.random(0, 132) player:setOutfit(outfit) player:getPosition():sendMagicEffect(CONST_ME_MAGIC_GREEN) end end return true end
  11. Upvote
    Skymagnum got a reaction from Luga03 in Town System(Pedido)   
    Tipo: CreatureScripts and Movements.
    Versão: 8.6.
    Testado: Não.
     
    @Explicando.
    Bom é um sistema de mudar de cidade por um tile pedido por um membro do fórum também aparecera no look a cidade que ele vive.
     
    @Instalando.
     
    Primeiramente vá em Pasta do seu servidor / data / movements /
     
    nome_do_script.lua:
     

    function onStepIn(cid, position, fromPosition) local newTown = 1 -- id da nova cidade if getPlayerTown(cid) ~= newTown then return doPlayerSetTown(cid, newTown) and doPlayerSendTextMessage(cid, 27, "Você agora é morador da cidade(" .. getTownName(newTown) .. ").") end return doPlayerSendCancel(cid, "Você já mora nessa cidade") and doTeleportThing(cid, fromPosition) end
     
     
    movements.xml
     

    <movevent type="StepIn" actionid="12345" event="script" value="nome_do_script.lua"/>
     
     
    aí você coloca a actionid "12345" no piso que você quer que muda a cidade.
     
     
     
    Agora vá em Pasta do seu servidor / data / creaturescripts /
     
     
    nome_do_script.lua
     

    function onLook(cid, thing, position, lookDistance) local s = getPlayerSex(thing.uid) local text = s == 1 and "He's" or "She's" local text2 = text.." resident of " .. getTownName(getPlayerTown(thing.uid)) .. "." if isPlayer(thing.uid) then doPlayerSetSpecialDescription(cid, "/n"..text2) end return true end
     
    login.lua

    registerCreatureEvent(cid, "lookTown")
     
    creaturescripts.xml

    <event type="look" name="lookTown" event="script" value="nome_do_script.lua"/>
  12. Upvote
    Skymagnum got a reaction from Administrador in Novo DEATH   
    function onStatsChange(cid, attacker, type, combat, value) local percent = 10 local expCalc = getPlayerExperience(cid)*(percent/100) if isPlayer(cid) and type == STATSCHANGE_HEALTHLOSS and value >= getCreatureHealth(cid) then if getPlayerLevel(cid) >= 15 then doPlayerAddExp(cid, - expCalc) end doCreatureAddHealth(cid, getCreatureMaxHealth(cid) - getCreatureHealth(cid)) doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) return false end return true end <event type="statschange" name="NewDeath" script="newdeath.lua"/> registerCreatureEvent(cid, "NewDeath") Não creio que ira funcionar, mas teste.
  13. Upvote
    Skymagnum got a reaction from akira021 in player->getStorage   
    Use a função atoi.
     
    Exemplo:
     
    string a = "25"; int b = atoi(a.c_str());
  14. Upvote
    Skymagnum reacted to Antharaz in Ajuda com query(players vip)   
    Mil perdões, achei que eu já havia postado o script para você, segue abaixo o script que exclui todos players que tem os mesmos nomes dos vips, independente se estiver online ou não. Eu usei em talkaction pois com a modificação no site, você só precisa retirar os que já tem.
     
    Eu supus que o player vip tem o storage 13540 maior ou igual a 1.
     
    Versão mysql:
    function onSay(cid, words, param, channel) local nomes,res = {},db.getResult("SELECT `player_id` FROM `player_storage` WHERE `value` >= 1 AND `key` = 13540;") if(res:getID() ~= -1) then repeat local id = res:getDataInt("player_id") local res2 = db.getResult("SELECT `name` FROM `players` WHERE `id` = "..id..";") if(res2:getID() ~= -1) then table.insert(nomes,res2:getDataString("name")) end until not(res:next()) for a,b in ipairs(nomes) do b = string.sub(b, 7) db.query("DELETE FROM `players` WHERE `name` = `"..b.."`;") end end return true end Versão SQLite:
    function onSay(cid, words, param, channel) local nomes,res = {},db.getResult("SELECT `player_storage`.`player_id` FROM `player_storage` WHERE `player_storage`.`value` >= 1 AND `player_storage`.`key` = 13540;") if(res:getID() ~= -1) then repeat local id = res:getDataInt("player_id") local res2 = db.getResult("SELECT `players`.`name` FROM `players` WHERE `players`.`id` = "..id..";") if(res2:getID() ~= -1) then table.insert(nomes,res2:getDataString("name")) end until not(res:next()) for a,b in ipairs(nomes) do b = string.sub(b, 7) db.query("DELETE FROM `players` WHERE `players`.`name` = `"..b.."`;") end end return true end
  15. Upvote
    Skymagnum reacted to Antharaz in Ajuda com query(players vip)   
    O problema deste é que só funciona se o vip estiver online né... provavelmente você tem uma table somente com os vips ou então uma coluna na table players que indica se é vip ou não, a partir daí, vc manda filtrar todos que estão marcados como vip na tabela, depois manipula a string do nome retirando o [VIP] e deleta quando achar alguém com esse nome.
     
    Para evitar futuros problemas como este, você poderia criar uma regra no gesior que quando procura se já existe alguém com este nome, verifica também se existe alguém com "[VIP] " + o nome, eu não posso fazer isto agora, mas te dei um caminho, lá para as 22h entro denovo aqui e boto a mão na massa se ainda estiver aberto o tópico. Qualquer coisa me manda PM.
  16. Upvote
    Skymagnum reacted to Antharaz in Ajuda com query(players vip)   
    Estou fazendo as modificações no site para não conseguirem criar chars com mesmo nome de quem já tem "[VIP]", mas gostaria de saber qual sistema do seu site, gesior, modernacc, ou qual?
  17. Upvote
    Skymagnum reacted to Antharaz in Ajuda com query(players vip)   
    Vamos por parte, primeiro iremos fazer com que fique escrito "Player with this name already exist." quando usado o mesmo nome que um vip embaixo da box de onde se digita o nome. Para isto você irá abrir o arquivo check_name.php localizado na pasta htdocs\ajax do seu site e substituir esta parte:
    if($server_config['sqlType'] == "mysql") $ots->connect(POT::DB_MYSQL, array('host' => $mysqlhost, 'user' => $mysqluser, 'password' => $mysqlpass, 'database' => $mysqldatabase) ); elseif($server_config['sqlType'] == "sqlite") $ots->connect(POT::DB_SQLITE, array('database' => $config_ini['server_path'].$sqlitefile)); $name_db = new OTS_Player(); $name_db->find($name); if($name_db->isLoaded()) echo '<font color="red"><b>Player with this name already exist.</b></font>'; else echo '<font color="green">Good. Your name will be:<br />"<b>'.ucwords($name).'</b>"</font>'; ?> Por esta:
    if($server_config['sqlType'] == "mysql") $ots->connect(POT::DB_MYSQL, array('host' => $mysqlhost, 'user' => $mysqluser, 'password' => $mysqlpass, 'database' => $mysqldatabase) ); elseif($server_config['sqlType'] == "sqlite") $ots->connect(POT::DB_SQLITE, array('database' => $config_ini['server_path'].$sqlitefile)); $name_db = new OTS_Player(); $name_db->find($name); $name_db2 = new OTS_Player(); $name_db2->find('[VIP] '.$name); if(($name_db->isLoaded()) or ($name_db2->isLoaded())) echo '<font color="red"><b>Player with this name already exist.</b></font>'; else echo '<font color="green">Good. Your name will be:<br />"<b>'.ucwords($name).'</b>"</font>'; ?> Só isto não basta, pois esta é uma menssagem temporária que o site passa para o visitante, se ele clicar em "submit" ele conseguirá criar o char. Para evitarmos isto, vá na pasta htdocs e abra o arquivo accountmanagement.php, lá você substituirá esta parte:
    if(empty($newchar_errors)) { $check_name_in_database = $ots->createObject('Player'); $check_name_in_database->find($newchar_name); if($check_name_in_database->isLoaded()) $newchar_errors[] .= 'This name is already used. Please choose another name!'; $number_of_players_on_account = $account_logged->getPlayersList()->count(); if($number_of_players_on_account >= $config['site']['max_players_per_account']) $newchar_errors[] .= 'You have too many characters on your account <b>('.$number_of_players_on_account.'/'.$config['site']['max_players_per_account'].')</b>!'; } Por esta:
    if(empty($newchar_errors)) { $check_name_in_database = $ots->createObject('Player'); $check_name_in_database->find($newchar_name); if($check_name_in_database->isLoaded()) $newchar_errors[] .= 'This name is already used. Please choose another name!'; $check_name_in_database->find('[VIP] '.$newchar_name); if($check_name_in_database->isLoaded()) $newchar_errors[] .= 'This name is already used. Please choose another name!'; $number_of_players_on_account = $account_logged->getPlayersList()->count(); if($number_of_players_on_account >= $config['site']['max_players_per_account']) $newchar_errors[] .= 'You have too many characters on your account <b>('.$number_of_players_on_account.'/'.$config['site']['max_players_per_account'].')</b>!'; } Assim o player ficará impossibilitado de criar um char com o nome de algum vip e evitará todos seus problemas. Para finalizar, basta remover todos os players que já tem nome de vips da sua database, para isto fiz uma query que você irá executar apenas uma vez, visto que após modificar o site não terá como eles abusarem disto novamente, porém eu necessitaria saber qual seu sistema de vip para fazer isto, se é por database, por storage e quais as tabelas com colunas ou storages que se usa.
     
    Aguardo retorno.
  18. Upvote
    Skymagnum got a reaction from Ghostzinhow in Ao usar X item ganhar 6 items diferentes   
    function onUse(cid, item) local _items = {{2160, 10}, {2159, 10}} if getPlayerLevel(cid) >= 150 then for i, q in pairs(_items) do doPlayerAddItem(cid, q[1], q[2]) end doRemoveItem(item.uid, 1) else doPlayerSendCancel(cid, "You can not use this") end return true end
  19. Upvote
    Skymagnum reacted to RigBy in Ao usar X item ganhar 6 items diferentes   
    Em action
    .lua
    local items = {2650, 2674, 7752, 4343, 5345, 4345} -- items que vai ganha function onUse(cid, item, fromPosition, itemEx, toPosition) for i,_ in pairs(items) do doPlayerGiveItem(cid, items[i], 1) doRemoveItem(item.uid, 1) end return true end .xml - tag <action itemid="ITEM QUE VAI CLICAR" event="script" value="Nomedoscript.lua"/>
  20. Upvote
    Skymagnum reacted to zani123 in HeroesOT.com - Mapa unico   
    CaptureTheFlag Event em nosso servidor. Lotaaaaaado!
     
    - Estamos atualmente com 4 eventos automáticos diários, incluindo o Capture The Flag.
  21. Upvote
    Skymagnum reacted to zani123 in HeroesOT.com - Mapa unico   
    -> [iP]: HeroesOT.com (ou entre pelo client próprio que pode ser baixado pelo site)
    -> [Versão]: 8.6
    -> [site]: http://HeroesOT.com
    -> [Facebook]: https://www.facebook.com/TheHeroesOfTimeOT/

    -> Para magias novas, diga: !spells
    -> Para comandos novos, diga: !commands
    Temos muitos monstros, magias, items, quests, sistemas, eventos (todos os dias), comandos unicos, novos, editados, e um mapa unico, inovador, editado e totalmente diferente. Caso queira entrar pelo CLIENT PROPRIO ao inves de entrar pelo Tibia, baixe no site no botao DOWNLOAD  
  22. Upvote
    Skymagnum got a reaction from FlamesAdmin in [Resolvido] Morph   
    local _TAB = { ["Shiny Abra"] = {eff = lightEff, name = "Light Abra", outfit = lightOut}, ["Light Abra"] = {eff = darkEff, name = "Shiny Abra", outfit = darkOut}, ["Ghost Rotom"] = {eff = waterEff, name = "Water Rotom", outfit = waterOut}, ["Water Rotom"] = {eff = fireEff, name = "Fire Rotom", outfit = fireOut}, ["Fire Rotom"] = {eff = grassEff, name = "Grass Rotom", outfit = grassOut}, ["Grass Rotom"] = {eff = flyEff, name = "Flying Rotom", outfit = flyOut}, ["Flying Rotom"] = {eff = iceEff, name = "Ice Rotom", outfit = iceOut}, ["Ice Rotom"] = {eff = ghostEff, name = "Ghost Rotom", outfit = ghostOut} } local infos = _TAB[getCreatureName(cid)] if infos then eff, name, outfit = infos.eff, infos.name, infos.outfit end
  23. Upvote
    Skymagnum reacted to zipter98 in Mc não passa em tile   
    Então basta fazer uma verificação dos IPs dos jogadores na área do evento e um onLogin.
    lol...
    local area = {{x = x, y = y, z = z}, {x = x, y = y, z = z}} function onStepIn(cid, item, position, fromPosition) if not isPlayer(cid) then return true end for x = area[1].x, area[2].x do for y = area[1].y, area[2].y do local pos = {x = x, y = y, z = area[1].z} local c = getTopCreature(pos).uid if c > 0 and isPlayer(c) then if getPlayerIp(cid) == getPlayerIp(c) then return doPlayerSendCancel(cid, "There's already someone with your ip in the event...") and doTeleportThing(cid, fromPosition) end end end end return true end  
    local area = {{x = x, y = y, z = z}, {x = x, y = y, z = z}} function onLogin(cid) if isInArea(getThingPos(cid), area[1], area[2]) then doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) end return true end
  24. Upvote
    Skymagnum reacted to moskitinho in [Life Thread] Evodral the Cutucador   
    Fala manolos e manolas Meu nome é Felipe sou de Curitiba e nasci em 92. Talvez a galera me conheça mais por moskitinho meu nick aqui no fórum; ou ainda pelo Life Thread do Belfahar Swot, que graças à vocês foi sucesso enquanto durou. Resumindo muito minha história com o Tibia... O conheci em 2004, mas comecei a jogar quando Elera foi fundada. Passados alguns anos e muitas, muitas... Eu disse muitas! Idas e vindas pelo game, me firmei em Astera, onde desenvolvi toda a história do Belfahar Swot.

    Como a maioria sabe o Belfahar foi hackeado o que me fez parar de jogar quando retornei do Haiti no final de 2013, então agora resolvi começar do zero uma nova história com o Evodrael the Cutucador eu espero que vocês acompanhem. Vou usar pra postar fotos de outros 3 chars que criei mas apenas acompanhando o LT pra saber deles! Atualizações do Life Thread todas ás terças e no FL Cast todos os domingos.










    {X}



    [ ] Level 50
    [ ] Level 80
    [ ] Muitas tasks
    [ ] Ser um MS blocker (luck mode)
    [ ] Wizard Outfit Full
    [ ] Dragonling Mount



    Level 8





    Então galera, eu continuo com minha vida militar ativa então não esperam grandiosos posts, mas vou me esforçar pra trazer sempre algo divertido de se acompanhar além de ups e mais ups.
  25. Upvote
    Skymagnum reacted to colex in Roller Coaster System   
    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
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...