Arkadaşlar merhaba, bana bir plugin lazım. Aşağıda yazdığım işlemler tek 1 pluginde olacak;
1) amx_weapon kodunda fb, sg, hg yani tüm bombalar yasaklanacak. Kod ile veremeyecek admin.
2) amx_bombaver "nick" komutuyla oyuncuya fb ve sg verecek. Örnek: amx_bombaver john dediğimizde bana 2 FB ve 1 sg gelecek. Bu komut HER EL HER TAKIM için birer kere kullanılabilecek. Yani CT'deki oyuncuya her el 1 kere verebilecek adminler, T'deki oyuncuya da aynı şekilde 1 kere verebilecek adminler. Her el 2 takımın da hakkı 1 olacak.
3) Plugin mp_roundtime ile birlikte çalışacak Oyun içerisindeki roundtime 0.59'a düşünce konsolda da "1 dakika altinda oldugu icin bomba veremezsin!" diye konsol sayı geçerse yeterlidir. Bir de bunu kod ile düzeltebilelim. amx_bombasuresi "0.40" diye mesela kod yazıldığında yasaklama süresi değişsin.
NOT: Tüm weapon komutu yasaklanmasın sadece fb,sg,hg veremesin.
Yapabilen varsa eline emeğine sağlık teşekkürler.
Konu
(23-09-2025, 21:08)john80 Adlı Kullanıcıdan Alıntı: Ücret ödeyemem maalesef yapabilen çıkarsa bekliyorum sağol.
O halde ücretsiz bu kadarına talipsin, yapman gereken sunucuna amx_weapon kodunu engelleyecek sistem kur (oyt'de varmı bilmiyorum) amx_weapon flashbang vb. gibi yasakla bomba komutlarını.
• Bu eklentideki eksi olarakta c4 kurulduğunda süre düşürülmesi eklenmedi, eklemek isteyen ekleyebilir.
Kod:
#include <amxmodx>
#include <amxmisc>
#include <reapi>
#include <cstrike>
#define TEAM_T 0
#define TEAM_CT 1
new bool:g_bTeamUsed[2];
new bool:g_bPlayerUsed[MAX_PLAYERS + 1];
new g_pCvarRoundTime;
new Float:g_flRoundStartTime;
public plugin_init()
{
register_plugin("PLUGIN", "VERSION", "AUTHOR");
register_concmd("amx_bombaver", "cmd_bombaver", ADMIN_KICK, "<nick> - Oyuncuya bomba verir");
g_pCvarRoundTime = get_cvar_pointer("mp_roundtime");
RegisterHookChain(RG_CSGameRules_RestartRound, "OnRestartRound", false);
RegisterHookChain(RG_RoundEnd, "OnRoundEnd", false);
register_logevent("OnRoundStart", 2, "1=Round_Start");
}
public OnRoundStart()
{
g_bTeamUsed[TEAM_T] = false;
g_bTeamUsed[TEAM_CT] = false;
for(new i = 1; i <= MaxClients; i++)
{
g_bPlayerUsed[i] = false;
}
g_flRoundStartTime = get_gametime();
}
public OnRestartRound()
{
OnRoundStart();
}
public OnRoundEnd(WinStatus:status, ScenarioEventEndRound:event, Float:tmDelay)
{
OnRoundStart();
}
public cmd_bombaver(id, level, cid)
{
if(!cmd_access(id, level, cid, 2))
return PLUGIN_HANDLED;
if(get_member_game(m_bFreezePeriod))
{
console_print(id, "Freeze time sirasinda bomba veremezsin!");
return PLUGIN_HANDLED;
}
new Float:flCurrentTime = get_gametime();
new Float:flElapsedTime = flCurrentTime - g_flRoundStartTime;
new iRoundTimeMinutes = get_pcvar_num(g_pCvarRoundTime);
new Float:flRoundTimeSeconds = float(iRoundTimeMinutes * 60);
new Float:flRemainingTime = flRoundTimeSeconds - flElapsedTime;
if(flRemainingTime <= 0.0)
{
console_print(id, "Round süresi doldu, bomba veremezsin!");
return PLUGIN_HANDLED;
}
if(flRemainingTime <= 60.0)
{
new iMinutes = floatround(flRemainingTime) / 60;
new iSeconds = floatround(flRemainingTime) % 60;
console_print(id, "1 dakika altinda oldugu icin bomba veremezsin! (Kalan sure: %d:%02d)", iMinutes, iSeconds);
return PLUGIN_HANDLED;
}
new szTarget[32];
read_argv(1, szTarget, charsmax(szTarget));
new iTarget = cmd_target(id, szTarget, CMDTARGET_ALLOW_SELF);
if(!iTarget)
{
console_print(id, "Oyuncu bulunamadi!");
return PLUGIN_HANDLED;
}
if(!is_user_alive(iTarget))
{
console_print(id, "Hedef oyuncu olmus!");
return PLUGIN_HANDLED;
}
new iTeamIndex = -1;
if(!is_user_connected(iTarget))
{
console_print(id, "Oyuncu sunucuda degil!");
return PLUGIN_HANDLED;
}
new CsTeams:csTeam = cs_get_user_team(iTarget);
if(csTeam == CS_TEAM_T)
iTeamIndex = TEAM_T;
else if(csTeam == CS_TEAM_CT)
iTeamIndex = TEAM_CT;
else
{
console_print(id, "Oyuncu gecerli bir takimda degil! (Spectator/Unassigned)");
return PLUGIN_HANDLED;
}
if(g_bPlayerUsed[iTarget])
{
new szName[32];
get_user_name(iTarget, szName, charsmax(szName));
console_print(id, "%s oyuncusuna bu roundda zaten bomba verildi!", szName);
return PLUGIN_HANDLED;
}
if(g_bTeamUsed[iTeamIndex])
{
new szTeamName[16];
copy(szTeamName, charsmax(szTeamName), (iTeamIndex == TEAM_T) ? "T" : "CT");
console_print(id, "%s takimi icin bu roundda zaten bomba verildi!", szTeamName);
return PLUGIN_HANDLED;
}
rg_give_item(iTarget, "weapon_flashbang", GT_DROP_AND_REPLACE )
rg_set_user_bpammo(iTarget, WEAPON_FLASHBANG, 2);
rg_give_item(iTarget, "weapon_smokegrenade", GT_DROP_AND_REPLACE )
g_bPlayerUsed[iTarget] = true;
g_bTeamUsed[iTeamIndex] = true;
new szTargetName[32], szAdminName[32];
get_user_name(iTarget, szTargetName, charsmax(szTargetName));
get_user_name(id, szAdminName, charsmax(szAdminName));
console_print(id, "%s oyuncusuna bombalar verildi! (2x Flashbang, 1x Smoke)", szTargetName);
client_print(iTarget, print_chat, "* Admin %s tarafindan size bombalar verildi!", szAdminName);
client_print(0, print_chat, "* Admin %s, %s oyuncusuna bomba verdi", szAdminName, szTargetName);
new iPlayers[MAX_PLAYERS], iNum;
get_players(iPlayers, iNum, "ch");
for(new i = 0; i < iNum; i++)
{
new iPlayer = iPlayers[i];
if(get_user_flags(iPlayer) & ADMIN_KICK && iPlayer != id)
{
console_print(iPlayer, "[ADMIN] %s -> %s oyuncusuna bomba verdi", szAdminName, szTargetName);
}
}
return PLUGIN_HANDLED;
}
public client_disconnected(id)
{
g_bPlayerUsed[id] = false;
}(23-09-2025, 23:02)Sentences Adlı Kullanıcıdan Alıntı:Emeğine sağlık teşekkür ederim. Var mı ekstra olarak ekleme yapabilecek round süresi kodu ve amx_weapon 83-84-85-89 komutlarını yasaklayabilecek?(23-09-2025, 21:08)john80 Adlı Kullanıcıdan Alıntı: Ücret ödeyemem maalesef yapabilen çıkarsa bekliyorum sağol.
O halde ücretsiz bu kadarına talipsin, yapman gereken sunucuna amx_weapon kodunu engelleyecek sistem kur (oyt'de varmı bilmiyorum) amx_weapon flashbang vb. gibi yasakla bomba komutlarını.
• Bu eklentideki eksi olarakta c4 kurulduğunda süre düşürülmesi eklenmedi, eklemek isteyen ekleyebilir.Kod:#include <amxmodx>
#include <amxmisc>
#include <reapi>
#include <cstrike>
#define TEAM_T 0
#define TEAM_CT 1
new bool:g_bTeamUsed[2];
new bool:g_bPlayerUsed[MAX_PLAYERS + 1];
new g_pCvarRoundTime;
new Float:g_flRoundStartTime;
public plugin_init()
{
register_plugin("PLUGIN", "VERSION", "AUTHOR");
register_concmd("amx_bombaver", "cmd_bombaver", ADMIN_KICK, "<nick> - Oyuncuya bomba verir");
g_pCvarRoundTime = get_cvar_pointer("mp_roundtime");
RegisterHookChain(RG_CSGameRules_RestartRound, "OnRestartRound", false);
RegisterHookChain(RG_RoundEnd, "OnRoundEnd", false);
register_logevent("OnRoundStart", 2, "1=Round_Start");
}
public OnRoundStart()
{
g_bTeamUsed[TEAM_T] = false;
g_bTeamUsed[TEAM_CT] = false;
for(new i = 1; i <= MaxClients; i++)
{
g_bPlayerUsed[i] = false;
}
g_flRoundStartTime = get_gametime();
}
public OnRestartRound()
{
OnRoundStart();
}
public OnRoundEnd(WinStatus:status, ScenarioEventEndRound:event, Float:tmDelay)
{
OnRoundStart();
}
public cmd_bombaver(id, level, cid)
{
if(!cmd_access(id, level, cid, 2))
return PLUGIN_HANDLED;
if(get_member_game(m_bFreezePeriod))
{
console_print(id, "Freeze time sirasinda bomba veremezsin!");
return PLUGIN_HANDLED;
}
new Float:flCurrentTime = get_gametime();
new Float:flElapsedTime = flCurrentTime - g_flRoundStartTime;
new iRoundTimeMinutes = get_pcvar_num(g_pCvarRoundTime);
new Float:flRoundTimeSeconds = float(iRoundTimeMinutes * 60);
new Float:flRemainingTime = flRoundTimeSeconds - flElapsedTime;
if(flRemainingTime <= 0.0)
{
console_print(id, "Round süresi doldu, bomba veremezsin!");
return PLUGIN_HANDLED;
}
if(flRemainingTime <= 60.0)
{
new iMinutes = floatround(flRemainingTime) / 60;
new iSeconds = floatround(flRemainingTime) % 60;
console_print(id, "1 dakika altinda oldugu icin bomba veremezsin! (Kalan sure: %d:%02d)", iMinutes, iSeconds);
return PLUGIN_HANDLED;
}
new szTarget[32];
read_argv(1, szTarget, charsmax(szTarget));
new iTarget = cmd_target(id, szTarget, CMDTARGET_ALLOW_SELF);
if(!iTarget)
{
console_print(id, "Oyuncu bulunamadi!");
return PLUGIN_HANDLED;
}
if(!is_user_alive(iTarget))
{
console_print(id, "Hedef oyuncu olmus!");
return PLUGIN_HANDLED;
}
new iTeamIndex = -1;
if(!is_user_connected(iTarget))
{
console_print(id, "Oyuncu sunucuda degil!");
return PLUGIN_HANDLED;
}
new CsTeams:csTeam = cs_get_user_team(iTarget);
if(csTeam == CS_TEAM_T)
iTeamIndex = TEAM_T;
else if(csTeam == CS_TEAM_CT)
iTeamIndex = TEAM_CT;
else
{
console_print(id, "Oyuncu gecerli bir takimda degil! (Spectator/Unassigned)");
return PLUGIN_HANDLED;
}
if(g_bPlayerUsed[iTarget])
{
new szName[32];
get_user_name(iTarget, szName, charsmax(szName));
console_print(id, "%s oyuncusuna bu roundda zaten bomba verildi!", szName);
return PLUGIN_HANDLED;
}
if(g_bTeamUsed[iTeamIndex])
{
new szTeamName[16];
copy(szTeamName, charsmax(szTeamName), (iTeamIndex == TEAM_T) ? "T" : "CT");
console_print(id, "%s takimi icin bu roundda zaten bomba verildi!", szTeamName);
return PLUGIN_HANDLED;
}
rg_give_item(iTarget, "weapon_flashbang", GT_DROP_AND_REPLACE )
rg_set_user_bpammo(iTarget, WEAPON_FLASHBANG, 2);
rg_give_item(iTarget, "weapon_smokegrenade", GT_DROP_AND_REPLACE )
g_bPlayerUsed[iTarget] = true;
g_bTeamUsed[iTeamIndex] = true;
new szTargetName[32], szAdminName[32];
get_user_name(iTarget, szTargetName, charsmax(szTargetName));
get_user_name(id, szAdminName, charsmax(szAdminName));
console_print(id, "%s oyuncusuna bombalar verildi! (2x Flashbang, 1x Smoke)", szTargetName);
client_print(iTarget, print_chat, "* Admin %s tarafindan size bombalar verildi!", szAdminName);
client_print(0, print_chat, "* Admin %s, %s oyuncusuna bomba verdi", szAdminName, szTargetName);
new iPlayers[MAX_PLAYERS], iNum;
get_players(iPlayers, iNum, "ch");
for(new i = 0; i < iNum; i++)
{
new iPlayer = iPlayers[i];
if(get_user_flags(iPlayer) & ADMIN_KICK && iPlayer != id)
{
console_print(iPlayer, "[ADMIN] %s -> %s oyuncusuna bomba verdi", szAdminName, szTargetName);
}
}
return PLUGIN_HANDLED;
}
public client_disconnected(id)
{
g_bPlayerUsed[id] = false;
}
AMXX Super kullanıyorsun sanırım. O yüzden "amx_weapon" engellemeleri super eklentisinin içerisinden yapmak daha mantıklı. Botlarla test ettim ama gene sen bi test et sunucunda.
Kod:
/* Sublime AMXX-Editor v4.4 */
#include <amxmodx>
#include <amxmisc>
#include <reapi>
#define PLUGIN "Bomba Ver"
#define VERSION "1.0.0-16"
#define AUTHOR "complexcore"
new mp_roundtime;
new Float:var_roundtime;
new bool:gBlock[MAX_CLIENTS+1][2];
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
bind_pcvar_float(create_cvar("amx_bombasuresi", "0.40", ADMIN_LEVEL_C, "Yasaklama Suresi"), var_roundtime);
register_concmd("amx_bombaver", "admin_weapon", ADMIN_LEVEL_C, "<Oyuncu ismi>");
RegisterHookChain(RG_RoundEnd, "OnRG_RoundEnd", .post = true);
RegisterHookChain(RG_CSGameRules_RestartRound, "OnRG_CSGameRules_RestartRound", .post = true);
}
public plugin_cfg()
{
mp_roundtime = get_cvar_pointer("mp_roundtime");
}
public admin_weapon(id, level, cid)
{
if(!cmd_access(id, level, cid, 2))
return PLUGIN_HANDLED;
new arg[32];
read_argv(1, arg, charsmax(arg));
new player = cmd_target(id, arg, CMDTARGET_OBEY_IMMUNITY | CMDTARGET_ALLOW_SELF);
if(gBlock[id][0] == true && gBlock[id][1] == true)
{
console_print(id, "[BOMBAVER] Bomba verme hakkini kullandin.");
return PLUGIN_HANDLED;
}
if(get_pcvar_float(mp_roundtime) < var_roundtime)
{
console_print(id, "[BOMBAVER] %.0f dakika altinda oldugu icin bomba veremezsin!", var_roundtime);
return PLUGIN_HANDLED;
}
if(!player || !is_user_connected(player) || !is_user_alive(player)){
console_print(id, "[BOMBAVER] Oyuncu canli/bagli degil veya oyuncu bulunamadi.");
return PLUGIN_HANDLED;
}
if(get_member(player, m_iTeam) == TEAM_TERRORIST && gBlock[id][0] == true)
{
console_print(id, "[BOMBAVER] T Takiminda bulunan bir oyuncuya zaten bomba verdin!");
return PLUGIN_HANDLED;
}
else if(get_member(player, m_iTeam) == TEAM_CT && gBlock[id][1] == true)
{
console_print(id, "[BOMBAVER] CT Takiminda bulunan bir oyuncuya zaten bomba verdin!");
return PLUGIN_HANDLED;
}
else
{
switch(get_member(player, m_iTeam))
{
case TEAM_TERRORIST:
{
gBlock[id][0] = true;
rg_give_item(player, "weapon_flashbang");
rg_give_item(player, "weapon_flashbang");
rg_give_item(player, "weapon_smokegrenade");
}
case TEAM_CT:
{
gBlock[id][1] = true;
rg_give_item(player, "weapon_flashbang");
rg_give_item(player, "weapon_flashbang");
rg_give_item(player, "weapon_smokegrenade");
}
}
new name[32];
get_user_name(player, name, charsmax(name));
console_print(id, "[BOMBAVER] %s adli oyuncuya bomba verdin.", name);
}
return PLUGIN_HANDLED;
}
public OnRG_RoundEnd(WinStatus:status, ScenarioEventEndRound:event, Float:tmDelay) gBlockRes();
public OnRG_CSGameRules_RestartRound() gBlockRes();
public gBlockRes()
{
new players[32], num;
get_players(players, num, "ach");
for (new i = 0; i < num; i++)
{
new id = players[i];
if (!is_user_connected(id)) continue;
gBlock[id][0] = false;
gBlock[id][1] = false;
}
}Bombası bir önceki turdan kalan veya zaten bombaya sahip kisiler icin daha mantıklı yol olarak bpammo ile verilebilir, güzel yazılmış bir eklenti teşekkürler.
rg_give_item(player, "weapon_flashbang");
rg_give_item(player, "weapon_flashbang");
rg_give_item(player, "weapon_smokegrenade");
----
rg_give_item(player, "weapon_flashbang");
rg_give_item(player, "weapon_flashbang");
rg_give_item(player, "weapon_smokegrenade");
----
Kod:
/**
* Use with rg_give_item
*/
enum GiveType
{
GT_APPEND, // Just give item
GT_REPLACE, // Give the item and remove all other weapons from the slot
GT_DROP_AND_REPLACE // Give the item and drop all other weapons from the slot
};Son Düzenleme: 23-09-2025, 23:47, Düzenleyen: Sentences.
Konunuz çözüldüyse bildirmeyi unutmayiniz.
MODEL TASARIMI SİLAH TASARIMI SPREY TASARIMI EKLENTİ İŞLERİ MOD KURULUMU İÇİN DİSCORD:okan5705 veya Ts3 Domainler:flexekip,flexekib,okan,okans
(23-09-2025, 23:25)Sentences Adlı Kullanıcıdan Alıntı: Bombası bir önceki turdan kalan veya zaten bombaya sahip kisiler icin daha mantıklı yol olarak bpammo ile verilebilir, güzel yazılmış bir eklenti teşekkürler.şimdi bu eklentide c4 kurulunca da bomba vermeyi kapatıyor mu? Bir de her el başında oyuncu kullanmasa da siliyor mu bombayı?
rg_give_item(player, "weapon_flashbang");
rg_give_item(player, "weapon_flashbang");
rg_give_item(player, "weapon_smokegrenade");
----Kod:/**
* Use with rg_give_item
*/
enum GiveType
{
GT_APPEND, // Just give item
GT_REPLACE, // Give the item and remove all other weapons from the slot
GT_DROP_AND_REPLACE // Give the item and drop all other weapons from the slot
};
Benzer Konular
Yorum
353
Okunma
08-05-2026, 01:06
Yorum
745
Okunma
11-04-2026, 12:30
)

