Ir para conteúdo

Líderes

Conteúdo Popular

Exibindo conteúdo com a maior reputação em 02/17/13 em todas áreas

  1. Arrays

    Aguinho e um outro reagiu a Renato por uma resposta no tópico

    2 pontos
    Opa, olha o Renato com mais um artiguzinhu Hoje eu vou falar um pouco dos Arrays e como utilizá-los O que são Arrays? Bom, nos meus tutoriais eu não gosto muito de me apegar às teorias, e sim às práticas. Então essa parte eu vou deixar com meu amigo wikipedia. Um array, também conhecido como vetor ou matriz, é uma das mais simples estruturas de dados. Os arrays mantêm uma série de elementos de dados, geralmente do mesmo tamanho e tipo de dados. Elementos individuais são acessados por sua posição no array. A posição é dada por um índice, também chamado de subscrição. O índice geralmente utiliza uma sequência de números inteiros, (ao contrário de um array associativo) mas o índex pode ter qualquer valor ordinal. Alguns arrays são multi-dimensionais, significando que eles são indexados por um número fixo de números inteiros, por exemplo, por um sequência (ou sucessão) finita de quatro números inteiros. Geralmente, arrays uni- e bi-dimensionais são os mais comuns. Muito blablabla né? Se você nunca utilizou um array dificilmente você aprende com esse texto ai. Mas, vamos para a prática! Utilizando os Arrays! Bom, existem várias formas de definirmos um array, vamos lá! Array Unidimensional Array Individual $frutas = array('maca', 'pera', 'melancia', 'abacate'); Podemos ver que eu digo que $frutas é um array, e dentro dele eu dou 4 valores, maca, pera, melancia e abacate! Tá, e como acessar esses valores? echo $frutas[0].'<br />'.$frutas[1].'<br />'.$frutas[2].'<br />'.$frutas[3] Deste jeito. Lembramos que todo array começa a contar pelo número 0, assim se o array tiver 4 elementos, o último será $array[3]. Array Associativo Bom, o que eu expliquei acima foi o array individual, aqui agora, vou explicar o array associativo, aonde você da nomes aos arrays, ao invés de números. $cores = array("vermelho" => "#FF0000", "azul" => "#0000FF", "verde" => "#00FF00"); Se perceber, agora temos duas strings em cada node, separadas por "=>" aonde diz que vermelho é #FF0000, azul é #0000FF e etc. Agora, ao invés de ser os números na ordem, se torna o que você especificou $cores['vermelho']; //retorna #FF0000; $cores['azul']; //retorna #00FF00; $cores['verde']; //retorna #0000FF; Array Bidimensional Array Individual Os dois exemplos que citei acima são arrays unidimensionais, agora vou falar sobre os bidimensionais, que nada mais é que arrays dentro de arrays, quase como uma árvore. $cores = array(array('azul claro','azul escuro'), array('verde claro', 'verde escuro')); Que são: echo $cores[0][0]; //retorna azul claro echo $cores[0][1]; //retorna azul escuro echo $cores[1][0]; //retorna verde claro echo $cores[1][1]; //retorna verde escuro Array Associativo Começou a ficar complexo a coisa, rs. $cores = array("azul" => array("claro" => "#00CCFF", "escuro" => "#000066"), "verde" => array("claro" => "#00FF00", "escuro" => "#006600")); Bom, nem é tanto complexo assim, com a prática acostuma rápido. Neste exemplo, eu coloquei duas cores, azul e verde, e cada cor com duas especificações cada, claro e escuro. E pra você ver como fica: echo $cores['azul']['claro']; //retorna #00CCFF; echo $cores['azul']['escuro']; //retorna #000066; echo $cores['verde']['claro']; //retorna #00FF00; echo $cores['verde']['escuro']; //retorna #006600; Mas esse não é o único jeito de definirmos um array. Existem duas formas. A que eu já expliquei: $cores = array('azul','verde','vermelho'); E uma segunda forma: $cores = array(); $cores[0] = 'azul'; $cores[1] = 'verde'; $cores[2] = 'vermelho'; [/code] Porém, essa segunda forma, só é proveitoso, quando utilizamos array associativo e/ou bidimensional. Pois por exemplo: [code]$cores = array(); $cores['azul']['claro'] = "#00CCFF"; $cores['azul']['escuro'] = "#000066"; $cores['verde']['claro'] = "#00FF00"; $cores['verde']['escuro'] = "#006600"; Este array associativo e bidimensional, cria um array igual o citado lá em cima, sobre azul (claro e escuro) e verde (claro e escuro) Bom, isso é um array. Aparentemente um bixo de sete cabeças, mas é tão simples quanto uma string. É só praticar Qualquer dúvida, pergunte, Renato Ribeiro.
  2. Sub-moderação

    thiagobji e um outro reagiu a Markin por uma resposta no tópico

    2 pontos
    Eu não apoio esse negocio de "moderação secundaria" se a pessoa quer falar que a outra ta errada que fala ué, agora por que a pessoa falo uma coisa vai ficar sendo alertada eu acho palhaçada... Mais enfim não sou admin, não sou eu quem faço as regras.
  3. [PEDIDO][ Script

    Liongm e um outro reagiu a Athukzor por uma resposta no tópico

    2 pontos
    Ele quer um script que por exemplo, quando o GOD falar o player cujo nome está no comando receba o item e/ou pokemon (Sim, o script é pra um ot pokemon)
  4. O Básico: Perspectiva

    isex e um outro reagiu a Danilonilo8 por uma resposta no tópico

    2 pontos
    Próxima Explicação: O Básico: Edit Olá, esse tópico é para aqueles que querem iniciar sua carreira na perspectiva 45º e precisam de um incentivo e uma explicação. O que é a Perspectiva: É um método que busca representar os objetos em seus tamanhos e posições "corretas", tal qual a visão humana os compreende, a partir de um observador fixo. Ou seja, você precisará primeiro compreender a perspectiva, no caso a perspectiva 45º. Primeiramente, não confunda uma perspectiva com a outra. Por exemplo, essa é uma perspectiva 45º, mas é uma perspectiva militar, que sua referência seria a distância da imagem até a ponta do gráfico, basicamente a nossa perspectiva é ao contrário, na imagem a horizontal é reta e a vertical é diagonal, na nossa Eu compliquei a vida de vocês? Então não precisa decorar essa parte, esqueça e pule para a outra, só não confundam uma perspectiva com a outra. A parte mais importante A parte mais importante desse tópico é essa, onde vamos aprender a diferenciar sprites comumente utilizadas em jogos, ou até mesmo vistas pelo cotidiano. Vamos lá. Essa é uma parede sem perspectiva (olhada de frente) Não confunda com um piso, apesar do mesmo tamanho... Essa é uma parede com perspectiva 45º O que eu fiz, foi somente a primeira parede, e então eu alonguei o desenho para a esquerda. Ou seja, começou com 32x32, e no final ficou 64x32 (64 de largura e 32 de altura) Uma linha reta |, ficando na diagonal \ Entendendo o objeto Nessa parte irei mostrar como entender um "objeto tibiano", e irei dar bases e dimensões dos mesmos. Entendendo uma caixa "Calma, caixinha, você pode ser de madeira, mas tem perspectiva..." Caixa sem perspectiva (olhada de frente) Caixa com perspectiva 45º Curiosamente, caixa olhada nem de frente nem de cima, mas entre eles Explicação 45º Vermelho: É a parte plana do objeto, que seria onde apoiamos as coisas, como um copo de vidro. Azul: É a parte que está "em pé", por exemplo paredes, garrafas, portas... ou seja, a parte que sustenta a parte plana Curiosidade: Quando digo que a parte azul é a que sustenta a parte plana, também teria que dizer que a parte azul é sustentada pela parte plana, que seria a madeira de baixo, embaixo do azul, e caso não tenha, seria o piso, que também é uma parte plana, igual ao vermelho. Desmontando! Para vocês entenderem melhor a estrutura dos "objetos tibianos", resolvi fazer essa brincadeira, desmontar nossa queria caixa. Tiramos a parte de cima Só restou isso: Tiramos a parte de baixo Só restou isso: Tiramos as costas Só restou isso: Tiramos a frente E só restou isso: Tiramos o lado esquerdo E só restou isso: ops Dimensões Nessa parte do tópico darei algumas "dimensões tibianas", recomendo seguirem essas dimensões. Obs.: As que marquei um Asterisco (*) são de suma importância *Dimensões: Vertical x Horizontal *Parede: 64x32 *Item: 32x32 *Piso: 32x32 (totalmente plano) Caixa normal: 32x32 Outfit de Citizen Normal: 32x32 (Pé é plano, então não fica diagonal, pense nisso) Monstro Pequeno: 32x32 Monstro Grande: 64x64 Monstro Absurdo: 96x96 ou mais (Não existe isso no Tibia Global) *Efeito: 32x32 (Por exemplo Exori Vis ou as flechas indo em direção ao monstro) Outros Essa parte do tópico são sugestões de outros membros e pequenas dicas. O nome da arte é Spritear, e não Sprintear, nem Scriptear, não desmereça esse trabalho errando o nome. Se for treinar a arte de Spritear, utilize um programa que não falhe e seja fácil de utilizar, eu recomendo que vocês usem o Paint.net Créditos: Danilonilo8
  5. O Básico: Edit

    isex e um outro reagiu a Danilonilo8 por uma resposta no tópico

    2 pontos
    Nesse Tópico irei mostrar para vocês o básico do edit, como editar outfits, pisos, paredes, monstros.... Escolha um programa bom para editar ​Eu recomendo o Paint.net Conheça seu programa Decore as Hotkeys, você economizará muito tempo Todas as Hotkeys do Paint.net Como mudar fácilmente a cor de uma Sprite Primeiramente, se você estiver utilizando o Paint normal ou o do Windows 7 não terá essa opção. Primeiro ache a opção Matiz / Saturação... No Paint.net a Hotkey é Ctrl+Shift+U Depois abrirá uma janela igual a essa Matiz: Muda a cor da imagem, ache sua cor entre os números. Demonstração: Saturação: Menor de 100: Deixa sua sprite mais medieval (tonalidades cinza/marrom) e mais escura Demonstração: Maior de 100: Deixa sua sprite mais detalhada e clara Claridade: Deixa sua sprite mais clara ou mais escura, recomendo não deixar mais clara, pois os pixels pretos ficarão cada vez mais cinzas, depois brancos Aumentando uma Sprite Nessa parte do tópico irei ensinar como aumentar uma sprite sem perder muitas qualidades No Paint.net eu tenho um truque para não embaçar, quando você aumentar, segure o botão do mouse na imagem e aperte CTRL+C, depois solte e aperte CTRL+V para colar em cima. Dica: Sempre que aumentar um pixel por cima, aumente do lado também, por exemplo, Você quer aumentar 5 pixels de uma sprite 32x35, ficará 37x40 32+5=37 35+5=40 Demonstração: Créditos: Danilonilo8
  6. NPC que vende runas atraves de falar!

    heylike e um outro reagiu a Carinhah por uma resposta no tópico

    2 pontos
    ta ae manolo... demorei um pouco para entregar por motivos pessoais troquei algumas coisinhas que tu pediu apenas pq o sistema nao estava reconhecendo fazendo assim bugar o NPC... mudanças: Antes / Depois Event I >> Event 1 Event II >> Event 2 Event III >> Event 3 -- script by Carinhah 'TibiaKing.com' -- local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid local player_gold = getPlayerItemCount(cid,2148) local player_plat = getPlayerItemCount(cid,2152)*100 local player_crys = getPlayerItemCount(cid,2160)*10000 local player_money = player_gold + player_plat + player_crys if(msgcontains(msg, 'Event 1')) then selfSay('gostaria de comprar ' .. getItemNameById(2270) .. '?}', cid) talkState[talkUser] = 1 elseif(msgcontains(msg, 'Event 2')) then selfSay('gostaria de comprar ' .. getItemNameById(2296) .. '?}', cid) talkState[talkUser] = 2 elseif(msgcontains(msg, 'Event 3')) then selfSay('gostaria de comprar ' .. getItemNameById(2290) .. '?}', cid) talkState[talkUser] = 3 elseif(msgcontains(msg, 'Event Castle')) then selfSay('gostaria de comprar ' .. getItemNameById(2280) .. '?}', cid) talkState[talkUser] = 4 elseif(msgcontains(msg, 'yes')) then if(talkState[talkUser] == 1) then if doPlayerRemoveMoney(cid,1000) then doPlayerAddItem(cid, 2270, 1) else selfSay('You no have money', cid) end elseif(talkState[talkUser] == 2) then if doPlayerRemoveMoney(cid,2000) then doPlayerAddItem(cid, 2296, 1) else selfSay('You no have money', cid) end elseif(talkState[talkUser] == 3) then if doPlayerRemoveMoney(cid,3000) then doPlayerAddItem(cid, 2290, 1) else selfSay('You no have money', cid) end elseif(talkState[talkUser] == 4) then if doPlayerRemoveMoney(cid,4000) then doPlayerAddItem(cid, 2280, 1) else selfSay('You no have money', cid) end end talkState[talkUser] = 0 elseif(msgcontains(msg, 'no') and isInArray({1}, talkState[talkUser]) == TRUE) then selfSay('Ok then.', cid) talkState[talkUser] = 0 end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())
  7. Baiak-zik Editado

    Samukinha reagiu a vitorvhas por uma resposta no tópico

    1 ponto
    Baiak-zik 8.60 ► O que meu OTserv tem » Novos itens Melhores que os Baiakzik » Spells novas , Attack , heal , mana » Cidade Principal Editada » Npc Novos »Templo Editado ► Créditos » Rep Para min se gostarem ►Imagens http://img716.imageshack.us/img716/3089/templofree.png http://img41.imageshack.us/img41/8891/semttulopidm.png ►Dowlaod http://www.4shared.com/rar/_7V4cHUE/Baiakzik_Edited_By_Enforced.html Quote Creditos. Min (:
  8. Bigfoots Burden's Quest

    Guto1966 reagiu a alissonfgp por uma resposta no tópico

    1 ponto
    Bigfoots Burden's Quest Scripts 90%... Sem bugs, caso tenha me avise que concerto. LINK: http://www.4shared.c...dens_Quest.html SCAN: https://www.virustotal.com/pt-br/file/4bd3c001ce14a94e2310c518eb540127e0b48c678ab3c04c501573b7f51489c6/analysis/1361191721/ Espero ter ajudado... Creditos: The_Hide 60% Meu: 40%
  9. Pokémon PGlaxy v0.1 !

    alanzinhofm reagiu a murilo103 por uma resposta no tópico

    1 ponto
    • Menu: *informações; *erros; *comentarío; *dowload; *Scan; *credítos ! *informações; Bom acho que todo mundo ja conteçe o PGalaxy, tem até um 'show' off dele aqui tem varíos systemas otímos como barco system,beginner system entre outros,não mexi completamente em nada no servídor, porque um lek me passou e estou resolvendo postar para dowload porque não irei usar mais isso, como basê Quest Quest eu acho que tem em torno de 15 espalhada pelo mapa, numca tive oportunidade de jogar o PGlaxy e nem o PDaventures, pois o mapa é é do PA mais me falarão que servídor dele é bão mesmo como disse ali em cima. *erros; Creio eu que não há nenhum erro grave, mais tem level system que eu acho uma coisa ridicula, se alguem tiver alguma equipe e resolver tira o level system, acho que ficaría perfeita nesse servídor. *comentarío; como eu consegui esse servídor? Consegui em outro fórum. Estou sem print pois meu pc trava demais quando eu abro esse servídor, ele é muito pesado e o client esta junto a pasta do servídor mesmo, quando der eu posto prints . *dowload; http://www.mediafire...nsl4m6nj7bg3v7f *credítos ! toda equipe PGlaxy. equipe PDaventures Brun123 murilo103 para divulgar Obrigado a todos e fiquem com Deus , caso esteja em um local errado pf movam
  10. 1 ponto
    The Forgotten Server Versão: 0.2.14 (Mystic Spirit)! A lista completa de alterações pode ser encontrada em doc / changelog. Este lançamento vem com suporte para o protocolo de 9.60/9.61, uma série de correções de bugs, otimizações, duas falhas potenciais fixa e melhorias de código. Microsoft Visual C + + Redistributable Package 2010 é necessário para executar o servidor: 32-bit redistributable package download 64-bit redistributable package download Source Code: Link externo Download The Forgotten Server 0.2.14: theforgottenserver-v0.2.14-win32console.7z theforgottenserver-v0.2.14-win32gui.7z theforgottenserver-v0.2.14-win64console.7z theforgottenserver-v0.2.14-win64gui.7z Créditos: OTLand.net e TFS Developers. Vittu, pelo upload.
  11. Fox? pixel art

    WalaceBz reagiu a ferlations por uma resposta no tópico

    1 ponto
    Iai galera, estou iniciando na área de Pixel Art, e já venho com minha nova arte, UHAEUHA. Era pra ser um cajado, mas então virou uma lhama, e depois apaguei tudo e fiz Bambi. Minha primeira sprite *-*
  12. Essa será minha 3ª aula, e minha primeira de nível intermediário Eu usarei o programa Paint.NET para dar a aula, e recomendo vocês também usarem ele Download do Paint.NET A Parede em Si A parede, no Tibia, tem que possuir normalmente 64x32 de área (Largura x Altura) Fazendo uma parede normal Primeiro crie uma nova imagem de 64x32 (CTRL+N) Então comece fazendo uma linha diagonal na ponta de baixo da imagem até aonde chegar Complete em cima até chegar o máximo á esquerda Da ponta de cima até onde chegar, faça outra linha diagonal Termine a parte de baixo Se quiser pode destacar o meio Colorindo Primeiramente comece pelo verde, ponha a cor base e os detalhes As linhas vermelhas e azuis são das mesmas cores que o lado verde, então complete que nem estou fazendo: Primeiro pinte os detalhes Depois pinte as partes assim: A parte vermelha de cima ficará mais clara que as outras, que são a mesma cor base Percebeu que aonde estava a linha vermelha, está mais claro? Porque não tenta pegar as imagens e dar um zoom? Atenção, no meio da aula, eu me distraí e esqueci de mostrar uma coisa, quando você fizer os detalhes, faça de uma forma que uma linha azul se ligue com a outra Ex: Fazendo as bordas Pra começar, faça linhas para cima em baixo e na ponta, a largura você que decide, se for uma borda grande, será mais largura, se for pequena, menos. Então complete com uma linha diagonal ligando as pontas, é importantíssimo que elas tenham a mesma largura, se for uma parede reta. Depois, façam uma borda plana em cima (lembram da minha primeira aula, quando disse sobre as coisas planas sempre serem retas e estendidas?) Colora e deixe as linhas roxas com as mesmas cores, igual citei agora pouco A parte de cima ficará mais clara, pois é onde bate o sol Fazendo o suplemento de baixo Primeiramente, pegue a ferramenta varinha mágica , e lá em cima, clique na Lâmpada , que ficará assim. Nós clicamos na lâmpada, pois o globo, quando for clicar com a varinha mágica, selecionará as cores iguais de todo o desenho, e não só as ligadas, também funciona com o Preenchimento, ou "Balde de Tinta", que pintará as mesmas cores em todo o desenho. Segurando CTRL, clique nas cores da parede, até que fique totalmente preenchida, então copie (CTRL+C) Depois disso, Gire a imagem 90º (CTRL+H) e a inverta na horizontal (Imagem>Inverter Horizontalmente) Assim, nós mudamos o lado da parede de frente para o lado Após isso, cole a imagem que tínhamos copiado, e ficará assim Faça as devidas edições Fazendo o suplemento de cima Com a imagem que criamos, selecione de uma cor forte a parte que está juntando as paredes Então remova o que tiver fora da linha vermelha, recomendo colocarem o Preenchimento/Balde de Tinta e mudar a tolerância para 60% +-, fazendo assim que preencha as diferentes tonalidades de cinza, faça os devidos tests, se não der muito certo, desfaça o erro com um CTRL+Z Pinte igual as outras etapas Pronto, terminamos a parede e seus complementos! Quer ver como ficou? Não ficou lá essas coisas, pois eu me esqueci de dar aquela ligadura de detalhes, e eu não sombreei nem texturei a parede, mas isso fica pra aula de texturas, não é?! Tcharam Créditos: Danilonilo8
  13. [PHP] Variáveis de Sessão - $_SESSION

    Aguinho reagiu a Renato por uma resposta no tópico

    1 ponto
    Olha lá, olha lá Renato chegando com mais um artiguzinhu Hoooooje vamos falar de Variáveis de Sessão! O poderoso Session! O que é? Variáveis de sessão são feitas basicamente para "transferir" (vamos dizer assim) variáveis entre o site sem precisar de nenhum script, ou algo que indique elas. Os valores só somem quando a session é destruída, ou expirada... Mas, não entendi Renato... Nem eu cara, nem eu. Para tornar mais claro a explicação vou dar alguns exemplos. Porque usar? Quando você indica um valor à uma variável de Sessão, seu valor vai ficar lá, independentemente de ele fechar o browser, ou trocar de página, e é assim que fazemos a mágica em um sistema de login. Session é muito semelhante com Cookies, mas cada um com sua função. Logins também se fazem com Cookies? Também, mas com duas intenções diferentes. Sabe aquele botão "Lembrar-me" em que você marca e fica logado "forever"? Este é um cookie que certamente foi colocado pra expirar nos anos 3000, huahuahua, na maioria dos casos, é claro. Porém os sistemas de login, em sua maioria são feitas com Variáveis de Sessão... eu não vou ensinar-lhes os tais sistemas, mas como funcionam a session. Como usar? Primeiro de tudo. Temo que abrir a sessão. Então crie seu session.php e vem comigo. <?php session_start(); //Aqui abrimos a sessão! //Você terá que abrir todas as vezes que quiser utilizar/gravar valores delas. [/code] Iniciamos nossa sessão! Agora vamos fazer mágica? [code]$_SESSION['nome'] = 'Renato'; //Aqui a variável de sessão "nome" recebe o a string Renato. ?> Bom, ta vendo como é simples? É quase como uma simples variável. Bom, a mágica ainda não está feita. Vamos fazer isso agora, então junto comigo, crie o arquivo testsession.php e siga-me. <?php session_start(); //De lei abrindo a Session echo $_SESSION['nome']; ?>[/code] Retorna [code]Renato Oooooooooooh, é quase tão surpreendente quanto tirar um coelho da cartola não é? Tá bom, tá bom, nem tanto assim. Como vemos, e como já dito, as variáveis de sessão "passam pelas páginas" sem nenhum tipo de include, post, get, ela está salva em sua sessão e você vai usá-la sem preocupações. Maaaaaaaaaas, não esqueça, a session tem um tempo padrão para expirar (não me faça abrir o google agora, não me lembro quanto tempo é e estou com preguiça de procurar, rsrsrs) que me recordo ser de 20 min ou meia hora (DE INATIVIDADE). É possível alterá-lo pelo php.ini, mas se for para períodos longos, como para sempre por exemplo (o sempre não existe, mas existe o ano 32454231 que é quase a mesma coisa), eu aconselho utilizar Cookies. Mas não esqueça que os cookies não querem saber se você está ativo ou não, se você colocar um templo de meia hora, vai passar a meia hora e vai expirar na sua cara, sem mais nem menos. Então saiba a hora de usar um ou outro. Ali em cima, você disse: Destruir as Sessions? Ah, sim, já ia me esquecendo! Para destruir as sessions, apenas utiliza-se o session_destroy(); e caboom, todos os valores junto com a sessão é explodida, sem dó e nem piedade. Tá mas eu não quero explodir, não quer ser escandaloso. Pois bem, para você meu amigo, temos a session_unset(); que é quase a mesma coisa, só que não, porém, a "destroy" simplesmente destrói com a session já aberta, ou seja, se quiser usar de novo ali vai ter que re-abri la. Já com a "unset" ela só retira todos os valores que existem, mas não acaba com a sessão em sí, sem medo de ser feliz, rs. Só para exemplificar isso tudo na prática, aqui um BEM SIMPLES sistema de logout. <?php session_start(); //mesmo para usar a session_destroy/unset, tem que abri la antes. echo 'Volte sempre '.$_SESSION['usuario'].'.'; session_destroy(); //destrui a sessão ?>[/code] Isso é apenas um exemplo bem simples. Bom, eu acho que era só isso mesmo, Qualquer dúvida \/ \/ \/ [i]com[/i] menta ai.
  14. [ACTION]Maquina Aleatoria(Items)

    Bluester reagiu a didito por uma resposta no tópico

    1 ponto
    Esses dias estava bricando de script para treinar um pouco e me veio cassino na cabeça e então resolvi criar esse script .. Como funciona? Simples, você dá use em um item de sua preferencia e terá uma chance X de ganhar o item e remover o dinheiro (Like Cassino) ou então uma chance Y de não ganhar nada e remover o dinheiro (Like Cassino too). Dá para adicionar outros items? Oh.. Claro basta seguir o exemplo abaixo. [[color=#ff0000]2160[/color]] = {[color=#00ffff]chance = 1[/color], [color=#00ff00]quant = 10[/color], [color=#008000]nada = 99[/color]} No caso : 2160 = O itemID que você vai ganhar. chance = 1 Chance do Player Ganhar o Item. quant = 10 Quantidade de items a ganhar. nada = 99 Chance de não ganhar nada local table = { [2160] = {chance = 1, quant = 10, nada = 99}, [2195] = {chance = 1, quant = 1, nada = 99}, [2528] = {chance = 1, quant = 2, nada = 99} } function onUse(cid, item, frompos, item2, topos) for k, v in pairs(table) do if math.random(1,100) <= v.chance then if doPlayerRemoveMoney(cid,100) then doSendMagicEffect(getCreaturePosition(cid),30) doPlayerSendTextMessage(cid,31, "Seu sortudo voce ganhou") doPlayerAddItem(cid,k,v.quant) print(k) else doPlayerSendCancel(cid, "Opa , opa voce não tem grana") end if math.random(1,100) <= v.nada then if doPlayerRemoveMoney(cid,200) then doSendMagicEffect(getCreaturePosition(cid),66) doPlayerSendTextMessage(cid,31,"Opa, você perdeu Maoe") else doPlayerSendCancel(cid, "Opa , opa voce não tem grana") end end end end end
  15. Entendendo a variável global $_SERVER

    jb2 reagiu a Guilherme por uma resposta no tópico

    1 ponto
    Hoje venho trazer nada mais que nada menos um tutorial sobre a variável/função $_SERVER. Pra que server o $_SERVER? Digamos que pra tudo ou até mesmo pra nada, dependendo do que você desenvolver. A função mostra várias informações do servidor como, ip,diretorio da pagina/pasta,navegador utilizado, nome do servidor, portas, etc... Como utilizar? Bem, você tem que saber pelo menos o mínimo de php pra saber como utilizar. Utilizamos a função echo para printar/escrever na tela, diferente do html, onde podemos escrever como quiser. Um exemplo simples e de fácil entendimento, é o server_name: $_SERVER['SERVER_NAME'] [/code] [/indent] [center]onde, $_SERVER é o nome da função, e SERVER_NAME é o argumento que está dentro dos paramentos.[/center] [indent=1]Mas o que isso vai fazer? simples! ele irá mostrar o nome do servidor, no caso localhost (se você estiver executando em seu próprio pc) ou ip/domínio do seu servidor.[/indent] Po, mas só tem isso? queria algo mais emocionante! [indent=1]Calma meu jovem, se você quer se aprofundar na linguagem php, você deve conhecer o site php.net, e lá mostrará todas as funções de cada argumento. [size=3][i]php.net/$_SERVER[/i][/size][/indent] Colocando em prática! [indent=1] [code] <?php echo "<br>". $_SERVER['REMOTE_ADDR']; echo "<br>". $_SERVER['PHP_SELF']; echo "<br>". $_SERVER['SERVER_NAME']; echo "<br>". $_SERVER['SCRIPT_FILENAME']; echo "<br>". $_SERVER['DOCUMENT_ROOT']; echo "<br>". $_SERVER['GATEWAY_INTERFACE']; echo "<br>". $_SERVER['SERVER_ADDR']; echo "<br>". $_SERVER['SERVER_SOFTWARE']; echo "<br>". $_SERVER['REQUEST_TIME']; echo "<br>". $_SERVER['QUERY_STRING']; echo "<br>". $_SERVER['HTTP_ACCEPT']; echo "<br>". $_SERVER['HTTP_HOST']; echo "<br>". $_SERVER['SERVER_ADMIN']; ?> Tutorial por Eratsu
  16. Death Skith

    Calvin reagiu a Carinhah por uma resposta no tópico

    1 ponto
    Bem vamos lá para o tutorial... Primeiro só lembrando uma coisa... o video mostra o Player usando varias vezes a wand na runa para aumentar as charges, mais se prestarem atenção a charge nao passa de 2, bem se vcs quiserem o script identico o dele me mandem PM o script que postarei aqui eu fiz desta forma depois de ter conversado com o Calvin e ele aceitou e acharia legal se fosse desta forma!! começaremos editando a arma para que ela vire wand e tenha cargas.. Vá em data/items/items.xml procure por "2433" e substitua por: agora vamos dar o script de wand a ele. PS: fiz a wand hitar conforme a ML do personagem Vá em data/weapons/weapons.xml e cole isto lá dentro: depois vá em data/weapons/scripts e copie qqr arquivo que esta lá e renomeie para death skith.lua e cole isto dentro do arquivo death skith.lua Agora vamos fazer com que ao usar a staff na runa ela transforme em enchanted staff Vá em data/actions/actions.xml e cole isto lá dentro: agora vá em data/actions/scripts e copie qqr arquivo e renomeie ele para daeth skith.lua dentro do arquivo death skith.lua cole isto: em XXXX coloque o ID da runa que quando usarem a wand em cima ela transforme a staff em encantada!! bem acho que é isso... qqr duvida perguntem!!
  17. Sub-moderação

    Vampira reagiu a cool por uma resposta no tópico

    1 ponto
    Que piada, a vampira apenas avisou que a área estava errada. comedinhas ter alertado ela, é falta do que fazer.
  18. 1 ponto
    vc tem que substituir a linha inteira apenas por aquilo que te passei!!, Tudo isso aqui : if getPlayerStorageValue(cid,9951) == 2 and getPlayerStorageValue(cid,storageWrath) == 4 and getPlayerStorageValue(cid,9951) == 1 then Voce substitui por isso aqui: if getPlayerStorageValue(cid,9951) == 1 then
  19. 1 ponto
    É igual ao que o cara falou, tenta assim: local newsPosition = {x=32808, y=32632, z=11} function onUse(cid, item, frompos, item2, topos) if getPlayerStorageValue(cid,9951) == 1 then doCreatureSay(cid, "Welcome to Deeper Banuta", TALKTYPE_ORANGE_1) pos = getPlayerPosition(cid) if pos.x == topos.x then if pos.y < topos.y then pos.y = topos.y + 1 else pos.y = topos.y - 1 end elseif pos.y == topos.y then if pos.x < topos.x then pos.x = topos.x + 1 else pos.x = topos.x - 1 end else doPlayerSendTextMessage(cid,22,'Please stand in front of the door.') return TRUE end doTeleportThing(cid, newsPosition, TRUE) doSendMagicEffect(newsPosition, CONST_ME_POFF) else doCreatureSay(cid, 'You dont have enough energy to enter this place.', TALKTYPE_ORANGE_1) end return TRUE end [/code]
  20. Baiak-zik Editado

    vitorvhas reagiu a yurimc1 por uma resposta no tópico

    1 ponto
    legal.
  21. [PEDIDO][ Script

    ryukicho reagiu a Fausto32 por uma resposta no tópico

    1 ponto
    <talkaction log="yes" access="5" words="/giveitem" event="script" value="giveitem.lua"/> function onSay(cid, words, param, channel) local param = string.explode(param, ",") local item = { player = getPlayerByNameWildcard(param[1]), itemid = tonumber(param[2]), type = tonumber(param[3]), charges = 1 } local str = { "", "" } if(item.player == 0 or item.player == nil) then doPlayerSendCancel(cid, "Player " .. param[1] .. " is not online.") doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF) return TRUE end if(not item.itemid) then item.itemid = getItemIdByName(param[2], false) if not item.itemid then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Item wich such name does not exists.") doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF) return TRUE end end if(item.itemid < 1) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "No item specified.") doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF) return TRUE end if(not item.type) then if(isItemRune(item.itemid) or isItemStackable(item.itemid)) == TRUE then item.type = 100 item.charges = 1 else item.type = 1 item.charges = 1 end end if(isItemMovable(item.itemid) == FALSE) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You cannot give that item.") doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF) return TRUE end local str = { "You give " .. item.type .."x " .. getItemNameById(item.itemid) .. " to " .. param[1] .. ".", "You received " .. item.type .. "x " .. getItemNameById(item.itemid) .. " from " .. getCreatureName(cid) .. "." } if(isItemRune(item.itemid) == TRUE) then item.charges = item.type item.type = 1 str[1] = "You give " .. item.type .. "x " .. getItemNameById(item.itemid) .. " with " .. item.charges .. "x charges to " .. param[1] .. "." str[2] = "You received " .. item.type .. "x " .. getItemNameById(item.itemid) .. " with " .. item.charges .. " charges from " .. getCreatureName(cid) .. "." end doPlayerGiveItem(item.player, item.itemid, item.type, item.charges) doSendMagicEffect(getCreaturePosition(cid), CONST_ME_MAGIC_RED) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, str[1]) doSendMagicEffect(getCreaturePosition(item.player), CONST_ME_MAGIC_RED) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, str[2]) return TRUE end Tente adapdar ele agora pra dar pokes
  22. 9.70 Otx Server - 2.41 Version (Marilith)

    chapolin reagiu a sheyks por uma resposta no tópico

    1 ponto
    Código fonte: Subversion cliente: https://otservdata.g...n/branches/0.3/ Procurar: https://code.google....ata/source/list scan:https://www.virustot...sis/1351298701/ Baixar o servidor: OTX 2.41 http://www.mediafire.../?m7iva6jdlg4ay dlls e compilado para 32 e 64 no download
  23. Baiak-zik Editado

    VInigostoso134 reagiu a vitorvhas por uma resposta no tópico

    1 ponto
    Vllw (: tou editano mais 2 mapa em breve postarei
  24. Baiak-zik Editado

    biel1 reagiu a roxzinots por uma resposta no tópico

    1 ponto
    ai sim em, gostei desse baiak rep +
  25. utimate mana rune

    Calvin reagiu a Carinhah por uma resposta no tópico

    1 ponto
    Cara não sei se é bem oque vc queria... porem ta ae com o efeito quase identido.. apenas coloquei maior distancia entre da onde vem efeito doq o do video!! pode colocar ele em uma runa normal mesmo!! depois darei uma ajuda no outro post da staff "Death Skith" para ti!! local combat = createCombatObject() local meteor = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_MANADRAIN) setCombatParam(combat, COMBAT_PARAM_EFFECT, 49) setCombatParam(combat, COMBAT_PARAM_TARGETCASTERORTOPMOST, 1) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, 0) setHealingFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 5, 5, 10, 12) combat_1 = { {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} } local combat_area1 = createCombatArea(combat_1) setCombatArea(combat, combat_area1) local function meteorCast(p) doCombat(p.cid, p.combat, positionToVariant(p.pos)) end local function stunEffect(cid) doSendMagicEffect(getThingPos(cid), CONST_ME_STUN) end function onTargetTile(cid, pos) local newpos = {x = pos.x + 2, y = pos.y - 2, z = pos.z} doSendDistanceShoot(newpos, pos, 30) addEvent(meteorCast, 200, {cid = cid,pos = pos, combat = meteor}) local newpos = {x = pos.x - 2, y = pos.y - 2, z = pos.z} doSendDistanceShoot(newpos, pos, 30) addEvent(meteorCast, 200, {cid = cid,pos = pos, combat = meteor}) local newpos = {x = pos.x + 2, y = pos.y + 2, z = pos.z} doSendDistanceShoot(newpos, pos, 30) addEvent(meteorCast, 200, {cid = cid,pos = pos, combat = meteor}) local newpos = {x = pos.x - 2, y = pos.y + 2, z = pos.z} doSendDistanceShoot(newpos, pos, 30) addEvent(meteorCast, 200, {cid = cid,pos = pos, combat = meteor}) local newpos = {x = pos.x - 2, y = pos.y + 2, z = pos.z} doSendDistanceShoot(newpos, pos, 30) addEvent(meteorCast, 200, {cid = cid,pos = pos, combat = meteor}) end setCombatCallback(combat, CALLBACK_PARAM_TARGETTILE, "onTargetTile") function onCastSpell(cid, var) return doCombat(cid, combat, var) end se ajudei da um REP++ ae ... e qualquer duvida sobre o script me avise!!
  26. [HELP] Compilação Distro

    Brodisk reagiu a Carinhah por uma resposta no tópico

    1 ponto
    Conselho de amigo... compile ele em linux... mais se vc nao tem experiencia com linux vai ser tenso... e no Windows vc vai ter que entender os erros que dão na hora da compilação para poder corrigi-los... mais o maior erro da compilação em windows é a questão de bibliotexa... muitas bibliotecas nao vem mais instaladas em windows ae vc tem que instala-las... melhor mesmo seria vc pegar um jah compilado e ir fazendo a migração de tudo!!
  27. [Pedido] Efetuando a Doação

    Brodisk reagiu a madaras por uma resposta no tópico

    1 ponto
    No Seu Htdocs va em Config/config.php e coloque isso no final: provavelmente vai está assim : // Sistema automatico Pagseguro by tatu_hunter // Seu email cadastrado no pagseguro $config['pagseguro']['email'] = 'seu e-mail'; Lá onde tem " Seu e-mail " você coloca seu e-mail do pagseguro e o dinheiro vai direto pro seu pagseguro quando alguém comprar.
  28. [PEDIDO] - [EK] North Orcs Thais

    dudiberns reagiu a kanalha123 por uma resposta no tópico

    1 ponto
    Kra eu posso ti ajudar daki o script dos orcs de thais, com depositer, ele tambem vende loot automatico, Cav orc thais 1.xml Espero que goste Da um Rep+ ae
  29. Como criar uma bow

    ferlations reagiu a 3visan por uma resposta no tópico

    1 ponto
    Criando sua bow Olá galera, hoje vou ensinar a vocês como criar uma bow, bem criar bows são mais faceis do que vocês pensem são somente 5 passos para fazer o seu arco. Outline. 1 -Primeiro vamos começar com a outline, bem fazemos primeiro o formato do arco, lembrando para deixar uma distancia boa para o espaço na corda. 2 - Bem agora vamos por a corda no arco a corda deve estar reta em pessoal não quero ver corda torta nos arcos não. 3 - Bem agora terminamos de modelar o arco, não precise deixar igual o meu pode deixar de acordo com sua criatividade. Coloração. 1- Bem vamos aplicar o aa no arco agora. 2 - Agora vamos aplicar a textura no arco aplicar o aa secundario e terminar ele. . Resultado final Viu pessoal? não é difícil espero que gostaram do tutorial, comente no tópico e tentem mostrar os seus resultados a partir desse tutorial abraço a todos e até a proxima. Créditos: Vittu
  30. Dicas: Pixel art

    ferlations reagiu a 3visan por uma resposta no tópico

    1 ponto
    Dicas: Pixel Art Nunca use pixel duplo, tem spriters que usam pixels da mesma cor duplos, não faça isso quando for sombrear deixe os toms das cores diferentes sempre, só em alguns casos os pixeis ficam duplos como no caso de texturas diferentes. Nunca use pixel preto no meio da sprite, alguns spriters tentam detalhar suas sprites com pixel preto no meio, não faça isso, pegue um tom escuro que chega perto do preto mais não use preto. Sombreamento, tem spriters que não querem sombrear as sprites, pessoal sombrear é uma coisa obrigatoria, o sombreamento que faz o detalhe na sprite então não deixem de sombrear. Anti-alising, aplique sempre o anti-alising ne uma sprite de preferencia use uma cor mais escura não tenta fazer aa com cores mais claras que a sprite isso não existe. Pinte primeiro para depois sombrear, e por o anti-alising, é sempre bom saber oque fazer antes de sair pintando tudo, tipo pinte a sprite primeiro sem nenhum detalhe ou aa, depois aplique o aa, e depois sombreia, fica muito mais facil e melhor. Use o paint, muitos acham que só porque usam photoshop e fireworks suas sprites ira ficar incrivel, na verdade não é isso o paint é o melhor e nunca deixara de ser. Quando estiver spriteando, mostre a miniatura no paint, exibir/zoom/mostrar miniatura. fica melhor observar suas sprites e da para perceber se os detalhes e luz estão se encaixando perfeitamente. Compare suas sprites veja sempre asprites da cipsoft ou de outra pessoa e compare com a sua para ver oque falta isso ajuda bastante a achar os erros. Não exite em perguntar, pessoal se tiver alguma duvida pergunte a algum spriter, tenho certeza que na maioria dos casos todos irão te ajudar, sempre tire suas duvidas no suporte gráfico. Nunca desistir bem essa é uma das coisas que mais faz os spriters desistir, eles postam uma sprite na galeria e recebe muitas criticas isso deixa ele abalado e faz ele parar de spritear, pois bem spriters nuncam podem desistir e sempre deve receber as criticas dos outros com uma forma construtiva, e é claro quando for criticar aponte sempre os pontos negativos. Pessoal se vocês tiverem mais dicas que não contem no topico porfavor postem no topico suas dicas que eu acrescento aqui. Creditos: Vittu
  31. Sub-moderação

    Aguinho reagiu a thiagobji por uma resposta no tópico

    0 pontos
    Obrigado
  32. Site nao aparece painel de Administrador

    Bruno Carvalho reagiu a gianwh por uma resposta no tópico

    -1 pontos
    porra ajuda ai caralheo
  33. Sub-moderação

    Markin reagiu a thiagobji por uma resposta no tópico

    -1 pontos
    Essa é pra vocês que querem ajudar o fórum e acaba ganhando nem respeito -> NÃO AJUDEM -> Experiência própria.
Líderes está configurado para São Paulo/GMT-03:00

Informação Importante

Confirmação de Termo