月度归档 2014年2月25日

通过清心醉

织梦dedecms操作平台的编码问题

织梦dedecms的PHP平台,默认不支持高版本的PHP,如5.3以上的版本,会出错版本过高不显示以及中文输入不显示的问题,本文针对作者架设一个织梦的平台代码,后台发布文章引发的标题不能为空进行代码修改。

在php5.4中htmlspecialchars默认编码为utf8编码,gbk的中文信编码经 htmlspecialchars 转义后字符串的中文字符串为空,也就是标题为空,所以只需添加ENT_COMPAT ,’GB2312’参数修改为编码的默认值即可,方法如下:

打开dede/article_add.php和dede/article_edit.php两个文件

找到变量$title

$title = htmlspecialchars(cn_substrR($title,$cfg_title_maxlen));

修改为:$title = htmlspecialchars(cn_substrR($title,$cfg_title_maxlen),ENT_COMPAT ,’GB2312′);

 

然后:

打开 include/ckeditor/ckeditor_php5.php 文件
将htmlspecialchars($value)修改为htmlspecialchars($value, ENT_COMPAT ,’GB2312′)

通过清心醉

自写HTML8之简单CSS入门

注:红色部分为代码:

文件1: index.html
<html>
<head>
<title>一个简单的CSS案例</title>
<link rel=”stylesheet” type=”text/css” href=”index.css” />
<!–引入CSS文件
rel=stylesheet表示连接样式
type=text/css表示连接的样式为CSS
href=??为CSS的文件位置–>
</head>
<body>
<div> <!–css文件的哪个内容–>
<img src=”pig.gif”/>
<table>
<tr>
<td>22</td>
<td>23</td>
</tr>
</table>
</div>
</body>
</html>

文件2: index.css
.stylel{
width: 400px; /*宽400*/
height: 300px; /*高300*/
background-color:red; /*背景颜色*/
border:5px solid blue; /*边框5,颜色为蓝色*/
margin-left:260px; /*左边外距*/
margin-top:260px;/*上外边距边界与其包含块上边界之间的偏移*/
padding-left:50px;/*图片在边框的边距(左)*/
padding-top:55px;/*图片在边框的边距(上)*/
}
.stylel table{   /*同一个div里面的table样式*/
border:2px solid yellow;
width:50px;
height:30px;
background-color:blur;
}

源文件下载:http://url.cn/JsxRXI ;

通过清心醉

自写HTML7

在图片按照坐标点击的时候页面跳转
以下为源代码:

<html>
<head></head>
<title>用图片坐标映射链接等</title>
<body>
<!–图形映射的时候
坐标体系坐标起点为左上脚
–>
<img src=”08.jpg” usemap=”#myimg”/>
<!–给图片取名,前面一定加#号–>
<map name=”myimg”>
<!–对图片进行映射的区域,涉及的坐标可以用
faststone capture这软件–>
<area shape=”rect” href=”rect.html” coords=”98,117,180,213″ />
<!–shape为形状,
以下为shape形状参数:
default 规定全部区域。
rect 定义矩形区域。
circle 定义圆形。
poly 定义多边形区域。
href为跳转的页面,当然这也可以用新窗口
或者当前页面跳转,前几章有说
coords为坐标,一般
开始为第一个横坐标和纵坐标
结束为最后的横坐标和纵坐标–>
</map>
</body>

</html>

下载地址: http://url.cn/J8O7FK ;

通过清心醉

自写HTML6

<!– forms表单 –>
<html>
<title>多表单属性</title>
<body>
<form action=”OK.html” method=”post”>
您喜欢的计算机哪些专业:
<br/>多选框<br/>

<!– name取同一个,表示都是对专业调查(产品)的表单 –>
<input type=”checkbox” name=”computer” value=”C++”>C++
<input type=”checkbox” name=”computer” value=”PHP”>PHP
<input type=”checkbox” name=”computer” value=”JAVA”>JAVA
<!–type参数有文本,单选多选择等等 method为传送格式,GET和POST,name和框架一样是名字
如果结合PHP,name属性里的参数可以通过GET和POST传送到PHP进行后台处理等–>
<br/>
您的性别:
单选框
<br/>
<input type=”radio” name=”man” value=”boy”>男
<input type=”radio” name=”man” value=”girl”>女
<!–如果name的不一样,点了男在点女时,两个都会同时勾上,因为不同的对象了。–>
<br/><br/>
下拉选择菜单:<br/>
您是几月份出生的:
<!–select为下拉菜单
option为菜单内容–>
<select name=”address”>
<!–取名为地址,服务器只需获取名字给某变量,实际变量的类型
及参数值就根据用户的选择进行了传输–>
<option value=”1″>1</option> <option value=”2″>2</option>
<option value=”3″>3</option> <option value=”4″>4</option>
<option value=”5″>5</option> <option value=”6″>6</option>
<option value=”7″>7</option> <option value=”8″>8</option>
<option value=”9″>9</option> <option value=”10″>10</option>
<option value=”11″>11</option> <option value=”12″>12</option>
</select>
<br/><br/>

 <!–文本域–>
请在这里输入您想说的话:<br/><!–一定要记得换行–>
<textarea cols=”50″ rows=”8″ name=”intext”>
<!–注释:在该文本可以输入数据,最常见的就是以前的网页聊天
当用户输入发送时,通过name或者字符串进行传递–>
</textarea><br/><br/><br/>
您要上传的文件:
<input type=”file” name=”infile”><br/>
 <br/><br/>
<!–如果希望偷偷的提交数据,不影响界面效果,可以使用以下隐藏域–>
隐藏域
<br/>
<input type=”hidden” name=”data” value=”ok” />  <br/>
<!–把Ok的值传递,服务器调取时首先也是要找到name 然后取值–>
<input type=”submit” value=”传送选择数据”/> <br/><br/><br/>
<!–当用户选择了专业和性别后,点”传送选择数据时”,页面即将所属name区域的对应参数发送–>
<input type=”image” src=”pig.gif” /> <br/>
快点我提交数据哦
<!–以上代码是以图片的形式,代替传统的按钮来传递数据–>
</form>
</body>
</html>

链接下载地址: http://url.cn/LkufXH

以下为后期对单选多选框等进行默认选择的操作关键字:
下拉: selected
多选框及单选框:checked

通过清心醉

自写HTML5

常见有调查选择
提供用户多选,单选等。
以下为代码:

<!– forms表单 –>
<html>
<title>多表单属性</title>
<body>
 <form action=”OK.html” method=”post”>
 你喜欢的计算机哪些专业:
 <br/>多选框<br/>
 <!– name取同一个,表示都是对专业调查(产品)的表单 –>
 <input type=”checkbox” name=”computer” value=”C++”>C++
 <input type=”checkbox” name=”computer” value=”PHP”>PHP
 <input type=”checkbox” name=”computer” value=”JAVA”>JAVA
  <!–type参数有文本,单选多选择等等 method为传送格式,GET和POST,name和框架一样是名字
如果结合PHP,name属性里的参数可以通过GET和POST传送到PHP进行后台处理等–>
 <br/>
 你的性别:
 单选框
 <br/>
 <input type=”radio” name=”man” value=”boy”>男
 <input type=”radio” name=”man” value=”girl”>女
 <!–如果name的不一样,点了男在点女时,两个都会同时勾上,因为不同的对象了。–>
 <br/><br/><br/><br/>
 <!–如果希望偷偷的提交数据,不影响界面效果,可以使用以下隐藏域–>
 隐藏域
 <br/>
 <input type=”hidden” name=”data” value=”ok” />  <br/>
 <!–把Ok的值传递,服务器调取时首先也是要找到name 然后取值–>
 <input type=”submit” value=”传送选择数据”/> <br/><br/><br/>
 <!–当用户选择了专业和性别后,点”传送选择数据时”,页面即将所属name区域的对应参数发送–>
 <input type=”image” src=”pig.gif” /> <br/>
 快点我提交数据哦
 <!–以上代码是以图片的形式,代替传统的按钮来传递数据–>
 </form>
</body>
</html>

以下为文件地址:
http://url.cn/Qiuw8P

 

通过清心醉

自写HTML4

本代码分为以下5个文件
注:红色部分为代码
下载地址:  http://url.cn/RBlB0T

文件1(也是主文件): index_frameset.html
代码:
<frameset cols=”35%,65%”>
<frame name=”mulu” src=”frameset_1.html” noresize=”noresize” scrolling=”no”>
<!–禁止拖动边框–>
<!–当文件过多出现滚动条时禁止 默认值为auto–>
<frame name=”neirong” src=”frameset_2.html”>
</frameset>
<!–
name为框架取名
–>
********************切割线********************
文件2: frameset_1.html
代码:
<body >
<a href=”php.html” target=”neirong” >PHP小代码</a><br/>
<a href=”c++.html” target=”neirong” >C++小代码</a><br/>
</body>

********************切割线********************
文件3: frameset_2.html
代码:
<body background=”背景.gif”>
详细代码
</body>
********************切割线********************
文件4: c++.html
代码:
<body>
C++小代码:   <br/>
#include “iostream.h”<br/>
int main()<br/>
{
int i=0;int o;<br/>
cin>>o; <br/>
int j=i*o;<br/>
<br/>
}
</body>

********************切割线********************
文件5:  php.html
代码:
<body>
PHP小代码:   <br/>
由于PHP符号在EditPlus便宜下符号会和HTML符号混合,所以不编写符号<br/>
$ i=0; $o; //定义整型i=0,定义一个o(未赋值不属于任何类性)<br/>
$ j=i*o ; //0*X=0 定义的整型j的值必定为0<br/>
</body>

********************切割线********************
文件6:名字为:”背景.gif”的文件

通过清心醉

自写HTML1~3

注:红色部分为实际源代码

html 1源代码
<!–
注释:
建立一个联系列表
列表内容为:
姓名 年龄 地址 (要求左对齐)
(名字左对齐,年龄右对齐,地址居中)
–>
<html>
<head>
<title> 我的通讯录 </title> <!–页面标签–>
</head>

<body bgcolor=”black”>   <!–背景为黑色–>
<table bgcolor=”red” border=”1px” height=”100px” width=”250px” align=”center”>
<!–边框为1px,高100px,宽150px,边框内颜色为红色,边框位置居中–>
<tr align=”left”> <!–以下数据为左对齐–>
<td>姓名 </td>
<td>年龄 </td>
<td>地址 </td>
</tr>
<tr>
<td align=”left”>张三 </td> <!–该列左对齐–>
<td align=”right”>23   </td> <!–该列右对齐–>
<td align=”center”>广东广州</td><!–该列居中–>
</tr>
<tr>
<td align=”left”>李四 </td>
<td align=”right”>25   </td>
<td align=”center”>广东深圳</td>
</tr>
</table>
</body>
</html>
源代码HTML1文件下载地址:http://url.cn/TGD4aG
*********************分 割 线*********************
*********************分 割 线*********************
html 2源代码
<!–
注释:
–>
<html>
<head>
<title> 横列不一表格 </title> <!–页面标签–>
</head>
<body bgcolor=”#007600″>   <!–背景为2进制#007600–>
<table bgcolor=”red” border=”1px” height=”100px” width=”250px” align=”center”>
<!–边框为1px,高100px,宽150px,边框内颜色为红色,边框位置居中–>
<tr>
<!–colspan=”x”表示表格占用列数–>
<td align=”center” colspan=”4″>通讯录</td>
</tr>
<tr>
<td align=”left”>张三 </td> <!–该列左对齐–>
<td align=”right”>23   </td> <!–该列右对齐–>
<td align=”center” colspan=”2″>广东广州AAAAAAAAAAAA</td><!–该列居中–>
<!–考虑通讯地址可能过长,固用2列,所以第一个表格应为4–>
</tr>
<tr>
<td align=”left”>李四 </td>
<td align=”right”>25   </td>
<td align=”center” colspan=”2″>广东深圳BBBBBBBBBBBB</td>
</tr>
</table>
</body>
</html>
源代码HTML2文件下载地址:http://url.cn/RYkvs6

*********************分 割 线*********************
*********************分 割 线*********************
html 3源代码
<!–
注释:
–>
<html>
<head> </head>
<title> 社会大学资料 </title> <!–页面标签–>
<body >
<table align=”center” border=”1px” height=”50px” width=”350px”>
<tr >
<td align=”center” colspan=”5″ bgcolor=”red”>社会大学</td>
</tr>
<!–分割线–>
<!– bgcolor颜色设置要一个个设置,如果用CSS就可以一个设置多个应用 –>
<!–分割线–>
<tr>
<td rowspan=”3″ width=”50px” bgcolor=”#073440″>计算机专业</td>
<td width=”100px”>专业</td>
<td width=”80px”>导师</td>
<td width=”50px”>学员人数</td>
<td rowspan=”3″ width=”50px” bgcolor=”#073440″>就业总比率86%</td>
</tr>
<tr >
<td width=”100px” bgcolor=”blue”>C++</td>
<td width=”80px” bgcolor=”blue”>张三</td>
<td width=”50px” bgcolor=”blue”>15人</td>
</tr>
<tr>
<td width=”100px” bgcolor=”blue”>C语言</td>
<td width=”80px” bgcolor=”blue”>李四</td>
<td width=”50px” bgcolor=”blue”>21人</td>
</tr>
<!–分割线–>
<!–分割线–>
<!–分割线–>
<tr>
<td rowspan=”4″ width=”50px” bgcolor=”#00999999″>理工专业</td>
<td width=”100px”>专业</td>
<td width=”80px”>导师</td>
<td width=”50px”>学员人数</td>
<td rowspan=”4″ width=”50px” bgcolor=”#00999999″>就业总比率87%</td>
</tr>
<tr>
<td width=”100px” bgcolor=”yellow”>机械工程</td>
<td width=”80px” bgcolor=”yellow”>媒游</td>
<td width=”50px” bgcolor=”yellow”>24人</td>
</tr>
<tr>
<td width=”100px” bgcolor=”yellow”>木工工程</td>
<td width=”80px” bgcolor=”yellow”>森木</td>
<td width=”50px” bgcolor=”yellow”>33人</td>
</tr>
<tr>
<td width=”100px” bgcolor=”yellow”>土工工程</td>
<td width=”80px” bgcolor=”yellow”>挖掘积</td>
<td width=”50px” bgcolor=”yellow”>18人</td>
</tr>
<!–分割线–>
<!–分割线–>
<!–分割线–>
<tr>
<td align=”center” bgcolor=”green”>统计人</td>
<td>管理员</td>
<td colspan=”2″ bgcolor=”green”>2013-11-13</td>
<td> <img src=”00.jpg” alt=”学校标志”/> </td>
<!–该地址为打开本文件夹内的00.jpg文件,当鼠标移至图片后显示alt内容–>
</tr>

</table>
</body>
</html>
源代码HTML3文件下载地址: http://url.cn/UxXT7n

 

通过清心醉

网页制作一:html静态网页

<!– –>

<!–注释:在该符号内的游览器不实施编译显示–>
<!–虽然目前编辑静态网页制作的软件有很多,比如网页三剑客及Frontpage–>
<!–于C++及C语言上对比来说,C++是C的超集,比如增加一个按钮只需要在MFC下选择添加就是–>
<!–网页制作也一样,以下内容属于底层的代码基础,略懂就可以了,如实际开发可在Frontpage或三剑客等平台–>
<!–以下小节代码只需复制粘贴即可查看效果,该行语句为注释–>
更多静态资料及完整的手册教材
请通过以下链接下载查看:
http://url.cn/TqeJ9I

<!–基本结构及输出hello word–>
<html>                                                             <!–html开始 –>
<head></heda>                                               <!–文件头开始–>
<body>                                                            <!– 内容开始–>
hello word
<!–输出显示字符hello word,好比C++的第一课入门 cout<<“hello word”<<endl; –>
</body>                                                           <!–内容结尾 –>
</html>                                                            <!–html结尾–>

<!–改变hello word的字体应用–>
<!–只修改前面的内容体–>
<b>hello word</b><br/>
<!–字体加粗,”br/”为换行–>
<font color=”black”>hello word</font>
<!–字体颜色为黑–>
<font size=”3″>hello word</font>
<!–字体字号为3,默认值为1-7 –>
<font style=”font-size:100px;”> hello word</font>
<!–因为HTML的默认值为1-7(除了用其他软件可以直接设置字体大小)–>
<!–初次接触CSS下控制字体为100相素大小–>
<font color=”black”><font size=”3″>hello word</font>
<!–3号的黑色字体hello word–>
<!–不知道是否可以修改为以下,服务器暂时关闭,明天开机测试–>
<font color=”black”  size=”3″>hello word</font>
该代码经过测试,可行
简单说就是<font>内容</font>
在<font>里设置各种操作及值即可

<!–增加URL及MAIL链接–>
<a href=”http://qingxinzui.gicp.net:200“>打开我的200端口主页</a>
<a href=”mailto:14870428@qq.com”>打开发送邮件至我的邮箱</a>
<a href=”http://qingxinzui.gicp.net:200” target=”_blank”>在新窗口中打开我的200端口主页</a>

<!–PHP商务软件的邮箱设置,其实只是一个字符串变量–>
<!–PHP平台下我定义个mail数据成员,$mail –>
<!–然后后台的text文本输入管理员邮箱–>
<!–将用户输入的值传递给$mail–>
/*
以C++来写注释好了,PHP的环境可以认出该注释*/
/*
用户输入的值传递后,系统判断格式(代码不写),格式正确保存至数据库
a href= $mail;
当用户需要联系邮箱时,指向$mail变量的数据体
可能由于语句的使用不一,会错误,以上只是思路,修改成专业网站语言的时候情况各有不一
*/

<!–增加图片地址–>
<img src=”X:/图片路径/我的图片.jpg” width=”500px” height=”300px” /> </img>
<!– 如果只设置了width或者height,会根据实际图片大小改变另一个值的参数相素–>
<img src=” URL链接图片地址 ”  width=”500″ height=”300″ /> </img>

/*注释*/
/*
很多静态网页,修改图片的方式第一就是修改目录下的图片,复制过自己需要的
二是重新指向图片目录地址,但这不太实际,因为有可能很多代码都指向了图片的位置
这么一修改代码的指向位置,其他指向相同位置的路径也必须修改
比如我建设了一个网站
主目录有以下文件:
index.html  //主文件
imgsrc //图片文件夹
(假设imgsrc目录里有个1.jpg文件)
那么通写格式为:
<img src=”/imgsrc/1.jpg” width=”100″ height=”100″ /> </img>
这么写是说明是当前目录(也可以说是相对目录,即和当前HTML(PHP和ASP也一样)同一文件夹内)
要写成:
<img src=”C:/imgsrc/1.jpg” width=”100″ height=”100″/> </img>
这么写就是绝对目录
*/
//如果我打开一个网页,鼠标移动到图片的时候,要图片显示点信息
<img src=”图片路径” width=”100″ height=”100″  alt=”输入要显示的文字信息” /> </img>
//如果需要给图片加边框
<img src=”图片路径” width=”100″ height=”100″  border=”1px” alt=”输入要显示的文字信息” /> </img>
//如果需要边框加颜色,自然要多一个属性bordercolor=”颜色代码”或者bordercolor=”颜色值”
<img src=”图片路径” width=”100″ height=”100″  border=”1px” border=”black” alt=”输入要显示的文字信息” /> </img>
//关于颜色
// color=”black”  表示黑色;;
// 也可以用十六进制的符号定义 color=”#000000″  也是表示黑色
//更多请参考下载文件内的W3CSchool–HTML系列教程–HTM颜色、颜色值及 颜色名

通过清心醉

自写C++六

由于该版本增加背景音乐文件,文件过大,代码不放,直接放文件。

下载编译即可运行。

//下载地址:http://url.cn/Qmh0uf

通过清心醉

自写C++五

//下载地址:http://url.cn/KZfZn1

#include <iostream>
#include <string>
#include <stdlib.h>
#include <ctype.h>
#include <stdio.h>
#include <conio.h> //getch()屏幕停留函数需要
#include <time.h> //系统随机
#include <fstream> //数据保存到文件的文件流头文件
#include “windows.h”
using namespace std;
ifstream openin; //文件控制的输入
ofstream openout; //文件控制的输出

//如果帐号只注册了,下次登陆因为没数据,那导入文件的时候
//应该生成一个默认的数
//还有名字应该提前输入
//getch()部分更改为Sleep(2000);Csen(); 2秒刷新
void UPdate() //更新
{
cout<<“*************** 本次更新添加:***************”<<endl;
cout<<“当前版本号: V1.5″<<endl;
cout<<“1、添加游戏运行后,正常退出时数据保存到目录指定文件”<<endl;
cout<<” 支持多个帐号的数据”<<endl;
cout<<“2、帐号注册后,也给予保存,但目前只支持一个帐号”<<endl;
cout<<” 考虑到帐号用数据形式存放在同一个文件中”<<endl;
cout<<“”<<endl;
cout<<” 2013-03-05 “<<endl;
cout<<endl<<endl<<endl;
cout<<“提醒:”<<endl;
cout<<“由于是WIN32的API平台编辑,非MFC图形,所以此游戏用于CMD命令支持。”<<endl<<endl;
cout<<endl;
cout<<” “<<“如果可以,建议不使用GM工具增加攻防血法等来实际操作。”<<endl;
getch();
}
void gongneng()
{
cout<<” 程序目前正常注册,登陆验证;由于没有数据库暂时取消”<<endl;
cout<<” 提供回合制,由玩家先行攻击;”<<endl;
cout<<” 自动清屏,以免产生数据过多显示查看困难;”<<endl;
cout<<” 增加车夫,在每个地图结束PK回合后车夫将提示;”<<endl;
cout<<” 增加HP、MP上限最大值 “<<endl;
cout<<” 等级系统,等级+1,固定加20000,攻防金币额+等级*200、血法额+等级*2000″<<endl;
cout<<“同时升级后当前HP、MP为上限最大值”<<endl;
cout<<” 金币系统,并且支持随机增加 “<<endl;
cout<<” NPC系统,提供能力书的交易”<<endl;
cout<<” 角色死亡后直接回出生地《猪圈》,并不直接退出游戏 “<<endl;
cout<<” 角色死亡后回出生地,HP值为正常的80%”<<endl;
cout<<” 开放5个技能 “<<endl;
cout<<” 添加攻击有机率产生最高2倍的重击、神圣伤害,游戏币随机增加”<<endl;
cout<<” 怪物也添加随机攻击,修改攻击不破防随机产生伤害”<<endl;
cout<<” 修改角色升级后HP和MP变满”<<endl;
cout<<” 修改角色攻不破防的时候,随机打出(1-10000)+固定22000至55000《给予重击》”<<endl;
cout<<“如果怪物破防则随机添加(1-1000)+固定1000《不给予重击等》”<<endl;
cout<<” 角色名字由玩家自行定义”<<endl;
cout<<” GM工具:密码暂设为 0 “<<endl;
cout<<“**************************************************************************”<<endl;
cout<<endl<<“是否给怪物BOSS设置技能,如终级BOSS,也弄个随机,有机会打出固定N的值”<<endl;
getch();

}
void Toremind() //提醒
{
cout<<“提醒:”<<endl<<” “<<endl;
cout<<“字符串尚未做完善,输入多位”<<endl
<<“程序将跳过几步骤。”<<endl
<<“字符串学习中,待更新中….”<<endl
<<“**************************”<<endl
<<“******猪*头*历*险*记******”<<endl
<<“**************************”<<endl
<<” “<<endl;
}

void Csen() //怕屏幕内容太多,添加一清屏函数
{
system(“cls”);
}
class PIG_GAME
{
private:
int Level; int Experience; int tempExperience;//等级 经验 升级所需经验
int MoerExperience; // 每个地图的怪物获取的经验,击败怪物后数值归0;
int CrityAttack; //攻
int CrityDefense; //防
int CrityLife; //当前HP
int CrityMagic; //MP
int BigCrityLife; //最大HP
int BigCrityMagic; //MP
int Moerattack; int Moerdefense;
int Moerlife; int Moermagic;
//以上四整型是怪物攻防HP、MP
int skillattack; //释放技能增加的攻击,在每一个技能栏里给予赋值,技能结束后归0;
int skillmagic; //释放技能消耗的MP,技能结束归0
int Money; int tempmomey;//游戏币
int CrityAttackadj; //随机 根据角色攻击给予赋值,
int Moneyadj; //金币随机增加,取当前地图怪物来附加攻击
int crity_adj; //用于捕抓角色随机的数值,判断是否输出重击
int Crityadj_moerdefense; //角色不破怪物防御的随机伤害
int Crityadj_moerdefense_adj; //角色不破防御输出产生的重击等
int Moeradj_critydefense; //怪物不破角色防御的随机伤害
string name; //玩家自行填写角色名字
int Number; //数字帐号,只能用于找回角色
char str[1000];
//用户输入帐号密码时输入的编号,用于判断拥护输入的编号是多少则打开对应角色文件
private:

char account[16];
char password[16];
char tempaccount[16];
char temppassword[16];
void open_2()
{
int o;//数字帐号
int i=0;
labelopen_2:
cout<<endl<<endl;
cout<<“请输入您的帐号:”; cin>>account;
cout<<“请输入您的密码:”; cin>>password;
cout<<endl<<endl;
openin.open(“Crity/AccountAndPassword/accountAndpassword.dat”);//打开文件,如果没有则创建
openin>>tempaccount>>temppassword>>o; //调出帐号,密码,编号
while (1)
{
if (strcmp(account,tempaccount)==0 && strcmp(password,temppassword)==0)
{
cout<<“正确”<<endl;
cout<<“任意键开始”<<endl;
sprintf(str,”Crity/Access/ %d.dat”,o);
//成员str就是要打开的文件目录、文件名o(其实就是保存时的Number)
getch(); openin.close();//关闭文档
open_in();//载入用户数据
//如果给地图设置ID,角色在哪个地图退出后重回那地图
mapno0();

}
else
{

if (i++==2)
{
cout<<“您输入错误3次,请稍后在试!”<<endl;
exit(0); //退出
}
cout<<“您输入错误,请重新输入:”<<endl;
goto labelopen_2;
}
}
}
void open_1()
{
labelopen_1:
cout<<“请输入您注册的帐号”<<endl;
cin>>account;
cout<<“请输入您注册帐号的密码”<<endl;
cin>>password;
cout<<“您的帐号是:”<<account<<endl;
cout<<“您的密码是:”<<password<<endl;
openin.open(“Crity/AccountAndPassword/accountAndpassword.dat”);//打开文件,如果没有则创建
char a[16];char b[16];
int tempnumber=0;
openin>>a>>b>>tempnumber; //取出第一个,未来多帐号就需要一行行判断
//把帐号密码文本里的帐号a,密码b,编号tempnumber取出
if (strcmp(account,a)==0)
{ //判断帐号与取出来的是否有重复
Csen();
cout<<“帐号已经存在,请重新注册”<<endl;
goto labelopen_1;
}
Number=tempnumber+1;
cout<<“您的数字账号是:”<<Number<<endl;
cout<<“请输入您的角色名字:”;cin>>name;
cout<<“您的角色名字为:”<<name<<endl;
Sleep(3000);Csen(); //3秒后刷新
openout.open(“Crity/AccountAndPassword/accountAndpassword.dat”);//帐号保存
openout<<account<<” “<<password<<” “<<Number<<endl;
openout.close();
mapno();//生成默认角色属性
cout<<“系统正在保存您的帐号密码…”<<endl<<endl<<endl;
getch();
Csen();
}

public:
void gameopen()
{
int i;
labelgameopen:
Csen();
cout<<“欢迎使用清心游戏平台”<<endl;
cout<<“1、注册新用户”<<” “<<“2、用已有帐号密码登陆”
<<” “<<“0、退出游戏”<<endl;
cin>>i;
switch(i)
{
case 1:open_1();break;
case 2:open_2();break;
case 3:exit(0);
default:cout<<“输入错误,请重新选择”<<endl;
goto labelgameopen;break;
}

}

void Crity_Moer_Defense() //角色不破怪物防
{
int o;
srand((unsigned)time(NULL));
o=rand()%10;
switch(o)
{
//出现的伤害普遍增加随机伤害1-10000
case 1:Crityadj_moerdefense=rand()%10000;Crityadj_moerdefense_adj=o;break;
//并且把随机的数字Crityadj_moerdefense_adj给crity_adk,判断是否提示多倍伤害
case 4:Crityadj_moerdefense=rand()%10000;Crityadj_moerdefense_adj=o;break;
case 3:Crityadj_moerdefense=rand()%10000;Crityadj_moerdefense_adj=o;break;
case 6:Crityadj_moerdefense=rand()%10000;Crityadj_moerdefense_adj=o;break;
case 5:Crityadj_moerdefense=rand()%10000;Crityadj_moerdefense_adj=o;break;
case 7:Crityadj_moerdefense=rand()%10000+22000;Crityadj_moerdefense_adj=o;break;
case 8:Crityadj_moerdefense=rand()%10000+22000;Crityadj_moerdefense_adj=o;break;
case 9:Crityadj_moerdefense=rand()%10000+22000;Crityadj_moerdefense_adj=o;break;
case 0:Crityadj_moerdefense=rand()%10000+22000;Crityadj_moerdefense_adj=o;break;
case 2:Crityadj_moerdefense=rand()%10000+52000;Crityadj_moerdefense_adj=o;break;
}
}
void Crity_Moer_Defense_toremind() //不破防随机伤害的公告
{
switch(Crityadj_moerdefense_adj)
{
//随机出现的数字已经给了 Crityadj_moerdefense_adj=o;
//Crityadj()成员函数已为其赋值,记得先要调取该函数后才调取这个
case 7:
cout<<“***出现神圣一击***”<<endl;break;
case 8:
cout<<“***出现神圣一击***”<<endl;break;
case 0:
cout<<“***出现重击***”<<endl;break;
case 9:
cout<<“***出现重击***”<<endl;break;
case 2:
cout<<“***出现神圣一击和重击***”<<endl;break;
default: //如果不加,在攻击时调取了此函数,结果非0-2-7时将中指.
break; //在此设置只为跳出该开关函数
}
}
void Moer_Crity_Defense() //怪物不破角色防御
{
int o=1000;
srand((unsigned)time(NULL));
Moeradj_critydefense=rand()%1000+o;
}
void huihe_Toremind() //PK时显示
{
cout<<endl;
cout<<“名字:”<<name<<” “<<“编号”<<Number<<endl;
cout<<“属性:”<<“攻击:”<<CrityAttack<<” 防御:”<<CrityDefense<<endl;
cout<<“等级:”<<Level<<“生命:”<<CrityLife<<“/”<<BigCrityLife<<” 魔法:”
<<CrityMagic<<“/”<<BigCrityMagic<<” 金币”<<Money<<endl;
cout<<“*****************************************”<<endl;
cout<<“怪物属性:”<<“攻击:”<<Moerattack<<” 防御:”<<Moerdefense<<endl;
cout<<” “<<“生命:”<<Moerlife<<” 魔法:”<<Moermagic<<endl;
}
//*********************************************************************
void Crityadj() //角色随机
{
int tempcrityattackadj_one=CrityAttack*0.8; //临时随机攻击
int tempcrityattackadj_two=CrityAttack*0.8;
int tempcrityattackadj_three=CrityAttack*2.2;
int o;
srand((unsigned)time(NULL)); //随机条件
o=rand()%10; //为避免经常出现多倍或者增加过多的伤害,随机为10个
switch(o)
{
//出现的伤害普遍增加随机伤害1-10000
case 1:CrityAttackadj=rand()%10000;crity_adj=o;break;
//并且把随机的数字o给crity_adk,判断是否提示多倍伤害
case 4:CrityAttackadj=rand()%10000;crity_adj=o;break;
case 3:CrityAttackadj=rand()%10000;crity_adj=o;break;
case 6:CrityAttackadj=rand()%10000;crity_adj=o;break;
case 5:CrityAttackadj=rand()%10000;crity_adj=o;break;
case 7:CrityAttackadj=rand()%10000+tempcrityattackadj_one;crity_adj=o;break;
case 8:CrityAttackadj=rand()%10000+tempcrityattackadj_one;crity_adj=o;break;
case 9:CrityAttackadj=rand()%10000+tempcrityattackadj_two;crity_adj=o;break;
case 0:CrityAttackadj=rand()%10000+tempcrityattackadj_two;crity_adj=o;break;
case 2:CrityAttackadj=rand()%10000+tempcrityattackadj_three;crity_adj=o;break;
}
}
void crity_adj_toremind() //随机参数的公告
{
switch(crity_adj)
{
//随机出现的数字已经给了 crity_adj=o;
//Crityadj()成员函数已为其赋值,记得先要调取该函数后才调取这个
case 7:
cout<<“***出现神圣一击***”<<endl;break;
case 8:
cout<<“***出现神圣一击***”<<endl;break;
case 0:
cout<<“***出现重击***”<<endl;break;
case 9:
cout<<“***出现重击***”<<endl;break;
case 2:
cout<<“***出现神圣一击和重击***”<<endl;break;
default: //如果不加,在攻击时调取了此函数,结果非0-2-7时将中指.
break; //在此设置只为跳出该开关函数
}
}
//*********************************************************************
void crity() //人物
{

cout<<“名字:”<<name<<” 编号:”<<Number<<endl;cout<<“等级:”<<Level<<endl;
cout<<“攻击:”<<CrityAttack<<endl;cout<<“防御:”<<CrityDefense<<endl;
cout<<“HP:”<<CrityLife<<“/”<<BigCrityLife<<endl;
cout<<“MP:”<<CrityMagic<<“/”<<BigCrityMagic<<endl;
cout<<“金币:”<<Money<<endl;
cout<<“当前经验”<<Experience<<“/”<<“升级经验”<<tempExperience<<endl;
cout<<endl<<endl;
}
//*********************************************************************
void monster() //由于怪物名称不一样,在调取该函数前,提前输出怪物名称
{
cout<<“**********”<<endl;
cout<<“攻击:”<<Moerattack<<endl;
cout<<“防御:”<<Moerdefense<<endl;
cout<<“HP:”<<Moerlife<<endl;
cout<<“MP:”<<Moermagic<<endl;
cout<<“**********”<<endl;
}
//*********************************************************************
void repeat() //提示进行PK
{
cout<<“**********”<<endl;
cout<<“请输入技能快捷键进行先行攻击”<<endl;
cout<<“1、猪小跑:增加”<<20000*Level<<“攻击,消耗”<<500*Level<<“MP “<<“技能等级 “<<Level<<endl;
cout<<“2、猪大跑:增加”<<50000*Level<<“攻击,消耗”<<1000*Level<<“MP “<<“技能等级 “<<Level<<endl;
cout<<“3、HP恢复”<<50000*Level<<” MP恢复”<<2000*Level<<” 技能等级 “<<Level<<endl;
cout<<“4、防御增加”<<Level*10<<“%”<<” 技能等级 “<<Level<<endl;
cout<<“5、天崩地裂:释放自身攻击*2*等级的伤害,HP-“<<50000*Level<<” MP-“<<5000*Level<<” 技能等级 “<<Level<<endl;
cout<<“9、逃跑(回猪城)”<<endl;
cout<<“0、提醒||帮助”<<endl;
cout<<“**********”<<endl;huihe_Toremind();
SKILL_PK();

}
//*********************************************************************
void LveExp() //升级经验
{

if (Experience>=tempExperience)
{
labelexperience:
Level++;
tempExperience=(tempExperience*2)+(Level*5000);
cout<<“您升级了!您的等级:”<<Level<<endl;
LVcrity();
if (Experience>=tempExperience)
{ //当升级一次以后,如果经验还是比升级所需经验多,再循环一次
//如此一来用GM工具修改攻击一次杀掉大BOSS时可以直接跳高级
goto labelexperience;
}
}
}
//*********************************************************************
void Resurrection() //原地复活
{
char i;
int tempmoney=(Level*2)+888;
cout<<“原地需要费用”<<(Level*2)+888<<“金币”<<endl;
if (Money<(Level*2)+888)
{
cout<<“您的金币不足,按任意键回城”<<endl;
getch();
CrityLife=BigCrityLife*0.8;
CrityMagic=BigCrityMagic*0.8;
mapno0();
}
cout<<“是否需要原地复活?”<<endl<<“y”<<” “<<“n”<<endl;
cin>>i;
switch(i)
{
case ‘y’:
cout<<“已原地复活”<<endl;
Money=Money-((Level*2)+888);
CrityLife=BigCrityLife*0.8;
CrityMagic=BigCrityMagic*0.8;
break;
case ‘n’:
CrityLife=BigCrityLife*0.8;
CrityMagic=BigCrityMagic*0.8;
mapno0();break;
default:
mapno0();break;
}
}
//*********************************************************************
void LVcrity() //属性的提升
{
Money=Money+20000+(Level*200);
CrityAttack=CrityAttack+20000+(Level*200);
CrityDefense=CrityDefense+20000+(Level*200);
BigCrityLife=BigCrityLife+20000+(Level*2000);
BigCrityMagic=BigCrityMagic+20000+(Level*2000);
CrityLife=BigCrityLife; //升级后,角色当前生命=生命上限
CrityMagic=BigCrityMagic;

}

//*********************************************************************
void SKILL_PK() //选择技能开关
{
char i;
int o=0;
labelskpk:
cin>>i;
switch(i)
{
case ‘1’:
Csen();CRITY_SKILL_ONE();
break;
case ‘2’:
Csen();CRITY_SKILL_TWO();
break;
case ‘3’:
Csen();CRITY_SKILL_THREE();
break;
case ‘4’:
Csen();CRITY_SKILL_FOUR();
break;
case ‘5’:
Csen();CRITY_SKILL_FIVE();
break;
case’0′:
Csen();cout<<“提醒||帮助”<<endl;
Toremind();repeat();
case’9′:
Csen();cout<<“逃跑!”<<endl;
mapno0();
default:
if (o++==3)
{
cout<<“释放技能错误三次,游戏将退出”<<endl;
exit(0);
}
cout<<“技能释放错误,请重新输入”<<endl;
goto labelskpk;

}
}
//*********************************************************************
void win() //胜利的时候属性的增加已经还原
{
Moerlife=0;Moerattack=0;
Moerdefense=0;Moermagic=0;
skillattack=0;skillmagic=0;
Money=Money+tempmomey+Moneyadj;
Experience=Experience+MoerExperience;
MoerExperience=0;tempmomey=0;
}
void skill() //技能
{
while (1)
{
cout<<“释放技能:”<<endl;
if (Moerdefense>(CrityAttack+skillattack)) //如果怪物防御大于攻击
{
Crity_Moer_Defense_toremind(); //不破防随机伤害的公告
cout<<“给对方造成伤害:”
<<Crityadj_moerdefense<<endl;
Moerlife=Moerlife-Crityadj_moerdefense;
CrityMagic=CrityMagic-skillmagic;
if (Moerlife<0)
{
cout<<“**********”<<endl;
cout<<“恭喜您胜利了!”<<endl;
cout<<“**********”<<endl;
win();
LveExp();getch();Csen();
GOTOMAP();
break;
}
huihe_Toremind();getch();Csen();
cout<<“怪物对您进行攻击:”<<endl;
if (CrityDefense>Moerattack) //如果防御大于怪物攻击
{
cout<<“怪物对您造成伤害:”
<<Moeradj_critydefense<<endl;
CrityLife=CrityLife-Moeradj_critydefense;
if (CrityLife<=0)
{
cout<<“你被怪物重伤昏迷”<<endl;
cout<<“挑战失败!”<<endl;
cout<<“是否原地复活?”<<endl;
Resurrection();repeat();
}
huihe_Toremind();getch();Csen();
}
else
{
cout<<“怪物对您造成伤害”<<(Moerattack+Moeradj_critydefense)-CrityDefense<<endl;
CrityLife=CrityLife-((Moerattack+Moeradj_critydefense)-CrityDefense);
if (CrityLife<=0)
{
cout<<“你被怪物重伤昏迷”<<endl;
cout<<“挑战失败!”<<endl;
cout<<“是否原地复活?”<<endl;
Resurrection();repeat();
}
huihe_Toremind();getch();Csen();
repeat();
}
}
else
{
cout<<“给对方造成伤害:”<<(CrityAttack+skillattack)-Moerdefense<<endl;
crity_adj_toremind(); //如果随机函数出现了重击等,系统显示;
Moerlife=(Moerlife-((CrityAttack+skillattack)-Moerdefense));
CrityMagic=CrityMagic-skillmagic;
if (Moerlife<=0)
{
cout<<“**********”<<endl;
cout<<“恭喜您胜利了!”<<endl;
cout<<“**********”<<endl;
win();
LveExp();getch();Csen();
GOTOMAP();
break;
}
else
{
getch();Csen();
cout<<“怪物对您进行攻击:”<<endl;
if (CrityDefense>Moerattack) //如果防御大于怪物攻击
{
cout<<“怪物对您造成伤害:”
<<Moeradj_critydefense<<endl;
CrityLife=CrityLife-Moeradj_critydefense;
if (CrityLife<=0)
{
cout<<“你被怪物重伤昏迷”<<endl;
cout<<“挑战失败!”<<endl;
cout<<“是否原地复活?”<<endl;
Resurrection();repeat();
break;
}
huihe_Toremind();getch();Csen();
repeat();
}
else
{
cout<<“怪物对您造成伤害”<<(Moerattack+Moeradj_critydefense)-CrityDefense<<endl;
CrityLife=CrityLife-((Moerattack+Moeradj_critydefense)-CrityDefense);
if (CrityLife<=0)
{
cout<<“你被怪物重伤昏迷”<<endl;
cout<<“挑战失败!”<<endl;
cout<<“是否原地复活?”<<endl;
Resurrection();repeat();
break;
}
getch();Csen();
repeat();
}
}
}
}
}
//*********************************************************************
void CRITY_SKILL_ONE() //技能1
{
Crityadj(); //先给个随机数初始化
Crity_Moer_Defense();Moer_Crity_Defense();
//不破防的上限伤害函数
skillattack=(20000*Level)+CrityAttackadj;
//在这里攻击的临时技能其实就已经把随机给的值给附加上了
int tempskillattack=20000*Level;
//这个是用来显示技能攻击的
skillmagic=500*Level;

cout<<“猪小跑:增加”<<tempskillattack<<“攻击,消耗”<<skillmagic<<“MP”<<endl<<“技能等级”<<Level<<endl;
if (CrityMagic<skillmagic)
{
cout<<“你的MP值不足”<<endl;
getch();Csen();
repeat();
}
else
{
Csen();
skill();
}

}
//*********************************************************************
void CRITY_SKILL_TWO() //技能2
{
Crityadj(); //先给个随机数初始化
Crity_Moer_Defense();Moer_Crity_Defense();
skillattack=(50000*Level)+CrityAttackadj;
//在这里攻击的临时技能其实就已经把随机给的值给附加上了
int tempskillattack=20000*Level;
//这个是用来显示技能的攻击的
skillmagic=1000*Level;

cout<<“猪大跑:增加”<<tempskillattack<<“攻击,消耗”<<skillmagic<<“MP”<<endl<<“技能等级”<<Level<<endl;
if (CrityMagic<skillmagic)
{
cout<<“你的MP值不足”<<endl;
getch();Csen();
repeat();
}
else
{
Csen();
skill();
}

}
//*********************************************************************
void CRITY_SKILL_THREE() //技能3
{
Moer_Crity_Defense(); //由于角色不参与攻击,所以只添加怪物不破防函数
while(1)
{
cout<<“**********”<<endl;
cout<<“释放技能:”<<endl;
cout<<“HP恢复:”<<50000*Level<<” “<<“MP恢复:”<<2000*Level<<endl;
cout<<“技能等级:”<<Level;
CrityLife=CrityLife+(50000*Level);
if (CrityLife>BigCrityLife)
{
CrityLife=BigCrityLife;
}
CrityMagic=CrityMagic+(2000*Level);
if ( CrityMagic>BigCrityMagic)
{ //如果恢复的大于最大值,则把结果恢复成一样。
CrityMagic=BigCrityMagic;
}
getch();Csen();
cout<<“怪物对您进行攻击:”;
if(CrityDefense>Moerattack)
{
cout<<“怪物对您造成伤害:”
<<Moeradj_critydefense<<endl;
CrityLife=CrityLife-Moeradj_critydefense;
if (CrityLife<=0)
{
cout<<“你被怪物重伤昏迷”<<endl;
cout<<“挑战失败!”<<endl;
cout<<“是否原地复活?”<<endl;
Resurrection();repeat();
break;
}
repeat();
}
else
{
cout<<“怪物对您造成伤害”<<(Moerattack+Moeradj_critydefense)-CrityDefense<<endl;
CrityLife=CrityLife-((Moerattack+Moeradj_critydefense)-CrityDefense);
if (CrityLife<=0)
{
cout<<“你被怪物重伤昏迷”<<endl;
cout<<“挑战失败!”<<endl;
cout<<“是否原地复活?”<<endl;
Resurrection();repeat();
}
getch();Csen();
repeat();
}
}

}
//*********************************************************************
void CRITY_SKILL_FOUR() //技能4
{
Moer_Crity_Defense();//同上技能3
while (1)
{
int tempCrityDefense=CrityDefense*(Level*0.1);
cout<<“防御增加”<<Level*10<<“%”<<endl;
cout<<“当前防御:”<<CrityDefense<<“+”<<tempCrityDefense
<<“=”<<CrityDefense+tempCrityDefense<<endl;
cout<<“怪物对您进行攻击:”;
if ((CrityDefense+tempCrityDefense)>Moerattack) //如果防御大于怪物攻击
{
cout<<“怪物对您造成伤害:”
<<Moeradj_critydefense<<endl;
CrityLife=CrityLife-Moeradj_critydefense;
if (CrityLife<=0)
{
cout<<“你被怪物重伤昏迷”<<endl;
cout<<“挑战失败!”<<endl;
cout<<“是否原地复活?”<<endl;
Resurrection();repeat();
}
getch();Csen();
repeat();
getch();Csen();
repeat();
break;
}
cout<<“怪物对您造成伤害”<<(Moerattack+Moeradj_critydefense)-(CrityDefense+tempCrityDefense)<<endl;
CrityLife=CrityLife-((Moerattack+Moeradj_critydefense)-(CrityDefense+tempCrityDefense));
if (CrityLife<=0)
{
cout<<“你被怪物重伤昏迷”<<endl;
cout<<“挑战失败!”<<endl;
cout<<“是否原地复活?”<<endl;
Resurrection();repeat();
}
getch();Csen();
repeat();
}

}
//*********************************************************************
void CRITY_SKILL_FIVE() //技能5
{
Crityadj();Crity_Moer_Defense();Moer_Crity_Defense();
skillattack=(CrityAttack*2*Level)+CrityAttackadj;
//在这里攻击的临时技能其实就已经把随机给的值给附加上了
int tempcritylife=50000*Level;
skillmagic=5000*Level;
cout<<“终级技能:天崩地裂”<<endl;
cout<<“释放自身攻击*2*等级的伤害,HP-“<<tempcritylife<<” MP-“<<skillmagic<<endl;

if (CrityLife<tempcritylife || skillmagic>CrityMagic)
{
cout<<“你的HP或MP不足,不能使用此技能”<<endl;
getch();Csen();
repeat();
}
else
{
CrityLife=CrityLife-tempcritylife;
skill();
}
}
//*********************************************************************
void GOTOMAP() //地图传送
{
char i;
int o=0;
labelgotomap:
carmap();//调取车夫对话
cin>>i;
switch(i)
{
case ‘1’:Csen();mapno1();break;
case ‘2’:Csen();mapno2();break;
case ‘3’:Csen();mapno3();break;
case ‘4’:Csen();mapno4();break;
case ‘5’:Csen();mapno5();break;
case ‘6’:Csen();mapno6();break;
case ‘7’:Csen();mapno7();break;
case ‘8’:Csen();mapno8();break;
case ‘9’:Csen();mapno9();break;
case ‘0’:Csen();mapno0();break;
default:
if (o++==5)
{
cout<<“传送错误5次,游戏将关闭”<<endl;
exit(0);
}
cout<<“输入错误,请重新输入:”<<endl;
goto labelgotomap;

}

}
//*********************************************************************
void carmap() //车夫,如果直接放地图传送看起来太多太大了。
{
cout<<“车夫:请问需要转送至地图几?”<<endl;
cout<<“1、地图1 (等级不受限制)。 怪物等级1″<<endl;
cout<<“2、地图2 ( 4级以上可进)。 怪物等级 6″<<endl;
cout<<“3、地图3 ( 6级以上可进)。 怪物等级 8″<<endl;
cout<<“4、地图4 ( 8级以上可进)。 怪物等级10″<<endl;
cout<<“5、地图5 (10级以上可进)。 怪物等级12″<<endl;
cout<<“6、地图6 (12级以上可进)。 怪物等级14″<<endl;
cout<<“7、地图7 (14级以上可进)。 怪物等级16″<<endl;
cout<<“8、地图8 (等级不受限制)。 怪物等级15(BOSS区)”<<endl;
cout<<“9、地图9 (等级不受限制)。 怪物等级30(BOSS区)”<<endl;
cout<<“0、猪圈。(出生地,任意点可进)”<<endl;
}
//*********************************************************************

//*********************************************************************
void npc_0()
{
cout<<“您的金币不足”<<endl;
NPC_DEAL(); //返回NPC购买对话

}
void npc_1()
{
while(1)
{
if (Money<5000)
{
npc_0();
}
cout<<“购买成功,你的攻击+10000″<<endl;
CrityAttack=CrityAttack+10000;
Money=Money-5000;
NPC_DEAL();
break;
}
}
void npc_2()
{
while(1)
{
if (Money<5000)
{
npc_0();
}
cout<<“购买成功,你的防御+10000″<<endl;
CrityDefense=CrityDefense+10000;
Money=Money-5000;
NPC_DEAL();
break;
}
}
void npc_3()
{
while(1)
{
if (Money<5000)
{
npc_0();
}
cout<<“购买成功,你的生命值+10000″<<endl;
CrityLife=CrityLife+10000;
BigCrityLife=BigCrityLife+10000;
Money=Money-5000;
NPC_DEAL();
break;
}
}
void npc_4()
{
while(1)
{
if (Money<5000)
{
npc_0();
}
cout<<“购买成功,你的魔法值+5000″<<endl;
CrityMagic=CrityMagic+5000;
BigCrityMagic=BigCrityMagic+5000;
Money=Money-5000;
NPC_DEAL();
break;
}
}
void npc_5()
{
while(1)
{
if (Money<20000)
{
npc_0();
}
cout<<“购买成功,您的攻防血法各+10000″<<endl;
CrityAttack=CrityAttack+10000;
CrityDefense=CrityDefense+10000;
CrityLife=CrityLife+10000;
BigCrityLife=BigCrityLife+10000;
CrityMagic=CrityMagic+5000;
BigCrityMagic=BigCrityMagic+5000;
Money=Money-20000;
NPC_DEAL();
break;
}
}
void npc_6()
{
while(1)
{
if (Money<1000)
{
npc_0();
}
cout<<“购买成功,您的经验值+1000″<<endl;
Experience=Experience+1000;
Money=Money-1000;
LveExp(); //购买经验书后判断是否升级
NPC_DEAL();
break;
}
}
void npc_7()
{
crity();
NPC_DEAL();
}
public:
void mapno()
{ //地图开始 同时进行默认属性初始化
//此函数游戏里只运行一次
//在这给猪头设置初始属性值,可避免角色死亡后
//回到猪圈内,不给予增加升级的属性
CrityAttack=42000;CrityDefense=30000;
CrityLife=100000;BigCrityLife=100000;
CrityMagic=50000;BigCrityMagic=50000;
int lveexp=1000; //默认1级开始的经验=1000
Money=1000;
tempExperience=lveexp;
Level=1;
open_out();//输出属性

}
void NPC_DEAL() //NPC交易函数
{
char i;int o=0;
cout<<“请问您需要购买什么呢?”<<endl;
cout<<“当前金币 “<<Money<<endl;
cout<<“1、攻击能力卷:攻击+10000,消耗5000金币”<<endl;
cout<<“2、防御能力卷:防御+10000,消耗5000金币”<<endl;
cout<<“3、HP能力卷:生命+10000,消耗5000金币”<<endl;
cout<<“4、MP能力卷:魔法+5000,消耗5000金币”<<endl;
cout<<“5、攻防血法综合卷:攻防血法各+10000,消耗20000金币”<<endl;
cout<<“6、经验卷:经验+1000,消耗1000金币”<<endl;
cout<<“7、查看自身属性”<<endl;
cout<<“0、退出NPC交易系统”<<endl;
labelnpc:
cin>>i;
switch(i)
{
case ‘1’:Csen();npc_1();break;
case ‘2’:Csen();npc_2();break;
case ‘3’:Csen();npc_3();break;
case ‘4’:Csen();npc_4();break;
case ‘5’:Csen();npc_5();break;
case ‘6’:Csen();npc_6();break;
case ‘7’:Csen();npc_7();break;
case ‘0’:Csen();mapno0();break;
default:
if (o++==5)
{
cout<<“你选择错误5次,回到出生点”<<endl;
mapno0();
}
cout<<“输入错误,请重新输入:”<<endl;
goto labelnpc;
}
}
void mapno0()
{
char i;

cout<<“载入地图猪圈成功”<<endl;
cout<<“进入出生地猪圈”<<endl;
cout<<endl<<endl;
labelmapno0:
cout<<“您需要做什么?”<<endl;
cout<<“1、买能力书”<<” “<<“2、挑战怪物”<<” “<<“3、自身属性”<<” “<<“4、游戏功能”<<endl;
cout<<“9、GM工具”<<” “<<“0、退出游戏”<<endl;

cin>>i;
switch(i)
{
case’1′:Csen();NPC_DEAL();break;//NPC函数
case’2′:Csen();GOTOMAP();break;//
case ‘3’:Csen();crity();mapno0();break;
case ‘9’:Csen();gm();break;
case’5′:Csen();gongneng();mapno0();break;
case ‘0’:Csen();open_out();//

default:
cout<<“您输入错误,请重新输入”<<endl;
goto labelmapno0;
}
}
void adj_momey()
{
int o;
//可以判断等级或者怪物攻击来增加rand()%1000+Level
srand((unsigned)time(NULL)); //随机
o=rand()%3;
switch(o)
{
case 1:Moneyadj=rand()%1000+1000+(Level*3);
case 2:Moneyadj=rand()%1000+2000+(Level*3);
case 0:Moneyadj=rand()%1000+1500+(Level*3);
}

}
void mapno1()
{
adj_momey();
tempmomey=500; //金币给500+随机
MoerExperience=800; //经验加成
cout<<“载入地图一成功 “;
cout<<“进入地图一:蚂蚁洞”<<endl;
Moerattack=35000; //怪物攻
Moerdefense=35000;
Moerlife=200000;
Moermagic=35000;
cout<<“进入与蚂蚁PK回合:”<<endl;
repeat(); //调取PK开始,如果胜利,继续执行
// Money=Money+700;
//判断加成的经验提升等级
crity();//重新显示人物属性
GOTOMAP();//重新弹出车夫
}

void mapno2()
{
if (Level<4)
{
cout<<“您的等级不能进入此地图,请重新选择”<<endl;
GOTOMAP();
}
adj_momey();
tempmomey=1500;
MoerExperience=40000; //经验加成
cout<<“载入地图二成功 “;
cout<<“进入地图二”<<endl;
Moerattack=55000; //怪物攻
Moerdefense=45000;
Moerlife=300000;
Moermagic=55000;
cout<<“进入与蜗牛PK回合:”<<endl;
repeat(); //调取PK开始,如果胜利,继续执行
//判断加成的经验提升等级
crity();//重新显示人物属性
GOTOMAP();//重新弹出车夫
}
void mapno3()
{
if (Level<6)
{
cout<<“您的等级不能进入此地图,请重新选择”<<endl;
GOTOMAP();
}
adj_momey();
tempmomey=13500;
MoerExperience=99000; //经验加成
cout<<“载入地图三成功 “;
cout<<“进入地图三”<<endl;
Moerattack=105000; //怪物攻
Moerdefense=65000;
Moerlife=800000;
Moermagic=55000;
cout<<“进入与老鼠PK回合:”<<endl;
repeat(); //调取PK开始,如果胜利,继续执行
//判断加成的经验提升等级
crity();//重新显示人物属性
GOTOMAP();//重新弹出车夫
}
void mapno4()
{
if (Level<8)
{
cout<<“您的等级不能进入此地图,请重新选择”<<endl;
GOTOMAP();
}
adj_momey();
tempmomey=99900;
MoerExperience=187000; //经验加成
cout<<“载入地图四成功 “;
cout<<“进入地图四”<<endl;
Moerattack=155000; //怪物攻
Moerdefense=85000;
Moerlife=1000000;
Moermagic=55000;
cout<<“进入与花猫PK回合:”<<endl;
repeat(); //调取PK开始,如果胜利,继续执行
//判断加成的经验提升等级
crity();//重新显示人物属性
GOTOMAP();//重新弹出车夫
}
void mapno5()
{
if (Level<10)
{
cout<<“您的等级不能进入此地图,请重新选择”<<endl;
GOTOMAP();
}
adj_momey();
tempmomey=301243;
MoerExperience=552637; //经验加成
cout<<“载入地图五成功 “;
cout<<“进入地图五”<<endl;
Moerattack=255000; //怪物攻
Moerdefense=105000;
Moerlife=1300000;
Moermagic=55000;
cout<<“进入与小狗PK回合:”<<endl;
repeat(); //调取PK开始,如果胜利,继续执行
//判断加成的经验提升等级
crity();//重新显示人物属性
GOTOMAP();//重新弹出车夫
}
void mapno6()
{
if (Level<12)
{
cout<<“您的等级不能进入此地图,请重新选择”<<endl;
GOTOMAP();
}
adj_momey();
tempmomey=420398;
MoerExperience=2285700; //经验加成
cout<<“载入地图六成功 “;
cout<<“进入地图六”<<endl;
Moerattack=305000; //怪物攻
Moerdefense=125000;
Moerlife=1500000;
Moermagic=55000;
cout<<“进入与狼PK回合:”<<endl;
repeat(); //调取PK开始,如果胜利,继续执行
//判断加成的经验提升等级
crity();//重新显示人物属性
GOTOMAP();//重新弹出车夫
}
void mapno7()
{
if (Level<14)
{
cout<<“您的等级不能进入此地图,请重新选择”<<endl;
GOTOMAP();
}
adj_momey();
tempmomey=5000000;
MoerExperience=6666666; //经验加成
cout<<“载入地图七成功 “;
cout<<“进入地图七”<<endl;
Moerattack=355000; //怪物攻
Moerdefense=145000;
Moerlife=1700000;
Moermagic=55000;
cout<<“进入与老虎PK回合:”<<endl;
repeat(); //调取PK开始,如果胜利,继续执行
//判断加成的经验提升等级
crity();//重新显示人物属性
GOTOMAP();//重新弹出车夫
}
void mapno8()
{
adj_momey();
tempmomey=1000000;
MoerExperience=2222222; //经验加成
cout<<“载入地图八成功 “;
cout<<“进入地图八”<<endl;
Moerattack=200000; //怪物攻
Moerdefense=180000;
Moerlife=5000000;
Moermagic=55000;
cout<<“进入与狮子PK回合:”<<endl;
repeat(); //调取PK开始,如果胜利,继续执行
//判断加成的经验提升等级
crity();//重新显示人物属性
GOTOMAP();//重新弹出车夫
}
void mapno9()
{
adj_momey();
tempmomey=3000000;
MoerExperience=10000000; //经验加成
cout<<“载入地图九成功 “;
cout<<“进入地图九”<<endl;
Moerattack=1000000; //怪物攻
Moerdefense=500000;
Moerlife=20000000;
Moermagic=55000;
cout<<“进入与’猎人’PK回合:”<<endl;
repeat(); //调取PK开始,如果胜利,继续执行
//判断加成的经验提升等级
crity();//重新显示人物属性
GOTOMAP();//重新弹出车夫
}
protected:
int mima;
void mi_ma()
{
mima=0; //将密码修改为保护模式
//此操作是如果在正式程序的时候,防止他人通过其他外接函数修改
/*
如:反汇编者利用一个函数(得知密码在此的变量名为mima的时候)
void xiugaimima()
{
int i;
cin>>i;
mima=i;
}
在进入GM工具前,已经通过类似的函数把密码的值(0)给修改成任意数;
这样被破解的机率就相当高
以上纯属作者个人看法
*/
}
private:
int o; //修改的数值
void xiugai()
{

labelxiugai:
cout<<“请输入您要修改的数值(1-1000000):”<<endl;
cin>>o;
if (o<1||o>1000000)
{
cout<<“您输入错误,请重新输入”<<endl;
goto labelxiugai;
}
}
void gmmima()
{
int i;
int o=3;

labelgmmima:
cout<<“请输入GM模式密码”<<endl;
cin>>i;
if (i!=mima)
{

if (o–==1)
{
cout<<“您输入GM密码错误3次。”<<endl;
mapno0();
}
cout<<“密码错误,请重新输入”<<endl;
cout<<“您还剩”<<o<<“次机会”<<endl;
goto labelgmmima;
}
else
{
cout<<“成功进入GM模式”<<endl;
gm();
}
}
void gongji()
{
xiugai();
CrityAttack=CrityAttack+o;
crity();getch(); //修改属性后,显示角色属性,并且屏幕停止
Csen();gm(); //清屏;返回GM模式选择项
}
void fangyu()
{
xiugai();
CrityDefense=CrityDefense+o;
crity();getch(); //修改属性后,显示角色属性,并且屏幕停止
Csen();gm();
}
void shengming()
{
xiugai();
CrityLife=CrityLife+o;
BigCrityLife=BigCrityLife+o;
crity();getch(); //修改属性后,显示角色属性,并且屏幕停止
Csen();gm();
}
void mofa()
{
xiugai();
CrityMagic=CrityMagic+o;
BigCrityMagic=BigCrityMagic+o;
crity();getch(); //修改属性后,显示角色属性,并且屏幕停止
Csen();gm();
}
void jinbi()
{
xiugai();
Money=Money+o;
crity();getch(); //修改属性后,显示角色属性,并且屏幕停止
Csen();gm();
}
public:
void gm()
{
int i;
label_l:
cout<<“进入GM模式,请选择需要修改的数据”<<endl;
cout<<“1、修改角色攻击力(最多一次增加1000000)”<<endl;
cout<<“2、修改角色防御力(最多一次增加1000000)”<<endl;
cout<<“3、修改角色生命值(最多一次增加1000000)”<<endl;
cout<<“4、修改角色魔法值(最多一次增加1000000)”<<endl;
cout<<“5、修改角色游戏币(最多一次增加1000000)”<<endl;
cout<<“0、退出”<<endl;
//cout<<“为了不弄太变态,以后这个将被修改,修改经验值增加的经验及属性”<<endl;
cin>>i;
switch(i)
{
case 1:
gongji();break;
case 2:
fangyu();break;
case 3:
shengming();break;
case 4:
mofa();break;
case 5:
jinbi();break;
case 0:
mapno0();break;
default:cout<<“输入错误,请重新输入”<<endl;
goto label_l;
}
}
private:

void open_out() //文件写出
{
char str1[1000]; //可以生成1000个角色的数据
//用String 字符串来定义会出错,不知道啥问题
sprintf(str1,”Crity/Access/ %d.dat”,Number);
//将需要输的目录格式化成字符串,也把Number的参数做为文件名
openout.open(str1);//打开文件,如果没有则创建输出
//如果我的Number=1时,其实上一个代码等于就是str=Crity/”Number”.txt
//在这里是设置用户的号码,等游戏保存的时候,下次登陆,验证帐号密码以后
//在从角色数据的Number里抽取角色的编号文件,这样角色的数据就可以分开了。
openout<<name<<endl;//名字
openout<<Number<<endl;//编号
openout<<Level<<endl;//等级
openout<<Money<<endl;//金币
openout<<CrityAttack<<endl;//攻击
openout<<CrityDefense<<endl;//防御
openout<<CrityLife<<endl;//当前生命值
openout<<BigCrityLife<<endl;//生命值上限
openout<<CrityMagic<<endl;//当前魔法值
openout<<BigCrityMagic<<endl;//魔法值上限
openout<<Experience<<endl;//当前经验
openout<<tempExperience<<endl;//升级经验
openout.close(); //保存关闭
cout<<“数据保存完毕”<<endl;Sleep(2000);
cout<<“退出游戏?”<<endl;cout<<“0 退出”<<” “<<“其他键不退出”<<endl;
int yn;
cin>>yn;
switch(yn)
{

case 0:
cout<<“游戏退出”<<endl;
Sleep(1000);
exit(0);
default:
mapno0();break;
}
}
void open_in() //文件读入
{
string tempname;
int tempnumber;int templevel;int tempmoney;int tempattack;int tempdefense;
int templife;int tempbiglife;int tempmagic;int tempbigmagic;
int tempexp;int temptempexp;

cout<<“导入角色数据成功”<<endl;
openin.open(str); //直接导入角色数据 在帐号密码验证后已得知在哪个文件里
openin>>tempname;
openin>>tempnumber;
openin>>templevel;
openin>>tempmoney;
openin>>tempattack;
openin>>tempdefense;
openin>>templife;
openin>>tempbiglife;
openin>>tempmagic;
openin>>tempbigmagic;
openin>>tempexp;
openin>>temptempexp;
string(name=tempname);
Number=tempnumber;
Level=templevel;
Money=tempmoney;
CrityAttack=tempattack;
CrityDefense=tempdefense;
CrityLife=templife;
BigCrityLife=tempbiglife;
CrityMagic=tempmagic;
BigCrityMagic=tempbigmagic;
Experience=tempexp;
tempExperience=temptempexp;

}
};
PIG_GAME pig_game;

int main(void)
{
// UPdate(); cout<<endl;
pig_game.gameopen();
pig_game.mapno0();
}

通过清心醉

自写C++四

//下载地址:http://url.cn/SGnOuX

#include “iostream.h”
#include “string.h”
#include “stdlib.h”
#include “ctype.h”
#include “stdio.h”
#include “conio.h” //getch()屏幕停留函数需要
#include “time.h” //系统随机

void UPdate() //更新
{
cout<<“*************** 本次更新添加:***************”<<endl;
cout<<“当前版本号: V1.4″<<endl;
cout<<“1、修改角色升级后HP和MP变满”<<endl;
cout<<“2、修改角色攻不破防的时候,随机打出(1-10000)+固定22000至55000《给予重击》”<<endl;
cout<<” 如果怪物破防则随机添加(1-1000)+固定1000《不给予重击等》”<<endl;
cout<<“3、角色名字由玩家自行定义”<<endl;
cout<<“”<<endl;
cout<<” 2013-03-04 “<<endl;
cout<<endl<<endl<<endl;
cout<<“提醒:”<<endl;
cout<<“由于是WIN32的API平台编辑,非MFC图形,所以此游戏用于CMD命令支持。”<<endl<<endl;
cout<<endl;
cout<<” “<<“如果可以,建议不使用GM工具增加攻防血法等来实际操作。”<<endl;
getch();
}
void gongneng()
{
cout<<” 程序目前正常注册,登陆验证;由于没有数据库暂时取消”<<endl;
cout<<” 提供回合制,由玩家先行攻击;”<<endl;
cout<<” 自动清屏,以免产生数据过多显示查看困难;”<<endl;
cout<<” 增加车夫,在每个地图结束PK回合后车夫将提示;”<<endl;
cout<<” 增加HP、MP上限最大值 “<<endl;
cout<<” 等级系统,等级+1,固定加20000,攻防金币额+等级*200、血法额+等级*2000″<<endl;
cout<<“同时升级后当前HP、MP为上限最大值”<<endl;
cout<<” 金币系统,并且支持随机增加 “<<endl;
cout<<” NPC系统,提供能力书的交易”<<endl;
cout<<” 角色死亡后直接回出生地《猪圈》,并不直接退出游戏 “<<endl;
cout<<” 角色死亡后回出生地,HP值为正常的80%”<<endl;
cout<<” 开放5个技能 “<<endl;
cout<<” 添加攻击有机率产生最高2倍的重击、神圣伤害,游戏币随机增加”<<endl;
cout<<” 怪物也添加随机攻击,修改攻击不破防随机产生伤害”<<endl;
cout<<” GM工具:密码暂设为 0 “<<endl;
cout<<“**************************************************************************”<<endl;
cout<<endl<<“是否给怪物BOSS设置技能,如终级BOSS,也弄个随机,有机会打出固定N的值”<<endl;
getch();

}
void Toremind() //提醒
{
cout<<“提醒:”<<endl<<” “<<endl;
cout<<“字符串尚未做完善,输入多位”<<endl
<<“程序将跳过几步骤,此为BUG。”<<endl
<<“字符串学习中,待更新中….”<<endl
<<“**************************”<<endl
<<“******猪*头*历*险*记******”<<endl
<<“**************************”<<endl
<<” “<<endl;
}

void Csen() //怕屏幕内容太多,添加一清屏函数
{
system(“cls”);
}

 

 

class AREA_ //区选择类
{
private:
void generation() //生成角色
{
cout<<“**********”<<endl;
cout<<“生成角色…”<<endl;
cout<<“名字:’name’ “<<endl;
cout<<“等级:0″<<endl;
cout<<“攻击:”<<“0″<<endl;
cout<<“防御:”<<“0″<<endl;
cout<<“HP:”<<“0″<<endl;
cout<<“MP:”<<“0″<<endl;
cout<<“成功拜清心为师”<<endl;
cout<<“**********”<<endl;
}
public:
void numarea() //区号
{
char x;
int i=0;
labelTWO: //标签2,由于怕标签过多,后面加个数字做表示清晰点
cout<<“请选择:”<<endl;
cout<<“1、风之大陆”<<endl;cout<<“2、光之大陆”<<endl;
cout<<“3、水之大陆”<<endl;cout<<“0、退出游戏”<<endl;
cout<<endl;
cin>>x;
if (!isdigit(x))
{
if (i++==2)
{
cout<<“您输入错误3次,请稍后在试!”<<endl;
exit(0);
}
cout<<“您的输入有误,请重新输入”<<endl;
goto labelTWO;
}
else
{
switch(x)
{
case’1′:
Csen();
cout<<“连接风之大陆成功!”<<endl;
cout<<endl<<endl;
generation();
break;
case’2′:
Csen();
cout<<“连接光之大陆成功!”<<endl;
cout<<endl<<endl;
generation();
break;
case’3′:
Csen();
cout<<“连接水之大陆成功!”<<endl;
cout<<endl<<endl;
generation();
break;
case’0′:
cout<<“成功退出游戏,”<<endl
<<“请按任意键退出!”<<endl;
cout<<endl<<endl;
exit(0);
break;
default:
if (i++==2)
{
cout<<“您输入错误3次,请稍后在试!”<<endl;
exit(0);
}
cout<<“您的输入有误,请重新输入”<<endl;
goto labelTWO;
}
}
}
};

class REGISTER_ :public AREA_
{
private:
char account[16];
char password[16];
public:
void open()
{
cout<<“请输入您注册的帐号”<<endl;
cin>>account;
cout<<“请输入您注册帐号的密码”<<endl;
cin>>password;
Csen();
char tempaccount[16];
char temppassword[16];
int i=0;
labelONE:
cout<<endl<<endl;
cout<<“请输入您的帐号:”; cin>>tempaccount;
cout<<“请输入您的密码:”; cin>>temppassword;
if (strcmp(account,tempaccount)==0 && strcmp(password,temppassword)==0)
{
cout<<“正确”<<endl;
cout<<endl;
numarea();
Toremind();
}
else
{
if (i++==2)
{
cout<<“您输入错误3次,请稍后在试!”<<endl;
exit(0);
//退出
}
cout<<“您输入错误,请重新输入:”<<endl;
goto labelONE;
}
}
};

class CELEBRITY_ //人物
{
private:
int Level; int Experience; int tempExperience;//等级 经验 升级所需经验
int MoerExperience; // 每个地图的怪物获取的经验,击败怪物后数值归0;
int CrityAttack; //攻
int CrityDefense; //防
int CrityLife; //当前HP
int CrityMagic; //MP
int BigCrityLife; //最大HP
int BigCrityMagic; //MP
int Moerattack; int Moerdefense;
int Moerlife; int Moermagic;
//以上四整型是怪物攻防HP、MP
int skillattack; //释放技能增加的攻击,在每一个技能栏里给予赋值,技能结束后归0;
int skillmagic; //释放技能消耗的MP,技能结束归0
int Money; int tempmomey;//游戏币
int CrityAttackadj; //随机 根据角色攻击给予赋值,
int Moneyadj; //金币随机增加,取当前地图怪物来附加攻击
int crity_adj; //用于捕抓角色随机的数值,判断是否输出重击
int Crityadj_moerdefense; //角色不破怪物防御的随机伤害
int Crityadj_moerdefense_adj; //角色不破防御输出产生的重击等
int Moeradj_critydefense; //怪物不破角色防御的随机伤害
char name[32]; //玩家自行填写角色名字
void Crity_name()
{
cout<<“请输入您的角色名字:”;cin>>name;
cout<<“您的角色名字为:”<<name<<endl;

}
void Crity_Moer_Defense() //角色不破怪物防
{
int o;
srand((unsigned)time(NULL));
o=rand()%10;
switch(o)
{
//出现的伤害普遍增加随机伤害1-10000
case 1:Crityadj_moerdefense=rand()%10000;Crityadj_moerdefense_adj=o;break;
//并且把随机的数字Crityadj_moerdefense_adj给crity_adk,判断是否提示多倍伤害
case 4:Crityadj_moerdefense=rand()%10000;Crityadj_moerdefense_adj=o;break;
case 3:Crityadj_moerdefense=rand()%10000;Crityadj_moerdefense_adj=o;break;
case 6:Crityadj_moerdefense=rand()%10000;Crityadj_moerdefense_adj=o;break;
case 5:Crityadj_moerdefense=rand()%10000;Crityadj_moerdefense_adj=o;break;
case 7:Crityadj_moerdefense=rand()%10000+22000;Crityadj_moerdefense_adj=o;break;
case 8:Crityadj_moerdefense=rand()%10000+22000;Crityadj_moerdefense_adj=o;break;
case 9:Crityadj_moerdefense=rand()%10000+22000;Crityadj_moerdefense_adj=o;break;
case 0:Crityadj_moerdefense=rand()%10000+22000;Crityadj_moerdefense_adj=o;break;
case 2:Crityadj_moerdefense=rand()%10000+52000;Crityadj_moerdefense_adj=o;break;
}
}
void Crity_Moer_Defense_toremind() //不破防随机伤害的公告
{
switch(Crityadj_moerdefense_adj)
{
//随机出现的数字已经给了 Crityadj_moerdefense_adj=o;
//Crityadj()成员函数已为其赋值,记得先要调取该函数后才调取这个
case 7:
cout<<“***出现神圣一击***”<<endl;break;
case 8:
cout<<“***出现神圣一击***”<<endl;break;
case 0:
cout<<“***出现重击***”<<endl;break;
case 9:
cout<<“***出现重击***”<<endl;break;
case 2:
cout<<“***出现神圣一击和重击***”<<endl;break;
default: //如果不加,在攻击时调取了此函数,结果非0-2-7时将中指.
break; //在此设置只为跳出该开关函数
}
}
void Moer_Crity_Defense() //怪物不破角色防御
{
int o=1000;
srand((unsigned)time(NULL));
Moeradj_critydefense=rand()%1000+o;

}

void huihe_Toremind() //PK时显示
{
cout<<endl;
cout<<“名字:”<<name<<endl;
cout<<“属性:”<<“攻击:”<<CrityAttack<<” 防御:”<<CrityDefense<<endl;
cout<<“等级:”<<Level<<“生命:”<<CrityLife<<“/”<<BigCrityLife<<” 魔法:”
<<CrityMagic<<“/”<<BigCrityMagic<<” 金币”<<Money<<endl;
cout<<“*****************************************”<<endl;
cout<<“怪物属性:”<<“攻击:”<<Moerattack<<” 防御:”<<Moerdefense<<endl;
cout<<” “<<“生命:”<<Moerlife<<” 魔法:”<<Moermagic<<endl;

}
//*********************************************************************
void Crityadj() //角色随机
{
int tempcrityattackadj_one=CrityAttack*0.8; //临时随机攻击
int tempcrityattackadj_two=CrityAttack*0.8;
int tempcrityattackadj_three=CrityAttack*2.2;
int o;
srand((unsigned)time(NULL)); //随机条件
o=rand()%10; //为避免经常出现多倍或者增加过多的伤害,随机为10个
switch(o)
{
//出现的伤害普遍增加随机伤害1-10000
case 1:CrityAttackadj=rand()%10000;crity_adj=o;break;
//并且把随机的数字o给crity_adk,判断是否提示多倍伤害
case 4:CrityAttackadj=rand()%10000;crity_adj=o;break;
case 3:CrityAttackadj=rand()%10000;crity_adj=o;break;
case 6:CrityAttackadj=rand()%10000;crity_adj=o;break;
case 5:CrityAttackadj=rand()%10000;crity_adj=o;break;
case 7:CrityAttackadj=rand()%10000+tempcrityattackadj_one;crity_adj=o;break;
case 8:CrityAttackadj=rand()%10000+tempcrityattackadj_one;crity_adj=o;break;
case 9:CrityAttackadj=rand()%10000+tempcrityattackadj_two;crity_adj=o;break;
case 0:CrityAttackadj=rand()%10000+tempcrityattackadj_two;crity_adj=o;break;
case 2:CrityAttackadj=rand()%10000+tempcrityattackadj_three;crity_adj=o;break;
}

}
void crity_adj_toremind() //随机参数的公告
{
switch(crity_adj)
{
//随机出现的数字已经给了 crity_adj=o;
//Crityadj()成员函数已为其赋值,记得先要调取该函数后才调取这个
case 7:
cout<<“***出现神圣一击***”<<endl;break;
case 8:
cout<<“***出现神圣一击***”<<endl;break;
case 0:
cout<<“***出现重击***”<<endl;break;
case 9:
cout<<“***出现重击***”<<endl;break;
case 2:
cout<<“***出现神圣一击和重击***”<<endl;break;
default: //如果不加,在攻击时调取了此函数,结果非0-2-7时将中指.
break; //在此设置只为跳出该开关函数
}
}
//*********************************************************************
void crity() //人物
{

cout<<“名字:”<<name<<endl;cout<<“等级:”<<Level<<endl;
cout<<“攻击:”<<CrityAttack<<endl;cout<<“防御:”<<CrityDefense<<endl;
cout<<“HP:”<<CrityLife<<“/”<<BigCrityLife<<endl;
cout<<“MP:”<<CrityMagic<<“/”<<BigCrityMagic<<endl;
cout<<“金币:”<<Money<<endl;
cout<<“当前经验”<<Experience<<“/”<<“升级经验”<<tempExperience<<endl;
cout<<endl<<endl;
}
//*********************************************************************
void monster() //由于怪物名称不一样,在调取该函数前,提前输出怪物名称
{
cout<<“**********”<<endl;
cout<<“攻击:”<<Moerattack<<endl;
cout<<“防御:”<<Moerdefense<<endl;
cout<<“HP:”<<Moerlife<<endl;
cout<<“MP:”<<Moermagic<<endl;
cout<<“**********”<<endl;
}
//*********************************************************************
void repeat() //提示进行PK
{
cout<<“**********”<<endl;
cout<<“请输入技能快捷键进行先行攻击”<<endl;
cout<<“1、猪小跑:增加”<<20000*Level<<“攻击,消耗”<<500*Level<<“MP “<<“技能等级 “<<Level<<endl;
cout<<“2、猪大跑:增加”<<50000*Level<<“攻击,消耗”<<1000*Level<<“MP “<<“技能等级 “<<Level<<endl;
cout<<“3、HP恢复”<<50000*Level<<” MP恢复”<<2000*Level<<” 技能等级 “<<Level<<endl;
cout<<“4、防御增加”<<Level*10<<“%”<<” 技能等级 “<<Level<<endl;
cout<<“5、天崩地裂:释放自身攻击*2*等级的伤害,HP-“<<50000*Level<<” MP-“<<5000*Level<<” 技能等级 “<<Level<<endl;
cout<<“9、逃跑(回猪城)”<<endl;
cout<<“0、提醒||帮助”<<endl;
cout<<“**********”<<endl;huihe_Toremind();
SKILL_PK();

}
//*********************************************************************
void LveExp() //升级经验
{

if (Experience>=tempExperience)
{
labelexperience:
Level++;
tempExperience=(tempExperience*2)+(Level*5000);
cout<<“您升级了!您的等级:”<<Level<<endl;
LVcrity();
if (Experience>=tempExperience)
{ //当升级一次以后,如果经验还是比升级所需经验多,再循环一次
//如此一来用GM工具修改攻击一次杀掉大BOSS时可以直接跳高级
goto labelexperience;
}
}
}
//*********************************************************************
void Resurrection() //原地复活
{
char i;
int tempmoney=(Level*2)+888;
cout<<“原地需要费用”<<(Level*2)+888<<“金币”<<endl;
if (Money<(Level*2)+888)
{
cout<<“您的金币不足,按任意键回城”<<endl;
getch();
CrityLife=BigCrityLife*0.8;
CrityMagic=BigCrityMagic*0.8;
mapno0();
}
cout<<“是否需要原地复活?”<<endl<<“y”<<” “<<“n”<<endl;
cin>>i;
switch(i)
{
case ‘y’:
cout<<“已原地复活”<<endl;
Money=Money-((Level*2)+888);
CrityLife=BigCrityLife*0.8;
CrityMagic=BigCrityMagic*0.8;
break;
case ‘n’:
CrityLife=BigCrityLife*0.8;
CrityMagic=BigCrityMagic*0.8;
mapno0();break;
default:
mapno0();break;
}
}
//*********************************************************************
void LVcrity() //属性的提升
{
Money=Money+20000+(Level*200);
CrityAttack=CrityAttack+20000+(Level*200);
CrityDefense=CrityDefense+20000+(Level*200);
BigCrityLife=BigCrityLife+20000+(Level*2000);
BigCrityMagic=BigCrityMagic+20000+(Level*2000);
CrityLife=BigCrityLife; //升级后,角色当前生命=生命上限
CrityMagic=BigCrityMagic;

}

//*********************************************************************
void SKILL_PK() //选择技能开关
{
char i;
int o=0;
labelskpk:
cin>>i;
switch(i)
{
case ‘1’:
Csen();CRITY_SKILL_ONE();
break;
case ‘2’:
Csen();CRITY_SKILL_TWO();
break;
case ‘3’:
Csen();CRITY_SKILL_THREE();
break;
case ‘4’:
Csen();CRITY_SKILL_FOUR();
break;
case ‘5’:
Csen();CRITY_SKILL_FIVE();
break;
case’0′:
Csen();cout<<“提醒||帮助”<<endl;
Toremind();repeat();
case’9′:
Csen();cout<<“逃跑!”<<endl;
mapno0();
default:
if (o++==3)
{
cout<<“释放技能错误三次,游戏将退出”<<endl;
exit(0);
}
cout<<“技能释放错误,请重新输入”<<endl;
goto labelskpk;

}
}
//*********************************************************************
void win() //胜利的时候属性的增加已经还原
{
Moerlife=0;Moerattack=0;
Moerdefense=0;Moermagic=0;
skillattack=0;skillmagic=0;
Money=Money+tempmomey+Moneyadj;
Experience=Experience+MoerExperience;
MoerExperience=0;tempmomey=0;
}
void skill() //技能
{
while (1)
{
cout<<“释放技能:”<<endl;
if (Moerdefense>(CrityAttack+skillattack)) //如果怪物防御大于攻击
{
Crity_Moer_Defense_toremind(); //不破防随机伤害的公告
cout<<“给对方造成伤害:”
<<Crityadj_moerdefense<<endl;
Moerlife=Moerlife-Crityadj_moerdefense;
CrityMagic=CrityMagic-skillmagic;
if (Moerlife<0)
{
cout<<“**********”<<endl;
cout<<“恭喜您胜利了!”<<endl;
cout<<“**********”<<endl;
win();
LveExp();getch();Csen();
GOTOMAP();
break;
}
huihe_Toremind();getch();Csen();
cout<<“怪物对您进行攻击:”<<endl;
if (CrityDefense>Moerattack) //如果防御大于怪物攻击
{
cout<<“怪物对您造成伤害:”
<<Moeradj_critydefense<<endl;
CrityLife=CrityLife-Moeradj_critydefense;
if (CrityLife<=0)
{
cout<<“你被怪物重伤昏迷”<<endl;
cout<<“挑战失败!”<<endl;
cout<<“是否原地复活?”<<endl;
Resurrection();repeat();
}
huihe_Toremind();getch();Csen();
}
else
{
cout<<“怪物对您造成伤害”<<(Moerattack+Moeradj_critydefense)-CrityDefense<<endl;
CrityLife=CrityLife-((Moerattack+Moeradj_critydefense)-CrityDefense);
if (CrityLife<=0)
{
cout<<“你被怪物重伤昏迷”<<endl;
cout<<“挑战失败!”<<endl;
cout<<“是否原地复活?”<<endl;
Resurrection();repeat();
}
huihe_Toremind();getch();Csen();
repeat();
}
}
else
{
cout<<“给对方造成伤害:”<<(CrityAttack+skillattack)-Moerdefense<<endl;
crity_adj_toremind(); //如果随机函数出现了重击等,系统显示;
Moerlife=(Moerlife-((CrityAttack+skillattack)-Moerdefense));
CrityMagic=CrityMagic-skillmagic;
if (Moerlife<=0)
{
cout<<“**********”<<endl;
cout<<“恭喜您胜利了!”<<endl;
cout<<“**********”<<endl;
win();
LveExp();getch();Csen();
GOTOMAP();
break;
}
else
{
getch();Csen();
cout<<“怪物对您进行攻击:”<<endl;
if (CrityDefense>Moerattack) //如果防御大于怪物攻击
{
cout<<“怪物对您造成伤害:”
<<Moeradj_critydefense<<endl;
CrityLife=CrityLife-Moeradj_critydefense;
if (CrityLife<=0)
{
cout<<“你被怪物重伤昏迷”<<endl;
cout<<“挑战失败!”<<endl;
cout<<“是否原地复活?”<<endl;
Resurrection();repeat();
break;
}
huihe_Toremind();getch();Csen();
repeat();
}
else
{
cout<<“怪物对您造成伤害”<<(Moerattack+Moeradj_critydefense)-CrityDefense<<endl;
CrityLife=CrityLife-((Moerattack+Moeradj_critydefense)-CrityDefense);
if (CrityLife<=0)
{
cout<<“你被怪物重伤昏迷”<<endl;
cout<<“挑战失败!”<<endl;
cout<<“是否原地复活?”<<endl;
Resurrection();repeat();
break;
}
getch();Csen();
repeat();
}
}
}
}
}
//*********************************************************************
void CRITY_SKILL_ONE() //技能1
{
Crityadj(); //先给个随机数初始化
Crity_Moer_Defense();Moer_Crity_Defense();
//不破防的上限伤害函数
skillattack=(20000*Level)+CrityAttackadj;
//在这里攻击的临时技能其实就已经把随机给的值给附加上了
int tempskillattack=20000*Level;
//这个是用来显示技能攻击的
skillmagic=500*Level;

cout<<“猪小跑:增加”<<tempskillattack<<“攻击,消耗”<<skillmagic<<“MP”<<endl<<“技能等级”<<Level<<endl;
if (CrityMagic<skillmagic)
{
cout<<“你的MP值不足”<<endl;
getch();Csen();
repeat();
}
else
{
Csen();
skill();
}

}
//*********************************************************************
void CRITY_SKILL_TWO() //技能2
{
Crityadj(); //先给个随机数初始化
Crity_Moer_Defense();Moer_Crity_Defense();
skillattack=(50000*Level)+CrityAttackadj;
//在这里攻击的临时技能其实就已经把随机给的值给附加上了
int tempskillattack=20000*Level;
//这个是用来显示技能的攻击的
skillmagic=1000*Level;

cout<<“猪大跑:增加”<<tempskillattack<<“攻击,消耗”<<skillmagic<<“MP”<<endl<<“技能等级”<<Level<<endl;
if (CrityMagic<skillmagic)
{
cout<<“你的MP值不足”<<endl;
getch();Csen();
repeat();
}
else
{
Csen();
skill();
}

}
//*********************************************************************
void CRITY_SKILL_THREE() //技能3
{
Moer_Crity_Defense(); //由于角色不参与攻击,所以只添加怪物不破防函数
while(1)
{
cout<<“**********”<<endl;
cout<<“释放技能:”<<endl;
cout<<“HP恢复:”<<50000*Level<<” “<<“MP恢复:”<<2000*Level<<endl;
cout<<“技能等级:”<<Level;
CrityLife=CrityLife+(50000*Level);
if (CrityLife>BigCrityLife)
{
CrityLife=BigCrityLife;
}
CrityMagic=CrityMagic+(2000*Level);
if ( CrityMagic>BigCrityMagic)
{ //如果恢复的大于最大值,则把结果恢复成一样。
CrityMagic=BigCrityMagic;
}
getch();Csen();
cout<<“怪物对您进行攻击:”;
cout<<“怪物对您造成伤害”<<Moerattack-CrityDefense<<endl;
if(CrityDefense>Moerattack)
{
cout<<“怪物攻击低于您的防御,怪物受到伤害:”
<<Moerattack-CrityDefense<<endl;
Moerlife=Moerlife-(CrityDefense-Moerattack);
if (Moerlife<=0)
{
cout<<“**********”<<endl;
cout<<“恭喜您胜利了!”<<endl;
cout<<“**********”<<endl;
win();
LveExp();getch();Csen();
GOTOMAP();
//属性归0,用于下次挑战重新赋值
break;
}
repeat();
}
else
{
cout<<“怪物对您造成伤害”<<Moerattack-CrityDefense<<endl;
CrityLife=CrityLife-(Moerattack-CrityDefense);
if (CrityLife<=0)
{
cout<<“你被怪物重伤昏迷”<<endl;
cout<<“挑战失败!”<<endl;
cout<<“是否原地复活?”<<endl;
Resurrection();repeat();
}
getch();Csen();
repeat();
}
}

}
//*********************************************************************
void CRITY_SKILL_FOUR() //技能4
{
Moer_Crity_Defense();//同上技能3
while (1)
{
int tempCrityDefense=CrityDefense*(Level*0.1);
cout<<“防御增加”<<Level*10<<“%”<<endl;
cout<<“当前防御:”<<CrityDefense<<“+”<<tempCrityDefense
<<“=”<<CrityDefense+tempCrityDefense<<endl;
cout<<“怪物对您进行攻击:”;
if ((CrityDefense+tempCrityDefense)>Moerattack) //如果防御大于怪物攻击
{
cout<<“怪物攻击低于您的防御,怪物受到伤害:”
<<(CrityDefense+tempCrityDefense)-Moerattack<<endl;
Moerlife=Moerlife-((CrityDefense+tempCrityDefense)-Moerattack);
if (Moerlife<0)
{
cout<<“**********”<<endl;
cout<<“恭喜您胜利了!”<<endl;
cout<<“**********”<<endl;
win();
//怪物属性归0,用于下次挑战重新赋值
LveExp();getch();Csen();
GOTOMAP();
break;
}
getch();Csen();
repeat();
break;
}
cout<<“怪物对您造成伤害”<<Moerattack-(CrityDefense+tempCrityDefense)<<endl;
CrityLife=CrityLife-(Moerattack-(CrityDefense+tempCrityDefense));
if (CrityLife<=0)
{
cout<<“你被怪物重伤昏迷”<<endl;
cout<<“挑战失败!”<<endl;
cout<<“是否原地复活?”<<endl;
Resurrection();repeat();
}
getch();Csen();
repeat();
}

}
//*********************************************************************
void CRITY_SKILL_FIVE() //技能5
{
Crityadj();Crity_Moer_Defense();Moer_Crity_Defense();
skillattack=(CrityAttack*2*Level)+CrityAttackadj;
//在这里攻击的临时技能其实就已经把随机给的值给附加上了
int tempcritylife=50000*Level;
skillmagic=5000*Level;
cout<<“终级技能:天崩地裂”<<endl;
cout<<“释放自身攻击*2*等级的伤害,HP-“<<tempcritylife<<” MP-“<<skillmagic<<endl;

if (CrityLife<tempcritylife || skillmagic>CrityMagic)
{
cout<<“你的HP或MP不足,不能使用此技能”<<endl;
getch();Csen();
repeat();
}
else
{
CrityLife=CrityLife-tempcritylife;
skill();
}
}
//*********************************************************************
void GOTOMAP() //地图传送
{
char i;
int o=0;
labelgotomap:
carmap();//调取车夫对话
cin>>i;
switch(i)
{
case ‘1’:Csen();mapno1();break;
case ‘2’:Csen();mapno2();break;
case ‘3’:Csen();mapno3();break;
case ‘4’:Csen();mapno4();break;
case ‘5’:Csen();mapno5();break;
case ‘6’:Csen();mapno6();break;
case ‘7’:Csen();mapno7();break;
case ‘8’:Csen();mapno8();break;
case ‘9’:Csen();mapno9();break;
case ‘0’:Csen();mapno0();break;
default:
if (o++==5)
{
cout<<“传送错误5次,游戏将关闭”<<endl;
exit(0);
}
cout<<“输入错误,请重新输入:”<<endl;
goto labelgotomap;

}

}
//*********************************************************************
void carmap() //车夫,如果直接放地图传送看起来太多太大了。
{
cout<<“车夫:请问需要转送至地图几?”<<endl;
cout<<“1、地图1 (等级不受限制)。 怪物等级1″<<endl;
cout<<“2、地图2 ( 4级以上可进)。 怪物等级 6″<<endl;
cout<<“3、地图3 ( 6级以上可进)。 怪物等级 8″<<endl;
cout<<“4、地图4 ( 8级以上可进)。 怪物等级10″<<endl;
cout<<“5、地图5 (10级以上可进)。 怪物等级12″<<endl;
cout<<“6、地图6 (12级以上可进)。 怪物等级14″<<endl;
cout<<“7、地图7 (14级以上可进)。 怪物等级16″<<endl;
cout<<“8、地图8 (等级不受限制)。 怪物等级15(BOSS区)”<<endl;
cout<<“9、地图9 (等级不受限制)。 怪物等级30(BOSS区)”<<endl;
cout<<“0、猪圈。(出生地,任意点可进)”<<endl;
}
//*********************************************************************

//*********************************************************************
void npc_0()
{
cout<<“您的金币不足”<<endl;
NPC_DEAL(); //返回NPC购买对话

}
void npc_1()
{
while(1)
{
if (Money<5000)
{
npc_0();
}
cout<<“购买成功,你的攻击+10000″<<endl;
CrityAttack=CrityAttack+10000;
Money=Money-5000;
NPC_DEAL();
break;
}
}
void npc_2()
{
while(1)
{
if (Money<5000)
{
npc_0();
}
cout<<“购买成功,你的防御+10000″<<endl;
CrityDefense=CrityDefense+10000;
Money=Money-5000;
NPC_DEAL();
break;
}
}
void npc_3()
{
while(1)
{
if (Money<5000)
{
npc_0();
}
cout<<“购买成功,你的生命值+10000″<<endl;
CrityLife=CrityLife+10000;
BigCrityLife=BigCrityLife+10000;
Money=Money-5000;
NPC_DEAL();
break;
}
}
void npc_4()
{
while(1)
{
if (Money<5000)
{
npc_0();
}
cout<<“购买成功,你的魔法值+5000″<<endl;
CrityMagic=CrityMagic+5000;
BigCrityMagic=BigCrityMagic+5000;
Money=Money-5000;
NPC_DEAL();
break;
}
}
void npc_5()
{
while(1)
{
if (Money<20000)
{
npc_0();
}
cout<<“购买成功,您的攻防血法各+10000″<<endl;
CrityAttack=CrityAttack+10000;
CrityDefense=CrityDefense+10000;
CrityLife=CrityLife+10000;
BigCrityLife=BigCrityLife+10000;
CrityMagic=CrityMagic+5000;
BigCrityMagic=BigCrityMagic+5000;
Money=Money-20000;
NPC_DEAL();
break;
}
}
void npc_6()
{
while(1)
{
if (Money<1000)
{
npc_0();
}
cout<<“购买成功,您的经验值+1000″<<endl;
Experience=Experience+1000;
Money=Money-1000;
LveExp(); //购买经验书后判断是否升级
NPC_DEAL();
break;
}
}
void npc_7()
{
crity();
NPC_DEAL();
}
public:
void mapno()
{ //地图开始 同时进行默认属性初始化
//此函数游戏里只运行一次
//在这给猪头设置初始属性值,可避免角色死亡后
//回到猪圈内,不给予增加升级的属性
CrityAttack=42000;CrityDefense=30000;
CrityLife=100000;BigCrityLife=100000;
CrityMagic=50000;BigCrityMagic=50000;
int lveexp=1000; //默认1级开始的经验=1000
Money=1000;
tempExperience=lveexp;
Level=1;
Csen();
cout<<“数值初始化成功”<<endl;
cout<<“按任意键盘开始”<<endl;
getch();Csen();
Crity_name();//在这添加玩家需要用的角色名
mapno0();
}
void NPC_DEAL() //NPC交易函数
{
char i;int o=0;
cout<<“请问您需要购买什么呢?”<<endl;
cout<<“当前金币 “<<Money<<endl;
cout<<“1、攻击能力卷:攻击+10000,消耗5000金币”<<endl;
cout<<“2、防御能力卷:防御+10000,消耗5000金币”<<endl;
cout<<“3、HP能力卷:生命+10000,消耗5000金币”<<endl;
cout<<“4、MP能力卷:魔法+5000,消耗5000金币”<<endl;
cout<<“5、攻防血法综合卷:攻防血法各+10000,消耗20000金币”<<endl;
cout<<“6、经验卷:经验+1000,消耗1000金币”<<endl;
cout<<“7、查看自身属性”<<endl;
cout<<“0、退出NPC交易系统”<<endl;
labelnpc:
cin>>i;
switch(i)
{
case ‘1’:Csen();npc_1();break;
case ‘2’:Csen();npc_2();break;
case ‘3’:Csen();npc_3();break;
case ‘4’:Csen();npc_4();break;
case ‘5’:Csen();npc_5();break;
case ‘6’:Csen();npc_6();break;
case ‘7’:Csen();npc_7();break;
case ‘0’:Csen();mapno0();break;
default:
if (o++==5)
{
cout<<“你选择错误5次,回到出生点”<<endl;
mapno0();
}
cout<<“输入错误,请重新输入:”<<endl;
goto labelnpc;
}
}
void mapno0()
{
char i;

cout<<“载入地图猪圈成功”<<endl;
cout<<“进入出生地猪圈”<<endl;
cout<<endl<<endl;
labelmapno0:
cout<<“您需要做什么?”<<endl;
cout<<“1、买能力书”<<” “<<“2、挑战怪物”<<” “<<“3、自身属性”<<” “<<“0、GM工具”<<endl;
cout<<“5、游戏功能”<<endl;

cin>>i;
switch(i)
{
case’1′:Csen();NPC_DEAL();break;//NPC函数
case’2′:Csen();GOTOMAP();break;//
case ‘3’:Csen();crity();mapno0();break;
case ‘0’:Csen();gm();break;
case’5′:Csen();gongneng();mapno0();break;
default:
cout<<“您输入错误,请重新输入”<<endl;
goto labelmapno0;
}
}
void adj_momey()
{
int o;
//可以判断等级或者怪物攻击来增加rand()%1000+Level
srand((unsigned)time(NULL)); //随机
o=rand()%3;
switch(o)
{
case 1:Moneyadj=rand()%1000+1000+(Level*3);
case 2:Moneyadj=rand()%1000+2000+(Level*3);
case 0:Moneyadj=rand()%1000+1500+(Level*3);
}

}
void mapno1()
{
adj_momey();
tempmomey=500; //金币给500+随机
MoerExperience=800; //经验加成
cout<<“载入地图一成功 “;
cout<<“进入地图一:蚂蚁洞”<<endl;
Moerattack=35000; //怪物攻
Moerdefense=35000;
Moerlife=200000;
Moermagic=35000;
cout<<“进入与蚂蚁PK回合:”<<endl;
repeat(); //调取PK开始,如果胜利,继续执行
// Money=Money+700;
//判断加成的经验提升等级
crity();//重新显示人物属性
GOTOMAP();//重新弹出车夫
}

void mapno2()
{
if (Level<4)
{
cout<<“您的等级不能进入此地图,请重新选择”<<endl;
GOTOMAP();
}
adj_momey();
tempmomey=1500;
MoerExperience=40000; //经验加成
cout<<“载入地图二成功 “;
cout<<“进入地图二”<<endl;
Moerattack=55000; //怪物攻
Moerdefense=45000;
Moerlife=300000;
Moermagic=55000;
cout<<“进入与蜗牛PK回合:”<<endl;
repeat(); //调取PK开始,如果胜利,继续执行
//判断加成的经验提升等级
crity();//重新显示人物属性
GOTOMAP();//重新弹出车夫
}
void mapno3()
{
if (Level<6)
{
cout<<“您的等级不能进入此地图,请重新选择”<<endl;
GOTOMAP();
}
adj_momey();
tempmomey=13500;
MoerExperience=99000; //经验加成
cout<<“载入地图三成功 “;
cout<<“进入地图三”<<endl;
Moerattack=105000; //怪物攻
Moerdefense=65000;
Moerlife=800000;
Moermagic=55000;
cout<<“进入与老鼠PK回合:”<<endl;
repeat(); //调取PK开始,如果胜利,继续执行
//判断加成的经验提升等级
crity();//重新显示人物属性
GOTOMAP();//重新弹出车夫
}
void mapno4()
{
if (Level<8)
{
cout<<“您的等级不能进入此地图,请重新选择”<<endl;
GOTOMAP();
}
adj_momey();
tempmomey=99900;
MoerExperience=187000; //经验加成
cout<<“载入地图四成功 “;
cout<<“进入地图四”<<endl;
Moerattack=155000; //怪物攻
Moerdefense=85000;
Moerlife=1000000;
Moermagic=55000;
cout<<“进入与花猫PK回合:”<<endl;
repeat(); //调取PK开始,如果胜利,继续执行
//判断加成的经验提升等级
crity();//重新显示人物属性
GOTOMAP();//重新弹出车夫
}
void mapno5()
{
if (Level<10)
{
cout<<“您的等级不能进入此地图,请重新选择”<<endl;
GOTOMAP();
}
adj_momey();
tempmomey=301243;
MoerExperience=552637; //经验加成
cout<<“载入地图五成功 “;
cout<<“进入地图五”<<endl;
Moerattack=255000; //怪物攻
Moerdefense=105000;
Moerlife=1300000;
Moermagic=55000;
cout<<“进入与小狗PK回合:”<<endl;
repeat(); //调取PK开始,如果胜利,继续执行
//判断加成的经验提升等级
crity();//重新显示人物属性
GOTOMAP();//重新弹出车夫
}
void mapno6()
{
if (Level<12)
{
cout<<“您的等级不能进入此地图,请重新选择”<<endl;
GOTOMAP();
}
adj_momey();
tempmomey=420398;
MoerExperience=2285700; //经验加成
cout<<“载入地图六成功 “;
cout<<“进入地图六”<<endl;
Moerattack=305000; //怪物攻
Moerdefense=125000;
Moerlife=1500000;
Moermagic=55000;
cout<<“进入与狼PK回合:”<<endl;
repeat(); //调取PK开始,如果胜利,继续执行
//判断加成的经验提升等级
crity();//重新显示人物属性
GOTOMAP();//重新弹出车夫
}
void mapno7()
{
if (Level<14)
{
cout<<“您的等级不能进入此地图,请重新选择”<<endl;
GOTOMAP();
}
adj_momey();
tempmomey=5000000;
MoerExperience=6666666; //经验加成
cout<<“载入地图七成功 “;
cout<<“进入地图七”<<endl;
Moerattack=355000; //怪物攻
Moerdefense=145000;
Moerlife=1700000;
Moermagic=55000;
cout<<“进入与老虎PK回合:”<<endl;
repeat(); //调取PK开始,如果胜利,继续执行
//判断加成的经验提升等级
crity();//重新显示人物属性
GOTOMAP();//重新弹出车夫
}
void mapno8()
{
adj_momey();
tempmomey=1000000;
MoerExperience=2222222; //经验加成
cout<<“载入地图八成功 “;
cout<<“进入地图八”<<endl;
Moerattack=200000; //怪物攻
Moerdefense=180000;
Moerlife=5000000;
Moermagic=55000;
cout<<“进入与狮子PK回合:”<<endl;
repeat(); //调取PK开始,如果胜利,继续执行
//判断加成的经验提升等级
crity();//重新显示人物属性
GOTOMAP();//重新弹出车夫
}
void mapno9()
{
adj_momey();
tempmomey=3000000;
MoerExperience=10000000; //经验加成
cout<<“载入地图九成功 “;
cout<<“进入地图九”<<endl;
Moerattack=1000000; //怪物攻
Moerdefense=500000;
Moerlife=20000000;
Moermagic=55000;
cout<<“进入与’猎人’PK回合:”<<endl;
repeat(); //调取PK开始,如果胜利,继续执行
//判断加成的经验提升等级
crity();//重新显示人物属性
GOTOMAP();//重新弹出车夫
}
protected:
int mima;
void mi_ma()
{
mima=0; //将密码修改为保护模式
//此操作是如果在正式程序的时候,防止他人通过其他外接函数修改
/*
如:反汇编者利用一个函数(得知密码在此的变量名为mima的时候)
void xiugaimima()
{
int i;
cin>>i;
mima=i;
}
在进入GM工具前,已经通过类似的函数把密码的值(0)给修改成任意数;
这样被破解的机率就相当高
以上纯属作者个人看法
*/
}
private:
int o; //修改的数值
void xiugai()
{

labelxiugai:
cout<<“请输入您要修改的数值(1-1000000):”<<endl;
cin>>o;
if (o<1||o>1000000)
{
cout<<“您输入错误,请重新输入”<<endl;
goto labelxiugai;
}
}
void gmmima()
{
int i;
int o=3;
int game;
labelgmmima:
cout<<“请输入GM模式密码”<<endl;
cin>>i;
if (i!=mima)
{
if (o–==1)
{
cout<<“您输入GM密码错误3次。”<<endl;
mapno0();
}
cout<<“密码错误,请重新输入”<<endl;
cout<<“您还剩”<<o<<“次机会”<<endl;
goto labelgmmima;
}
else
{
cout<<“成功进入GM模式”<<endl;
gm();
}
}
void gongji()
{
xiugai();
CrityAttack=CrityAttack+o;
crity();getch(); //修改属性后,显示角色属性,并且屏幕停止
Csen();gm(); //清屏;返回GM模式选择项
}
void fangyu()
{
xiugai();
CrityDefense=CrityDefense+o;
crity();getch(); //修改属性后,显示角色属性,并且屏幕停止
Csen();gm();
}
void shengming()
{
xiugai();
CrityLife=CrityLife+o;
BigCrityLife=BigCrityLife+o;
crity();getch(); //修改属性后,显示角色属性,并且屏幕停止
Csen();gm();
}
void mofa()
{
xiugai();
CrityMagic=CrityMagic+o;
BigCrityMagic=BigCrityMagic+o;
crity();getch(); //修改属性后,显示角色属性,并且屏幕停止
Csen();gm();
}
void jinbi()
{
xiugai();
Money=Money+o;
crity();getch(); //修改属性后,显示角色属性,并且屏幕停止
Csen();gm();
}
public:
void gm()
{
int i;
label_l:
cout<<“进入GM模式,请选择需要修改的数据”<<endl;
cout<<“1、修改角色攻击力(最多一次增加1000000)”<<endl;
cout<<“2、修改角色防御力(最多一次增加1000000)”<<endl;
cout<<“3、修改角色生命值(最多一次增加1000000)”<<endl;
cout<<“4、修改角色魔法值(最多一次增加1000000)”<<endl;
cout<<“5、修改角色游戏币(最多一次增加1000000)”<<endl;
cout<<“0、退出”<<endl;
//cout<<“为了不弄太变态,以后这个将被修改,修改经验值增加的经验及属性”<<endl;
cin>>i;
switch(i)
{
case 1:
gongji();break;
case 2:
fangyu();break;
case 3:
shengming();break;
case 4:
mofa();break;
case 5:
jinbi();break;
case 0:
mapno0();break;
default:cout<<“输入错误,请重新输入”<<endl;
goto label_l;
}
}
};
REGISTER_ rester; //注册的对象名为rester;
AREA_ area;
CELEBRITY_ celebrity;

int main()
{

UPdate(); cout<<endl;
// rester.open();
celebrity.mapno();

}

通过清心醉

自写C++三

//下载地址:http://url.cn/QKkFip

#include “iostream.h”
#include “string.h”
#include “stdlib.h”
#include “ctype.h”
#include “stdio.h”
#include “conio.h” //getch()屏幕停留函数需要
#include “time.h” //系统随机

/*
1:输入输出头文件
2:if (strcmp(account,tempaccount)==0 && strcmp(password,temppassword)==0)
strcmp函数是比较两个字符串(数组)的大小,所以需要加string.h 头文件
3:调用stdlib.h的头文件,exit函数使用
4: ctype.h头文件,AREA_类里判断输入选择大区的是否为数字
5: stdio.h 头文件,AREA_类里把输入的字符串转成数字
*/
void UPdate() //更新
{
cout<<“*************** 本次更新添加:***************”<<endl;
cout<<“当前版本号: V1.3″<<endl;
cout<<“1、如果通过GM工具修改攻击高了,直接挑战BOSS,等级只能加1,然后经验会暂停”<<endl;
cout<<” 已经修改为通过角色经验判断循环来直接把等级提高”<<endl;

cout<<” 2013-03-03 “<<endl;
cout<<endl<<endl<<endl;

cout<<“提醒:”<<endl;
cout<<“由于是WIN32的API平台编辑,非MFC图形,所以此游戏用于CMD命令支持。”<<endl<<endl;
cout<<“由于设置了帐号密码注册登陆服务,暂时关闭(等懂的帐号密码保存的时候(如使用数据库))”
<<“再给予支持,同时到时将添加装备系统”<<endl;
cout<<endl;
cout<<“备注:”<<“游戏币随机增加于1.2版本已经修改添加,只是更新未给予修改”<<endl;
cout<<” “<<“如果可以,建议不使用GM工具增加攻防血法等来实际操作。”<<endl;
getch();
}
void gongneng()
{
cout<<“程序目前正常注册,登陆验证;”<<endl;
cout<<“提供回合制,由玩家先行攻击;”<<endl;
cout<<“自动清屏,以免产生数据过多显示查看困难;”<<endl;
cout<<“增加车夫,在每个地图结束PK回合后车夫将提示;”<<endl;
cout<<“增加HP、MP上限最大值 “<<endl;
cout<<“增加攻击不破防减少攻击者HP”<<endl;
cout<<“添加等级系统,等级+1,固定加20000,攻防金币额+等级*200、血法额+等级*2000″<<endl;
cout<<“添加金币系统”<<endl;
cout<<“增加NPC系统,提供能力书的交易”<<endl;
cout<<“角色死亡后直接回出生地《猪圈》,并不直接退出游戏 “<<endl;
cout<<“角色死亡后回出生地,HP值为正常的80%”<<endl;
cout<<“开放5个技能 “<<endl;
cout<<“添加攻击有机率产生最高2倍的重击、神圣伤害,游戏币随机增加”<<endl;
cout<<“GM工具:密码暂设为 0 “<<endl;
cout<<“**************************************************************************”<<endl;
cout<<endl<<“是否给怪物BOSS设置技能,如终级BOSS,也弄个随机,有机会打出固定N的值”<<endl;
getch();

}
void Toremind() //提醒
{
cout<<“提醒:”<<endl<<” “<<endl;
cout<<“字符串尚未做完善,输入多位”<<endl
<<“程序将跳过几步骤,此为BUG。”<<endl
<<“字符串学习中,待更新中….”<<endl
<<“**************************”<<endl
<<“******猪*头*历*险*记******”<<endl
<<“**************************”<<endl
<<” “<<endl;
}

void Csen() //怕屏幕内容太多,添加一清屏函数
{
system(“cls”);
}

 

 

class AREA_ //区选择类
{
private:
void generation() //生成角色
{
cout<<“**********”<<endl;
cout<<“生成角色…”<<endl;
cout<<“名字:猪头”<<endl;
cout<<“等级:0″<<endl;
cout<<“攻击:”<<“0″<<endl;
cout<<“防御:”<<“0″<<endl;
cout<<“HP:”<<“0″<<endl;
cout<<“MP:”<<“0″<<endl;
cout<<“成功拜清心为师”<<endl;
cout<<“**********”<<endl;
}
public:
void numarea() //区号
{
char x;
int i=0;
labelTWO: //标签2,由于怕标签过多,后面加个数字做表示清晰点
cout<<“请选择:”<<endl;
cout<<“1、风之大陆”<<endl;cout<<“2、光之大陆”<<endl;
cout<<“3、水之大陆”<<endl;cout<<“0、退出游戏”<<endl;
cout<<endl;
cin>>x;
if (!isdigit(x))
{
if (i++==2)
{
cout<<“您输入错误3次,请稍后在试!”<<endl;
exit(0);
}
cout<<“您的输入有误,请重新输入”<<endl;
goto labelTWO;
}
else
{
switch(x)
{
case’1′:
Csen();
cout<<“连接风之大陆成功!”<<endl;
cout<<endl<<endl;
generation();
break;
case’2′:
Csen();
cout<<“连接光之大陆成功!”<<endl;
cout<<endl<<endl;
generation();
break;
case’3′:
Csen();
cout<<“连接水之大陆成功!”<<endl;
cout<<endl<<endl;
generation();
break;
case’0′:
cout<<“成功退出游戏,”<<endl
<<“请按任意键退出!”<<endl;
cout<<endl<<endl;
exit(0);
break;
default:
if (i++==2)
{
cout<<“您输入错误3次,请稍后在试!”<<endl;
exit(0);
}
cout<<“您的输入有误,请重新输入”<<endl;
goto labelTWO;
}
}
}
};

class REGISTER_ :public AREA_
{
private:
char account[16];
char password[16];
public:
void open()
{
cout<<“请输入您注册的帐号”<<endl;
cin>>account;
cout<<“请输入您注册帐号的密码”<<endl;
cin>>password;
Csen();
char tempaccount[16];
char temppassword[16];
int i=0;
labelONE:
cout<<endl<<endl;
cout<<“请输入您的帐号:”; cin>>tempaccount;
cout<<“请输入您的密码:”; cin>>temppassword;
if (strcmp(account,tempaccount)==0 && strcmp(password,temppassword)==0)
{
cout<<“正确”<<endl;
cout<<endl;
numarea();
Toremind();
}
else
{
if (i++==2)
{
cout<<“您输入错误3次,请稍后在试!”<<endl;
exit(0);
//退出
}
cout<<“您输入错误,请重新输入:”<<endl;
goto labelONE;
}
}
};

class CELEBRITY_ //人物
{
private:
int Level; int Experience; int tempExperience;//等级 经验 升级所需经验
int MoerExperience; // 每个地图的怪物获取的经验,击败怪物后数值归0;
int CrityAttack; //攻
int CrityDefense; //防
int CrityLife; //当前HP
int CrityMagic; //MP
int BigCrityLife; //最大HP
int BigCrityMagic; //MP
int Moerattack; int Moerdefense;
int Moerlife; int Moermagic;
//以上四整型是怪物攻防HP、MP
int skillattack; //释放技能增加的攻击,在每一个技能栏里给予赋值,技能结束后归0;
int skillmagic; //释放技能消耗的MP,技能结束归0
int Money; int tempmomey;//游戏币
int CrityAttackadj; //随机 根据角色攻击给予赋值,
int Moneyadj; //金币随机增加,取当前地图怪物来附加攻击
int crity_adj; //用于捕抓角色随机的数值,判断是否输出重击
int templevel; //防御技能的等级最高给10级
void huihe_Toremind() //PK时显示
{
cout<<endl<<endl;
cout<<“角色属性:”<<“攻击:”<<CrityAttack<<” 防御:”<<CrityDefense<<endl;
cout<<“等级:”<<Level<<“生命:”<<CrityLife<<“/”<<BigCrityLife<<” 魔法:”
<<CrityMagic<<“/”<<BigCrityMagic<<” 金币”<<Money<<endl;
cout<<“*****************************************”<<endl;
cout<<“怪物属性:”<<“攻击:”<<Moerattack<<” 防御:”<<Moerdefense<<endl;
cout<<” “<<“生命:”<<Moerlife<<” 魔法:”<<Moermagic<<endl;
}
//*********************************************************************
void Crityadj() //角色随机
{
int tempcrityattackadj_one=CrityAttack*0.4; //临时随机攻击
int tempcrityattackadj_two=CrityAttack*0.8;
int tempcrityattackadj_three=CrityAttack*2;
int o;
srand((unsigned)time(NULL)); //随机条件
o=rand()%10; //为避免经常出现多倍或者增加过多的伤害,随机为10个
switch(o)
{
//出现的伤害普遍增加随机伤害1-10000
case 1:CrityAttackadj=rand()%10000;crity_adj=o;break;
//并且把随机的数字o给crity_adk,判断是否提示多倍伤害
case 4:CrityAttackadj=rand()%10000;crity_adj=o;break;
case 3:CrityAttackadj=rand()%10000;crity_adj=o;break;
case 6:CrityAttackadj=rand()%10000;crity_adj=o;break;
case 5:CrityAttackadj=rand()%10000;crity_adj=o;break;
case 7:CrityAttackadj=rand()%10000+tempcrityattackadj_one;crity_adj=o;break;
case 8:CrityAttackadj=rand()%10000+tempcrityattackadj_one;crity_adj=o;break;
case 9:CrityAttackadj=rand()%10000+tempcrityattackadj_two;crity_adj=o;break;
case 0:CrityAttackadj=rand()%10000+tempcrityattackadj_two;crity_adj=o;break;
case 2:CrityAttackadj=rand()%10000+tempcrityattackadj_three;crity_adj=o;break;
}

}
void crity_adj_toremind() //随机参数的公告
{
switch(crity_adj)
{
//随机出现的数字已经给了 crity_adj=o;
//Crityadj()成员函数已为其赋值,记得先要调取该函数后才调取这个
case 7:
cout<<“***出现神圣一击***”<<endl;break;
case 8:
cout<<“***出现神圣一击***”<<endl;break;
case 0:
cout<<“***出现重击***”<<endl;break;
case 9:
cout<<“***出现重击***”<<endl;break;
case 2:
cout<<“***出现神圣一击和重击***”<<endl;break;
default: //如果不加,在攻击时调取了此函数,结果非0-2-7时将中指.
break; //在此设置只为跳出该开关函数
}
}
//*********************************************************************
void crity() //人物
{
cout<<“名字:猪头”<<endl;cout<<“等级:”<<Level<<endl;
cout<<“攻击:”<<CrityAttack<<endl;cout<<“防御:”<<CrityDefense<<endl;
cout<<“HP:”<<CrityLife<<“/”<<BigCrityLife<<endl;
cout<<“MP:”<<CrityMagic<<“/”<<BigCrityMagic<<endl;
cout<<“金币:”<<Money<<endl;
cout<<“当前经验”<<Experience<<“/”<<“升级经验”<<tempExperience<<endl;
cout<<endl<<endl;
}
//*********************************************************************
void monster() //由于怪物名称不一样,在调取该函数前,提前输出怪物名称
{
cout<<“**********”<<endl;
cout<<“攻击:”<<Moerattack<<endl;
cout<<“防御:”<<Moerdefense<<endl;
cout<<“HP:”<<Moerlife<<endl;
cout<<“MP:”<<Moermagic<<endl;
cout<<“**********”<<endl;
}
//*********************************************************************
void repeat() //提示进行PK
{
cout<<“**********”<<endl;
cout<<“请输入技能快捷键进行先行攻击”<<endl;
cout<<“1、猪小跑:增加”<<20000*Level<<“攻击,消耗”<<500*Level<<“MP”<<endl<<“技能等级”<<Level<<endl;
cout<<“2、猪大跑:增加”<<50000*Level<<“攻击,消耗”<<1000*Level<<“MP”<<endl<<“技能等级”<<Level<<endl;
cout<<“3、HP恢复”<<50000*Level<<” MP恢复”<<2000*Level<<endl<<“技能等级”<<Level<<endl;
cout<<“4、防御增加”<<Level*10<<“%”<<endl<<“技能等级”<<Level<<endl;
cout<<“5、天崩地裂:释放自身攻击*2*等级的伤害,HP-“<<50000*Level<<” MP-“<<5000*Level<<endl<<“技能等级”<<Level<<endl;
huihe_Toremind();
cout<<“9、逃跑(回猪城)”<<endl;
cout<<“0、提醒||帮助”<<endl;
cout<<“**********”<<endl;
SKILL_PK();

}
//*********************************************************************
void LveExp() //升级经验
{

if (Experience>=tempExperience)
{
labelexperience:
Level++;
tempExperience=tempExperience*1.7;
cout<<“您升级了!您的等级:”<<Level<<endl;
LVcrity();
if (Experience>=tempExperience)
{ //当升级一次以后,如果经验还是比升级所需经验多,再循环一次
//如此一来用GM工具修改攻击一次杀掉大BOSS时可以直接跳高级
goto labelexperience;
}
}
}
//*********************************************************************
void Resurrection() //原地复活
{
char i;
int tempmoney=(Level*2)+888;
cout<<“原地需要费用”<<(Level*2)+888<<“金币”<<endl;
if (Money<(Level*2)+888)
{
cout<<“您的金币不足,按任意键回城”<<endl;
getch();
CrityLife=BigCrityLife*0.8;
CrityMagic=BigCrityMagic*0.8;
mapno0();
}
cout<<“是否需要原地复活?”<<endl<<“y”<<” “<<“n”<<endl;
cin>>i;
switch(i)
{
case ‘y’:
cout<<“已原地复活”<<endl;
Money=Money-((Level*2)+888);
CrityLife=BigCrityLife*0.8;
CrityMagic=BigCrityMagic*0.8;
break;
case ‘n’:
CrityLife=BigCrityLife*0.8;
CrityMagic=BigCrityMagic*0.8;
mapno0();break;
}
}
//*********************************************************************
void LVcrity() //属性的提升
{
Money=Money+20000+(Level*200);
CrityAttack=CrityAttack+20000+(Level*200);
CrityDefense=CrityDefense+20000+(Level*200);
CrityLife=CrityLife+20000+(Level*2000);
BigCrityLife=BigCrityLife+20000+(Level*2000);
CrityMagic=CrityMagic+20000+(Level*2000);
BigCrityMagic=BigCrityMagic+20000+(Level*2000);
if (CrityLife>BigCrityLife && CrityMagic>BigCrityMagic)
{ //如果恢复的大于最大值,则把结果恢复成一样。
CrityLife=BigCrityLife;
CrityMagic=BigCrityMagic;
}

}

//*********************************************************************
void SKILL_PK() //选择技能开关
{
char i;
int o=0;
labelskpk:
cin>>i;
switch(i)
{
case ‘1’:
Csen();CRITY_SKILL_ONE();
break;
case ‘2’:
Csen();CRITY_SKILL_TWO();
break;
case ‘3’:
Csen();CRITY_SKILL_THREE();
break;
case ‘4’:
Csen();CRITY_SKILL_FOUR();
break;
case ‘5’:
Csen();CRITY_SKILL_FIVE();
break;
//case ‘6’:
// Csen();cout<<“查看自身状态”<<endl;
// crity();repeat();
// break;
//case ‘7’:
// Csen();cout<<“查看怪物状态”<<endl;
// monster();repeat();
// break;
case’0′:
Csen();cout<<“提醒||帮助”<<endl;
Toremind();repeat();
case’9′:
Csen();cout<<“逃跑!”<<endl;
mapno0();
default:
if (o++==3)
{
cout<<“释放技能错误三次,游戏将退出”<<endl;
exit(0);
}
cout<<“技能释放错误,请重新输入”<<endl;
goto labelskpk;

}
}
//*********************************************************************
void skill() //技能
{
while (1)
{
cout<<“释放技能:”<<endl;
if (Moerdefense>(CrityAttack+skillattack)) //如果怪物防御大于攻击
{
cout<<“怪物防御高过您的攻击,你受到伤害:”
<<Moerdefense-(CrityAttack+skillattack)<<endl;
CrityLife=CrityLife-(Moerdefense-(CrityAttack+skillattack));
CrityMagic=CrityMagic-skillmagic;
huihe_Toremind();getch();Csen();
cout<<“怪物对您进行攻击:”<<endl;
if (CrityDefense>Moerattack) //如果防御大于怪物攻击
{
cout<<“怪物攻击低于您的防御,怪物受到伤害:”
<<CrityDefense-Moerattack<<endl;
Moerlife=Moerlife-(CrityDefense-Moerattack);
if (Moerlife<0)
{
cout<<“**********”<<endl;
cout<<“恭喜您胜利了!”<<endl;
cout<<“**********”<<endl;
Moerlife=0;Moerattack=0;
Moerdefense=0;Moermagic=0;
skillattack=0;skillmagic=0;
Money=Money+tempmomey+Moneyadj;
Experience=Experience+MoerExperience;
MoerExperience=0;tempmomey=0;
//怪物属性归0,用于下次挑战重新赋值
LveExp();getch();Csen();
GOTOMAP();
break;
}
huihe_Toremind();getch();Csen();
}
else
{
cout<<“怪物对您造成伤害”<<Moerattack-CrityDefense<<endl;
CrityLife=CrityLife-(Moerattack-CrityDefense);
if (CrityLife<=0)
{
cout<<“你被怪物重伤昏迷”<<endl;
cout<<“挑战失败!”<<endl;
cout<<“是否原地复活?”<<endl;
Resurrection();repeat();
}
huihe_Toremind();getch();Csen();
repeat();
}
}
else
{
cout<<“给对方造成伤害:”<<(CrityAttack+skillattack)-Moerdefense<<endl;
crity_adj_toremind(); //如果随机函数出现了重击等,系统显示;
Moerlife=(Moerlife-((CrityAttack+skillattack)-Moerdefense));
CrityMagic=CrityMagic-skillmagic;
if (Moerlife<=0)
{
cout<<“**********”<<endl;
cout<<“恭喜您胜利了!”<<endl;
cout<<“**********”<<endl;
Moerlife=0;Moerattack=0;
Moerdefense=0;Moermagic=0;
skillattack=0;skillmagic=0;
Money=Money+tempmomey+Moneyadj;
Experience=Experience+MoerExperience;
MoerExperience=0;tempmomey=0;
LveExp();getch();Csen();
GOTOMAP();
break;
}
else
{
getch();Csen();
cout<<“怪物对您进行攻击:”<<endl;
if (CrityDefense>Moerattack) //如果防御大于怪物攻击
{
cout<<“怪物攻击低于您的防御,怪物受到伤害:”
<<Moerattack-CrityDefense<<endl;
Moerlife=Moerlife-(CrityDefense-Moerattack);
if (Moerlife<0)
{
cout<<“**********”<<endl;
cout<<“恭喜您胜利了!”<<endl;
cout<<“**********”<<endl;
Moerlife=0;Moerattack=0;
Moerdefense=0;Moermagic=0;
skillattack=0;skillmagic=0;
Money=Money+tempmomey+Moneyadj;
Experience=Experience+MoerExperience;
MoerExperience=0;tempmomey=0;
LveExp();getch();Csen();
GOTOMAP();
break;
}
huihe_Toremind();getch();Csen();
repeat();
}
else
{
cout<<“怪物对您造成伤害”<<Moerattack-CrityDefense<<endl;
CrityLife=CrityLife-(Moerattack-CrityDefense);
if (CrityLife<=0)
{
cout<<“你被怪物重伤昏迷”<<endl;
cout<<“挑战失败!”<<endl;
cout<<“是否原地复活?”<<endl;
Resurrection();repeat();
break;
}
getch();Csen();
repeat();
}
}
}
}
}
//*********************************************************************
void CRITY_SKILL_ONE() //技能1
{
Crityadj(); //先给个随机数初始化
skillattack=(20000*Level)+CrityAttackadj;
//在这里攻击的临时技能其实就已经把随机给的值给附加上了
int tempskillattack=20000*Level;
//这个是用来显示技能攻击的
skillmagic=500*Level;

cout<<“猪小跑:增加”<<tempskillattack<<“攻击,消耗”<<skillmagic<<“MP”<<endl<<“技能等级”<<Level<<endl;
if (CrityMagic<skillmagic)
{
cout<<“你的MP值不足”<<endl;
getch();Csen();
repeat();
}
else
{
Csen();
skill();
}

}
//*********************************************************************
void CRITY_SKILL_TWO() //技能2
{
Crityadj(); //先给个随机数初始化
skillattack=(50000*Level)+CrityAttackadj;
//在这里攻击的临时技能其实就已经把随机给的值给附加上了
int tempskillattack=20000*Level;
//这个是用来显示技能的攻击的
skillmagic=1000*Level;

cout<<“猪大跑:增加”<<tempskillattack<<“攻击,消耗”<<skillmagic<<“MP”<<endl<<“技能等级”<<Level<<endl;
if (CrityMagic<skillmagic)
{
cout<<“你的MP值不足”<<endl;
getch();Csen();
repeat();
}
else
{
Csen();
skill();
}

}
//*********************************************************************
void CRITY_SKILL_THREE() //技能3
{
while(1)
{
cout<<“**********”<<endl;
cout<<“释放技能:”<<endl;
cout<<“HP恢复:”<<50000*Level<<” “<<“MP恢复:”<<2000*Level<<endl;
cout<<“技能等级:”<<Level;
CrityLife=CrityLife+(50000*Level);
CrityMagic=CrityMagic+(2000*Level);
if (CrityLife>BigCrityLife && CrityMagic>BigCrityMagic)
{ //如果恢复的大于最大值,则把结果恢复成一样。
CrityLife=BigCrityLife; CrityMagic=BigCrityMagic;
}
getch();Csen();
cout<<“怪物对您进行攻击:”;
cout<<“怪物对您造成伤害”<<Moerattack-CrityDefense<<endl;
if(CrityDefense>Moerattack)
{
cout<<“怪物攻击低于您的防御,怪物受到伤害:”
<<Moerattack-CrityDefense<<endl;
Moerlife=Moerlife-(CrityDefense-Moerattack);
if (Moerlife<=0)
{
cout<<“**********”<<endl;
cout<<“恭喜您胜利了!”<<endl;
cout<<“**********”<<endl;
Moerlife=0;Moerattack=0;
Moerdefense=0;Moermagic=0;
skillattack=0;skillmagic=0;
Money=Money+tempmomey+Moneyadj;
Experience=Experience+MoerExperience;
MoerExperience=0;tempmomey=0;
LveExp();getch();Csen();
GOTOMAP();
//属性归0,用于下次挑战重新赋值
break;
}
repeat();
}
else
{
cout<<“怪物对您造成伤害”<<Moerattack-CrityDefense<<endl;
CrityLife=CrityLife-(Moerattack-CrityDefense);
if (CrityLife<=0)
{
cout<<“你被怪物重伤昏迷”<<endl;
cout<<“挑战失败!”<<endl;
cout<<“是否原地复活?”<<endl;
Resurrection();repeat();
}
getch();Csen();
repeat();
}
}

}
//*********************************************************************
void CRITY_SKILL_FOUR() //技能4
{
while (1)
{
int tempCrityDefense=CrityDefense*(Level*0.1);
cout<<“防御增加”<<Level*10<<“%”<<endl;
cout<<“当前防御:”<<CrityDefense<<“+”<<tempCrityDefense
<<“=”<<CrityDefense+tempCrityDefense<<endl;
cout<<“怪物对您进行攻击:”;
if ((CrityDefense+tempCrityDefense)>Moerattack) //如果防御大于怪物攻击
{
cout<<“怪物攻击低于您的防御,怪物受到伤害:”
<<(CrityDefense+tempCrityDefense)-Moerattack<<endl;
Moerlife=Moerlife-((CrityDefense+tempCrityDefense)-Moerattack);
if (Moerlife<0)
{
cout<<“**********”<<endl;
cout<<“恭喜您胜利了!”<<endl;
cout<<“**********”<<endl;
Moerlife=0;Moerattack=0;
Moerdefense=0;Moermagic=0;
skillattack=0;skillmagic=0;
Money=Money+tempmomey+Moneyadj;
Experience=Experience+MoerExperience;
MoerExperience=0;tempmomey=0;
//怪物属性归0,用于下次挑战重新赋值
LveExp();getch();Csen();
GOTOMAP();
break;
}
getch();Csen();
repeat();
break;
}
cout<<“怪物对您造成伤害”<<Moerattack-(CrityDefense+tempCrityDefense)<<endl;
CrityLife=CrityLife-(Moerattack-(CrityDefense+tempCrityDefense));
if (CrityLife<=0)
{
cout<<“你被怪物重伤昏迷”<<endl;
cout<<“挑战失败!”<<endl;
cout<<“是否原地复活?”<<endl;
Resurrection();repeat();
}
getch();Csen();
repeat();
}

}
//*********************************************************************
void CRITY_SKILL_FIVE() //技能5
{
Crityadj();
skillattack=(CrityAttack*2*Level)+CrityAttackadj;
//在这里攻击的临时技能其实就已经把随机给的值给附加上了
int tempcritylife=50000*Level;
skillmagic=5000*Level;
cout<<“终级技能:天崩地裂”<<endl;
cout<<“释放自身攻击*2*等级的伤害,HP-“<<tempcritylife<<” MP-“<<skillmagic<<endl;

if (CrityLife<tempcritylife || skillmagic>CrityMagic)
{
cout<<“你的HP或MP不足,不能使用此技能”<<endl;
getch();Csen();
repeat();
}
else
{
CrityLife=CrityLife-tempcritylife;
skill();
}
}
//*********************************************************************
void GOTOMAP() //地图传送
{
char i;
int o=0;
labelgotomap:
carmap();//调取车夫对话
cin>>i;
switch(i)
{
case ‘1’:Csen();mapno1();break;
case ‘2’:Csen();mapno2();break;
case ‘3’:Csen();mapno3();break;
case ‘4’:Csen();mapno4();break;
case ‘5’:Csen();mapno5();break;
case ‘6’:Csen();mapno6();break;
case ‘7’:Csen();mapno7();break;
case ‘8’:Csen();mapno8();break;
case ‘9’:Csen();mapno9();break;
case ‘0’:Csen();mapno0();break;
default:
if (o++==5)
{
cout<<“传送错误5次,游戏将关闭”<<endl;
exit(0);
}
cout<<“输入错误,请重新输入:”<<endl;
goto labelgotomap;

}

}
//*********************************************************************
void carmap() //车夫,如果直接放地图传送看起来太多太大了。
{
cout<<“车夫:请问需要转送至地图几?”<<endl;
cout<<“1、地图1 (等级不受限制)。 怪物等级1″<<endl;
cout<<“2、地图2 ( 4级以上可进)。 怪物等级 6″<<endl;
cout<<“3、地图3 ( 6级以上可进)。 怪物等级 8″<<endl;
cout<<“4、地图4 ( 8级以上可进)。 怪物等级10″<<endl;
cout<<“5、地图5 (10级以上可进)。 怪物等级12″<<endl;
cout<<“6、地图6 (12级以上可进)。 怪物等级14″<<endl;
cout<<“7、地图7 (14级以上可进)。 怪物等级16″<<endl;
cout<<“8、地图8 (等级不受限制)。 怪物等级15(BOSS区)”<<endl;
cout<<“9、地图9 (等级不受限制)。 怪物等级30(BOSS区)”<<endl;
cout<<“0、猪圈。(出生地,任意点可进)”<<endl;
}
//*********************************************************************

//*********************************************************************
void npc_0()
{
cout<<“您的金币不足”<<endl;
NPC_DEAL(); //返回NPC购买对话

}
void npc_1()
{
while(1)
{
if (Money<5000)
{
npc_0();
}
cout<<“购买成功,你的攻击+10000″<<endl;
CrityAttack=CrityAttack+10000;
Money=Money-5000;
NPC_DEAL();
break;
}
}
void npc_2()
{
while(1)
{
if (Money<5000)
{
npc_0();
}
cout<<“购买成功,你的防御+10000″<<endl;
CrityDefense=CrityDefense+10000;
Money=Money-5000;
NPC_DEAL();
break;
}
}
void npc_3()
{
while(1)
{
if (Money<5000)
{
npc_0();
}
cout<<“购买成功,你的生命值+10000″<<endl;
CrityLife=CrityLife+10000;
BigCrityLife=BigCrityLife+10000;
Money=Money-5000;
NPC_DEAL();
break;
}
}
void npc_4()
{
while(1)
{
if (Money<5000)
{
npc_0();
}
cout<<“购买成功,你的魔法值+5000″<<endl;
CrityMagic=CrityMagic+5000;
BigCrityMagic=BigCrityMagic+5000;
Money=Money-5000;
NPC_DEAL();
break;
}
}
void npc_5()
{
while(1)
{
if (Money<20000)
{
npc_0();
}
cout<<“购买成功,您的攻防血法各+10000″<<endl;
CrityAttack=CrityAttack+10000;
CrityDefense=CrityDefense+10000;
CrityLife=CrityLife+10000;
BigCrityLife=BigCrityLife+10000;
CrityMagic=CrityMagic+5000;
BigCrityMagic=BigCrityMagic+5000;
Money=Money-20000;
NPC_DEAL();
break;
}
}
void npc_6()
{
while(1)
{
if (Money<1000)
{
npc_0();
}
cout<<“购买成功,您的经验值+1000″<<endl;
Experience=Experience+1000;
Money=Money-1000;
LveExp(); //购买经验书后判断是否升级
NPC_DEAL();
break;
}
}
void npc_7()
{
crity();
NPC_DEAL();
}
public:
void mapno()
{ //地图开始 同时进行默认属性初始化
//此函数游戏里只运行一次
//在这给猪头设置初始属性值,可避免角色死亡后
//回到猪圈内,不给予增加升级的属性
CrityAttack=42000;CrityDefense=30000;
CrityLife=100000;BigCrityLife=100000;
CrityMagic=50000;BigCrityMagic=50000;
int lveexp=1000; //默认1级开始的经验=1000
Money=1000;
tempExperience=lveexp;
Level=1;
cout<<“数值初始化成功”<<endl;
cout<<“是否开始游戏”<<“y”<<” “<<“n”<<endl;
char i;
cin>>i;
switch(i)
{
case’y’:
Csen();
mapno0();
break;
case ‘n’:
Csen();
cout<<“游戏关闭”<<endl;
break;
default:
Csen();
cout<<“按任意键游戏退出”<<endl;
exit(0);
}
}
void NPC_DEAL() //NPC交易函数
{
char i;int o=0;
cout<<“请问您需要购买什么呢?”<<endl;
cout<<“1、攻击能力卷:攻击+10000,消耗5000金币”<<endl;
cout<<“2、防御能力卷:防御+10000,消耗5000金币”<<endl;
cout<<“3、HP能力卷:生命+10000,消耗5000金币”<<endl;
cout<<“4、MP能力卷:魔法+5000,消耗5000金币”<<endl;
cout<<“5、攻防血法综合卷:攻防血法各+10000,消耗20000金币”<<endl;
cout<<“6、经验卷:经验+1000,消耗1000金币”<<endl;
cout<<“7、查看自身属性”<<endl;
cout<<“0、退出NPC交易系统”<<endl;
labelnpc:
cin>>i;
switch(i)
{
case ‘1’:Csen();npc_1();break;
case ‘2’:Csen();npc_2();break;
case ‘3’:Csen();npc_3();break;
case ‘4’:Csen();npc_4();break;
case ‘5’:Csen();npc_5();break;
case ‘6’:Csen();npc_6();break;
case ‘7’:Csen();npc_7();break;
case ‘0’:Csen();mapno0();break;
default:
if (o++==5)
{
cout<<“你选择错误5次,回到出生点”<<endl;
mapno0();
}
cout<<“输入错误,请重新输入:”<<endl;
goto labelnpc;
}
}
void mapno0()
{
char i;
cout<<“载入地图猪圈成功”<<endl;
cout<<“进入出生地猪圈”<<endl;
cout<<endl<<endl;
labelmapno0:
cout<<“您需要做什么?”<<endl;
cout<<“1、买能力书”<<” “<<“2、挑战怪物”<<” “<<“3、自身属性”<<” “<<“0、GM工具”<<endl;
cout<<“5、游戏功能”<<endl;

cin>>i;
switch(i)
{
case’1′:Csen();NPC_DEAL();break;//NPC函数
case’2′:Csen();GOTOMAP();break;//
case ‘3’:Csen();crity();mapno0();break;
case ‘0’:Csen();gm();break;
case’5′:Csen();gongneng();mapno0();break;
default:
cout<<“您输入错误,请重新输入”<<endl;
goto labelmapno0;
}
}
void adj_momey()
{
int o;
//可以判断等级或者怪物攻击来增加rand()%1000+Level
srand((unsigned)time(NULL)); //随机
o=rand()%3;
switch(o)
{
case 1:Moneyadj=rand()%1000+1000+(Level*3);
case 2:Moneyadj=rand()%1000+2000+(Level*3);
case 0:Moneyadj=rand()%1000+1500+(Level*3);
}

}
void mapno1()
{
adj_momey();
tempmomey=500; //金币给500+随机
MoerExperience=800; //经验加成
cout<<“载入地图一成功”<<endl;
cout<<“进入地图一:蚂蚁洞”<<endl;
Moerattack=35000; //怪物攻
Moerdefense=35000;
Moerlife=200000;
Moermagic=35000;
cout<<“进入与蚂蚁PK回合:”<<endl;
repeat(); //调取PK开始,如果胜利,继续执行
// Money=Money+700;
//判断加成的经验提升等级
crity();//重新显示人物属性
GOTOMAP();//重新弹出车夫
}

void mapno2()
{
if (Level<4)
{
cout<<“您的等级不能进入此地图,请重新选择”<<endl;
GOTOMAP();
}
adj_momey();
tempmomey=1500;
MoerExperience=40000; //经验加成
cout<<“载入地图二成功”<<endl;
cout<<“进入地图二”<<endl;
Moerattack=55000; //怪物攻
Moerdefense=45000;
Moerlife=300000;
Moermagic=55000;
cout<<“进入与蜗牛PK回合:”<<endl;
repeat(); //调取PK开始,如果胜利,继续执行
//判断加成的经验提升等级
crity();//重新显示人物属性
GOTOMAP();//重新弹出车夫
}
void mapno3()
{
if (Level<6)
{
cout<<“您的等级不能进入此地图,请重新选择”<<endl;
GOTOMAP();
}
adj_momey();
tempmomey=13500;
MoerExperience=99000; //经验加成
cout<<“载入地图三成功”<<endl;
cout<<“进入地图三”<<endl;
Moerattack=105000; //怪物攻
Moerdefense=65000;
Moerlife=800000;
Moermagic=55000;
cout<<“进入与老鼠PK回合:”<<endl;
repeat(); //调取PK开始,如果胜利,继续执行
//判断加成的经验提升等级
crity();//重新显示人物属性
GOTOMAP();//重新弹出车夫
}
void mapno4()
{
if (Level<8)
{
cout<<“您的等级不能进入此地图,请重新选择”<<endl;
GOTOMAP();
}
adj_momey();
tempmomey=99900;
MoerExperience=187000; //经验加成
cout<<“载入地图四成功”<<endl;
cout<<“进入地图四”<<endl;
Moerattack=155000; //怪物攻
Moerdefense=85000;
Moerlife=1000000;
Moermagic=55000;
cout<<“进入与花猫PK回合:”<<endl;
repeat(); //调取PK开始,如果胜利,继续执行
//判断加成的经验提升等级
crity();//重新显示人物属性
GOTOMAP();//重新弹出车夫
}
void mapno5()
{
if (Level<10)
{
cout<<“您的等级不能进入此地图,请重新选择”<<endl;
GOTOMAP();
}
adj_momey();
tempmomey=301243;
MoerExperience=552637; //经验加成
cout<<“载入地图五成功”<<endl;
cout<<“进入地图五”<<endl;
Moerattack=255000; //怪物攻
Moerdefense=105000;
Moerlife=1300000;
Moermagic=55000;
cout<<“进入与小狗PK回合:”<<endl;
repeat(); //调取PK开始,如果胜利,继续执行
//判断加成的经验提升等级
crity();//重新显示人物属性
GOTOMAP();//重新弹出车夫
}
void mapno6()
{
if (Level<12)
{
cout<<“您的等级不能进入此地图,请重新选择”<<endl;
GOTOMAP();
}
adj_momey();
tempmomey=420398;
MoerExperience=2285700; //经验加成
cout<<“载入地图六成功”<<endl;
cout<<“进入地图六”<<endl;
Moerattack=305000; //怪物攻
Moerdefense=125000;
Moerlife=1500000;
Moermagic=55000;
cout<<“进入与狼PK回合:”<<endl;
repeat(); //调取PK开始,如果胜利,继续执行
//判断加成的经验提升等级
crity();//重新显示人物属性
GOTOMAP();//重新弹出车夫
}
void mapno7()
{
if (Level<14)
{
cout<<“您的等级不能进入此地图,请重新选择”<<endl;
GOTOMAP();
}
adj_momey();
tempmomey=5000000;
MoerExperience=6666666; //经验加成
cout<<“载入地图七成功”<<endl;
cout<<“进入地图七”<<endl;
Moerattack=355000; //怪物攻
Moerdefense=145000;
Moerlife=1700000;
Moermagic=55000;
cout<<“进入与老虎PK回合:”<<endl;
repeat(); //调取PK开始,如果胜利,继续执行
//判断加成的经验提升等级
crity();//重新显示人物属性
GOTOMAP();//重新弹出车夫
}
void mapno8()
{
adj_momey();
tempmomey=1000000;
MoerExperience=2222222; //经验加成
cout<<“载入地图八成功”<<endl;
cout<<“进入地图八”<<endl;
Moerattack=200000; //怪物攻
Moerdefense=180000;
Moerlife=5000000;
Moermagic=55000;
cout<<“进入与狮子PK回合:”<<endl;
repeat(); //调取PK开始,如果胜利,继续执行
//判断加成的经验提升等级
crity();//重新显示人物属性
GOTOMAP();//重新弹出车夫
}
void mapno9()
{
adj_momey();
tempmomey=3000000;
MoerExperience=10000000; //经验加成
cout<<“载入地图九成功”<<endl;
cout<<“进入地图九”<<endl;
Moerattack=1000000; //怪物攻
Moerdefense=500000;
Moerlife=20000000;
Moermagic=55000;
cout<<“进入与’猎人’PK回合:”<<endl;
repeat(); //调取PK开始,如果胜利,继续执行
//判断加成的经验提升等级
crity();//重新显示人物属性
GOTOMAP();//重新弹出车夫
}
private:
int mima;
int o;int i;
void xiugai()
{
labelxiugai:
cout<<“请输入您要修改的数值(1-1000000):”<<endl;
cin>>o;
if (o<1||o>1000000)
{
cout<<“您输入错误,请重新输入”<<endl;
goto labelxiugai;
}
}
void gmmima()
{
int mima=0;
int i;
int o=3;
int game;
labelgmmima:
cout<<“请输入GM模式密码”<<endl;
cin>>i;
if (i!=mima)
{
if (o–==1)
{
cout<<“您输入GM密码错误3次,游戏将关闭。”<<endl;
exit(0);
}
cout<<“密码错误,请重新输入”<<endl;
cout<<“您还剩”<<o<<“次机会”<<endl;
cout<<“如要返回游戏,请按1″<<endl;
cin>>game;
if (game==mima)
{
mapno0();
}
goto labelgmmima;
}
}
void gongji()
{
xiugai();
CrityAttack=CrityAttack+o;
mapno0();
}
void fangyu()
{
xiugai();
CrityDefense=CrityDefense+o;
mapno0();
}
void shengming()
{
xiugai();
CrityLife=CrityLife+o;
BigCrityLife=BigCrityLife+o;
mapno0();
}
void mofa()
{
xiugai();
CrityMagic=CrityMagic+o;
BigCrityMagic=BigCrityMagic+o;
mapno0();
}
void jinbi()
{
xiugai();
Money=Money+o;
mapno0();
}
public:
void gm()
{
gmmima();
cout<<“进入GM模式,请选择需要修改的数据”<<endl;
cout<<“1、修改角色攻击力(最多一次增加1000000)”<<endl;
cout<<“2、修改角色防御力(最多一次增加1000000)”<<endl;
cout<<“3、修改角色生命值(最多一次增加1000000)”<<endl;
cout<<“4、修改角色魔法值(最多一次增加1000000)”<<endl;
cout<<“5、修改角色游戏币(最多一次增加1000000)”<<endl;
cout<<“为了不弄太变态,以后这个将被修改,修改经验值增加的经验及属性”<<endl;
label_l:
cin>>i;
switch(i)
{
case 1:
gongji();break;
case 2:
fangyu();break;
case 3:
shengming();break;
case 4:
mofa();break;
case 5:
jinbi();break;
default:cout<<“输入错误,请重新输入”<<endl;
goto label_l;
}
}
};

REGISTER_ rester; //注册的对象名为rester;
AREA_ area;
CELEBRITY_ celebrity;

int main()
{

UPdate(); cout<<endl;
// rester.open();
celebrity.mapno();

}

通过清心醉

自写C++二

//下载地址:http://url.cn/MwGe1z

#include “iostream.h”
#include “string.h”
#include “stdlib.h”
#include “ctype.h”
#include “stdio.h”
#include “conio.h” //getch()屏幕停留函数需要
#include “time.h” //系统随机

/*
1:输入输出头文件
2:if (strcmp(account,tempaccount)==0 && strcmp(password,temppassword)==0)
strcmp函数是比较两个字符串(数组)的大小,所以需要加string.h 头文件
3:调用stdlib.h的头文件,exit函数使用
4: ctype.h头文件,AREA_类里判断输入选择大区的是否为数字
5: stdio.h 头文件,AREA_类里把输入的字符串转成数字
*/
void UPdate() //更新
{
cout<<“*************** 本次更新添加:***************”<<endl;
cout<<“1、第5个技能:天崩地裂 “<<endl;
cout<<“2、GM工具:密码暂设为 0 “<<endl;
cout<<“2、添加攻击有机率产生最高2倍的重击、神圣伤害,游戏币随机增加”<<endl;
cout<<“由于随机游戏币设置需要按怪物等级来设置,下次更新将进行修改”<<endl;
cout<<“2013-03-02″<<endl;
cout<<endl<<endl<<endl;
//由于游戏和金币公式相对添加随机数,所以最后修改
cout<<“提醒:”<<endl;
cout<<“由于是WIN32的API平台编辑,非MFC图形,所以此游戏用于CMD命令支持。”<<endl;
cout<<endl;
getch();
}
void gongneng()
{
cout<<“程序目前正常注册,登陆验证;”<<endl;
cout<<“提供回合制,由玩家先行攻击;”<<endl;
cout<<“自动清屏,以免产生数据过多显示查看困难;”<<endl;
cout<<“增加车夫,在每个地图结束PK回合后车夫将提示;”<<endl;
cout<<“增加HP、MP上限最大值 “<<endl;
cout<<“增加攻击不破防减少攻击者HP”<<endl;
cout<<“添加等级系统,等级+1,固定加20000,攻防金币额+等级*200、血法额+等级*2000″<<endl;
cout<<“添加金币系统”<<endl;
cout<<“增加NPC系统,提供能力书的交易”<<endl;
cout<<“角色死亡后直接回出生地《猪圈》,并不直接退出游戏 “<<endl;
cout<<“角色死亡后回出生地,HP值为正常的80%”<<endl;
cout<<“增加技能4,防御增加当前防御的20%”<<endl;
getch();

}
void Toremind() //提醒
{
cout<<“提醒:”<<endl<<” “<<endl;
cout<<“字符串尚未做完善,输入多位”<<endl
<<“程序将跳过几步骤,此为BUG。”<<endl
<<“字符串学习中,待更新中….”<<endl
<<“**************************”<<endl
<<“******猪*头*历*险*记******”<<endl
<<“**************************”<<endl
<<” “<<endl;
}

void Csen() //怕屏幕内容太多,添加一清屏函数
{
system(“cls”);
}

 

 

class AREA_ //区选择类
{
private:
void generation() //生成角色
{
cout<<“**********”<<endl;
cout<<“生成角色…”<<endl;
cout<<“名字:猪头”<<endl;
cout<<“等级:0″<<endl;
cout<<“攻击:”<<“0″<<endl;
cout<<“防御:”<<“0″<<endl;
cout<<“HP:”<<“0″<<endl;
cout<<“MP:”<<“0″<<endl;
cout<<“成功拜清心为师”<<endl;
cout<<“**********”<<endl;
}
public:
void numarea() //区号
{
char x;
int i=0;
labelTWO: //标签2,由于怕标签过多,后面加个数字做表示清晰点
cout<<“请选择:”<<endl;
cout<<“1、风之大陆”<<endl;cout<<“2、光之大陆”<<endl;
cout<<“3、水之大陆”<<endl;cout<<“0、退出游戏”<<endl;
cout<<endl;
cin>>x;
if (!isdigit(x))
{
if (i++==2)
{
cout<<“您输入错误3次,请稍后在试!”<<endl;
exit(0);
}
cout<<“您的输入有误,请重新输入”<<endl;
goto labelTWO;
}
else
{
switch(x)
{
case’1′:
Csen();
cout<<“连接风之大陆成功!”<<endl;
cout<<endl<<endl;
generation();
break;
case’2′:
Csen();
cout<<“连接光之大陆成功!”<<endl;
cout<<endl<<endl;
generation();
break;
case’3′:
Csen();
cout<<“连接水之大陆成功!”<<endl;
cout<<endl<<endl;
generation();
break;
case’0′:
cout<<“成功退出游戏,”<<endl
<<“请按任意键退出!”<<endl;
cout<<endl<<endl;
exit(0);
break;
default:
if (i++==2)
{
cout<<“您输入错误3次,请稍后在试!”<<endl;
exit(0);
}
cout<<“您的输入有误,请重新输入”<<endl;
goto labelTWO;
}
}
}
};

class REGISTER_ :public AREA_
{
private:
char account[16];
char password[16];
public:
void open()
{
cout<<“请输入您注册的帐号”<<endl;
cin>>account;
cout<<“请输入您注册帐号的密码”<<endl;
cin>>password;
Csen();
char tempaccount[16];
char temppassword[16];
int i=0;
labelONE:
cout<<endl<<endl;
cout<<“请输入您的帐号:”; cin>>tempaccount;
cout<<“请输入您的密码:”; cin>>temppassword;
if (strcmp(account,tempaccount)==0 && strcmp(password,temppassword)==0)
{
cout<<“正确”<<endl;
cout<<endl;
numarea();
Toremind();
}
else
{
if (i++==2)
{
cout<<“您输入错误3次,请稍后在试!”<<endl;
exit(0);
//退出
}
cout<<“您输入错误,请重新输入:”<<endl;
goto labelONE;
}
}
};

class CELEBRITY_ //人物
{
private:
int Level; int Experience; int tempExperience;//等级 经验 升级所需经验
int CrityAttack; //攻
int CrityDefense; //防
int CrityLife; //当前HP
int CrityMagic; //MP
int BigCrityLife; //最大HP
int BigCrityMagic; //MP
int Moerattack; int Moerdefense;
int Moerlife; int Moermagic;
//以上四整型是怪物攻防HP、MP
int skillattack; //释放技能增加的攻击,在每一个技能栏里给予赋值,技能结束后归0;
int skillmagic; //释放技能消耗的MP,技能结束归0
int Money; int tempmomey;//游戏币
int CrityAttackadj; //随机 根据角色攻击给予赋值,
int Moneyadj; //金币随机增加,取当前地图怪物来附加攻击
int crity_adj; //用于捕抓角色随机的数值,判断是否输出重击
int templevel; //防御技能的等级最高给10级
void huihe_Toremind() //PK时显示
{
cout<<endl<<endl;
cout<<“角色属性:”<<“攻击:”<<CrityAttack<<” 防御:”<<CrityDefense<<endl;
cout<<“等级:”<<Level<<“生命:”<<CrityLife<<“/”<<BigCrityLife<<” 魔法:”
<<CrityMagic<<“/”<<BigCrityMagic<<” 金币”<<Money<<endl;
cout<<“*****************************************”<<endl;
cout<<“怪物属性:”<<“攻击:”<<Moerattack<<” 防御:”<<Moerdefense<<endl;
cout<<” “<<“生命:”<<Moerlife<<” 魔法:”<<Moermagic<<endl;
}
//*********************************************************************
void Crityadj() //角色随机
{
int tempcrityattackadj_one=CrityAttack*0.4; //临时随机攻击
int tempcrityattackadj_two=CrityAttack*0.8;
int tempcrityattackadj_three=CrityAttack*2;
int o;
srand((unsigned)time(NULL)); //随机条件
o=rand()%10; //为避免经常出现多倍或者增加过多的伤害,随机为10个
switch(o)
{
//出现的伤害普遍增加随机伤害1-10000
case 1:CrityAttackadj=rand()%10000;crity_adj=o;break;
//并且把随机的数字o给crity_adk,判断是否提示多倍伤害
case 4:CrityAttackadj=rand()%10000;crity_adj=o;break;
case 3:CrityAttackadj=rand()%10000;crity_adj=o;break;
case 6:CrityAttackadj=rand()%10000;crity_adj=o;break;
case 5:CrityAttackadj=rand()%10000;crity_adj=o;break;
case 7:CrityAttackadj=rand()%10000+tempcrityattackadj_one;crity_adj=o;break;
case 8:CrityAttackadj=rand()%10000+tempcrityattackadj_one;crity_adj=o;break;
case 9:CrityAttackadj=rand()%10000+tempcrityattackadj_two;crity_adj=o;break;
case 0:CrityAttackadj=rand()%10000+tempcrityattackadj_two;crity_adj=o;break;
case 2:CrityAttackadj=rand()%10000+tempcrityattackadj_three;crity_adj=o;break;
}

}
void crity_adj_toremind() //随机参数的公告
{
switch(crity_adj)
{
//随机出现的数字已经给了 crity_adj=o;
//Crityadj()成员函数已为其赋值,记得先要调取该函数后才调取这个
case 7:
cout<<“***出现神圣一击***”<<endl;break;
case 8:
cout<<“***出现神圣一击***”<<endl;break;
case 0:
cout<<“***出现重击***”<<endl;break;
case 9:
cout<<“***出现重击***”<<endl;break;
case 2:
cout<<“***出现神圣一击和重击***”<<endl;break;
default: //如果不加,在攻击时调取了此函数,结果非0-2-7时将中指.
break; //在此设置只为跳出该开关函数
}
}
//*********************************************************************
void crity() //人物
{
cout<<“名字:猪头”<<endl;cout<<“等级:”<<Level<<endl;
cout<<“攻击:”<<CrityAttack<<endl;cout<<“防御:”<<CrityDefense<<endl;
cout<<“HP:”<<CrityLife<<“/”<<BigCrityLife<<endl;
cout<<“MP:”<<CrityMagic<<“/”<<BigCrityMagic<<endl;
cout<<“金币:”<<Money<<endl;
cout<<“当前经验”<<Experience<<“/”<<“升级经验”<<tempExperience<<endl;
cout<<endl<<endl;
}
//*********************************************************************
void monster() //由于怪物名称不一样,在调取该函数前,提前输出怪物名称
{
cout<<“**********”<<endl;
cout<<“攻击:”<<Moerattack<<endl;
cout<<“防御:”<<Moerdefense<<endl;
cout<<“HP:”<<Moerlife<<endl;
cout<<“MP:”<<Moermagic<<endl;
cout<<“**********”<<endl;
}
//*********************************************************************
void repeat() //提示进行PK
{
cout<<“**********”<<endl;
cout<<“请输入技能快捷键进行先行攻击”<<endl;
cout<<“1、猪小跑:增加”<<20000*Level<<“攻击,消耗”<<500*Level<<“MP”<<endl<<“技能等级”<<Level<<endl;
cout<<“2、猪大跑:增加”<<50000*Level<<“攻击,消耗”<<1000*Level<<“MP”<<endl<<“技能等级”<<Level<<endl;
cout<<“3、HP恢复”<<50000*Level<<” MP恢复”<<2000*Level<<endl<<“技能等级”<<Level<<endl;
cout<<“4、防御增加”<<Level*10<<“%”<<endl<<“技能等级”<<Level<<endl;
cout<<“5、天崩地裂:释放自身攻击*2*等级的伤害,HP-“<<50000*Level<<” MP-“<<5000*Level<<endl<<“技能等级”<<Level<<endl;
huihe_Toremind();
cout<<“9、逃跑(回猪城)”<<endl;
cout<<“0、提醒||帮助”<<endl;
cout<<“**********”<<endl;
SKILL_PK();

}
//*********************************************************************
void LveExp() //升级经验
{

if (Experience>=tempExperience)
{
Level++;
tempExperience=tempExperience*2;
cout<<“您升级了!您的等级:”<<Level<<endl;
LVcrity();
}
}
//*********************************************************************
void Resurrection() //原地复活
{
char i;
int tempmoney=(Level*2)+888;
cout<<“原地需要费用”<<(Level*2)+888<<“金币”<<endl;
if (Money<(Level*2)+888)
{
cout<<“您的金币不足,按任意键回城”<<endl;
getch();
CrityLife=BigCrityLife*0.8;
CrityMagic=BigCrityMagic*0.8;
mapno0();
}
cout<<“是否需要原地复活?”<<endl<<“y”<<” “<<“n”<<endl;
cin>>i;
switch(i)
{
case ‘y’:
cout<<“已原地复活”<<endl;
Money=Money-((Level*2)+888);
CrityLife=BigCrityLife*0.8;
CrityMagic=BigCrityMagic*0.8;
break;
case ‘n’:
CrityLife=BigCrityLife*0.8;
CrityMagic=BigCrityMagic*0.8;
mapno0();break;
}
}
//*********************************************************************
void LVcrity() //属性的提升
{
Money=Money+20000+(Level*200);
CrityAttack=CrityAttack+20000+(Level*200);
CrityDefense=CrityDefense+20000+(Level*200);
CrityLife=CrityLife+20000+(Level*2000);
BigCrityLife=BigCrityLife+20000+(Level*2000);
CrityMagic=CrityMagic+20000+(Level*2000);
BigCrityMagic=BigCrityMagic+20000+(Level*2000);
if (CrityLife>BigCrityLife && CrityMagic>BigCrityMagic)
{ //如果恢复的大于最大值,则把结果恢复成一样。
CrityLife=BigCrityLife;
CrityMagic=BigCrityMagic;
}

}

//*********************************************************************
void SKILL_PK() //选择技能开关
{
char i;
int o=0;
labelskpk:
cin>>i;
switch(i)
{
case ‘1’:
Csen();CRITY_SKILL_ONE();
break;
case ‘2’:
Csen();CRITY_SKILL_TWO();
break;
case ‘3’:
Csen();CRITY_SKILL_THREE();
break;
case ‘4’:
Csen();CRITY_SKILL_FOUR();
break;
case ‘5’:
Csen();CRITY_SKILL_FIVE();
break;
//case ‘6’:
// Csen();cout<<“查看自身状态”<<endl;
// crity();repeat();
// break;
//case ‘7’:
// Csen();cout<<“查看怪物状态”<<endl;
// monster();repeat();
// break;
case’0′:
Csen();cout<<“提醒||帮助”<<endl;
Toremind();repeat();
case’9′:
Csen();cout<<“逃跑!”<<endl;
mapno0();
default:
if (o++==3)
{
cout<<“释放技能错误三次,游戏将退出”<<endl;
exit(0);
}
cout<<“技能释放错误,请重新输入”<<endl;
goto labelskpk;

}
}
//*********************************************************************
void skill() //技能
{
while (1)
{
cout<<“释放技能:”<<endl;
if (Moerdefense>(CrityAttack+skillattack)) //如果怪物防御大于攻击
{
cout<<“怪物防御高过您的攻击,你受到伤害:”
<<Moerdefense-(CrityAttack+skillattack)<<endl;
CrityLife=CrityLife-(Moerdefense-(CrityAttack+skillattack));
CrityMagic=CrityMagic-skillmagic;
huihe_Toremind();getch();Csen();
cout<<“怪物对您进行攻击:”<<endl;
if (CrityDefense>Moerattack) //如果防御大于怪物攻击
{
cout<<“怪物攻击低于您的防御,怪物受到伤害:”
<<CrityDefense-Moerattack<<endl;
Moerlife=Moerlife-(CrityDefense-Moerattack);
if (Moerlife<0)
{
cout<<“**********”<<endl;
cout<<“恭喜您胜利了!”<<endl;
cout<<“**********”<<endl;
Moerlife=0;Moerattack=0;
Moerdefense=0;Moermagic=0;
skillattack=0;skillmagic=0;
Money=Money+tempmomey+Moneyadj;
tempmomey=0;
//怪物属性归0,用于下次挑战重新赋值
getch();Csen();
GOTOMAP();
break;
}
huihe_Toremind();getch();Csen();
}
else
{
cout<<“怪物对您造成伤害”<<Moerattack-CrityDefense<<endl;
CrityLife=CrityLife-(Moerattack-CrityDefense);
if (CrityLife<=0)
{
cout<<“你被怪物重伤昏迷”<<endl;
cout<<“挑战失败!”<<endl;
cout<<“是否原地复活?”<<endl;
Resurrection();repeat();
}
huihe_Toremind();getch();Csen();
repeat();
}
}
else
{
cout<<“给对方造成伤害:”<<(CrityAttack+skillattack)-Moerdefense<<endl;
crity_adj_toremind(); //如果随机函数出现了重击等,系统显示;
Moerlife=(Moerlife-((CrityAttack+skillattack)-Moerdefense));
CrityMagic=CrityMagic-skillmagic;
if (Moerlife<=0)
{
cout<<“**********”<<endl;
cout<<“恭喜您胜利了!”<<endl;
cout<<“**********”<<endl;
Moerlife=0;Moerattack=0;
Moerdefense=0;Moermagic=0;
skillattack=0;skillmagic=0;
Money=Money+tempmomey+Moneyadj;
tempmomey=0;
getch();Csen();
GOTOMAP();
break;
}
else
{
getch();Csen();
cout<<“怪物对您进行攻击:”<<endl;
if (CrityDefense>Moerattack) //如果防御大于怪物攻击
{
cout<<“怪物攻击低于您的防御,怪物受到伤害:”
<<Moerattack-CrityDefense<<endl;
Moerlife=Moerlife-(CrityDefense-Moerattack);
if (Moerlife<0)
{
cout<<“**********”<<endl;
cout<<“恭喜您胜利了!”<<endl;
cout<<“**********”<<endl;
Moerlife=0;Moerattack=0;
Moerdefense=0;Moermagic=0;
skillattack=0;skillmagic=0;
Money=Money+tempmomey+Moneyadj;
tempmomey=0;
getch();Csen();
GOTOMAP();
break;
}
huihe_Toremind();getch();Csen();
repeat();
}
else
{
cout<<“怪物对您造成伤害”<<Moerattack-CrityDefense<<endl;
CrityLife=CrityLife-(Moerattack-CrityDefense);
if (CrityLife<=0)
{
cout<<“你被怪物重伤昏迷”<<endl;
cout<<“挑战失败!”<<endl;
cout<<“是否原地复活?”<<endl;
Resurrection();repeat();
break;
}
getch();Csen();
repeat();
}
}
}
}
}
//*********************************************************************
void CRITY_SKILL_ONE() //技能1
{
Crityadj(); //先给个随机数初始化
skillattack=(20000*Level)+CrityAttackadj;
//在这里攻击的临时技能其实就已经把随机给的值给附加上了
int tempskillattack=20000*Level;
//这个是用来显示技能攻击的
skillmagic=500*Level;

cout<<“猪小跑:增加”<<tempskillattack<<“攻击,消耗”<<skillmagic<<“MP”<<endl<<“技能等级”<<Level<<endl;
if (CrityMagic<skillmagic)
{
cout<<“你的MP值不足”<<endl;
getch();Csen();
repeat();
}
else
{
Csen();
skill();
}

}
//*********************************************************************
void CRITY_SKILL_TWO() //技能2
{
Crityadj(); //先给个随机数初始化
skillattack=(50000*Level)+CrityAttackadj;
//在这里攻击的临时技能其实就已经把随机给的值给附加上了
int tempskillattack=20000*Level;
//这个是用来显示技能的攻击的
skillmagic=1000*Level;

cout<<“猪大跑:增加”<<tempskillattack<<“攻击,消耗”<<skillmagic<<“MP”<<endl<<“技能等级”<<Level<<endl;
if (CrityMagic<skillmagic)
{
cout<<“你的MP值不足”<<endl;
getch();Csen();
repeat();
}
else
{
Csen();
skill();
}

}
//*********************************************************************
void CRITY_SKILL_THREE() //技能3
{
while(1)
{
cout<<“**********”<<endl;
cout<<“释放技能:”<<endl;
cout<<“HP恢复:”<<50000*Level<<” “<<“MP恢复:”<<2000*Level<<endl;
cout<<“技能等级:”<<Level;
CrityLife=CrityLife+(50000*Level);
CrityMagic=CrityMagic+(2000*Level);
if (CrityLife>BigCrityLife && CrityMagic>BigCrityMagic)
{ //如果恢复的大于最大值,则把结果恢复成一样。
CrityLife=BigCrityLife; CrityMagic=BigCrityMagic;
}
getch();Csen();
cout<<“怪物对您进行攻击:”;
cout<<“怪物对您造成伤害”<<Moerattack-CrityDefense<<endl;
if(CrityDefense>Moerattack)
{
cout<<“怪物攻击低于您的防御,怪物受到伤害:”
<<Moerattack-CrityDefense<<endl;
Moerlife=Moerlife-(CrityDefense-Moerattack);
if (Moerlife<=0)
{
cout<<“**********”<<endl;
cout<<“恭喜您胜利了!”<<endl;
cout<<“**********”<<endl;
Moerlife=0;Moerattack=0;
Moerdefense=0;Moermagic=0;
skillattack=0;skillmagic=0;
Money=Money+tempmomey+Moneyadj;
tempmomey=0;
getch();Csen();
GOTOMAP();
//属性归0,用于下次挑战重新赋值
break;
}
repeat();
}
else
{
cout<<“怪物对您造成伤害”<<Moerattack-CrityDefense<<endl;
CrityLife=CrityLife-(Moerattack-CrityDefense);
if (CrityLife<=0)
{
cout<<“你被怪物重伤昏迷”<<endl;
cout<<“挑战失败!”<<endl;
cout<<“是否原地复活?”<<endl;
Resurrection();repeat();
}
getch();Csen();
repeat();
}
}

}
//*********************************************************************
void CRITY_SKILL_FOUR() //技能4
{
while (1)
{
int tempCrityDefense=CrityDefense*(Level*0.1);
cout<<“防御增加”<<Level*10<<“%”<<endl;
cout<<“当前防御:”<<CrityDefense<<“+”<<tempCrityDefense
<<“=”<<CrityDefense+tempCrityDefense<<endl;
cout<<“怪物对您进行攻击:”;
if ((CrityDefense+tempCrityDefense)>Moerattack) //如果防御大于怪物攻击
{
cout<<“怪物攻击低于您的防御,怪物受到伤害:”
<<(CrityDefense+tempCrityDefense)-Moerattack<<endl;
Moerlife=Moerlife-((CrityDefense+tempCrityDefense)-Moerattack);
if (Moerlife<0)
{
cout<<“**********”<<endl;
cout<<“恭喜您胜利了!”<<endl;
cout<<“**********”<<endl;
Moerlife=0;Moerattack=0;
Moerdefense=0;Moermagic=0;
skillattack=0;skillmagic=0;
Money=Money+tempmomey+Moneyadj;
tempmomey=0;
//怪物属性归0,用于下次挑战重新赋值
getch();Csen();
GOTOMAP();
break;
}
getch();Csen();
repeat();
break;
}
cout<<“怪物对您造成伤害”<<Moerattack-(CrityDefense+tempCrityDefense)<<endl;
CrityLife=CrityLife-(Moerattack-(CrityDefense+tempCrityDefense));
if (CrityLife<=0)
{
cout<<“你被怪物重伤昏迷”<<endl;
cout<<“挑战失败!”<<endl;
cout<<“是否原地复活?”<<endl;
Resurrection();repeat();
}
getch();Csen();
repeat();
}

}
//*********************************************************************
void CRITY_SKILL_FIVE() //技能5
{
Crityadj();
skillattack=(CrityAttack*2*Level)+CrityAttackadj;
//在这里攻击的临时技能其实就已经把随机给的值给附加上了
int tempcritylife=50000*Level;
skillmagic=5000*Level;
cout<<“终级技能:天崩地裂”<<endl;
cout<<“释放自身攻击*2*等级的伤害,HP-“<<tempcritylife<<” MP-“<<skillmagic<<endl;

if (CrityLife<tempcritylife || skillmagic>CrityMagic)
{
cout<<“你的HP或MP不足,不能使用此技能”<<endl;
getch();Csen();
repeat();
}
else
{
CrityLife=CrityLife-tempcritylife;
skill();
}
}
//*********************************************************************
void GOTOMAP() //地图传送
{
char i;
int o=0;
labelgotomap:
carmap();//调取车夫对话
cin>>i;
switch(i)
{
case ‘1’:Csen();mapno1();break;
case ‘2’:Csen();mapno2();break;
case ‘3’:Csen();mapno3();break;
case ‘4’:Csen();mapno4();break;
case ‘5’:Csen();mapno5();break;
case ‘6’:Csen();mapno6();break;
case ‘7’:Csen();mapno7();break;
case ‘8’:Csen();mapno8();break;
case ‘9’:Csen();mapno9();break;
case ‘0’:Csen();mapno0();break;
default:
if (o++==5)
{
cout<<“传送错误5次,游戏将关闭”<<endl;
exit(0);
}
cout<<“输入错误,请重新输入:”<<endl;
goto labelgotomap;

}

}
//*********************************************************************
void carmap() //车夫,如果直接放地图传送看起来太多太大了。
{
cout<<“车夫:请问需要转送至地图几?”<<endl;
cout<<“1、地图1 (等级不受限制)。 怪物等级1″<<endl;
cout<<“2、地图2 (3级以上可进)。 怪物等级5″<<endl;
cout<<“3、地图3 (8级以上可进)。 怪物等级10″<<endl;
cout<<“4、地图4 (13级以上可进)。 怪物等级15″<<endl;
cout<<“5、地图5 (18级以上可进)。 怪物等级20″<<endl;
cout<<“6、地图6 (23级以上可进)。 怪物等级25″<<endl;
cout<<“7、地图7 (28级以上可进)。 怪物等级30″<<endl;
cout<<“8、地图8 (等级不受限制)。 怪物等级15(BOSS区)”<<endl;
cout<<“9、地图9 (等级不受限制)。 怪物等级30(BOSS区)”<<endl;
cout<<“0、猪圈。(出生地,任意点可进)”<<endl;
}
//*********************************************************************

//*********************************************************************
void npc_0()
{
cout<<“您的金币不足”<<endl;
NPC_DEAL(); //返回NPC购买对话

}
void npc_1()
{
while(1)
{
if (Money<5000)
{
npc_0();
}
cout<<“购买成功,你的攻击+10000″<<endl;
CrityAttack=CrityAttack+10000;
Money=Money-5000;
NPC_DEAL();
break;
}
}
void npc_2()
{
while(1)
{
if (Money<5000)
{
npc_0();
}
cout<<“购买成功,你的防御+10000″<<endl;
CrityDefense=CrityDefense+10000;
Money=Money-5000;
NPC_DEAL();
break;
}
}
void npc_3()
{
while(1)
{
if (Money<5000)
{
npc_0();
}
cout<<“购买成功,你的生命值+10000″<<endl;
CrityLife=CrityLife+10000;
BigCrityLife=BigCrityLife+10000;
Money=Money-5000;
NPC_DEAL();
break;
}
}
void npc_4()
{
while(1)
{
if (Money<5000)
{
npc_0();
}
cout<<“购买成功,你的魔法值+5000″<<endl;
CrityMagic=CrityMagic+5000;
BigCrityMagic=BigCrityMagic+5000;
Money=Money-5000;
NPC_DEAL();
break;
}
}
void npc_5()
{
while(1)
{
if (Money<20000)
{
npc_0();
}
cout<<“购买成功,您的攻防血法各+10000″<<endl;
CrityAttack=CrityAttack+10000;
CrityDefense=CrityDefense+10000;
CrityLife=CrityLife+10000;
BigCrityLife=BigCrityLife+10000;
CrityMagic=CrityMagic+5000;
BigCrityMagic=BigCrityMagic+5000;
Money=Money-20000;
NPC_DEAL();
break;
}
}
void npc_6()
{
while(1)
{
if (Money<1000)
{
npc_0();
}
cout<<“购买成功,您的经验值+1000″<<endl;
Experience=Experience+1000;
Money=Money-1000;
LveExp(); //购买经验书后判断是否升级
NPC_DEAL();
break;
}
}
void npc_7()
{
crity();
NPC_DEAL();
}
public:
void mapno()
{ //地图开始 同时进行默认属性初始化
//此函数游戏里只运行一次
//在这给猪头设置初始属性值,可避免角色死亡后
//回到猪圈内,不给予增加升级的属性
CrityAttack=42000;CrityDefense=30000;
CrityLife=100000;BigCrityLife=100000;
CrityMagic=50000;BigCrityMagic=50000;
int lveexp=1000; //默认1级开始的经验=1000
Money=1000;
tempExperience=lveexp;
Level=1;
cout<<“数值初始化成功”<<endl;
cout<<“是否开始游戏”<<“y”<<” “<<“n”<<endl;
char i;
cin>>i;
switch(i)
{
case’y’:
Csen();
mapno0();
break;
case ‘n’:
Csen();
cout<<“游戏关闭”<<endl;
break;
default:
Csen();
cout<<“按任意键游戏退出”<<endl;
exit(0);
}
}
void NPC_DEAL() //NPC交易函数
{
char i;int o=0;
cout<<“请问您需要购买什么呢?”<<endl;
cout<<“1、攻击能力卷:攻击+10000,消耗5000金币”<<endl;
cout<<“2、防御能力卷:防御+10000,消耗5000金币”<<endl;
cout<<“3、HP能力卷:生命+10000,消耗5000金币”<<endl;
cout<<“4、MP能力卷:魔法+5000,消耗5000金币”<<endl;
cout<<“5、攻防血法综合卷:攻防血法各+10000,消耗20000金币”<<endl;
cout<<“6、经验卷:经验+1000,消耗1000金币”<<endl;
cout<<“7、查看自身属性”<<endl;
cout<<“0、退出NPC交易系统”<<endl;
labelnpc:
cin>>i;
switch(i)
{
case ‘1’:Csen();npc_1();break;
case ‘2’:Csen();npc_2();break;
case ‘3’:Csen();npc_3();break;
case ‘4’:Csen();npc_4();break;
case ‘5’:Csen();npc_5();break;
case ‘6’:Csen();npc_6();break;
case ‘7’:Csen();npc_7();break;
case ‘0’:Csen();mapno0();break;
default:
if (o++==5)
{
cout<<“你选择错误5次,回到出生点”<<endl;
mapno0();
}
cout<<“输入错误,请重新输入:”<<endl;
goto labelnpc;
}
}
void mapno0()
{
char i;
cout<<“载入地图猪圈成功”<<endl;
cout<<“进入出生地猪圈”<<endl;
cout<<endl<<endl;
labelmapno0:
cout<<“您需要做什么?”<<endl;
cout<<“1、买能力书”<<” “<<“2、挑战怪物”<<” “<<“3、自身属性”<<” “<<“0、GM工具”<<endl;
cout<<“5、游戏功能”<<endl;

cin>>i;
switch(i)
{
case’1′:Csen();NPC_DEAL();break;//NPC函数
case’2′:Csen();GOTOMAP();break;//
case ‘3’:Csen();crity();mapno0();break;
case ‘0’:Csen();gm();break;
case’5′:Csen();gongneng();mapno0();break;
default:
cout<<“您输入错误,请重新输入”<<endl;
goto labelmapno0;
}
}
void adj_momey()
{
int o;
//可以判断等级或者怪物攻击来增加rand()%1000+Level
srand((unsigned)time(NULL)); //随机
o=rand()%3;
switch(o)
{
case 1:Moneyadj=rand()%1000+1000+(Level*3);
case 2:Moneyadj=rand()%1000+2000+(Level*3);
case 0:Moneyadj=rand()%1000+1500+(Level*3);
}

}
void mapno1()
{
adj_momey();
tempmomey=500; //金币给500+随机
cout<<“载入地图一成功”<<endl;
cout<<“进入地图一:蚂蚁洞”<<endl;
Moerattack=35000; //怪物攻
Moerdefense=35000;
Moerlife=200000;
Moermagic=35000;
cout<<“进入与蚂蚁PK回合:”<<endl;
repeat(); //调取PK开始,如果胜利,继续执行
Experience=Experience+800; //经验加成
// Money=Money+700;
LveExp();//判断加成的经验提升等级
crity();//重新显示人物属性
GOTOMAP();//重新弹出车夫
}

void mapno2()
{
if (Level<3)
{
cout<<“您的等级不能进入此地图,请重新选择”<<endl;
GOTOMAP();
}
adj_momey();
tempmomey=1500;
cout<<“载入地图二成功”<<endl;
cout<<“进入地图二”<<endl;
Moerattack=55000; //怪物攻
Moerdefense=45000;
Moerlife=300000;
Moermagic=55000;
cout<<“进入与蜗牛PK回合:”<<endl;
repeat(); //调取PK开始,如果胜利,继续执行
Experience=Experience+40000; //经验加成
LveExp();//判断加成的经验提升等级
crity();//重新显示人物属性
GOTOMAP();//重新弹出车夫
}
void mapno3()
{
if (Level<8)
{
cout<<“您的等级不能进入此地图,请重新选择”<<endl;
GOTOMAP();
}
adj_momey();
tempmomey=13500;
cout<<“载入地图三成功”<<endl;
cout<<“进入地图三”<<endl;
Moerattack=105000; //怪物攻
Moerdefense=65000;
Moerlife=800000;
Moermagic=55000;
cout<<“进入与老鼠PK回合:”<<endl;
repeat(); //调取PK开始,如果胜利,继续执行
Experience=Experience+99000; //经验加成
LveExp();//判断加成的经验提升等级
crity();//重新显示人物属性
GOTOMAP();//重新弹出车夫
}
void mapno4()
{
if (Level<13)
{
cout<<“您的等级不能进入此地图,请重新选择”<<endl;
GOTOMAP();
}
adj_momey();
tempmomey=99900;
cout<<“载入地图四成功”<<endl;
cout<<“进入地图四”<<endl;
Moerattack=155000; //怪物攻
Moerdefense=85000;
Moerlife=1000000;
Moermagic=55000;
cout<<“进入与花猫PK回合:”<<endl;
repeat(); //调取PK开始,如果胜利,继续执行
Experience=Experience+187000; //经验加成
LveExp();//判断加成的经验提升等级
crity();//重新显示人物属性
GOTOMAP();//重新弹出车夫
}
void mapno5()
{
if (Level<18)
{
cout<<“您的等级不能进入此地图,请重新选择”<<endl;
GOTOMAP();
}
adj_momey();
tempmomey=301243;
cout<<“载入地图五成功”<<endl;
cout<<“进入地图五”<<endl;
Moerattack=255000; //怪物攻
Moerdefense=105000;
Moerlife=1300000;
Moermagic=55000;
cout<<“进入与小狗PK回合:”<<endl;
repeat(); //调取PK开始,如果胜利,继续执行
Experience=Experience+552637; //经验加成

LveExp();//判断加成的经验提升等级
crity();//重新显示人物属性
GOTOMAP();//重新弹出车夫
}
void mapno6()
{
if (Level<23)
{
cout<<“您的等级不能进入此地图,请重新选择”<<endl;
GOTOMAP();
}
adj_momey();
tempmomey=420398;
cout<<“载入地图六成功”<<endl;
cout<<“进入地图六”<<endl;
Moerattack=305000; //怪物攻
Moerdefense=125000;
Moerlife=1500000;
Moermagic=55000;
cout<<“进入与狼PK回合:”<<endl;
repeat(); //调取PK开始,如果胜利,继续执行
Experience=Experience+2283746; //经验加成
LveExp();//判断加成的经验提升等级
crity();//重新显示人物属性
GOTOMAP();//重新弹出车夫
}
void mapno7()
{
if (Level<28)
{
cout<<“您的等级不能进入此地图,请重新选择”<<endl;
GOTOMAP();
}
adj_momey();
tempmomey=5000000;
cout<<“载入地图七成功”<<endl;
cout<<“进入地图七”<<endl;
Moerattack=355000; //怪物攻
Moerdefense=145000;
Moerlife=1700000;
Moermagic=55000;
cout<<“进入与老虎PK回合:”<<endl;
repeat(); //调取PK开始,如果胜利,继续执行
Experience=Experience+6547382; //经验加成
LveExp();//判断加成的经验提升等级
crity();//重新显示人物属性
GOTOMAP();//重新弹出车夫
}
void mapno8()
{
adj_momey();
tempmomey=1000000;
cout<<“载入地图八成功”<<endl;
cout<<“进入地图八”<<endl;
Moerattack=200000; //怪物攻
Moerdefense=180000;
Moerlife=5000000;
Moermagic=55000;
cout<<“进入与狮子PK回合:”<<endl;
repeat(); //调取PK开始,如果胜利,继续执行
Experience=Experience+2000000; //经验加成

LveExp();//判断加成的经验提升等级
crity();//重新显示人物属性
GOTOMAP();//重新弹出车夫
}
void mapno9()
{
adj_momey();
tempmomey=3000000;
cout<<“载入地图九成功”<<endl;
cout<<“进入地图九”<<endl;
Moerattack=1000000; //怪物攻
Moerdefense=500000;
Moerlife=20000000;
Moermagic=55000;
cout<<“进入与’猎人’PK回合:”<<endl;
repeat(); //调取PK开始,如果胜利,继续执行
Experience=Experience+10000000; //经验加成
LveExp();//判断加成的经验提升等级
crity();//重新显示人物属性
GOTOMAP();//重新弹出车夫
}
private:
int mima;
int o;int i;
void xiugai()
{
labelxiugai:
cout<<“请输入您要修改的数值(1-1000000):”<<endl;
cin>>o;
if (o<1||o>1000000)
{
cout<<“您输入错误,请重新输入”<<endl;
goto labelxiugai;
}
}
void gmmima()
{
int mima=0;
int i;
int o=3;
int game;
labelgmmima:
cout<<“请输入GM模式密码”<<endl;
cin>>i;
if (i!=mima)
{
if (o–==1)
{
cout<<“您输入GM密码错误3次,游戏将关闭。”<<endl;
exit(0);
}
cout<<“密码错误,请重新输入”<<endl;
cout<<“您还剩”<<o<<“次机会”<<endl;
cout<<“如要返回游戏,请按1″<<endl;
cin>>game;
if (game==mima)
{
mapno0();
}
goto labelgmmima;
}
}
void gongji()
{
xiugai();
CrityAttack=CrityAttack+o;
mapno0();
}
void fangyu()
{
xiugai();
CrityDefense=CrityDefense+o;
mapno0();
}
void shengming()
{
xiugai();
CrityLife=CrityLife+o;
BigCrityLife=BigCrityLife+o;
mapno0();
}
void mofa()
{
xiugai();
CrityMagic=CrityMagic+o;
BigCrityMagic=BigCrityMagic+o;
mapno0();
}
void jinbi()
{
xiugai();
Money=Money+o;
mapno0();
}
public:
void gm()
{
gmmima();
cout<<“进入GM模式,请选择需要修改的数据”<<endl;
cout<<“1、修改角色攻击力(最多一次增加1000000)”<<endl;
cout<<“2、修改角色防御力(最多一次增加1000000)”<<endl;
cout<<“3、修改角色生命值(最多一次增加1000000)”<<endl;
cout<<“4、修改角色魔法值(最多一次增加1000000)”<<endl;
cout<<“5、修改角色游戏币(最多一次增加1000000)”<<endl;
cout<<“为了不弄太变态,以后这个将被修改,修改经验值增加的经验及属性”<<endl;
label_l:
cin>>i;
switch(i)
{
case 1:
gongji();break;
case 2:
fangyu();break;
case 3:
shengming();break;
case 4:
mofa();break;
case 5:
jinbi();break;
default:cout<<“输入错误,请重新输入”<<endl;
goto label_l;
}
}
};

REGISTER_ rester; //注册的对象名为rester;
AREA_ area;
CELEBRITY_ celebrity;

int main()
{

UPdate(); cout<<endl;
rester.open();
celebrity.mapno();

}

通过清心醉

自写C++一

//下载地址:http://url.cn/N9RaQv

#include “iostream.h”
#include “string.h”
#include “stdlib.h”
#include “ctype.h”
#include “stdio.h”
#include “conio.h” //getch()屏幕停留函数需要

/*
1:输入输出头文件
2:if (strcmp(account,tempaccount)==0 && strcmp(password,temppassword)==0)
strcmp函数是比较两个字符串(数组)的大小,所以需要加string.h 头文件
3:调用stdlib.h的头文件,exit函数使用
4: ctype.h头文件,AREA_类里判断输入选择大区的是否为数字
5: stdio.h 头文件,AREA_类里把输入的字符串转成数字
*/
void UPdate() //更新
{
cout<<“程序目前正常注册,登陆验证;”<<endl;
cout<<“提供回合制,由玩家先行攻击;”<<endl;
cout<<“暂时开放3个技能以及1个地图(用于测试)”<<endl;
cout<<“自动清屏,以免产生数据过多显示查看困难;”<<endl;
cout<<“增加车夫,在每个地图结束PK回合后车夫将提示;”<<endl;
cout<<“增加HP、MP上限最大值 “<<endl;
cout<<“增加攻击不破防减少攻击者HP”<<endl;
cout<<“添加等级系统,等级+1,固定加20000,攻防金币额+等级*200、血法额+等级*2000″<<endl;
cout<<“添加金币系统”<<endl;
cout<<“增加NPC系统,提供能力书的交易”<<endl;
cout<<“角色死亡后直接回出生地《猪圈》,并不直接退出游戏 “<<endl;
cout<<“角色死亡后回出生地,HP值为正常的80%”<<endl;
cout<<“增加技能4,防御增加当前防御的20%”<<endl;
cout<<“*************** 本次更新添加:***************”<<endl;
cout<<“1、终级技能 “<<endl;
cout<<“2、GM工具:密码暂设为 0 “<<endl;
cout<<“3、开放原地复活消耗固定金币”<<endl;
cout<<“4、MP值不足时,释放技能失败,要求玩家重新选择状态 “<<endl;
cout<<“5、新增加逃跑功能”<<endl;
cout<<“2013-02-28″<<endl;

cout<<“*************** 需更新:***************”<<endl;
cout<<“1、更多问题,及BUG发现将第一时间做提醒”<<endl;
cout<<“2、添加攻击有机率产生2-3倍伤害,游戏币随机增加100-500″<<endl;
cout<<“3、由于每次都是角色先出击,地图/怪物增加后,新增加速度函数 “<<endl;

//由于游戏和金币公式相对添加随机数,所以最后修改
cout<<“提示:由于是WIN32的API平台编辑,非MFC图形,所以此游戏用于CMD命令支持。”<<endl;
cout<<endl;
}

 

void Toremind() //提醒
{
cout<<“提醒:”<<endl<<” “<<endl;
cout<<“字符串尚未做完善,输入多位”<<endl
<<“程序将跳过几步骤,此为BUG。”<<endl
<<“字符串学习中,待更新中….”<<endl
<<“**************************”<<endl
<<“******猪*头*历*险*记******”<<endl
<<“**************************”<<endl
<<” “<<endl;
}

void Csen() //怕屏幕内容太多,添加一清屏函数
{
system(“cls”);
}

 

 

class AREA_ //区选择类
{
private:
void generation() //生成角色
{
cout<<“**********”<<endl;
cout<<“生成角色…”<<endl;
cout<<“名字:猪头”<<endl;
cout<<“等级:0″<<endl;
cout<<“攻击:”<<“0″<<endl;
cout<<“防御:”<<“0″<<endl;
cout<<“HP:”<<“0″<<endl;
cout<<“MP:”<<“0″<<endl;
cout<<“成功拜清心为师”<<endl;
cout<<“**********”<<endl;
}
public:
void numarea() //区号
{
char x;
int i=0;
labelTWO: //标签2,由于怕标签过多,后面加个数字做表示清晰点
cout<<“请选择:”<<endl;
cout<<“1、风之大陆”<<endl;cout<<“2、光之大陆”<<endl;
cout<<“3、水之大陆”<<endl;cout<<“0、退出游戏”<<endl;
cout<<endl;
cin>>x;
if (!isdigit(x))
{
if (i++==2)
{
cout<<“您输入错误3次,请稍后在试!”<<endl;
exit(0);
}
cout<<“您的输入有误,请重新输入”<<endl;
goto labelTWO;
}
else
{
switch(x)
{
case’1′:
Csen();
cout<<“连接风之大陆成功!”<<endl;
cout<<endl<<endl;
generation();
break;
case’2′:
Csen();
cout<<“连接光之大陆成功!”<<endl;
cout<<endl<<endl;
generation();
break;
case’3′:
Csen();
cout<<“连接水之大陆成功!”<<endl;
cout<<endl<<endl;
generation();
break;
case’0′:
cout<<“成功退出游戏,”<<endl
<<“请按任意键退出!”<<endl;
cout<<endl<<endl;
exit(0);
break;
default:
if (i++==2)
{
cout<<“您输入错误3次,请稍后在试!”<<endl;
exit(0);
}
cout<<“您的输入有误,请重新输入”<<endl;
goto labelTWO;
}
}
}
};

class REGISTER_ :public AREA_
{
private:
char account[16];
char password[16];
public:
void open()
{
cout<<“请输入您注册的帐号”<<endl;
cin>>account;
cout<<“请输入您注册帐号的密码”<<endl;
cin>>password;
Csen();
char tempaccount[16];
char temppassword[16];
int i=0;
labelONE:
cout<<endl<<endl;
cout<<“请输入您的帐号:”; cin>>tempaccount;
cout<<“请输入您的密码:”; cin>>temppassword;
if (strcmp(account,tempaccount)==0 && strcmp(password,temppassword)==0)
{
cout<<“正确”<<endl;
cout<<endl;
numarea();
Toremind();
}
else
{
if (i++==2)
{
cout<<“您输入错误3次,请稍后在试!”<<endl;
exit(0);
//退出
}
cout<<“您输入错误,请重新输入:”<<endl;
goto labelONE;
}
}
};

class CELEBRITY_ //人物
{
private:
int Level; int Experience; int tempExperience;//等级 经验 升级所需经验
int CrityAttack; //攻
int CrityDefense; //防
int CrityLife; //当前HP
int CrityMagic; //MP
int BigCrityLife; //最大HP
int BigCrityMagic; //MP
int Moerattack; int Moerdefense;
int Moerlife; int Moermagic;
//以上四整型是怪物攻防HP、MP
int skillattack; //释放技能增加的攻击,在每一个技能栏里给予赋值,技能结束后归0;
int skillmagic; //释放技能消耗的MP,技能结束归0
int Money; //游戏币
//*********************************************************************
void crity() //人物
{
cout<<“名字:猪头”<<endl;cout<<“等级:”<<Level<<endl;
cout<<“攻击:”<<CrityAttack<<endl;cout<<“防御:”<<CrityDefense<<endl;
cout<<“HP:”<<CrityLife<<“/”<<BigCrityLife<<endl;
cout<<“MP:”<<CrityMagic<<“/”<<BigCrityMagic<<endl;
cout<<“金币:”<<Money<<endl;
cout<<“当前经验”<<Experience<<“/”<<“升级经验”<<tempExperience<<endl;
cout<<endl<<endl;
}
//*********************************************************************
void monster() //由于怪物名称不一样,在调取该函数前,提前输出怪物名称
{
cout<<“**********”<<endl;
cout<<“攻击:”<<Moerattack<<endl;
cout<<“防御:”<<Moerdefense<<endl;
cout<<“HP:”<<Moerlife<<endl;
cout<<“MP:”<<Moermagic<<endl;
cout<<“**********”<<endl;
}
//*********************************************************************
void repeat() //提示进行PK
{
cout<<“**********”<<endl;
cout<<“请输入技能快捷键进行先行攻击”<<endl;
cout<<“1、猪小跑:增加”<<20000*Level<<“攻击,消耗”<<500*Level<<“MP”<<endl<<“技能等级”<<Level<<endl;
cout<<“2、猪大跑:增加”<<50000*Level<<“攻击,消耗”<<1000*Level<<“MP”<<endl<<“技能等级”<<Level<<endl;
cout<<“3、HP恢复50000,MP恢复2000″<<endl;
cout<<“4、防御增加20%”<<endl;
cout<<“5、天崩地裂:释放自身攻击*2*等级的伤害,HP-“<<50000*Level<<” MP-“<<5000*Level<<endl<<“技能等级”<<Level<<endl;
cout<<“6、当前人物属性”<<endl;
cout<<“7、当前地图怪物属性”<<endl;
cout<<“9、逃跑(回猪城)”<<endl;
cout<<“0、提醒||帮助”<<endl;
cout<<“**********”<<endl;
SKILL_PK();
}
//*********************************************************************
void LveExp() //升级经验
{

if (Experience>=tempExperience)
{
Level++;
tempExperience=tempExperience*2;
cout<<“您升级了!您的等级:”<<Level<<endl;
LVcrity();
}
}
//*********************************************************************
void Resurrection() //原地复活
{
char i;
int tempmoney=(Level*2)+888;
cout<<“原地需要费用”<<(Level*2)+888<<“金币”<<endl;
if (Money<(Level*2)+888)
{
cout<<“您的金币不足,按任意键回城”<<endl;
getch();
mapno0();
}
cout<<“是否需要原地复活?”<<endl<<“y”<<” “<<“n”<<endl;
cin>>i;
switch(i)
{
case ‘y’:
Money=Money-((Level*2)+888);
CrityLife=BigCrityLife*0.8;
CrityMagic=BigCrityMagic*0.8;
break;
case ‘n’:
mapno0();
}
}
//*********************************************************************
void LVcrity() //属性的提升
{
Money=Money+20000+(Level*200);
CrityAttack=CrityAttack+20000+(Level*200);
CrityDefense=CrityDefense+20000+(Level*200);
CrityLife=CrityLife+20000+(Level*2000);
BigCrityLife=BigCrityLife+20000+(Level*2000);
CrityMagic=CrityMagic+20000+(Level*2000);
BigCrityMagic=BigCrityMagic+20000+(Level*2000);
if (CrityLife>BigCrityLife && CrityMagic>BigCrityMagic)
{ //如果恢复的大于最大值,则把结果恢复成一样。
CrityLife=BigCrityLife;
CrityMagic=BigCrityMagic;
}

}

//*********************************************************************
void SKILL_PK() //选择技能开关
{
char i;
int o=0;
labelskpk:
cin>>i;
switch(i)
{
case ‘1’:
Csen();CRITY_SKILL_ONE();
break;
case ‘2’:
Csen();CRITY_SKILL_TWO();
break;
case ‘3’:
Csen();CRITY_SKILL_THREE();
break;
case ‘4’:
Csen();CRITY_SKILL_FOUR();
break;
case ‘5’:
Csen();CRITY_SKILL_FIVE();
break;
case ‘6’:
Csen();cout<<“查看自身状态”<<endl;
crity();repeat();
break;
case ‘7’:
Csen();cout<<“查看怪物状态”<<endl;
monster();repeat();
break;
case’0′:
Csen();cout<<“提醒||帮助”<<endl;
Toremind();repeat();
case’9′:
Csen();cout<<“逃跑!”<<endl;
mapno0();
default:
if (o++==3)
{
cout<<“释放技能错误三次,游戏将退出”<<endl;
exit(0);
}
cout<<“技能释放错误,请重新输入”<<endl;
goto labelskpk;

}
}
//*********************************************************************
void skill() //技能
{
while (1)
{
cout<<“释放技能:”<<endl;
if (Moerdefense>CrityAttack) //如果怪物防御大于攻击
{
cout<<“怪物防御高过您的攻击,你受到伤害:”
<<Moerdefense-(CrityAttack+skillattack)<<endl;
CrityLife=CrityLife-(Moerdefense-(CrityAttack+skillattack));
CrityMagic=CrityMagic-skillmagic;
cout<<“怪物对您进行攻击:”<<endl;
if (CrityDefense>Moerattack) //如果防御大于怪物攻击
{
cout<<“怪物攻击低于您的防御,怪物受到伤害:”
<<CrityDefense-Moerattack<<endl;
Moerlife=Moerlife-(CrityDefense-Moerattack);
if (Moerlife<0)
{
cout<<“**********”<<endl;
cout<<“恭喜您胜利了!”<<endl;
cout<<“**********”<<endl;
Moerlife=0;Moerattack=0;
Moerdefense=0;Moermagic=0;
skillattack=0;skillmagic=0;
//怪物属性归0,用于下次挑战重新赋值
break;
}
}
else
{
cout<<“怪物对您造成伤害”<<Moerattack-CrityDefense<<endl;
CrityLife=CrityLife-(Moerattack-CrityDefense);
if (CrityLife<=0)
{
cout<<“你被怪物重伤昏迷”<<endl;
cout<<“挑战失败!”<<endl;
cout<<“是否原地复活?”<<endl;
Resurrection();
}
repeat();
}
}
else
{
cout<<“给对方造成伤害:”<<(CrityAttack+skillattack)-Moerdefense<<endl;
Moerlife=(Moerlife-((CrityAttack+skillattack)-Moerdefense));
CrityMagic=CrityMagic-skillmagic;
if (Moerlife<=0)
{
cout<<“**********”<<endl;
cout<<“恭喜您胜利了!”<<endl;
cout<<“**********”<<endl;
Moerlife=0;Moerattack=0;
Moerdefense=0;Moermagic=0;
skillattack=0;skillmagic=0;
break;
}
cout<<“怪物对您进行攻击:”<<endl;
if (CrityDefense>Moerattack) //如果防御大于怪物攻击
{
cout<<“怪物攻击低于您的防御,怪物受到伤害:”
<<Moerattack-CrityDefense<<endl;
Moerlife=Moerlife-(CrityDefense-Moerattack);
if (Moerlife<0)
{
cout<<“**********”<<endl;
cout<<“恭喜您胜利了!”<<endl;
cout<<“**********”<<endl;
Moerlife=0;Moerattack=0;
Moerdefense=0;Moermagic=0;
skillattack=0;skillmagic=0;
break;
}
repeat();
}
else
{
cout<<“怪物对您造成伤害”<<Moerattack-CrityDefense<<endl;
CrityLife=CrityLife-(Moerattack-CrityDefense);
if (CrityLife<=0)
{
cout<<“你被怪物重伤昏迷”<<endl;
cout<<“挑战失败!”<<endl;
cout<<“是否园地复活?”<<endl;
Resurrection();
}
repeat();
}
}
}
}
//*********************************************************************
void CRITY_SKILL_ONE() //技能1
{
skillattack=20000*Level;skillmagic=500*Level;
cout<<“猪小跑:增加”<<skillattack<<“攻击,消耗”<<skillmagic<<“MP”<<endl<<“技能等级”<<Level<<endl;
if (CrityMagic<skillmagic)
{
cout<<“你的MP值不足”<<endl;
repeat();
}
skill();
}
//*********************************************************************
void CRITY_SKILL_TWO() //技能2
{
skillattack=50000*Level;skillmagic=1000*Level;
cout<<“猪大跑:增加”<<skillattack<<“攻击,消耗”<<skillmagic<<“MP”<<endl<<“技能等级”<<Level<<endl;
if (CrityMagic<skillmagic)
{
cout<<“你的MP值不足”<<endl;
repeat();
}
skill();
}
//*********************************************************************
void CRITY_SKILL_THREE() //技能3
{
while(1)
{
cout<<“**********”<<endl;
cout<<“释放技能:”<<endl;
cout<<“HP恢复:50000″<<” “<<“MP恢复:2000″<<endl;
CrityLife=CrityLife+50000;
CrityMagic=CrityMagic+2000;
if (CrityLife>BigCrityLife && CrityMagic>BigCrityMagic)
{ //如果恢复的大于最大值,则把结果恢复成一样。
CrityLife=BigCrityLife; CrityMagic=BigCrityMagic;
}
cout<<“怪物对您进行攻击:”;
cout<<“怪物对您造成伤害”<<Moerattack-CrityDefense<<endl;
if(CrityDefense>Moerattack)
{
cout<<“怪物攻击低于您的防御,怪物受到伤害:”
<<Moerattack-CrityDefense<<endl;
Moerlife=Moerlife-(CrityDefense-Moerattack);
if (Moerlife<=0)
{
cout<<“**********”<<endl;
cout<<“恭喜您胜利了!”<<endl;
cout<<“**********”<<endl;
Moerlife=0;Moerattack=0;
Moerdefense=0;Moermagic=0;
skillattack=0;skillmagic=0;
//属性归0,用于下次挑战重新赋值
break;
}
repeat();
}
else
{
cout<<“怪物对您造成伤害”<<Moerattack-CrityDefense<<endl;
CrityLife=CrityLife-(Moerattack-CrityDefense);
if (CrityLife<=0)
{
cout<<“你被怪物重伤昏迷”<<endl;
cout<<“挑战失败!”<<endl;
cout<<“是否原地复活?”<<endl;
Resurrection();
}
repeat();
}
}

}
//*********************************************************************
void CRITY_SKILL_FOUR() //技能4
{
while (1)
{
int tempCrityDefense=CrityDefense*0.2;
cout<<“防御增加20%”<<endl;
cout<<“怪物对您进行攻击:”;
if ((CrityDefense+tempCrityDefense)>Moerattack) //如果防御大于怪物攻击
{
cout<<“怪物攻击低于您的防御,怪物受到伤害:”
<<(CrityDefense+tempCrityDefense)-Moerattack<<endl;
Moerlife=Moerlife-((CrityDefense+tempCrityDefense)-Moerattack);
if (Moerlife<0)
{
cout<<“**********”<<endl;
cout<<“恭喜您胜利了!”<<endl;
cout<<“**********”<<endl;
Moerlife=0;Moerattack=0;
Moerdefense=0;Moermagic=0;
skillattack=0;skillmagic=0;
//怪物属性归0,用于下次挑战重新赋值
break;
}
repeat();
break;
}
cout<<“怪物对您造成伤害”<<Moerattack-(CrityDefense+tempCrityDefense)<<endl;
CrityLife=CrityLife-(Moerattack-(CrityDefense+tempCrityDefense));
if (CrityLife<=0)
{
cout<<“你被怪物重伤昏迷”<<endl;
cout<<“挑战失败!”<<endl;
cout<<“是否原地复活?”<<endl;
Resurrection();
}
repeat();
}

}
//*********************************************************************
void CRITY_SKILL_FIVE() //技能5
{
skillattack=CrityAttack*2*Level;skillmagic=5000*Level;CrityLife=CrityLife-(50000*Level);
cout<<“终级技能:天崩地裂”<<endl;
cout<<“释放自身攻击*2*等级的伤害,HP-“<<50000*Level<<” MP-“<<5000*Level<<endl;
if (CrityLife<50000*Level||CrityMagic<5000*Level)
{
cout<<“你的HP或MP不足,不能使用此技能”<<endl;
repeat();
}
skill();
}
//*********************************************************************
void GOTOMAP() //地图传送
{
char i;
int o=0;
labelgotomap:
carmap();//调取车夫对话
cin>>i;
switch(i)
{
case ‘1’:Csen();mapno1();break;
case ‘2’:Csen();mapno2();break;
case ‘3’:Csen();mapno3();break;
case ‘4’:Csen();mapno4();break;
case ‘5’:Csen();mapno5();break;
case ‘6’:Csen();mapno6();break;
case ‘7’:Csen();mapno7();break;
case ‘8’:Csen();mapno8();break;
case ‘9’:Csen();mapno9();break;
case ‘0’:Csen();mapno0();break;
default:
if (o++==5)
{
cout<<“传送错误5次,游戏将关闭”<<endl;
exit(0);
}
cout<<“输入错误,请重新输入:”<<endl;
goto labelgotomap;

}

}
//*********************************************************************
void carmap() //车夫,如果直接放地图传送看起来太多太大了。
{
cout<<“车夫:请问需要转送至地图几?”<<endl;
cout<<“1、地图1 (等级不受限制)。 怪物等级1″<<endl;
cout<<“2、地图2 (3级以上可进)。 怪物等级5″<<endl;
cout<<“3、地图3 (8级以上可进)。 怪物等级10″<<endl;
cout<<“4、地图4 (13级以上可进)。 怪物等级15″<<endl;
cout<<“5、地图5 (18级以上可进)。 怪物等级20″<<endl;
cout<<“6、地图6 (23级以上可进)。 怪物等级25″<<endl;
cout<<“7、地图7 (28级以上可进)。 怪物等级30″<<endl;
cout<<“8、地图8 (15级内挑战等级+1)。 怪物等级15(BOSS区)”<<endl;
cout<<“9、地图9 (等级不受限制)。 怪物等级30(BOSS区)”<<endl;
cout<<“0、猪圈。(出生地,任意点可进)”<<endl;
}
//*********************************************************************

//*********************************************************************
void npc_0()
{
cout<<“您的金币不足”<<endl;
NPC_DEAL(); //返回NPC购买对话

}
void npc_1()
{
while(1)
{
if (Money<5000)
{
npc_0();
}
cout<<“购买成功,你的攻击+10000″<<endl;
CrityAttack=CrityAttack+10000;
Money=Money-5000;
NPC_DEAL();
break;
}
}
void npc_2()
{
while(1)
{
if (Money<5000)
{
npc_0();
}
cout<<“购买成功,你的防御+10000″<<endl;
CrityDefense=CrityDefense+10000;
Money=Money-5000;
NPC_DEAL();
break;
}
}
void npc_3()
{
while(1)
{
if (Money<5000)
{
npc_0();
}
cout<<“购买成功,你的生命值+10000″<<endl;
CrityLife=CrityLife+10000;
BigCrityLife=BigCrityLife+10000;
Money=Money-5000;
NPC_DEAL();
break;
}
}
void npc_4()
{
while(1)
{
if (Money<5000)
{
npc_0();
}
cout<<“购买成功,你的魔法值+5000″<<endl;
CrityMagic=CrityMagic+5000;
BigCrityMagic=BigCrityMagic+5000;
Money=Money-5000;
NPC_DEAL();
break;
}
}
void npc_5()
{
while(1)
{
if (Money<20000)
{
npc_0();
}
cout<<“购买成功,您的攻防血法各+10000″<<endl;
CrityAttack=CrityAttack+10000;
CrityDefense=CrityDefense+10000;
CrityLife=CrityLife+10000;
BigCrityLife=BigCrityLife+10000;
CrityMagic=CrityMagic+5000;
BigCrityMagic=BigCrityMagic+5000;
Money=Money-20000;
NPC_DEAL();
break;
}
}
void npc_6()
{
while(1)
{
if (Money<1000)
{
npc_0();
}
cout<<“购买成功,您的经验值+1000″<<endl;
Experience=Experience+1000;
Money=Money-1000;
LveExp(); //购买经验书后判断是否升级
NPC_DEAL();
break;
}
}
void npc_7()
{
crity();
NPC_DEAL();
}
public:
void mapno()
{ //地图开始 同时进行默认属性初始化
//此函数游戏里只运行一次
//在这给猪头设置初始属性值,可避免角色死亡后
//回到猪圈内,不给予增加升级的属性
CrityAttack=42000;CrityDefense=30000;
CrityLife=100000;BigCrityLife=100000;
CrityMagic=50000;BigCrityMagic=50000;
int lveexp=1000; //默认1级开始的经验=1000
Money=1000;
tempExperience=lveexp;
Level=1;
cout<<“数值初始化成功”<<endl;
cout<<“是否开始游戏”<<“y”<<” “<<“n”<<endl;
char i;
cin>>i;
switch(i)
{
case’y’:
Csen();
mapno0();
break;
case ‘n’:
Csen();
cout<<“游戏关闭”<<endl;
break;
default:
Csen();
cout<<“按任意键游戏退出”<<endl;
exit(0);
}
}
void NPC_DEAL() //NPC交易函数
{
char i;int o=0;
cout<<“请问您需要购买什么呢?”<<endl;
cout<<“1、攻击能力卷:攻击+10000,消耗5000金币”<<endl;
cout<<“2、防御能力卷:防御+10000,消耗5000金币”<<endl;
cout<<“3、HP能力卷:生命+10000,消耗5000金币”<<endl;
cout<<“4、MP能力卷:魔法+5000,消耗5000金币”<<endl;
cout<<“5、攻防血法综合卷:攻防血法各+10000,消耗20000金币”<<endl;
cout<<“6、经验卷:经验+1000,消耗1000金币”<<endl;
cout<<“7、查看自身属性”<<endl;
cout<<“0、退出NPC交易系统”<<endl;
labelnpc:
cin>>i;
switch(i)
{
case ‘1’:Csen();npc_1();break;
case ‘2’:Csen();npc_2();break;
case ‘3’:Csen();npc_3();break;
case ‘4’:Csen();npc_4();break;
case ‘5’:Csen();npc_5();break;
case ‘6’:Csen();npc_6();break;
case ‘7’:Csen();npc_7();break;
case ‘0’:Csen();mapno0();break;
default:
if (o++==5)
{
cout<<“你选择错误5次,回到出生点”<<endl;
mapno0();
}
cout<<“输入错误,请重新输入:”<<endl;
goto labelnpc;
}
}
void mapno0()
{
cout<<“载入地图猪圈成功”<<endl;
cout<<“进入出生地猪圈”<<endl;
cout<<endl<<endl;
cout<<“您需要做什么?”<<endl;
cout<<“1、买能力书”<<” “<<“2、挑战怪物”<<” “<<“3、自身属性”<<” “<<“0、GM工具”<<endl;
char i;
cin>>i;
switch(i)
{
case’1′:Csen();NPC_DEAL();break;//NPC函数
case’2′:Csen();GOTOMAP();break;//
case ‘3’:Csen();crity();mapno0();break;
case ‘0’:Csen();gm();break;
}
}
void mapno1()
{
cout<<“载入地图一成功”<<endl;
cout<<“进入地图一:蚂蚁洞”<<endl;
Moerattack=35000; //怪物攻
Moerdefense=35000;
Moerlife=200000;
Moermagic=35000;
cout<<“进入与蚂蚁PK回合:”<<endl;
repeat(); //调取PK开始,如果胜利,继续执行
Experience=Experience+800; //经验加成
Money=Money+400; //金币加成
LveExp();//判断加成的经验提升等级
crity();//重新显示人物属性
GOTOMAP();//重新弹出车夫
}

void mapno2()
{
if (Level<3)
{
cout<<“您的等级不能进入此地图,请重新选择”<<endl;
GOTOMAP();
}
cout<<“载入地图二成功”<<endl;
cout<<“进入地图二”<<endl;
Moerattack=55000; //怪物攻
Moerdefense=45000;
Moerlife=300000;
Moermagic=55000;
cout<<“进入与蜗牛PK回合:”<<endl;
repeat(); //调取PK开始,如果胜利,继续执行
Experience=Experience+40000; //经验加成
Money=Money+800; //金币加成
LveExp();//判断加成的经验提升等级
crity();//重新显示人物属性
GOTOMAP();//重新弹出车夫
}
void mapno3()
{
if (Level<8)
{
cout<<“您的等级不能进入此地图,请重新选择”<<endl;
GOTOMAP();
}
cout<<“载入地图三成功”<<endl;
cout<<“进入地图三”<<endl;
Moerattack=105000; //怪物攻
Moerdefense=65000;
Moerlife=800000;
Moermagic=55000;
cout<<“进入与老鼠PK回合:”<<endl;
repeat(); //调取PK开始,如果胜利,继续执行
Experience=Experience+99000; //经验加成
Money=Money+10700; //金币加成
LveExp();//判断加成的经验提升等级
crity();//重新显示人物属性
GOTOMAP();//重新弹出车夫
}
void mapno4()
{
if (Level<13)
{
cout<<“您的等级不能进入此地图,请重新选择”<<endl;
GOTOMAP();
}
cout<<“载入地图四成功”<<endl;
cout<<“进入地图四”<<endl;
Moerattack=155000; //怪物攻
Moerdefense=85000;
Moerlife=1000000;
Moermagic=55000;
cout<<“进入与花猫PK回合:”<<endl;
repeat(); //调取PK开始,如果胜利,继续执行
Experience=Experience+187000; //经验加成
Money=Money+70700; //金币加成
LveExp();//判断加成的经验提升等级
crity();//重新显示人物属性
GOTOMAP();//重新弹出车夫
}
void mapno5()
{
if (Level<18)
{
cout<<“您的等级不能进入此地图,请重新选择”<<endl;
GOTOMAP();
}
cout<<“载入地图五成功”<<endl;
cout<<“进入地图五”<<endl;
Moerattack=255000; //怪物攻
Moerdefense=105000;
Moerlife=1300000;
Moermagic=55000;
cout<<“进入与小狗PK回合:”<<endl;
repeat(); //调取PK开始,如果胜利,继续执行
Experience=Experience+552637; //经验加成
Money=Money+133300; //金币加成
LveExp();//判断加成的经验提升等级
crity();//重新显示人物属性
GOTOMAP();//重新弹出车夫
}
void mapno6()
{
if (Level<23)
{
cout<<“您的等级不能进入此地图,请重新选择”<<endl;
GOTOMAP();
}
cout<<“载入地图六成功”<<endl;
cout<<“进入地图六”<<endl;
Moerattack=305000; //怪物攻
Moerdefense=125000;
Moerlife=1500000;
Moermagic=55000;
cout<<“进入与狼PK回合:”<<endl;
repeat(); //调取PK开始,如果胜利,继续执行
Experience=Experience+2283746; //经验加成
Money=Money+280000; //金币加成
LveExp();//判断加成的经验提升等级
crity();//重新显示人物属性
GOTOMAP();//重新弹出车夫
}
void mapno7()
{
if (Level<28)
{
cout<<“您的等级不能进入此地图,请重新选择”<<endl;
GOTOMAP();
}
cout<<“载入地图七成功”<<endl;
cout<<“进入地图七”<<endl;
Moerattack=355000; //怪物攻
Moerdefense=145000;
Moerlife=1700000;
Moermagic=55000;
cout<<“进入与老虎PK回合:”<<endl;
repeat(); //调取PK开始,如果胜利,继续执行
Experience=Experience+6547382; //经验加成
Money=Money+460000; //金币加成
LveExp();//判断加成的经验提升等级
crity();//重新显示人物属性
GOTOMAP();//重新弹出车夫
}
void mapno8()
{
cout<<“载入地图八成功”<<endl;
cout<<“进入地图八”<<endl;
Moerattack=200000; //怪物攻
Moerdefense=180000;
Moerlife=5000000;
Moermagic=55000;
cout<<“进入与狮子PK回合:”<<endl;
repeat(); //调取PK开始,如果胜利,继续执行
Experience=Experience+2000000; //经验加成
Money=Money+500000; //金币加成
LveExp();//判断加成的经验提升等级
crity();//重新显示人物属性
GOTOMAP();//重新弹出车夫
}
void mapno9()
{
cout<<“载入地图九成功”<<endl;
cout<<“进入地图九”<<endl;
Moerattack=1000000; //怪物攻
Moerdefense=500000;
Moerlife=20000000;
Moermagic=55000;
cout<<“进入与’猎人’PK回合:”<<endl;
repeat(); //调取PK开始,如果胜利,继续执行
Experience=Experience+10000000; //经验加成
Money=Money+2000000; //金币加成
LveExp();//判断加成的经验提升等级
crity();//重新显示人物属性
GOTOMAP();//重新弹出车夫
}
private:
int mima;
int o;int i;
void xiugai()
{
labelxiugai:
cout<<“请输入您要修改的数值(1-1000000):”<<endl;
cin>>o;
if (o<1||o>1000000)
{
cout<<“您输入错误,请重新输入”<<endl;
goto labelxiugai;
}
}
void gmmima()
{
int mima=0;
int i;
int o=3;
int game;
labelgmmima:
cout<<“请输入GM模式密码”<<endl;
cin>>i;
if (i!=mima)
{
if (o–==1)
{
cout<<“您输入GM密码错误3次,游戏将关闭。”<<endl;
exit(0);
}
cout<<“密码错误,请重新输入”<<endl;
cout<<“您还剩”<<o<<“次机会”<<endl;
cout<<“如要返回游戏,请按1″<<endl;
cin>>game;
if (game==mima)
{
mapno0();
}
goto labelgmmima;
}
}
void gongji()
{
xiugai();
CrityAttack=CrityAttack+o;
mapno0();
}
void fangyu()
{
xiugai();
CrityDefense=CrityDefense+o;
mapno0();
}
void shengming()
{
xiugai();
CrityLife=CrityLife+o;
BigCrityLife=BigCrityLife+o;
mapno0();
}
void mofa()
{
xiugai();
CrityMagic=CrityMagic+o;
BigCrityMagic=BigCrityMagic+o;
mapno0();
}
void jinbi()
{
xiugai();
Money=Money+o;
mapno0();
}
public:
void gm()
{
gmmima();
cout<<“进入GM模式,请选择需要修改的数据”<<endl;
cout<<“1、修改角色攻击力(最多一次增加1000000)”<<endl;
cout<<“2、修改角色防御力(最多一次增加1000000)”<<endl;
cout<<“3、修改角色生命值(最多一次增加1000000)”<<endl;
cout<<“4、修改角色魔法值(最多一次增加1000000)”<<endl;
cout<<“5、修改角色游戏币(最多一次增加1000000)”<<endl;
cout<<“为了不弄太变态,以后这个将被修改,修改经验值增加的经验及属性”<<endl;
label_l:
cin>>i;
switch(i)
{
case 1:
gongji();break;
case 2:
fangyu();break;
case 3:
shengming();break;
case 4:
mofa();break;
case 5:
jinbi();break;
default:cout<<“输入错误,请重新输入”<<endl;
goto label_l;
}
}
};

REGISTER_ rester; //注册的对象名为rester;
AREA_ area;
CELEBRITY_ celebrity;

int main()
{

UPdate(); cout<<endl;
rester.open();
celebrity.mapno();

}

通过清心醉

一个简单的C++语句

#include <iostream.h>

int main()

{

cout<<“Hello”<<endl;

}