Страница 1 от 1
Заявка за два плъгина Bonus Money и Team Flash.
Публикувано на: 02 Мар 2018, 17:04
от M.K.
Здравейте, тъй като нямам опит в писането на плъгини ще помоля ако има някой желаещ да напише тези два плъгина или да ми препоръча сродни плъгини които вършат същата работа, за плъгините имам активен реапи модул в сървъра, ето и какво искам да представляват плъгините:
Bonus Money: При 3 падащи роунда на отбора който пада 3 пъти под ред да дава пари от 1500$ до 2000$ на рандом, а за победителите които бият 3 роунда подред от 1000$ до 1500$ рандом да е също.
Team Flash: При 2 флаша да му забранява да копува флаш за 3 роунда, брояча да се рестартира на 5 роунда админите с флаг "b" да имат имунтет срещи този плъгин, благодаря ви предварително.
Заявка за два плъгина Bonus Money и Team Flash.
Публикувано на: 02 Мар 2018, 18:24
от Fr0sTt
Заявка за два плъгина Bonus Money и Team Flash.
Публикувано на: 02 Мар 2018, 20:16
от OciXCrom
Вторият (изисква AMXX 1.8.3 & ReGameDLL):
Код за потвърждение: Избери целия код
#include <amxmodx>
#include <cstrike>
#include <reapi>
#define FLASH_MAX 2
#define FLASH_BAN 3
#define FLASH_IMMUNITY ADMIN_RESERVATION
new g_iRoundCount[33]
new g_iTeamFlashes[33]
public plugin_init()
{
register_plugin("Flash Restrict", "1.0", "OciXCrom")
RegisterHookChain(RG_PlayerBlind, "OnPlayerBlind", 1)
RegisterHookChain(RG_CSGameRules_RestartRound, "OnRoundStart", 1)
}
public client_putinserver(id)
{
g_iRoundCount[id] = 0
g_iTeamFlashes[id] = 0
}
public OnPlayerBlind(const id, const iInflictor, const iAttacker)
{
if((id != iAttacker) && (get_member(id, m_iTeam) == get_member(iAttacker, m_iTeam)) && !has_immunity(iAttacker) && (g_iTeamFlashes[iAttacker] < FLASH_MAX))
{
g_iTeamFlashes[iAttacker]++
if(g_iTeamFlashes[iAttacker] >= FLASH_MAX)
{
g_iRoundCount[iAttacker] = FLASH_BAN
client_print(iAttacker, print_center, "You can't buy a flash for %i rounds because you flashed %i teammates!", FLASH_BAN, FLASH_MAX)
}
}
}
public CS_OnBuyAttempt(id, iItem)
{
if(g_iRoundCount[id] && iItem == CSW_FLASHBANG)
{
client_print(id, print_center, "You're not allowed to buy a flashbang right now. Wait %i rounds.", g_iRoundCount[id])
return PLUGIN_HANDLED
}
return PLUGIN_CONTINUE
}
public OnRoundStart()
{
new iPlayers[32], iPnum
get_players(iPlayers, iPnum)
for(new i, iPlayer; i < iPnum; i++)
{
iPlayer = iPlayers[i]
if(g_iRoundCount[iPlayer])
g_iRoundCount[iPlayer]--
}
}
bool:has_immunity(const id)
return bool:(get_user_flags(id) & FLASH_IMMUNITY)
Заявка за два плъгина Bonus Money и Team Flash.
Публикувано на: 02 Мар 2018, 20:44
от M.K.
Аз съм с 1.8.2 ,да се надяваме че няма да има проблем?
Заявка за два плъгина Bonus Money и Team Flash.
Публикувано на: 02 Мар 2018, 21:28
от DoPe ;]]
Ще има проблеми
Заявка за два плъгина Bonus Money и Team Flash.
Публикувано на: 02 Мар 2018, 23:45
от OciXCrom
Ами щом съм написал, че изиксва 1.8.3, много ясно, че ще има проблеми. Функцията която се ползва в кода (
CS_OnBuyAttempt) е достъпна само в 1.8.3. Другият метод, който е за ReAPI, не работи за гранати. Третият метод е да може да купуваш гранатата, обаче да не може да я ползваш. Опитай така:
Код за потвърждение: Избери целия код
#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>
#include <reapi>
#define FLASH_MAX 2
#define FLASH_BAN 3
#define FLASH_IMMUNITY ADMIN_RESERVATION
new g_iRoundCount[33]
new g_iTeamFlashes[33]
public plugin_init()
{
register_plugin("Flash Restrict", "1.0", "OciXCrom")
RegisterHookChain(RG_PlayerBlind, "OnPlayerBlind", 1)
RegisterHookChain(RG_CSGameRules_RestartRound, "OnRoundStart", 1)
RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_flashbang", "OnThrowFlash")
}
public client_putinserver(id)
{
g_iRoundCount[id] = 0
g_iTeamFlashes[id] = 0
}
public OnPlayerBlind(const id, const iInflictor, const iAttacker)
{
if((id != iAttacker) && (get_member(id, m_iTeam) == get_member(iAttacker, m_iTeam)) && !has_immunity(iAttacker) && (g_iTeamFlashes[iAttacker] < FLASH_MAX))
{
g_iTeamFlashes[iAttacker]++
if(g_iTeamFlashes[iAttacker] >= FLASH_MAX)
{
g_iRoundCount[iAttacker] = FLASH_BAN
client_print(iAttacker, print_center, "You can't use flashbangs for %i rounds because you flashed %i teammates!", FLASH_BAN, FLASH_MAX)
}
}
}
public OnThrowFlash(iEnt)
{
new id = pev(iEnt, pev_owner)
if(g_iRoundCount[id])
{
client_print(id, print_center, "You're not allowed to throw a flashbang for %i more rounds!", g_iRoundCount[id])
return HAM_SUPERCEDE
}
return HAM_IGNORED
}
public OnRoundStart()
{
new iPlayers[32], iPnum
get_players(iPlayers, iPnum)
for(new i, iPlayer; i < iPnum; i++)
{
iPlayer = iPlayers[i]
if(g_iRoundCount[iPlayer])
g_iRoundCount[iPlayer]--
}
}
bool:has_immunity(const id)
return bool:(get_user_flags(id) & FLASH_IMMUNITY)
Заявка за два плъгина Bonus Money и Team Flash.
Публикувано на: 04 Мар 2018, 00:39
от M.K.
Благодаря, всичо е точно слагайте катинара.