[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
bot_quota
nhưng .... nếu loading bỏ qua phàn chọn như tôi nói, run = bat chạy thẳng vô game luôn...Zbot nó không nghe lời
 
2pic này dùng để thảo luận về code AMX đc ko nhỉ.. bắt đầu cắm cọc để hỏi.. tự mình viết 1 cái plugins cho mình nào :)

enum
~> nó làm j vậy.. chẳng thấy nói đến trong tài liệu.. toàn thấy ví dụ nó phang thôi :|
 
Lên AM forum, tìm box Code Snippet/ Tutorial có 1 bài viết về enum đó.
 
Nó là newbie cho AMX Code. ông nói thế thằng nào hiểu dc :)). mà enum cũng chả quan trọng cho lắm.
Đây thưa cha nội: http://forums.alliedmods.net/showthread.php?t=140103

- enum cứ như là cái mảng ấy.

Mã:
tạo ra một khối dữ liệu và thiết lập giá trị khác nhau vào nó.
tạo ra các hằng số của riêng bạn
tạo các thẻ của riêng bạn cho các biến.

EX:
PHP:
enum _:PlayerData // PlayerData is no longer a tag
{
    Player_Kills,
    Player_Deaths,
    Float:Player_Speed
}

// ...

new ePlayerData[ PlayerData ]
ePlayerData[ Player_Kills ] = 0
ePlayerData[ Player_Deaths ] = 0
ePlayerData[ Player_Speed ] = 250.0

// this line will work properly
set_task( 1.0, "TaskSetPlayerData", id, ePlayerData, PlayerData )
 
Chỉnh sửa cuối:
Ta đã nói gì khó hiểu đâu, đơn giản chỉ bảo nó lên AlliedModder để tìm tutorial =)).. Chú có vấn đề đọc hiểu hay sao toàn thắc mắc vớ vẩn thế.
 
hắn đưa cả VD dẫn chứng thế cho nhanh phải không chief , atick
 
Các anh cho em hỏi làm sao để thêm zombie vào trong list chọn các loại Zombie Trong Zombie Plague thế ...?
EM đã down xong 1 số file Zombie.sma ở trên mạng xuống nhưng ko biết làm thế nào để thêm nó vào trong list
À mà cả Extra Item nữa...Làm như thế nào vậy?? ?
 
Add tên plugin vào plugin-zplague.ini. Đối với sma phải compile nó ra amxx thì mới dùng dc.
 
Anh có thể nói rõ hơn được không...?
Em chẳng hiểu cái gì cả... Có hình minh họa thì tốt quá nhỉ ...:|
 
cái symbols || này là sao nhỉ @@.. hoặc àh.. còn && thì và ??
 
|| và && thường được dùng trong câu lệnh if (Điều kiện)
-------------------------------
|| -> hoặc
&& -> và
-------------------------------

Ví Dụ:
PHP:
if(is_user_alive(id) && is_user_zombie(id))
=> Nếu user còn sống user là zombie. Nếu cả 2 điều kiện hợp thì tiếp tục

PHP:
if(is_user_alive(id) || is_user_zombie(id))
=> Nếu user còn sống hoặc user là zombie. Nếu 1 trong 2 điều kiện hợp thì tiếp tục.

- Bác cũng có tinh thần học đấy nhỉ ;))
 
Chỉnh sửa cuối:
cày đến khi nào giỏi thì thôi.. như học LUA ấy :-"....

cơ mà lúc vọc mấy script của nst.. có vài chỗ chả hiểu nó ở đâu ra :|... coi bộ khó thở.. cái đùng nó xuất hiện 1 biến.. chưa thấy set biết thì đã thấy xài rồi :|

PHP:
load_config()
{
	// Build customization file path
	new path[64]
	get_configsdir(path, charsmax(path))
	format(path, charsmax(path), "%s/%s", path, SETTING_FILE)
	
	// File not present
	if (!file_exists(path))
	{
		new error[100]
		formatex(error, charsmax(error), "Cannot load customization file %s!", path)
		set_fail_state(error)
		return;
	}

cái patch đó ở đâu thế nhỉ :|...

Có phải là từ đây ko
PHP:
new const SETTING_FILE[] = "nst_player.ini"

~> xem đi xem lại chẳng hiểu patch nó lấy ở đâu :|

^:)^... có j mọi người đừng cười... nói thật là mình chả bik cái j về amx =.='

---------- Post added at 18:31 ---------- Previous post was at 17:30 ----------

return ~> nó trả lại cái j và vào đâu :|.. chẳng hạn như ex trong help

PHP:
//This defines a new function called "add_two_floats"
// which takes two floating points and returns the sum
Float:add_two_floats(Float:first, Float:second)
{
   new Float:sum = first + second

   return sum
}

new Float:a
new Float:b
a = 5.0
b = 6.3
new Float:c
c = add_two_floats( a+b )
//c is now equal to 11.3

//You can even pass arrays!  You do not have to specify the size of the array.
//If you do, you must make sure you are calling the function with an array of equal size and type.
add_two_from_array(array[], a, b)
{
   new first = array[a]
   new second = array[b]
   new sum = add_two_numbers(first, second)   //use our function from earlier
  
   return sum
}
 
Chỉnh sửa cuối:
Tui cũng chưa rành vụ return cho lắm 8-}

@All:
- Tại sao mình set health của player trong Forward Touch mà nó ko hoạt động ?. Sài set_pev rồi set_health,... Nhưng chả có cái nào dc cả . COde vẫn chạy nhưng ko set dc health.

PHP:
public plasma_touch(plasma, id)
{
	if(!pev_valid(plasma))
		return
	
	new Float:fOrigin[3]
	new iOrigin[3]
	
	entity_get_vector(plasma, EV_VEC_origin, fOrigin)
	FVecIVec(fOrigin, iOrigin)
	
	engfunc(EngFunc_RemoveEntity, plasma)
	
	message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
	write_byte(TE_EXPLOSION)
	write_coord(iOrigin[0])
	write_coord(iOrigin[1])
	write_coord(iOrigin[2])
	write_short(g_explode)
	write_byte(25)
	write_byte(25)
	write_byte(0)
	message_end()
	
	for(new i = 1; i < get_maxplayers(); i++)
	{
		if(is_user_alive(i) && !zp_get_user_zombie(i))
		{
			static Float:origin[3]
			pev(plasma, pev_origin, origin)
			
			static Float:origin2 [3]
			pev(i, pev_origin, origin2)
			
			static Float:distance_float
			distance_float = get_distance_f(origin, origin2)
			
			static distance
			distance = floatround(distance_float)
			
			if (distance <= RADIUS)
			{
				screen_effect(i)
				set_user_health(id, get_user_health(id) - get_pcvar_num(cvar_explosion_dmg))
			}
		}
	}
}
 
@Atick hem:
cái patch đó ở đâu thế nhỉ ...
biến patch khai báo ngay ở đó đây thây
PHP:
new path[64]
còn
get_configsdir(path, charsmax(path))
format(path, charsmax(path), "%s/%s", path, SETTING_FILE)
get_configsdir ==> lấy url của thư mục config
format ==> dạng như set giá trị cho 1 biến dạng string
Cậu nên đọc qua tí lý thuyết về biến (khai báo, set giá trị ...), vòng lặp, các phép toán (+, -, *, /) ....
Còn các kiến thức về CS như:event, set_health .... thì học sau.cứ học các phép toán cơ bản trước rồi hẵng xem các code khác

return ~> nó trả lại cái j và vào đâu
return ==> trả về 1 giá trị
vào đâu thì tùy
Nếu cậu có 1 function thì nó sẽ trả về giá trị mà cậu muốn gán cho 1 biến
PHP:
new num
num = get_value() // biến num lúc này sẽ có giá trị là 1
get_value()
{
return 1;
}

(chịu khó tìm tòi và Test trong Game thì biết hết ^^)
 
Anh có thể nói rõ hơn được không...?
Em chẳng hiểu cái gì cả... Có hình minh họa thì tốt quá nhỉ ...:|

Ném file sma vào thư mục addons/amxmodx/scripting. Sau đó ấn compile và đợi nó compile xong thì sẽ ra thư mục compile. Vào thư mục đó tìm tên file vừa compile dưới định dạng amxx. Lấy file đó quăng vào thư mục plugins.
Kế tiếp viết tên file đó thật đầy đủ cả phần mở rộng .amxx vào file plugin-zplague.ini. File .INI đó nằm ở thư mục addons/amxmodx/config.
Vào game kiểm tra.
P.s: Tốt nhất cậu nên về học lại cách sử dụng amxmodx và những thao tác cơ bản về plugin.
 
Ném file sma vào thư mục addons/amxmodx/scripting. Sau đó ấn compile và đợi nó compile xong thì sẽ ra thư mục compile. Vào thư mục đó tìm tên file vừa compile dưới định dạng amxx. Lấy file đó quăng vào thư mục plugins.
Kế tiếp viết tên file đó thật đầy đủ cả phần mở rộng .amxx vào file plugin-zplague.ini. File .INI đó nằm ở thư mục addons/amxmodx/config.
Vào game kiểm tra.
P.s: Tốt nhất cậu nên về học lại cách sử dụng amxmodx và những thao tác cơ bản về plugin.

Cảm ơn anh nhé... Em làm được rùi...
 
Mọi người này, cái source sma anh Tùng share ra last version mà cũng đang include trong CSO-NST đúng không ?
 
PHP:
g_zombie[id] = cs_get_user_team( id ) == CS_TEAM_T ? true : false;
- Cái khúc mà ? true : false; là cái gì ấy nhỉ :|
 
PHP:
true : false

Không hiểu cái này lắm 8-}
 
Back
Top