Cái này phía dưới lệnh a=a-10; phải có SetTop("mohinh_thangmay.pdl","BT",a); ^^
Printable View
đúng ra là có ,nhưng ko có vẩn chạy bình thường.
luốn tiện hỏi khanhmy cái luôn nha.
trong c scrpt mình muốn viết hàm để phát hiện buồng thang,ví dụ khi buòong thang lên tới tầng thì settagbit cảm biến,(để khỏi bấm cảm biến) mà khi viết chạy đến tọa độ cụ thể thì nó ko set,chi set trong 1 khoang nào đó,vậy là sao hả bạn,bạn có cách j ko?
Mình thì thường làm theo cách này, đầu tiên bạn hãy xác định tọa độ của từng tầng, sau đó nhớ tọa độ của từng tầng đó (nếu là giám sát thì căn cứ vào thang máy thật nó chạy như thế nào để xác định tọa độ này cho hợp lý, để thang máy thật chạy đúng với thang máy mô phỏng) mình có tọa độ của từng tầng rồi thì chỉ cần sử dụng lệnh if thôi mà, nếu = tọa độ đó thì dừng, bé hơn thì hạ, lớn hơn thì nâng ^^
bác nào biết tại sao máy này chạy bài đó được nhưng máy khác chạy thì k chịu,hic,mình lấy bài của bác KKKKKKKK mà chạy thì k được. Có bác nào gặp lỗi này chỉ mình với? cảm ơn trước nhé!
ví dụ mình viết như thế này nha:
a=GetTop("mohinh_thangmay.pdl","BT");
if(a==400) //400 là tọa độ của buồng thang ,khii đến tọa độ này thì mình set cảm biến phát hiện đúng tầng
{
settagbit("cbdungtang"==1);
else
settagbit("cbdungtang"==0);
}
như vậy mà khi đến tọa độ thì nó ko set.chỉ khi a< và > trong khoang 400 thì nó mới set.
Mình làm như thế này:
if(GetTagBit("CHON_TANG2")==1) //Return-Type: BOOL
{
bien1=GetTop("THANG NANG HANG.pdl","THUNG"); //Return-Type: long int
if(bien1>340)
{
bien1=bien1-5;
SetTop("THANG NANG HANG.pdl","THUNG",bien1); //Return-Type: BOOL
SetTagBit("LEN",1); //Return-Type: BOOL
SetTagBit("XUONG",0); //Return-Type: BOOL
if (bien1==340)
{
SetTagBit("CHON_TANG2",0); //Return-Type: BOOL
SetTagBit("LEN",0); //Return-Type: BOOL
SetTagBit("XUONG",0); //Return-Type: BOOL
}
}
if (bien1<340)
{
bien1=bien1+5;
SetTop("THANG NANG HANG.pdl","THUNG",bien1); //Return-Type: BOOL
SetTagBit("LEN",0); //Return-Type: BOOL
SetTagBit("XUONG",1); //Return-Type: BOOL
if (bien1==340)
{
SetTagBit("CHON_TANG2",0); //Return-Type: BOOL
SetTagBit("LEN",0); //Return-Type: BOOL
SetTagBit("XUONG",0); //Return-Type: BOOL
}
}
}
như vậy thì khi bien == 340 nó vẩn settagbit.
mình làm như vậy nhung nó ko set. chác nó ko có giá trị đó,
Có thể bạn viết Code nhầm ở chổ lệnh if, lưu ý ở đây là if lồng if nhé, chứ if riêng lẻ là không được, vì lệnh kia cứ làm cho nó chạy, lệnh này làm nó dừng, 2 lệnh như vậy nó không tác động, ở bài mình 2 cái lệnh LEN ; XUONG là mình làm cho cái mủi tên hiện thôi, k phải hành trình của thang đâu nhé, hành trình của thang chỉ phụ thuộc vào biến đầu tiên đó là if(GetTagBit("CHON_TANG2")==1) //Return-Type: BOOL
340 là tọa độ ở đâu vây? bài này bạn làm thang nâng hàng phải ko?
có mấy tâng ?