-
Total de itens
1165 -
Registro em
-
Última visita
-
Dias Ganhos
13
Tudo que Omega postou
-
Aplicando em OTServers - I Muito foi desenvolvido desde o início dos OTServers e, embora muitos não tenham observado isso, esse desenvolvimento foi lento. Inicialmente, era muito difícil criar scripts para OTS's, porque o suporte para tal era pequeno. Os primeiros scripts desenvolvidos eram somente actions e spells. Movements, globalevents, talkactions e, finalmente, creaturescripts foram introduzidos posteriormente. Por isso, vamos começar com aplicações básicas de actions, que são scripts que definem uma função chamada quando o jogador usa um item. Antes disso, vamos começar entendendo como funcionam os OTServers: o código-fonte, que é compilado e se transforma, em última instância, naquele executável que serve para abrir o servidor, é feito em C++, uma outra linguagem de programação. Essa parte define toda a base do servidor e é mais complicada de se editar, pois toda vez ele terá que ser compilado novamente. Por isso, utiliza-se Lua, uma linguagem de fácil edição. O código-fonte ou source code ou simplesmente, sources do servidor define o que acontecerá com as informações recebidas pelo cliente. Quando um jogador clica em um item, esse clique é enviado para o servidor, que encaminha essa resposta para um script Lua do tipo action. O servidor, então, lê esse código Lua e o executa. E é aí que nós, scripters Lua, entramos. Até agora abordamos um código para um baú de quest, mas com funções fictícias. Os códigos-fonte mais usados são os desenvolvidos pelo The Forgotten Server Team, mais conhecidos como TFS. Nele, existem várias funções que podemos usar em nossos códigos Lua. Vamos usar algumas funções dele a seguir, para criarmos um script de um baú de quest de verdade. Primeiramente, vamos pensar nas restrições: um baú de quest deve poder ser aberto apenas uma vez, certo? Essa é nossa primeira condição. Além disso, talvez queiramos fazer um baú específico para uma vocação. Essa será nossa segunda condição. Então, o jogador terá duas condições para cumprir e deverá receber uma mensagem avisando se não cumprir cada condição. Caso ambas sejam cumpridas, ele deverá ganhar a recompensa e algo que evite que ele abra novamente o baú. Vamos criar um esboço do código: Agora precisamos traduzir isso para as funções utilizadas e entendidas pelo servidor: a função básica, que é chamada quando um item é usado, se chama onUse e seus dois primeiros parâmetros são cid e item. Precisamos entender o que é o cid. Cada criatura dentro do servidor tem um número de identificação único para ela. Esse número é denominado cid – creature identification. Para executarmos alguma função para uma criatura ou para conseguirmos informação sobre essa criatura, precisaremos fornecer seu número de identificação como parâmetro dessa função. Segue no link uma lista de algumas das várias funções existentes nos servidores 8.6 – aqui. Várias informações dos jogadores podem ser guardadas no banco de dados do servidor (mais sobre isso no capítulo de Banco de dados e SQL). Inclusive informações que chamamos de storages, que podem ser usados para guardar números e strings e não são apagados quando o jogador loga ou morre. Para manipulá-los, podemos utilizar a função setPlayerStorageValue(cid, storageKey, value) e getPlayerStorageValue(cid, storageKey). Cada storage tem uma chave de identificação (storageKey). Se ele não tiver um valor definido, seu valor padrão é -1. Portanto, podemos utilizar essas funções para verificar se o jogador já fez ou não a quest, dessa forma: if getPlayerStorageValue(cid, storageKey) == -1 then jogador não fez a quest! else jogador já fez a quest! end Utilizando a lista das funções, tente selecionar as que você deverá usar para o script do baú. OBS.: deve-se ter cuidado para não repetir o número de um storageKey, pois pode haver conflito entre dois scripts diferentes. Assim, você pode escolher aleatoriamente um número com 6 ou mais algarismos, fazendo com que a chance de repetição seja muito pequena ou listando os storages que você já usou e conferindo para não repetir. Para verificar quais storages já foram usadas, utilize essa talkaction. Assim como várias outras constantes do servidor, cada vocação é associada a um número: sorcerer = 1, druid = 2, paladin = 3 e knight = 4. Para promotions, soma-se 4 ao número da vocação. Para ver o valor dessas e das outras constantes, vá na pasta data do seu servidor e procure pelo arquivo 000-constant.lua dentro da pasta lib. O script do nosso baú deverá ficar com uma cara mais ou menos assim: http://pastebin.com/BVQVzqhi Não se preocupe se você ainda não entendeu totalmente esse código, em breve você poderá fazê-lo completamente sozinho, se já não pode. Essa foi apenas uma introdução a aplicações em OTServers.
-
O beta tá. Mas depois é 40 dólares pra comprar a edição básica, 60 pra premium e depois de um mês, 15 dólares de mensalidade. Sinceramente, você vê jogos por aí que são "free", mas acaba tendo que pagar mensalidade. Por exemplo, não dá pra jogar Tibia sem ser PA mais. Treinamento offline? É mensalidade. Outro exemplo é Grand Chase, que você pode pagar por equipamentos, experiência, etc. Eu tava jogando Lord of the Rings Online e dá pra comprar TUDO. Então, sinceramente, não me desanimo com a mensalidade, não, desde que não tenham vantagens pagas no jogo. Mas não me pareceu muito diferente do que já tem por aí e me desanimei. Nas primeiras missões já apareceu um bug que a seta não marcava direito o lugar da missão, ficava só mostrando pra ir e voltar.
-
Alguém aí jogando? Pretende jogar? Brinquei um pouco aqui no beta e me decepcionei =/
-
Players acima de level 350 não jogar mais pokebolas
tópico respondeu ao thiagoxc de Omega em Lixeira Pública
Talvez se você tivesse lido as regras antes, eu não teria que vir aqui corrigir o seu erro e tivesse tempo e disposição pra ajudá-lo. Espero que esse comportamento não volte a se repetir. -
dúvida [Encerrado] Remer's Map editor dando erro
tópico respondeu ao Matheus36000 de Omega em Tópicos Sem Resposta
Tópico movido para a seção de dúvidas e pedidos resolvidos. -
[Encerrado] [Pedido] Passar para .zip
tópico respondeu ao xXMythuszXx de Omega em Tópicos Sem Resposta
Tópico movido para a seção de dúvidas e pedidos resolvidos. -
Obrigado pelo SCAN, achei desnecessario posta-lo pois source não possui arquivos .exe Obrigado pelo scan, Incur. Ele continua sendo necessário, não importa o tipo de arquivo postado. Mesmo quando realmente não há necessidade, ele dá a todos uma maior confiança ao baixar o arquivo. Adicionei ele no tópico principal.
-
Obrigado por denunciar e explicar o erro. Tópico movido para a seção de dúvidas e pedidos resolvidos.
-
Players acima de level 350 não jogar mais pokebolas
tópico respondeu ao thiagoxc de Omega em Lixeira Pública
O título do seu tópico não possui informações sobre o conteúdo dele, portanto está desrespeitando as regras. Por favor, preste mais atenção da próxima vez e leia as regras da seção antes de postar. Título trocado de "problemas,,," para "Players acima de level 350 não jogar mais pokebolas". -
Não se passou tanto tempo assim... não precisava disso. Aprovado e movido.
-
Tópico movido para a seção de dúvidas e pedidos resolvidos.
-
Tópico movido para a seção de dúvidas e pedidos resolvidos.
-
Tópico movido para a seção de dúvidas e pedidos resolvidos.
-
Essa seção não deve ser usada para pedidos ou dúvidas, temos uma seção específica para isso. Por favor, preste mais atenção da próxima vez. Movido para Pedidos e Dúvidas Resolvidos- Scripting.
-
Minha sugestão é que seja mudada a regra do limite de caracteres. Como alguns (eu, por exemplo) não tem word, uma outra regra pode ser implementada. Tendo em vista que a formatação é padronizada, acho que o número de linhas da história ou algum outro tipo de limite poderia ser estabelecido. De qualquer forma, eu acabei fazendo um pequeno programa para me ajudar a contar e venho aqui disponibilizá-lo. É bastante similar a contagem do word, mas ele só conta o número de caracteres válidos para documentos de texto (.txt). Então para usá-lo você deve copiar o texto para o bloco de notas e salvá-lo na mesma pasta do programa. scan TextCounter.rar
-
Infelizmente, você, se não copiou, utilizou o script supracitado como base e traduziu. Assim, espero que você remova qualquer afirmação de que isso foi feito somente por você, como está no OMS #5 (edição na qual você foi desclassificado oficialmente a partir de agora). Quando for assim, você deve deixar claro que o código inicial não era seu, mas você traduziu e expandiu ele. Eu analisei com muito cuidado os dois códigos e a similaridade ultrapassa qualquer possibilidade de coincidência. Além disso, o código não está funcional, pois o doPlayerRemoveMoney deveria começar o if (que está ausente). Você tem ajudado bastante os membros do fórum e nós da equipe não somos cegos a isso, portanto não vou tomar uma atitude mais séria aqui ou no concurso, mas, por favor, preste mais atenção para que isso não se repita.
-
Infelizmente temos tido pouco movimento por aqui mesmo, mas fico feliz que existam pessoas aprendendo e tentando desenvolver seus próprios códigos por aqui. Se precisar de alguma ajuda (que não tenha a ver com derivados), é só falar.
-
Tópico movido para a seção de dúvidas e pedidos resolvidos.
-
Tópico movido para a seção de dúvidas e pedidos resolvidos.
-
@Nil Value, por favor, respeite os membros e evite brigas desnecessárias. O Shoguns tem ajudado e postado conteúdo e, novamente, estava se voluntariando para ajudar. Não havia motivo nenhum para tal comentário. Espero que isso não se repita. Ah, mas me parece que ele estava certo. Usando itemid em vez de uniqueid ou actionid deverá fazer com que o script seja executado para qualquer piso daquele id.
-
[Encerrado] Aumento do dano do Poison/Burn
tópico respondeu ao lgan de Omega em Tópicos Sem Resposta
Tópico movido para a seção de dúvidas e pedidos resolvidos.
-
Quem Está Navegando 0 membros estão online
- Nenhum usuário registrado visualizando esta página.