คืออ่านจาก KornbotFunction แล้วเขียนสคริปไม่ถูกอ่ะครับล
เช่น procedure NpcDialogMenu(DialgoId: Integer);
ผมก็ต่อด้วยว่า
begin
if (DialogId= xxxx) then ตรงนี้ควรจะเป้นอะไรครับ ;
( เห็นในตัวอย่างที่เป็น prodedure NpcDialog(DialogId:Integer); มันใช้ SendDialogEnd; น่ะครับ)
end;
แบบ
คือว่าจะลองไปเล่น Server Taiwan Free น่ะครับ
ลองโหลด TSRobo มาแล้วมันใช้ไม่ได้น่ะครับ
ขอตัวอย่างสคริปโดดเควสง่ายๆซักตัวอย่างครับ
เริ่มโดย MummyX, Aug 10 2007 06:49 AM
มี 6 โพสต์ตอบกลับกระทู้นี้
#1
โพสต์เมื่อ 10 August 2007 - 06:49:01 AM
#2
โพสต์เมื่อ 10 August 2007 - 08:24:50 AM
ตัวอย่างเควสขงเบ้งคร้าบ กรณีเป็นปาร์ตี้นะคร้าบ
ถ้าคนเดียวให้เอา ClickNpc(13) ใน PartyReady ไปใส่ใน Logon แทนคร้าบ
ถ้าคนเดียวให้เอา ClickNpc(13) ใน PartyReady ไปใส่ใน Logon แทนคร้าบ
var
isClick: Boolean;
isLag: Word;
procedure Logon;
begin
isClick := False;
end;
procedure PartyReady;
begin
ClickNpc(13);
end;
procedure OnTimer;
begin
if isClick then
begin
SendCancelQuest;
AutoEat;
ClickNpc(13);
isClick := False;
isLag := 0;
end;
Inc(isLag);
if (isLag mod 60= 0) then Reconnect(5);
end;
procedure NpcDialog(DialogId: Integer);
begin
if (DialogId = 19737) then SendDialogEnd;
if (DialogId = 19738) then SendDialogEnd;
if (DialogId = 10150) then
begin
isClick := MyParty.isReady;
end;
end;
isClick: Boolean;
isLag: Word;
procedure Logon;
begin
isClick := False;
end;
procedure PartyReady;
begin
ClickNpc(13);
end;
procedure OnTimer;
begin
if isClick then
begin
SendCancelQuest;
AutoEat;
ClickNpc(13);
isClick := False;
isLag := 0;
end;
Inc(isLag);
if (isLag mod 60= 0) then Reconnect(5);
end;
procedure NpcDialog(DialogId: Integer);
begin
if (DialogId = 19737) then SendDialogEnd;
if (DialogId = 19738) then SendDialogEnd;
if (DialogId = 10150) then
begin
isClick := MyParty.isReady;
end;
end;
Works: KoRnBot Project,TSLoadDatFile
Thanks X CroSs, Truebot, TSBot, Solars, JackY, some1, Storm24, AssertionFailed from www.skjune.com
#3
โพสต์เมื่อ 10 August 2007 - 02:20:16 PM
ตัวอย่างเควสขงเบ้งคร้าบ กรณีเป็นปาร์ตี้นะคร้าบ
ถ้าคนเดียวให้เอา ClickNpc(13) ใน PartyReady ไปใส่ใน Logon แทนคร้าบ
var
isClick: Boolean;
isLag: Word;
procedure Logon;
begin
isClick := False;
end;
procedure PartyReady;
begin
ClickNpc(13);
end;
procedure OnTimer;
begin
if isClick then
begin
SendCancelQuest;
AutoEat;
ClickNpc(13);
isClick := False;
isLag := 0;
end;
Inc(isLag);
if (isLag mod 60= 0) then Reconnect(5);
end;
procedure NpcDialog(DialogId: Integer);
begin
if (DialogId = 19737) then SendDialogEnd;
if (DialogId = 19738) then SendDialogEnd;
if (DialogId = 10150) then
begin
isClick := MyParty.isReady;
end;
end;
isClick: Boolean;
isLag: Word;
procedure Logon;
begin
isClick := False;
end;
procedure PartyReady;
begin
ClickNpc(13);
end;
procedure OnTimer;
begin
if isClick then
begin
SendCancelQuest;
AutoEat;
ClickNpc(13);
isClick := False;
isLag := 0;
end;
Inc(isLag);
if (isLag mod 60= 0) then Reconnect(5);
end;
procedure NpcDialog(DialogId: Integer);
begin
if (DialogId = 19737) then SendDialogEnd;
if (DialogId = 19738) then SendDialogEnd;
if (DialogId = 10150) then
begin
isClick := MyParty.isReady;
end;
end;
ไอ้ตรง
procedure NpcDialog(DialogId: Integer);
begin
if (DialogId = 19737) then SendDialogEnd;
if (DialogId = 19738) then SendDialogEnd;
if (DialogId = 10150) then
begin
isClick := MyParty.isReady;
end;
ถ้าหากว่าในเควสเป็นคำถามให้เราเลือกตอบอ่ะครรับ เช่นเราต้องตอบข้อ 1 รูปแบบฟังก์ชั่นมันจะเป็นยังไงหรอครับ
procedure NpcDialogMenu(DialogId: Integer);
begin
if(DialogId=xxxxxx)then ตอบข้อ1 ;
เป็นอย่างไรต่อไป;
end;
คือไม่ค่อยเข้าใจตรงช่วงนี้อ่ะครับ
#4
โพสต์เมื่อ 11 August 2007 - 08:58:46 PM
ถ้าในเควสต้องตอบคำถาม ให้เพิ่ม procedure นี้เข้าไปครับ
โดย SendDialogEnd; จะต้องใส่ตาม ต่อหลัง SelectDialogChoice(1); เสมอ
เลข 1 ในวงเล็บก็คือ คำตอบที่เราเลือกนะครับ
ถ้าเควสตอบ 2 ก็ใส่ 2 ไปแทน
procedure NpcDialogMenu(DialogId: Integer);
begin
SelectDialogChoice(1);
SendDialogEnd;
end;
begin
SelectDialogChoice(1);
SendDialogEnd;
end;
โดย SendDialogEnd; จะต้องใส่ตาม ต่อหลัง SelectDialogChoice(1); เสมอ
เลข 1 ในวงเล็บก็คือ คำตอบที่เราเลือกนะครับ
ถ้าเควสตอบ 2 ก็ใส่ 2 ไปแทน
#5
โพสต์เมื่อ 12 August 2007 - 03:11:44 AM
ถ้าในเควสต้องตอบคำถาม ให้เพิ่ม procedure นี้เข้าไปครับ
procedure NpcDialogMenu(DialogId: Integer);
begin
SelectDialogChoice(1);
SendDialogEnd;
end;
begin
SelectDialogChoice(1);
SendDialogEnd;
end;
โดย SendDialogEnd; จะต้องใส่ตาม ต่อหลัง SelectDialogChoice(1); เสมอ
เลข 1 ในวงเล็บก็คือ คำตอบที่เราเลือกนะครับ
ถ้าเควสตอบ 2 ก็ใส่ 2 ไปแทน
นี่ละครับที่ต้องการ ขอบคุณมากๆครับ
#6
โพสต์เมื่อ 12 August 2007 - 03:50:23 AM
Ok พอจะทำได้แล้วครับ แต่มันโดดได้ครั้งเดียวหรอครับ มีวิธีแบบไม่ต้อง Reconnect มั้ยครับ ใช้ฟังก์ชั่นอะไรใส่ตรงไหนหรือครับ ช่วยทีนะครับ
#7
โพสต์เมื่อ 13 August 2007 - 01:35:08 AM
Ok พอจะทำได้แล้วครับ แต่มันโดดได้ครั้งเดียวหรอครับ มีวิธีแบบไม่ต้อง Reconnect มั้ยครับ ใช้ฟังก์ชั่นอะไรใส่ตรงไหนหรือครับ ช่วยทีนะครับ
ปกติมันก็โดดได้ต่อเนื่องนะครับ ขึ้นอยู่กับว่าจังหวะการ Cancel Quest อยู่ที่จังหวะไหน
อาจจะแบ่งได้ชัด ๆ เลย 2 อัน คือ
1. Cancel Quest เมื่อเกิด Dialog หลังสู้จบ
2 ถ้าหลังสู้จบไม่มี Dialog แสดงว่าต้อง Cancel Quest ตอนจบเลย ก็คือใน procedure BattleStoped;
หลังจากเรา Cancel Quest แล้ว เราก็ต้องเริ่มเควสใหม่อ่ะครับ การเริ่มเควสใหม่ อาจจะทำได้ทันทีหลังจาก Cancel Quest แล้ว ก็ได้ หรือทำใน ontimer ตามที่นาย KoRn ให้ตัวอย่างไว้ใน Sctipt ก็ได้ครับ
0 สมาชิกกำลังอ่านกระทู้นี้
0 สมาชิก, 0 ผู้เยี่ยมชม, 0 ผู้ใช้งานที่ซ่อนตัว