Follow along with the video below to see how to install our site as a web app on your home screen.
Note: This feature may not be available in some browsers.

#include <hamsandwich>
new bool:can_be_damaged[33]
public plugin_init()
{
RegisterHam(Ham_TakeDamage, "player", "fw_takedmg")
register_clcmd("say /i-dont-want-to-die", "no_damage")
}
public no_damage(id)
{
can_be_damaged[id] = true
}
public fw_takedmg(victim, inflictor, attacker, Float:damage, damagebits)
{
if(!can_be_damaged[victim])
return HAM_SUPERCEDE
return HAM_HANDLED
}
Bot vẫn dính dmg và bắn vẫn tóe máu đấy- Cái vòng màu xanh đó là model hoặc sprite nếu vậy thì message begin với TE_MODEL hoặc TE_SPRITE. Vào message_const cho biết cần write những gì
- Protect ko cho gây dmg dễ mà
PHP:#include <hamsandwich> new bool:can_be_damaged[33] public plugin_init() { RegisterHam(Ham_TakeDamage, "player", "fw_takedmg") register_clcmd("say /i-dont-want-to-die", "no_damage") } public no_damage(id) { can_be_damaged[id] = true } public fw_takedmg(victim, inflictor, attacker, Float:damage, damagebits) { if(!can_be_damaged[victim]) return HAM_SUPERCEDE return HAM_HANDLED }

// Khai báo
#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>
#include <fun>
#include <cstrike>
#define PLUGIN "DeathMatch"
#define AUTHOR "Bui Duc DUy"
#define VERSION "1.0"
new max_kill,g_t, g_ct , cvar_maxkill,attacker
enum (+=100)
{
TASK_SPAWM = 2000,
TASK_HUD,
TASK_OUT,
TASK_HIDE
}
#define ID_TASK_SPAWM (taskid - TASK_SPAWM)
#define ID_TASK_HUD (taskid - TASK_HUD)
#define ID_TASK_OUT (taskid - TASK_OUT)
#define ID_TASK_HIDE (taskid - TASK_HIDE)
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
// register
register_event("DeathMsg", "event_DeathMsg", "a")
register_concmd("bdd_respawm_admin","respawm_admin")
RegisterHam( Ham_Spawn, "player", "fwdPlayerSpawn", 1)
cvar_maxkill = register_cvar("bdd_dm_maxkill","150")
max_kill = get_pcvar_num(cvar_maxkill)
set_task(1.0, "check_score", _, _, _, "b")
}
// Hiện hud bảng điểm
public client_putinserver(id)
{
set_task(0.1, "show_hud", id, _, _, "b")
}
public show_hud(id)
{
if(is_user_connected(id))
{
set_hudmessage(255, 255, 255, -1.0, 0.01, 0, 2.0, 2.0)
show_hudmessage(id, "[GR] %i | %i | %i [BL]", g_ct,max_kill, g_t)
}
else
{
remove_task(id)
}
}
// Player hồi sinh , nhưng mà ko có hiệu quả với BOT
public fwdPlayerSpawn(id)
{
cs_set_user_money(id,0)
set_task(1.0,"hide_weapon",id+TASK_HIDE)
}
// Xem có ai chết để respawn cho người đó. Ở đây em phải để bot riêng và user riêng , tại vì lúc hiện cái thanh bartime mà
// để cho bot nữa thì nó bác lỗi MSG_ONE với MSG_ONE... gì gì đấy ạ> ? Các bác sửa dùm em lun nha :)
public event_DeathMsg()
{
for (new id = 1; id < 33; id++)
{
if (!is_user_alive(id) && is_user_bot(id)) set_task(7.0,"respawn_a_player",id+TASK_SPAWM)
if (!is_user_alive(id) && !is_user_bot(id)) client_cmd(id,"bdd_respawm_admin")
}
attacker = read_data(1)
if (cs_get_user_team(attacker) == CS_TEAM_T) g_t++ // Warning chỗ này
else g_ct++
}
// Kiểm tra điểm để thoát game
public check_score(id)
{
if (g_ct == max_kill)
{
for (new id = 1; id <33;id++)
{
if (!is_user_bot(id))
{
if (cs_get_user_team(id) == CS_TEAM_CT)
{
set_hudmessage(255,0,0,-1.0,-1.0, 0, 6.0, 2.0, 0.0, 0.0, -1)
show_hudmessage(id, "Mission Success")
set_task(5.0,"me_out",id+TASK_OUT)
}
else
{
set_hudmessage(255,0,0,-1.0,-1.0, 0, 6.0, 2.0, 0.0, 0.0, -1)
show_hudmessage(id, "Mission Fail")
set_task(5.0,"me_out",id+TASK_OUT)
}
}
}
}
else if (g_t == max_kill)
{
for (new id = 1; id <33;id++)
{
if (!is_user_bot(id))
{
if (cs_get_user_team(id) == CS_TEAM_T)
{
set_hudmessage(255,0,0,-1.0,-1.0, 0, 6.0, 2.0, 0.0, 0.0, -1)
show_hudmessage(id, "Mission Success")
set_task(5.0,"me_out",id+TASK_OUT)
}
else
{
set_hudmessage(255,0,0,-1.0,-1.0, 0, 6.0, 2.0, 0.0, 0.0, -1)
show_hudmessage(id, "Mission Fail")
set_task(5.0,"me_out",id+TASK_OUT)
}
}
}
}
}
public me_out(taskid)
{
new id = ID_TASK_OUT
client_cmd(id,"quit")
}
public respawm_admin(id)
{
show_bartime(id, 7)
set_task(7.0,"respawn_a_player",id+TASK_SPAWM)
}
public respawn_a_player(taskid)
{
new id = ID_TASK_SPAWM
ExecuteHamB(Ham_CS_RoundRespawn, id)
if (task_exists(id+TASK_HUD)) remove_task(id+TASK_HUD)
if (task_exists(id+TASK_SPAWM)) remove_task(id+TASK_SPAWM)
}
public hide_weapon(taskid)
{
new id = ID_TASK_HIDE
new wpn, clip, ammo
wpn = get_user_weapon(id,clip,ammo)
if (wpn != CSW_KNIFE)
{
strip_user_weapons(id)
give_item(id,"weapon_knife")
}
if (task_exists(id+TASK_HIDE)) remove_task(id+TASK_HIDE)
}
//Func
stock show_bartime(id, total_time)
{
emessage_begin(MSG_ONE,108,{0,0,0},id)
ewrite_short(total_time)
emessage_end()
return
}
set_user_rendering(id, kRenderFxGlowShell, 0, 255, 0, kRenderNormal, 255) // Vòng sáng màu xanh lục
#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>
#include <fun>
#include <fakemeta>
#include <engine>
#include <cstrike>
#define PLUGIN "DeathMatch"
#define AUTHOR "Bui Duc DUy"
#define VERSION "1.0"
new max_kill,g_t, g_ct , cvar_maxkill,attacker
new bool:protect[33]
enum (+=100)
{
TASK_SPAWM = 2000,
TASK_HUD,
TASK_OUT,
TASK_HIDE,
TASK_PROTECT
}
#define ID_TASK_SPAWM (taskid - TASK_SPAWM)
#define ID_TASK_HUD (taskid - TASK_HUD)
#define ID_TASK_OUT (taskid - TASK_OUT)
#define ID_TASK_HIDE (taskid - TASK_HIDE)
#define ID_PROTECT (taskid - TASK_PROTECT)
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
// register
register_event("DeathMsg", "event_DeathMsg", "a")
register_concmd("bdd_respawm_admin","respawm_admin")
RegisterHam(Ham_Spawn, "player", "fwdPlayerSpawn", 1)
RegisterHam(Ham_TraceAttack, "player", "fw_trace") // ko có tác dụng gì
RegisterHam(Ham_TakeDamage, "player", "fw_takedamage") // ko có tác dụng gì
cvar_maxkill = register_cvar("bdd_dm_maxkill","150")
max_kill = get_pcvar_num(cvar_maxkill)
set_task(1.0, "check_score", _, _, _, "b")
}
public client_putinserver(id)
{
set_task(0.1, "show_hud", id, _, _, "b")
}
public show_hud(id)
{
if(is_user_connected(id))
{
set_hudmessage(255, 255, 255, -1.0, 0.01, 0, 2.0, 2.0)
show_hudmessage(id, "[GR] %i | %i | %i [BL]", g_ct,max_kill, g_t)
}
else
{
remove_task(id)
}
}
// respawm
public fwdPlayerSpawn(id)
{
protect[id] = true
cs_set_user_money(id,0)
set_task(1.0,"hide_weapon",id+TASK_HIDE)
fm_set_rendering(id, kRenderFxGlowShell, 255, 0, 0, kRenderNormal, 16)
set_task(7.0, "DisableTheProtection", id + TASK_PROTECT)
}
public fw_trace(victim, idattacker, Float:damage, Float:direction[3], traceresult, damagebits)
{
if(protect[victim]) return HAM_SUPERCEDE
return HAM_IGNORED; // Warning
}
public fw_takedamage(victim, inflictor, attacker, Float:damage)
{
if(protect[victim]) return HAM_SUPERCEDE
return HAM_IGNORED; // Warning
}
public DisableTheProtection(taskid)
{
new id = ID_PROTECT
protect[id] = false
fm_set_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderNormal, 16)
}
public event_DeathMsg()
{
for (new id = 1; id < 33; id++)
{
if (!is_user_alive(id) && is_user_bot(id)) set_task(7.0,"respawn_a_player",id+TASK_SPAWM)
if (!is_user_alive(id) && !is_user_bot(id)) client_cmd(id,"bdd_respawm_admin")
}
attacker = read_data(1)
if (cs_get_user_team(attacker) == CS_TEAM_T) g_t++
else g_ct++
}
public check_score(id)
{
if (g_ct == max_kill)
{
for (new id = 1; id <33;id++)
{
if (!is_user_bot(id))
{
if (cs_get_user_team(id) == CS_TEAM_CT)
{
set_hudmessage(255,0,0,-1.0,-1.0, 0, 6.0, 2.0, 0.0, 0.0, -1)
show_hudmessage(id, "Mission Success")
set_task(5.0,"me_out",id+TASK_OUT)
}
else
{
set_hudmessage(255,0,0,-1.0,-1.0, 0, 6.0, 2.0, 0.0, 0.0, -1)
show_hudmessage(id, "Mission Fail")
set_task(5.0,"me_out",id+TASK_OUT)
}
}
}
}
else if (g_t == max_kill)
{
for (new id = 1; id <33;id++)
{
if (!is_user_bot(id))
{
if (cs_get_user_team(id) == CS_TEAM_T)
{
set_hudmessage(255,0,0,-1.0,-1.0, 0, 6.0, 2.0, 0.0, 0.0, -1)
show_hudmessage(id, "Mission Success")
set_task(5.0,"me_out",id+TASK_OUT)
}
else
{
set_hudmessage(255,0,0,-1.0,-1.0, 0, 6.0, 2.0, 0.0, 0.0, -1)
show_hudmessage(id, "Mission Fail")
set_task(5.0,"me_out",id+TASK_OUT)
}
}
}
}
}
public me_out(taskid)
{
new id = ID_TASK_OUT
client_cmd(id,"quit")
}
public respawm_admin(id)
{
show_bartime(id, 7)
set_task(7.0,"respawn_a_player",id+TASK_SPAWM)
}
public respawn_a_player(taskid)
{
new id = ID_TASK_SPAWM
ExecuteHamB(Ham_CS_RoundRespawn, id)
if (task_exists(id+TASK_HUD)) remove_task(id+TASK_HUD)
if (task_exists(id+TASK_SPAWM)) remove_task(id+TASK_SPAWM)
}
public hide_weapon(taskid)
{
new id = ID_TASK_HIDE
new wpn, clip, ammo
wpn = get_user_weapon(id,clip,ammo)
if (wpn != CSW_KNIFE)
{
strip_user_weapons(id)
give_item(id,"weapon_knife")
}
if (task_exists(id+TASK_HIDE)) remove_task(id+TASK_HIDE)
}
//Func
stock show_bartime(id, total_time)
{
emessage_begin(MSG_ONE,108,{0,0,0},id)
ewrite_short(total_time)
emessage_end()
return
}
stock fm_set_rendering(index, fx=kRenderFxNone, r=255, g=255, b=255, render=kRenderNormal, amount=16)
{
set_pev(index, pev_renderfx, fx)
new Float:RenderColor[3]
RenderColor[0] = float(r)
RenderColor[1] = float(g)
RenderColor[2] = float(b)
set_pev(index, pev_rendercolor, RenderColor)
set_pev(index, pev_rendermode, render)
set_pev(index, pev_renderamt, float(amount))
return 1
}
Thấy topic vắng vẻ qua vô góp vui xíu.
Đặt hàng: 1 func input là 1 string (số), out put là các chữ số ở các hàng đơn vị, chục, trăm ...
EX:
public fun(string)
{
.....
}
call: fun("1234") sẽ trả về 1, 2 , 3, 4.
Ai làm được đầu tiên cộng rep
---------- Post added at 08:22 ---------- Previous post was at 08:13 ----------
Ko ai làm thì thôi nha ! Dễ quá mà !
/**
* @param iNum So can phan tich
* @param iSize So phan tu muon lay (iSize = 0 thi lay tat ca)
*/
stock Array:num_parse(iNum, iSize = 0)
{
iNum = abs(iNum)
if (!iSize)
{
new sStr[32]
num_to_str(iSize, sStr, charsmax(sStr))
iSize = strlen(iSize)
}
new Array:aOut = ArrayCreate(1, 1)
while (ArraySize(aOut) < iSize)
{
new iCell = (iNum) ? (iNum % 10) ? 0
iNum = (iNum - iCell) / 10
ArrayPushCell(aOut, iCell)
}
return aOut;
}
new Array:aNum = num_parse(123, 4)
for (new i = 0; i < ArraySize(aNum); i++)
{
new iNumber = ArrayGetCell(aNum, i)
}
// ket qua tra ve se la "0123"
// còn nếu num_parse(123, 2) thi ket qua se là "23"


. Mù tịt ở đoạn check if đứng