[AMX] Tổng hợp Code, Plug do Mem chế hoặc giới thiệu

  • Thread starter Thread starter Orpheus
  • Ngày gửi Ngày gửi
@teo ko dùng ham_isalive nào cả @@

@Duy thử test cái này xem thế nào
PHP:
#include <amxmodx>

#define PLUGIN "Health"
#define VERSION "1.0"
#define AUTHOR "Bui Duc Duy + Ryokin"

new g_iHudHealth, g_iHudArmor, g_iMsgStatusIcon;

public plugin_init() 
{
	register_plugin(PLUGIN, VERSION, AUTHOR);
	register_event("Health", "event_health", "be") ;
	
	g_iHudHealth = CreateHudSyncObj();
	g_iHudArmor = CreateHudSyncObj();
	
	g_iMsgStatusIcon = get_user_msgid("StatusIcon");
}

public event_health(id)
{
    new iColor[3], iHealth = get_user_health(id);
    
    set_hudmessage(255, 255, 255, 0.1, 0.9, 0, 6.0, 999.0, 0.0, 0.0, -1);
    ShowSyncHudMsg(id, g_iHudHealth, "%d", iHealth);
    
    set_hudmessage(255, 255, 255, 0.1, 1.0, 0, 6.0, 999.0, 0.0, 0.0, -1);
    ShowSyncHudMsg(id, g_iHudArmor, "%d", get_user_armor(id));
    
    if(iHealth >= 80)
    {
        iColor = { 0, 0, 255 };
    }
    else if(iHealth >= 20)
    {
        iColor = { 244, 96, 164 };
    }
    else
    {
        iColor = { 255, 0, 0 };
    }

    message_begin(MSG_ONE, g_iMsgStatusIcon, {0,0,0}, id)
    write_byte(1) // status: 0: off; 1: on; 2:flash
    write_string("MY_HEALTH")
    write_byte(iColor[0]) // do
    write_byte(iColor[1]) // xanh la
    write_byte(iColor[2]) // xanh lam
    message_end()
}

Thanks, nhưng cho mình hỏi tại sao lúc thì có dâu ";" lúc thì ko có vậy?
Bạn chỉ dùm mình vài cái event được ko?
@dias: sao lại thế.. anh giải thích dùm em được ko? sao tên của SPR lại phải cố định ạ?
Như ở trên em đặt tên spr là "MY_HEALTH" mà nó vẫn chạy nhỉ?
( đây là hud.txt
MY_HEALTH 640 Character/HEALTH 0 0 0 -300
)
P/S: Các bác có thể chỉ em những các add SPR được ko...
(ngoài write_string như trên, em còn thấy write_short... dài dài nưa nhưng ko hiểu lắm.. :(
 
Chỉnh sửa cuối:
write short, string, byte... là của mỗi cái msg dùng khác nhau.

@legiondark tui private yh :D, cứ gì cần hỏi cứ post ở đây để mọi ng` cùng học hỏi
 
@buiducduy:
- Nếu sài statusicon thì mở hud.txt trong sprites ra để có danh sách spr... StatusIcon ko sài spr riêng dc đâu
 
@Ryokin: bạn fix dùm mình cái plugins ở trên được ko?
Lỗi:
1. Chữ của message to hơn chút (^^ mình chưa biết)
2. SPR khi vào chỉ hiện khi có sự thay đổi về số máu
3. Khi mua giáp nó hud message vẫn hiện là 0, khi tới ván sau nó mới hiện lên :( --> mất spr --> đợi đến lúc số máu bị thay đổi (bị tổn thuơng) nó mới hiện như mong muốn.
4. Tiện thể bạn chỉ mình cách xác định x,y được ko?
 
cho chữ màu khác đc ko ? 4rum có luật cấm chơi cả bài toàn loại chữ chói màu đấy :>....................

ai giải thích hộ cái script nhỏ trên kia đi \m/
 
giờ mới biết
icon_facepalm2.gif


Request:
PHP:
for x=1, 4 do
	Crypto.Decode(Buttons[x], Buttons_Path.."\\btn"..((x>1) and x or "")..".btn");
end

ai hiểu ko ?
Cho x=1 chạy tới 4, để làm
Crypto( viết tắt của Cryptography) Decode => Ta có thể hiểu được line này có nghĩa là " Mã hoá" thông tin để làm cho nó bí mật và "giải mã" để khôi phục về dạng con người có thể đọc được.
và decode ở đây ko phải dịch ngược lại mã mà phải kết hợp vs từ Crypto => ta có được 1 vế hoàn chỉnh có nghĩa là mã hóa thông tin chống dịch ngược lại mã
Buttons[x] => có nghĩa là ta gán biến x cho button => kết hợp vòng lặp ở trên ta sẽ được kết quả là cho button = 1 (1)
Buttons_Path.. => có nghĩa là sẽ set đường dẫn mà mình cần mã hóa chống dịch ngược(2)
Từ 1+2 => sẽ chọn 1 đường dẫn tới button cần sử dụng vs định dạng là .btn
=====================
Làm đến đây là cũng đc 97% rồi còn vế cuối tự hiểu nốt nhé
((x>1) and x or "")..".btn") => simple thôi :)
 
ông MrKaii giỏi pascal phết nhể :-?
 
((x>1) and x or "")
trình tui giờ đủ hiểu mấy cái kia. cái này này =.='. Cái quan trọng thì chả giải thích hộ =.='

Đây là 1 đoạn trong Script advance easy của 1 Tools dùng trong Minitools. copy ko thì chán lắm nên chí ít cũng cần hiểu. chính xác thì cách hiểu của ông ở đây là sai vì tui bỏ bớt thành phần trong đó rồi ;)). lý do j thì mình tui biết. (Crypto.Decode64BaseFromString).
Crypto là 1 dạng mã hóa luôn sóng đôi Decrypt và Encrypt nên nếu có 1 đoạn script biết đc key của nó thì hoàn toàn có khả năng dịch ngược lại phần mềm. ~> cái vụ dịch ngược là ông sai đấy ;)). mấy cái kia đúng. (ở đây tui ẩn key của nó đi vì lệnh này ko quan trọng).

for i=1,4 do thì tương tự bên amxx là for (int i=1;i==4;i++) {...

còn cái đoạn kia thì :-?.. vẫn chưa hiểu nó ra làm sao :|. condition àh @@
 
for i=1,4 do thì tương tự bên amxx là for (int i=1;i==4;i++) {...
Sai rồi=))trong AMXX phải là:
PHP:
for (new i=1;i<=4;i++)
Còn trong C++ sẽ là:
PHP:
for (int i=1;i<=4;i++)
 
rồi rồi. nhầm giữa C với chả Amx tí thôi mà =.='. condition == vẫn đúng thôi :-"
^ giải thích hộ đi (nếu mi hiểu đc :-")
 
Pawn có lệnh nào dùng để làm tròn số k nhỉ
Ex: 9.9 --> 9
8.3 --> 8
Như vậy ý.
Nhận tiện hỏi luôn, làm thế nào để
1.Đưa 1 sprite lên màn hình
2.Include 1 native của mình ra 1 file inc riêng
 
Chỉnh sửa cuối:
Pawn có lệnh nào dùng để làm tròn số k nhỉ
Ex: 9.9 --> 9
8.3 --> 8
Như vậy ý.
Nhận tiện hỏi luôn, làm thế nào để
1.Đưa 1 sprite lên màn hình
2.Include 1 native của mình ra 1 file inc riêng
Làm tròn: floatround
VD: floatround(3.8) --> trả về 4
floatround(999.2) --> trả về 999
 
;)). kfc chỉ luôn vụ round up và round down đê :-"
 
floatround_round là làm tròn bt
floatround_floor là làm tròn xuống
floatround_ceil là làm tròn lên

vd: floatround(5.8, floatround_floor) = 5
 
Thế muốn đưa 1 spr ra màn hình thì thế nào (spr thường ý)
 
Thế muốn đưa 1 spr ra màn hình thì thế nào (spr thường ý)

#define TE_SPRITE 17 // Additive sprite, plays 1 cycle
// write_byte(TE_SPRITE)
// write_coord(position.x)
// write_coord(position.y)
// write_coord(position.z)
// write_short(sprite index)
// write_byte(scale in 0.1's)
// write_byte(brightness)
 
Back
Top