我只是尝试为travian创建机器人,我找到了一些登录代码

        //download html
        WebClient client = new WebClient();
        client.Encoding = System.Text.Encoding.UTF8;
        string source = client.DownloadString(@"Http://" + server + "/login.php");
        source = source.Replace("\"", "");

        //search for user

        Regex rloginName = new Regex(@"name=login value=\w*");
        Match mloginName = rloginName.Match(source);
        if (mloginName.Success)
        {
            string loginName = mloginName.ToString().Replace(@"name=login value=", "");
        }

        //search for pass

        Regex rloginPassword = new Regex(@"type=password name=\w*");
        Match mloginPassword = rloginPassword.Match(source);
        if (mloginPassword.Success)
        {
            string loginPassword = mloginPassword.ToString().Replace(@"type=password name=", "");
        }

        Regex rloginUsername = new Regex(@"input class=fm fm110 type=text name=\w*");
        Match mloginUsername = rloginUsername.Match(source);
        if (mloginUsername.Success)
        {
            string loginUsername = mloginUsername.ToString().Replace(@"input class=fm fm110 type=text name=", "");
        }
        Regex rloginRand = new Regex(@"<p align=center><input type=hidden name=\w*");
        Match mloginRand = rloginRand.Match(source);
        if (mloginRand.Success)
        {
            string loginrand = mloginRand.ToString().Replace("<p align=center><input type=hidden name=", "");
        }

        string postString = @"w=1024:768&login=" + loginName + "&" + loginUsername + "=" + user + "&" + loginPassword + "=" + pass + "&" + loginrand + "=&s1.x=10&s1.y=10&s1=login";


        WebRequest req = WebRequest.Create(@"http://" + server + "/dorf1.php");
        req.ContentType = "application/x-www-form-urlencoded";
        req.Method = "POST";
        byte[] bytes = System.Text.Encoding.ASCII.GetBytes(postString);
        req.ContentLength = bytes.Length;
        req.ContentLength = bytes.Length;
        Stream os = req.GetRequestStream();
        os.Write(bytes, 0, bytes.Length);
        os.Close();
        WebResponse resp = req.GetResponse();
        StreamReader sr = new StreamReader(resp.GetResponseStream());


但是当我尝试运行时,我看到此错误,

Form1.cs(67,144):错误CS0103:名称'loginrand'在当前上下文中不存在
 错误CS0103:名称“ loginPassword”在当前上下文中不存在
错误CS0103:名称“ loginUsername”在当前上下文中不存在
 错误CS0103:名称'loginName'在当前上下文中不存在

可以帮个忙吗



字符串loginrand;
    如果(mloginRand.Success)
    {
        loginrand = mloginRand.ToString()。Replace(“

但没有任何改变:(


------ Build started: Project: travian-ah, Configuration: Debug Any

  
  中央处理器 - - -
  C:\ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ Csc.exe
  / noconfig / nowarn:1701,1702
  / errorreport:提示/ warn:4
  /定义:调试;跟踪
  /引用:C:\ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ System.Data.dll
  /引用:C:\ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ System.Deployment.dll
  /引用:C:\ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ System.dll
  /引用:C:\ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ System.Drawing.dll
  /引用:C:\ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ System.Windows.Forms.dll
  /引用:C:\ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ System.Xml.dll
  / debug + / debug:full / optimize-
  /out:obj\Debug\travian-ah.exe
  /resource:obj\Debug\travian_ah.Form1.resources
  /resource:obj\Debug\travian_ah.Properties.Resources.resources
  / target:winexe Form1.cs
  Form1.Designer.cs Program.cs
  属性\ AssemblyInfo.cs
  Properties \ Resources.Designer.cs
  Properties \ Settings.Designer.cs
  C:\ Documents and Settings \ My
  文件\ Visual Studio
  2005 \ Projects \ travian-ah \ travian-ah \ Form1.cs(33,64):
  错误CS0165:使用未分配的本地
  变量'server'C:\ Documents和
  设置\我的文档\ Visual Studio
  2005 \ Projects \ travian-ah \ travian-ah \ Form1.cs(70,56):
  错误CS0165:使用未分配的本地
  变量'loginName'C:\ Documents和
  设置\我的文档\ Visual Studio
  2005 \ Projects \ travian-ah \ travian-ah \ Form1.cs(70,74):
  错误CS0165:使用未分配的本地
  变量'loginUsername'C:\ Documents
  和设置\我的文档\视觉
  工作室
  2005 \ Projects \ travian-ah \ travian-ah \ Form1.cs(70,96):
  错误CS0165:使用未分配的本地
  变量'user'C:\ Documents和
  设置\我的文档\ Visual Studio
  2005 \ Projects \ travian-ah \ travian-ah \ Form1.cs(70,109):
  错误CS0165:使用未分配的本地
  变量'loginPassword'C:\ Documents
  和设置\我的文档\视觉
  工作室
  2005 \ Projects \ travian-ah \ travian-ah \ Form1.cs(70,131):
  错误CS0165:使用未分配的本地
  变量'pass'C:\ Documents和
  设置\我的文档\ Visual Studio
  2005 \ Projects \ travian-ah \ travian-ah \ Form1.cs(70,144):
  错误CS0165:使用未分配的本地
  变量'loginrand'

最佳答案

不要烦恼并为在线游戏创建机器人。
了解变量作用域,在if语句中声明一个变量意味着该变量在其外部不可用。


例如:

if (mloginPassword.Success)
{
    // variable defined here
    string loginPassword =
        mloginPassword.ToString().Replace(@"type=password name=", "");
}
// variable not available here

关于c# - 名称“loginrand”在当前上下文中不存在,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/577048/

10-13 07:58