Histórico de Curtidas
-
Elwyn recebeu reputação de Orientalz em (Resolvido)Tile que enxe staminaEssas 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.
-
Elwyn recebeu reputação de Orientalz em (Resolvido)Tile que enxe staminaeventsId = {} 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.
-
Elwyn recebeu reputação de DaPYuumii em (Resolvido)Tile que enxe staminaeventsId = {} 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.
-
Elwyn recebeu reputação de GOD Vitor em getCreaturePathToPara 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.
-
Elwyn recebeu reputação de tirso em (Resolvido)Tile que enxe staminaeventsId = {} 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.
-
Elwyn recebeu reputação de tirso em (Resolvido)Tile que enxe staminaTFS 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".
-
Elwyn recebeu reputação de Heyron em getCreaturePathToPara 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.
-
Elwyn deu reputação a gpedro em [C] Checar acesso com criptografia simplesantes 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.
-
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
-
Elwyn deu reputação a luanluciano93 em Scripter KingO 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
-
Elwyn deu reputação a luanluciano93 em Reward Chest@Elwyn, no sistema que eu fiz, uso ataque = ataque, block = block/5, suporte = suporte/5
-
Elwyn recebeu reputação de Flavio S em (Resolvido)[PEDIDO] Script Anti MageBomb para tfs 1.0PS: Não adianta por o script, registrar e depois dar reload. Depois de registrar tudo certinho feche e abra o OT novamente para testar.
-
Elwyn recebeu reputação de luanluciano93 em (Resolvido)[PEDIDO] Script Anti MageBomb para tfs 1.0PS: Não adianta por o script, registrar e depois dar reload. Depois de registrar tudo certinho feche e abra o OT novamente para testar.
-
Elwyn recebeu reputação de Nogard em getCreaturePathToPara 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.
-
Elwyn recebeu reputação de Flavio S em getCreaturePathToPara 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.
-
Elwyn recebeu reputação de Milbradt em getCreaturePathToPara 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.
-
Elwyn recebeu reputação de nociam em getCreaturePathToPara 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.
-
Elwyn recebeu reputação de nociam em Tibia está zerado + preview [GPS SYSTEM]Assim eu fico encabulado
-
Elwyn recebeu reputação de eskylo em getCreaturePathToPara 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.
-
Elwyn deu reputação a luanluciano93 em [Java] Programação Orientada a ObjetosSeguinte 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!
-
Elwyn recebeu reputação de MaTTch em getCreaturePathToPara 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.
-
Elwyn deu reputação a Cat em Mudança de NickFeito.
-
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
-
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
-
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