基于51单片机的密码锁程序

基于51单片机的密码锁程序,第1张

用STC52编的,下面是C程序,调试已经成功,自己看程序吧……

#include<reg52h>

#include <intrinsh>

#define uchar unsigned char

#define uint unsigned int

#define LCD_data P0

sbit SDA=P3^5;

sbit SCL=P3^4;//24C08控制口设置

sbit LCD_RS = P3^3; //寄存器选择输入

sbit LCD_RW = P3^6; //液晶读/写控制

sbit LCD_EN = P3^7; //液晶使能控制

sbit LCD_PSB = P3^2; //串/并方式控制

sbit FM=P2^4;//蜂鸣器控制口

sbit RS=P2^5;

sbit T_CLK = P2^0; //实时时钟时钟线引脚 //

sbit T_IO = P2^1; //实时时钟数据线引脚 //

sbit T_RST = P2^2; //实时时钟复位线引脚 //

sbit ds=P2^3;

sbit EN=P2^6;

sbit ZZ=P2^7;

sbit FZ=P3^1;

sbit ACC0=ACC^0;

sbit ACC7=ACC^7;

uint temp1,s_temp; //定义整形变量

float f_temp; //定义浮点型变量

uchar time[]=" : : ";

uchar day[]=" 20 / / ( ) ";

uchar temp0[]=" 温度: 度 ";

uchar num,num1,flag,count,a,b;

uchar unlock_i;//解密标志位

uchar t[4];

uchar t1[4];

void delay_ms(uint z)//长延时

{

uint x,y;

for(x=z;x>0;x--)

for(y=110;y>0;y--);

}

void delay() //短延时,大约5us

{

; ;

}

void reshi()

{

if(RS==1)

{ unlock_i=1;

}

else

{

unlock_i=0;

}

}

uchar code mima[]={'0','1','2','3','4','5','6','7','8','9','0',''};

void lcd_xieping0(uchar x,uchar y,uchar date);

void lcd_xieping(uchar x,uchar y,uchar str);

//

// 开机显示

//

void kjxs()

{

uint i,j;

lcd_xieping(0,0,"");

lcd_xieping(1,0," 欢迎进入 ");

lcd_xieping(2,0," 密码锁系统! ");

lcd_xieping(3,0,"");

delay_ms(4000);

lcd_xieping(0,0," 系统初始化中 ");

lcd_xieping(1,0," 请稍后… ");

lcd_xieping(2,0,"————————");

lcd_xieping(3,0," ");

for(j=3;j>0;j--)

{

for(i=0;i<8;i++)

{

lcd_xieping(3,i,"");

delay_ms(250);

}

lcd_xieping(3,0," ");

}

}

//

// 12864显示

//

void write_cmd(uchar cmd)

{

LCD_RS = 0;

LCD_RW = 0;

LCD_EN = 0;

P0 = cmd;

delay_ms(5);

LCD_EN = 1;

delay_ms(5);

LCD_EN = 0;

}

void write_dat(uchar dat)

{

LCD_RS = 1;

LCD_RW = 0;

LCD_EN = 0;

P0 = dat;

delay_ms(5);

LCD_EN = 1;

delay_ms(5);

LCD_EN = 0;

}

void lcd_xieping0(uchar x,uchar y,uchar date)

{

switch(x)

{

case 0: write_cmd(0x80+y); break;

case 1: write_cmd(0x90+y); break;

case 2: write_cmd(0x88+y); break;

case 3: write_cmd(0x98+y); break;

}

write_dat(date);

}

void lcd_xieping(uchar x,uchar y,uchar str)

{

switch(x)

{

case 0: write_cmd(0x80+y); break;

case 1: write_cmd(0x90+y); break;

case 2: write_cmd(0x88+y); break;

case 3: write_cmd(0x98+y); break;

}

while (str)

{

write_dat(str);

str++;

}

}

void lcd_init()

{

LCD_PSB = 1; //并口方式

write_cmd(0x30); //基本指令 *** 作

delay_ms(5);

write_cmd(0x0C); //显示开,关光标

delay_ms(5);

write_cmd(0x01); //清除LCD的显示内容

delay_ms(5);

}

//

// 键盘扫描函数

//

uchar keyscan1() //矩阵键盘扫描函数

{

uchar temp;

while(!num)

{P1=0xfe; //赋值

temp=P1; //读回数据

temp=temp&0xf0; //与运算

if(temp!=0xf0) //判断

{

delay_ms(2); //延时消抖

temp=P1; //读回数据

temp=temp&0xf0;

if(temp!=0xf0)

{

switch(temp) //多分支选择

{

case 0x70:num=1;break; //跳出

case 0xb0:num=2;break;

case 0xd0:num=3;break;

case 0xe0:num=4;break;

}

while(temp!=0xf0)

{

temp=P1;

temp=temp&0xf0;

}//等待按键释放

}

}

P1=0xfd; //赋值

temp=P1; //读回数据

temp=temp&0xf0; //与运算

if(temp!=0xf0) //判断

{

delay_ms(2); //延时消抖

temp=P1; //读回数据

temp=temp&0xf0;

if(temp!=0xf0)

{

switch(temp) //多分支选择

{

case 0x70:num=5;break; //跳出

case 0xb0:num=6;break;

case 0xd0:num=7;break;

case 0xe0:num=8;break;

}

while(temp!=0xf0)

{

temp=P1;

temp=temp&0xf0;

}//等待按键释放

}

}

P1=0xfb; //赋值

temp=P1; //读回数据

temp=temp&0xf0; //与运算

if(temp!=0xf0) //判断

{

delay_ms(2); //延时消抖

temp=P1; //读回数据

temp=temp&0xf0;

if(temp!=0xf0)

{

switch(temp) //多分支选择

{

case 0x70:num=9;break; //跳出

case 0xb0:num=10;break;

case 0xd0:num=11;break;

case 0xe0:num=12;break;

}

while(temp!=0xf0)

{

temp=P1;

temp=temp&0xf0;

}//等待按键释放

}

}

}

return(num); //返回值

}

uchar keyscan2()

{

uchar temp;

while(!num1)

{P1=0xf7; //赋值

temp=P1; //读回数据

temp=temp&0xf0; //与运算

if(temp!=0xf0) //判断

{

delay_ms(2); //延时消抖

temp=P1; //读回数据

temp=temp&0xf0;

if(temp!=0xf0)

{

switch(temp) //多分支选择

{

case 0x70:num1=1;break; //跳出

case 0xb0:num1=2;break;

case 0xd0:num1=3;break;

case 0xe0:num1=4;break;

}

while(temp!=0xf0)

{

temp=P1;

temp=temp&0xf0;

}//等待按键释放

}

}

}

return(num1);

}

//

// 直流电机

//

void dianjiZZ()

{

EN=1;

ZZ=1;

FZ=0;

}

void dianjiFZ()

{

EN=1;

ZZ=0;

FZ=1;

}

void dianji_stop()

{

EN=0;

}

//

// EPPROM

//

void start() //启动信号

{

SDA=1;

delay();

SCL=1;

delay();

SDA=0;

delay();

}

void stop() //停止信号

{

SDA=0;

delay();

SCL=1;

delay();

SDA=1;

delay();

}

void respons() //响应信号

{

uchar i;

SCL=1;

delay();

while((SDA==1)&&(i<250))

i++;

SCL=0;

delay();

}

void writebyte(uchar date) //写一个字节

{

uchar i,temp;

temp=date;

for(i=0;i<8;i++)

{

temp=temp<<1;

SCL=0;

delay();

SDA=CY;

delay();

SCL=1;

delay();

}

SCL=0;

delay();

SDA=1; //释放总线

delay();

}

uchar readbyte() //读一个字节

{

uchar i,k;

SCL=0;

delay();

SDA=1;

for(i=0;i<8;i++)

{

SCL=1;

delay();

k=(k<<1)|SDA;

SCL=0;

delay();

}

delay();

return(k);

}

void write(uchar add,uchar date) //在一个地址写一个字节

{

start();

writebyte(0xa0);

respons();

writebyte(add);

respons();

writebyte(date);

respons();

stop();

}

uchar read(uchar add) //在一个地址读一个字节

{

start();

writebyte(0xa0);

respons();

writebyte(add);

respons();

start();

writebyte(0xa1);

respons();

b=readbyte();

respons();

stop();

return(b);

}

//

// 时间日期函数

//

void v_WTInputByte(uchar ucDa)

{

uchar i;

ACC= ucDa;

for(i=8; i>0; i--)

{

T_IO = ACC0; //相当于汇编中的 RRC

T_CLK = 1;

T_CLK = 0;

ACC =ACC>> 1;

}

}

uchar uc_RTOutputByte(void)

{

uchar i;

for(i=8; i>0; i--)

{

ACC = ACC>>1; //相当于汇编中的 RRC

ACC7 = T_IO;

T_CLK = 1;

T_CLK = 0;

}

return(ACC);

}

void v_W1302(uchar ucAddr, uchar ucDa)

{

T_RST = 0;

T_CLK = 0;

T_RST = 1;

v_WTInputByte(ucAddr); / 地址,命令 /

v_WTInputByte(ucDa); / 写1Byte数据/

T_CLK = 1;

T_RST =0;

}

uchar uc_R1302(uchar ucAddr)

{

uchar ucDa;

T_RST = 0;

T_CLK = 0;

T_RST = 1;

v_WTInputByte(ucAddr); // 地址,命令 //

ucDa = uc_RTOutputByte(); // 读1Byte数据 //

T_CLK = 1;

T_RST =0;

return(ucDa);

}

void Init1302(void)

{

v_W1302(0x8e,0x00); //控制写入WP=0

v_W1302(0x80,0x80);

v_W1302(0x90,0xa9);

v_W1302(0x80,0x00); //秒

v_W1302(0x82,0x24); //分

v_W1302(0x84,0x12); //时

v_W1302(0x86,0x29); //日

v_W1302(0x88,0x10); //月

v_W1302(0x8a,0x05); //星期

v_W1302(0x8c,0x10); //年 //

v_W1302(0x8e,0x80);

}

void donetime(void)

{

uchar d;

d=uc_R1302(0x87);

day[10]=(d&0x0f)+48;

day[9]=((d>>4)&0x03)+48;

d=uc_R1302(0x89);

day[7]=(d&0x0f)+48;

day[6]=((d>>4)&0x01)+48;

d=uc_R1302(0x8b);

day[13]=(d&0x07)+48;

d=uc_R1302(0x8d);

day[4]=(d&0x0f)+48;

day[3]=(d>>4)+48;

d=uc_R1302(0x81);

time[15]=(d&0x0f)+48;

time[14]=(d>>4)+48;

d=uc_R1302(0x83);

time[12]=(d&0x0f)+48;

time[11]=(d>>4)+48;

d=uc_R1302(0x85);

time[9]=(d&0x0f)+48;

time[8]=(d>>4)+48;

}

//

// 温度检测函数

//

void dsreset(void) //18B20复位,初始化函数

{

uint i;

ds=0;

i=103;

while(i>0)i--;

ds=1;

i=4;

while(i>0)i--;

}

bit tempreadbit(void) //读1位函数

{

uint i;

bit dat;

ds=0;i++; //i++ 起延时作用

ds=1;i++;i++;

dat=ds; //读数据

i=8;while(i>0)i--;

return (dat);

}

uchar tempread(void) //读1个字节

{

uchar i,j,dat;

dat=0;

for(i=1;i<=8;i++)

{

j=tempreadbit();

dat=(j<<7)|(dat>>1); //读出的数据最低位在最前面,这样刚好一个字节在DAT里

}

return(dat);

}

void tempwritebyte(uchar dat) //向18B20写一个字节数据

{

uint i;

uchar j;

bit testb;

for(j=1;j<=8;j++)

{

testb=dat&0x01; //判断最后一位是1还是0

dat=dat>>1;

if(testb) //写 1

{

ds=0;

i++;i++;

ds=1;

i=8;while(i>0)i--;

}

else

{

ds=0; //写 0

i=8;while(i>0)i--;

ds=1;

i++;i++;

}

}

}

void tempchange(void) //DS18B20 开始获取温度并转换

{

dsreset(); //初始化,每次对18B20的 *** 作都首先要初始化

delay_ms(1);

tempwritebyte(0xcc); // 写跳过读ROM指令

tempwritebyte(0x44); // 写温度转换指令

}

void get_temp() //读取寄存器中存储的温度数据

{

uchar a,b;

dsreset(); //初始化

delay_ms(1);

tempwritebyte(0xcc); // 写跳过读ROM指令

tempwritebyte(0xbe); //写读指令

a=tempread(); //读低8位

b=tempread(); //读高8位

temp1=b;

temp1<<=8; //两个字节组合为1个字

temp1=temp1|a;

f_temp=temp100625; //温度在寄存器中为12位 分辨率位00625°

}

//

// 解密函数

//

void unlock()

{

uchar in,i;

if(num==0)

{

lcd_xieping(0,0,"密码锁系统 ");

lcd_xieping(1,0,"—————————");

lcd_xieping(2,0," 请输入密码: ");

lcd_xieping(3,0," ");

for(i=0;i<4;i++)

{

t1[i]=keyscan1();

lcd_xieping(3,i,"");

num=0;

}//输密码

}

in=keyscan1();

if(in==12)//in-确定键标志位

{

in=0;

num=0;

if((t1[0]==t[0])&&(t1[1]==t[1])&&(t1[2]==t[2])&&(t1[3]==t[3]))

{

flag=1;//解密成功与否标志位

//unlock_i=1;

a=0;//功能键标志

lcd_xieping(0,0,"密码锁系统 ");

lcd_xieping(1,0,"——————————");

lcd_xieping(2,0," 密码正确! ");

lcd_xieping(3,0," 您的身份已确认");

delay_ms(1500);

lcd_xieping(1,0,"————————");

lcd_xieping(2,0,"功能 I 开锁 ");

lcd_xieping(3,0," II修改密码");

}

else

{

flag=0;

count++;

if(count==3)

{

count=0;

num=1;

lcd_xieping(1,0,"——————————");

lcd_xieping(2,0,"您的机会已用完 ");

lcd_xieping(3,0,"对不起无法进入");

FM=0;

delay_ms(1000);

FM=1;

}

}

}

}

//

// 修改密码函数

//

void xiugaimima()

{ uchar i,j,l,im,ib;

uchar t2[4];

uchar t3[4];

num=0;

lcd_xieping(1,0,"————————");

lcd_xieping(2,0,"请输入新密码: ");

lcd_xieping(3,0," ");

for(i=0;i<4;i++)

{

t2[i]=keyscan1();

lcd_xieping0(3,i,mima[num]);

num=0;

}

im=keyscan1();

if(im==12)//im,in,ib,同为确定键标志位

{

im=0;

num=0;

lcd_xieping(1,0,"————————");

lcd_xieping(2,0,"请再次输入新密码");

lcd_xieping(3,0," ");

for(i=0;i<4;i++)

{

t3[i]=keyscan1();

lcd_xieping0(3,i,mima[num]);

num=0;

}

}

ib=keyscan1();

if(ib==12)

{

ib=0;

num=0;

if(t2[0]==t3[0]&&t2[1]==t3[1]&&t2[2]==t3[2]&&t2[3]==t3[3])

{

t[0]=t3[0];

t[1]=t3[1];

t[2]=t3[2];

t[3]=t3[3];

lcd_xieping(1,0,"————————");

lcd_xieping(2,0," 祝贺您! ");

lcd_xieping(3,0," 密码修改成功 ");

flag=0;

for(j=0;j<4;j++)

{

l=j+1;

write(l,t[j]);

delay_ms(10);

}//24C08写数据

delay_ms(1000);

}

else

{

lcd_xieping(2,0,"两次输入密码不同");

lcd_xieping(3,0," 密码修改失败 ");

flag=1;

delay_ms(500);

}

}

}

//

// 显示函数

//

void xianshi()

{

donetime();

tempchange();

get_temp();

s_temp=f_temp100;

temp0[7]=(s_temp/1000)+48;

temp0[8]=(s_temp%1000/100)+48;

temp0[10]=(s_temp%100/10)+48;

temp0[11]=(s_temp%10)+48;

lcd_xieping(0,0,"密码锁系统 ");

lcd_xieping(1,0,temp0);

lcd_xieping(2,0,day);

lcd_xieping(3,0,time);

num=0;

}

//

// 开锁函数

//

void kaisuo()

{

uchar i;

lcd_xieping(2,0," 开锁中…… ");

lcd_xieping(3,0,"——耐心等待——");

for(i=3;i>0;i--)

{

FM=0;

delay_ms(100);

FM=1;

delay_ms(100);

flag=0;

}

dianjiZZ();

delay_ms(10000);

dianji_stop();

lcd_xieping(2,0,"—开锁过程结束—");

lcd_xieping(3,0," 请开门 ");

delay_ms(5000);

dianjiFZ();

delay_ms(10000);

dianji_stop();

flag=0;

}

//

// 主函数

//

void main()

{

uchar m;

unlock_i=1;

lcd_init(); //液晶初始化

//Init1302();

kjxs(); //开机显示

for(m=0;m<4;m++)

{

t[m]=read(m+1);

delay_ms(10);

}//24C08读数据

while(1)

{

reshi();

if(!unlock_i)

{

unlock();//解密函数

}

else

{

xianshi();//时间、日期、温度显示函数

}

if(flag==1)

{

num1=0;

a=keyscan2();

if(a==1)

{

kaisuo();//开锁函数

}

if(a==2)

{

xiugaimima();//修改密码函数

}

}

}

}

魔力宝贝FZ的咬花脚本

// 设定自动战斗设置

set(timer, 100) // 设置定时器,单位毫秒

end_auto_action

set(auto_action, Auto, 1) // 开启自动战斗,0不自动战斗,1自动战斗

set(auto_action, ActionCount, 5) // 高速战斗时的 *** 作等待时间单位秒,3以上为好,不然容易断线

set(auto_action, ActionSpeed, 6) // 高速战斗速度,0速度最低,6速度最高

set(timer, 320) // 设置定时器,单位毫秒

set(timer1, 320) // 设置定时器,单位毫秒

begin2:

hao:

WaitTime(2000) //防止脚本卡住

getout

nop

nowhile("艾尔莎岛", 1)

nop

moveto(140,105)

moveto(143,107)

moveto(157,93)

turn_about(2, "")

nop

nowhile("艾夏岛", 1)

nop

moveto(92,113)

moveto(94,117)

moveto(96,121)

moveto(106,121)

turn_about(2, "")

set_wait(RECV_HEAD_crXf)

wait(RECV_HEAD_crXf)

Npc("4","", "")

wait(RECV_HEAD_crXf)

Npc("1","", "")

nop

nowhile("回忆之间", 1)

nop

moveto(8,8)

hao2:

WaitTime(3000)

nowhile("回忆之间", 8, 8)

set_wait(RECV_HEAD_crXf)

turn_about(0, "")

wait(RECV_HEAD_crXf)

set_wait(RECV_HEAD_crXf)

Npc("4", "", "")

wait(RECV_HEAD_crXf)

Npc("1", "", "")

nop

scriptstart:

if("状态", "GameCommandActionStat", "=", "0", hao2) // 判断是否战斗状态

goto(scriptstart)

参考坎村脚本://坎村打甲虫,甲虫44,45级怪挂技能脚本,可开始于阿村登入点,或坎村22,28位置。脚本发现BUG联系群14873104-----------zzg123

set(timer,350)

set(timer1, 300)

set(auto_action, Auto, 1)

set(auto_action, ActionCount, 4)

set(auto_action, ActionSpeed, 4)

set(auto_protect,AutoMove,1)

set(auto_protect, AutoMoveType, "4")

set(auto_protect, RandX, 516)

set(auto_protect, RandY, 418)

set(auto_protect,SpeedSpc,300)

ShowMessage("ZZG123出品 ", "0", gameover)InputVal("设置是否打卡", "请选择是否打卡,打卡请填11111,不打请填0", "0")

InputVal("坎村打甲虫补血值", "多少血以下补血", "1000")

InputVal("坎村打甲虫补魔值", "多少魔以下补魔", "50")

InputVal("坎村打甲虫宠补血值", "宠多少血以下补血", "500")

InputVal("坎村打甲虫宠补魔值", "宠多少魔以下补魔", "100")InputVal("卖魔石个数", "打到几个魔石去卖", "14")

InputVal("补血魔时卖魔石个数", "补血魔时有几个魔石顺便去卖", "10")//设置自动更换装备水晶耐久

InputVal("自动换武器耐久值", "多少耐久以下自动换武器,不换可不填", "10")

InputVal("备用武器名的名称", "换备用武器的名称,如:国民弓、平民弓,不换可不填", "国民弓")

InputVal("扔换下的旧武器", "是否扔换下的旧武器,扔填11111,不扔填0", "11111")InputVal("自动换衣服或铠甲耐久值", "多少耐久以下自动换衣服或铠甲,不换可不填", "10")

InputVal("要换下衣服或铠甲的名称", "要换下衣服或铠甲的名称,如:如:平民衣、平民铠,不换可不填", "平民衣")

InputVal("备用衣服或铠甲的名称", "换备用衣服或铠甲的名称,如:平民衣、平民铠,不换可不填", "平民衣")

InputVal("扔换下的旧衣服或铠甲", "是否扔换下的旧衣服或铠甲,扔填11111,不扔填0", "11111")InputVal("自动换帽子或头盔耐久值", "多少耐久以下自动换帽子或头盔,不换可不填", "10")

InputVal("备用帽子或头盔的名称", "换备用帽子或头盔的名称,如:平民帽、平民盔,不换可不填", "平民帽")

InputVal("扔换下的旧帽子或头盔", "是否扔换下的旧帽子或头盔,扔填11111,不扔填0", "11111")InputVal("自动换鞋子或长靴耐久值", "多少耐久以下自动换鞋子或长靴,不换可不填", "10")

InputVal("备用鞋子或长靴的名称", "换备用鞋子或长靴的名称,如:平民鞋、平民靴,不换可不填", "平民鞋")

InputVal("扔换下的旧鞋子或长靴", "是否扔换下的旧鞋子或长靴,扔填11111,不扔填0", "11111")InputVal("自动换水晶耐久值", "多少耐久以下自动换水晶,不换可不填", "100")

InputVal("备用水晶的名称", "换备用水晶的名称,如:地水的水晶(5:5),不换可不填", "地水的水晶(5:5)")

InputVal("扔换下的旧水晶", "是否扔换下的旧水晶,扔填11111,不扔填0", "11111")if("状态","Character_loc",=,"坎那贝拉村",Pass2)if("人", "血", "<", "设置是否打卡", cardpunches)

begin:

getout

WaitTime(2000)

nop

nowhile("阿凯鲁法村", 1) //从阿凯鲁法村登录点开始

moveto(95, 165)

moveto(95, 161)

moveto(113, 143)

moveto(132, 143)

moveto(135, 146)

moveto(179, 146)

moveto(179, 122)

moveto(180, 121)

moveto(180, 115)

moveto(175, 115)

moveto(175, 108)

moveto(167, 108)

nop // 向NPC付400元传送费

set_wait(RECV_HEAD_crXf)

turn_about(0, "")

wait(RECV_HEAD_crXf)

Npc("4", "(null)", "")

nop

Pass2:

nowhile("坎那贝拉村", 22, 28)

moveto(25, 31)

moveto(31, 31)

moveto(31, 44)

moveto(31, 48) if("人", "血", "<", "坎村打甲虫补血值", recovernow1) // 预先判断是否补血魔

if("人", "魔", "<", "坎村打甲虫补魔值", recovernow1)

if("宠", "血", "<", "坎村打甲虫宠补血值", recovernow1)

if("宠", "魔", "<", "坎村打甲虫宠补魔值", recovernow1)

goto(zhandou)zhandou: moveto(31, 52)

nop

moveto(31, 57)

moveto(31, 58)

moveto(31, 66)

moveto(31, 67)

moveto(31, 75)

moveto(31, 76)

moveto(31, 84)

moveto(31, 85)

moveto(31, 93)

moveto(31, 94)

moveto(31, 102)

goto(supermovechick)

a1:

high(10, 31, 103)

nowhile("米内葛尔岛", 1)

nop

set(timer,10)

WaitTime(1000)

moveto(645, 361)

A:

moveto(645, 362)

nop

if("状态", "GameMapxy", "=", "645,362",B)

goto(A)

B:

moveto(645, 366)

nop

if("状态", "GameMapxy", "=", "645,366",C)

goto(B)

C:

moveto(637,374)

nop

if("状态", "GameMapxy", "=", "637,374",D)

goto(C)

D:

moveto(620,374)

nop

if("状态", "GameMapxy", "=", "620,374",E)

goto(D)

E:

moveto(616,378)

nop

if("状态", "GameMapxy", "=", "616,378",F)

goto(E)

F:

moveto(612,382)

nop

if("状态", "GameMapxy", "=", "612,382",G)

goto(F)

G:

moveto(596,398)

nop

if("状态", "GameMapxy", "=", "596,398",H)

goto(G)

H:

moveto(596,403)

nop

if("状态", "GameMapxy", "=", "596,403",I)

goto(H)

I:

moveto(593,403)

nop

if("状态", "GameMapxy", "=", "593,403",J)

goto(I)

J:

moveto(586,410)

nop

if("状态", "GameMapxy", "=", "586,410", K)

goto(G)

K:

moveto(586,418)

nop

if("状态", "GameMapxy", "=", "586,418", "dddd")

goto(K)

dddd:

nop

goto(111)

noprecovernow1:

moveto(35, 48)

moveto(38, 45)b3:

high(10, 38, 44)

nowhile("医院", 1)

WaitTime(1000)b4:

moveto(15, 22)

WaitTime(1000)

moveto(20, 17)

set(timer,10)

nop

renew(east)

nowhile(renew)

set(timer,10)

nop

moveto(15, 22)

goto(supermovechick_0)

b5:

high(10, 15, 25) nowhile("坎那贝拉村", 1)

goto(supermovechick_0)

b6:

moveto(38, 45) moveto(31, 48)

goto(zhandou)cardpunches:

getout

WaitTime(2000)

nop

nowhile("阿凯鲁法村", 1) //从阿凯鲁法村登录点开始

moveto(98, 165)

moveto(91, 172)

moveto(91, 177)

moveto(93, 179)

moveto(115, 179)

moveto(117, 181)

moveto(117, 184)

moveto(121, 188)

moveto(138, 188)

moveto(145, 195)

moveto(145, 207)

moveto(149, 211)

moveto(190, 211)

moveto(192, 209)

high(10, 192, 208) // 进旅馆

nowhile("冒险者旅馆\S1楼", 1) moveto(4, 22)

moveto(8, 18)

if("人", "血", "<", "坎村打甲虫补血值", recovernow2) // 预先判断是否补血魔

if("人", "魔", "<", "坎村打甲虫补魔值", recovernow2)

if("宠", "血", "<", "坎村打甲虫宠补血值", recovernow2)

if("宠", "魔", "<", "坎村打甲虫宠补魔值", recovernow2)

moveto(8, 14)

moveto(10, 12)

nop

set_wait(RECV_HEAD_crXf) // 打卡

turn_about(2, "")

wait(RECV_HEAD_crXf)

Npc("4", "(null)", "")

moveto(8, 14)

goto(tokancun)tokancun:

moveto(8, 18)

moveto(4, 22)

high(10, 4, 23) // 出旅馆

nowhile("阿凯鲁法村", 1) moveto(192, 209)

moveto(190, 211)

moveto(179, 211)

moveto(179, 181)

moveto(172, 181)

moveto(163, 172)

moveto(179, 156)

moveto(179, 122)

moveto(180, 121)

moveto(180, 115)

moveto(175, 115)

moveto(175, 108)

moveto(167, 108)

nop // 向NPC付400元传送费

set_wait(RECV_HEAD_crXf)

turn_about(0, "")

wait(RECV_HEAD_crXf)

Npc("4", "(null)", "")

nop nowhile("坎那贝拉村", 22, 28) moveto(25, 31)

moveto(31, 31)

moveto(31, 44)

moveto(31, 48)

goto(zhandou)

recovernow2:

moveto(17, 18)

moveto(18, 17)

moveto(22, 17)

renew(north) // 恢复人宠

nowhile(renew) moveto(17, 17)

moveto(16, 18)

moveto(10, 18)

moveto(10, 12)

nop

set_wait(RECV_HEAD_crXf) // 打卡

turn_about(2, "")

wait(RECV_HEAD_crXf)

Npc("4", "(null)", "")

moveto(8, 14)

goto(tokancun)

111:

set(timer,200)

begin_auto_action 详细加我QQ,我群里有高手制作!

以上就是关于基于51单片机的密码锁程序全部的内容,包括:基于51单片机的密码锁程序、求魔力宝贝FZ挂脚本、魔力宝贝FZ脚本这么写等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/9744123.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存