[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
Thank you :x !!!!
À cho hỏi hàm equal có tác dụng gì vậy?
pev(iEnt, pev_classname, s_szClassName, 31); nữa :)
equal dùng để so sánh 2 string.
pev(iEnt, pev_classname, s_szClassName, 31) lưu classname của iEnt vào biến s_szClassName với độ dài tối đa 31 ký tự.
 
Bạn chỉ cụ thể dùm mình cái. Nếu làm đấu dao thì thế nào?
 
PHP:
new classname[32]
pev(index,pev_classname,classname,31)
If(equal(classname,"teo"))
{
//code here
}
dias có metahook thì up lên hộ nhé
 
Chỉnh sửa cuối:
^
- Vào CSO NST B3 mà lục =="
---
cstrike/hl.exe
cstrike/metahook.dll
cstrike/hw.dll

cstrike/addons/amxmodx/metahook_amxx.dll
- vào metamod.ini thêm link metahook vô

Nghe bảo MetaHook mới nó có thể replace hoàn toàn file sound
 
Metamod thêm sao? Đưa vô thẻ code lun đi dias:)
 
Em cung co metahook nay, nhung em chang thich ti nao, dung openpg da giam 20 fps roi, lai con vu add tga nua, giam 30 fps la chac :(
 
Tui định vọc metahook cho cái hud hp, clip, bpa cho sv sắp tới thôi.
Cái plug nst wpn cho zp của ôg share tui dc ko?
 
@teo:
- Metahook còn phải cài ở client nữa cơ, mình làm metahook ở dedicated sv mà client nó ko có metahook thì = 0
 
Lúc rảnh rỗi, làm plugin đơn giản nghịch chơi, tặng anh em plugin HEADSHOT MODE nè.

http://www.mediafire.com/?9hcymjqygi3c4d6

Plugin này có chức năng : Bật chế độ bắn Headshot, tránh tình trạng chích máu, nhằm luyện tay nghề cho pro. Khi plugin được bật, chỉ khi nào bắn vào đầu đối phương, thì đối phương mới chết, còn lại thì không mất máu :)


Dùng lệnh cs_option/HeadShotMode để tắt / mở plugin, khi tắt hoặc mở plugin đều có dòng thông báo :)
 
Mấy bác cho em hỏi register_event vơi register_logevent khác nhau ở điêm nao a?
Nhân tiên các bác cho em xin code kiểm tra xem user có bị dinh damge ko nhé (vân vụ nhiêm đôc zombie)
 
^
- Nói hoài rồi... Ham_TakeDamage. Còn ko thì register_event("Damage",....

@Redplane:
- Ô :|... Rảnh mà ko làm cho e cái phun
 
Chỉnh sửa cuối:
Lúc rảnh rỗi, làm plugin đơn giản nghịch chơi, tặng anh em plugin HEADSHOT MODE nè.

http://www.mediafire.com/?9hcymjqygi3c4d6

Plugin này có chức năng : Bật chế độ bắn Headshot, tránh tình trạng chích máu, nhằm luyện tay nghề cho pro. Khi plugin được bật, chỉ khi nào bắn vào đầu đối phương, thì đối phương mới chết, còn lại thì không mất máu :)


Dùng lệnh cs_option/HeadShotMode để tắt / mở plugin, khi tắt hoặc mở plugin đều có dòng thông báo :)

hay đấy ~
lâu rồi mình không luyện tay nghề ~ thấy cái này lại nổi hứng lên rồi :D
 
Làm sao để làm cho thằng dính damage bi lùi vê sau hả mây bác. Di nhiên dung takedamage nhưng...
 
Làm sao để làm cho thằng dính damage bi lùi vê sau hả mây bác. Di nhiên dung takedamage nhưng...
set var knockback thôi....
PHP:
public plugin_init() 
{
	register_plugin("Wp knockback","1.0","unknow")
	register_event("CurWeapon","client_WeapThink","be","1=1")

	register_cvar("amx_awp_force","200")
	register_cvar("amx_deagle_force","200")
	register_cvar("amx_g3sg1_force","200")
	register_cvar("amx_m3_force","200")
	register_cvar("amx_sg550_force","200")
	register_cvar("amx_xm1014_force","200")

	// Start knockback cvars for specific weaps
	register_cvar("amx_awp_kb","1")
	register_cvar("amx_deagle_kb","1")
	register_cvar("amx_g3sg1_kb","1")
	register_cvar("amx_m3_kb","1")
	register_cvar("amx_sg550_kb","1")
	register_cvar("amx_xm1014_kb","1")

	register_menucmd(register_menuid("\yKnockback Config Menu:"), 1023, "cmd_config_menu")
	register_clcmd("amx_kbmenu","show_config_menu",ACCESS_LEVEL,"- Config Menu for knockback")
	register_clcmd("kbmodmenu","show_config_menu",ACCESS_LEVEL,"- Config Menu for knockback")
}

public plugin_modules() require_module("Engine")

public client_WeapThink(id) 
{
	new temp[2]
	new usersweapon = get_user_weapon(id, temp[0], temp[1])

	if(is_user_alive(id))
	{
		if(get_user_button(id)&IN_ATTACK) {

			switch(usersweapon)
			{
				case CSW_AWP:
				{
					// Check if knockback is enabled for awp
					if(get_cvar_num("amx_awp_kb"))
					{
						new Float:PlayerVelocity[3]
       						VelocityByAim(id, -get_cvar_num("amx_awp_force"), PlayerVelocity)
        					entity_set_vector(id, EV_VEC_velocity, PlayerVelocity)
					}
				}

				case CSW_DEAGLE:
				{
					// Check if knockback is enabled for deagle
					if(get_cvar_num("amx_deagle_kb"))
					{
						new Float:PlayerVelocity[3]
       						VelocityByAim(id, -get_cvar_num("amx_deagle_force"), PlayerVelocity)
        					entity_set_vector(id, EV_VEC_velocity, PlayerVelocity)
					}
				}
				
				case CSW_G3SG1:
				{
 					// Check if knockback is enabled for g3sg1
					if(get_cvar_num("amx_g3sg1_kb"))
					{
						new Float:PlayerVelocity[3]
       						VelocityByAim(id, -get_cvar_num("amx_g3sg1_force"), PlayerVelocity)
        					entity_set_vector(id, EV_VEC_velocity, PlayerVelocity)
					}
				}

				case CSW_M3:
				{
					// Check if knockback is enabled for m3
					if(get_cvar_num("amx_m3_kb"))
					{
						new Float:PlayerVelocity[3]
       						VelocityByAim(id, -get_cvar_num("amx_m3_force"), PlayerVelocity)
        					entity_set_vector(id, EV_VEC_velocity, PlayerVelocity)
					}
				}

				case CSW_SG550:
				{
					// Check if knockback is enabled for sg550
					if(get_cvar_num("amx_sg550_kb"))
					{
						new Float:PlayerVelocity[3]
       						VelocityByAim(id, -get_cvar_num("amx_sg550_force"), PlayerVelocity)
        					entity_set_vector(id, EV_VEC_velocity, PlayerVelocity)
					}
				}

				case CSW_XM1014:
				{
					// Check if knockback is enabled for xm1014
					if(get_cvar_num("amx_xm1014_kb"))
					{
						new Float:PlayerVelocity[3]
       						VelocityByAim(id, -get_cvar_num("amx_xm1014_force"), PlayerVelocity)
        					entity_set_vector(id, EV_VEC_velocity, PlayerVelocity)
					}
				}
			}
		}
	}

	return PLUGIN_CONTINUE
}

public show_config_menu(id)
{
	if(!(get_user_flags(id)&ACCESS_LEVEL))
		return PLUGIN_HANDLED

	new szMenuBody[256]
	new keys
	
	new len = format(szMenuBody,255,"\yKnockback Config Menu:^n")
	len += format(szMenuBody[len],255-len,"^n\w1. AWP \R\r%s",(get_cvar_num("amx_awp_kb")==1) ? "ON" : "OFF")
	len += format(szMenuBody[len],255-len,"^n\w2. Deagle \R\r%s",(get_cvar_num("amx_deagle_kb")==1) ? "ON" : "OFF")
	len += format(szMenuBody[len],255-len,"^n\w3. G3SG1 \R\r%s",(get_cvar_num("amx_g3sg1_kb")==1) ? "ON" : "OFF")
	len += format(szMenuBody[len],255-len,"^n\w4. M3 \R\r%s",(get_cvar_num("amx_m3_kb")==1) ? "ON" : "OFF")
	len += format(szMenuBody[len],255-len,"^n\w5. SG550 \R\r%s",(get_cvar_num("amx_sg550_kb")==1) ? "ON" : "OFF")
	len += format(szMenuBody[len],255-len,"^n\w6. XM1014 \R\r%s",(get_cvar_num("amx_xm1014_kb")==1) ? "ON" : "OFF")
	len += format(szMenuBody[len],255-len,"^n^n\w0. Exit")
	
	keys = (1<<0|1<<1|1<<2|1<<3|1<<4|1<<5|1<<9)
	
	show_menu(id,keys,szMenuBody,-1)
	
	return PLUGIN_HANDLED
}

public cmd_config_menu(id,key)
{
	switch(key)
	{
		case 0:
		{
			set_cvar_num("amx_awp_kb",(get_cvar_num("amx_awp_kb") == 1) ? 0 : 1)
			show_config_menu(id)
		}
		case 1:
		{
			set_cvar_num("amx_deagle_kb",(get_cvar_num("amx_deagle_kb") == 1) ? 0 : 1)
			show_config_menu(id)
		}
		case 2:
		{
			set_cvar_num("amx_g3sg1_kb",(get_cvar_num("amx_g3sg1_kb") == 1) ? 0 : 1)
			show_config_menu(id)
		}	
		case 3:
		{
			set_cvar_num("amx_m3_kb",(get_cvar_num("amx_m3_kb") == 1) ? 0 : 1)
			show_config_menu(id)
		}
		case 4:
		{
			set_cvar_num("amx_sg550_kb",(get_cvar_num("amx_sg550_kb") == 1) ? 0 : 1)
			show_config_menu(id)
		}
		case 5:
		{
			set_cvar_num("amx_xm1014_kb",(get_cvar_num("amx_xm1014_kb") == 1) ? 0 : 1)
			show_config_menu(id)
		}
	}

	return PLUGIN_HANDLED
}
 
Chỉnh sửa cuối:
^
^
- Chỉ 1 thứ đơn giản thôi... đó là velocity... nghĩa là vận tốc, khi set thì nó sẽ di chuyển player đi theo đó
* Làm knockback:
- VelocityByAim (get velocity)
- set_pev(id, pev_velocity,...)
 
Anh cho em hỏi làm sao để kiêm tra xem player co đang đưng im hay ko a?
 
^
(:|... Mấy cái đơn giản thế này sao chú ko lên alliedmods ?
Từ khóa đây:
Mã:
site:forums.alliedmods.net Detect Player Walking
--- ngay cái kết quả đầu tiên luôn... https://forums.alliedmods.net/showthread.php?t=56872

PHP:
#include <engine>

new bool:is_moving[33]

public plugin_init()
{
        register_clcmd("say /what_are_you_doing", "ask")
}

public ask(id)
{
       if(is_moving[id])
       {
                client_print(id, print_chat, "I am Moving")
       } else {
                client_print(id, print_chat, "I am scare and i wanna stay here")
       }
}

public client_PostThink(id)
{
      static CurButton
      CurButton = get_user_button(id)

      if((CurButton & IN_FORWARD) || (CurButton & IN_BACK) || (CurButton & IN_MOVELEFT) || (CurButton & IN_MOVERIGHT))
      {
              is_moving[id] = true
      } else { 
              is_moving[id] = false
      }
}
 
Chỉnh sửa cuối:
Tên plugin: Deadly Shot Item
- Description: Bắn vào bất cứ đâu trên người victim cũng là bắn vào đầu (headshot)
- Author: Dias
- Cvar:

PHP:
- ds_cost // Giá tiền mua | Mặc Định :5000 ($)
- ds_time // Hiệu lực | Mặc Định 5.0 (giây)
- Note: [Mua] Gõ: /buy_ds | [Sử Dụng]: Ấn (E)

Plugin / Source Code:
PHP:
#include <amxmodx>
#include <engine>
#include <fakemeta>
#include <hamsandwich>
#include <cstrike>

#define TASK_HUD 5345634
#define TASK_REMOVE 2423423

new bool:has_item[33]
new bool:using_item[33]

new sync_hud1
new cvar_headshotmode_cost
new cvar_headshotmode_time

public plugin_init()
{
	register_plugin("Deadly Shot", "1.0", "Dias")
	
	register_clcmd("say /buy_ds", "buy_ds")
	RegisterHam(Ham_TraceAttack, "player", "fw_traceattack")
	
	cvar_headshotmode_cost = register_cvar("ds_cost", "5000")
	cvar_headshotmode_time = register_cvar("ds_time", "5.0")
	
	sync_hud1 = CreateHudSyncObj(random_num(1, 10))
}

public buy_ds(id)
{
	if(!has_item[id] || using_item[id])
	{
		if(cs_get_user_money(id) >= get_pcvar_num(cvar_headshotmode_cost))
		{
			client_print(id, print_chat, "You bought Deadly Shot !!!")
			
			has_item[id] = true
			using_item[id] = false
			
			set_task(0.1, "show_hud", id+TASK_HUD, _, _, "b")
			
			cs_set_user_money(id, cs_get_user_money(id) - get_pcvar_num(cvar_headshotmode_cost))
		} else {
			client_print(id, print_chat, "Sorry madam... But you don't have enought money !!!")
		}
	} else {
		client_print(id, print_chat, "You can't buy Deadly Shot at this time...")
	}
}

public show_hud(id)
{
	id -= TASK_HUD

	set_hudmessage(0, 255, 0, -1.0, 0.88, 0, 2.0, 2.0)	
	
	if(has_item[id])
	{
		ShowSyncHudMsg(id, sync_hud1, "[E] -> Active Deadly Shot")
	} else if(using_item[id]) {
		ShowSyncHudMsg(id, sync_hud1, "Deadly Shot - Actived")		
	} else {
		ShowSyncHudMsg(id, sync_hud1, "Deadly Shot - Not Active")
		if(task_exists(id+TASK_HUD)) remove_task(id+TASK_HUD)
	}
}

public client_PostThink(id)
{
	static Button
	Button = get_user_button(id)
	
	if(Button & IN_USE)
	{
		if(has_item[id] && !using_item[id])
		{
			has_item[id] = false
			using_item[id] = true
			
			set_task(get_pcvar_float(cvar_headshotmode_time), "remove_headshot_mode", id+TASK_REMOVE)
		}
	}
}

public fw_traceattack(victim, attacker, Float:damage, direction[3], traceresult, dmgbits)
{
	if(using_item[attacker])
	{
		set_tr2(traceresult, TR_iHitgroup, HIT_HEAD)
	}
}

public remove_headshot_mode(id)
{
	id -= TASK_REMOVE
	
	has_item[id] = false
	using_item[id] = false
	
	if(task_exists(id+TASK_HUD)) remove_task(id+TASK_HUD)
}
 
Back
Top