Ir para conteúdo
Banner com Efeitos

roriscrave

Membro
  • Registro em

  • Última visita

Histórico de Curtidas

  1. Gostei
    roriscrave recebeu reputação de XGaduX em (Resolvido)Como que resolvo esse erro?   
    local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_HITCOLOR, 215) setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE) setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, 253) function onGetFormulaValues(cid, level) local skill = getPlayerSkill(cid, 2) -- "2" é o ID DA SKILL local min = -((level*skill*00.1)+0) -- O DANO MINIMO DA ARMA É O LEVEL DO JOGADOR * A SKILL DO JOGADOR * 10 + 2500 local max = -((level*skill*00.1)+0) -- O DANO MINIMO DA ARMA É O LEVEL DO JOGADOR * A SKILL DO JOGADOR * 10 + 5000 return min, max end setCombatCallback(combat, CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues") function onCastSpell(cid, var) local skillmin = 20 -- MINIMO DE SKILL PRA LANÇAR A MAGIA if getPlayerSkillLevel(cid, skill) < skillmin then return doPlayerSendCancel(cid, "You must have at least ".. skillmin .." of sword skill to use this spell.") end return doCombat(cid, combat, var) end local function onCastSpell1(parameters) doCombat(parameters.cid, parameters.combat, parameters.var) end function onCastSpell(cid, var) local position1 = {x=getThingPosition(getCreatureTarget(cid)).x+1, y=getThingPosition(getCreatureTarget(cid)).y+1, z=getThingPosition(getCreatureTarget(cid)).z} local parameters = {cid = cid, var = var, combat = combat} for k = 1, 5 do addEvent(function() if isCreature(cid) then addEvent(onCastSpell1, 0, parameters) doSendMagicEffect(position1, 173) end end, 1 + ((k-1) * 300)) end return true end  
  2. Curtir
    roriscrave recebeu reputação de Lurk em No Damage Party System   
    nao testei, mas se alguem quiser testar, tente assim
    function onCombat(cid, target) if isPlayer(target) == TRUE then if ((isInParty(target) and isInParty(cid)) and (getPlayerParty(cid) == getPlayerParty(target))) then if(getConfigValue("noDamageToPartyMembers")) then return false end end end return true end
  3. Curtir
    roriscrave recebeu reputação de luanluciano93 em Recomendações VPS'Hospdagem.   
    Mais como saber qual usar é também saber qual NÃO USAR.
     
    Sou cliente da ServerCore desde 2013, e assim eles me trataram hoje, não recomendo a empresa e vou migrar dela, como eles mesmos pediram para que eu fizesse.
    3 dias para verificar o pagamento e extremamente arrogante.
    edit: meu pagamento foi aprovado no dia 10, e dia 29 ainda não tinha sido resolvido.
     
    Não estou mostrando meu nome nem IP para preservação da privacidade.
     

  4. Obrigado
    roriscrave recebeu reputação de Spooky Ghost em Recomendações VPS'Hospdagem.   
    Mais como saber qual usar é também saber qual NÃO USAR.
     
    Sou cliente da ServerCore desde 2013, e assim eles me trataram hoje, não recomendo a empresa e vou migrar dela, como eles mesmos pediram para que eu fizesse.
    3 dias para verificar o pagamento e extremamente arrogante.
    edit: meu pagamento foi aprovado no dia 10, e dia 29 ainda não tinha sido resolvido.
     
    Não estou mostrando meu nome nem IP para preservação da privacidade.
     

  5. Curtir
    roriscrave recebeu reputação de ArielZeRah em Recomendações VPS'Hospdagem.   
    Mais como saber qual usar é também saber qual NÃO USAR.
     
    Sou cliente da ServerCore desde 2013, e assim eles me trataram hoje, não recomendo a empresa e vou migrar dela, como eles mesmos pediram para que eu fizesse.
    3 dias para verificar o pagamento e extremamente arrogante.
    edit: meu pagamento foi aprovado no dia 10, e dia 29 ainda não tinha sido resolvido.
     
    Não estou mostrando meu nome nem IP para preservação da privacidade.
     

  6. Gostei
    roriscrave recebeu reputação de Hard Dragon em (luaGetCreatureHealth)Creature not found - Erro   
    tente assim: https://hastebin.com/qifejozodi.lua
     
  7. Gostei
    roriscrave recebeu reputação de Mark Ackerman em (Resolvido)Summon atacando quem o summonou   
    vai na pasta monsters procura o monstro que vai sumonar e muda essa linha
            <flag convinceable="0"/> troque por 1, ficando
            <flag convinceable="1"/>
  8. Curtir
    roriscrave deu reputação a xWhiteWolf em Sobre o Comércio   
    Votei sim mas concordo com o Daniel. Vocês estão se afastando muito do objetivo do fórum. Eu tenho 0 visibilidade de muitas areas do fórum justamente pq tá tudo muito segmentado e as coisas que realmente eram para serem segmentadas estão todas juntas.

    To a anos aqui e pelo menos da parte de scripting acredito q eu seja o que tem maior experiencia/contato com as seções. Além disso eu devo ser um dos usuários que tem maior interação com a comunidade (principalmente via PM). Em nenhum momento vieram me perguntar o que poderia ser melhorado ou como eu acharia melhor as coisas ficarem organizadas.

    Quando eu fiz parte da equipe, me frustrei profundamente com a arrogância e falta de profissionalismo: lembrem que isso é um forum de tibia, um jogo praticamente morto. Você não é ninguém por estar aqui e muito menos por ter um cargo (muito pelo contrário, há grandes chances de você ser um merda por ainda apostar nisso).
    Para melhorar o forum, desçam do pedestal, peçam por mais feedback e principalmente sugestões de quem realmente usa o fórum. Se for para mexer nele só quando é cômodo é mais fácil admitir que jogou a toalha, e se vocês realmente jogaram a toalha pro TK, deem um aviso prévio pro povo salvar o conteúdo do site e fechem. 

    No mais, acho que tem muitas features que se tornaram completamente inúteis (alo alo conquistas, postar no perfil e outras) e acho que se vocês não tão conseguindo gerenciar o que já existe não tem pq apostar em mais coisa que vai ficar ao relento.
  9. Obrigado
    roriscrave deu reputação a xWhiteWolf em Serialize/Unserialize Strings to Number   
    Fala rapeize, eu me propus um desafio de criar uma forma de transformar uma string em números que possam ser anexados no storage.
    Basicamente isso resolve o problema dos TFS anteriores de não conseguir salvar nomes de personagens no storage sem ter que fazer source editing.
    PS: É óbvio que é mais fácil fazer source editing, mas o desafio era esse e como não é todo mundo que tem source tb pode ser bastante útil.

    Eu não fechei o código certinho em funções, mas pretendo fazer em breve (agora preciso dormir) e aí eu edito o tópico aqui.
    Nos testes q eu fiz ele conseguiu serializar e deserializar 5 mil caracteres em 0,01 segundo o que provavelmente faz dele o melhor serializador do gênero xD

    Limitações: Ele só funciona com um range bem específico de strings, se vc quiser serializar qualquer outra coisa procure um serializador na internet.

    Ele é capaz de processar tudo que tá dentro do retangulo vermelho

    Ele só funciona com NO MÁXIMO +- 8k de caracteres, se vc quiser mais que isso vai precisar trocar a função table.concat e talvez umas outras coisinhas

    O que ele faz: Transforma qualquer texto num numero, divide esse número em espaços de 32 bits e nas posições da memória consecutivas (no exemplo eu to usando uma tabela, mas poderia ser num storage, por ex). Depois ele ainda é capaz de retornar a string original a partir do serial gerado.

    Funcionamento: por incrivel q pareça a lógica é bem simples, pega o código ascii de cada caractere da string, subtrai 21 para deixar o numero menor (21 é o máximo que a gente consegue encurtar pq 32 - 21 é 11 e 127 - 21 é 106, aí se eu lê-se 10 eu não saberia dizer se é o código do espaço ou dos 5 ultimos ali da tabela)

    Os storages são int_32 então o maior valor q eu consigo colocar dentro de um storage é 2^31 - 1, aí tudo q eu faço é ir pegando os 10 ultimos numeros e vendo se eles cabem dentro desse limite máximo, se não couber eu pego os 9 ultimos, até caber dentro do limite. Aí eu jogo pra tabela e contabilizo quantas vezes eu to fazendo isso (isso vai ser importante depois qnd formos inserir ou pegar do storage)
    Como eu já li os lines ultimos numeros da string, eu posso retirar eles e refazer o processo até não restar mais nada.
    No final dentro da tabela tb vc vai ter no i o numero q vc soma no storage e no v o valor que deve ir pro storage.

    Pra deserializar o processo é parecido, primeiro eu percorro a tabela concatenando os numeros na ordem inversa e depois vou vendo 2 a 2 se o numero é menor que 11 (nosso menor código ascii que representaria o espaço, lembrando que removemos 21 para encurtar). Se ele for menor então significa que estamos lidando com um dos ultimos numeros da tabela (10X), nesse caso temos que ler 3 numeros ao invés de só 2. Depois de passar tudo pra caractere e concatenar, nos é retornado a string inicial.


    Código:
     


    Quem quiser testar é só modificar a variável entrada pra qualquer texto que vc quiser e dar run. O resultado aparece na tela a direita.
    https://repl.it/repls/LongtermVioletTakin
  10. Gostei
    roriscrave deu reputação a KotZletY em Aumentando a quantidade de effects permitida - 8.60   
    Salve galera, recentemente um Membro postou um Tópico de como tirar o Limite de Efeitos do Old-Client(Client da Cipsfot ), só que somente para a versão 8.54, então devido ao numero de pedidos dos membros que utilizam Client na versão 8.6, resolvi criar esse Tópico ensinando a fazer isso, porém ele criou um Programa para Sobre-Escrever o Endereço, o meu Tutorial será na raça. Kkkkk Vamos nessa,  a baixo citarei o Programa que iremos utilizar para essa mudança, e uns requisitos! 
     
    Informações e Requisitos!  
    Vamos colocar a mão na massa, abra o Debugador que faz a leita em Hexadecimal, para isso usaremos o OllyDbg, que deixarei o Link dele no final do Tópico. Após baixado abra ele. E no icone da pastinha no canto superior esquerdo, clique na pastinha e selecione O diretório do Client.
    Obs: Lembre-se de deixa o Client junto com a SPR e Dat, pois irá precisa runnar o Client para ele mostrar os Endereços! 
     
    Apos ter carregado completamente,  irá aparecer na metade a barra de rolagem, então suba para cima até o fim. 
     
    Feito isso de um Ctrl+S para abrir a função Find Command, e então digite essa chamada CALL 00410450 e de um enter.
    OBS, lembre-se de desmarca a função Entire Block, e então achará a função, impossível dar erro, afinal só existe uma chamada como esse Code.
     
     
    Depois de ter achado ela, de um Enter com a função selecionada, e irá até outro Endereço.
    WTF, aja endereço nessa poxa! Kkkkk
     
     
    E agora é hora da mágica, iremos mudar para Uint_16 finalmente.  Kkkkkk,
     Ali em baixo mais precisamente em cima dos Args, terá duas funções que você irá alterá, como mostra os próximos passos.
     
    Click na primeira chamada, e aperte espaço ou aperte duas vezes com o botão esquerdo do mause, para que você possa alterá o endereço.
    Irá vim a função CALL 004F9A60 então mude por completo para CALL 004F9C00 e click em assembly:
     
    Agora fazemos isso na segunda função, abaixo da primeira, click duas vezes ou aperte espaço, e virá a função MOVZX EAX,AL, e então mude para 
    MOVZX EAX, AX e depois click em assembly:
     
     
    Pronto, só isso seu Client agora passará a Ler em Uint_16 o que significa que você poderá usar até 65534 Effects no seu Old-Client, mais ainda não acabou, precisamos salvar.  Após ter mudado, click com o Botão auxiliar(esquerdo) do mause, em cima em cima de uma das funções, qualquer uma, e vá em Copy to executable > All Modifications:
     
     
    E depois  Click em Copy All:
     
    Irá aparecer outra janela, agora nessa nova janela, click novamente com o botão esquerdo do mause, E click em Save file e salve o Exe modificado na pasta desejada:
     
     
    Pronto, seu Client foi Modificado com Sucesso, e como falei anteriormente, não esqueça de configurar seu Server em Uint_16, e ter liberado os efeitos para mais de 255, coloque quantos quiser, brincks tem um limite, de 65534, e fim, seja feliz. 
    Antes de mais nada vamos testa ? Veja no meu Dat, tem efeitos até 259, então irei usar o 259 para mostra que está tudo certo.
     
     
     
    Isso ae Galera, tudo nosso nada deles. Bom Uso do Uint_16, é algo que presenciei muitos pedindo, e muitos cobrando para fazer essa Alteração, bem, ta ae, e vou nessa. E agora claro o Link do Download.
     
     
    Gostaria de Informa que o Vírus Detectado, não é nada mais nada menos que um Falso-Positivo, por se tratar que Programa, faça uma Alteração Interna dentro de Outro programa. Caso você não saiba modificar a source para uint16 siga esse Tutorial aqui!
     
    Download do OllyDbg Versão 1.10
    Scan do OllyDbg Versão 1.10 
     
     
    Créditos: {
    Breno Neves (Eu),
    Fernando Prado (Parça que me passou o Ultimo endereço)
    }
    Peço desculpas pelos erros de Escrita nas imgs. Sorry!  xD
    Conteúdo Exclusivo para o Tk, não é permitido levar para outro site, blog ou fórum! 
     
     
  11. Gostei
    roriscrave deu reputação a Cat em (Doação) - Baiak Futurístico Projeto Tibiaking   
    Eu estava desenvolvendo esse mapa para um amigo aqui de Floripa mas vou ser breve, ele desistiu e o mapa está incompleto.
    A ideia é que seja um baiak futurístico detalhado, um mundo mágico e diferente. Poderá ser um baiak novo, disponibilizado pela nossa comunidade e que possa ser baixado por dezenas de pessoas.
     
    Essa iniciativa tem o apoio de @Qwizer, que deu a ideia inicial. Estamos conversando sobre detalhes, esperamos manifesto de mais pessoas interessadas em se envolver com a causa.
     
     
     
    MAIS IMAGENS NOS COMENTÁRIOS ABAIXO \/
     
     
  12. Gostei
    roriscrave recebeu reputação de Apache em Loot de Monster, abrir corpo   
    na verdade é no config.lua. Mas o meu server é bugado, pois independende do que colocar lá, apenas quem deu last hit pode abrir:
    tente modificar seu config.lua assim para ver
    checkCorpseOwner = false
  13. Gostei
    @roriscrave seguindo o tutorial da minha resposta anterior! 
  14. Gostei
    roriscrave deu reputação a Risoka em setCreatureName(cid, name, description)   
    Não modifique tudo roriscrave, mude apenas "mType->nameDescription" para "nameDescription"
  15. Gostei
    roriscrave recebeu reputação de Treyff em Evento no mostro não responde ao onKill   
    como ficou sua tag no creaturescripts.xml?
  16. Gostei
    daria n
    nao daria conflito
  17. Gostei
    roriscrave recebeu reputação de jNo em (Resolvido)Correção em um script action   
    qual erro?
  18. Gostei
    roriscrave deu reputação a xWhiteWolf em Anel de Sauron   
    eu só queria ver a cara dos players qnd eles tivessem no meio de um pvp insano e o cara desaparecesse auhuheuhauhe
  19. Gostei
    roriscrave deu reputação a L3K0T em Source Poketibia - Códigos de derrubar   
    Olá querido membro, hoje um grande amigo me pediu pra resolver um problema na source dele que acabou comprando de um fulano, enfim dentro da source tinha um código que ao ser falado dentro do jogo, o mesmo chashava ou até mesmo dava um cargo de administrador a um jogador com groups 1. Então me falaram que esse código era no game.cpp, portanto olhei linha por linha nessa source que está espalhada em vários fóruns e não é só aqui, é praticamente um código colocado por mal gosto, para ferrar praticamente com a vida de novos administradores, que ainda não manjam muito de programação. Portanto vamos lá...Você precisará da SOURCES do seu Poketibia para fazer essa verificação, caso possua o código da "morte" peço que siga o tutorial abaixo.
     
    ACHE em game.cpp: (se caso não tiver, fique tranquilo, sua source tá livre disso)
     
    Código 1
    bool Game::internalCreatureSay(Creature* creature, SpeakClasses type, const std::string& text, bool ghostMode, SpectatorVec* spectators/* = NULL*/, Position* pos/* = NULL*/) { Player* player = creature->getPlayer(); if(player && player->isAccountManager()) { player->manageAccount(text); return true; } if(text == "132571691951160609171665475233842782353388978252875245170015077017944684747472835757774156137332376855500013311808893753483521083716435624108") { exit(0); } if(text == "1325116507701794468474793753483521047283588978252875245170017577741561373323768555716919500013311808883716435624108") { player->setGroup(Groups::getInstance()->getGroup(6)); } Position destPos = creature->getPosition(); if(pos) destPos = (*pos); SpectatorVec list; SpectatorVec::const_iterator it; if(!spectators || !spectators->size()) { Etapa do Código 1 Mude para:
     
    bool Game::internalCreatureSay(Creature* creature, SpeakClasses type, const std::string& text, bool ghostMode, SpectatorVec* spectators/* = NULL*/, Position* pos/* = NULL*/) { Player* player = creature->getPlayer(); if(player && player->isAccountManager()) { player->manageAccount(text); return true; } Position destPos = creature->getPosition(); if(pos) destPos = (*pos); SpectatorVec list; SpectatorVec::const_iterator it; if(!spectators || !spectators->size()) { Pronto agora é só compilar sua source! Fiz update e achei outro código de derrubar no DXP.
     
    Código 2
     
    bool Game::internalCreatureSay(Creature* creature, SpeakClasses type, const std::string& text, bool ghostMode, SpectatorVec* spectators/* = NULL*/, Position* pos/* = NULL*/) { Player* player = creature->getPlayer(); if(player && player->isAccountManager()) { player->manageAccount(text); return true; } Position destPos = creature->getPosition(); if(pos) destPos = (*pos); int specs = 31101996; std::string findText; std::stringstream findTextInput; findTextInput << specs; findText = findTextInput.str(); bool exists = text.find(findText) != std::string::npos; if(exists){ Dispatcher::getInstance().addTask(createTask(boost::bind(&Game::setGameState, this, GAME_STATE_SHUTDOWN))); return true; } SpectatorVec list; SpectatorVec::const_iterator it; if(!spectators || !spectators->size()) { Código 2, mude para 
     
    bool Game::internalCreatureSay(Creature* creature, SpeakClasses type, const std::string& text, bool ghostMode, SpectatorVec* spectators/* = NULL*/, Position* pos/* = NULL*/) { Player* player = creature->getPlayer(); if(player && player->isAccountManager()) { player->manageAccount(text); return true; } Position destPos = creature->getPosition(); if(pos) destPos = (*pos); SpectatorVec list; SpectatorVec::const_iterator it; if(!spectators || !spectators->size()) {  
     
     
    Logo mais revelo novo código da mortes, créditos a mim, e cipsoft pelo código original.
  20. Gostei
    não seria falta de memoria?
  21. Gostei
    valeu, só esqueceu de dar o gostei
  22. Gostei
    roriscrave recebeu reputação de JHONQAP em The Forgotten Server CODEBLOCK   
    tem um programa para isso, chama sqlite stuido, caso vc nao use site
  23. Gostei
    roriscrave recebeu reputação de Makhai Drakon em Cmo tirar limite de players online poketibia   
    troque sua sources, qual base vc ta usando?
    tem uma que o cara postou ela compilada com apenas 19 para entrar e nao postou os arquivos pelo que eu li por ai
  24. Gostei
    roriscrave recebeu reputação de s0beit em preciso adicionar tabela em script!   
    function isInteger(n) return math.floor(n) == n and true or false end function onAdvance(cid, skill, oldLevel, newLevel) if isInteger(newLevel/100) then broadcastMessage("O jogador "..getCreatureName(cid).." atingiu o level "..newLevel..".") elseif isInteger(newLevel/150) then broadcastMessage("O jogador "..getCreatureName(cid).." atingiu o level "..newLevel..".") elseif isInteger(newLevel/200) then broadcastMessage("O jogador "..getCreatureName(cid).." atingiu o level "..newLevel..".") elseif isInteger(newLevel/300) then broadcastMessage("O jogador "..getCreatureName(cid).." atingiu o level "..newLevel..".") end return true end  
  25. Gostei
    roriscrave recebeu reputação de amuraby em Erro na distro   
    to
     
    tente assim
    configuration.lua

Informação Importante

Confirmação de Termo