Обаче Auto Restart често се бъгва , когато в сървъра има 1на1 или 2на1 играчи и се получават 1-2-3 допълнителни рестарта в началото на картата. Трябва ми нова функция в Knife Round v1.6 , която да рестартира 1 път след като минат 60-те секунди warm up или фикс за другия плугин така ,че да не рестартира по 2-3 пъти, когато има малко играчи. Незнам кой от двата ще е по-лесен за редактиране, вие изберете...
Knife Round
Код за потвърждение: Избери целия код
/* Script generated by Pawn Studio */
/*
Name: Knife Round
Version: 1.6a
Author: jas0n
Date: 16.05.08
Description: Allow to play first round in "knife only" mode. Also you could allow c4/granades.
Cvars: kr_mode <0|1|2|3> (default "1")
0: knife only
1: knife + c4
2: knife + granades
3: knife + c4 + granades
kr_timer <sec> (default "0")
* If value less then 30 sec this function disabled
*/
#include <amxmodx>
new const PLUGIN[] = "Knife Round"
new const VERSION[] = "1.6a"
new const AUTHOR[] = "jas0n"
new const g_HudMsgStart[] = "KNIFE!!! KNIFE!!! KNIFE!!!"
new const g_HudMsgEnd[] = "PICK UP YOUR WEAPONS AND FIGHT!"
new bool:g_IsKnifeRound
new bool:g_IsCommencing
new g_Mode, p_Mode
new g_Timer, p_Timer
new g_SyncMsgObj
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_event("TextMsg", "evGameCommencing", "a", "2=#Game_Commencing")
register_event("CurWeapon", "evCurWeapon", "be", "1=1", "2!29")
register_event("HLTV", "evNewRound", "a", "1=0", "2=0")
register_logevent("evStartRound", 2, "1=Round_Start")
register_logevent("evRestartRound", 2, "1&Restart_Round_")
g_Mode = register_cvar("kr_mode", "1")
g_Timer = register_cvar("kr_timer", "0")
g_SyncMsgObj = CreateHudSyncObj()
}
public plugin_cfg() {
p_Mode = get_pcvar_num(g_Mode)
p_Timer = get_pcvar_num(g_Timer)
}
public evGameCommencing() {
g_IsCommencing = true
}
public evNewRound() {
if(!g_IsKnifeRound)
return
if(task_exists(348916))
remove_task(348916)
set_hudmessage(0, 225, 0, -1.0, 0.30, 2, 2.0, 6.0, _, _, -1)
ShowSyncHudMsg(0, g_SyncMsgObj, g_HudMsgEnd)
g_IsCommencing = false
g_IsKnifeRound = false
pause("ad")
}
public evStartRound() {
if (!g_IsCommencing)
return
g_IsKnifeRound = true
if (p_Timer >= 30)
set_task(float(p_Timer), "evNewRound", 348916)
set_hudmessage(0, 225, 0, -1.0, 0.30, 2, 2.0, 6.0, _, _, -1)
ShowSyncHudMsg(0, g_SyncMsgObj, g_HudMsgStart)
}
public client_spawn(id) {
if (!g_IsCommencing)
return
force_knife(id)
}
public evRestartRound() {
if (!g_IsKnifeRound)
return
g_IsKnifeRound = false
}
public evCurWeapon(id) {
if (!g_IsCommencing)
return
static weapon
weapon = get_user_weapon(id)
switch(p_Mode) {
case 1: if (weapon == CSW_C4) return
case 2: if (weapon == CSW_HEGRENADE || weapon == CSW_FLASHBANG || weapon == CSW_SMOKEGRENADE) return
case 3: if (weapon == CSW_C4 || weapon == CSW_HEGRENADE || weapon == CSW_FLASHBANG || weapon == CSW_SMOKEGRENADE) return
}
force_knife(id)
}
force_knife(id)
{
engclient_cmd(id, "weapon_knife")
}
Auto Restart
Код за потвърждение: Избери целия код
/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#define PLUGIN "Auto Restart vl"
#define VERSION "1.3"
#define AUTHOR "vato loco [GE-S]"
#define TIMER_TASK 123456
#define RESTART_TASK 789123
new g_counter
new g_autorestart
new g_autoenabled
new g_autocds
new g_SyncGameStart
new g_SyncRestartTimer
new bool:g_bRoundStart
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_logevent("RoundStart", 2, "1=Round_Start")
register_event("TextMsg","RestartTask","a","2&#Game_C")
register_dictionary("auto_restart_vl.txt")
g_autoenabled = register_cvar("amx_autorr_enable","1")
g_autocds = register_cvar("amx_autorr_cds","1")
g_autorestart = register_cvar("amx_auto_restart","20.0")
g_SyncGameStart = CreateHudSyncObj()
g_SyncRestartTimer = CreateHudSyncObj()
}
public RoundStart()
{
if(!get_pcvar_num(g_autoenabled))
return PLUGIN_HANDLED
if(g_bRoundStart)
{
set_hudmessage( 0, 255, 0, -1.0, 0.40, 1, 5.0, 8.0, 0.0, 0.0, -1)
ShowSyncHudMsg( 0, g_SyncGameStart, "%L",LANG_PLAYER, "GAME_STARTED")
}
g_bRoundStart = false
return PLUGIN_CONTINUE
}
public RestartTask()
{
if(!get_pcvar_num(g_autoenabled))
return PLUGIN_HANDLED
set_task(1.0,"TimeCounter",TIMER_TASK,_,_,"a",get_pcvar_num(g_autorestart))
set_task(get_pcvar_float(g_autorestart),"RestartRound",RESTART_TASK)
return PLUGIN_CONTINUE
}
public TimeCounter()
{
g_counter++
new Float:iRestartTime = get_pcvar_float(g_autorestart) - g_counter
new Float:fSec
fSec = iRestartTime
set_hudmessage( 0, 255, 255, -1.0, 0.25, 0, 0.0, 1.0, 0.0, 0.0, -1)
ShowSyncHudMsg( 0, g_SyncRestartTimer, "%L",LANG_PLAYER, "AUTO_RESTART", fSec)
if(get_pcvar_num(g_autocds) && get_pcvar_num(g_autorestart) - g_counter < 11 && get_pcvar_num(g_autorestart) - g_counter !=0)
{
static szNum[32]
num_to_word(get_pcvar_num(g_autorestart) - g_counter, szNum, 31)
client_cmd(0,"speak ^"vox/%s^"", szNum)
}
if(g_counter == get_pcvar_num(g_autorestart))
{
g_bRoundStart = true
g_counter = 0
}
}
public RestartRound()
{
server_cmd("sv_restartround 1")
}