[INC] CromChat - a better ColorChat!
-
User12
Извън линия - Потребител
- Мнения: 321
- Регистриран на: 25 Яну 2018, 22:39
- Местоположение: Сливен
- Се отблагодари: 40 пъти
- Получена благодарност: 17 пъти
- Обратна връзка:
[INC] CromChat - a better ColorChat!
Не става , нищо не изписва като съобщение , компилира се но в чата нищо не показва . Може да няма начин да стане ..
-
OciXCrom
Извън линия - Администратор
- Мнения: 7206
- Регистриран на: 06 Окт 2016, 19:20
- Местоположение: /resetscore
- Се отблагодари: 117 пъти
- Получена благодарност: 1295 пъти
- Обратна връзка:
[INC] CromChat - a better ColorChat!
Объркал съм един ред:
Код за потвърждение: Избери целия код
/* AMX Mod X
* Maps Menu Plugin
*
* by the AMX Mod X Development Team
* originally developed by OLO
*
* This file is part of AMX Mod X.
*
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation; either version 2 of the License, or (at
* your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software Foundation,
* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
* In addition, as a special exception, the author gives permission to
* link the code of this program with the Half-Life Game Engine ("HL
* Engine") and Modified Game Libraries ("MODs") developed by Valve,
* L.L.C ("Valve"). You must obey the GNU General Public License in all
* respects for all of the code used other than the HL Engine and MODs
* from Valve. If you modify this file, you may extend this exception
* to your version of the file, but you are not obligated to do so. If
* you do not wish to do so, delete this exception statement from your
* version.
*/
#include <amxmodx>
#include <amxmisc>
#include <cromchat>
new Array:g_mapName;
new g_mapNums
new g_menuPosition[33]
new g_voteCount[5]
new g_voteSelected[33][4]
new g_voteSelectedNum[33]
new g_coloredMenus
new g_choosed
new g_activity
public plugin_init()
{
register_plugin("Maps Menu", AMXX_VERSION_STR, "AMXX Dev Team")
register_dictionary("mapsmenu.txt")
register_dictionary("common.txt")
register_clcmd("amx_mapmenu", "cmdMapsMenu", ADMIN_MAP, "- displays changelevel menu")
register_clcmd("amx_votemapmenu", "cmdVoteMapMenu", ADMIN_VOTE, "- displays votemap menu")
register_menucmd(register_menuid("Changelevel Menu"), 1023, "actionMapsMenu")
register_menucmd(register_menuid("Which map do you want?"), 527, "voteCount")
register_menucmd(register_menuid("Change map to"), 527, "voteCount")
register_menucmd(register_menuid("Votemap Menu"), 1023, "actionVoteMapMenu")
register_menucmd(register_menuid("The winner: "), 3, "actionResult")
g_mapName=ArrayCreate(32);
new maps_ini_file[64];
get_configsdir(maps_ini_file, 63);
format(maps_ini_file, 63, "%s/maps.ini", maps_ini_file);
if (!file_exists(maps_ini_file))
get_cvar_string("mapcyclefile", maps_ini_file, sizeof(maps_ini_file) - 1);
if (!file_exists(maps_ini_file))
format(maps_ini_file, 63, "mapcycle.txt")
load_settings(maps_ini_file)
g_coloredMenus = colored_menus()
g_activity = get_cvar_pointer("amx_show_activity")
}
public autoRefuse()
{
log_amx("Vote: %L", "en", "RESULT_REF")
ColorChat(0, TEAM_COLOR, "^1[^4VOTEMAP^1]^4 %L", LANG_PLAYER, "RESULT_REF")
}
public actionResult(id, key)
{
remove_task(4545454)
switch (key)
{
case 0:
{
new _modName[10]
get_modname(_modName, 9)
if (!equal(_modName, "zp"))
{
message_begin(MSG_ALL, SVC_INTERMISSION)
message_end()
}
new tempMap[32];
ArrayGetString(g_mapName, g_choosed, tempMap, charsmax(tempMap));
set_task(2.0, "delayedChange", 0, tempMap, strlen(tempMap) + 1)
log_amx("Vote: %L", "en", "RESULT_ACC")
ColorChat(0, TEAM_COLOR, "^1[^4VOTEMAP^1]^4 %L", LANG_PLAYER, "RESULT_ACC")
}
case 1: autoRefuse()
}
return PLUGIN_HANDLED
}
public checkVotes(id)
{
id -= 34567
new num, ppl[32], a = 0
get_players(ppl, num, "c")
if (num == 0) num = 1
g_choosed = -1
for (new i = 0; i < g_voteSelectedNum[id]; ++i)
if (g_voteCount[a] < g_voteCount[i])
a = i
new votesNum = g_voteCount[0] + g_voteCount[1] + g_voteCount[2] + g_voteCount[3] + g_voteCount[4]
new iRatio = votesNum ? floatround(get_cvar_float("amx_votemap_ratio") * float(votesNum), floatround_ceil) : 1
new iResult = g_voteCount[a]
if (iResult >= iRatio)
{
g_choosed = g_voteSelected[id][a]
new tempMap[32];
ArrayGetString(g_mapName, g_choosed, tempMap, charsmax(tempMap));
ColorChat(0, TEAM_COLOR, "^1[^4VOTEMAP^1]^4 %L ^3%s", LANG_PLAYER, "VOTE_SUCCESS", tempMap);
log_amx("!tVote: %L %s", "en", "VOTE_SUCCESS", tempMap);
}
if (g_choosed != -1)
{
if (is_user_connected(id))
{
new menuBody[512]
new tempMap[32];
ArrayGetString(g_mapName, g_choosed, tempMap, charsmax(tempMap));
new len = format(menuBody, 511, g_coloredMenus ? "\y%L: \w%s^n^n" : "%L: %s^n^n", id, "THE_WINNER", tempMap)
len += format(menuBody[len], 511 - len, g_coloredMenus ? "\y%L^n\w" : "%L^n", id, "WANT_CONT")
format(menuBody[len], 511-len, "^n1. %L^n2. %L", id, "YES", id, "NO")
show_menu(id, 0x03, menuBody, 10, "The winner: ")
set_task(10.0, "autoRefuse", 4545454)
} else {
new _modName[10]
get_modname(_modName, 9)
if (!equal(_modName, "zp"))
{
message_begin(MSG_ALL, SVC_INTERMISSION)
message_end()
}
new tempMap[32];
ArrayGetString(g_mapName, g_choosed, tempMap, charsmax(tempMap));
set_task(2.0, "delayedChange", 0, tempMap, strlen(tempMap) + 1)
}
} else {
ColorChat(0, TEAM_COLOR, "^1[^4VOTEMAP^1]^4 %L", LANG_PLAYER, "VOTE_FAILED")
log_amx("Vote: %L", "en", "VOTE_FAILED")
}
remove_task(34567 + id)
}
public voteCount(id, key)
{
if (key > 3)
{
ColorChat(0, TEAM_COLOR, "^1[^4VOTEMAP^1]^4 %L", LANG_PLAYER, "VOT_CANC")
remove_task(34567 + id)
set_cvar_float("amx_last_voting", get_gametime())
log_amx("Vote: Cancel vote session")
return PLUGIN_HANDLED
}
if (get_cvar_float("amx_vote_answers"))
{
new name[32]
get_user_name(id, name, 31)
ColorChat(0, TEAM_COLOR, "^1[^4VOTEMAP^1]^4 %L", LANG_PLAYER, "X_VOTED_FOR", name, key + 1)
}
++g_voteCount[key]
return PLUGIN_HANDLED
}
isMapSelected(id, pos)
{
for (new a = 0; a < g_voteSelectedNum[id]; ++a)
if (g_voteSelected[id][a] == pos)
return 1
return 0
}
displayVoteMapsMenu(id, pos)
{
if (pos < 0)
return
new menuBody[512], b = 0, start = pos * 7
if (start >= g_mapNums)
start = pos = g_menuPosition[id] = 0
new len = format(menuBody, 511, g_coloredMenus ? "\y%L\R%d/%d^n\w^n" : "%L %d/%d^n^n", id, "VOTEMAP_MENU", pos + 1, (g_mapNums / 7 + ((g_mapNums % 7) ? 1 : 0)))
new end = start + 7, keys = MENU_KEY_0
if (end > g_mapNums)
end = g_mapNums
new tempMap[32];
for (new a = start; a < end; ++a)
{
ArrayGetString(g_mapName, a, tempMap, charsmax(tempMap));
if (g_voteSelectedNum[id] == 4 || isMapSelected(id, pos * 7 + b))
{
++b
if (g_coloredMenus)
len += format(menuBody[len], 511-len, "\d%d. %s^n\w", b, tempMap)
else
len += format(menuBody[len], 511-len, "#. %s^n", tempMap)
} else {
keys |= (1<<b)
len += format(menuBody[len], 511-len, "%d. %s^n", ++b, tempMap)
}
}
if (g_voteSelectedNum[id])
{
keys |= MENU_KEY_8
len += format(menuBody[len], 511-len, "^n8. %L^n", id, "START_VOT")
}
else
len += format(menuBody[len], 511-len, g_coloredMenus ? "^n\d8. %L^n\w" : "^n#. %L^n", id, "START_VOT")
if (end != g_mapNums)
{
len += format(menuBody[len], 511-len, "^n9. %L...^n0. %L^n", id, "MORE", id, pos ? "BACK" : "EXIT")
keys |= MENU_KEY_9
}
else
len += format(menuBody[len], 511-len, "^n0. %L^n", id, pos ? "BACK" : "EXIT")
if (g_voteSelectedNum[id])
len += format(menuBody[len], 511-len, g_coloredMenus ? "^n\y%L:^n\w" : "^n%L:^n", id, "SEL_MAPS")
else
len += format(menuBody[len], 511-len, "^n^n")
for (new c = 0; c < 4; c++)
{
if (c < g_voteSelectedNum[id])
{
ArrayGetString(g_mapName, g_voteSelected[id][c], tempMap, charsmax(tempMap));
len += format(menuBody[len], 511-len, "%s^n", tempMap)
}
else
len += format(menuBody[len], 511-len, "^n")
}
new menuName[64]
format(menuName, 63, "%L", "en", "VOTEMAP_MENU")
show_menu(id, keys, menuBody, -1, menuName)
}
public cmdVoteMapMenu(id, level, cid)
{
if (!cmd_access(id, level, cid, 1))
return PLUGIN_HANDLED
if (get_cvar_float("amx_last_voting") > get_gametime())
{
ColorChat(0, TEAM_COLOR, "^1[^4VOTEMAP^1]^4 %L", id, "ALREADY_VOT")
return PLUGIN_HANDLED
}
g_voteSelectedNum[id] = 0
if (g_mapNums)
{
displayVoteMapsMenu(id, g_menuPosition[id] = 0)
} else {
console_print(id, "%L", id, "NO_MAPS_MENU")
ColorChat(0, TEAM_COLOR, "^1[^4VOTEMAP^1]^4 %L", id, "NO_MAPS_MENU")
}
return PLUGIN_HANDLED
}
public cmdMapsMenu(id, level, cid)
{
if (!cmd_access(id, level, cid, 1))
return PLUGIN_HANDLED
if (g_mapNums)
{
displayMapsMenu(id, g_menuPosition[id] = 0)
} else {
console_print(id, "%L", id, "NO_MAPS_MENU")
ColorChat(0, TEAM_COLOR, "^1[^4VOTEMAP^1]^4 %L", id, "NO_MAPS_MENU")
}
return PLUGIN_HANDLED
}
public delayedChange(mapname[])
server_cmd("changelevel %s", mapname)
public actionVoteMapMenu(id, key)
{
new tempMap[32];
switch (key)
{
case 7:
{
new Float:voting = get_cvar_float("amx_last_voting")
if (voting > get_gametime())
{
ColorChat(0, TEAM_COLOR, "^1[^4VOTEMAP^1]^4 %L", id, "ALREADY_VOT")
return PLUGIN_HANDLED
}
if (voting && voting + get_cvar_float("amx_vote_delay") > get_gametime())
{
ColorChat(0, TEAM_COLOR, "^1[^4VOTEMAP^1]^4 %L", id, "VOT_NOW_ALLOW")
return PLUGIN_HANDLED
}
g_voteCount = {0, 0, 0, 0, 0}
new Float:vote_time = get_cvar_float("amx_vote_time") + 2.0
set_cvar_float("amx_last_voting", get_gametime() + vote_time)
new iVoteTime = floatround(vote_time)
set_task(vote_time, "checkVotes", 34567 + id)
new menuBody[512]
new players[32]
new pnum, keys, len
get_players(players, pnum)
if (g_voteSelectedNum[id] > 1)
{
len = format(menuBody, 511, g_coloredMenus ? "\y%L^n\w^n" : "%L^n^n", id, "WHICH_MAP")
for (new c = 0; c < g_voteSelectedNum[id]; ++c)
{
ArrayGetString(g_mapName, g_voteSelected[id][c], tempMap, charsmax(tempMap));
len += format(menuBody[len], 511, "%d. %s^n", c + 1, tempMap)
keys |= (1<<c)
}
keys |= (1<<8)
len += format(menuBody[len], 511, "^n9. %L^n", id, "NONE")
} else {
ArrayGetString(g_mapName, g_voteSelected[id][0], tempMap, charsmax(tempMap));
len = format(menuBody, 511, g_coloredMenus ? "\y%L^n%s?^n\w^n1. %L^n2. %L^n" : "%L^n%s?^n^n1. %L^n2. %L^n", id, "CHANGE_MAP_TO", tempMap, id, "YES", id, "NO")
keys = MENU_KEY_1|MENU_KEY_2
}
new menuName[64]
format(menuName, 63, "%L", "en", "WHICH_MAP")
for (new b = 0; b < pnum; ++b)
if (players[b] != id)
show_menu(players[b], keys, menuBody, iVoteTime, menuName)
format(menuBody[len], 511, "^n0. %L", id, "CANC_VOTE")
keys |= MENU_KEY_0
show_menu(id, keys, menuBody, iVoteTime, menuName)
new authid[32], name[32]
get_user_authid(id, authid, 31)
get_user_name(id, name, 31)
//show_activity_key("ADMIN_V_MAP_1", "ADMIN_V_MAP_2", name);
switch(get_pcvar_num(g_activity))
{
case 1: CC_SendMessage(0, "^1[^4VOTEMAP^1]^4 %L", LANG_PLAYER, "ADMIN_V_MAP_1")
case 2: CC_SendMessage(0, "^1[^4VOTEMAP^1]^4 %L", LANG_PLAYER, "ADMIN_V_MAP_2", name)
}
new tempMapA[32];
new tempMapB[32];
new tempMapC[32];
new tempMapD[32];
if (g_voteSelectedNum[id] > 0)
{
ArrayGetString(g_mapName, g_voteSelected[id][0], tempMapA, charsmax(tempMapA));
}
else
{
copy(tempMapA, charsmax(tempMapA), "");
}
if (g_voteSelectedNum[id] > 1)
{
ArrayGetString(g_mapName, g_voteSelected[id][1], tempMapB, charsmax(tempMapB));
}
else
{
copy(tempMapB, charsmax(tempMapB), "");
}
if (g_voteSelectedNum[id] > 2)
{
ArrayGetString(g_mapName, g_voteSelected[id][2], tempMapC, charsmax(tempMapC));
}
else
{
copy(tempMapC, charsmax(tempMapC), "");
}
if (g_voteSelectedNum[id] > 3)
{
ArrayGetString(g_mapName, g_voteSelected[id][3], tempMapD, charsmax(tempMapD));
}
else
{
copy(tempMapD, charsmax(tempMapD), "");
}
log_amx("Vote: ^"^3%s<%d><^3%s><>^" vote maps (map#1 ^"%s^") (map#2 ^"%s^") (map#3 ^"%s^") (map#4 ^"%s^")",
name, get_user_userid(id), authid,
tempMapA, tempMapB, tempMapC, tempMapD)
}
case 8: displayVoteMapsMenu(id, ++g_menuPosition[id])
case 9: displayVoteMapsMenu(id, --g_menuPosition[id])
default:
{
g_voteSelected[id][g_voteSelectedNum[id]++] = g_menuPosition[id] * 7 + key
displayVoteMapsMenu(id, g_menuPosition[id])
}
}
return PLUGIN_HANDLED
}
public actionMapsMenu(id, key)
{
switch (key)
{
case 8: displayMapsMenu(id, ++g_menuPosition[id])
case 9: displayMapsMenu(id, --g_menuPosition[id])
default:
{
new a = g_menuPosition[id] * 8 + key
new _modName[10]
get_modname(_modName, 9)
if (!equal(_modName, "zp"))
{
message_begin(MSG_ALL, SVC_INTERMISSION)
message_end()
}
new authid[32], name[32]
get_user_authid(id, authid, 31)
get_user_name(id, name, 31)
new tempMap[32];
ArrayGetString(g_mapName, a, tempMap, charsmax(tempMap));
//show_activity_key("ADMIN_CHANGEL_1", "ADMIN_CHANGEL_2", name, tempMap);
switch(get_pcvar_num(g_activity))
{
case 1: CC_SendMessage(0, "^1[^4VOTEMAP^1]^4 %L", LANG_PLAYER, "ADMIN_CHANGEL_1", tempMap)
case 2: CC_SendMessage(0, "^1[^4VOTEMAP^1]^4 %L", LANG_PLAYER, "ADMIN_CHANGEL_2", name, tempMap)
}
log_amx("Cmd: ^"%s<%d><%s><>^"changelevel ^"%s^"", name, get_user_userid(id), authid, tempMap)
set_task(2.0, "delayedChange", 0, tempMap, strlen(tempMap) + 1)
/* displayMapsMenu(id, g_menuPosition[id]) */
}
}
return PLUGIN_HANDLED
}
displayMapsMenu(id, pos)
{
if (pos < 0)
return
new menuBody[512]
new tempMap[32]
new start = pos * 8
new b = 0
if (start >= g_mapNums)
start = pos = g_menuPosition[id] = 0
new len = format(menuBody, 511, g_coloredMenus ? "\y%L\R%d/%d^n\w^n" : "%L %d/%d^n^n", id, "CHANGLE_MENU", pos + 1, (g_mapNums / 8 + ((g_mapNums % 8) ? 1 : 0)))
new end = start + 8
new keys = MENU_KEY_0
if (end > g_mapNums)
end = g_mapNums
for (new a = start; a < end; ++a)
{
keys |= (1<<b)
ArrayGetString(g_mapName, a, tempMap, charsmax(tempMap));
len += format(menuBody[len], 511-len, "%d. %s^n", ++b, tempMap)
}
if (end != g_mapNums)
{
format(menuBody[len], 511-len, "^n9. %L...^n0. %L", id, "MORE", id, pos ? "BACK" : "EXIT")
keys |= MENU_KEY_9
}
else
format(menuBody[len], 511-len, "^n0. %L", id, pos ? "BACK" : "EXIT")
new menuName[64]
format(menuName, 63, "%L", "en", "CHANGLE_MENU")
show_menu(id, keys, menuBody, -1, menuName)
}
stock bool:ValidMap(mapname[])
{
if ( is_map_valid(mapname) )
{
return true;
}
// If the is_map_valid check failed, check the end of the string
new len = strlen(mapname) - 4;
// The mapname was too short to possibly house the .bsp extension
if (len < 0)
{
return false;
}
if ( equali(mapname[len], ".bsp") )
{
// If the ending was .bsp, then cut it off.
// the string is byref'ed, so this copies back to the loaded text.
mapname[len] = '^0';
// recheck
if ( is_map_valid(mapname) )
{
return true;
}
}
return false;
}
load_settings(filename[])
{
new fp = fopen(filename, "r");
if (!fp)
{
return 0;
}
new text[256];
new tempMap[32];
while (!feof(fp))
{
fgets(fp, text, charsmax(text));
if (text[0] == ';')
{
continue;
}
if (parse(text, tempMap, charsmax(tempMap)) < 1)
{
continue;
}
if (!ValidMap(tempMap))
{
continue;
}
ArrayPushString(g_mapName, tempMap);
g_mapNums++;
}
fclose(fp);
return 1;
}
-
User12
Извън линия - Потребител
- Мнения: 321
- Регистриран на: 25 Яну 2018, 22:39
- Местоположение: Сливен
- Се отблагодари: 40 пъти
- Получена благодарност: 17 пъти
- Обратна връзка:
[INC] CromChat - a better ColorChat!
Да така стана зелено цялото съобщение , а дали има вариант да бъде така : ADMIN PLAYER : changelevel to zm_gbox6(цвета на отбора) , а не цялото зелено ADMIN PLAYER : changelevel to zm_gbox6
-
OciXCrom
Извън линия - Администратор
- Мнения: 7206
- Регистриран на: 06 Окт 2016, 19:20
- Местоположение: /resetscore
- Се отблагодари: 117 пъти
- Получена благодарност: 1295 пъти
- Обратна връзка:
[INC] CromChat - a better ColorChat!
За тази цел трябва да добавиш цветовете в lang файла. В .sma файла се ползва само %L, което замества цялото съобщение от lang файла.
-
User12
Извън линия - Потребител
- Мнения: 321
- Регистриран на: 25 Яну 2018, 22:39
- Местоположение: Сливен
- Се отблагодари: 40 пъти
- Получена благодарност: 17 пъти
- Обратна връзка:
-
User12
Извън линия - Потребител
- Мнения: 321
- Регистриран на: 25 Яну 2018, 22:39
- Местоположение: Сливен
- Се отблагодари: 40 пъти
- Получена благодарност: 17 пъти
- Обратна връзка:
[INC] CromChat - a better ColorChat!
Въпрос за библиотеката , имали начин да се добави друг цвят примерно cyan или пък purple в чата както е на hud съобщенията , или е невъзможно ?
-
OciXCrom
Извън линия - Администратор
- Мнения: 7206
- Регистриран на: 06 Окт 2016, 19:20
- Местоположение: /resetscore
- Се отблагодари: 117 пъти
- Получена благодарност: 1295 пъти
- Обратна връзка:
[INC] CromChat - a better ColorChat!
Единствените възможни цветове за чата в CS 1.6 са тези в темата. Добавяне на други е невъзможно.
-
LoShIaA
Извън линия - Потребител
- Мнения: 323
- Регистриран на: 20 Окт 2016, 14:44
- Местоположение: Стара Загора
- Се отблагодари: 120 пъти
- Получена благодарност: 9 пъти
[INC] CromChat - a better ColorChat!
Как да заменя тази библиотека за цветни съобщения с твоята?
Това с какво да го заменя client_print_color? Пробвах няколко метода, но все ми дава грешка при компилация. Даже ще е добре самото оцветяване да става само през lang файла, защото гледам, че тук в кода има някви оцветявания.
Код за потвърждение: Избери целия код
/* Formatright © 2009, ConnorMcLeod
Info Rank is free software;
you can redistribute it and/or modify it under the terms of the
GNU General Public License as published by the Free Software Foundation.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Info Rank; if not, write to the
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA.
*/
/* Configuration */
#define ENABLED_BY_DEFAULT 1
#define NVAULT_MAX_DAYS_SAVE 30
/* DON'T CHANGE ANYTHING BELOW */
#include <amxmodx>
#include <csx>
#include <nvault>
#include <chatcolor>
#define VERSION "0.4.1"
#define MAX_PLAYERS 32
#define A_DAY_IN_SECONDS 86400 // 60 * 60 * 24
new g_iOldRank[MAX_PLAYERS+1]
new playerbitStatsEnabled
#define EnablePlayerStats(%0) playerbitStatsEnabled |= 1<<(%0&31)
#define DisablePlayerStats(%0) playerbitStatsEnabled &= ~(1<<(%0&31))
#define ArePlayerStatsEnabled(%0) playerbitStatsEnabled & 1<<(%0&31)
#define TogglePlayerStats(%0) playerbitStatsEnabled ^= 1<<(%0&31)
new playerbitDisplayStats
//#define DisplayStatsOnNextResetHUDEvent(%0) playerbitDisplayStats |= 1<<(%0&31)
#define DontDisplayStatsOnNextResetHUDEvent(%0) playerbitDisplayStats &= ~(1<<(%0&31))
#define ShouldDisplayStatsOnNextResetHUDEvent(%0) playerbitDisplayStats & 1<<(%0&31)
new g_iEnabledByDefault = ENABLED_BY_DEFAULT
new g_iNvault
new g_pCvarInfoRank
public plugin_init()
{
register_plugin("Info Rank", VERSION, "ConnorMcLeod")
register_dictionary("inforank.txt")
g_pCvarInfoRank = register_cvar("amx_inforank", "1")
register_event("HLTV", "Event_HLTV_New_Round", "a", "1=0", "2=0")
register_event("ResetHUD", "Event_ResetHUD", "b")
register_clcmd("say /inforank", "ClientCommand_InfoRank", 0, "- enable/disable info rank messages")
register_clcmd("say_team /inforank", "ClientCommand_InfoRank", 0, "- enable/disable info rank messages")
g_iNvault = nvault_open("inforank")
nvault_prune(g_iNvault, 0, get_systime(-(A_DAY_IN_SECONDS * NVAULT_MAX_DAYS_SAVE)) )
}
public client_authorized(id)
{
new szSteamId[32]
get_user_authid(id, szSteamId, charsmax(szSteamId))
if( szSteamId[0] == 'S' ) // skip bots
{
new mOsef[8]
g_iOldRank[id] = get_user_stats(id, mOsef, mOsef)
new szPlayerSettings[2]
nvault_get(g_iNvault,szSteamId, szPlayerSettings, charsmax(szPlayerSettings))
switch( szPlayerSettings[0] )
{
case '0':
{
DisablePlayerStats(id)
}
case '1':
{
EnablePlayerStats(id)
}
default:
{
if( g_iEnabledByDefault )
{
EnablePlayerStats(id)
}
else
{
DisablePlayerStats(id)
}
}
}
}
else
{
DisablePlayerStats(id)
}
}
public plugin_end()
{
nvault_close(g_iNvault)
}
public Event_HLTV_New_Round()
{
if( get_pcvar_num(g_pCvarInfoRank) )
{
playerbitDisplayStats = 0xFFFFFFFF // set everyone enabled
}
}
public Event_ResetHUD(id)
{
if( ShouldDisplayStatsOnNextResetHUDEvent(id) && ArePlayerStatsEnabled(id) )
{
DontDisplayStatsOnNextResetHUDEvent(id)
set_task(0.3, "DisplayStats", id)
}
}
public DisplayStats(id)
{
if( is_user_connected(id) )
{
new mOsef[8], iRank, iOldRank
iRank = get_user_stats(id, mOsef, mOsef)
iOldRank = g_iOldRank[id]
if( !iOldRank ) // First Spawn
{
iOldRank = iRank
}
g_iOldRank[id] = iRank
new iDiff = iOldRank - iRank
if(iDiff > 0)
{
client_print_color(id, id, "^4%L", id, "IR_GOOD", iDiff)
}
else if(iDiff < 0)
{
client_print_color(id, Red, "^3%L", id, "IR_BAD", iDiff)
}
client_print_color(id, Grey, "^3%L", id, "IR_RANK", iRank, get_statsnum())
}
}
public ClientCommand_InfoRank(id)
{
if( get_pcvar_num(g_pCvarInfoRank) )
{
new szSteamId[32]
get_user_authid(id, szSteamId, charsmax(szSteamId))
TogglePlayerStats(id)
if( ArePlayerStatsEnabled(id) )
{
nvault_set(g_iNvault, szSteamId, "1")
client_print_color(id, id, "^4%L", id, "IR_ENABLE")
}
else
{
nvault_set(g_iNvault, szSteamId, "0")
client_print_color(id, Red, "^3%L", id, "IR_DISABLE")
}
}
return PLUGIN_CONTINUE
}
[INC] CromChat - a better ColorChat!
Вместо #include <chatcolor> , трябва да е #include <cromchat> и след това всички client_print_color{id, Grey, трябва да ги направиш CC_SendMessage(id, и да ги оцветиш по твой вкус - &x01, &x03, &x04, &x05, &x06, &x07
-
LoShIaA
Извън линия - Потребител
- Мнения: 323
- Регистриран на: 20 Окт 2016, 14:44
- Местоположение: Стара Загора
- Се отблагодари: 120 пъти
- Получена благодарност: 9 пъти
[INC] CromChat - a better ColorChat!
Така съм го направил, но не мога да хвана параметрите. Така ми даваше грешка:
премахнах втория id и Red/Grey параметър:
Сега съобщенията си излизат, но нещо не мога да си ги сменям от ланг файла. Използвам !g, !t и т.н.
Като се използва библиотеката те трябва ли някъде да се описват в кода?
Код за потвърждение: Избери целия код
CC_SendMessage(id, id, "^4%L", id, "IR_GOOD", iDiff)
CC_SendMessage(id, Red, "^3%L", id, "IR_BAD", iDiff)
CC_SendMessage(id, Grey, "^3%L", id, "IR_RANK", iRank, get_statsnum())
CC_SendMessage(id, id, "^4%L", id, "IR_ENABLE")
CC_SendMessage(id, Red, "^3%L", id, "IR_DISABLE")
Код за потвърждение: Избери целия код
CC_SendMessage(id, "%L", id, "IR_GOOD", iDiff)
CC_SendMessage(id, "%L", id, "IR_BAD", iDiff)
CC_SendMessage(id, "%L", id, "IR_RANK", iRank, get_statsnum())
CC_SendMessage(id, "%L", id, "IR_ENABLE")
CC_SendMessage(id, "%L", id, "IR_DISABLE")
Като се използва библиотеката те трябва ли някъде да се описват в кода?
-
- Подобни теми
- Отговори
- Преглеждания
- Последно мнение
-
- 7 Отговори
- 2735 Преглеждания
-
Последно мнение от impossible
-
- 10 Отговори
- 5713 Преглеждания
-
Последно мнение от devilchy
-
- 5 Отговори
- 1971 Преглеждания
-
Последно мнение от OciXCrom
-
- 5 Отговори
- 2347 Преглеждания
-
Последно мнение от OciXCrom
Кой е на линия
Потребители разглеждащи този форум: 0 регистрирани и 11 госта