GODSPEED Posted August 20, 2017 at 09:07 PM Share Posted August 20, 2017 at 09:07 PM Boas pessoal, hoje vou trazer um novo tópico sobre como mexer em Source, para quem não viu está aqui o tópico #0 - link : https://tlthings.net/index.php?/topic/1013-como-começar-a-mexer-em-source-0/&tab=comments#comment-3970 a aula passada tinha o objetivo de fornecer algumas bases em c++, como por exemplo uma estrutura de um programa em c++, o que são variaveis, condições if etc coisas muito simples. Neste tópico vou resolver o exercicio que foi proposto na aula anterior que foi : exercicio basico : adicionem nível minimo para negociar então vamos lá, Primeiramente abram o arquivo exchange.cpp , este arquivo é cerebro da negociação na Server side Procuramos a função : bool CHARACTER::ExchangeStart(LPCHARACTER victim) na aula anterior foi deixado um item onde falava sobre funções e sobre funções com múltiplos parâmetros, aconselho a darem uma olhada para ficaram a saber melhor o que são funções com parâmetros. Se repararmos a função está a usar um parâmetro que é LPCHARACTER victim, LPCHARACTER podemos considerar como um objecto da class CHARACTER, que foi definido no ficheiro typedef.h nesta função não é 100% obrigatório o uso do obj victim. todas as funções acabam quando o função retorna algo assim : return returnvalue; o returnvalue depende do tipo da função se a função for bool como esse caso o returnvalue será true or false, se for void a função não retorna nada, se for int retorna um valor inteiro por assim adiante. neste caso a função bool CHARACTER::ExchangeStart(LPCHARACTER victim) irá retornar ou true ou false então a abaixo de : bool CHARACTER::ExchangeStart(LPCHARACTER victim), iremos abrir uma condição se, que irá verificar se o level dos chares é inferior a nivel desejado, se for a função acaba, pois ira retornar falso, basicamente a logica é essa, para verificar o level do char não iremos usar nenhum objecto, mas para ver o level da vitima iremos usar um objecto, e a função que verifica o level é GetLevel() então vamos por as mãos na massa bool CHARACTER::ExchangeStart(LPCHARACTER victim) { if (this == victim) // ÀÚ±â ÀڽŰú´Â ±³È¯À» ¸øÇÑ´Ù. return false; if (IsObserverMode()) { ChatPacket(CHAT_TYPE_INFO, LC_TEXT("°üÀü »óÅ¿¡¼´Â ±³È¯À» ÇÒ ¼ö ¾ø½À´Ï´Ù.")); return false; } const int nivel_minimo_negociar = 15; if(GetLevel()<nivel_minimo_negociar || victim->GetLevel()<nivel_minimo_negociar) { ChatPacket(CHAT_TYPE_INFO, LC_TEXT("nivel necessário para negociar %d"),nivel_minimo_negociar); return false; } e depois o resto do codigo como podem ver eu criei uma variavel do tipo inteiro(a parte 0 tem um vídeo a falar sobre variaveis), mas como podem ver antes do tipo eu adicionei const, que significa constante agora a variavel nivel_minimo_negociar é uma variavel do tipo inteiro ainda é uma constante, como por exemplo o número de avogadro na quimica Pessoal esta fui a aula qualquer dúvida comentem que eu vou responder, ou se não entenderam algo digam ai em baixo que eu explico Link to comment Share on other sites More sharing options...
F-Caneiras Posted August 20, 2017 at 10:46 PM Share Posted August 20, 2017 at 10:46 PM Boa iniciativa Bom tópico vai ajudar iniciantes como eu xD Obrigado. Continua assim. Link to comment Share on other sites More sharing options...
GODSPEED Posted August 21, 2017 at 12:32 PM Author Share Posted August 21, 2017 at 12:32 PM 13 horas atrás, Caneiras disse: Boa iniciativa Bom tópico vai ajudar iniciantes como eu xD Obrigado. Continua assim. obrigado Link to comment Share on other sites More sharing options...
IronPower Posted December 20, 2017 at 03:30 AM Share Posted December 20, 2017 at 03:30 AM Em 20/08/2017 em 22:07, GODSPEED disse: Boas pessoal, hoje vou trazer um novo tópico sobre como mexer em Source, para quem não viu está aqui o tópico #0 - link : https://tlthings.net/index.php?/topic/1013-como-começar-a-mexer-em-source-0/&tab=comments#comment-3970 a aula passada tinha o objetivo de fornecer algumas bases em c++, como por exemplo uma estrutura de um programa em c++, o que são variaveis, condições if etc coisas muito simples. Neste tópico vou resolver o exercicio que foi proposto na aula anterior que foi : exercicio basico : adicionem nível minimo para negociar então vamos lá, Primeiramente abram o arquivo exchange.cpp , este arquivo é cerebro da negociação na Server side Procuramos a função : bool CHARACTER::ExchangeStart(LPCHARACTER victim) na aula anterior foi deixado um item onde falava sobre funções e sobre funções com múltiplos parâmetros, aconselho a darem uma olhada para ficaram a saber melhor o que são funções com parâmetros. Se repararmos a função está a usar um parâmetro que é LPCHARACTER victim, LPCHARACTER podemos considerar como um objecto da class CHARACTER, que foi definido no ficheiro typedef.h nesta função não é 100% obrigatório o uso do obj victim. todas as funções acabam quando o função retorna algo assim : return returnvalue; o returnvalue depende do tipo da função se a função for bool como esse caso o returnvalue será true or false, se for void a função não retorna nada, se for int retorna um valor inteiro por assim adiante. neste caso a função bool CHARACTER::ExchangeStart(LPCHARACTER victim) irá retornar ou true ou false então a abaixo de : bool CHARACTER::ExchangeStart(LPCHARACTER victim), iremos abrir uma condição se, que irá verificar se o level dos chares é inferior a nivel desejado, se for a função acaba, pois ira retornar falso, basicamente a logica é essa, para verificar o level do char não iremos usar nenhum objecto, mas para ver o level da vitima iremos usar um objecto, e a função que verifica o level é GetLevel() então vamos por as mãos na massa bool CHARACTER::ExchangeStart(LPCHARACTER victim) { if (this == victim) // ÀÚ±â ÀڽŰú´Â ±³È¯À» ¸øÇÑ´Ù. return false; if (IsObserverMode()) { ChatPacket(CHAT_TYPE_INFO, LC_TEXT("°üÀü »óÅ¿¡¼´Â ±³È¯À» ÇÒ ¼ö ¾ø½À´Ï´Ù.")); return false; } const int nivel_minimo_negociar = 15; if(GetLevel()<nivel_minimo_negociar || victim->GetLevel()<nivel_minimo_negociar) { ChatPacket(CHAT_TYPE_INFO, LC_TEXT("nivel necessário para negociar %d"),nivel_minimo_negociar); return false; } e depois o resto do codigo como podem ver eu criei uma variavel do tipo inteiro(a parte 0 tem um vídeo a falar sobre variaveis), mas como podem ver antes do tipo eu adicionei const, que significa constante agora a variavel nivel_minimo_negociar é uma variavel do tipo inteiro ainda é uma constante, como por exemplo o número de avogadro na quimica Pessoal esta fui a aula qualquer dúvida comentem que eu vou responder, ou se não entenderam algo digam ai em baixo que eu explico Continua assim e obg pela partilha de conhecimento e ajuda! Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now