วันจันทร์ที่ 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>";

คำสั่งถอดอุปกรณ์

unequip 4;

EQI_HEAD_TOP (1)  - Upper head gear
EQI_ARMOR (2)     - Armor (Where you keep your Jackets and Robes)
EQI_HAND_L (3)    - What is in your Left hand.
EQI_HAND_R (4)    - What is in your Right hand.
EQI_GARMENT (5)   - The garment slot (Mufflers, Hoods, Manteaus)
EQI_SHOES (6)     - What foot gear the player has on.
EQI_ACC_L (7)     - Accessory 1.
EQI_ACC_R (8)     - Accessory 2.
EQI_HEAD_MID (9)  - Middle Headgear (masks and glasses)
EQI_HEAD_LOW (10) - Lower Headgear (beards, some masks)

รวมประกาศ

announce "ทดสอบ",bc_self|bc_all; //ทั้งเซิฟ

announce "This is my message just for you people here",bc_area; //เฉพาะคนที่อยู่รอบตัว(มั้ง)

announce "This will be shown to everyone at all in yellow.",bc_all,0xFFFF00; //ทั้งเซิฟ ตัวหนังสือสี

announce "This is my message just for you",bc_blue|bc_self; //เฉพาะตัวเรา

mapannounce "<map name>","<text>",<flag>{,<color>}; //ประกาศทั้งแมพที่ต้องการ

areaannounce "prt_church",0,0,350,350,"God's in his heaven, all right with the world",0; //ประกาศในแมพนั้นตามจุดที่ต้องการ

นับจำนวนไอเท็มที่ต้องการ

if(countitem(619) < 1){ dispbottom "คุณไม่มีเจโลปี้"; close; }

เช็คของที่ใส่

if(getequipid(4) != ไอดีไอเท็ม){ dispbottom "คุณไม่ได้สวมใส่ดาบ"; close; }

EQI_HEAD_TOP (1)  - Upper head gear
EQI_ARMOR (2)     - Armor (Where you keep your Jackets and Robes)
EQI_HAND_L (3)    - What is in your Left hand.
EQI_HAND_R (4)    - What is in your Right hand.
EQI_GARMENT (5)   - The garment slot (Mufflers, Hoods, Manteaus)
EQI_SHOES (6)     - What foot gear the player has on.
EQI_ACC_L (7)     - Accessory 1.
EQI_ACC_R (8)     - Accessory 2.
EQI_HEAD_MID (9)  - Middle Headgear (masks and glasses)
EQI_HEAD_LOW (10) - Lower Headgear (beards, some masks)

เพิ่มไอเท็มลงตัวละคร

getitem ไอดีไอเท็ม,จำนวน;
getitem 619,20;

แสดงข้อความบนแชท

dispbottom "[test] : test";

ลบไอเท็ม

delitem ไอดีไอเท็ม,จำนวน;

delitem 619,20;

รายละเอียดการใช้ตัวแปรต่างๆ

  name  - เก็บตัวแปรไว้กับ ตัวละคร ตลอด
  name$ - เก็บตัวหนังสือไว้กับ ตัวละคร ตลอด
 @name  - เก็บค่าตัวแปรไว้กับตัวละคร เมื่อออกจะหาย
 @name$ - เก็บค่าตัวหนังสือไว้กับตัวละคร เมื่อออกจะหาย
 $name  - เก็บตัวแปล global เป็นจำนวนเต็มจากที่อื่น
 $name$ - เก็บตัวแปล global เป็นตัวหนังสือจากที่อื่น
$@name  - temporary global integer variable
$@name$ - temporary global string variable
 .name  - npc integer variable
 .name$ - npc string variable
.@name  - เก็บตัวแปรไว้กับ npc ตลอด
.@name$ - เก็บตัวหนังสือไว้กับ npc ตลอด
 #name  - เก็บตัวแปรไว้กับ id ตลอด
 #name$ - เก็บตัวหนังสือไว้กับ id ตลอด
##name  - permanent global account integer variable
##name$ - permanent global account string variable

ประกาศ เมื่อมีคนเข้าแมพที่ตั้งไว้

- script map_self_announce -1,{
OnPCLoadMapEvent:
if (strcharinfo(3)=="morocc") set .@mname$,"welcome to morocc";
announce "[ระบบ] : ขณะนี้ คุณอยู่แผนที่ [" + .@mname$ + "] ค่ะ", bc_self,0xFC04DC;
end;
}
morocc mapflag loadevent