<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-5598586251661772136</id><updated>2011-07-30T19:03:05.681-03:00</updated><category term='balanceamento'/><category term='idling'/><category term='sql'/><category term='necromante'/><category term='git'/><category term='fight time'/><category term='bits'/><category term='guerreiro'/><category term='session history'/><category term='bandagem'/><category term='redmine'/><category term='spells'/><category term='bd'/><category term='peace time'/><category term='move'/><category term='help'/><category term='db'/><title type='text'>The Beastly Fido is lying here, incapacitated.</title><subtitle type='html'>Anotações sobre a vida como implementor num mud baseado no Circle.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://beastlyfido.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5598586251661772136/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://beastlyfido.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Ravena Raven</name><uri>http://www.blogger.com/profile/02041085704892551813</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://lh4.ggpht.com/_gAK0sRlC_1A/SwMjOie2OLI/AAAAAAAABZM/LjAq6q-6X1U/avatar_rei2.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>5</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5598586251661772136.post-5113067795648227475</id><published>2010-04-16T23:06:00.003-03:00</published><updated>2010-04-16T23:16:05.330-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bandagem'/><category scheme='http://www.blogger.com/atom/ns#' term='balanceamento'/><category scheme='http://www.blogger.com/atom/ns#' term='redmine'/><category scheme='http://www.blogger.com/atom/ns#' term='bd'/><category scheme='http://www.blogger.com/atom/ns#' term='git'/><category scheme='http://www.blogger.com/atom/ns#' term='move'/><category scheme='http://www.blogger.com/atom/ns#' term='guerreiro'/><title type='text'>level_up_history</title><content type='html'>Mais uma nova tabela adicionado ao banco de dados. Esta registra o momento em que o jogador passou de nível, além de outras informações que serão (espero) utilizadas para ajudar a balancear o jogo futuramente. Aproveitando que há agora dois jogadores excepcionalmente dedicados, dá para ter uma idéia tanto do investimento necessário (em termos de tempo) para se alcançar uma nova encarnação, bem como o efeito das encarnações na evolução do personagem. Imagino que personagens com mais encarnações acumuladas farão uso das magias que lembram de outras vidas e terão uma subida amenizada pelo uso que farão delas.&lt;br /&gt;&lt;br /&gt;Aproveitando, também foi removido o bug da skill 'bandage', dos guerreiros. Era um código muito estranho. Se essa skill fosse usada, e o jogador tivesse uma atadura no inventário, uma certa quantidade de hp seria recuperado. Caso não houvesse a atadura, uma quantidade menor seria recuperada. Estranhamente não existe um item chamado atadura. No final foram removidas as condições que levavam em consideração esse item. Ah sim, o bug era causado por uma subtração hardcoded de movimento retirado do player. Havia casos onde os pontos de movimento retirados (que depende do nível do jogador) eram maiores do que o mínimo garantido, levando a números negativos.&lt;br /&gt;&lt;br /&gt;Voltei a usar redmine para gerenciar a resolução de bugs do debo. Infelizmente perdi a base de dados antiga, então os tickets tiveram suas contagens reiniciadas. Ao menos agora consigo acessar o repositório git pelo redmine.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5598586251661772136-5113067795648227475?l=beastlyfido.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beastlyfido.blogspot.com/feeds/5113067795648227475/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://beastlyfido.blogspot.com/2010/04/leveluphistory.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5598586251661772136/posts/default/5113067795648227475'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5598586251661772136/posts/default/5113067795648227475'/><link rel='alternate' type='text/html' href='http://beastlyfido.blogspot.com/2010/04/leveluphistory.html' title='level_up_history'/><author><name>Ravena Raven</name><uri>http://www.blogger.com/profile/02041085704892551813</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://lh4.ggpht.com/_gAK0sRlC_1A/SwMjOie2OLI/AAAAAAAABZM/LjAq6q-6X1U/avatar_rei2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5598586251661772136.post-4301666589235614227</id><published>2010-03-25T21:57:00.000-03:00</published><updated>2010-03-25T21:57:00.523-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sql'/><category scheme='http://www.blogger.com/atom/ns#' term='bits'/><category scheme='http://www.blogger.com/atom/ns#' term='fight time'/><category scheme='http://www.blogger.com/atom/ns#' term='idling'/><category scheme='http://www.blogger.com/atom/ns#' term='db'/><title type='text'>Atualizações menores</title><content type='html'>Agora o contador de tempo não contabiliza tempo ocioso. Foi criado uma nova macro IDLING(), em utils.h. Ela verifica se o contador de tempo ocioso do jogador é maior que zero. Assim, antes de atualizar os já conhecidos GET_FIGHTING_TIME() e GET_PEACE_TIME(), verifica-se IDLING(). Estranhamente aparecem casos onde o jogador ficou online por alguns segundos, mas o tempo marcado como peace_time mostrava centenas de segundos. O Hanaf sugeriu que talvez tivesse a ver com a forma como o mud gerencia heartbeats atrasados. Então talvez seja possível o loop principal não atualizar (por algum motivo) e, ao usuário entrar, todos os hearbeats atrasados serem computados num espaço curto de tempo.&lt;br /&gt;&lt;br /&gt;A tabela session_history é criada, caso ela não exista, durante a inicialização do mud. Mas uma nova alteração já se faz necessária. Registrar o IP dos usuários. Após algumas recreativas horas de testes com manipuladores de bits em SQL, foi observado que é possível armazenar o IP como um inteiro de 32bits e fazer manipulações com esse número, usando operadores lógicos, em SQL. Fazia tempo que não me animava pra relembrar SQL. Agora falta alterar a tabela para adicionar esse novo campo e fazer o registro desse novo dado.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5598586251661772136-4301666589235614227?l=beastlyfido.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beastlyfido.blogspot.com/feeds/4301666589235614227/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://beastlyfido.blogspot.com/2010/03/atualizacoes-menores.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5598586251661772136/posts/default/4301666589235614227'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5598586251661772136/posts/default/4301666589235614227'/><link rel='alternate' type='text/html' href='http://beastlyfido.blogspot.com/2010/03/atualizacoes-menores.html' title='Atualizações menores'/><author><name>Ravena Raven</name><uri>http://www.blogger.com/profile/02041085704892551813</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://lh4.ggpht.com/_gAK0sRlC_1A/SwMjOie2OLI/AAAAAAAABZM/LjAq6q-6X1U/avatar_rei2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5598586251661772136.post-5831227682141854127</id><published>2010-03-21T23:16:00.000-03:00</published><updated>2010-03-21T23:16:00.378-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='peace time'/><category scheme='http://www.blogger.com/atom/ns#' term='fight time'/><category scheme='http://www.blogger.com/atom/ns#' term='session history'/><category scheme='http://www.blogger.com/atom/ns#' term='db'/><title type='text'>session history</title><content type='html'>interpreter.c&lt;br /&gt;- nanny(): inicializa GET_FIGHTING_TIME e GET_PEACE_TIME&lt;br /&gt;&lt;br /&gt;fight.c&lt;br /&gt;- perform_violence(): atualiza GET_FIGHTING_TIME e GET_PEACE_TIME&lt;br /&gt;&lt;br /&gt;comm.c&lt;br /&gt;-  close_socket(): close_session_history()&lt;br /&gt;&lt;br /&gt;Basicamente são esses os arquivos alterados. Agora a cada desconexão será criado um registro contendo o tempo em luta e o tempo sem estar em luta. Não foi tratado o caso de tempo em idle.&lt;br /&gt;&lt;br /&gt;Também preciso checar se a tabela session_history não existe. Nesse caso é preciso criá-la.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5598586251661772136-5831227682141854127?l=beastlyfido.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beastlyfido.blogspot.com/feeds/5831227682141854127/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://beastlyfido.blogspot.com/2010/03/session-history.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5598586251661772136/posts/default/5831227682141854127'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5598586251661772136/posts/default/5831227682141854127'/><link rel='alternate' type='text/html' href='http://beastlyfido.blogspot.com/2010/03/session-history.html' title='session history'/><author><name>Ravena Raven</name><uri>http://www.blogger.com/profile/02041085704892551813</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://lh4.ggpht.com/_gAK0sRlC_1A/SwMjOie2OLI/AAAAAAAABZM/LjAq6q-6X1U/avatar_rei2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5598586251661772136.post-5015005645219830372</id><published>2010-03-13T22:38:00.002-03:00</published><updated>2010-03-15T20:28:54.530-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='spells'/><category scheme='http://www.blogger.com/atom/ns#' term='help'/><category scheme='http://www.blogger.com/atom/ns#' term='necromante'/><title type='text'>Mais magias de Necromante</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_gAK0sRlC_1A/S5ruFsg3zxI/AAAAAAAABog/Iv9Fdfi31qM/s1600-h/sata_goss.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 143px; height: 101px;" src="http://2.bp.blogspot.com/_gAK0sRlC_1A/S5ruFsg3zxI/AAAAAAAABog/Iv9Fdfi31qM/s400/sata_goss.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5447928480873828114" /&gt;&lt;/a&gt;&lt;br /&gt;Última leva de magias de Necromante foi adicionada ao spells.help. Tive vontade de citar "Jaspion" na magia "make aggr" (de 'make aggressive'):&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;'Satan Goss têm o poder de enfurecer os seres, e transformá-los em monstros incontroláveis.' &lt;br /&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5598586251661772136-5015005645219830372?l=beastlyfido.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beastlyfido.blogspot.com/feeds/5015005645219830372/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://beastlyfido.blogspot.com/2010/03/mais-magias-de-necromante.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5598586251661772136/posts/default/5015005645219830372'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5598586251661772136/posts/default/5015005645219830372'/><link rel='alternate' type='text/html' href='http://beastlyfido.blogspot.com/2010/03/mais-magias-de-necromante.html' title='Mais magias de Necromante'/><author><name>Ravena Raven</name><uri>http://www.blogger.com/profile/02041085704892551813</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://lh4.ggpht.com/_gAK0sRlC_1A/SwMjOie2OLI/AAAAAAAABZM/LjAq6q-6X1U/avatar_rei2.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_gAK0sRlC_1A/S5ruFsg3zxI/AAAAAAAABog/Iv9Fdfi31qM/s72-c/sata_goss.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5598586251661772136.post-6201788844631568304</id><published>2010-03-11T23:24:00.000-03:00</published><updated>2010-03-11T23:29:56.580-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='spells'/><category scheme='http://www.blogger.com/atom/ns#' term='help'/><category scheme='http://www.blogger.com/atom/ns#' term='necromante'/><title type='text'>Help para skills de necromante</title><content type='html'>Mais uma leva de skills de necromante agora tem help. São magias obtidas entre os níveis 20 e 50, aproximadamente.&lt;br /&gt;&lt;br /&gt;É sempre bom verificar a sintaxe da magia olhando no spell_parser.c. Lá dá para saber quem pode ser alvo da magia (objeto, mob, jogador, conjurador...).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5598586251661772136-6201788844631568304?l=beastlyfido.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beastlyfido.blogspot.com/feeds/6201788844631568304/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://beastlyfido.blogspot.com/2010/03/help-para-skills-de-necromante.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5598586251661772136/posts/default/6201788844631568304'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5598586251661772136/posts/default/6201788844631568304'/><link rel='alternate' type='text/html' href='http://beastlyfido.blogspot.com/2010/03/help-para-skills-de-necromante.html' title='Help para skills de necromante'/><author><name>Ravena Raven</name><uri>http://www.blogger.com/profile/02041085704892551813</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://lh4.ggpht.com/_gAK0sRlC_1A/SwMjOie2OLI/AAAAAAAABZM/LjAq6q-6X1U/avatar_rei2.jpg'/></author><thr:total>0</thr:total></entry></feed>
