heocon0507
Youtube Master Race
- 19/12/05
- 30
- 0
- Banned
- #1
Ví dụ 1 file script của chủ party đánh ở Cự Lộc:
double DisconnectFlag = 0.3; /*Disconnect khi lượng máu nhỏ hơn 0,3(tức là 30% */
double hpFractionEat = 0.8; //Ăn HP khi HP<= 80%
double spFractionEat = 0.8;
double hpFraction = 0.95; //Ăn HP cho tới khi HP >= 95 %
double spFraction = 0.95;
byte DisconFai = 20; // Fai của đệ tử <=20 thì disconnect
byte battle_count = 0; // đếm số trận đấu
byte myturn = 0; // biến để tính số turn của tướng
byte peturn = 0; // biến để tính số turn của đệ tử
byte pt1 = 0; //biến để xác định xem member1 đã party hay chưa(0 hoặc 1)
byte pt2 = 0;
byte pt3 = 0;
byte pt4 = 0;
double mapid1 = 12013; // cái này không nói chắc ai cũng biết
double mapid2 = 12521;
byte warpid1 = 1; //cái này cũng thế
byte warpid2 = 5;
các dòng "double mapid1 = 12013;" hay là "byte pt4 = 0; " có chữ double hay byte,đây chỉ là cách khai báo biến,các bạn không cần phải thay đổi cái này.
/***** Chinh sua ID Member o day *****/
uint idmem1 = 12345;
uint idmem2 = 1234;
uint idmem3 = 123;
uint idmem4_sena = 12; //id của quân sư
/*************************************/
/*********************** My Attack *************************/
public override void MyAttack()
{
myturn++;
if (myturn == 1)
{
CharacterInfo MyChar = ts.Character;
//NPCCombatObject Monster = findMonster();
ts.SendAttack(MyChar.Row, MyChar.Col, 0, 3, 12003);
}
if (myturn ==2)
{
ts.SendAttack(MyChar.Row, MyChar.Col, 0, 3, 17001);
}
}
hàm MyAttack ở trên để điều khiên hoạt động của Character.Mỗi khi nào đến lượt char thì hàm MyAttack được gọi.
"public override void MyAttack() " cũng chỉ là khai báo hàm.
myturn là biến để đếm số turn của char.
"myturn++" có nghĩa sau dòng lệnh này,biến myturn sẽ tăng thêm 1 giá trị.
Ở phía dưới có hàm BattleStop,nó sẽ gán giá trị biến myturn là 0.có nghĩa là khi trận đấu bắt đầu,myturn là 0.Lượt đầu tiên,sau dòng "myturn++"thì myturn có giá trị là 1.
Ở dòng lệnh tiếp theo " if (myturn == 1) "
có nghĩa là: nếu myturn nhận giá trị là 1 thì nó sẽ thực hiện lệnh sau dòng này.ở trên,lệnh sau dòng này là:
"
{
CharacterInfo MyChar = ts.Character;
//NPCCombatObject Monster = findMonster();
ts.SendAttack(MyChar.Row, MyChar.Col, 0, 3, 12003);
}
"
những ký tự sau dấu "//" ở trong file script,thì legna không thực hiện các lệnh sau nó(chỉ trên cùng 1 dòng thôi)
Dòng lệnh "ts.SendAttack(MyChar.Row, MyChar.Col, 0, 3, 12003); " có nghĩa là nó sẽ thực hiện hàng động của char 0,3 là tọa độ của điểm mình chỉ tới(cũng là tọa độ quái vật mình muốn đánh).
Việc xác định tọa độ của quái vật như sau:
Gốc tọa độ là (0,0)đó là vị trí của con đứng phía ngoài cùng bên phải,ở hàng xa mình nhất.(tức là con đứng cao nhất).Theo thứ tự sang bên trái có tọa độ tương ứng là (0,1),(0,2),(0,3),(0,4).Đó là hàng phía dưới,còn hàng phía trên là hàng đứng gần mình hơn,thi các vị trí có tọa độ tương ứng(1,0),(1,1),(1,2),(1,2),(1,4).Như vậy,ta đã xác định xong tọa độ của quái vật.Nếu như ta muốn đánh theo kiểu tư động công kích,thì ở trên ta sửa lại thành:
{
CharacterInfo MyChar = ts.Character;
NPCCombatObject Monster = findMonster();
ts.SendAttack(MyChar.Row, MyChar.Col,Monster.Row,Monster.Col,12003);
}
Nếu đánh theo kiểu tự động công kích F1 thì các bạn phải tìm ở nơi khác,hiện giờ mình vẫn chưa biết làm cách nào.
MyChar.Row và MyChar.Col thì không thay đổi.
12003 là skill id ,ở đây 12003 là skill id của skill hỏa tiễn.
Skill id của các skill thì các bạn có thể tham khảo ở những bài viết khác.
Tương tự như trên,ở dòng lệnh tiếp theo
if (myturn ==2)
có nghĩa khi đến lượt thứ 2,ta sẽ thực hiện hàng động
ts.SendAttack(MyChar.Row, MyChar.Col, 0, 3, 17001);
17001 là skillid của skill Def.Tọa độ của điểm mình chỉ tới là bất kì,bởi vì mình defense mà
Và có thể sau đó thêm các dòng lệnh if (myturn ==3) v.v...
Tương tự như trên ,hàm MyParyterAttack cũng điều khiển hoạt động của đệ tử.Ở đây chỉ khác ở trên ở biến peturn.(Ta cũng có thể ghép chung vào 1 biến cũng đươc).Cái khác thứ hai là lệnh gán
"CharacterInfo MyWarrior = ts.CurrentPartner;"
/******************* My Partner Attack *********************/
public override void MyPartnerAttack()
{
peturn++;
if (peturn == 1)
{
CharacterInfo MyWarrior = ts.CurrentPartner;
//NPCCombatObject Monster = findMonster();
ts.SendAttack(MyWarrior.Row, MyWarrior.Col, 0,3, 12003);
}
if (peturn >= 2)
{
}
}
Đây là 1 chút hiểu biết của mình về script.Nếu có gì không đúng thì xin mọi người chỉ bảo lại.
Những bài tiếp theo,mình sẽ nói thêm về các hàm khác.
double DisconnectFlag = 0.3; /*Disconnect khi lượng máu nhỏ hơn 0,3(tức là 30% */
double hpFractionEat = 0.8; //Ăn HP khi HP<= 80%
double spFractionEat = 0.8;
double hpFraction = 0.95; //Ăn HP cho tới khi HP >= 95 %
double spFraction = 0.95;
byte DisconFai = 20; // Fai của đệ tử <=20 thì disconnect
byte battle_count = 0; // đếm số trận đấu
byte myturn = 0; // biến để tính số turn của tướng
byte peturn = 0; // biến để tính số turn của đệ tử
byte pt1 = 0; //biến để xác định xem member1 đã party hay chưa(0 hoặc 1)
byte pt2 = 0;
byte pt3 = 0;
byte pt4 = 0;
double mapid1 = 12013; // cái này không nói chắc ai cũng biết
double mapid2 = 12521;
byte warpid1 = 1; //cái này cũng thế
byte warpid2 = 5;
các dòng "double mapid1 = 12013;" hay là "byte pt4 = 0; " có chữ double hay byte,đây chỉ là cách khai báo biến,các bạn không cần phải thay đổi cái này.
/***** Chinh sua ID Member o day *****/
uint idmem1 = 12345;
uint idmem2 = 1234;
uint idmem3 = 123;
uint idmem4_sena = 12; //id của quân sư
/*************************************/
/*********************** My Attack *************************/
public override void MyAttack()
{
myturn++;
if (myturn == 1)
{
CharacterInfo MyChar = ts.Character;
//NPCCombatObject Monster = findMonster();
ts.SendAttack(MyChar.Row, MyChar.Col, 0, 3, 12003);
}
if (myturn ==2)
{
ts.SendAttack(MyChar.Row, MyChar.Col, 0, 3, 17001);
}
}
hàm MyAttack ở trên để điều khiên hoạt động của Character.Mỗi khi nào đến lượt char thì hàm MyAttack được gọi.
"public override void MyAttack() " cũng chỉ là khai báo hàm.
myturn là biến để đếm số turn của char.
"myturn++" có nghĩa sau dòng lệnh này,biến myturn sẽ tăng thêm 1 giá trị.
Ở phía dưới có hàm BattleStop,nó sẽ gán giá trị biến myturn là 0.có nghĩa là khi trận đấu bắt đầu,myturn là 0.Lượt đầu tiên,sau dòng "myturn++"thì myturn có giá trị là 1.
Ở dòng lệnh tiếp theo " if (myturn == 1) "
có nghĩa là: nếu myturn nhận giá trị là 1 thì nó sẽ thực hiện lệnh sau dòng này.ở trên,lệnh sau dòng này là:
"
{
CharacterInfo MyChar = ts.Character;
//NPCCombatObject Monster = findMonster();
ts.SendAttack(MyChar.Row, MyChar.Col, 0, 3, 12003);
}
"
những ký tự sau dấu "//" ở trong file script,thì legna không thực hiện các lệnh sau nó(chỉ trên cùng 1 dòng thôi)
Dòng lệnh "ts.SendAttack(MyChar.Row, MyChar.Col, 0, 3, 12003); " có nghĩa là nó sẽ thực hiện hàng động của char 0,3 là tọa độ của điểm mình chỉ tới(cũng là tọa độ quái vật mình muốn đánh).
Việc xác định tọa độ của quái vật như sau:
Gốc tọa độ là (0,0)đó là vị trí của con đứng phía ngoài cùng bên phải,ở hàng xa mình nhất.(tức là con đứng cao nhất).Theo thứ tự sang bên trái có tọa độ tương ứng là (0,1),(0,2),(0,3),(0,4).Đó là hàng phía dưới,còn hàng phía trên là hàng đứng gần mình hơn,thi các vị trí có tọa độ tương ứng(1,0),(1,1),(1,2),(1,2),(1,4).Như vậy,ta đã xác định xong tọa độ của quái vật.Nếu như ta muốn đánh theo kiểu tư động công kích,thì ở trên ta sửa lại thành:
{
CharacterInfo MyChar = ts.Character;
NPCCombatObject Monster = findMonster();
ts.SendAttack(MyChar.Row, MyChar.Col,Monster.Row,Monster.Col,12003);
}
Nếu đánh theo kiểu tự động công kích F1 thì các bạn phải tìm ở nơi khác,hiện giờ mình vẫn chưa biết làm cách nào.
MyChar.Row và MyChar.Col thì không thay đổi.
12003 là skill id ,ở đây 12003 là skill id của skill hỏa tiễn.
Skill id của các skill thì các bạn có thể tham khảo ở những bài viết khác.
Tương tự như trên,ở dòng lệnh tiếp theo
if (myturn ==2)
có nghĩa khi đến lượt thứ 2,ta sẽ thực hiện hàng động
ts.SendAttack(MyChar.Row, MyChar.Col, 0, 3, 17001);
17001 là skillid của skill Def.Tọa độ của điểm mình chỉ tới là bất kì,bởi vì mình defense mà
Và có thể sau đó thêm các dòng lệnh if (myturn ==3) v.v...
Tương tự như trên ,hàm MyParyterAttack cũng điều khiển hoạt động của đệ tử.Ở đây chỉ khác ở trên ở biến peturn.(Ta cũng có thể ghép chung vào 1 biến cũng đươc).Cái khác thứ hai là lệnh gán
"CharacterInfo MyWarrior = ts.CurrentPartner;"
/******************* My Partner Attack *********************/
public override void MyPartnerAttack()
{
peturn++;
if (peturn == 1)
{
CharacterInfo MyWarrior = ts.CurrentPartner;
//NPCCombatObject Monster = findMonster();
ts.SendAttack(MyWarrior.Row, MyWarrior.Col, 0,3, 12003);
}
if (peturn >= 2)
{
}
}
Đây là 1 chút hiểu biết của mình về script.Nếu có gì không đúng thì xin mọi người chỉ bảo lại.
Những bài tiếp theo,mình sẽ nói thêm về các hàm khác.
. Tóm lại là nên đưa cho họ con Cá luôn chứ không cần đưa cho hok cái Cần câu, mất công một tí, đóng góp chung cho tất cả vậy
