PDA

View Full Version : Túi quà tân thủ cải tiến



ben543518694
28-03-14, 11:40 AM
Đầu tiên tạo 1 tập tin *.c trong thư mục cmd/user với tên tập tin là ttt.c

Dán vào tập tin ttt.c với nội dung sau :


#include <ansi.h>
#include <skill.h>
#include <equip.h>
#include <effect.h>

int main( object me, string arg )
{
string result,sp,phai,tv,pp,ca,pb,pb2;
int type, i, gender, p,it,it2,nt,tsp,tsp2,lv,lvs,s1,s2,s3,s4,s5,s6;
object item, item1;
gender = me->get_gender();
if( !objectp( item1 = present("Túi Quà Tân Thủ", me, 1, MAX_CARRY*4) ) )
{
write_user(me, ECHO "Bạn không có Túi Quà Tân Thủ !");
return 1;
}
if ( me->get_save("tuiquatanthu") >=1 )
{
write_user(me, ECHO "Bạn đã sử dụng Túi quà Tân Thủ 1 lần rồi!");
return 1;
}
if ( me->get_level()>10 )
{
write_user(me, ECHO "Đẳng cấp quá cao để có thể sử dụng được Túi quà tân thủ!");
return 1;
}
if(USER_INVENTORY_D->get_free_count(me) < 14 )
{
write_user(me, ECHO "Hành trang của bạn không đủ 14 chỗ trống!");
return 1;
}
if( arg ==0 )
{
if ( me->get_level() < 10 )
{
result = sprintf("Thần Tiên Gia Gia: \nBạn đang sử dụng Túi quà Tân Thủ, xin hãy lựa chọn Môn Phái :\n");
result += ESC "Đào Hoa Nguyên\nttt 1\n";
result += ESC "Thục Sơn\nttt 2\n";
result += ESC "Cấm Vệ Quân\nttt 3\n";
result += ESC "Đường Môn\nttt 4\n";
result += ESC "Mao Sơn\nttt 5\n";
result += ESC "Côn Luân\nttt 6\n";
result += ESC "Vân Mộng Cốc\nttt 7\n";
// result += ESC "Hủy bỏ\n";
send_user( me, "%c%s", ':', result);
return 1;
}
else
{
item = new(sprintf("item/test/tuihoangkimtanthucap20"));
p = item->move2(me,-1);
item->add_to_user(p);
item = new(sprintf("item/ngoai_trang/ngoaitrang%d",gender));
p = item->move2(me,-1);
item->add_to_user(p);
item = new("item/tuiquatanthuhieu/0008");
item->set_amount(60);
p = item->move2(me,-1);
item->add_to_user(p);
item = new("item/tuiquatanthuhieu/0010");
item->set_amount(60);
p = item->move2(me,-1);
item->add_to_user(p);
me->add_cash(10000);
me->add_save("tuiquatanthu",1);
item1->remove_from_user();
destruct(item1);
send_user(me,"%c%s",';',"Bạn đã sử dụng Túi Quà Tân Thủ");
return 1;
}
return 1;
}
if(arg=="1"){sp="Vô Ức";tsp=1020;tsp2=70;phai="Đào Hoa Nguyên";it=me->get_gender()==1?60:61;it2=me->get_gender()==1?65:66;nt=me->get_gender()==1?1:2;tv="0901";lv=20;lvs=20;s1=0211;s2=0212;s3=0316;s4=0317;s5=0 319;pp=me->get_gender()==1?"3024":"3024f";pb="9522";}
else if(arg=="2"){sp="Tử Hằng Đạo Nhân";tsp=2020;tsp2=76;phai="Thục Sơn";it=me->get_gender()==1?60:61;it2=me->get_gender()==1?65:66;nt=me->get_gender()==1?1:2;tv="0902";lv=20;lvs=20;s1=0221;s2=0231;s3=0222;s4=0325;s5=0 329;ca=me->get_gender()==1?"3036":"3034";pb2="9562";}
else if(arg=="3"){sp="Quân Giáo Đầu";tsp=3020;tsp2=75;phai="Cấm Vệ Quân";it=me->get_gender()==1?60:61;it2=me->get_gender()==1?65:66;nt=me->get_gender()==1?1:2;tv="0903";lv=20;lvs=20;s1=0241;s2=0251;s3=0242;s4=0348;s5=0 349;pp=me->get_gender()==1?"3024":"3024f";pb="9522";}
else if(arg=="4"){sp="Đường Bưu";tsp=4020;tsp2=71;phai="Đường Môn";it=me->get_gender()==1?60:61;it2=me->get_gender()==1?65:66;nt=me->get_gender()==1?1:2;tv="0904";lv=20;lvs=20;s1=0261;s2=0363;s3=0364;s4=0365;s5=0 368;pp=me->get_gender()==1?"3024":"3024f";pb="9522";}
else if(arg=="5"){sp="Linh Toán Tử";tsp=5020;tsp2=77;phai="Mao Sơn";it=me->get_gender()==1?60:61;it2=me->get_gender()==1?65:66;nt=me->get_gender()==1?1:2;tv="0905";lv=20;lvs=20;s1=0271;s2=0413;s3=0414;s4=0417;s5=0 418;ca=me->get_gender()==1?"3036":"3034";pb2="9562";}
else if(arg=="6"){sp="Văn Xương Chân Quân";tsp=6020;tsp2=78;phai="Côn Luân";it=me->get_gender()==1?60:61;it2=me->get_gender()==1?65:66;nt=me->get_gender()==1?1:2;tv="0906";lv=20;lvs=20;s1=0421;s2=0422;s3=0423;s4=0424;s5=0 425;ca=me->get_gender()==1?"3036":"3034";pb2="9562";}
else if(arg=="7"){sp="Tô Tần";tsp=7020;tsp2=79;phai="Vân Mộng Cốc";it=me->get_gender()==1?60:61;it2=me->get_gender()==1?65:66;nt=me->get_gender()==1?1:2;tv="0907";lv=20;lvs=20;s1=0281;s2=0501;s3=0511;s4=0531;s5=0 591;ca=me->get_gender()==1?"3036":"3034";pb2="9562";}
else return 1;
me->set_fam_name(phai);
me->set_fam_master(sp);
me->set_fam_order(4);
me->set_save("famrec", 1);
"/sys/sys/count"->add_family(phai, 1);
me->set_fam_time( time() );
me->set_level(lv);
me->count_gift();
me->add_cash(10000);
me->add_save("tuiquatanthu",1);
me->set_skill(s1, lvs);
me->set_skill(s2, lvs);
me->set_skill(s3, lvs);
me->set_skill(s4, lvs);
me->set_skill(s5, lvs);
item = new("item/"+it+"/"+tsp+"");
ITEM_EQUIP_D->init_equip_prop_3(item);
p = item->move2(me,-1);
item->add_to_user(p);
me->use_equip(item);
item = new("item/"+it2+"/"+tsp+"");
ITEM_EQUIP_D->init_equip_prop_3(item);
p = item->move2(me,-1);
item->add_to_user(p);
me->use_equip(item);
item = new("item/86/"+tsp+"");
ITEM_EQUIP_D->init_equip_prop_3(item);
p = item->move2(me,-1);
item->add_to_user(p);
me->use_equip(item);
item = new("item/87/"+tsp+"");
ITEM_EQUIP_D->init_equip_prop_3(item);
p = item->move2(me,-1);
item->add_to_user(p);
me->use_equip(item);
item = new("item/88/"+tsp+"");
ITEM_EQUIP_D->init_equip_prop_3(item);
p = item->move2(me,-1);
item->add_to_user(p);
me->use_equip(item);
item = new("item/"+tsp2+"/1020");
ITEM_EQUIP_D->init_equip_prop_3(item);
p = item->move2(me,-1);
item->add_to_user(p);
me->use_equip(item);
item = new(sprintf("item/ngoai_trang/ngoaitrang%d",gender));
p = item->move2(me,-1);
item->add_to_user(p);
me->use_equip(item);
if ( pp )
{
item = new("item/30/"+pp+"");
p = item->move2(me,-1);
item->add_to_user(p);
me->use_equip(item);
}
if ( ca )
{
item = new("item/30/"+ca+"");
p = item->move2(me,-1);
item->add_to_user(p);
me->use_equip(item);
}
if ( pb )
{
item = new("item/mop/"+pb+"");
item->add_lasting(-13000);
p = item->move2(me,-1);
item->add_to_user(p);
me->use_equip(item);
}
if ( pb2 )
{
item = new("item/mop/"+pb2+"");
item->add_lasting(-2500);
p = item->move2(me,-1);
item->add_to_user(p);
me->use_equip(item);
}
item = new("item/tuiquatanthuhieu/0008");
item->set_amount(60);
p = item->move2(me,-1);
item->add_to_user(p);
item = new("item/tuiquatanthuhieu/0010");
item->set_amount(60);
p = item->move2(me,-1);
item->add_to_user(p);
item = new("item/09/"+tv+"");
item->set_item_level(1);
me->restore_equip(item);
"/sys/user/energy"->count_all_prop(me);
USER_ENERGY_D->count_max_yuan(me);
send_user( get_scene_object_2(me, USER_TYPE), "%c%d%d%w%w%w%w%w", 0x23, getoid(me),
me->get_armor_code(), me->get_armor_color_1(), me->get_back(), me->get_back_color(), me->get_back2(), me->get_back2_color() );
me->add_to_scene(get_z(me), get_x(me), get_y(me), get_d(me));
item1->remove_from_user();
destruct(item1);
send_user(me,"%c%s",';',"Bạn đã sử dụng Túi Quà Tân Thủ");
me->set_hp(me->get_max_hp());
me->set_mp(me->get_max_mp());
me->set_yuan(me->get_max_yuan());
return 1;
}


Lưu lại, tiếp tục mở thư mục item/tuiquatanthuhieu ( nếu chưa có thì tạo mới )

Tạo 1 tập tin với tên 0008.c

Dán vào tập tin 0008.c với nội dung sau:


#include <item.h>
#include <effect.h>
#include <skill.h>
inherit ITEM;
inherit COMBINED;
inherit USABLE;

#define ITEM_USE_TYPE "add_hp"
#define ITEM_USE_TIME 2

int get_max_combined() { return 10000; }
int get_item_value() {return 80 ;}
int get_item_value_2() {return 60 ;}
int get_item_number() {return 10001008 ;}
int get_item_color() {return 1 ;}

// 函数:可使用物品
int get_item_type_2() { return ITEM_TYPE_2_ADD_HP; }

// 函数:构造处理
void create()
{
set_name( "Trị Dược" );
set_picid_1(4255);
set_picid_2(4255);
set_value(200);
set_amount(1);
set_record(1);
set_no_give(1);
set_no_sell(1);
}

// 函数:获取描述
string get_desc()
{
return "Dược thủy mang theo bình thường, có thể tự thân ngay lập tức khôi phục trực tiếp 2000 điểm khí huyết. Thời gian tác dụng 2 giây.";
}

// 函数:使用效果
int get_use_effect( object me ) { return __FILE__ ->get_use_effect_callout(me); }

// 函数:使用效果(在线更新)
int get_use_effect_callout( object me )
{
int type;
if (get_item_type_2()== ITEM_TYPE_2_ADD_HP) type = EFFECT_USE_ITEM_1;
else type = EFFECT_USE_ITEM_2 ;
if (get_effect(me, type))
{
send_user( me, "%c%s", '!', sprintf("Thời gian đóng băng của vật phẩm còn %d giây", get_effect(me, type)) );
return 0;
}
set_effect(me, type, ITEM_USE_TIME);
send_user( me, "%c%c%c%w", 0x30, get_item_type_2(), 0, ITEM_USE_TIME ); // 更新使用间隔
me->add_hp( 2000 * ( 100 + me->get_healing_rate() ) / 100 );
send_user( get_scene_object_2(me, USER_TYPE), "%c%d%w%c%c%c", 0x6f, getoid(me), 9154, 1, OVER_BODY, PF_ONCE );
return 1;
}



Tiếp tục tạo 1 tập tin với tên 0010.c ( item/tuiquatanthuhieu )

Dán vào tập tin 0010.c với nội dung sau:


#include <item.h>
#include <effect.h>
#include <skill.h>
inherit ITEM;
inherit COMBINED;
inherit USABLE;

#define ITEM_USE_TYPE "add_mp"
#define ITEM_USE_TIME 2

// 函数:可使用物品
int get_item_type_2() { return ITEM_TYPE_2_ADD_MP; }

int get_max_combined() { return 10000; }
int get_item_value() {return 80 ;}
int get_item_value_2() {return 60 ;}
int get_item_number() {return 10001010 ;}
int get_item_color() {return 1 ;}

// 函数:构造处理
void create()
{
set_name( "Phục Dược" );
set_picid_1(4257);
set_picid_2(4257);
set_value(200);
set_amount(1);
set_record(1);
set_no_give(1);
set_no_sell(1);
}

// 函数:获取描述
string get_desc()
{
return "Thuốc nước pháp lực trang bị thông thừơng, có thể ngay lập tức khôi phục 2000 điểm lực pháp lực. Thời gian tác dụng 2 giây.";
}

// 函数:使用效果
int get_use_effect( object me ) { return __FILE__ ->get_use_effect_callout(me); }

// 函数:使用效果(在线更新)
int get_use_effect_callout( object me )
{
int type;
if (get_item_type_2()== ITEM_TYPE_2_ADD_HP) type = EFFECT_USE_ITEM_1;
else type = EFFECT_USE_ITEM_2 ;
if (get_effect(me, type))
{
send_user( me, "%c%s", '!', sprintf("Thời gian đóng băng của vật phẩm còn %d giây", get_effect(me, type)) );
return 0;
}
set_effect(me, type, ITEM_USE_TIME);
send_user( me, "%c%c%c%w", 0x30, get_item_type_2(), 0, ITEM_USE_TIME ); // 更新使用间隔

me->add_mp( 2000 * ( 100 + me->get_healing_rate() ) / 100 );
send_user( get_scene_object_2(me, USER_TYPE), "%c%d%w%c%c%c", 0x6f, getoid(me), 9154, 1, OVER_BODY, PF_ONCE );
return 1;
}



Tiếp tục mở thư mục item/ngoai_trang ( nếu chưa có thì tạo mới )

Tạo 1 tập tin với tên ngoaitrang1.c

Dán vào tập tin ngoaitrang1.c với nội dung sau:


#include <ansi.h>
#include <equip.h>

inherit "/inh/equip/fashion";;

int get_item_color() { return 2; }

// 函数:构造处理
void create()
{
set_name("Trang Phục Dạo Phố (Nam)");
set_picid_1(10051);
set_picid_2(10051);

set_level(1);
set_bind(1);
set_no_give(1);
set_no_sell(1);
set_value(100);
set_max_lasting(35099);

set("time_item", 1);

set("dp", 150);
set("pp", 100);
set("hp", 200);

setup();

set_gender(1);

set_fashion_code(51);
}

// 函数:获取描述
string get_desc()
{
return "Mặc vào thật thoải mái, nhưng chỉ để dạo phố mà thôi.";
}

// 函数:使用效果
int get_equip_effect( object me )
{
return __FILE__ ->get_equip_effect_callout(me, this_object());
}

// 函数:使用效果(在线更新)
int get_equip_effect_callout( object me, object item )
{
//处理时间控制上面的。
if (item->get_lock_time() == 0)
{
item->set_lock_time(time()+14*24*60*60);
send_user( me, "%c%d%c", 0x31, getoid(item), 0 );
}
}

//
string get_tail_desc()
{
object item = this_object();
string desc;

if (item->get_lock_time() == 0)
{
desc = HIG "(Chưa kích hoạt)" NOR "[Thời gian sử dụng 14 ngày]\n ";
}

return desc;
}



Tiếp tục tạo 1 tập tin với tên ngoaitrang2.c ( item/ngoai_trang )

Dán vào tập tin ngoaitrang2.c với nội dung sau:


#include <ansi.h>
#include <equip.h>

inherit "/inh/equip/fashion";;

int get_item_color() { return 2; }

// 函数:构造处理
void create()
{
set_name("Trang Phục Mùa Hè (Nữ)");
set_picid_1(11051);
set_picid_2(11051);

set_level(1);
set_bind(1);
set_no_give(1);
set_no_sell(1);
set_value(100);
set_max_lasting(35099);

set("time_item", 1);

set("dp", 150);
set("pp", 100);
set("hp", 200);

setup();

set_gender(2);

set_fashion_code(51);
}

// 函数:获取描述
string get_desc()
{
object item = this_object();
if (item->get_lock_time()==0) item->set_lock_time(time()+14*24*60*60);
return "Trang phục thật mát mẻ, nhưng măc vào mùa đông thì thảm rồi.";
}

// 函数:使用效果
int get_equip_effect( object me )
{
return __FILE__ ->get_equip_effect_callout(me, this_object());
}

// 函数:使用效果(在线更新)
int get_equip_effect_callout( object me, object item )
{
//处理时间控制上面的。
if (item->get_lock_time() == 0)
{
item->set_lock_time(time()+14*24*60*60);
send_user( me, "%c%d%c", 0x31, getoid(item), 0 );
}
}

//
string get_tail_desc()
{
object item = this_object();
string desc;

if (item->get_lock_time() == 0)
{
desc = HIG "(Chưa kích hoạt)" NOR "[Thời gian sử dụng 14 ngày]\n ";
}

return desc;
}



Quay trở lại thư mục item/tuiquatanthuhieu

Tạo 1 tập tin với tên tqtt.c

Dán vào tập tin tqtt.c với nội dung sau:


#include <ansi.h>
#include <equip.h>
#include <effect.h>
inherit ITEM;
inherit USABLE;

int get_item_color() { return 2; }
int get_item_value() {return 100 ;}
int get_item_value_2() {return 100 ;}

// 函数:构造处理
void create()
{
set_name("Túi Quà Tân Thủ");
set_picid_1(3106);
set_picid_2(3106);
set_level(0);
set_value(5000);
set_no_give(1);
set_no_sell(1);
set_no_drop(1);
}

// 函数:获取描述
string get_desc( object me )
{
return "Túi quà của Thần Tiên Gia Gia, \nhỗ trợ rất tốt cho nhân vật có đẳng cấp dưới 10.\n";
}

int get_use_effect( object me )
{
return __FILE__->get_use_effect_callout(me,this_object());
}

int get_use_effect_callout( object me,object gift )
{
string arg;

"cmd/user/ttt"->main(me,arg);
return 0;
}


Vậy là đã xong, bây giờ bạn hãy vào game sử dụng lệnh clone để Test



/clone item/tuiquatanthuhieu/tqtt


p/s : Khi tạo mới tập tin *.c nhớ Encoding sang UTF8 without BOM trước khi dán nội dung vào.

Chúc các bạn thành công !