[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
1: bạn nên tạo một var về id trong func win_lose() bằng cách"
PHP:
new id = read_data(2)
rồi xoắn típ.


2: param của hàm event_round_start là id
PHP:
public event_round_start(id)
rồi cứ thế mà xoắn

3: ko hỉu mấy cái lose , win trong write_string ở đâu ra cả...
 
1: bạn nên tạo một var về id trong func win_lose() bằng cách"
PHP:
new id = read_data(2)
rồi xoắn típ.


2: param của hàm event_round_start là id
PHP:
public event_round_start(id)
rồi cứ thế mà xoắn

3: ko hỉu mấy cái lose , win trong write_string ở đâu ra cả...
HLTV là Global Event, luôn đc send với MSG_ALL, lấy id ở đâu:-w
PHP:
    message_begin(MSG_ONE, get_user_msgid("StatusIcon"), {0,0,0}, id)
    write_byte(0)
    write_string(lose) 
    write_string(win) 
    message_end()
Sai bét rồi, 2 cái write_string ở đâu ra:-wcái msg này có 1 và chỉ 1 cái arg string thôi, ở trên đúng mà dưới sai ntn à:-w
Thật đúng là
avatar836823_1.gif
 
Chỉnh sửa cuối:
Sao chả có ai chả lời câu hỏi của mình vậy :( Hay là Topic này không được hỏi đáp về AMX (đợt trước có mà giờ đóng rùi :(()
 
Mấy PRO có thể FIX giúp mình cái này không? Sửa cả tối qua vẫn ko complie được [\B]
PHP:
#include <amxmodx>
#include <amxmisc>
#include <cstrike>

#define PLUGIN "Misson"
#define VERSION "1.0"
#define AUTHOR "Duc Duy"


new  my_team 
new players_t[32],players_ct[32], ict,ite

	
public plugin_init() 
{
	register_plugin(PLUGIN, VERSION, AUTHOR)
	register_event("DeathMsg", "win_lose", "a") 
	register_event("HLTV", "event_round_start", "a", "1=0", "2=0")
}

public win_lose()
{
	get_players(players_t,ite,"ae","TERRORIST")
	get_players(players_ct,ict,"ae","CT")
	my_team = cs_get_user_team(id)
	
	if (my_team ==CS_TEAM_T){

	if (ite == 0 && ict!0){
		message_begin(MSG_ONE, get_user_msgid("StatusIcon"), {0,0,0}, id)
		write_byte(1) // status: 0: off; 1: on; 2:flash
		write_string(lose)
		write_byte(255) // red
		write_byte(255) // green
		write_byte(255) // blue
		message_end()
		hide_spr()
		} else {
		message_begin(MSG_ONE, get_user_msgid("StatusIcon"), {0,0,0}, id)
		write_byte(1) // status: 0: off; 1: on; 2:flash
		write_string(win)
		write_byte(255) // red
		write_byte(255) // green
		write_byte(255) // blue
		message_end()
		hide_spr()
		}
	}
	if (my_team ==CS_TEAM_CT){

	
	if (ite == 0 && ict!0){
		message_begin(MSG_ONE, get_user_msgid("StatusIcon"), {0,0,0}, id)
		write_byte(1) // status: 0: off; 1: on; 2:flash
		write_string(win)
		write_byte(255) // red
		write_byte(255) // green
		write_byte(255) // blue
		message_end()
		hide_spr()
		} else {
		message_begin(MSG_ONE, get_user_msgid("StatusIcon"), {0,0,0}, id)
		write_byte(1) // status: 0: off; 1: on; 2:flash
		write_string(lose)
		write_byte(255) // red
		write_byte(255) // green
		write_byte(255) // blue
		message_end()
		hide_spr()
		}
	}
}
	
public event_round_start()
{
	new iconstatus = get_user_msgid("StatusIcon")
	message_begin(MSG_ONE, get_user_msgid("StatusIcon"), {0,0,0}, id)
	write_byte(0)
	write_string(lose) 
	write_string(win) 
	message_end()
}

À, em được biết có 2 cách add spr
+ Dùng nguyên file SPR , tọa độ được hiểu trong hud.txt
+ Lấy 1 phần của SPR (hud_kill chẳng hạn) tọa độ được quy định ở>??
Mấy anh chỉ em với..!


mình viết bừa mấy cái dòng code này, đừng chém nha, mới học code mà

PHP:
#include <amxmodx>
#include <cstrike>

new const g_szSpr[][] =
{
	"sprites/...", // Lose spr
	"sprites/..."  // Win spr
}

#define PLUGIN "Win - lose spr"
#define VERSION "1.0"
#define AUTHOR "Ryokin chicken"

new g_iMsgStatusIcon;
 
public plugin_init() 
{
	register_plugin(PLUGIN, VERSION, AUTHOR);
	
	register_event("HLTV", "event_round_start", "a", "1=0", "2=0");
	
	register_message(get_user_msgid("SendAudio"), "message_SendAudio");
	
	g_iMsgStatusIcon = get_user_msgid("StatusIcon");
} 

public message_SendAudio(msgid, dest, id)
{
	static i, szAudioCode[22], iPlayers[32], iNum, iPlayer, CsTeams:iTeam, iWin;
	get_players(iPlayers, iNum);
	
	if(!iNum) return;
	
	get_msg_arg_string(2, szAudioCode, 21);
	
	if(equal(szAudioCode[7], "terwin"))
		iWin = 1;
	else if(equal(szAudioCode[7], "ctwin"))
		iWin = 2;
	
	for(i = 0; i < iNum; i++)
	{
		iPlayer = iPlayers[i];
		
		iTeam = cs_get_user_team(iPlayer);
			
		if(iTeam == CS_TEAM_T)
			StatusIcon(iPlayer, 1, iWin == 1 ? 1 : 0);
		else if(iTeam == CS_TEAM_CT)
			StatusIcon(iPlayer, 1, iWin == 2 ? 1 : 0);
	}
}
    
public event_round_start()
{
	new iPlayers[32], iNum, iPlayer;
	get_players(iPlayers, iNum);
	
	if(!iNum) return;
	
	for(new i = 0; i < iNum; i++)
	{
		iPlayer = iPlayers[i];
		
		StatusIcon(iPlayer, 0, 0);
		StatusIcon(iPlayer, 0, 1);
	}
}  

StatusIcon(id, iStatus, iSprKind)
{
	message_begin(MSG_ONE, g_iMsgStatusIcon, {0,0,0}, id);
	write_byte(iStatus); // status: 0: off; 1: on; 2:flash
	write_string(g_szSpr[iSprKind]);
	write_byte(255); // red
	write_byte(255); // green
	write_byte(255); // blue
	message_end();
}
 
mình viết bừa mấy cái dòng code này, đừng chém nha, mới học code mà

PHP:
#include <amxmodx>
#include <cstrike>

new const g_szSpr[][] =
{
	"sprites/...", // Lose spr
	"sprites/..."  // Win spr
}

#define PLUGIN "Win - lose spr"
#define VERSION "1.0"
#define AUTHOR "Ryokin chicken"

new g_iMsgStatusIcon;
 
public plugin_init() 
{
	register_plugin(PLUGIN, VERSION, AUTHOR);
	
	register_event("HLTV", "event_round_start", "a", "1=0", "2=0");
	
	register_message(get_user_msgid("SendAudio"), "message_SendAudio");
	
	g_iMsgStatusIcon = get_user_msgid("StatusIcon");
} 

public message_SendAudio(msgid, dest, id)
{
	static i, szAudioCode[22], iPlayers[32], iNum, iPlayer, CsTeams:iTeam, iWin;
	get_players(iPlayers, iNum);
	
	if(!iNum) return;
	
	get_msg_arg_string(2, szAudioCode, 21);
	
	if(equal(szAudioCode[7], "terwin"))
		iWin = 1;
	else if(equal(szAudioCode[7], "ctwin"))
		iWin = 2;
	
	for(i = 0; i < iNum; i++)
	{
		iPlayer = iPlayers[i];
		
		iTeam = cs_get_user_team(iPlayer);
			
		if(iTeam == CS_TEAM_T)
			StatusIcon(iPlayer, 1, iWin == 1 ? 1 : 0);
		else if(iTeam == CS_TEAM_CT)
			StatusIcon(iPlayer, 1, iWin == 2 ? 1 : 0);
	}
}
    
public event_round_start()
{
	new iPlayers[32], iNum, iPlayer;
	get_players(iPlayers, iNum);
	
	if(!iNum) return;
	
	for(new i = 0; i < iNum; i++)
	{
		iPlayer = iPlayers[i];
		
		StatusIcon(iPlayer, 0, 0);
		StatusIcon(iPlayer, 0, 1);
	}
}  

StatusIcon(id, iStatus, iSprKind)
{
	message_begin(MSG_ONE, g_iMsgStatusIcon, {0,0,0}, id);
	write_byte(iStatus); // status: 0: off; 1: on; 2:flash
	write_string(g_szSpr[iSprKind]);
	write_byte(255); // red
	write_byte(255); // green
	write_byte(255); // blue
	message_end();
}
Pro thì nói thẳng ra đi, khiêm tôn làm gì=))
 
đến giờ ta cũng chưa biết dc cấu trúc này à nha =))
PHP:
a ? b : c
 
ai hiểu ko 8-|
PHP:
for x=1, 4 do
	Crypto.DecodeFromString(xpF.File[x], xpF_Path.."\\btn_xpF"..((x>1) and x or "")..".tmp");
end
 
ai hiểu ko 8-|
PHP:
for x=1, 4 do
	Crypto.DecodeFromString(xpF.File[x], xpF_Path.."\\btn_xpF"..((x>1) and x or "")..".tmp");
end
Dịch ra AMX ta có>:)
PHP:
for (new x=1;x<=4;x++)
{
          Crypto.DecodeFromString(xpF.File[x], xpF_Path.."\\btn_xpF"..((x>1) and x or "")..".tmp"); 
}
 
ta cần người dịch chỗ ((x>1) and x or "") này nè 8-|. mi hiểu ko ?

ôi trời. dùng debug chạy có mỗi đoạn scrip 1280 line mà mất 30' 8-|
 
Viết code mệt quá, sai lỗi tùm lum(tại cũng chưa hiểu biết nhiều).Thôi ai viết hộ cho luôn đi đem về học thì hơn.
@Dias : Có câu này quên chưa hỏi, bác xem lại cái plugin he_touch xem cái get maxplayers làm j` vậy ?, nghĩ mãi k hiểu
 
cái tên nói lên tất cả sao lại nghĩ mãi ko hiểu vậy ? hihi
 
ônG cường 8x rồi mà vẫn còn nhí nha nhí nhảnh ý nhỉ ;;)
Legiondog: Đúng roài đó. Hiểu ra nghĩa tiếng anh thì ý nghĩa của plugins đó chính là như vậy :))
 
Ờ thì là lấy số người chơi lớn nhất, nhưng mà cho vào plugin he_touch làm j` ??
P/s: Bác Cường bao nhiu tuổi zậy ? :D
@Kai ngu: sao lại sửa tên ta thành legion dog >:P
 
@legion:
- 1987
- Đưa plugin lên đây tôi xem cho, lười down quá :|.

@ALL:
- Các bác cho hỏi, tăng tốc độ bắn AWp thế nào vậy ?. Kiểu như bắn awp liên thanh ấy
 
Chỉnh sửa cuối:
@legionduck:
- Đưa plugin lên đây tôi xem cho, lười down quá :|.

@ALL:
- Các bác cho hỏi, tăng tốc độ bắn AWp thế nào vậy ?. Kiểu như bắn awp liên thanh ấy
Register cái Fm_CmdStart, check button là IN_ATTACK1, nếu đúng thì ExecuteHamB(Ham_Weapon_PrimaryAttack, get_weapon_ent(id))
 
ExecuteHamB với ExecuteHam có gì khác nhau vây :-?
 
@Dias: plugin chả paste code lên rồi còn j`, thôi paste lại
PHP:
#include <amxmodx> 
#include <amxmisc> 
#include <fakemeta> 
#include <fun> 
#include <cstrike> 
#include <hamsandwich> 
#include <zombieplague> 
#include <fakemeta_util> 
#include <engine> 

#define PLUGIN "He Touch" 
#define AUTHOR "Dias" 
#define VERSION "1.0" 
#define RADIUS        500.0 // Affect radius 
#define MAX_PLAYERS 32 

new cvar_impactexplode 
new g_MaxPlayers // --> là cái này

public plugin_init() 
{ 
    register_plugin( PLUGIN, VERSION, AUTHOR ) 
    cvar_impactexplode = register_cvar("he_impactexplode", "1") 
    RegisterHam(Ham_Touch, "grenade", "bacon_touch_grenade") 
    g_MaxPlayers = get_maxplayers ( ) // --> Và cái này nữa, dùng làm j`
} 

public bacon_touch_grenade(ent, world) 
{ 
    if(!get_pcvar_num(cvar_impactexplode)) 
        return HAM_IGNORED 
     
    static model[12] 
    pev(ent, pev_model, model, 11) 
     
    if(model[9] == 'h' && model[10] == 'e') 
    { 
        set_pev(ent, pev_dmgtime, 0.0) 
        return HAM_HANDLED 
    } 
    return HAM_IGNORED 
}
P/s: Lại thành legionduck X_X
Bác cường 87 à, hơn mềnh 10 tuổi =))
Chắc học xong AMX thì chắc ta trở thành coder trẻ nhất VN mất =))
 
Chỉnh sửa cuối:
ExecuteHamB với ExecuteHam có gì khác nhau vây :-?
ExecuteHamB nó khác ExecuteHam ở 1 chỗ là khi nó thực hiện thì nó call tất cả các func hook nó = RegisterHam nữa.
@Dias: plugin chả paste code lên rồi còn j`, thôi paste lại
PHP:
#include <amxmodx> 
#include <amxmisc> 
#include <fakemeta> 
#include <fun> 
#include <cstrike> 
#include <hamsandwich> 
#include <zombieplague> 
#include <fakemeta_util> 
#include <engine> 

#define PLUGIN "He Touch" 
#define AUTHOR "Dias" 
#define VERSION "1.0" 
#define RADIUS        500.0 // Affect radius 
#define MAX_PLAYERS 32 

new cvar_impactexplode 
new g_MaxPlayers // --> là cái này

public plugin_init() 
{ 
    register_plugin( PLUGIN, VERSION, AUTHOR ) 
    cvar_impactexplode = register_cvar("he_impactexplode", "1") 
    RegisterHam(Ham_Touch, "grenade", "bacon_touch_grenade") 
    g_MaxPlayers = get_maxplayers ( ) // --> Và cái này nữa, dùng làm j`
} 

public bacon_touch_grenade(ent, world) 
{ 
    if(!get_pcvar_num(cvar_impactexplode)) 
        return HAM_IGNORED 
     
    static model[12] 
    pev(ent, pev_model, model, 11) 
     
    if(model[9] == 'h' && model[10] == 'e') 
    { 
        set_pev(ent, pev_dmgtime, 0.0) 
        return HAM_HANDLED 
    } 
    return HAM_IGNORED 
}
P/s: Lại thành legionduck X_X
Bác cường 87 à, hơn mềnh 10 tuổi =))
Chắc học xong AMX thì chắc ta trở thành coder trẻ nhất VN mất =))
Mi cũng = tuổi ta thôi:-"

kungfulon wrote this post.
 
Back
Top