Ir para conteúdo

Elwyn

Membro
  • Registro em

  • Última visita

Histórico de Curtidas

  1. Gostei
    Elwyn recebeu reputação de Orientalz em (Resolvido)Tile que enxe stamina   
    Essas mensagens são do print que deixei sem querer. Não apareceram outras mensagens?
     
    Se você fizer essa talkaction:
    function onSay(cid, words, param)     local value = param and tonumber(param) or 1     doPlayerSetStamina(cid, value)     return true end Com a seguinte tag:
        <talkaction access="0-4" words="!teste" event="script" value="stamina.lua" /> E mandar no tibia a seguinte mensagem:
     
     
     
    Sua stamina muda para 00:20?
     
    A propósito, o script que estou usando no OTX é exatamente este:
     



     
    E funciona perfeitamente. Note que é apenas o script anterior sem o print e com um delay maior no regen de stamina.
  2. Gostei
    Elwyn recebeu reputação de Orientalz em (Resolvido)Tile que enxe stamina   
    eventsId = {} local function rechargeStamina(cid)     if not isPlayer(cid) then         eventsId[cid] = nil         return     end     doPlayerSetStamina(cid, getPlayerStamina(cid) + 1)     eventsId[cid] = addEvent(rechargeStamina, 60 * 1000, cid) end function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor)     if isPlayer(cid) then         eventsId[cid] = addEvent(rechargeStamina, 60 * 1000, cid)     end     return true end function onStepOut(cid, item, position, lastPosition, fromPosition, toPosition, actor)     if isPlayer(cid) then         stopEvent(eventsId[cid])         eventsId[cid] = nil     end     return true end  
    Agora ele só adicionará a cada minuto.
  3. Gostei
    Elwyn recebeu reputação de DaPYuumii em (Resolvido)Tile que enxe stamina   
    eventsId = {} local function rechargeStamina(cid)     if not isPlayer(cid) then         eventsId[cid] = nil         return     end     doPlayerSetStamina(cid, getPlayerStamina(cid) + 1)     eventsId[cid] = addEvent(rechargeStamina, 60 * 1000, cid) end function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor)     if isPlayer(cid) then         eventsId[cid] = addEvent(rechargeStamina, 60 * 1000, cid)     end     return true end function onStepOut(cid, item, position, lastPosition, fromPosition, toPosition, actor)     if isPlayer(cid) then         stopEvent(eventsId[cid])         eventsId[cid] = nil     end     return true end  
    Agora ele só adicionará a cada minuto.
  4. Curtir
    Elwyn recebeu reputação de GOD Vitor em getCreaturePathTo   
    Para TFS 0.4/0.3.6 e OTX2
     
    Em luascript.h depois de:
    static int32_t luaGetCreatureName(lua_State* L); Adicionar:
    static int32_t luaGetCreaturePathTo(lua_State* L); Em luascript.cpp depois de:
    //getCreatureName(cid) lua_register(m_luaState, "getCreatureName", LuaInterface::luaGetCreatureName); Adicionar:
    //getCreaturePathTo(cid, pos, maxSearchDist) lua_register(m_luaState, "getCreaturePathTo", LuaInterface::luaGetCreaturePathTo); Depois de:
    int32_t LuaInterface::luaGetCreatureName(lua_State* L) { //getCreatureName(cid)     ScriptEnviroment* env = getEnv();     if(Creature* creature = env->getCreatureByUID(popNumber(L)))         lua_pushstring(L, creature->getName().c_str());     else     {         errorEx(getError(LUA_ERROR_CREATURE_NOT_FOUND));         lua_pushboolean(L, false);     }     return 1; } Adicionar:
    int32_t LuaInterface::luaGetCreaturePathTo(lua_State* L) { //getCreaturePathTo(cid, pos, maxSearchDist)     ScriptEnviroment* env = getEnv();     int32_t maxSearchDist = popNumber(L);     PositionEx position;     popPosition(L, position);     Creature* creature = env->getCreatureByUID(popNumber(L));     if (!creature) {         lua_pushnil(L);         return 1;     }     std::list<Direction> dirList;     lua_newtable(L);     if (g_game.getPathTo(creature, position, dirList, maxSearchDist)) {         std::list<Direction>::const_iterator it = dirList.begin();         for (int32_t index = 1; it != dirList.end(); ++it, ++index) {             lua_pushnumber(L, index);             lua_pushnumber(L, (*it));             pushTable(L);         }     } else {         lua_pushboolean(L, false);     }     return 1; } E sejam felizes!
     
    getCreaturePathTo(cid, position, maxSearchDist) retornará uma tabela com as direções que o jogador deve seguir para chegar no ponto position. Não contem as posições que ele deve passar por. maxSearchDist é o valor máximo de passos que ele vai dar em direção à essa position e na via das dúvidas coloque o maior valor de distancia entre as duas posições.
     
  5. Gostei
    Elwyn recebeu reputação de tirso em (Resolvido)Tile que enxe stamina   
    eventsId = {} local function rechargeStamina(cid)     if not isPlayer(cid) then         eventsId[cid] = nil         return     end     doPlayerSetStamina(cid, getPlayerStamina(cid) + 1)     eventsId[cid] = addEvent(rechargeStamina, 60 * 1000, cid) end function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor)     if isPlayer(cid) then         eventsId[cid] = addEvent(rechargeStamina, 60 * 1000, cid)     end     return true end function onStepOut(cid, item, position, lastPosition, fromPosition, toPosition, actor)     if isPlayer(cid) then         stopEvent(eventsId[cid])         eventsId[cid] = nil     end     return true end  
    Agora ele só adicionará a cada minuto.
  6. Gostei
    Elwyn recebeu reputação de tirso em (Resolvido)Tile que enxe stamina   
    TFS 1.1:



     
    TFS 0.3.6 ~ 0.4:
    OTX 2:
     



    Salve como stamina_tile.lua em movements/script
     
    movements.xml:
        <movevent event="StepIn" itemid="407" script="stamina_tile.lua" />     <movevent event="StepOut" itemid="407" script="stamina_tile.lua" /> Mude itemid="407" para o itemid desejado, caso queira actionid é só mudar de itemid="id do item" para actionid="id da action".
  7. Gostei
    Elwyn recebeu reputação de Heyron em getCreaturePathTo   
    Para TFS 0.4/0.3.6 e OTX2
     
    Em luascript.h depois de:
    static int32_t luaGetCreatureName(lua_State* L); Adicionar:
    static int32_t luaGetCreaturePathTo(lua_State* L); Em luascript.cpp depois de:
    //getCreatureName(cid) lua_register(m_luaState, "getCreatureName", LuaInterface::luaGetCreatureName); Adicionar:
    //getCreaturePathTo(cid, pos, maxSearchDist) lua_register(m_luaState, "getCreaturePathTo", LuaInterface::luaGetCreaturePathTo); Depois de:
    int32_t LuaInterface::luaGetCreatureName(lua_State* L) { //getCreatureName(cid)     ScriptEnviroment* env = getEnv();     if(Creature* creature = env->getCreatureByUID(popNumber(L)))         lua_pushstring(L, creature->getName().c_str());     else     {         errorEx(getError(LUA_ERROR_CREATURE_NOT_FOUND));         lua_pushboolean(L, false);     }     return 1; } Adicionar:
    int32_t LuaInterface::luaGetCreaturePathTo(lua_State* L) { //getCreaturePathTo(cid, pos, maxSearchDist)     ScriptEnviroment* env = getEnv();     int32_t maxSearchDist = popNumber(L);     PositionEx position;     popPosition(L, position);     Creature* creature = env->getCreatureByUID(popNumber(L));     if (!creature) {         lua_pushnil(L);         return 1;     }     std::list<Direction> dirList;     lua_newtable(L);     if (g_game.getPathTo(creature, position, dirList, maxSearchDist)) {         std::list<Direction>::const_iterator it = dirList.begin();         for (int32_t index = 1; it != dirList.end(); ++it, ++index) {             lua_pushnumber(L, index);             lua_pushnumber(L, (*it));             pushTable(L);         }     } else {         lua_pushboolean(L, false);     }     return 1; } E sejam felizes!
     
    getCreaturePathTo(cid, position, maxSearchDist) retornará uma tabela com as direções que o jogador deve seguir para chegar no ponto position. Não contem as posições que ele deve passar por. maxSearchDist é o valor máximo de passos que ele vai dar em direção à essa position e na via das dúvidas coloque o maior valor de distancia entre as duas posições.
     
  8. Gostei
    Elwyn deu reputação a gpedro em [C] Checar acesso com criptografia simples   
    antes de dar minhas considerações esqueçam a palavra encriptar e codificado. é um termo horrível para tentar se expressar, a melhor definição é algoritmos para esconder o real conteúdo.
     
     
    nem sempre é possível realizar a operação reversa. se eu te dar um hash você consegue fazer o inverso sabendo o algoritmo que foi utilizado? Existe sim algoritmo de criptografia de mão única, eles são trabalhosas de fazer a operação inversa, mas existe sim. Também tem a TrapDoor que são aquelas que normalmente tem uma outra chave para de fator executar o processo reverso, quando possível. Leia sobre RSA e me diga o que ela é.
     
     
    Criptografia é um algoritmo para esconder o real texto através de cálculos macabros. O algoritmo que seu código utiliza, pelo que eu entendi, ele só pegar o char code e decrementa dois números do original.
    void DCript(char p[20]) { int i; for(i=0; p[i] != '\0'; i++) p[i] = p[i]-2; }  
     
    O que aconteceu com o MD5, SHA1 não foi simplesmente fazer o processo reverso e sim mapeá-la. Ai que é que está a sacada. O Crackstation, serviço que fornece online password hash crack, simplesmente foram criptografando praticamente de A-Z, 0-9, caracteres especiais e todas as combinações entre eles e indexaram o hash. dai quando tu joga lá no site, ele olha no se eles tem aquele hash. O MD5 por ser mais velho, já mapearam bem mais.
     
     
  9. Gostei
    Elwyn recebeu reputação de cliverson em Alguem me ajude nesse Script de Refinamento?!   
    Se o que você quer é 100% de chance de sucesso, e não apenas não perder o item quando falhar, muda na tabela 'controle' todas variáveis com nome 'chance' para 100
  10. Gostei
    Elwyn deu reputação a luanluciano93 em Scripter King   
    O Scripter King segue o mesmo propósito do Mapper King e Spriter King, espero que curtam e participem do tópico.
    REGRAS: • O Rei escolhe um tema para o duelo de Scripts. • Os membros que quiserem participar podem enviar o script pronto até 72 horas contadas depois da escolha do tema. • Os scripts devem ser enviados para: [email protected] (scripts fora do tema serão desclassificados e cada membro só pode enviar um script). • Os participantes podem votar, mas não no seu script. (caso isso aconteça o mesmo será desclassificado). • Se nenhum script for enviado em 72 horas, o rei deve escolher outro tema. • Após entregue a conquista de Scripter King ao vencedor, o mesmo deve escolher um novo tema em até 48 horas, caso contrário, a conquista é transferida ao segundo colocado. • Apenas o atual rei ficará com a conquista do Scripter King. • Após 15 votos, o membro que obter maior número de votos vira o rei. (caso houver empate, o próximo voto aos membros que empataram decidirá) • Uma vez votado, o membro não pode mudar o voto. • Cada script deve ser de autoria do participante. • Cada voto deve ser justificado.
    Histórico:
    30/05/2015 - Snowsz
    Então para começar, eu me declaro o Atual rei, o primeiro da linhagem, e o primeiro tema é ...
     
    Peguei um tópico da seção de script que não esta resolvido. Aqui vai ..
    "Em um conjunto de players, um deles puxa uma alavanca, e são enviados para uma sala sem saída onde aparecerá um monstro, o time tem um determinado tempo para mata-lo, se o tempo acabar, eles são enviados para uma saída e o monstro some. Se matarem são enviados para uma saída depois de 1 minuto. O script deve ser feito para a versão 0.4 do TFS. Apenas um time por vez. " Divirtam-se   
  11. Gostei
    Elwyn deu reputação a luanluciano93 em Reward Chest   
    @Elwyn, no sistema que eu fiz, uso ataque = ataque, block = block/5, suporte = suporte/5
  12. Gostei
    Elwyn recebeu reputação de Flavio S em (Resolvido)[PEDIDO] Script Anti MageBomb para tfs 1.0   
    PS: Não adianta por o script, registrar e depois dar reload. Depois de registrar tudo certinho feche e abra o OT novamente para testar.
  13. Gostei
    Elwyn recebeu reputação de luanluciano93 em (Resolvido)[PEDIDO] Script Anti MageBomb para tfs 1.0   
    PS: Não adianta por o script, registrar e depois dar reload. Depois de registrar tudo certinho feche e abra o OT novamente para testar.
  14. Gostei
    Elwyn recebeu reputação de Nogard em getCreaturePathTo   
    Para TFS 0.4/0.3.6 e OTX2
     
    Em luascript.h depois de:
    static int32_t luaGetCreatureName(lua_State* L); Adicionar:
    static int32_t luaGetCreaturePathTo(lua_State* L); Em luascript.cpp depois de:
    //getCreatureName(cid) lua_register(m_luaState, "getCreatureName", LuaInterface::luaGetCreatureName); Adicionar:
    //getCreaturePathTo(cid, pos, maxSearchDist) lua_register(m_luaState, "getCreaturePathTo", LuaInterface::luaGetCreaturePathTo); Depois de:
    int32_t LuaInterface::luaGetCreatureName(lua_State* L) { //getCreatureName(cid)     ScriptEnviroment* env = getEnv();     if(Creature* creature = env->getCreatureByUID(popNumber(L)))         lua_pushstring(L, creature->getName().c_str());     else     {         errorEx(getError(LUA_ERROR_CREATURE_NOT_FOUND));         lua_pushboolean(L, false);     }     return 1; } Adicionar:
    int32_t LuaInterface::luaGetCreaturePathTo(lua_State* L) { //getCreaturePathTo(cid, pos, maxSearchDist)     ScriptEnviroment* env = getEnv();     int32_t maxSearchDist = popNumber(L);     PositionEx position;     popPosition(L, position);     Creature* creature = env->getCreatureByUID(popNumber(L));     if (!creature) {         lua_pushnil(L);         return 1;     }     std::list<Direction> dirList;     lua_newtable(L);     if (g_game.getPathTo(creature, position, dirList, maxSearchDist)) {         std::list<Direction>::const_iterator it = dirList.begin();         for (int32_t index = 1; it != dirList.end(); ++it, ++index) {             lua_pushnumber(L, index);             lua_pushnumber(L, (*it));             pushTable(L);         }     } else {         lua_pushboolean(L, false);     }     return 1; } E sejam felizes!
     
    getCreaturePathTo(cid, position, maxSearchDist) retornará uma tabela com as direções que o jogador deve seguir para chegar no ponto position. Não contem as posições que ele deve passar por. maxSearchDist é o valor máximo de passos que ele vai dar em direção à essa position e na via das dúvidas coloque o maior valor de distancia entre as duas posições.
     
  15. Gostei
    Elwyn recebeu reputação de Flavio S em getCreaturePathTo   
    Para TFS 0.4/0.3.6 e OTX2
     
    Em luascript.h depois de:
    static int32_t luaGetCreatureName(lua_State* L); Adicionar:
    static int32_t luaGetCreaturePathTo(lua_State* L); Em luascript.cpp depois de:
    //getCreatureName(cid) lua_register(m_luaState, "getCreatureName", LuaInterface::luaGetCreatureName); Adicionar:
    //getCreaturePathTo(cid, pos, maxSearchDist) lua_register(m_luaState, "getCreaturePathTo", LuaInterface::luaGetCreaturePathTo); Depois de:
    int32_t LuaInterface::luaGetCreatureName(lua_State* L) { //getCreatureName(cid)     ScriptEnviroment* env = getEnv();     if(Creature* creature = env->getCreatureByUID(popNumber(L)))         lua_pushstring(L, creature->getName().c_str());     else     {         errorEx(getError(LUA_ERROR_CREATURE_NOT_FOUND));         lua_pushboolean(L, false);     }     return 1; } Adicionar:
    int32_t LuaInterface::luaGetCreaturePathTo(lua_State* L) { //getCreaturePathTo(cid, pos, maxSearchDist)     ScriptEnviroment* env = getEnv();     int32_t maxSearchDist = popNumber(L);     PositionEx position;     popPosition(L, position);     Creature* creature = env->getCreatureByUID(popNumber(L));     if (!creature) {         lua_pushnil(L);         return 1;     }     std::list<Direction> dirList;     lua_newtable(L);     if (g_game.getPathTo(creature, position, dirList, maxSearchDist)) {         std::list<Direction>::const_iterator it = dirList.begin();         for (int32_t index = 1; it != dirList.end(); ++it, ++index) {             lua_pushnumber(L, index);             lua_pushnumber(L, (*it));             pushTable(L);         }     } else {         lua_pushboolean(L, false);     }     return 1; } E sejam felizes!
     
    getCreaturePathTo(cid, position, maxSearchDist) retornará uma tabela com as direções que o jogador deve seguir para chegar no ponto position. Não contem as posições que ele deve passar por. maxSearchDist é o valor máximo de passos que ele vai dar em direção à essa position e na via das dúvidas coloque o maior valor de distancia entre as duas posições.
     
  16. Gostei
    Elwyn recebeu reputação de Milbradt em getCreaturePathTo   
    Para TFS 0.4/0.3.6 e OTX2
     
    Em luascript.h depois de:
    static int32_t luaGetCreatureName(lua_State* L); Adicionar:
    static int32_t luaGetCreaturePathTo(lua_State* L); Em luascript.cpp depois de:
    //getCreatureName(cid) lua_register(m_luaState, "getCreatureName", LuaInterface::luaGetCreatureName); Adicionar:
    //getCreaturePathTo(cid, pos, maxSearchDist) lua_register(m_luaState, "getCreaturePathTo", LuaInterface::luaGetCreaturePathTo); Depois de:
    int32_t LuaInterface::luaGetCreatureName(lua_State* L) { //getCreatureName(cid)     ScriptEnviroment* env = getEnv();     if(Creature* creature = env->getCreatureByUID(popNumber(L)))         lua_pushstring(L, creature->getName().c_str());     else     {         errorEx(getError(LUA_ERROR_CREATURE_NOT_FOUND));         lua_pushboolean(L, false);     }     return 1; } Adicionar:
    int32_t LuaInterface::luaGetCreaturePathTo(lua_State* L) { //getCreaturePathTo(cid, pos, maxSearchDist)     ScriptEnviroment* env = getEnv();     int32_t maxSearchDist = popNumber(L);     PositionEx position;     popPosition(L, position);     Creature* creature = env->getCreatureByUID(popNumber(L));     if (!creature) {         lua_pushnil(L);         return 1;     }     std::list<Direction> dirList;     lua_newtable(L);     if (g_game.getPathTo(creature, position, dirList, maxSearchDist)) {         std::list<Direction>::const_iterator it = dirList.begin();         for (int32_t index = 1; it != dirList.end(); ++it, ++index) {             lua_pushnumber(L, index);             lua_pushnumber(L, (*it));             pushTable(L);         }     } else {         lua_pushboolean(L, false);     }     return 1; } E sejam felizes!
     
    getCreaturePathTo(cid, position, maxSearchDist) retornará uma tabela com as direções que o jogador deve seguir para chegar no ponto position. Não contem as posições que ele deve passar por. maxSearchDist é o valor máximo de passos que ele vai dar em direção à essa position e na via das dúvidas coloque o maior valor de distancia entre as duas posições.
     
  17. Gostei
    Elwyn recebeu reputação de nociam em getCreaturePathTo   
    Para TFS 0.4/0.3.6 e OTX2
     
    Em luascript.h depois de:
    static int32_t luaGetCreatureName(lua_State* L); Adicionar:
    static int32_t luaGetCreaturePathTo(lua_State* L); Em luascript.cpp depois de:
    //getCreatureName(cid) lua_register(m_luaState, "getCreatureName", LuaInterface::luaGetCreatureName); Adicionar:
    //getCreaturePathTo(cid, pos, maxSearchDist) lua_register(m_luaState, "getCreaturePathTo", LuaInterface::luaGetCreaturePathTo); Depois de:
    int32_t LuaInterface::luaGetCreatureName(lua_State* L) { //getCreatureName(cid)     ScriptEnviroment* env = getEnv();     if(Creature* creature = env->getCreatureByUID(popNumber(L)))         lua_pushstring(L, creature->getName().c_str());     else     {         errorEx(getError(LUA_ERROR_CREATURE_NOT_FOUND));         lua_pushboolean(L, false);     }     return 1; } Adicionar:
    int32_t LuaInterface::luaGetCreaturePathTo(lua_State* L) { //getCreaturePathTo(cid, pos, maxSearchDist)     ScriptEnviroment* env = getEnv();     int32_t maxSearchDist = popNumber(L);     PositionEx position;     popPosition(L, position);     Creature* creature = env->getCreatureByUID(popNumber(L));     if (!creature) {         lua_pushnil(L);         return 1;     }     std::list<Direction> dirList;     lua_newtable(L);     if (g_game.getPathTo(creature, position, dirList, maxSearchDist)) {         std::list<Direction>::const_iterator it = dirList.begin();         for (int32_t index = 1; it != dirList.end(); ++it, ++index) {             lua_pushnumber(L, index);             lua_pushnumber(L, (*it));             pushTable(L);         }     } else {         lua_pushboolean(L, false);     }     return 1; } E sejam felizes!
     
    getCreaturePathTo(cid, position, maxSearchDist) retornará uma tabela com as direções que o jogador deve seguir para chegar no ponto position. Não contem as posições que ele deve passar por. maxSearchDist é o valor máximo de passos que ele vai dar em direção à essa position e na via das dúvidas coloque o maior valor de distancia entre as duas posições.
     
  18. Gostei
    Elwyn recebeu reputação de nociam em Tibia está zerado + preview [GPS SYSTEM]   
    Assim eu fico encabulado
  19. Gostei
    Elwyn recebeu reputação de eskylo em getCreaturePathTo   
    Para TFS 0.4/0.3.6 e OTX2
     
    Em luascript.h depois de:
    static int32_t luaGetCreatureName(lua_State* L); Adicionar:
    static int32_t luaGetCreaturePathTo(lua_State* L); Em luascript.cpp depois de:
    //getCreatureName(cid) lua_register(m_luaState, "getCreatureName", LuaInterface::luaGetCreatureName); Adicionar:
    //getCreaturePathTo(cid, pos, maxSearchDist) lua_register(m_luaState, "getCreaturePathTo", LuaInterface::luaGetCreaturePathTo); Depois de:
    int32_t LuaInterface::luaGetCreatureName(lua_State* L) { //getCreatureName(cid)     ScriptEnviroment* env = getEnv();     if(Creature* creature = env->getCreatureByUID(popNumber(L)))         lua_pushstring(L, creature->getName().c_str());     else     {         errorEx(getError(LUA_ERROR_CREATURE_NOT_FOUND));         lua_pushboolean(L, false);     }     return 1; } Adicionar:
    int32_t LuaInterface::luaGetCreaturePathTo(lua_State* L) { //getCreaturePathTo(cid, pos, maxSearchDist)     ScriptEnviroment* env = getEnv();     int32_t maxSearchDist = popNumber(L);     PositionEx position;     popPosition(L, position);     Creature* creature = env->getCreatureByUID(popNumber(L));     if (!creature) {         lua_pushnil(L);         return 1;     }     std::list<Direction> dirList;     lua_newtable(L);     if (g_game.getPathTo(creature, position, dirList, maxSearchDist)) {         std::list<Direction>::const_iterator it = dirList.begin();         for (int32_t index = 1; it != dirList.end(); ++it, ++index) {             lua_pushnumber(L, index);             lua_pushnumber(L, (*it));             pushTable(L);         }     } else {         lua_pushboolean(L, false);     }     return 1; } E sejam felizes!
     
    getCreaturePathTo(cid, position, maxSearchDist) retornará uma tabela com as direções que o jogador deve seguir para chegar no ponto position. Não contem as posições que ele deve passar por. maxSearchDist é o valor máximo de passos que ele vai dar em direção à essa position e na via das dúvidas coloque o maior valor de distancia entre as duas posições.
     
  20. Gostei
    Elwyn deu reputação a luanluciano93 em [Java] Programação Orientada a Objetos   
    Seguinte pessoal, estou estudando POO em Java e decidi compartilhar com vocês!     
    1 - Criando uma classe:   Primeiramente definimos qual será a classe que iremos criar, após escolher pense nas possíveis características/atributos e ações/métodos que tal objeto pode ter. Por exemplo, minha classe será uma Conta de Banco ...  Possíveis características/atributos do objeto: • número da conta • dono • saldo Obs: lembrando que quando definimos um atributo precisamos colocar antes o tipo de dados que ele representa, por exemplo: int (de inteiro), double (de um ponto flutuante), String (de conjunto de palavras), boolean (de valor lógico), etc .. 
    Possíveis Ações do objeto/métodos: • sacar um valor • depositar um valor • mostrar o dono da conta • mostrar o saldo atual Agora podemos começar criar nossa classe Conta:  class Conta { // Atributos int numero; String dono; double saldo; // Métodos usuario() saldo() sacar() depositar() } Pronto, inicialmente criamos nossa nova classe Conta.   2 - Definir Métodos Getters e Setters:   Normalmente (não sempre) o método setter irá começar com void e o método getter irá começar com o tipo de dados que vai retornar.
    Os métodos podem receber parâmetro(s) de entrada, definido pelo tipo de dados no começo.  // Getters String usuario() { return dono; } Double saldo() { return saldo; } // Setters void sacar(double valor) { if (saldo >= valor) { saldo = saldo - valor; //ou this saldo -= valor; } else { System.out.println("Seu saldo é insuficiente."); } } void depositar(double valor) { saldo = saldo + valor; //ou this saldo += valor } Obs: Você pode, ou não usar this.atributo para referenciar um atributo da classe, porem ele é mais utilizado quando quando o nome do atributo é o mesmo nome de algum parâmetro de entrada do método. Por exemplo:  void depositar(double saldo) { this.saldo = this.saldo + saldo; //ou this saldo += saldo } 3 - Definindo Encapsulamento da Classe:   Podemos proteger nossa classe, atributos e métodos com o encapsulamento, definindo seu modificador de acesso. Existem 4 tipos de modificadores de acesso: • public: Deixa o atributo, método ou classe acessível por qualquer um em todo o projeto. • private: Deixa o atributo ou método acessível apenas dentro da classe à qual pertence. • protected: Deixa o atributo ou método acessível dentro de todo o pacote e também nas subclasses da classe ao qual pertence, podendo ser estas subclasses de outros pacotes do projeto. • default (sem modificador): todas as classes do mesmo pacote tem acesso ao atributo, construtor, método ou classe. - Uma regra básica de proteção é definir a classe como public, seus atributos como private e determinados métodos como public e outros como private (dependendo do grau de segurança de determinado método).   Ficando assim:  public class Conta { // Atributos private int numero; private String dono; private double saldo; // Métodos Getters public String usuario() { return dono; } public Double saldo() { return saldo; } // Métodos Setters public void sacar(double valor) { if (saldo >= valor) { saldo -= valor; } else { System.out.println("Seu saldo é insuficiente."); } } public void depositar(double valor) { saldo += valor; } }   4 - Método construtor:   O método construtor é o responsável por criar um objeto da classe, podendo criar-los com parâmetros iniciais ou não, Caso não tenha parâmetros não precisa declara-lo no código, pois ele funcionará como default (criando um objeto sem parâmetros de entrada). Cada construtor deve ser escrito de acordo com a necessidade de cada classe.
    Crie seu método construtor com o mesmo nome da classe (o método construtor não precisa da palavra reservada void, apenas do encapsulamento).   Por exemplo:  // Método construtor sem parâmetros (ele é um padrão, não é necessário cria-lo) public Conta() {} // Método construtor com parâmetros public Conta(int numero, String dono, double saldo) { this.numero = numero; this.dono = dono; this.saldo = saldo; }   5 - Instanciando um objeto:   Cria o arquivo principal de seu projeto (normalmente Class Main ou Class Principal), e defina o método public static void main(String[] args) nela, e dentro dele iremos instanciar o objeto que você criou anteriormente.   Defina assim: Classe_Nome Objeto_Especifico = new Classe_Nome(parametros)   No exemplo da classe Conta, ficaria assim: Conta conta1 = new Conta(1, "Luan", 1000.0); // ou seja, defini os parametro numero = 1, dono = "Luan" e saldo = 1000.0 Agora para usar os métodos da classe ficaria assim: conta1:depositar(100.0) // do saldo de 1000.0 irá adicionar 100.0 ficando 1100.0 conta1:usuario() // irá retornar o dono da conta, no caso: "Luan" conta1:sacar(1099.0) // do saldo de 1100.0 irá retirar 1099.0 ficando 1.0 conta1:saldo // irá retornar o saldo atual da conta, no caso: 1.0
    Irá fica assim a classe principal:  public class AulaJava { public static void main(String[] args) { Conta conta1 = new Conta(1, "Luan", 1000.0); // ou seja, defini os parametro numero = 1, dono = "Luan" e saldo = 1000.0 conta1:depositar(100.0) // do saldo de 1000.0 irá adicionar 100.0 ficando 1100.0 conta1:usuario() // irá retonar o dono da conta, no caso: "Luan" conta1:sacar(1099.0) // do saldo de 1100.0 irá retirar 1099.0 ficando 1.0 conta1:saldo // irá retonar o saldo atual da conta, no caso: 1.0 } } 6 - Herança (também conhecida como especialização ou generalização):
     
    • A Herança é uma ótimo ferramenta de reuso para POO. • Na herança temos a classe pai (super classe, classe generalizada), e as classes filhas (subclasses, classes especializadas). • As classes filhas herdam os atributos e métodos da classe pai (quando o modificador de acesso é protected, public ou default), exceto as privadas.   É necessário indicar a classe qual ele herdará, definindo no cabeçalho da classe: class Subsclasse_Name extendes Classe_Super {}   Outra mudança é no método construtor da classe filha, que além de definido os atributos especificos, pode usar um método particular para definir os atributos da classe Pai: SUPER.   Por exemplo, imaginemos que os parametros 1 e 2 definem atributos já existentes na classe Pai, e o parametro 3 defini um atributo da class filha, ficará assim:  Contrutor (parametro1, parametro2, parametro3) { super(parametro1, parametro2); this.atributo = parametro3; }
    Como estou estudando, quero aprender CORRETAMENTE, portanto, quem ver algo errado, por favor diga e me ajude, criticas construtivas são sempre bem-vindas!
  21. Gostei
    Elwyn recebeu reputação de MaTTch em getCreaturePathTo   
    Para TFS 0.4/0.3.6 e OTX2
     
    Em luascript.h depois de:
    static int32_t luaGetCreatureName(lua_State* L); Adicionar:
    static int32_t luaGetCreaturePathTo(lua_State* L); Em luascript.cpp depois de:
    //getCreatureName(cid) lua_register(m_luaState, "getCreatureName", LuaInterface::luaGetCreatureName); Adicionar:
    //getCreaturePathTo(cid, pos, maxSearchDist) lua_register(m_luaState, "getCreaturePathTo", LuaInterface::luaGetCreaturePathTo); Depois de:
    int32_t LuaInterface::luaGetCreatureName(lua_State* L) { //getCreatureName(cid)     ScriptEnviroment* env = getEnv();     if(Creature* creature = env->getCreatureByUID(popNumber(L)))         lua_pushstring(L, creature->getName().c_str());     else     {         errorEx(getError(LUA_ERROR_CREATURE_NOT_FOUND));         lua_pushboolean(L, false);     }     return 1; } Adicionar:
    int32_t LuaInterface::luaGetCreaturePathTo(lua_State* L) { //getCreaturePathTo(cid, pos, maxSearchDist)     ScriptEnviroment* env = getEnv();     int32_t maxSearchDist = popNumber(L);     PositionEx position;     popPosition(L, position);     Creature* creature = env->getCreatureByUID(popNumber(L));     if (!creature) {         lua_pushnil(L);         return 1;     }     std::list<Direction> dirList;     lua_newtable(L);     if (g_game.getPathTo(creature, position, dirList, maxSearchDist)) {         std::list<Direction>::const_iterator it = dirList.begin();         for (int32_t index = 1; it != dirList.end(); ++it, ++index) {             lua_pushnumber(L, index);             lua_pushnumber(L, (*it));             pushTable(L);         }     } else {         lua_pushboolean(L, false);     }     return 1; } E sejam felizes!
     
    getCreaturePathTo(cid, position, maxSearchDist) retornará uma tabela com as direções que o jogador deve seguir para chegar no ponto position. Não contem as posições que ele deve passar por. maxSearchDist é o valor máximo de passos que ele vai dar em direção à essa position e na via das dúvidas coloque o maior valor de distancia entre as duas posições.
     
  22. Gostei
    Elwyn deu reputação a Cat em Mudança de Nick   
    Feito.
  23. Gostei
    Elwyn recebeu reputação de leo300 em Chaotic Server   
    Índice
    Apresentação do projeto Como funcionará o servidor? Por que jogar nosso server? (Sistemas exclusivos) Mapa Rates do ChaoticServer Objetivos Agradecimentos
           
     
       
     

      
    O projeto Chaotic Open Tibia foi desenvolvido por uma equipe composta de três administradores, sendo cada um destes responsáveis por duas funções, uma exclusiva e a administração geral. Os cargos executados em nosso server são: Programador, Mapper e Webmaster.
       
    Nossa equipe foi formada no ano de 2011, tivemos um servidor online por um pequeno período e decidimos desistir. Neste ano de 2015, resolvemos voltar com um trabalho mais elaborado e com uma qualidade excepcional, com o escopo de oferecer um game tradicional, porém inovador, além de satisfazer todas as necessidades do nosso futuro público, ao qual dedicaremos este post.
       
      
     
       
       
    O Chaotic Server será um servidor de tibia capacitado para atender todas as necessidades de nossos players, e terá o objetivo de resgatar a essência do jogo, mantendo-o tradicional, mas também, com inúmeras novidades, como os sistemas exclusivos que trataremos no próximo tópico.
       
    Além disso, depois de alguns levantamentos, decidimos utilizar a versão 10.41 e extrair dela as infinitas possibilidades de diversão, o que cumprirá com os objetivos do tibia: manter a boa jogabilidade e experiência in-game. Portanto, para que todos nossos deveres sejam realizados, teremos suporte ao player tanto dentro do jogo quanto por e-mail (mais informações no futuro site).
       
    O servidor com o website será hosteado por uma empresa de alta qualidade e responsabilidade, a fim de suprir o que for necessário para atingirmos a excelência e o reconhecimento do nosso público, garantindo um game sem lag e 24 horas.
       
      
       
     
      
       
    Como abordado anteriormente, nossa versão será 10.41, sendo considerada nova e estável. Diante disso, e após muitas reuniões, chegamos a ideia de que nosso projeto seria diferenciado, tanto pela qualidade quanto pelas inovações. Portanto, a estrutura será formada por um mapa global com sistemas exclusivos, como:
      
    Cidade VIP (Caves e trainers exclusivos) Áreas VIP (2 Ilhas + Caves) Rare Drops (Há itens que darão pontos no webshop se forem dropados, para que players free tenham a chance de se beneficiarem das vantagens de donate. Haverá também um item especial que poderá ser dropado: Exp Potion, o qual tem um poder maior do que o comprado na loja) Crítical Chance (VIP's possuem 15% de chance de crítico em monstros e 5% em players. Free's possuem 10% de crítico em monstros) Sistema de teleport (Item adquirido por doação através do webshop. Funcionalidade: teleportar jogadores free account ou vip account para o templo necessário e de qualquer lugar do mapa, precisando estar apenas fora de fight) Bônus de Exp (Players VIP's terão 10% a mais de experiência nos finais de semana)  
    Com todas essas novidades, acreditamos que podemos atender as expectativas dos players em encontrar um servidor de Tibia diferente do padrão, e oferecer à todos uma experiência única e positiva. Além disso, estaremos abertos para sugestões de sistemas, os quais serão analisados e, se forem aprovados, recompensaremos os idealizadores!
     
     
     
       
       
    Neste tópico, citaremos as informações que constituem o mapa, dentre elas:
    Mapa global Cidade VIP (Com trainers)  Ilhas e áreas VIP Teleport para os trainers (free account)  Segue abaixo algumas imagens do mapa:
       
       

       
       

       
       

       
       

       
       

       
       

       
       

       
       

       
       

       
       

       
       

       
       

       
       
       
     
       
     

     
    O projeto Chaotic Server foi criado com um propósito de ser um servidor médio no quesito rates, portanto estas são definidas da seguinte forma:
    Exp: Stages (Início: 20x - Término: 7x)   Skill: 10x Magic: 6x Loot: 3x
         

       
    Retomando e reafirmando alguns tópicos desse post, a equipe do projeto Chaotic Open Tibia Server deseja que nossos futuros players encontrem diversão em nosso servidor, e que consigamos responder todas as expectativas do nosso querido público. Ademais, cabe ressaltar que o nosso principal objetivo nesse trabalho é o reconhecimento dos jogadores enquanto um server sério e dedicado.
       
    No mais, queremos agradecer a paciência de vocês que leram e analisaram essa longa postagem, e, também, convidá-los à conhecer nosso servidor de tibia.
       
    Contamos com seu apoio e presença na inauguração! (Postaremos a data em breve)
       
       
       
     

     
       
       
       
       
    Créditos:
     
    Equipe que mantém o ORTS Slec por partes do mapa custom Equipe Chaotic Server
    Ajude o Chaotic Server a lançar o mais rápido possível, responda no tópico para mostrar apoio ou doe qualquer quantia.
     


     
    Fiquem de olho também no nosso Twitter! @ChaoticServer
  24. Gostei
    Elwyn recebeu reputação de xWhiteWolf em Chaotic Server   
    Índice
    Apresentação do projeto Como funcionará o servidor? Por que jogar nosso server? (Sistemas exclusivos) Mapa Rates do ChaoticServer Objetivos Agradecimentos
           
     
       
     

      
    O projeto Chaotic Open Tibia foi desenvolvido por uma equipe composta de três administradores, sendo cada um destes responsáveis por duas funções, uma exclusiva e a administração geral. Os cargos executados em nosso server são: Programador, Mapper e Webmaster.
       
    Nossa equipe foi formada no ano de 2011, tivemos um servidor online por um pequeno período e decidimos desistir. Neste ano de 2015, resolvemos voltar com um trabalho mais elaborado e com uma qualidade excepcional, com o escopo de oferecer um game tradicional, porém inovador, além de satisfazer todas as necessidades do nosso futuro público, ao qual dedicaremos este post.
       
      
     
       
       
    O Chaotic Server será um servidor de tibia capacitado para atender todas as necessidades de nossos players, e terá o objetivo de resgatar a essência do jogo, mantendo-o tradicional, mas também, com inúmeras novidades, como os sistemas exclusivos que trataremos no próximo tópico.
       
    Além disso, depois de alguns levantamentos, decidimos utilizar a versão 10.41 e extrair dela as infinitas possibilidades de diversão, o que cumprirá com os objetivos do tibia: manter a boa jogabilidade e experiência in-game. Portanto, para que todos nossos deveres sejam realizados, teremos suporte ao player tanto dentro do jogo quanto por e-mail (mais informações no futuro site).
       
    O servidor com o website será hosteado por uma empresa de alta qualidade e responsabilidade, a fim de suprir o que for necessário para atingirmos a excelência e o reconhecimento do nosso público, garantindo um game sem lag e 24 horas.
       
      
       
     
      
       
    Como abordado anteriormente, nossa versão será 10.41, sendo considerada nova e estável. Diante disso, e após muitas reuniões, chegamos a ideia de que nosso projeto seria diferenciado, tanto pela qualidade quanto pelas inovações. Portanto, a estrutura será formada por um mapa global com sistemas exclusivos, como:
      
    Cidade VIP (Caves e trainers exclusivos) Áreas VIP (2 Ilhas + Caves) Rare Drops (Há itens que darão pontos no webshop se forem dropados, para que players free tenham a chance de se beneficiarem das vantagens de donate. Haverá também um item especial que poderá ser dropado: Exp Potion, o qual tem um poder maior do que o comprado na loja) Crítical Chance (VIP's possuem 15% de chance de crítico em monstros e 5% em players. Free's possuem 10% de crítico em monstros) Sistema de teleport (Item adquirido por doação através do webshop. Funcionalidade: teleportar jogadores free account ou vip account para o templo necessário e de qualquer lugar do mapa, precisando estar apenas fora de fight) Bônus de Exp (Players VIP's terão 10% a mais de experiência nos finais de semana)  
    Com todas essas novidades, acreditamos que podemos atender as expectativas dos players em encontrar um servidor de Tibia diferente do padrão, e oferecer à todos uma experiência única e positiva. Além disso, estaremos abertos para sugestões de sistemas, os quais serão analisados e, se forem aprovados, recompensaremos os idealizadores!
     
     
     
       
       
    Neste tópico, citaremos as informações que constituem o mapa, dentre elas:
    Mapa global Cidade VIP (Com trainers)  Ilhas e áreas VIP Teleport para os trainers (free account)  Segue abaixo algumas imagens do mapa:
       
       

       
       

       
       

       
       

       
       

       
       

       
       

       
       

       
       

       
       

       
       

       
       

       
       
       
     
       
     

     
    O projeto Chaotic Server foi criado com um propósito de ser um servidor médio no quesito rates, portanto estas são definidas da seguinte forma:
    Exp: Stages (Início: 20x - Término: 7x)   Skill: 10x Magic: 6x Loot: 3x
         

       
    Retomando e reafirmando alguns tópicos desse post, a equipe do projeto Chaotic Open Tibia Server deseja que nossos futuros players encontrem diversão em nosso servidor, e que consigamos responder todas as expectativas do nosso querido público. Ademais, cabe ressaltar que o nosso principal objetivo nesse trabalho é o reconhecimento dos jogadores enquanto um server sério e dedicado.
       
    No mais, queremos agradecer a paciência de vocês que leram e analisaram essa longa postagem, e, também, convidá-los à conhecer nosso servidor de tibia.
       
    Contamos com seu apoio e presença na inauguração! (Postaremos a data em breve)
       
       
       
     

     
       
       
       
       
    Créditos:
     
    Equipe que mantém o ORTS Slec por partes do mapa custom Equipe Chaotic Server
    Ajude o Chaotic Server a lançar o mais rápido possível, responda no tópico para mostrar apoio ou doe qualquer quantia.
     


     
    Fiquem de olho também no nosso Twitter! @ChaoticServer
  25. Gostei
    Elwyn recebeu reputação de luanluciano93 em Chaotic Server   
    Índice
    Apresentação do projeto Como funcionará o servidor? Por que jogar nosso server? (Sistemas exclusivos) Mapa Rates do ChaoticServer Objetivos Agradecimentos
           
     
       
     

      
    O projeto Chaotic Open Tibia foi desenvolvido por uma equipe composta de três administradores, sendo cada um destes responsáveis por duas funções, uma exclusiva e a administração geral. Os cargos executados em nosso server são: Programador, Mapper e Webmaster.
       
    Nossa equipe foi formada no ano de 2011, tivemos um servidor online por um pequeno período e decidimos desistir. Neste ano de 2015, resolvemos voltar com um trabalho mais elaborado e com uma qualidade excepcional, com o escopo de oferecer um game tradicional, porém inovador, além de satisfazer todas as necessidades do nosso futuro público, ao qual dedicaremos este post.
       
      
     
       
       
    O Chaotic Server será um servidor de tibia capacitado para atender todas as necessidades de nossos players, e terá o objetivo de resgatar a essência do jogo, mantendo-o tradicional, mas também, com inúmeras novidades, como os sistemas exclusivos que trataremos no próximo tópico.
       
    Além disso, depois de alguns levantamentos, decidimos utilizar a versão 10.41 e extrair dela as infinitas possibilidades de diversão, o que cumprirá com os objetivos do tibia: manter a boa jogabilidade e experiência in-game. Portanto, para que todos nossos deveres sejam realizados, teremos suporte ao player tanto dentro do jogo quanto por e-mail (mais informações no futuro site).
       
    O servidor com o website será hosteado por uma empresa de alta qualidade e responsabilidade, a fim de suprir o que for necessário para atingirmos a excelência e o reconhecimento do nosso público, garantindo um game sem lag e 24 horas.
       
      
       
     
      
       
    Como abordado anteriormente, nossa versão será 10.41, sendo considerada nova e estável. Diante disso, e após muitas reuniões, chegamos a ideia de que nosso projeto seria diferenciado, tanto pela qualidade quanto pelas inovações. Portanto, a estrutura será formada por um mapa global com sistemas exclusivos, como:
      
    Cidade VIP (Caves e trainers exclusivos) Áreas VIP (2 Ilhas + Caves) Rare Drops (Há itens que darão pontos no webshop se forem dropados, para que players free tenham a chance de se beneficiarem das vantagens de donate. Haverá também um item especial que poderá ser dropado: Exp Potion, o qual tem um poder maior do que o comprado na loja) Crítical Chance (VIP's possuem 15% de chance de crítico em monstros e 5% em players. Free's possuem 10% de crítico em monstros) Sistema de teleport (Item adquirido por doação através do webshop. Funcionalidade: teleportar jogadores free account ou vip account para o templo necessário e de qualquer lugar do mapa, precisando estar apenas fora de fight) Bônus de Exp (Players VIP's terão 10% a mais de experiência nos finais de semana)  
    Com todas essas novidades, acreditamos que podemos atender as expectativas dos players em encontrar um servidor de Tibia diferente do padrão, e oferecer à todos uma experiência única e positiva. Além disso, estaremos abertos para sugestões de sistemas, os quais serão analisados e, se forem aprovados, recompensaremos os idealizadores!
     
     
     
       
       
    Neste tópico, citaremos as informações que constituem o mapa, dentre elas:
    Mapa global Cidade VIP (Com trainers)  Ilhas e áreas VIP Teleport para os trainers (free account)  Segue abaixo algumas imagens do mapa:
       
       

       
       

       
       

       
       

       
       

       
       

       
       

       
       

       
       

       
       

       
       

       
       

       
       
       
     
       
     

     
    O projeto Chaotic Server foi criado com um propósito de ser um servidor médio no quesito rates, portanto estas são definidas da seguinte forma:
    Exp: Stages (Início: 20x - Término: 7x)   Skill: 10x Magic: 6x Loot: 3x
         

       
    Retomando e reafirmando alguns tópicos desse post, a equipe do projeto Chaotic Open Tibia Server deseja que nossos futuros players encontrem diversão em nosso servidor, e que consigamos responder todas as expectativas do nosso querido público. Ademais, cabe ressaltar que o nosso principal objetivo nesse trabalho é o reconhecimento dos jogadores enquanto um server sério e dedicado.
       
    No mais, queremos agradecer a paciência de vocês que leram e analisaram essa longa postagem, e, também, convidá-los à conhecer nosso servidor de tibia.
       
    Contamos com seu apoio e presença na inauguração! (Postaremos a data em breve)
       
       
       
     

     
       
       
       
       
    Créditos:
     
    Equipe que mantém o ORTS Slec por partes do mapa custom Equipe Chaotic Server
    Ajude o Chaotic Server a lançar o mais rápido possível, responda no tópico para mostrar apoio ou doe qualquer quantia.
     


     
    Fiquem de olho também no nosso Twitter! @ChaoticServer

Informação Importante

Confirmação de Termo