??xml version="1.0" encoding="utf-8" standalone="yes"?>久久久久综合网久久,狠狠狠色丁香婷婷综合久久俺,久久婷婷是五月综合色狠狠http://m.shnenglu.com/flushthink/just for essential skillzh-cnFri, 27 Jun 2025 22:26:04 GMTFri, 27 Jun 2025 22:26:04 GMT60wowU服Qarcemu trunk源码~译架设http://m.shnenglu.com/flushthink/archive/2010/12/02/135221.htmltinytinyWed, 01 Dec 2010 21:15:00 GMThttp://m.shnenglu.com/flushthink/archive/2010/12/02/135221.htmlhttp://m.shnenglu.com/flushthink/comments/135221.htmlhttp://m.shnenglu.com/flushthink/archive/2010/12/02/135221.html#Feedback19http://m.shnenglu.com/flushthink/comments/commentRss/135221.htmlhttp://m.shnenglu.com/flushthink/services/trackbacks/135221.htmlҎ架设一个wowU服Q意义有二:1. 玩wowq程中,到一些实现手法不解的地方Q可以实时去调试?. Z此服务端模拟wow客户端若q特性,比如地图资源异步加蝲Q角色ƈ行状态处理等?br>
需要工P
1. visual studio 2010(arcemu trunk windows版本解决Ҏ使用)Q不强制修改visual studio版本Q因为可能丢失工E配|参C息?br>2. mysqlQSQLyog。(mysql数据库不用说了,随便什么版本,SQLyog主要是图形化mysql命o操作Q?br>3. svn Q因为是源码~译嘛)?br>
源码下蝲Q?br>1. 服务端程序arcemu trunk, https://arcemu.svn.sourceforge.net/svnroot/arcemu/trunk

2. 服务端用的数据库whydb, http://svn.xp-dev.com/svn/whydb-users
我是q样攄代码?img src="http://m.shnenglu.com/images/cppblog_com/flushthink/sss.jpg" border=0> 

~译源码Q?br>1. 需要简单地修改几处源码Q一Qsrc/scripts/src/InstanceScripts/Raid_ZulGurub.cpp中的W?84行,?span style="COLOR: #ff0000">?/Ҏ*/,很明显这是手误。二Qsrc/arcemu-logonserver/LogonCommServer.cpp中的W?13~314行注释掉Q解释下情况Q因为wow每个游戏服务器他们叫做Realm,每个Realm都要注册到LogonServer中。考虑C是我的Realm不能注册到我的LogonServerQ所以存在这授权处理的一兟뀂我L主要是烂的去攚w|文件。三Qsrc/arcemu-world/HackFixes.cpp?span style="COLOR: #ff0000">W?4~57行注释掉Q解释下情况Q因为官方只支持enUS和enGBQ在加蝲spell.dbc的时候做了一个本地化核实。可以编译了?br>2. 创徏3个数据库arc_characters, arc_logon, arc_world.然后通过下图的操?br>
分别sql目录下的3800_character_structure.sql导入到arc_characters里,?834_logon_structure.sql导入到arc_logon里。然后再sql/character_updates目录里高?800打头的sql导入到arc_charactersQ同样将sql/logon_updates目录里高?834打头的sql导入到arc_logon。ؓ什么不导arc_worldQ呵呵,因ؓ源码里带的arc_world只是表结构定义,里面q没有数据。这个要用whydb导入。进入whydb目录Q双击tool.batp了?br>
回R

l箋回RQ就安装好了?br>然后在arc_logon的表accounts里加入几个̎P



重点说明下,此数据库Q服务端E式逻辑适用?.3.5a版本Q也是wow大灾变前夕的前一个版本?br>所以必d备一?.3.5a版本的wow。我用的台服的clientQ当然你用国服的也是一栗很不幸的是我从3.0.3一个个patch打上来的?br>如果你也惛_我一栯一q打patch的瘾Q你可以?a >http://tlax.5d6d.com/thread-1778-1-1.html一个个补丁下吧?br>如下Q?br>


至于服务端configs里的*.confQ客L的登陆配|,上网上随便找扑ְ是了?br>我要重点说下服务端适用的dbc和maps资源。如何从client取?br>首先说dbcQ编译解x案mpqe_cpp.slnQ然后将extractdbc.batQmpqe_cpp.exeQSFmpq.dll拯到Data/zhTW目录下,然后执行batq成了dbc,然后所?.dbc拯到服务端的dbc目录里?br>再次说mapsQ编译解x案AD100.slnQ然后将ad.exe拯到world of warcraft目录Q和data同层Q然后再Data/zhTW里的locale-zhTW.MPQ拯到Data里(因ؓq个E序比较傻,他没有递归遍历到所有的案Q他想从locale-zhTW.MPQ里去找Map.dbcQ,然后执行ad.exeQ然后将maps里所有的.bin文g拯到server的maps里就ok了,基本配置配置可以跑了?br>有什么不清楚的再讨论吧?img height=667 src="http://m.shnenglu.com/images/cppblog_com/flushthink/babaaaaw.jpg" width=1105 border=0>


tiny 2010-12-02 05:15 发表评论
]]>
template tipshttp://m.shnenglu.com/flushthink/archive/2010/12/02/135216.htmltinytinyWed, 01 Dec 2010 19:56:00 GMThttp://m.shnenglu.com/flushthink/archive/2010/12/02/135216.htmlhttp://m.shnenglu.com/flushthink/comments/135216.htmlhttp://m.shnenglu.com/flushthink/archive/2010/12/02/135216.html#Feedback2http://m.shnenglu.com/flushthink/comments/commentRss/135216.htmlhttp://m.shnenglu.com/flushthink/services/trackbacks/135216.html2.如果template parameters作ؓq回cdQ那么也必须昑ּ地指定template parametersQ不q你可以把这个返回类型放在template parameters的第一个位|,只指定第一template parameters,其他的让~译器去推导?br>3.像functions一Pfunction templates也可以被重蝲?br>4.在编译的q程中,~译器会Ҏ每次具体使用的函敎ͼ带有template的functionQ,来生成具体的函数代码实例?br>5.在自变量推导q程中,惟有当参C是一个referencecdӞarray才会退化ؓpointerQ通过UCؓ退化)?br>6.function template或class template的implement必须攑֜.hw文g里。常规的~程Ҏ是把function或class的declare攑֜.h的文件中Q把implement攑֜.cpp中,对应declare的implement已经在编译时生成了编译符P所以可以在q行时调用。而function template或class template不同Q它要针对具体的template parametersȝ成不同的实例Q而这个过E不会去多次解析攑֜cpp中的实现?br>

tiny 2010-12-02 03:56 发表评论
]]>
event driverhttp://m.shnenglu.com/flushthink/archive/2010/11/11/133320.htmltinytinyThu, 11 Nov 2010 08:04:00 GMThttp://m.shnenglu.com/flushthink/archive/2010/11/11/133320.htmlhttp://m.shnenglu.com/flushthink/comments/133320.htmlhttp://m.shnenglu.com/flushthink/archive/2010/11/11/133320.html#Feedback1http://m.shnenglu.com/flushthink/comments/commentRss/133320.htmlhttp://m.shnenglu.com/flushthink/services/trackbacks/133320.html

tiny 2010-11-11 16:04 发表评论
]]>
sandboxhttp://m.shnenglu.com/flushthink/archive/2010/06/05/117216.htmltinytinySat, 05 Jun 2010 03:01:00 GMThttp://m.shnenglu.com/flushthink/archive/2010/06/05/117216.htmlhttp://m.shnenglu.com/flushthink/comments/117216.htmlhttp://m.shnenglu.com/flushthink/archive/2010/06/05/117216.html#Feedback1http://m.shnenglu.com/flushthink/comments/commentRss/117216.htmlhttp://m.shnenglu.com/flushthink/services/trackbacks/117216.html

tiny 2010-06-05 11:01 发表评论
]]>
linux命o参数cdhttp://m.shnenglu.com/flushthink/archive/2010/06/04/117150.htmltinytinyFri, 04 Jun 2010 01:26:00 GMThttp://m.shnenglu.com/flushthink/archive/2010/06/04/117150.htmlhttp://m.shnenglu.com/flushthink/comments/117150.htmlhttp://m.shnenglu.com/flushthink/archive/2010/06/04/117150.html#Feedback0http://m.shnenglu.com/flushthink/comments/commentRss/117150.htmlhttp://m.shnenglu.com/flushthink/services/trackbacks/117150.html

tiny 2010-06-04 09:26 发表评论
]]>
volitale的用法条?/title><link>http://m.shnenglu.com/flushthink/archive/2010/06/04/117149.html</link><dc:creator>tiny</dc:creator><author>tiny</author><pubDate>Fri, 04 Jun 2010 01:22:00 GMT</pubDate><guid>http://m.shnenglu.com/flushthink/archive/2010/06/04/117149.html</guid><wfw:comment>http://m.shnenglu.com/flushthink/comments/117149.html</wfw:comment><comments>http://m.shnenglu.com/flushthink/archive/2010/06/04/117149.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/flushthink/comments/commentRss/117149.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/flushthink/services/trackbacks/117149.html</trackback:ping><description><![CDATA[1.当存在线E或中断切换上下文时? 2.变量cd为寄存器cdQ整形,bool{)?img src ="http://m.shnenglu.com/flushthink/aggbug/117149.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/flushthink/" target="_blank">tiny</a> 2010-06-04 09:22 <a href="http://m.shnenglu.com/flushthink/archive/2010/06/04/117149.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>多少人画用例Q?/title><link>http://m.shnenglu.com/flushthink/archive/2010/01/20/106067.html</link><dc:creator>tiny</dc:creator><author>tiny</author><pubDate>Wed, 20 Jan 2010 08:20:00 GMT</pubDate><guid>http://m.shnenglu.com/flushthink/archive/2010/01/20/106067.html</guid><wfw:comment>http://m.shnenglu.com/flushthink/comments/106067.html</wfw:comment><comments>http://m.shnenglu.com/flushthink/archive/2010/01/20/106067.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://m.shnenglu.com/flushthink/comments/commentRss/106067.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/flushthink/services/trackbacks/106067.html</trackback:ping><description><![CDATA[q几天自己做了一个编辑器Q{了一大圈又回C用例。对需要实C么功能模׃可,害的一遍遍重构Q后来才发现出在用例上。用例太重要了?br>在做q款软gQ我需要明知道我需要它做什么,我的软gp围绕着它的用途逐一展开。如果在用例的时候就扭曲了,最后它像一走了题的作文,技巧用的再多那都毫无h倹{至于类图设计阶D,要尽量做到类体积均衡Q一c负责一事。设计类的时候,内存模型Q线E模型作为基准。尽量少用内存,在不影响效率的情况下用new。做好new对内存环境潜在的破坏修复。以及后面时序图阶段Q保证某一条或某几条时序执行效率(io效率Q@环中无效剔除效率Q? <img src ="http://m.shnenglu.com/flushthink/aggbug/106067.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/flushthink/" target="_blank">tiny</a> 2010-01-20 16:20 <a href="http://m.shnenglu.com/flushthink/archive/2010/01/20/106067.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>serializehttp://m.shnenglu.com/flushthink/archive/2009/11/26/101943.htmltinytinyWed, 25 Nov 2009 23:33:00 GMThttp://m.shnenglu.com/flushthink/archive/2009/11/26/101943.htmlhttp://m.shnenglu.com/flushthink/comments/101943.htmlhttp://m.shnenglu.com/flushthink/archive/2009/11/26/101943.html#Feedback1http://m.shnenglu.com/flushthink/comments/commentRss/101943.htmlhttp://m.shnenglu.com/flushthink/services/trackbacks/101943.html序列化文件可能要注意的几点:Q不给予补充)
1.不同cpu体系l构的硬件所支持的字节序不同Q所以序列化的目标数据要以一U字节序ZQ一般分为小端,大端Q本地端Q根据程序运行的机器来的Q?br>2.在序列化的时候就要考虑反序列化的一些便利,可以对原始数据类型做分类Q所有组合原始数据的高数据一般通过索引原始数据来获取(q样也降低了数据冗余Q,q样你就可以保证数据的chunk化?br>3.可能地让文件格式不同于其他Qؓ了此文g格式的扩展可以做一些版本指定?br>4.如果你考虑到serialize的灵zL,׃定要抽象device以及streamq?个概念,device控制着使用什么stream去读写,而stream直接操纵bufferQ所以在stream你可以控制读写数据的安全性(多线E)与效率?/p> 5.现在不只考虑serialize单个文gQ而考虑序列化一个文件层ơ结构到盘Q一般会抽象Zarchive来,q个archive存储在硬盘上Q所以首先这些数据的序列化必Los的文件系l格式(q个不用担心了,直接操作FILEQfstreamok了)Q而后Z数据包装Q一是ؓ了安全,二是Z大小Q三是ؓ了不凌ؕQ,我们一般要对archiveq行拓展Q拓展archive的行为,比如在内存写到硬件这个基本函数的q行压羃q加密,而在盘恢复到内存这个基本函Cq行解压~ƈ解密Q这里存在个问题Qarchive不是一ơ性读取到内存Q所以最好给每个archive做个头数据,臛_保证q个头数据一定要d内存Q头数据的意义就是选择性地darchive的数据段Q罗列archive的层ơ结构等Q至于大写敏感的问题,量做一些协调)?

tiny 2009-11-26 07:33 发表评论
]]>
模型视图变换Ӟ法线向量要乘模型视图矩阵的逆{|矩?/title><link>http://m.shnenglu.com/flushthink/archive/2009/11/19/101380.html</link><dc:creator>tiny</dc:creator><author>tiny</author><pubDate>Thu, 19 Nov 2009 06:38:00 GMT</pubDate><guid>http://m.shnenglu.com/flushthink/archive/2009/11/19/101380.html</guid><wfw:comment>http://m.shnenglu.com/flushthink/comments/101380.html</wfw:comment><comments>http://m.shnenglu.com/flushthink/archive/2009/11/19/101380.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://m.shnenglu.com/flushthink/comments/commentRss/101380.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/flushthink/services/trackbacks/101380.html</trackback:ping><description><![CDATA[早前一直被q个问题困惑Q但是自己推倒了很多遍也没推出来?br>哎,在gameres上搜?q前的谈话,后来在gamedev搜到了答案?br>其实在计机囑Ş学中Q只要是变换Q无论^U,旋{Q羃放,都是乘一个矩c?br>在模型视囑֏换时Q顶点乘模型视图变换矩阵Q而顶点对应的点法线向量Q或其他的法U向量)则要乘模型视囄늚逆{|矩c?br>点和法UK是向量,他们的区别是什么?无非点?lt;x, y, z>表示~省?lt;x, y, z, 1>Q而法U向量是<x, y, z>表示~省?lt;x, y, z, 0>。关于ؓ什么是q样Q不用我说了吧,2个顶点向量减下看看就知道了?br>从这Ҏ看,实不同Q或许就是这个不同,造成了变换的不同吧?br>法线向量只能保证方向的一致性,而不能保证位|的一致性,所以,所有线向量必须以面的Ş式进行变换,如下Q?br> <h2>Transforming Planes</h2> <p>If we have a plane vector <strong>n</strong> = [a, b, c, d] which describes a plane then for any point <strong>p</strong> = [x, y, z, 1] in that plane the follow equation holds:</p> <p><strong>n</strong><sup>t</sup> <strong>p</strong> = ax + by + cz + d = 0 </p> <p>If for a point <strong>p</strong> on the plane, we apply an invertible transformation <strong>R</strong> to get the transformed point <strong>p<sub>1</sub></strong>, then the plane vector <strong>n<sub>1</sub></strong> of the transformed plane is given by applying a corresponding transformation <strong>Q</strong> to the original plane vector <strong>n</strong> where <strong>Q</strong> is unknown. <p><strong>p<sub>1</sub></strong> = <strong>R</strong> <strong>p</strong> <br><strong>n<sub>1</sub></strong> = <strong>Q</strong> <strong>n</strong> <br></p> We can solve for <strong>Q</strong> by using the resulting plane equation: <br> <p><strong>n<sub>1</sub></strong><sup>t</sup> <strong>p<sub>1</sub></strong> = 0 <br></p> Begin by substituting for <strong>n<sub>1</sub></strong> and <strong>p<sub>1</sub></strong>: <br> <p>(<strong>Q</strong> <strong>n</strong>)<sup>t</sup> (<strong>R</strong> <strong>p</strong>) = 0 <br><strong>n</strong><sup>t</sup> <strong>Q</strong><sup>t</sup> <strong>R</strong> <strong>p</strong> = 0 <br></p> If <strong>Q</strong><sup>t</sup> <strong>R</strong> = <strong>I</strong> then <strong>n</strong><sup>t</sup> <strong>Q</strong><sup>t</sup> <strong>R</strong> <strong>p</strong> = <strong>n</strong><sup>t</sup> <strong>I</strong> <strong>p</strong> = <strong>n</strong><sup>t</sup> <strong>p</strong> = 0 which is given.<br> <p><strong>Q</strong><sup>t</sup> <strong>R</strong> = <strong>I</strong> <br><strong>Q</strong><sup>t</sup> = <strong>R</strong><sup>-1</sup> <br><strong>Q</strong> = (<strong>R</strong><sup>-1</sup>)<sup>t</sup> <br></p> Substituting <strong>Q</strong> back into our plane vector transformation equation we get: <br> <p><strong>n<sub>1</sub></strong> = <strong>Q</strong> <strong>n</strong> = (<strong>R</strong><sup>-1</sup>)<sup>t</sup> <strong>n</strong> </p> <img src ="http://m.shnenglu.com/flushthink/aggbug/101380.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/flushthink/" target="_blank">tiny</a> 2009-11-19 14:38 <a href="http://m.shnenglu.com/flushthink/archive/2009/11/19/101380.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>compiler opthttp://m.shnenglu.com/flushthink/archive/2009/11/10/100551.htmltinytinyMon, 09 Nov 2009 23:25:00 GMThttp://m.shnenglu.com/flushthink/archive/2009/11/10/100551.htmlhttp://m.shnenglu.com/flushthink/comments/100551.htmlhttp://m.shnenglu.com/flushthink/archive/2009/11/10/100551.html#Feedback0http://m.shnenglu.com/flushthink/comments/commentRss/100551.htmlhttp://m.shnenglu.com/flushthink/services/trackbacks/100551.html公司的^台只~译了release版,我们必drelease下写具体实现。(依赖release写debug会出问题Q?br>可恶的是Q我的代码对象层ơ颇多,所以我写了很多函敎ͼq些函数在release版本下默认是内联的?br>p样造成了悲剧,q多的内联,把调试器都晃晕了Q烦性,我把~译优化关了Q发现dll膨胀?倍?br>



tiny 2009-11-10 07:25 发表评论
]]>
Ʒþ㽶߿ۿ| þ°Ҳȥ| ޳avƬþ| þþþҹҹҹƷ| þù׾Ʒǿ| 鶹wwwþ| ŷ޹׾þþþþþ| Ʒþþþþþþ | ޹þþۺ| þˬһ| ƷþavĻ| þ99Ʒ鶹լլ | þ۲ӰԺѿҹɫ| ޾Ʒþþwww| һþ㽶߿ۿ | ˾þô߽ۺӰԺҳ| 2020þþƷ| ۺϳ˾þС˵| ɫۺϾþþþþþþ| þ99ƷþþþþҰ| ɫþþþþþС˵| Ʒŷþþþ޹| þþ뾫Ʒպý | 99ξþþŷƷվ | 㽶97þ| һþ֪ۺϾþ| þۺɫ| Ʒŷþþþ޹| þþþѾƷ| պAVëƬƷþþ| ƷѾþþþþþþ | ŷƷһƷþ| Ӱ7777þþƷ| ۺϾþþƷ| þþƷվ| ˾Ʒþۺ| 91Ʒ91þþþþ| þþþŷղAV| þþþþþþþþþƷ| ޹Ʒ˾þ| ҹӰԺþþƷѿһ |