Здравейте,
Трябва ми плъгин, който е предназначен за Knife сървъра ми като цяло. Примерно като се рестартира картата и първият рунд (единствено първият рунд, нито втория, нито третия) да излиза едно меню, в което отговорите са "Da" и "Ne", като въпросът е дали да се играе Respawn или без Respawn. И ако се избере да е Respawn да наглася cvar-a "respawn_on" на 1 и cvar-a mp_round_infinite на 1. А ако се избере без Respawn да наглася кваровете respawn_on и mp_round_infinite на 0. Искам и това да е като вот тоест с тези отговори да и не накрая да се съберат и който отговор има най-много гласове това да стане - примерно ако се гласува най-много за "Dа" да бъде respawn, ако е "Ne" - да не е, сещате се. Респаун плъгина, който ползвам е този - https://amxx-bg.info/forum/viewtopic.php?t=153. Ако може и след окончателното гласуване и избиране на какво да се играе respawn или не да се рестартира рунда (sv_restart 1).
Благодаря предварително.
Заявка за плъгин - като започне рунда да излезе меню дали да се играе respawn или не (повече инфо в темата)
-
kryder11
Извън линия - Потребител
- Мнения: 29
- Регистриран на: 19 Окт 2016, 05:58
- Местоположение: BehindYou
- Се отблагодари: 1 път
- Получена благодарност: 11 пъти
Заявка за плъгин - като започне рунда да излезе меню дали да се играе respawn или не (повече инфо в темата)
Пробвай и ми кажи.
Код за потвърждение: Избери целия код
#include <amxmodx>
#define PLUGIN "Respawn Vote"
#define VERSION "1.0"
#define AUTHOR "kryder11"
new g_VoteMenu
new g_Votes[3]
new bool:gRespawn
new g_iMsgTeamInfo, g_iMsgSayText
new g_MaxPlayers
enum Color {
NORMAL = 1,
GREEN,
RED,
BLUE
};
new TeamName[][] = {
"",
"TERRORIST",
"CT",
"SPECTATOR"
};
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
g_MaxPlayers = get_maxplayers()
g_iMsgSayText = get_user_msgid( "SayText" );
g_iMsgTeamInfo = get_user_msgid( "TeamInfo" );
gRespawn = false
set_task(15.0,"StartVote")
}
public client_putinserver(id) {
if(gRespawn) {
set_task(10.0,"DispInfo", id)
}
}
public DispInfo(id) {
ColorChat(id, RED, "[AMXX]^1 Playing \GRRespawn mode")
}
public StartVote() {
g_VoteMenu = menu_create("Respawn?", "menu_handler")
menu_additem(g_VoteMenu, "Da", "1")
menu_additem(g_VoteMenu, "Ne", "2")
new s_Players[32], i_Num, i_Player
get_players(s_Players, i_Num)
for (new i; i < i_Num; i++)
{
i_Player = s_Players[i]
menu_display(i_Player, g_VoteMenu, 0)
}
set_task(8.0, "EndVote")
g_Votes[1] = g_Votes[2] = 0
return PLUGIN_HANDLED
}
public menu_handler(id, menu, item) {
if (item == MENU_EXIT)
return PLUGIN_HANDLED
new s_Data[6], s_Name[64], i_Access, i_Callback
new name[32]
get_user_name(id, name, 31)
menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback)
new i_Vote = str_to_num(s_Data)
switch(i_Vote)
{
case 1: ColorChat(0, RED, "[AMXX]^1 %s voted for Respawn Mode", name)
case 2: ColorChat(0, RED, "[AMXX]^1 %s voted for Normal Mode", name)
}
g_Votes[i_Vote]++
return PLUGIN_HANDLED
}
public EndVote() {
if (g_Votes[1] > g_Votes[2]) {
ColorChat(0, RED, "[AMXX]^1 Play Respawn Mode")
gRespawn = true
server_cmd("respawn_on 1")
server_cmd("mp_round_infinite 1")
server_cmd("sv_restart 1")
server_exec ()
}
else if (g_Votes[2] >= g_Votes[1]) {
ColorChat(0, RED, "[AMXX]^1 Play Normal Mode")
server_cmd("respawn_on 0")
server_cmd("mp_round_infinite 0")
server_cmd("sv_restart 1")
server_exec ()
}
menu_destroy(g_VoteMenu)
return PLUGIN_CONTINUE
}
ColorChat( id, Color:type, const szMessage[], {Float,Sql,Result,_}:... ) {
if( !get_playersnum() ) return;
new message[256];
switch( type ) {
case NORMAL: message[0] = 0x01;
case GREEN: message[0] = 0x04;
default: message[0] = 0x03;
}
vformat(message[1], 251, szMessage, 4);
message[192] = '^0';
replace_all( message, 191, "\YEL", "^1" );
replace_all( message, 191, "\GRN", "^4" );
replace_all( message, 191, "\TEM", "^3" );
new iTeam, ColorChange, index, MSG_Type;
if( id ) {
MSG_Type = MSG_ONE_UNRELIABLE;
index = id;
} else {
index = CC_FindPlayer();
MSG_Type = MSG_BROADCAST;
}
iTeam = get_user_team( index );
ColorChange = CC_ColorSelection(index, MSG_Type, type);
CC_ShowColorMessage(index, MSG_Type, message);
if( ColorChange )
CC_Team_Info(index, MSG_Type, TeamName[iTeam]);
}
CC_ShowColorMessage( id, type, message[] ) {
message_begin( type, g_iMsgSayText, _, id );
write_byte( id );
write_string( message );
message_end();
}
CC_Team_Info( id, type, team[] ) {
message_begin( type, g_iMsgTeamInfo, _, id );
write_byte( id );
write_string( team );
message_end( );
return 1;
}
CC_ColorSelection( index, type, Color:Type ) {
switch( Type ) {
case RED: return CC_Team_Info(index, type, TeamName[1]);
case BLUE: return CC_Team_Info(index, type, TeamName[2]);
}
return 0;
}
CC_FindPlayer() {
for( new i = 1; i <= g_MaxPlayers; i++ )
if( is_user_connected(i) )
return i;
return -1;
}
Site: http://www.olympiagaming.es/serversboard.php
Zombie Apocalypse: 54.37.14.249:27015
4Fun: 54.37.14.249:27016
Zombie Apocalypse: 54.37.14.249:27015
4Fun: 54.37.14.249:27016
-
illusion
Извън линия - Developer
- Мнения: 1810
- Регистриран на: 27 Ное 2016, 17:47
- Местоположение: CraftVision
- Се отблагодари: 151 пъти
- Получена благодарност: 370 пъти
- Обратна връзка:
Заявка за плъгин - като започне рунда да излезе меню дали да се играе respawn или не (повече инфо в темата)
Екстра е. Ако може да се добави отгоре като HUD да пише Current Mode: и модът (Normal/Respawn - в зависимост кой мод е избран) и ако може като е началото на рунда (когато се гласува) да бъдат фрийзнати играчите и като се ресне рунда (следователно като се гласува) да могат да играят. Ако може и да се направи един HUD CountDown колко време остава до изтичането на Vote. Цветове, всичко вие си сложете някви произволни, аз ще си ги оправя, както и съобщението.
Ето и редактирана версия от мен с CromChat.
Ето и редактирана версия от мен с CromChat.
Код за потвърждение: Избери целия код
#include <amxmodx>
#include <cromchat>
#define PLUGIN "Respawn Vote"
#define VERSION "1.0"
#define AUTHOR "kryder11"
new g_VoteMenu
new g_Votes[3]
new bool:gRespawn
new g_iMsgTeamInfo, g_iMsgSayText
new g_MaxPlayers
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
g_MaxPlayers = get_maxplayers()
g_iMsgSayText = get_user_msgid( "SayText" );
g_iMsgTeamInfo = get_user_msgid( "TeamInfo" );
gRespawn = false
set_task(15.0,"StartVote")
CC_SetPrefix("&x04[&x03Bulgarian &x01Knife&x03Arena&x04]")
}
public client_putinserver(id) {
if(gRespawn) {
set_task(10.0,"DispInfo", id)
}
}
public DispInfo(id) {
CC_SendMessage(id, "&x01Playing &x03Respawn mode&x01.")
}
public StartVote() {
g_VoteMenu = menu_create("\r[\dBulgarian \yKnifeArena\r] \wRespawn\d?", "menu_handler")
menu_additem(g_VoteMenu, "Da / Yes", "1")
menu_additem(g_VoteMenu, "Ne / No", "2")
new s_Players[32], i_Num, i_Player
get_players(s_Players, i_Num)
for (new i; i < i_Num; i++)
{
i_Player = s_Players[i]
menu_display(i_Player, g_VoteMenu, 0)
}
set_task(8.0, "EndVote")
g_Votes[1] = g_Votes[2] = 0
return PLUGIN_HANDLED
}
public menu_handler(id, menu, item) {
if (item == MENU_EXIT)
return PLUGIN_HANDLED
new s_Data[6], s_Name[64], i_Access, i_Callback
new name[32]
get_user_name(id, name, 31)
menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback)
new i_Vote = str_to_num(s_Data)
switch(i_Vote)
{
case 1: CC_SendMessage(0, "&x03%s &x01voted for &x04Respawn Mode&x01.", name)
case 2: CC_SendMessage(0, "&x03%s &x01voted for &x04Normal Mode&x01.", name)
}
g_Votes[i_Vote]++
return PLUGIN_HANDLED
}
public EndVote() {
if (g_Votes[1] > g_Votes[2]) {
CC_SendMessage(0, "&x03>> &x01Play &x04Respawn Mode &x03<<")
gRespawn = true
server_cmd("respawn_on 1")
server_cmd("mp_round_infinite 1")
server_cmd("sv_restart 1")
server_exec ()
}
else if (g_Votes[2] >= g_Votes[1]) {
CC_SendMessage(0, "&x03>> &x01Play &x04Normal Mode &x03<<")
server_cmd("respawn_on 0")
server_cmd("mp_round_infinite 0")
server_cmd("sv_restart 1")
server_exec ()
}
menu_destroy(g_VoteMenu)
return PLUGIN_CONTINUE
}
-
Huehue
Извън линия - Модератор
- Мнения: 352
- Регистриран на: 16 Яну 2017, 23:42
- Местоположение: София
- Се отблагодари: 7 пъти
- Получена благодарност: 171 пъти
- Обратна връзка:
Заявка за плъгин - като започне рунда да излезе меню дали да се играе respawn или не (повече инфо в темата)
Пробвай така..
Код за потвърждение: Избери целия код
#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <cromchat>
#define PLUGIN "Respawn Vote"
#define VERSION "1.0"
#define AUTHOR "kryder11"
new g_VoteMenu
new g_Votes[3]
new bool:gRespawn
new g_szGameMode[32], g_SyncHudMessage, bool:g_ModeSelected, Float:g_iCounter
#define TASKID_COUNTER 1010113
#define TASKID_COUNTER_ENDVOTE 1010114
#define STARTVOTE_TIME 15.0
#define ENDVOTE_TIME 8.0
#define HUD_RED random(256)
#define HUD_GREEN random(256)
#define HUD_BLUE random(256)
#define HUD_X_COORD 0.02
#define HUD_Y_COORD 0.2
#define HUD_EFFECTS 0
#define HUD_HOLDTIME 0.9
#define HUD_CHANNEL -1
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_event_ex("HLTV", "EventEx_NewRound", RegisterEvent_Global, "1=0", "2=0");
gRespawn = false;
g_ModeSelected = false;
g_SyncHudMessage = CreateHudSyncObj();
set_task(STARTVOTE_TIME, "StartVote")
set_task_ex(1.0, "Counter_Task", .id = TASKID_COUNTER, .flags = SetTask_Repeat);
g_iCounter = STARTVOTE_TIME;
CC_SetPrefix("&x04[&x03Bulgarian &x01Knife&x03Arena&x04]")
}
public Counter_Task()
{
if (g_szGameMode[0] != EOS || g_iCounter < 0.0)
{
remove_task(TASKID_COUNTER);
remove_task(TASKID_COUNTER_ENDVOTE);
return;
}
set_hudmessage(HUD_RED, HUD_GREEN, HUD_BLUE, HUD_X_COORD, HUD_Y_COORD, HUD_EFFECTS, .holdtime = HUD_HOLDTIME, .channel = HUD_CHANNEL);
if (task_exists(TASKID_COUNTER))
{
ShowSyncHudMsg(0, g_SyncHudMessage, "You can vote after %i seconds", floatround(--g_iCounter, floatround_round));
}
else if (task_exists(TASKID_COUNTER_ENDVOTE))
{
ShowSyncHudMsg(0, g_SyncHudMessage, "Voting ends in %i seconds", floatround(--g_iCounter, floatround_round));
}
}
public Task_HudInformation()
{
set_hudmessage(HUD_RED, HUD_GREEN, HUD_BLUE, HUD_X_COORD, HUD_Y_COORD, HUD_EFFECTS, .holdtime = HUD_HOLDTIME, .channel = HUD_CHANNEL);
ShowSyncHudMsg(0, g_SyncHudMessage, g_szGameMode);
}
public EventEx_NewRound()
{
if (g_ModeSelected)
{
new iPlayers[MAX_PLAYERS], iNum;
get_players(iPlayers, iNum);
for (--iNum; iNum >= 0; iNum--)
{
Freeze_Player(iPlayers[iNum]);
}
g_ModeSelected = false;
}
}
public client_putinserver(id)
{
if (gRespawn)
{
set_task(10.0,"DispInfo", id)
}
}
public DispInfo(id)
{
CC_SendMessage(id, "&x01Playing &x03Respawn mode&x01.")
}
public StartVote() {
g_VoteMenu = menu_create("\r[\dBulgarian \yKnifeArena\r] \wRespawn\d?", "menu_handler")
menu_additem(g_VoteMenu, "Da / Yes", "1")
menu_additem(g_VoteMenu, "Ne / No", "2")
new s_Players[32], i_Num, i_Player
get_players(s_Players, i_Num)
for (new i; i < i_Num; i++)
{
i_Player = s_Players[i]
Freeze_Player(i_Player, true);
menu_display(i_Player, g_VoteMenu, 0)
}
if (task_exists(TASKID_COUNTER))
{
g_iCounter = 0.0
remove_task(TASKID_COUNTER);
}
set_task(ENDVOTE_TIME, "EndVote")
g_iCounter = ENDVOTE_TIME;
set_task_ex(1.0, "Counter_Task", .id = TASKID_COUNTER_ENDVOTE, .flags = SetTask_Repeat);
g_Votes[1] = g_Votes[2] = 0
return PLUGIN_HANDLED
}
public menu_handler(id, menu, item) {
if (item == MENU_EXIT)
return PLUGIN_HANDLED
new s_Data[6], s_Name[64], i_Access, i_Callback
new name[32]
get_user_name(id, name, 31)
menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback)
new i_Vote = str_to_num(s_Data)
switch(i_Vote)
{
case 1: CC_SendMessage(0, "&x03%s &x01voted for &x04Respawn Mode&x01.", name)
case 2: CC_SendMessage(0, "&x03%s &x01voted for &x04Normal Mode&x01.", name)
}
g_Votes[i_Vote]++
return PLUGIN_HANDLED
}
public EndVote() {
if (task_exists(TASKID_COUNTER))
{
remove_task(TASKID_COUNTER);
}
if (task_exists(TASKID_COUNTER_ENDVOTE))
{
remove_task(TASKID_COUNTER_ENDVOTE);
}
set_task_ex(1.0, "Task_HudInformation", .flags = SetTask_Repeat);
if (g_Votes[1] > g_Votes[2]) {
CC_SendMessage(0, "&x03>> &x01Play &x04Respawn Mode &x03<<")
copy(g_szGameMode, charsmax(g_szGameMode), "Current Mode: Respawn");
gRespawn = true
server_cmd("respawn_on 1")
server_cmd("mp_round_infinite 1")
server_cmd("sv_restart 1")
server_exec ()
}
else if (g_Votes[2] >= g_Votes[1]) {
CC_SendMessage(0, "&x03>> &x01Play &x04Normal Mode &x03<<")
copy(g_szGameMode, charsmax(g_szGameMode), "Current Mode: Normal");
server_cmd("respawn_on 0")
server_cmd("mp_round_infinite 0")
server_cmd("sv_restart 1")
server_exec ()
}
g_ModeSelected = true;
menu_destroy(g_VoteMenu)
return PLUGIN_CONTINUE
}
stock Freeze_Player(id, freeze = false)
{
if (freeze)
{
set_pev(id, pev_flags, pev(id, pev_flags) | FL_FROZEN);
}
else
{
set_pev(id, pev_flags, pev(id, pev_flags) & ~FL_FROZEN);
}
}
LOYAL TO THE OATH OF OMERTА̀
Зад монитора мъжкари, това не го разбирам..
На живо сте мишкари, това го гарантирам!
Седиш на 30 метра от мен като препариран!
Ако има нещо брат, номерът ми е блокиран..
My GitHub Profile
GitHub
My AMXX Includes Collection
AMXX Include Libraries
My Steam Profile (from SteamDB)
Зад монитора мъжкари, това не го разбирам..
На живо сте мишкари, това го гарантирам!
Седиш на 30 метра от мен като препариран!
Ако има нещо брат, номерът ми е блокиран..
My GitHub Profile
GitHub
My AMXX Includes Collection
AMXX Include Libraries
My Steam Profile (from SteamDB)
- Value: 4179€
- Games owned: 1855
- Games played: 754 (40%)
- Hours on record: 4,994.9h
-
illusion
Извън линия - Developer
- Мнения: 1810
- Регистриран на: 27 Ное 2016, 17:47
- Местоположение: CraftVision
- Се отблагодари: 151 пъти
- Получена благодарност: 370 пъти
- Обратна връзка:
Заявка за плъгин - като започне рунда да излезе меню дали да се играе respawn или не (повече инфо в темата)
Точно както го исках, благодаря.
-
- Подобни теми
- Отговори
- Преглеждания
- Последно мнение
-
- 2 Отговори
- 1643 Преглеждания
-
Последно мнение от SILENT HILL`
-
- 3 Отговори
- 1041 Преглеждания
-
Последно мнение от illusion
-
- 2 Отговори
- 1436 Преглеждания
-
Последно мнение от tom1k
-
- 11 Отговори
- 5473 Преглеждания
-
Последно мнение от Scorpions95
-
- 29 Отговори
- 10475 Преглеждания
-
Последно мнение от d3ath2435
-
- 3 Отговори
- 2886 Преглеждания
-
Последно мнение от TheRedShoko
-
- 3 Отговори
- 1815 Преглеждания
-
Последно мнение от SILENT HILL`
Кой е на линия
Потребители разглеждащи този форум: 0 регистрирани и 38 госта