Envolvents

Desenvolvedor
  • Total de itens

    2.893
  • Registro em

  • Última visita

Reputação

758 Deus

Sobre Envolvents

  • Rank
    Membro Onipotente
  • Data de Nascimento 09-06-1995

Contact Methods

  • Facebook
    wbferraz
  • Skype
    wellingtonferraz.
  • Twitter
    wbferraz
  • Website URL
    http://tuddoimoveis.com.br/

Profile Information

  • Sexo
    Masculino
  • Cidade / UF
    Goiânia
  • Interesses
    Real Estate

Últimos Visitantes

11.677 visualizações
  1. O cronus é hospedado na SPC Collor, tô ligado que você tem participação nos bitcoins.
  2. Mas foi o que eu disse uai. Ainda vai querer esse script? Posso bolar um no final de semana rapidin, semana ta corrida.
  3. Ta explicado então pq cê tem Ce$5,0000 Ces Ta minerando Ces como?
  4. E que tal se você implementasse nele a mesma coisa que existe no Uber? (Taxa alta) Ficaria legal, assim não ficaria enjoativo e influenciaria seus usuários a jogarem. Agora basta saber no quê aplicar taxa alta.
  5. Eu nem olhei o source ahuhauah que vacilo, queria ter visto. Alteraram já. hu3
  6. O @Kamper deve estar rico, por isso ele fez o fórum, não era rag mas sim bitcoins
  7. Muito bom Sérgio, vi em sua página no facebook e está de parabéns.
  8. Agora que vi que postou hahau, muda esse ++ e coloca +1. Explicando for: A variável .@a equivale a 0, Se .@a retornar os valores da array ($@mapa$), por favor, prossiga para a função: .@a agora vale .@a++. .@a++ equivale a um 0, 1, 2, 3, 4, 5 e assim em diante, se for ao contrário, primeiro ele vai retornar o teu 0 com 1 número a mais. Ou seja, o .@a vale 0 então ++.@a agora é 1, 2, 3, 4, 5.
  9. Mano, um npc só se faz com a lógica. Se você não criar uma, nunca vai conseguir atingir seu objetivo. Faça uma e vai programando em cima disso. Eu por exemplo faria assim: - Clica no npc, abre o diálogo com strcharinfo e informações da ação - Após o next de informações, desce o select mas antes vai fazer a confirmação do job e level - Se estiver tudo ok, prosseguir para a opção escolhida pelo user - Se não estiver tudo ok, finaliza diálogo e fala o que falta - Funções do ok: blabalabla E assim por diante, feito isso, é só ir montando as linhas. Espero que tenha compreendido porque se você querer sair por ai desenvolvendo logo o código não vai adiantar nada, pois você não está pensando somente na lógica mas sim em tentar não fazer o npc dar erro.
  10. Dá pra fazer bem mais elaborado com array os getitem mas eu vou deixar simples pra não complicar sua vida. Afinal o objetivo é a quest. prontera,150,150,5 script Sample 50,{ mes "[ ^ff0000Beta^000000 ]"; mes "Estra pronto para começa sua aventura??"; mes "Que tal começa escolhendo uma Profissão."; next; setarray .@c,1,2,3,4,5,6,23,24,25,4046; if(getarraysize(.@c) > 1){ mes "[ ^ff0000Beta^000000 ]"; mes "Você pode virar as seguintes Classes"; set .@menu$, jobname(.@c[0]); for(set @i,1; @i < getarraysize(.@c); set @i,@i+1){ set .@menu$,.@menu$+":"+jobname(.@c[@i]); } next; set .@m,select(.@menu$)-1; mes "[ ^ff0000Beta^000000 ]"; mes "Tem certeza que deseja essa Profissão?"; switch(select("Sim","Não")){ next; case 1: if(countitem(607) >= 10 && countitem(608) >= 10 && Zeny >= 1000000){ delitem 969,10; delitem 1529,10; set Zeny,Zeny-1000000; getitem 607,100; mes "[Sample]"; mes "Parabéns você completou sua quest!"; close2; // jobchange .@c[.@m]; // para habilitar apague os comentários } mes "Me desculpe, mas você não tem todos os itens necessários para esta quest."; mes "Vou precisar de:"; mes "10x "+getitemname(607); mes "10x "+getitemname(608); mes "1000000z"; mes "Volte quando você tiver todos os itens!"; close; case 2: mes "[ ^ff0000Beta^000000 ]"; mes "Tudo bem, volte quando estive decidido."; close; } } } Tudo o que você precisa saber está logo abaixo: Arrays ------ Arrays são essencialmente um grupo de variáveis, as posições dos valores dentro de um array são determinnada pelo índice do array: <nome da variável>[<índice da variável>] Variáveis são salvas deste jeito, dentro de um array, elas são até chamadas de 'elementos de array' são especificamente úteis, para guardar um grupo de dados similares (como vários ids de items por exemplo). Você pode endereçar qualquer array com variáveis, se elas forem definidas com números inteiros normais. setarray @array[0],1; Exemplo 2: setarray @x,100; setarray @array2[@x],10; Isso faz com que @array2[100] seja igual à 10 Note que os índices de array começar em 0, Arrays não podem ter mais que 128 valores, ou seja, você pode guardar até 127 dados em um array. índices de array não podem sem negativos. Arrays podem guardar string normalmente: Arrays can naturaly store strings: setarray @texto$[0],"Meu nome é"; O Exemplo a seguir vai mostrar como usar arrays string como "texto completo": for( set @c, 0; @texto$[@c]; set @c, @c + 1) mes @texto$[@c]; Supondo que o array especificado tenha as seguintes string: "olá","como você vai","eu não te vejo há muito tempo" sendo definidas desse jeito: setarray @texto$[0],"olá","como você vai ?","eu não te vejo há muito tempo"; o exemplo será igual à fazermos isto: mes "Olá"; mes "Como você vai ?"; mes "eu não te vejo há muito tempo"; Resumo do arrays permitidos e escopos de arrays ------ -- ------ ---------- - ------- -- ------ +==========+======+=======+ |Tipo |Normal| Array | +==========+======+=======+ |$Str$ | OK! | OK! | +----------+------+-------+ |$@Str$ | OK! | OK! | +----------+------+-------+ |@Str$ | OK! | OK! | +----------+------+-------+ |#Str$ | OK! | FALHA | +----------+------+-------+ |Str$ | OK! | FALHA | +----------+------+-------+ |$Int | OK! | OK! | +----------+------+-------+ |$@Int | OK! | OK! | +----------+------+-------+ |@Int | OK! | OK! | +----------+------+-------+ |#Int | OK! | FALHA | +----------+------+-------+ |Int | OK! | FALHA | +----------+------+-------+ |.Str$ | OK! | OK! | +----------+------+-------+ |.Int | OK! | OK! | +----------+------+-------+ |.@Str$ | OK! | OK! | +----------+------+-------+ |.@Int | OK! | OK! | +----------+------+-------+ Operadores ---------- Operadores são coisas que você pode usar em números, string, variáveis: + Vai somar números, se usado em string, une uma ou mais strings, resultando em uma só. É o único operador que se pode usar em strings. - Vai diminuir números. * Vai multiplicar números. / Vai dividir números. % é o resto da divisão. 7%2 será igual à 1. Há também operadores condicionais, usados para checar strings, variáves, números: == (exatamente igual) Se ambos lados forem igual o retorno será verdadeiro usado para string ,número, variáveis. >= (maior ou igual) se o primeiro valor for igual ou maior ao segundo, o retorno será verdadeiro <= (menor ou igual) se o primeiro valor for menor ou igual, o retorno será verdadeiro > (maior que) se o primeiro valor for maior que o segundo, o retorno será verdadeiro (operador válido somente para números). < (menor que) se o primeiro valor for menor que o segundo, o retorno será verdadeiro (operador válido somente para números). != (diferente) se os valores forem diferentes, o retorno será verdadeiro. Exemplos: if(1==1) VERDADEIRO if(1<2) VERDADEIRO if(@x<2) VERDADEIRO se @x for menor que 2. if(@x$ == @y$) VERDADEIRO se o valor de ambas variáveis forem guais As comparações podem ser empilhadas numa mesma checagem, usando certo operadores. && - é verdadeiro se todos os lados forem iguais. || - é verdadeiro se pelo menos um lado for verdadeiro. 1==1 && 2==2 é verdadeiro. 1==1 && 2==1 é falso 1==1 || 2==1 é verdadeiro, pois a primeira condição é verdadeira. Operadores lógicos de "parte" só funcionam com números: << - Mudança para esquerda. >> - Mudança para direita. Vamos entender melhor em um exemplo: set b,2; set a, b << 3; mes a; set a, a >> 2; mes a; O Primeiro "mes a" vai mostrar 16, pois fará o seguinte cálculo: 2 x (2 x 2 x 2) = 16. e o segundo mostrará 4, pois fará o seguinte cálculo: 16 / 2 = 8. 8 / 2 = 4.. & - e. | - ou. Entenderemos melhor esses dois operadores em exemplos: & checa se dentro da variável há certo valor. set @options,2|4|16; //(isso é o mesmo que 2+4+16, ou 22) if (@options&1) mes "Opção 1 ativada"; if (@options&2) mes "Opção 2 ativada"; if (@options&4) mes "Opção 4 ativada"; if (@options&8) mes "Opção 8 ativada"; if (@options&16) mes "Opção 16 ativada"; essa checagem acima deve mostrar "Opção 2 ativada" "Opção 4 ativada" "Opção 16 ativada" ^ - Xor. Também entederemos melhor com exemplos. Examplos: set inProgress,1|8|16; // quests 1,8,16 em proguesso if( inProgress&2 == 0 ){ // Isso vai definir que o jogador está na quest 2 set inProgress,inProgress^2; mes "Quest 2: procure alguém e mate"; close; } //depois de um tempo ele matou alguém e ganhou a variável isComplete if( inProgress&1 && isComplete ){ // isso vai desgrupar o pedaço da quest 1 (inProgress tinha esse pedaço definido como 1) set inProgress,inProgress^1; mes "Quest 1 completa"; close; } O bagui é antigo mas é em português. https://xp-dev.com/svn/tecnocronus_scripts/docs/PT/Comandos_de_Scripts.txt Se você manja inglês recorra a sua pasta DOCS que tem em seu emulador.
  11. Mano tem esse aqui que eu arrumei, usava em meu sv. Esses Porings Bombs que tem por ai são tudo bugado. // Release by Envolvents - 18/06/2017 05:40 // Correção nas variáveis e add bindatcmd (joinrd) prontera,152,151,5 script Corra ou Morra 503,{ goto EnterRDSub; OnInit: bindatcmd "joinrd",strnpcinfo(3)+"::OnJoinCommand"; set .joinannounce, 2; end; OnJoinCommand: set .@size, getarraysize( getvariableofnpc( .aid, "RunOrDie" ) ); if (.start != 1) // message strcharinfo(0), "O portal para o Corra ou Morra está fechado no momento."; // else callsub EnterRDSub; end; EnterRDSub: if (strcharinfo(3) == "cro_arena04") end; if ( ( .@size = getvariableofnpc( .aidtotal, "RunOrDie" ) ) >= 100 ) { // 100 participant max mes "[^00AFFFCorra ou Morra^000000]"; mes "Desculpe mas a sala está cheia."; close; } if (Class != Job_Novice) { mes "[^00AFFFCorra ou Morra^000000]"; mes "Somente ^4682B4Aprendizes^000000 podem entrar no evento."; close; } if (BaseLevel != 1 || JobLevel != 1) { mes "[^00AFFFCorra ou Morra^000000]"; mes "Desculpe mas este evento é somente para aprendizes level ^FF00001/1^000000."; mes "Fale com o menino ^20a53cDankar^000000 em prontera para lhe tornar um aprendiz."; close; } if(getvariableofnpc( .start, "RunOrDie" )) { mes "[^00AFFFCorra ou Morra^000000]"; mes "Ei, você gostaria de se juntar a mim?"; // next; if(select("Participar do Evento!:Agora não!") == 2) end; percentheal 100, 100; warp "cro_arena04", 0,0; set getvariableofnpc( .aid[ .@size ], "RunOrDie" ), getcharid(3); set getvariableofnpc( .aidtotal, "RunOrDie" ), getvariableofnpc( .aidtotal, "RunOrDie" ) +1; switch (.joinannounce) { case 1: mapannounce .map$, "O jogador [" + strcharinfo(0) + "] entrou no Corra ou Morra.",0,0xFFFF00; break; case 2: announce "O jogador [" + strcharinfo(0) + "] entrou no Corra ou Morra.",0,0xFFFF00; break; } end; } else { mes "[^00AFFFCorra ou Morra^000000]"; mes "Desculpe, o evento está fechado no momento."; mes ""; mes "Os horários do evento são:"; mes "- ^FF000000:00^000000 / ^FF000003:00^000000 / ^FF000006:00^000000 / ^FF000009:00^000000"; mes "- ^FF000012:00^000000 / ^FF000015:00^000000 / ^FF000018:00^000000 / ^FF000021:00^000000"; close; end; } } - script RunOrDie -1,{ OnInit: // disablenpc "Corra ou Morra"; bindatcmd "enablerd", "RunOrDie::OnJoinCommand", 99,100; .onesec = 1000; // use for script debugging... set to 100 to make the announcement run faster set .min2start, 10; // Tempo (em minutos) para o início do evento após a abertura da entrada do evento setarray $@pr_flags[0],0,1,2,3,4,5,11,12,13,31,33,34,37,43,47,mf_nostorage,mf_noguildstorage; // Lista de Mapflags. for(set .@y,0; .@y < getarraysize($@pr_flags); set .@y,.@y+1) setmapflag $@pr_mapa$,$@pr_flags[.@y]; removemapflag $@pr_mapa$,6; // Removendo mapflag pvp se estiver ativo no mapa. removemapflag $@pr_mapa$,9; // Removendo mapflag gvg se estiver ativo no mapa. if (.min2start < 1) .min2start = 1; end; OnJoinCommand: OnClock1000: OnClock2100: deletearray .aid; .aidtotal = 0; mapwarp "cro_arena04", "prontera", 155,185; killmonsterall "cro_arena04"; for (.@i = .min2start; .@i; .@i--) { announce "[Corra ou Morra] : O portal para o Corra ou Morra foi aberto, em [" + .@i + "] minuto" + (.@i == 1 ? "" : "s") + " o evento será iniciado! Digite @joinrd para participar.",bc_all,0xFFFF00; .start = 1; sleep2 60000; } sleep 1000; announce "[Corra ou Morra] : O portal para o evento foi fechado.",bc_all,0xFFFF00; if ( .aidtotal < 2 ) { // cannot start event if nobody joins(0) or just having (1) player announce "[Corra ou Morra] : O evento foi cancelado, não há jogadores suficientes para continuar!",bc_all,0xFFFF00; mapwarp "cro_arena04", "prontera", 152,151; deletearray .aid; .aidtotal = 0; .start = 0; end; } mapannounce "cro_arena04", "[Corra ou Morra] : Bem-vindo ao evento Corra ou Morra!",bc_map,0xFFFF00; sleep 3 * .onesec; mapannounce "cro_arena04", "[Corra ou Morra] : Para os jogadores não conhecem este evento, é muito simples!",bc_map,0xFFFF00; sleep 3 * .onesec; mapannounce "cro_arena04", "[Corra ou Morra] : Você só precisa ficar longe de tudo o que você acha que é PERIGOSO!!",bc_map,0xFFFF00; sleep 3 * .onesec; mapannounce "cro_arena04", "[Corra ou Morra] : Fique vivo, não importa como!",bc_map,0xFFFF00; sleep 3 * .onesec; mapannounce "cro_arena04", "[Corra ou Morra] : O ÚLTIMO SOBREVIVENTE será o VENCEDOR",bc_map,0xFFFF00; sleep 3 * .onesec; mapannounce "cro_arena04", "[Corra ou Morra] : O evento começará em 3....",bc_map,0xFFFF00; sleep 1 * .onesec; mapannounce "cro_arena04", "[Corra ou Morra] : 2...",bc_map,0xFFFF00; sleep 1 * .onesec; mapannounce "cro_arena04", "[Corra ou Morra] : 1..",bc_map,0xFFFF00; sleep 1 * .onesec; mapannounce "cro_arena04", "[Corra ou Morra] : Comece a correr agora!",bc_map,0xFFFF00; while ( .start ) { .@more += rand(1,2); monster "cro_arena04", 0,0, "[cRO] Bomb Poring", 1904, 2 + .@more, "", 0; monster "cro_arena04", 0,0, "[cRO] Bomb Poring", 1904, 2 + .@more, "", 1; monster "cro_arena04", 0,0, "[cRO] Bomb Poring", 1904, 2 + .@more, "", 2; sleep 5000; } end; OnPCDieEvent: OnPCLogoutEvent: if ( strcharinfo(3) == "cro_arena04" && .start ) { if ( .aidtotal > 1 ) { for ( .@i = 0; .@i < .aidtotal; .@i++ ) { if ( getcharid(3) == .aid[.@i] ) { deletearray .aid[.@i], 1; .aidtotal--; percentheal 100, 100; dispbottom "[Corra ou Morra] : O Corra ou Morra chegou ao fim para você."; warp "prontera",155,185; } } } if ( .aidtotal == 1 ) { .start = 0; killmonsterall "cro_arena04"; announce "[Corra ou Morra] : O Jogador ["+rid2name(.aid) +"] foi o último a sobreviver no evento Corra ou Morra e ganhou 1x "+getitemname(27005)+". Obrigado a todos que participaram.", 0; sleep 5000; if ( isloggedin( .aid ) ) { attachrid .aid; getitem 27005,1; warp "prontera", 155,185; } deletearray .aid; .aidtotal = 0; } } end; } Mude apenas o mapa. (cro_arena04)
  12. Quantos PC's da Xuxa posso ver aqui hahaua Estou com Audition, After, Premiere e Photoshop rodando aqui de boa consumindo somente 32% da CPU e 56% de memória.
  13. Morreu faz tempo. @JulioCF, foi eu quem fiz esse gif? Toda vez que vejo me vem uma lembrança uhauha.
  14. Ta explicado uahauh, cronus ta old brother.
  15. Certo agora que reparei, na verdade era pra ter usado somente o count. rowCount se usa pra UPDATE, INSERT, DETELE e não para SELECT. Mesmo que funcione o correto é count, apenas para contar a quantidade de itens na tabela. Altera para: if(count($sql) > 0) { Flw https://pastebin.com/2mxdAAnc