PDA

View Full Version : Script mẫu cho các bạn tập phát triển Server Chiến Quốc



trungviet
14-02-12, 10:40 AM
( * ) Tool dùng trong bài: SciTE Editor (<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>)

( * ) Để có thể viết được tiếng Việt có dấu trong các file script, tại thanh công cụ, chọn File -> Encoding -> UTF-8 with BOM.

I/ Tạo câu lệnh viết chữ thông báo chạy trên màn hình



#include <ansi.h>
int main(object me, string arg) {
if (!is_god(me)) { // Nếu người gõ lệnh không phải là GOD (GM có quyền hạn cao nhất, kiểu như Administrator)
return 1; //Kết thúc
}
if (!arg) { //Nếu biến arg (nội dung thông báo) trống
notify( "Nội dung thông báo phải có ít nhất 1 ký tự" );
return 1; //Kết thúc
}
send_user(CHAT_D->get_chat(), "%c%s", 0xA3, HIY+arg); // Thực thi gửi thông báo chữ màu vàng (HIY) với nội dung của biến arg
return 1; //Kết thúc
}

Rồi lưu tại với cấu trúc tên là [Tên lệnh].c. Ví dụ mình lưu với tên là: syschat.c. Để vào thư mục cmd/base hoặc cmd/std trong current (Thư mục Server Chiến Quốc). Nếu đang chạy GSE thì tắt GSE và bật lại, vào trò chơi, gõ như sau: /syschat Hello word!.

II/ Tạo câu lệnh sửa thuộc tính nhân vật



int main(object me, string arg) {
int con, spi, str, cps, dex; //Tạo các biến int
if (!arg || sscanf(arg, "%d %d %d %d %d", con, spi, str, cps, dex) != 5) return 1; //Kiểm tra và scan giá trị, nếu không có giá trị nào hoặc không đủ 5 giá trị cần thì sẽ kết thúc, nếu đủ thì sẽ sử dụng 5 giá trị đó để làm giá trị yêu cầu thuộc tính mới
me->set_con_2(con); //Sửa thuộc tính Thể Chất
me->set_spi_2(spi); //Sửa thuộc tính Tinh Thần
me->set_str_2(str); //Sửa thuộc tính Cường Lực
me->set_cps_2(cps); //Sửa thuộc tính Nại Lực
me->set_dex_2(dex); //Sửa thuộc tính Mẫn Tiệp
USER_ENERGY_D->count_all_prop(me); //Tính lại chỉ số nhân vật sau khi sửa thuộc tính
return 1; //Kết thúc
}


Xong lưu tại với cấu trúc tên là [Tên lệnh].c. Ví dụ: setstats.c. Để vào thư mục cmd/base hoặc cmd/std trong current (Thư mục Server Chiến Quốc). Nếu đang chạy GSE thì tắt GSE và bật lại, vào trò chơi, gõ như sau: /setstats 1000 1000 1000 1000 1000.

III/ Cách tạo NPC đổi kiểu tóc đơn giản



/************************
NPC Đổi Tóc
Code by trungviet
************************/

#include <npc.h>
#include <ansi.h>
inherit OFFICER;
int get_char_picid() { return 9958; }
void do_welcome( string arg );
void create() {
set_name("Diện Mạo Tiên Nhân");
set_2( "talk", ([
"welcome" : (: do_welcome :),
]));
setup();
}

void do_look(object who) {
int id = getoid(this_object());
send_user(who,"%c%c%w%s",':',3,get_char_picid(),sprintf(" %s :\n Bạn chán kiểu tóc hiện tại của mình rồi à, đừng lo, hãy gặp tôi, tôi có thể cắt cho bạn bất kỳ kiểu tóc nào mà bạn muốn chỉ với 100.000 lượng.\n"
ESC"Tóc kiểu 1 (Tóc cơ bản)\ntalk %x# welcome.1\n"
ESC"Tóc kiểu 2 (Tóc môn phái Đào Hoa Nguyên)\ntalk %x# welcome.2\n"
ESC"Tóc kiểu 3 (Tóc môn phái Thục Sơn)\ntalk %x# welcome.3\n"
ESC"Tóc kiểu 4 (Tóc môn phái Cấm Vệ Quân)\ntalk %x# welcome.4\n"
ESC"Tóc kiểu 5 (Tóc môn phái Đường Môn)\ntalk %x# welcome.5\n"
ESC"Tóc kiểu 6 (Tóc môn phái Côn Luân)\ntalk %x# welcome.6\n"
ESC"Tóc kiểu 7 (Tóc môn phái Vân Mộng Cốc)\ntalk %x# welcome.7\n"
ESC"Tóc kiểu 8 (Tóc môn phái Mao Sơn)\ntalk %x# welcome.8\n"
ESC"Rời khỏi",get_name(),id,id,id,id,id,id,id,id));
}

void do_welcome(string arg) {
object me = this_object();
__FILE__ ->do_welcome2(me, arg);
}

void do_welcome2(object me, string arg) {
int flag,id,gender;
object who;

who = this_player();
id = getoid(me);
flag = to_int(arg);
who->set_time( "talk", 0);
switch(flag) {
default: return; break; // Mặc định, nếu không có trong danh sách sẽ bỏ qua
case 1:
case 2:
case 3:
case 4:
case 5:
case 6:
case 7:
case 8:
if (who->get_cash() < 100000) { // Nếu tiền trong người đối tượng who ít hơn 100000 Ngân lượng
send_user(who,"%c%c%w%s",':',3,get_char_picid(),sprintf(" %s :\n Ngươi đang gặp vấn đề về tiền bạc à? Tiêu Đầu Lão Thái Úy ở Chu Quốc có thể giúp ngươi đấy.\n"
ESC"Rời khỏi",get_name()));
}
if (who->get_gender() == 2) gender = 1000;
who->add_cash(-100000); // Trừ 100000 Ngân lượng của đối tượng who
who->set_hair(gender+flag); // Đổi kiểu tóc của đối tượng who
who->add_to_scene(get_z(who), get_x(who), get_y(who), get_d(who)); // Load lại hình ảnh, hiệu ứng và một vài thứ khác của đối tượng who
send_user(who,"%c%c%w%s",':',3,get_char_picid(),sprintf(" %s :\n Xong rồi đấy, cho ta xin 100.000 lượng tiền công nhé.\n"
ESC"Đóng lại",get_name()));
break;
}
}


Xong lưu tại với cấu trúc tên là [Tên tập tin].c (VD: npcdoitoc.c). Để vào thư mục bất kỳ trong npc trong current (Thư mục Server Chiến Quốc) (VD: Mình để trong npc/test), vào trò chơi, gõ /clone [Đường dẫn đến tập tin bạn vừa tạo trong current].c (VD của tớ là /clone npc/test/npcdoitoc.c).
P/S: Nếu bạn muốn thêm npc này vào danh sách npc khi vừa khởi động thì có thể tham khảo bên bài viết hướng dẫn của Minh Phụng ở đây (<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>).

Các file mẫu trong bài viết:

thongbao.c (<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>)
suathuoctinh.c (<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>)
npcdoitoc.c (<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>)

Sẽ còn cập nhật...

trungviet
13-02-13, 11:05 PM
Lệnh tạo Tinh Nguyên Đơn kỹ năng Bảo Thú theo ý muốn dựa trên ID. Lệnh này chắc cũng không mới, nhưng cứ post lại cho ai thấy cần:



int main(object me, string arg) {
int skillid = to_int(arg), p;
object item;
if (is_player(me)) return 1;
if (!"quest/pet"->get_skill_desc(skillid)) return 1;
if (skillid >= 74201) {
item = new("/item/44/4489");
}
else item = new("/item/44/4488");
if (item) {
item->set("special", sprintf("%d", skillid));
p = item->move2(me, -1);
item->add_to_user(p);
}
return 1;
}


Ví dụ lệnh mình tạo ra có tên là /makepetskill, vào game đánh lệnh như sau: /makepetskill 74101 (Hộ Thân Thuẫn), /makepetskill 74201 (Cao Cấp Hộ Thân Thuẫn). ID kỹ năng Bảo Thú có thể tìm được trong skill/74/ của server.

iqueen
21-03-13, 09:53 AM
ctri c+ v dc ko v ay lam roi ma cha thay j ca?