Ir para conteúdo

Blazingfire

Campones
  • Total de itens

    12
  • Registro em

  • Última visita

Tudo que Blazingfire postou

  1. Nome: Lucca Vinicius. Idade: 15 anos. Cargo: Scripter. Skype: soulofdeath8 Horas que podem ser dedicadas ao Projeto: 5h/dia ou mais (nas férias). Nível de Experiência: mais de 5 anos. Anexar algum trabalho 100% seu: [clica aqui] Já trabalhou em algum outro servidor: Já tive meus próprios servidores e já fiz vários scripts para outros servidores. Adicional: Andei meio inativo na comunidade e faz um bom tempo que não mexo com Poketibia, mas scripting é sempre scripting xD
  2. Eu particulamente não curto bots, começei fazendo o programa para uso próprio mas achei que pudesse ser útil e mais prático para alguns jogadores...
  3. Blazingfire

    Tibia Config Manager

    Fiz esse programa pra salvar minhas hotkeys e configurações de cada char e versão do jogo, já que muitos servers não tem client próprio e todas as versões do client do Tibia usam o mesmo arquivo CFG para armazenar as configurações do jogo. Tibia CM.rar Scan: clique aqui Senha para extrair: xtibia
  4. Na pasta actions, abra o arquivo actions.xml e coloque junto com as outras: <action uniqueid="UNIQUEID" script="troca.lua" /> Aonde está "UNIQUEID" você deve colocar o número que desejar. Depois entre na pasta scripts, crie um arquivo .lua com o nome de troca e coloque isso dentro: function onUse(cid, item, frompos, item2, topos) -- criado por blazingfire. ------------------------------------------------ local itens = {item1,item2} -- id dos itens do jogador. local newitem = item -- id do item que ele irá ganhar. local success = "Troca efetuada com sucesso!" local fail = "Você não tem os itens necessários para realizar a troca." ------------------------------------------------ for _, playeritens in pairs(itens) do if doPlayerRemoveItem(cid,playeritens) then doPlayerAddItem(cid,newitem) doPlayerSendTextMessage(cid,22,success) else doPlayerSendTextMessage(cid,22,fail) end return TRUE end end Aí dentro do script você configura os itens.
  5. Caramba.. Agora, se não funcionar é porque o seu vip system é diferente do qual estou pensando, passa o script dele por pm pra eu ver. Tente esse: --50% kung lao %50 Vodkart function onSay(cid, words, param) local S = { [3] = {price = 1000000,cobrar = true,msg = "Você perdeu seu white skull e frags.", premium = true}, [4] = {price = 3000000,cobrar = true,msg = "Você perdeu seu red skull e frags", premium = true}, [5] = {price = 5000000,cobrar = true,msg = "Você perdeu seu black skull e frags", premium = true}, } local storage = 88888 local skull = S[getCreatureSkullType(cid)] if(not skull) then doPlayerSendCancel(cid,"Você nao está com nenhum tipo de skull.") return TRUE elseif skull.premium == true and not isPremium(cid) then doPlayerSendCancel(cid,"Apenas players premium podem remover skull.") return TRUE elseif skull.cobrar == true and doPlayerRemoveMoney(cid, skull.price) == FALSE then doPlayerSendCancel(cid,"Você não tem " .. skull.price .. " gps para remover sua skull.") doSendMagicEffect(getPlayerPosition(cid), 2) return TRUE elseif getPlayerStorageValue(cid,storage) - os.time() <= 0 then doPlayerSendCancel(cid,"Você precisa ser vip para remover sua skull.") return TRUE end db.executeQuery("UPDATE `killers` SET `unjustified` = 0 WHERE `id` IN (SELECT `kill_id` FROM `player_killers` WHERE `player_id` = " .. getPlayerGUID(cid) .. ")") doCreatureSetSkullType(cid, 0) doRemoveCreature(cid) doPlayerSendTextMessage(cid, 22,skull.msg) doSendMagicEffect(getPlayerPosition(cid), 26) return TRUE end
  6. --50% kung lao %50 Vodkart function onSay(cid, words, param) local S = { [3] = {price = 1000000,cobrar = true,msg = "Você perdeu seu white skull e frags.", premium = true}, [4] = {price = 3000000,cobrar = true,msg = "Você perdeu seu red skull e frags", premium = true}, [5] = {price = 5000000,cobrar = true,msg = "Você perdeu seu black skull e frags", premium = true}, } local storage = 88888 local skull = S[getCreatureSkullType(cid)] if(not skull) then doPlayerSendCancel(cid,"Você nao está com nenhum tipo de skull.") return TRUE elseif skull.premium == true and not isPremium(cid) then doPlayerSendCancel(cid,"Apenas players premium podem remover skull.") return TRUE elseif skull.cobrar == true and doPlayerRemoveMoney(cid, skull.price) == FALSE then doPlayerSendCancel(cid,"Você não tem " .. skull.price .. " gps para remover sua skull.") doSendMagicEffect(getPlayerPosition(cid), 2) return TRUE elseif getPlayerStorageValue(cid,storage) - os.time() <= 0 then doPlayerSendCancel(cid,"Você precisa ser vip para remover sua skull.") end db.executeQuery("UPDATE `killers` SET `unjustified` = 0 WHERE `id` IN (SELECT `kill_id` FROM `player_killers` WHERE `player_id` = " .. getPlayerGUID(cid) .. ")") doCreatureSetSkullType(cid, 0) doRemoveCreature(cid) doPlayerSendTextMessage(cid, 22,skull.msg) doSendMagicEffect(getPlayerPosition(cid), 26) return TRUE end Ei, o outro que continua com problema, tente fazer isso: Substitua if (config.vip == "yes") and getPlayerStorageValue(cid,config.storage) - os.time() <= 0 then Por if getPlayerStorageValue(cid,config.storage) - os.time() <= 0 then
  7. Entre na pasta lib e abra o arquivo 050-function, e coloque isso em qualquer lugar: function isWalkable(pos, creature, proj, pz)-- by Nord if getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid == 0 then return false end if getTopCreature(pos).uid > 0 and creature then return false end if getTileInfo(pos).protection and pz then return false, true end local n = not proj and 3 or 2 for i = 0, 255 do pos.stackpos = i local tile = getTileThingByPos(pos) if tile.itemid ~= 0 and not isCreature(tile.uid) then if hasProperty(tile.uid, n) or hasProperty(tile.uid, 7) then return false end end end return true end Agora pode testar o script..
  8. @Mulizeu, não precisa disso tudo. @ADM_Forever, tente esse: local config = { vip = "yes", priceForEachMessage = 0, storage = 88888 } function onSay(cid, words) if not getHouseByPlayerGUID(getPlayerGUID(cid)) then if (config.vip == "yes") and getPlayerStorageValue(cid,config.storage) - os.time() <= 0 then doPlayerSendCancel(cid,"Você não possui vip.") return TRUE end function isWalkable(pos, creature, proj, pz) if getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid == 0 then return false end if getTopCreature(pos).uid > 0 and creature then return false end if getTileInfo(pos).protection and pz then return false, true end local n = not proj and 3 or 2 for i = 0, 255 do pos.stackpos = i local tile = getTileThingByPos(pos) if tile.itemid ~= 0 and not isCreature(tile.uid) then if hasProperty(tile.uid, n) or hasProperty(tile.uid, 7) then return false end end end return true end return doPlayerSendCancel(cid, "Voce nao tem casa.") end local pos = getHouseEntry(getHouseByPlayerGUID(getPlayerGUID(cid))) if getCreatureCondition(cid, CONDITION_INFIGHT) then return doPlayerSendCancel(cid, "Voce tem que estar sem battle.") end if not getTilePzInfo({x=pos.x-1, y=pos.y, z=pos.z}) and isWalkable({x=pos.x-1, y=pos.y, z=pos.z}) then pos = {x=pos.x-1, y=pos.y, z=pos.z} elseif not getTilePzInfo({x=pos.x+1, y=pos.y, z=pos.z}) and isWalkable({x=pos.x+1, y=pos.y, z=pos.z}) then pos = {x=pos.x+1, y=pos.y, z=pos.z} elseif not getTilePzInfo({x=pos.x, y=pos.y+1, z=pos.z}) and isWalkable({x=pos.x, y=pos.y+1, z=pos.z}) then pos = {x=pos.x, y=pos.y+1, z=pos.z} elseif not getTilePzInfo({x=pos.x, y=pos.y-1, z=pos.z}) and isWalkable({x=pos.x, y=pos.y-1, z=pos.z}) then pos = {x=pos.x, y=pos.y-1, z=pos.z} end doTeleportThing(cid, pos) end
  9. Nome: Lucca Vinicius. Idade: 13. Tempo De Experiência: 3 anos e 8 meses. Tempo dísponivel ao dia: 5 horas por dia, final de semana 8 horas. Area: Scripting. Mostre Algum trabalho: Tá na minha assinatura.
  10. Entra aqui: http://vapus.net/canihost Entra em www.meuip.com.br, vai aparecer o seu ip, pega esse ip, bota no outro site e clica em "Can I host?" Se ele mostrar que os jogadores não podem entrar no jogo você tem que desbloquear as portas 7171 e 7172 do seu roteador, aqui no forum tem tutorial ensinando a fazer isso.
  11. Não vi nenhuma função assim então fis . Essa função verifica a condição de battle do jogador: function isInBattle(cid) -- blazingfire return isPlayer(cid) and getCreatureCondition(cid, CONDITION_INFIGHT) end Exemplo de uso por talkaction: function onSay(cid, words, param) local speed = 100 if isInBattle(cid) == TRUE then doPlayerSendCancel(cid,"Você não pode fazer isso enquanto batalha.") else doPlayerSendCancel(cid,"Sua velocidade foi modificada!") doChangeSpeed(cid, speed) end return TRUE end
  12. Aqui no fórum ja tem esse script basta pegar e configurá-lo.
  13. Esse aqui é melhor, não precisa de baú, o jogador já começa com eles: Abra o arquivo creaturescripts.xml e coloque essa tag: <event type="login" name="FirstItems" event="script" value="firstitems.lua"/> Entre na pasta scripts, crie um novo arquivo .lua com o nome de firstitems e coloque isso dentro: local commonItems = { {itemid=2120, count=1}, -- rope {itemid=5710, count=1}, -- shovel {itemid=2160, count=1}, -- 10k {itemid=2173, count=1}, -- aol {itemid=2789, count=10}, -- brown mushrooms } local firstItems = { { -- SORC ITEMS {itemid=2323, count=1}, -- hat of the mad {itemid=8870, count=1}, -- spirit cloak {itemid=2647, count=1}, -- plate legs {itemid=3982, count=1}, -- crocodile boots {itemid=2175, count=1}, -- spellbook {itemid=2190, count=1}, -- wand of vortex {itemid=2268, count=1}, -- sd {itemid=2273, count=1}, -- uh {itemid=7620, count=1}, -- mapa potions }, { -- DRUID ITEMS {itemid=2323, count=1}, -- hat of the mad {itemid=8870, count=1}, -- spirit cloak {itemid=2647, count=1}, -- plate legs {itemid=3982, count=1}, -- crocodile boots {itemid=2175, count=1}, -- spellbook {itemid=2182, count=1}, -- snakebite rod {itemid=2268, count=1}, -- sd {itemid=2273, count=1}, -- uh {itemid=7620, count=1}, -- mana potion }, { -- PALADIN ITEMS {itemid=2457, count=1}, -- steel helmet {itemid=8872, count=1}, -- belted cape {itemid=2647, count=1}, -- plate legs {itemid=3982, count=1}, -- crocodile boots {itemid=2525, count=1}, -- dwarven shield {itemid=2389, count=1}, -- spear {itemid=2268, count=1}, -- sd {itemid=2273, count=1}, -- uh {itemid=7620, count=1}, -- mana potion }, { -- KNIGHT ITEMS {itemid=2457, count=1}, -- steel helmet {itemid=2463, count=1}, -- plate armor {itemid=2647, count=1}, -- plate legs {itemid=3982, count=1}, -- crocodile boots {itemid=2525, count=1}, -- dwarven shield {itemid=2409, count=1}, -- serpent sword {itemid=2428, count=1}, -- orcish Axe {itemid=2417, count=1}, -- battle hammer {itemid=7620, count=1}, -- mana potion {itemid=2273, count=1}, -- uh } } for _, items in ipairs(firstItems) do for _, item in ipairs(commonItems) do table.insert(items, item) end end function onLogin(cid) if getPlayerGroupId(cid) < 2 then local hasReceivedFirstItems = getPlayerStorageValue(cid, 67708) if hasReceivedFirstItems == -1 then --[[local backpack = ]]doPlayerAddItem(cid, 1988, 1) local giveItems = firstItems[getPlayerVocation(cid)] if giveItems ~= nil then for _, v in ipairs(giveItems) do --doAddContainerItem(backpack, v.itemid, v.count or 1) doPlayerAddItem(cid, v.itemid, v.count or 1) end doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Bem Vindo você acaba de receber seus primeiros equipamentos,e promotion automaticamente") setPlayerStorageValue(cid, 67708, 1) end end end return TRUE end
  14. Ei, será que você pode fazer um tutorial de como usar a função os.time()? To precisando muito aprender ou então terei de pesquisar em outros lugares.
  15. Hm, eu não sabia disso não, obrigado por avisar, irei atualizar o tópico. Post atualizado, agora como criar uma conta GOD
  16. Bom, fis esse tutorial completo de como criar o seu servidor com ip fixo, especialmente para os usuários do windows 7, o tutorial é rápido e fácil de se entender, vamos lá: Caso a sua internet seja via-rádio ou compartilhada, pegue a marca do seu roteador, o número de série e procure um tutorial de como desbloquear as portas do seu roteador clicando aqui. 1º- Deve baixar um servidor que lhe agrade clicando aqui, e que também não seja muito antiga, eu recomendo as versões de 8.60 até 8.70. 2º- Deve ter um IP Changer com suporte á versão do seu servidor, um programa chamado Sqlite Studio para editar as contas do servidor e caso você queira fazer mudanças no Mapa do seu servidor deverá baixar o Remeres Map Editor com suporte a sua versão, para baixar tudo isso clique aqui e dê uma procurada. :smile_positivo: 3º- Depois de ter feito tudo isso, vamos começar a aprontar tudo para ligar o seu servidor, primeiro, vá até o Menu Iniciar e abra o Painel de Controle, como mostra a imagem abaixo: Depois, entre em Sistema e Segurança, Firewall do Windows, Configurações Avançadas e em Regras de Entrada, como mostram as próximas imagens: Agora clique em Nova Regra e faça exatamente oque as imagens mostram: Agora chegou a hora de criar o ip fixo do seu servidor, entre no site www.no-ip.com, cadastre-se e confirme a sua conta através do seu e-mail: Depois, entre na conta, aparecerá uma página com várias opções, clique em Add a Host, aparecerá a seguinte página: Em Hostname, coloque um nome para o seu ip fixo, ao lado, clique na setinha e escolha o final do ip fixo, depois clique em Create Host. Pronto, o ip fixo para o seu servidor está feito! Agora, vamos ligar o ip fixo para os outros poderem entrar no servidor por ele, para isso vamos precisar instalar um simples programa, volte até o site www.no-ip.com, clique na aba Download, clique em Windows e em Download, como mostram as figuras a seguir: Quando terminar de baixá-lo, instale-o, abra-o e faça o login, quando fizer o login automaticamente surgirá uma tela com o seu ip fixo, ótimo, marque a caixinha ao lado dele e clique em Save, pronto, o seu ip fixo está ligado! Entre na pasta do servidor, abra o arquivo config.lua Pressione CTRL + F e no espaço vazio digite ip =, depois clique em Localizar Próxima, substitua o ip entre as aspas por 127.0.0.1, vai ficar assim: Agora somente você conseguirá entrar no servidor para fazer os seus ajustes, pelo ip 127.0.0.1 Quando você quiser deixá-lo online para o público, substitua o 127.0.0.1 pelo ip fixo que você criou, deverá ficar assim: Agora vamos criar a sua conta GOD, abra o Sqlite Studio: Clique no botão Add Database e clique na pastinha ao lado: Apareceu uma tela, certo? Através dela, entre na pasta do seu servidor, selecione o arquivo .s3db e clique em Ok Uma aba apareceu no espaço vazio do lado esquerdo, certo? Abra ela, abra a aba Tables, a aba accounts e a aba players: Caso só tenha 1 conta na lista (1/1), você deve criar outra pelo seu servidor, voltar no Sqlite Studio e dar Refresh (O primeiro botão). Caso tenha uma segunda conta, em name você deve colocar a sua account name para entrar no jogo e em password a senha da conta, depois você clica no botão :button_ok: . Depois, na aba players, em name você deve colocar o nome do seu GOD, aí você pergunta: mas oquê bota em group_id? Fácil: 6 - GOD 5 - Comunity Manager (CM) 4 - Game Master (GM) 3 - Senior Tutor 2 - Tutor 1 - Player Então você deve colocar 6 em group_id, depois você clica no botão :button_ok: . Pronto, agora é só você entrar na sua conta GOD! Bom, isso é tudo pessoal! Boa sorte com o servidor, até mais!
  17. Muito bom, eu sempre me perguntava para quê servia o stackpos quando eu via uma tabela com positions.
  18. Esse erro acontece quando o servidor não consegue encontrar a npc em seu respectivo diretório, verifique se não mudou o nome da npc ou algo do tipo.
  19. Versão testada: 8.60 Script que, de tempo em tempo, cria uma backpack no lugar desejado com os itens que você quiser dentro, mas infelizmente só funciona com itens únicos: Na pasta globalevents, abra o arquivo globalevents.xml e coloque essa tag: <globalevent name="findtheitens" interval="3600" script="findtheitens.lua"/> Depois abra a pasta scripts, crie um arquivo .lua com o nome findtheitens e coloque isso dentro: function onThink(interval, lastExecution) -- Atenção! Não configure o intervalo do evento próximo ao intervalo do clean do servidor! -- Script feito por blazingfire. (xtibia.com) ------------------------------------------ local backpack = 2365 -- ID da backpack. (2365 = Backpack of Holding) local itemids = {2160, 2152, 2148} -- ID dos itens que você quer dentro da backpack. local position = {x = 1, y = 2, z = 3} -- Posição no mapa onde a backpack com os itens será criada. local message = "Uma backpack contendo itens apareceu em algum lugar." ------------------------------------------ local container = doCreateItem(backpack,1,position) for _, itens in pairs(itemids) do doAddContainerItem(container,itens,1) doBroadcastMessage(message) end return TRUE end As instruções para configurar estão no script. Mudando o intervalo do script:
  20. Cometi um erro, aí está: function onUse(cid, item, frompos, item2, topos) local pos = getPlayerPosition(cid) if getPlayerStorageValue(cid,999) == 1 then doPlayerSendCancel(cid, 'Your flashlight is disabled.') doSetCreatureLight(cid, 0) setPlayerStorageValue(cid,999,0) else setPlayerStorageValue(cid,999,1) doSendMagicEffect(pos, CONST_ME_MAGIC_BLUE) doPlayerSendCancel(cid, 'Your flashlight is enabled.') doSetCreatureLight(cid, 11, 205, (60*33+10)*1000) end return TRUE end
  21. Na pasta do seu ot, crie um arquivo .txt com o nome de infopet, e coloque oque você quer que apareça dentro. Entra na pasta talkactions e abra o arquivo talkactions.xml Adicione essa tag: <talkaction words="!infopet" event="script" value="infopet.lua"/> Depois entre na pasta scripts e crie um arquivo .lua com o nome infopet, coloque isso dentro: function onSay(cid, words, param) file = io.open('infopet.txt','r') infopet = file:read(-1) doShowTextDialog(cid,7528,infopet) file:close() return TRUE end Pronto. Se tiver como dar REP+ eu agradeço.
  22. Tente isso: function onUse(cid, item, frompos, item2, topos) local pos = getPlayerPosition(cid) if getPlayerStorageValue(cid,999) == 1 then doPlayerSendCancel(cid, 'Your flashlight is disabled.') doSetCreatureLight(cid, 0) else setPlayerStorageValue(cid,999,1) doSendMagicEffect(pos, CONST_ME_MAGIC_BLUE) doPlayerSendCancel(cid, 'Your flashlight is enabled.') doSetCreatureLight(cid, 11, 205, (60*33+10)*1000) end return TRUE end Se funcionar da REP+?
  23. Retirado.
  24. Me interessei no seu projeto, achei muito legal a idéia de vida virtual! Se precisar, sou ótimo Administrador e sou Scripter á quase 4 anos (além de ser novo no fórum), já tive um servidor e já fui tutor em um global (passei em um concurso), meu MSN é luccavinicius.steam@hotmail.com
  25. Tente isso: function onDeath(cid, corpse, killer) registerCreatureEvent(cid, "bluelegs") ----------------------------------------------------------------------- local creaturename = getCreatureName(target) local battle_position = {x=33271, y=32407, z=12, stackpos=2} local reward_position = {x=33266, y=32446, z=12, stackpos=1} local time_to_pass = 180 local teleport = 5023 local doEffect = CONST_ME_ENERGYHIT local message = "You have only 3 minutes to enter the teleport!" ----------------------------------------------------------------------- if creaturename == 'Koshei The Deathless' then doCreateTeleport(teleport, reward_position, battle_position) doSendMagicEffect(battle_position, doEffect) doCreatureSay(cid,message,TALKTYPE_ORANGE_1) addEvent(removeteleport, (1000*time_to_pass)) end function removeteleport() if getThingfromPos({x=33271, y=32407, z=12, stackpos=1}).itemid == teleport then doRemoveItem(getThingfromPos({x=33271, y=32407, z=12, stackpos=1}).uid,1) doSendMagicEffect({x=33271, y=32407, z=12, stackpos=1}, CONST_ME_POFF) end return TRUE end end Se não funcionar avisa.
  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...