菜单
首页
关于
首页
» cokll
如何建立一个Gmod服务器
作者:
cokll
分类:
STEAM
时间: 2015-07-05
评论:
暂无评论
首先.介绍一下专用服与在游戏内使用创建游戏的区别: 1.专用服可以更方便的安装一些插件以及进行一些设置等. 2.专用服相对于游戏来说.更省资源.因为它只是一个cmd窗口. 3.专用服适合建立24小时服务器. 如何建立一个Gmod专用服: 1.首先你需要下载Steamcmd:http://media.steampowered.com/installer/steamcmd.zip 将它解压至一个文件夹中(路径不能有中文). 2.打开steamcmd.第一次打开会下载一些文件. 3.这时输入login anonymous进行登录.登录成功之后输入force_install_dir F:\server\gmod 这里地址可以自定..不打这个命令的话会下到Steamcmd根目录.然后会很乱 接着输入app_update 4020 接着就会开始下载了.大概需要1小时左右 4.下完之后基本就大功告成了 下载下来应该有这些文件.接下来写一个start.bat 里面的内容如下: srcds.exe -console -game garrysmod +map gm_construct +maxplayers 8 +gamemode sandbox +maxplayer意思是最大玩家数.可以自己调.不过不建议太高.除非你是专业服务器 +gamemode sandbox这是指建立的模式是最平常的沙盒模式.当然也可以弄其他模式..这个我会另开一贴介绍 5.还有一些设置.打开garrysmod\cfg\server.cfg 写下下面的内容 hostname "这里是显示在服务器列表的服务器名" rcon_password "管理员密码" sv_password "进服密码" sv_lan 0 sv_allowupload 0 sv_allowdownload 0 sbox_noclip 1 是否能穿墙 sbox_godmode 0 上帝模式 sbox_weapons 0 sbox_plpldamage 1 PVP伤害 sbox_maxprops 300 最大物品数 sbox_maxragdolls 5 sbox_maxnpcs 0 最大NPC数 sbox_maxballoons 25 sbox_maxeffects 5 sbox_maxdynamite 15 sbox_maxlamps 10 最大灯数 sbox_maxthrusters 20 sbox_maxwheels 40 sbox_maxhoverballs 20 sbox_maxvehicles 5 最大车辆 sbox_maxbuttons 20 最大按钮 sbox_maxemitters 0 sbox_maxspawners 0 sbox_maxturrets 4 最大炮塔 net_maxfilesize 64 5.接下来就可以运行你的start.bat了 下面显示的IP.如果你用路由器.需要进行内网映射 这里显示的是端口.一般是27015.但是如果你是自家电脑而且先开gmod的话可能会变成27016.
Steam on EL6 (RHEL6 / Scientific Linux 6 / CentOS 6)
作者:
cokll
分类:
STEAM
,
Centos
时间: 2015-07-05
评论:
暂无评论
The fact that Steam have decided to only officially support .deb based distributions, and only relatively recent ones at that has been a pet peeve of mine for quite some time. While there are ways around the .deb only official package availability (e.g. alien), the library requirements are somewhat more difficult to reconcile. I have finally managed to get Steam working on EL6 and I figure I’m probably not the only one interested in this, so I thought I’d document it. Different packages required to do this have been sourced from different locations (e.g. glibc from fuduntu project, steam src.rpm from steam.48.io (not really a source rpm, it just packages the steam binary in a rpm), most of the rest from more recent Fedoras, etc.). I have rebuilt them all and made them available in one place: http://ftp.redsleeve.org/pub/steam/ You won’t need all of them, but you will need at least the following: glibc-2.15-60.el6.i686.rpm glibc-2.15-60.el6.x86_64.rpm glibc-common-2.15-60.el6.x86_64.rpm glibc-devel-2.15-60.el6.x86_64.rpm glibc-headers-2.15-60.el6.x86_64.rpm libtxc_dxtn-1.0.0-2.1.i686.rpm SDL2-2.0.3-2.el6.i686.rpm steam-1.0.0.39-2.i686.rpm xz-5.0.5-1.el6.x86_64.rpm xz-compat-libs-5.0.5-1.el6.x86_64.rpm xz-libs-5.0.5-1.el6.x86_64.rpm xz-lzma-compat-5.0.5-1.el6.x86_64.rpm First install some the dependencies from the standard distribution packages:[download][1] yum install gtk2-engines.i686 \ openal-soft.i686 \ alsa-plugins-pulseaudio.i686 \ gtk+.i686 The install the updated packages: rpm -Uvh glibc-2.15-60.el6.i686.rpm \ glibc-2.15-60.el6.x86_64.rpm \ glibc-common-2.15-60.el6.x86_64.rpm \ glibc-devel-2.15-60.el6.x86_64.rpm \ glibc-headers-2.15-60.el6.x86_64.rpm \ libtxc_dxtn-1.0.0-2.1.i686.rpm \ SDL2-2.0.3-2.el6.i686.rpm \ steam-1.0.0.39-2.i686.rpm \ xz-5.0.5-1.el6.x86_64.rpm \ xz-compat-libs-5.0.5-1.el6.x86_64.rpm \ xz-libs-5.0.5-1.el6.x86_64.rpm \ xz-lzma-compat-5.0.5-1.el6.x86_64.rpm If you have pyliblzma from EPEL installed (required by, e.g. mock), updated xz-lzma-compat package will trigger a python bug that causes a segfault. This will incapacitate some python programs (yum being an important one). If you encounter this issue and you must have pyliblzma for other dependencies, reinstall the original xz package versions after you run steam for the first time. Updated xz only seems to be required when the steam executable downloads updates for itself. Finally, run steam, log in, and let it update itself. One of the popular games that is available on Linux is Left 4 Dead 2. I found that on ATI and Nvidia cards it doesn’t work properly in full screen mode (blank screen, impossible to Alt-Tab out), but it does work on Intel GPUs. It works on all GPU types in windowed mode. Unfortunately, it runs in full screen mode by default, so if you run it without adjusting its startup parameters you may have to ssh into the machine and forcefully kill the hl2_linux process. To work around the problem, right click on the game in your library, and go to properties: Steam Game Properties Click on the “SET LAUNCH OPTIONS…” button: Steam Game Properties 2 You will probably want to specify the default resolution as well as the windowed mode to ensure the game comes up in a sensible mode when you launch it. Add “-windowed -w 1280 -h 720″ to the options, which will tell L4D2 to start in windowed mode with 1280×720 resolution. The resolution you select should be lower than your monitor’s resolution. Steam Game Launch Options If you did all that, you should be able to hit the play button and be greeted with something resembling this: Left4Dead 2 with Steam on Linux ATI cards using the open source Radeon driver (at least with the version 7.1.0 that ships with EL6) seem to exhibit some rendering corruption, specifically some textures are intermittently invisible. This leads to invisible party members, enemies, and doors, and while it is entertaining for the first few seconds it renders the game completely unplayable. I have not tested the ATI binary driver (ATI themselves recommend the open source driver on Linux for older cards and I am using a HD6450). Nvidia cards work fine with the closed source binary driver in windowed mode, and performance with a GT630 constantly saturates 1080p resolutions with everything turned up to maximum. I have not tested with the nouveau open source driver. With Intel GPUs using the open source driver, everything works correctly in both windowed and full screen mode, but the performance is nowhere nearly as good as with the Nvidia card. With all the settings set to maximum, the performance with the Intel HD 4000 graphics (Chromebook Pixel) is roughly the same at 1920×1200 resolution as with the Radeon HD6450, producing approximately 30fps. The only problem with playing it on the Chromebook Pixel is that the whole laptop gets too hot to touch, even with the fan going at full speed. Not only does the aluminium casing get too hot to touch, the plastic keys on the keyboard themselves get painfully hot. But that story is for another article. This entry was posted in Uncategorized and tagged linux, nvidia, steam by altechnative. Bookmark the permalink. 16 THOUGHTS ON “STEAM ON EL6 (RHEL6 / SCIENTIFIC LINUX 6 / CENTOS 6)” [1]: http://pan.baidu.com/s/1hqhGa4s
phpcms v9 联动菜单筛选插件
作者:
cokll
分类:
默认分类
时间: 2014-10-25
评论:
暂无评论
extention.func.php 文件 $v){ if($v['parentid']==$field_value){ $array[$k]['name'] = $v['name']; $array[$k]['linkageid'] = $v['linkageid']; $array[$k]['value'] = $k; $array[$k]['url'] = str_replace('{$'.$fieldname.'}',$k,$urlrule); $array[$k]['menu'] = $field_value == $k ? '
'.$v['name'].'
' : '
'.$v['name'].'
' ; } } return $array; } function structure_filters_url($fieldname,$array=array(),$type = 1,$modelid) { if(empty($array)) { $array = $_GET; } else { $array = array_merge($_GET,$array); } //TODO $fields = getcache('model_field_'.$modelid,'model'); if(is_array($fields) && !empty($fields)) { ksort($fields); foreach ($fields as $_v=>$_k) { if($_k['filtertype'] || $_k['rangetype']) { if(strpos(URLRULE,'.html') === FALSE) $urlpars .= '&'.$_v.'={$'.$_v.'}'; else $urlpars .= '-{$'.$_v.'}'; } } } //后期增加伪静态等其他url规则管理,apache伪静态支持9个参数 if(strpos(URLRULE,'.html') === FALSE) $urlrule =APP_PATH.'index.php?m=content&c=index&a=lists&catid=9'.$urlpars.'&page={$page}' ; else $urlrule =APP_PATH.'list-{$catid}'.$urlpars.'-{$page}.html'; //根据get传值构造URL if (is_array($array)) foreach ($array as $_k=>$_v) { if($_k=='page') $_v=1; if($type == 1) if($_k==$fieldname) continue; $_findme[] = '/{\$'.$_k.'}/'; $_replaceme[] = $_v; } //type 模式的时候,构造排除该字段名称的正则 if($type==1) $filter = '(?!'.$fieldname.'.)'; $_findme[] = '/{\$'.$filter.'([a-z0-9_]+)}/'; $_replaceme[] = ''; // print_r('/{\$'.$filter.'([a-z0-9_]+)}/'); //print_r('|'.$urlrule); $urlrule = preg_replace($_findme, $_replaceme, $urlrule); //print_r('|'.$urlrule); return $urlrule; } /** * 生成分类信息中的筛选菜单 * @param $field 字段名称 * @param $modelid 模型ID */ function filters($field,$modelid,$diyarr = array()) { $fields = getcache('model_field_'.$modelid,'model'); $options = empty($diyarr) ? explode("\n",$fields[$field]['options']) : $diyarr; $field_value = intval($_GET[$field]); foreach($options as $_k) { $v = explode("|",$_k); $k = trim($v[1]); $option[$k]['name'] = $v[0]; $option[$k]['value'] = $k; $option[$k]['url'] = structure_filters_url($field,array($field=>$k),2,$modelid); $option[$k]['menu'] = $field_value == $k ? '
'.$v[0].'
' : '
'.$v[0].'
' ; } $all['name'] = '全部'; $all['url'] = structure_filters_url($field,array($field=>''),2,$modelid); $all['menu'] = $field_value == '' ? '
'.$all['name'].'
' : '
'.$all['name'].'
'; array_unshift($option,$all); return $option; } /** * 获取联动菜单层级 * @param $keyid 联动菜单分类id * @param $linkageid 菜单id * @param $leveltype 获取类型 parentid 获取父级id child 获取时候有子栏目 arrchildid 获取子栏目数组 */ function get_linkage_level($keyid,$linkageid,$leveltype = 'parentid') { $child_arr = $childs = array(); $leveltypes = array('parentid','child','arrchildid','arrchildinfo'); $datas = getcache($keyid,'linkage'); $infos = $datas['data']; if (in_array($leveltype, $leveltypes)) { if($leveltype == 'arrchildinfo') { $child_arr = explode(',',$infos[$linkageid]['arrchildid']); foreach ($child_arr as $r) { $childs[] = $infos[$r]; } return $childs; } else { return $infos[$linkageid][$leveltype]; } } } // 根据linkageid递归到父级 function get_parent_url($modelid,$field,$linkageid=0,$array = array()){ $modelid = intval($modelid); if(!$modelid || empty($field)) return false; $fields = getcache('model_field_'.$modelid,'model'); $keyid = $fields[$field]['linkageid']; $datas = getcache($keyid,'linkage'); $infos = $datas['data']; if(empty($linkageid)){ $linkageid = intval($_GET[$field]); if(!$linkageid) return false; } $urlrule = structure_filters_url($field,array(),1,$modelid); $urlrule = str_replace('{$'.$field.'}',$infos[$linkageid]['parentid'],$urlrule); array_unshift($array,array('name'=> $infos[$linkageid]['name'],'url'=>$urlrule)); if($infos[$linkageid]['parentid']){ return get_parent_url($modelid,$field,$infos[$linkageid]['parentid'],$array); } return $array; } /** * 构造筛选时候的sql语句 */ function structure_filters_sql($modelid) { $sql = $fieldname = $min = $max = ''; $fieldvalue = array(); $modelid = intval($modelid); $model = getcache('model','commons'); $fields = getcache('model_field_'.$modelid,'model'); $fields_key = array_keys($fields); //TODO $sql = '`catid`=\'' . $_GET[catid] . '\' and `status` = \'99\''; foreach ($_GET as $k=>$r) { if(in_array($k,$fields_key) && intval($r)!=0 && ($fields[$k]['filtertype'] || $fields[$k]['rangetype'])) { if($fields[$k]['formtype'] == 'linkage') { $datas = getcache($fields[$k]['linkageid'],'linkage'); $infos = $datas['data']; if($infos[$r]['arrchildid']) { $sql .= ' AND `'.$k.'` in('.$infos[$r]['arrchildid'].')'; } } elseif($fields[$k]['rangetype']) { if(is_numeric($r)) { $sql .=" AND `$k` = '$r'"; } else { $fieldvalue = explode('_',$r); $min = intval($fieldvalue[0]); $max = $fieldvalue[1] ? intval($fieldvalue[1]) : 999999; $sql .=" AND `$k` >= '$min' AND `$k` < '$max'"; } } else { $sql .=" AND `$k` = '$r'"; } } } return $sql; } ?> 使用方法: 覆盖到\phpcms\libs\functions这个目录下 后台添加字段(类型只能是联动菜单,和下拉列表)、然后选择作为筛选字段。 模板使用 ===============================
您已选择:
{loop get_parent_url($modelid,'diqu') $r}
{$r['name']}
{/loop} ============================== 联动菜单使用: {php $zones = show_linkage(1,0,$modelid,'diqu')} {if !empty($zones)}
地区:
全部展开
{loop $zones $r} {$r['menu']} {/loop}
{/if} 或 {php $zones = show_linkage(3360,0,3,'bzfl', array('catid'=>9))} {if !empty($zones)} {loop $zones $r} {$r['menu']} {/loop} {/if} ========================== 下拉列表使用 {loop filters('xz',$modelid) $r} {$r[menu]} {/loop} ========================== 配合列表标签使用: {php $sql = structure_filters_sql($modelid);} {pc:content action="lists" where="$sql" catid="$catid" modelid="$modelid" num="10" page="$page"} 伪静态: .ht : RewriteRule ^.*list-(\d*)-(\d*)-(\d*)-(\d*)-(\d*)-(\d*)-(\d*)\.html$ /index.php?m=content&c=index&a=lists&catid=$1&bzcolor=$2&bzfl=$3&pbsize=$4&pcsize=$5&sjsize=$6&page=$7 .is :
PHPCMS v9最实用的23个调用代码
作者:
cokll
分类:
默认分类
时间: 2014-10-16
评论:
暂无评论
今天给大家分享的是phpcms的一些最实用的调用代码。这也是我用phpcms以来觉得,这一套几乎能够解决到我很多问题,喜欢就做个评论,或者直接转走吧! 1、调用最新文章,带所在版块; {pc:get sql="SELECT a.title, a.catid, b.catid, b.catname, a.url as turl ,b.url as curl,a.id FROM `v9_news` a, `v9_category` b WHERE a.catid = b.catid ORDER BY `a`.`id` DESC "num="15" cache="300"} {loop $data $r} [{$r[catname]}] {str_cut($r['title'],26)} {/loop} {/pc} 2、截取调用标题长度; {str_cut($v['title'],34)} -----超出用 ... 代替 {str_cut($v['title'],34, '???')}-----超出用 ???代替 {str_cut($v['title'],34,'')}-----超出不用任何字符代替 3、格式化时间调用; {date('Y-m-d H:i:s',$r[inputtime])}-----2013-07-25:11:22:33 {date('m-d',$v['inputtime'])}------07-25 4、多栏目调用&多推荐位调用调用需求:文章范围为59 60 61三个栏目,并且推送到了27 和28两个推荐位;从第三条开始,连续调用7篇文章。 {pc:get sql="SELECT * FROM v9_news WHERE id IN (SELECT id FROM v9_position_data WHERE posidin(27,28) and catid in(59,60,61)) order by listorder DESC" cache="3600" start="3" num="7"return="data" } {loop $data $n $r} ·{str_cut($r[title],22,'')} {/loop} {/pc} 5、显示栏目名称; {$catname}-----只显示名称不带链接 {$CATEGORYS[$r['catid']]['catname']}-----显示栏目名称和链接 6、获取父栏目id/获取父栏目名称; {$CATEGORY[$catid][parentid]}-----父栏目ID {$CATEGORYS[$CAT[parentid]][catname]}-----父栏目名称 7、外部数据源调用dedecmsdb 在后台数据源处添加; {pc:get sql="SELECT * FROM cq_member where mtype='企业' " cache="3600" dbsource="dedecmsdb"num="7" return="data"} {loop $data $r} {str_cut($r[uname],28,'')} {/loop} {/pc} 8、调用子栏目(在栏目首页模板需要用到); {pc:content action="category" catid="$catid" num="25" siteid="$siteid" order="listorderASC"} {loop $data $r} {$r[catname]} |{/loop} {/pc} 9、显示指定id的栏目名称; {$CATEGORYS[22]['catname']} 10、在文章面前显示文章类别; {pc:content action="lists" catid="79" order="listorder DESC" num="14" } {loop $data $n $r} {if $TYPE[$r[typeid]][name]}[ {$TYPE[$r[typeid]][name]}] {/if}{str_cut($r[title],33,'')} {/loop} {/pc} 11、指定变量循环增长(幻灯片经常用到); {pc:content action="lists" catid="66" order="listorder DESC" thumb="1" num="5" } {php $num = 0} {loop $data $r} linkarr[{$num}] = "{$r[url]}";picarr[{$num}] = "{$r[thumb]}";textarr[{$num}] = "{str_cut($r[title],36,'')}"; {php $num++} {/loop} {/pc} 12、文章调用使用limit; {pc:content action="position" posid="31" order="listorder DESC" limit='1,8--'} {loop $data $r} {str_cut($r[title],36,'')} {/loop} {/pc} 13、文章从指定位置开始调用起始位置为5,调用3条; {pc:content action="position" posid="27" order="listorder DESC" num="3" start="5"} {loop $data $r} {str_cut($r[description],115)}... {/loop} {/pc} [page] 14、文章列表页调用关键字,或者首页调用关键字注意:explode(‘,’,$r[keywords]);是将文章关键词通过英文逗号分离,也就是说每一篇文章都要以逗号间隔关键字,否则调用出来会 是全部作为一个关键字。如果是空格间隔关键字,将explode(‘,’,$r[keywords]);改成explode(‘ ‘,$r[keywords]); {pc:content action="lists" catid="$catid" num="10" order="id DESC" page="$page"} {loop $data $r} {$r[title]} {php $keywords = explode(',',$r[keywords]);} 文章标签: {loop $keywords $keyword} {$keyword} {/loop} {/pc} 15、每当列表几行的时候出现一次某些符号(比如首页里面的文章推荐,一行显示两条,在这两条中间想加一条竖线 | 就用到这个代码了)数量大的话就容易出错,因为模运算嘛~~呵呵 不过一般也就4个标题以下; {pc:content action="position" posid="8" order="listorder DESC" num="2"} {loop $data $r} {str_cut($r[title],26,'')}{if $n%2==1} |{/if} {/loop} {/pc} 16、v9 列表页完美支持自定义段调用; {pc:content action="lists" catid="$catid" num="25" order="id DESC" page="$page"moreinfo="1"} {loop $data $r} [{$r['字段名']}]> {$r[title]} {/loop} {$pages} {/pc} [page] 17、当前栏目调用父级及以下栏目信息方法其他代码; {php $arrchildid = $CATEGORYS[$CAT[parentid]][arrchildid]} {pc:get sql="SELECT * FROM v9_news where catid in($arrchildid) cache="3600" page="$page"num="12" return="data"} 18、V9表单功能 提交之后如何返回当前页面,而不是默认的首页文件地址; 找到 phpcms\modules\formguide\index.php文件第73行 showmessage(L('thanks'), APP_PATH); 修改成 如下代码即可实现自动返回前一页 showmessage(L('thanks'), HTTP_REFERER); 19、v9 首页或分页自定义字段调用和15差不多第一普通列表或栏目调用自定义字段在{pc:content action=”lists” 后加上副表moreinfo=1 (等于1时显示,0时不显示)例子: {pc:content action="lists" moreinfo=1 catid="2" order="id DESC" num="4"} {loop $data $key $val} {$val['title']} 价格:{str_cut($v['自定义段'],100)} //100 是字数 {/loop} {/pc} 20、第二种推荐位调用自定义字段在模型里加好自定义字段后,必须把“在推荐位标签中调用”点击“是“然后用同一样的方法去调节数据就OK了,记住,如果你加了文章,必须去更新文章才会显示,自定义段在推荐中只显示你选择后,选择前加的加文章不显示,更新一下文章就显示了例子: {pc:content action="position" posid="推荐位id" num="30" thumb="1" moreinfo="1"order="listorder DESC"} {loop $data $key $val} {str_cut($val['title'],20)} {/loop} {/pc} 21、编辑器上传图片自动使用标题作为alt参数; 一: 修改 statics/js/ckeditor/plugins/image/dialogs/image.js找到accessKey:'T','default':'' 替换成accessKey:'T','default'('#title').val() 二: 清除浏览器缓存 22、增加文章的随机点击数; 找到100行的$views = $r['views'] +1修改为: $rand_nums=rand(79,186); $views = $r['views'] + $rand_nums; 表示点击一次,增加79到186次不等 23、PHPCMS V9的get标签调用; 1、调用本系统单条数据,示例(调用ID为1的信息,标题长度不超过25个汉字,显示更新日期): {get sql="select * from phpcms_content where contentid=1" /} 标题:{str_cut($r[title], 50)} URL:{$r[url]} 更新日期:{date('Y-m-d', $r[updatetime])} 2、调用本系统多条数据,示例(调用栏目ID为1通过审核的10条信息,标题长度不超过25个汉字,显示更新日期): {get sql="select * from phpcms_content where catid=1 and status=99 order by updatetime desc"rows="10"} 标题:{str_cut($r[title], 50)} URL:{$r[url]} 更新日期:{date('Y-m-d', $r[updatetime])} {/get} 3、带分页,示例(调用栏目ID为1通过审核的10条信息,标题长度不超过25个汉字,显示更新日期,带分页): {get sql="select * from phpcms_content where catid=1 and status=99 order by updatetime desc"rows="10" page="$page"} 标题:{str_cut($r[title], 50)} URL:{$r[url]} 更新日期:{date('Y-m-d', $r[updatetime])} {/get} 分页:{$pages}
mysql双向同步
作者:
cokll
分类:
Linux
时间: 2014-04-04
评论:
暂无评论
**条件** 服务器1(CentOS6.0x32 Mysql5.5.18) IP: 192.168.1.2 服务器2(CentOS6.0x64 Mysql5.5.18) IP: 192.168.1.3 **修改配置文件** 修改 服务器2 上的/etc/my.cnf文件 server-id=2 重启mysql service mysqld restart **启动** 以下都是进入mysql后,执行的语句: #服务器1 上执行 grant select,replication slave on *.* to 'sync'@'192.168.1.3' identified by 'your password'; flush privileges; show master status; #记下File和Position的值 log1 #服务器2 上执行 grant select,replication slave on *.* to 'sync'@'192.168.1.2' identified by 'your password'; flush privileges; show master status; #记下File和Position的值 log2 #服务器1 上执行(问号分别替换为刚才log2里面记下的两个值) change master to master_host='192.168.1.3',master_user='sync', master_password='your password', master_log_file='?', master_log_pos=?; SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1; slave start; show slave status; #服务器2 上执行(问号分别替换为刚才log1里面记下的两个值) change master to master_host='192.168.1.2',master_user='sync', master_password='your password', master_log_file='?', master_log_pos=?; SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1; slave start; show slave status;
« 前一页
1
2
3
4
5
后一页 »
搜素
Go
文章分类
默认分类
16
Linux
1
STEAM
3
Centos
3
最新文章
fix Samsung SSD 1Gb
Working with more than 64 CPUs in Powershell
华为24
思科 20
C++ 字符串与字符数组 详解
Windows server 2012 激活教程
英业达 24
mvn 编译配置
IPv4 Subnetting & Prefixes
VC14(VC2015)安装失败,0x80240017 - 未指定的错误,解决办法
归档
January 2021
December 2020
January 2019
November 2018
September 2018
July 2018
April 2018
December 2017
May 2017
April 2017
March 2017
September 2015
July 2015
October 2014
April 2014
March 2014
热门标签
Top ↑