drakylucas 159 Postado Julho 12, 2012 Share Postado Julho 12, 2012 (editado) bom, o sistema é parecido com o do Bronson Server (/ir), quem ja jogou sabe mais ou menos como é, porém totalmente configuravel. eu fiz ele, e só depois vi que havia um no forum com a mesma funçao http://www.xtibia.co...-talk-para-vip/ <-- créditos Vodkart esse é meu sistema, como poderão ver, está parecido com o sistema do Vodkart porem esse é mais configuravel, podendo configurar skulls, leveis (minimos e maximos), ir para house (dica do vodkart), etc. em Data-> talkactions -> talkactions.xml abaixo de <talkactions> coloque <talkaction log="yes" words="/travel" event="script" value="custom/travel.lua"/> agora em data->talkactions->scripts crie uma pasta chamada custom, dentro dessa pasta crie um arquivo chamado travel.lua e coloque isso: --[[ **** <CRÉDITOS> **** ]] -- -- 100% DrakyLucas -- Exclusivo XTIBIA -- Não postar em outros fórums sem a devida autorização -- Não comercializar esse script --[[ **** </CRÉDITOS> **** ]] -- -- PS: Utilizavel com Premium Account, para utiliza-lo com vip-system, fazer as modificações adequadas. local config = { pkRed = true, -- true para RED poder teleportar, false para não poder. pkBlack = false, -- true para BLACK poder teleportar, false para não poder. premium = true, -- true se precisar de premium, false se free poder teleportar. usaLevel = true, -- true para necessitar de level para viajar, false para não precisar de level custo = false, -- true para custar a viagem protectionzone = false, -- tem que estar em protection-zone house = true, -- se pode utilizar o /travel house } -- colocar apenas letras minusculas --[[ Caso esteja configurado acima que não precisa de level, por exemplo, deixe qualquer valor nos campos de level que ele não será mostrado a nenhum jogador. --]] local destinos = { ["cassino"] = {levelMinimo = 1, levelMaximo = 999999, preco = 1000, posicao = {x = 38,y = 84,z = 7}}, ["narnia"] = {levelMinimo = 10, levelMaximo = 15, preco = 100000, posicao = {x = 42,y = 84,z = 7}}, ["castelo de hogwarts"] = {levelMinimo = 6, levelMaximo = 500, preco = 1000000, posicao = {x = 47,y = 84,z = 7}}, } function onSay(cid, words, param, channel) local destino = destinos[string.lower(param)] ----------------- verificar existencia do destino que player digitou if destino == nil and string.lower(param) ~= "house" then -------------- Verificar destino existente if param ~= "" then doPlayerSendTextMessage(cid,19,"Destino Invalido \n\n") end --------------- --------------- Mostrar Destinos existentes doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE,"Utilize /travel e o nome do lugar na frente.") if(getHouseByPlayerGUID(getPlayerGUID(cid)) ~= nil and config.house == true)then doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE,"Você tem uma casa, experimente /travel house") end if config.usaLevel == true and config.custo == true then -- precisa de level e dê custo doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE,"Local - Level Minimo - Level Maximo - Preço") for k,v in pairs(destinos) do doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE,k .. " - " .. v.levelMinimo .. " - " ..v.levelMaximo.. " - " ..v.preco .. " gps") end elseif config.usaLevel == true and config.custo == false then -- precisa só de level doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE,"Local - Level Minimo - Level Maximo") for k,v in pairs(destinos) do doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE,k .. " - " .. v.levelMinimo .. " - " ..v.levelMaximo) end elseif config.usaLevel == false and config.custo == true then -- precisa só de custo doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE,"Local - Preço") for k,v in pairs(destinos) do doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE,k .. " - " ..v.preco .. " gps") end else -- não precisa de level e nem de custo doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE,"Local") for k,v in pairs(destinos) do doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE,k) end end --------------- return true end ----------------- if config.premium == true and not isPremium(cid) then return doPlayerSendTextMessage(cid,19,"Você precisa ser premium account para usufruir deste comando.") end if getCreatureCondition(cid, CONDITION_INFIGHT) == true then return doPlayerSendTextMessage(cid,19,"Você não pode viajar com fight.") end if config.pkRed == true and getPlayerSkullType(cid) == SKULL_RED then return doPlayerSendTextMessage(cid,19,"Você não pode viajar com RED SKULL.") end if config.pkBlack == true and getPlayerSkullType(cid) == SKULL_BLACK then return doPlayerSendTextMessage(cid,19,"Você não pode viajar com BLACK SKULL.") end if config.protectionzone == true and getTilePzInfo(getCreaturePosition(cid)) == false then return doPlayerSendTextMessage(cid,19,"Você não pode viajar fora da protection-zone.") end if string.lower(param) == "house" then if(getHouseByPlayerGUID(getPlayerGUID(cid)) ~= nil )then doSendMagicEffect(getCreaturePosition(cid),27) doTeleportThing(cid, getHouseInfo(getHouseByPlayerGUID(getPlayerGUID(cid))).entry) doSendMagicEffect(getCreaturePosition(cid),27) doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE,"Você viajou para sua casa") return true else return doPlayerSendTextMessage(cid,19,"Você não tem uma casa em seu nome.") end end if(getPlayerLevel(cid) < destino.levelMinimo or getPlayerLevel(cid) > destino.levelMaximo) and config.usaLevel == true then return doPlayerSendTextMessage(cid,19,"Você tem que estar entre os leveis " .. destino.levelMinimo.. " e " .. destino.levelMaximo .. " para poder ir a " .. string.lower(param) .. ".") end if(getPlayerMoney(cid) < destino.preco)and config.custo == true then return doPlayerSendTextMessage(cid,19,"Essa viagem custa " .. destino.preco.. " gps e você só tem " .. getPlayerMoney(cid) .. ".. Consiga dinheiro e tente novamente.") end if config.custo == true then doPlayerRemoveMoney(cid, destino.preco) end doSendMagicEffect(getCreaturePosition(cid),27) doTeleportThing(cid,destino.posicao) doSendMagicEffect(getCreaturePosition(cid),27) doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE,"Você viajou para ".. string.lower(param)) return true end acho que nem preciso explicar aqui como configura, ja deixei comentado no script e é facil o entendimento da configuração. Gostou? COMENTE! Editado Julho 13, 2012 por DrakyLucas Link para o comentário Compartilhar em outros sites More sharing options...
Vodkart 1515 Postado Julho 12, 2012 Share Postado Julho 12, 2012 gostei, outra coisa... pra ficar diferente do meu coloca pro player que tiver usar o comando: /ir house ir para a casa dele Link para o comentário Compartilhar em outros sites More sharing options...
drakylucas 159 Postado Julho 12, 2012 Autor Share Postado Julho 12, 2012 (editado) gostei, outra coisa... pra ficar diferente do meu coloca pro player que tiver usar o comando: /ir house ir para a casa dele demorei pra posta pq o xtibia ta caindo =/ atualizado conforme sua dica vlw ae... ow vei da uma ideia de algum sistema ae kaposaops.. ta tenso ser criativo em tibia =x Editado Julho 12, 2012 por DrakyLucas Link para o comentário Compartilhar em outros sites More sharing options...
Demonbholder 420 Postado Julho 13, 2012 Share Postado Julho 13, 2012 (editado) Ideia legal, mas o código pode ser melhorado Parabéns pelo script Editado Julho 13, 2012 por Demonbholder Link para o comentário Compartilhar em outros sites More sharing options...
drakylucas 159 Postado Julho 13, 2012 Autor Share Postado Julho 13, 2012 (editado) vlw.. vou tenta (pq ñ sei se minha ideia irá funcionar) dar uma limpada no script... é que originalmente eu fiz com poucas verificações, sem house, sem muitas mensagens, entao tava codigo limpo, porem ao colocar as verificações de usar ou nao level, custo, etc começou a sujar o codigo nas mensagens =/... vo tenta dar uma limpada e se consegui posto aqui, e se nao consegui edito esse post falando que não consegui kk EDIT: Não consegui =/... nada que mude o código significativamente.. apenas mudei o começo do script, para ficar um pouco mais organizado o entendimento.. mas nada que mude significativamente =/ de: if param == "" or (destino == nil and string.lower(param) ~= "house") then -------------- Verificar destino existente if destino == nil and param ~= "" and param ~= "house" then doPlayerSendTextMessage(cid,19,"Destino Invalido \n\n") end if destino == nil and string.lower(param) ~= "house" then -------------- Verificar destino existente if param ~= "" then doPlayerSendTextMessage(cid,19,"Destino Invalido \n\n") end da uma ajuda ae pa diminui a parte das 4 verificações ?(custo = true, level = true) em diante?? é que as mensagens não da para serem colocadas em uma tabela por causa do for, ele acusaria o V e o K de nil caso estivesse setando em uma tabela =/ Pesso que continuem a me criticar, somente assim poderei melhorar Editado Julho 13, 2012 por DrakyLucas Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados