วันจันทร์ที่ 25 สิงหาคม พ.ศ. 2557

ให้ทำงานทุกนาทีที่ตั้งไว้

// ทุกๆ 5 นาทีหลังจากผ่านไป 1 ชม
OnMinute05:
announce "ผ่านไป 5 นาทีแล้วครับ",8;
end;

// ตอนเที่ยง (24 ชม)
OnHour12:
announce "ได้เวลากินข้าวแล้ว",8;
end;

// กำหนดเวลาตายตัว
OnClock2359:
announce "อีก 1 นาทีเที่ยงคืนครับ",8;
end;

// กำหนดวันไปเลย
OnDate0101:
announce "สวัสดีวันปีใหม่ เย่......",8;
end;
}

การแสดงชื่อครับตัวละคร ปาตี้ และกิล

คำสั่งก็
strcharinfo(0) แสดงชื่อครับแสดงชื่อ

getcharid(#) แสดง ID ของตัวละคร (รหัส)

getpartyname(ID) - แสดงชื่อ Party name ต้องกรอก ID เข้าไปด้านในครับ (เด๋วมาบอก เทคนิค)

getguildname(ID) - แสดงชื่อ Guild name ต้องกรอก ID เข้าไปด้านในครับ (เด๋วมาบอก เทคนิค)

เพิ่มค่าต่างๆ ตามนี้ครับ
0 ตัวละคร
1 party
2 guild ครับ


สำหรับเทคนิคในการแสดงชื่อกิลหรือ ปาตี้ ก็

1. set ค่ารหัส ปาตี้หรือกิลชั่วคราวก่อน ครับ เช่น
ปาตี้ก็
set @PartyID, getcharid(1);
กิลก็
set @GuildID, getcharid(2);

2. จากนั้น ก็ทำการแสดงชื่อได้ครับ (มันไม่ให้รันคำสั่งซ้อนกัน)
getpartyname(@PartyID)
getguildname(@GuildID)


3. วิธีนำไปใช้ก็ เช่น
mes "ชื่อ Party ของคุณคือ" + getpartyname(@PartyID) "ขอให้สนุกนะครับ";
mes "ชื่อ Guild ของคุณคือ" + getguildname(@PartyID) "ขอให้สนุกนะครับ";

คำถาม
ทำไมต้อง set ค่าชั่วคราวก่อน
ตอบ
เพราะว่า คำสั่งมันรันซ้อนกันไม่ได้ครับ

อันนี้ คือ อันที่ผิด
getpartyname( getcharid(1) )
ไม่ต้องเอาไปใช้นะครับ ผิดครับ

กล่องข้อความ

mes "ข้อความที่ต้องการ";

เช็คว่าคู่แต่งงานออนหรือไม่

ispartneron()

เช็คว่าแต่งงานหรือยัง

getpartnerid()

ตรวจเช็คว่ามีแฟนหรือยัง ถ้ายังไม่มี if (getpartnerid()) mes "คุณยังไม่มีแฟน";
ตรวจเช็คว่ามีแฟนหรือยัง ถ้ามี if (getpartnerid()) mes "คุณมีแฟนแล้ว";

หรือ
if (getpartnerid()){
mes "คุณยังไม่มีแฟน";
}else{
mes "คุณมีแฟนแล้ว";
}

เช็ครายละเอียดต่างๆ

 getcharid(0) //ใช้สำหรับเช็ค

0 - ชื่อตัวละคร
 1 - ชื่อปาตี้
 2 - ชื่อกิล
 3 - ไอดีเข้าเกม

สั่งดีเลย์ และปลุก

*sleep {<milliseconds>};
*sleep2 {<milliseconds>};
*awake "<NPC name>";