Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

> Правила форума

Этот раздел, как вы могли заметить по названию, предназначен для решения вопросов по поводу уже существующих модов и плагинов.
Пожалуйста, если у вас проблема с написанием плагина, не путайте этот раздел с разделом по скриптингу.
Для поиска плагинов и модов существует соответствующий раздел.

Название темы должно соответствовать содержанию. Темы с названием типа "Помогите", "Вопрос", "парни подскажите..." - будут удалены.
Все темы, не относящиеся к "Вопросам по модам и плагинам", будут удалены или перемещены в соответствующий раздел.

Правила оформления темы:
1. Помимо заголовка не забудьте верно сформулировать свой вопрос.
2. Выложите исходник (в тег кода + ) или ссылку на плагин который вызывает у вас вопросы.
3. Выложите лог с ошибками (если имеется) под спойлер

updatehint_new

Kasper55
сообщение 11.5.2014, 12:20
Сообщение #1
Стаж: 16 лет

Сообщений: 1145
Благодарности: выкл.

Народ обьясните как он работает , вот я зашол на сервак с версией 4557 мне не чего не показывается

может что то в dproto изменить нужно ?



плагин

Код:
/*  AMXModX Script
*
* Title: Update Client Hint
* Author: Lev/Crock
*
* Changelog:
*
* 23.03.2010
* - Added HLTV recognition
*
* 04.08.2010
* - Added new emulators support (AVSMP, SC2009)
*
* 19.10.2010
* - Fixed AVSMP and SteamClient2009 support
*
*/

#pragma semicolon 1
#pragma ctrlchar '\'

#include <amxmodx>
#include <amxmisc>
#include <amxconst>
#include <fun>
#include <regex>

#define DP_AUTH_NONE 0 // "N/A" - slot is free
#define DP_AUTH_DPROTO 1 // dproto
#define DP_AUTH_STEAM 2 // Native Steam
#define DP_AUTH_STEAMEMU 3 // SteamEmu
#define DP_AUTH_REVEMU 4 // RevEmu
#define DP_AUTH_OLDREVEMU 5 // Old RevEmu
#define DP_AUTH_HLTV 6 // HLTV
#define DP_AUTH_SC2009 7
#define DP_AUTH_AVSMP 8

new const PLUGIN[] = "UpdateHint";
new const VERSION[] = "1.2";
new const AUTHOR[] = "Lev, Racoon";

const BASE_TASK_ID_HINT = 3677; // random number
const BASE_TASK_ID_KICK = 6724; // random number
const MIN_SHOW_INTERVAL = 25; // minimum constrain for hint show interval
const MAX_URL_LENGTH = 70; // max length of the URL

new bool:playerPutOrAuth[33]; // Player was put in server or auth.

new pcvar_uh_url;
new pcvar_uh_interval;
new pcvar_uh_kickinterval;
new pcvar_dp_r_protocol;
new pcvar_dp_r_id_provider;

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR);
register_cvar("updatehint", VERSION, FCVAR_SERVER | FCVAR_SPONLY | FCVAR_UNLOGGED);
register_clcmd("say /contra", "update");
register_clcmd("say_team /contra", "update");
register_clcmd("say_team contra", "update");
register_clcmd("say contra", "update");

register_dictionary("updatehint.txt");

pcvar_uh_url = register_cvar("uh_url", "тут моя ссылка"); // URL where player can goto to download new client.
pcvar_uh_interval = register_cvar("uh_interval", "25.0"); // Interval between hint shows.
pcvar_uh_kickinterval = register_cvar("uh_kickinterval", "0"); // Interval bwfoew kick client.
pcvar_dp_r_protocol = get_cvar_pointer ("dp_r_protocol"); // Dproto interface.
pcvar_dp_r_id_provider = get_cvar_pointer ("dp_r_id_provider"); // Dproto interface.
}

public client_connect(id)
{
playerPutOrAuth[id] = false;
}

public client_authorized(id)
{
if (playerPutOrAuth[id])
{
return check_client_type(id);
}
playerPutOrAuth[id] = true;
return PLUGIN_CONTINUE;
}

public client_putinserver(id)
{
if (playerPutOrAuth[id])
{
return check_client_type(id);
}
playerPutOrAuth[id] = true;
return PLUGIN_CONTINUE;
}

stock NeedShowUpdateMsg(proto, authprov) {
if (authprov == DP_AUTH_HLTV)
return false;

if (proto < 48)
return true;

if (authprov == DP_AUTH_STEAM || authprov == DP_AUTH_REVEMU || authprov == DP_AUTH_SC2009 || authprov == DP_AUTH_AVSMP)
return false;

return true;
}

check_client_type(id)
{
if (!pcvar_dp_r_protocol || !pcvar_dp_r_id_provider)
return PLUGIN_CONTINUE;

server_cmd("dp_clientinfo %d", id);
server_exec();

new proto = get_pcvar_num(pcvar_dp_r_protocol);
new authprov = get_pcvar_num(pcvar_dp_r_id_provider);

switch(authprov)
{
case DP_AUTH_DPROTO:
console_print(0, "Protocol: %d, authprovider: %s", proto, "DPROTO");
case DP_AUTH_STEAM:
console_print(0, "Protocol: %d, authprovider: %s", proto, "STEAM");
case DP_AUTH_REVEMU:
console_print(0, "Protocol: %d, authprovider: %s", proto, "REVEMU");
case DP_AUTH_STEAMEMU:
console_print(0, "Protocol: %d, authprovider: %s", proto, "STEAMEMU");
case DP_AUTH_OLDREVEMU:
console_print(0, "Protocol: %d, authprovider: %s", proto, "OLDREVEMU");
case DP_AUTH_HLTV:
console_print(0, "Protocol: %d, authprovider: %s", proto, "HLTV");
case DP_AUTH_SC2009:
console_print(0, "Protocol: %d, authprovider: %s", proto, "SteamClient2009/revEmu");
case DP_AUTH_AVSMP:
console_print(0, "Protocol: %d, authprovider: %s", proto, "AVSMP");

}

if (NeedShowUpdateMsg(proto, authprov))
{
set_task(get_uh_interval(), "show_update_hint", BASE_TASK_ID_HINT + id, _, _, "b");
new kick_interval = get_pcvar_num(pcvar_uh_kickinterval);
if (kick_interval > 0)
set_task(float(kick_interval), "kick_client", BASE_TASK_ID_KICK + id);
}

return PLUGIN_CONTINUE;
}

public client_disconnect(id)
{
remove_task(BASE_TASK_ID_HINT + id);
remove_task(BASE_TASK_ID_KICK + id);
}

Float:get_uh_interval()
{
new interval = get_pcvar_num(pcvar_uh_interval);
// Check to be no less then minimum value
return float((interval < MIN_SHOW_INTERVAL ) ? MIN_SHOW_INTERVAL : interval);
}

public show_update_hint(id)
{
id -= BASE_TASK_ID_HINT;
if (0 > id || id > 31)
return;
set_hudmessage(255, 100, 100, -1.0, 0.35, 1, 3.0, 20.0, 0.1, 0.1, -1);
show_hudmessage(id, "%L", id, "HUDHINT");
client_print(id, print_chat, "%L", id, "CHATHINT");
}

public kick_client(id)
{
id -= BASE_TASK_ID_KICK;
if (0 > id || id > 31)
return;
client_print(id, print_chat, "%L", id, "CONSOLE_MSG");
new userid = get_user_userid(id);
server_cmd("kick #%d \"%L\"", userid, id, "KICKHINT");
}

public update(id)
{
new url[MAX_URL_LENGTH];
get_pcvar_string(pcvar_uh_url, url, charsmax(url));
show_motd(id, url, "O6HoBJIeHue");

return 1;
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя ex3m777
сообщение 11.5.2014, 12:22
Сообщение #2


Стаж: 13 лет
Город: Москва

Сообщений: 2037
Благодарностей: 1135
Полезность: 968

Меценат Меценат

а чего ты добиваешься? такой плагин нужен для перевода на 48 протокол


Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
trollface
сообщение 11.5.2014, 12:25
Сообщение #3
Стаж: 12 лет

Сообщений: 1970
Благодарностей: 2423
Полезность: 0

Код:
new const AUTHOR[]  = "Lev, Racoon";

Ракун то тут че делает? derisive.gif
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Kasper55
сообщение 11.5.2014, 12:25
Сообщение #4
Стаж: 16 лет

Сообщений: 1145
Благодарности: выкл.

Цитата(grishka444 @ 11.5.2014, 12:22) *
а чего ты добиваешься? такой плагин нужен для перевода на 48 протокол

моя цель избавить людей от очень старого клиента
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Safety1st
сообщение 11.5.2014, 12:28
Сообщение #5
Стаж: 14 лет
Город: Moscow

Сообщений: 7228
Благодарностей: 8071
Полезность: 196

Kasper55, 4554 не считается старым клиентом.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Kasper55
сообщение 11.5.2014, 12:31
Сообщение #6
Стаж: 16 лет

Сообщений: 1145
Благодарности: выкл.

Цитата(Developer @ 11.5.2014, 12:28) *
Kasper55, 4554 не считается старым клиентом.

а как можно сделать что бы плагин считал его старым до версии 6027 ?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ex3m777
сообщение 11.5.2014, 12:39
Сообщение #7


Стаж: 13 лет
Город: Москва

Сообщений: 2037
Благодарностей: 1135
Полезность: 968

Меценат Меценат

Цитата(Kasper55 @ 11.5.2014, 14:25) *
моя цель избавить людей от очень старого клиента

старыми считаются те котороые не имеют steamID, т.е. steam_id_lan
лучше будет выставить такие значения в dproto.cfg

dproto.cfg
# ========================================================
# DPROTO CONFIGURATION
# ========================================================

#
# General rule for modifying this file:
# DONT CHANGE ANYTHING IF YOU DONT KNOW WHAT IT MEANS!
#


# ========================================================
# AUTHID MANAGEMENT
# ========================================================

# ClientID types (for cid_* options)
# 1: Real (or generated by HW) steam (STEAM_xx:xx:xx)
# 2: Real (or generated by HW) valve (VALVE_xx:xx:xx)
# 3: STEAM_ by IP
# 4: VALVE_ by IP
# 5: Deprecated - client will be rejected
# 6: reserved for future use
# 7: HLTV
# 8: STEAM_ID_LAN
# 9: STEAM_ID_PENDING
# 10: VALVE_ID_LAN
# 11: VALVE_ID_PENDING
# 12: STEAM_666:88:666

# Use these options to set authid's for clients

# for HLTV (default is HLTV [7])
cid_HLTV = 5

# for p.47 clients that do not support unique id generation (default is STEAM_ID_LAN [8])
cid_NoSteam47 = 5

# for p.48 clients that do not support unique id generation (default is VALVE_ID_LAN [10])
cid_NoSteam48 = 5

# For Legit Steam clients (default is real STEAM_xx:xx:xx [1])
cid_Steam = 1

# Client recognized as pending when they sucessfully authorized, but did not get steam id
# REMARK: Actually, it got steamid, but it is useless (STEAM_0:0:0 for example)
# default is STEAM_ID_PENDING [9]
cid_SteamPending = 5

# For players having revEmu ( >= 9.74) on client-side:
# default is real STEAM_xx:xx:xx [1]
cid_RevEmu = 1

# For players having RevEmu 2013 on client-side:
# default is real STEAM_xx:xx:xx [1]
cid_RevEmu2013 = 1

# For players having SteamClient 2009 / revEmu > 9.82 on client-side:
# default is real STEAM_xx:xx:xx [1]
cid_SC2009 = 1

# For players having old revEmu on client-side:
# default is real STEAM_xx:xx:xx [1]
cid_OldRevEmu = 1

# For players having hCupa's SteamEmu on client-side:
# default is real STEAM_xx:xx:xx [1]
cid_SteamEmu = 1

# For players having AVSMP (Cracked Steam) on client-side:
# default is real STEAM_xx:xx:xx [1]
cid_AVSMP = 5

# For SETTI ServerScanner
# default is STEAM_xx:xx:xx generated by IP [3]
cid_Setti = 3

# For SXEI Clients
# default is real STEAM_xx:xx:xx [1]
cid_SXEI = 1

# EnableSXEIdGeneration (0 / 1)
# Turns on steamid generation based on info sent by sXeI client
# Enable this only if you have sXeI server installed!
EnableSXEIdGeneration = 0

# SC2009_RevCompatMode (0 / 1)
# Enable fix to make steamids generated for SC2009 compatible with revEmu
SC2009_RevCompatMode = 1

# SteamEmuCompatMode (0 / 1)
# An analog for eSTEAMATiON's EnforceSteamEmuCompatIDMode option.
# Affects only Old RevEmu and SteamEmu emulators.
SteamEmuCompatMode = 1

# OldEstCompatMode (0 / 1)
# Enables/Disables fix for steamids generated by eST in 0.3.1 version.
# Set this to 1 if you want to make steamids generated by eST as in < 0.3.0 versions.
OldEstCompatMode = 0

# SteamIdHashSalt (string)
# Salt string for SteamIDs hashing. Irreversibly changes SteamIDs. Applies only to SteamIDs generated by emulators.
# Should be more than 16 chars length. If string is empty, hashing is not applied.
SteamIdHashSalt = СЮДА_МОЖНО_ВПИСАТЬ_ВСЯКИЕ БУКВЫ_ЧТОБЫ НЕ МОГУ ПОДДЕЛАТЬ SteamID а если нет, то удали это

# IPGen_Prefix1 (int)
# STEAM_a:b:c
# first prefix (a) for authids generated by IP
IPGen_Prefix1 = 0

# IPGen_Prefix2 (int)
# STEAM_a:b:c
# second prefix (b) for authids generated by IP
IPGen_Prefix2 = 4

# Native_Prefix1 (int)
# STEAM_a:b:c
# first prefix (a) for authids generated by native auth method (Steam)
Native_Prefix1 = 0;

# RevEmu_Prefix1 (int)
# STEAM_a:b:c
# first prefix (a) for authids generated by Steamclient 2009
SC2009_Prefix1 = 0;

# RevEmu_Prefix1 (int)
# STEAM_a:b:c
# first prefix (a) for authids generated by RevEmu
RevEmu_Prefix1 = 0;

# RevEmu2013_Prefix1 (int)
# STEAM_a:b:c
# first prefix (a) for authids generated by RevEmu2013
RevEmu2013_Prefix1 = 0;

# OldRevEmu_Prefix1 (int)
# STEAM_a:b:c
# first prefix (a) for authids generated by old RevEmu
OldRevEmu_Prefix1 = 0;

# SteamEmu_Prefix1 (int)
# STEAM_a:b:c
# first prefix (a) for authids generated by SteamEmu
SteamEmu_Prefix1 = 0;

# SteamEmu_Prefix1 (int)
# STEAM_a:b:c
# first prefix (a) for authids assigned for AVSMP Clients (Cracked steam)
AVSMP_Prefix1 = 0;

# Setti_Prefix1 (int)
# STEAM_a:b:c
# first prefix (a) for authids assigned for Setti server scanner
Setti_Prefix1 = 0;

# SXEI_Prefix1 (int)
# STEAM_a:b:c
# first prefix (a) for authids assigned for sXeI clients
SXEI_Prefix1 = 0;


# Note that banid will use steamid WITHOUT any prefixes!


# ========================================================
# ATTACKS SUPRESSION
# ========================================================

# FakePlayers_ConnectInitiationCheck (seconds)
# Sets the time, in seconds, in which client should initiate
# game session (in other words, send the "new" command) after it has
# been connected. If client did not initiated game session, it will be marked as
# fake and kicked.
# Default is 6 seconds.
# Use 0 to disable this check.
FakePlayers_ConnectInitiationCheck = 6

# FakePlayers_ClientValidationCheck (seconds)
# Sets the time, in seconds, in which client should answer to random unique command
# sent by the server. If client did not answered for this command, it will be marked as
# fake and kicked.
# Default is 8 seconds.
# Use 0 to disable this check.
FakePlayers_ClientValidationCheck = 8

# FakePlayers_AntiReconnect (0/1)
# Enables detection of fakeplayers that reconnects quickly (every < 10 seconds)
# before fake players checks have completed.
# This check will work only if FakePlayers_ClientValidationCheck and
# FakePlayers_ConnectInitiationCheck are enabled.
# Default is 1 (ON).
FakePlayers_AntiReconnect = 1

# FakePlayers_CommandsOrderCheck (0/1)
# Enable commands order checking on the start of initiated connection.
# Default is 1 (ON).
FakePlayers_CommandsOrderCheck = 1

# FakePlayers_BanTime (minutes)
# Dproto will ban IP spamming fakeplayers for time (in minutes) specified in this variable
# Default is 120 minutes.
# Use 0 for permanent ban.
# Use negative vaules to disable ban (fake players will only be kicked).
FakePlayers_BanTime = -1

# Exploits_CheckDownloads (0/1)
# Enable checking of requested download files against precached resources.
# Default is 1 (ON).
Exploits_CheckDownloads = 1

# Exploits_DisableUploads (0/1)
# Disable file uploads (not customizations) to the server.
# Default is 1 (ON).
Exploits_DisableUploads = 1


# ========================================================
# OTHER STUFF
# ========================================================

# LoggingMode:
# 0 = None
# 1 = Console
# 2 = Log Files
# 3 = Both
LoggingMode = 2

# ThreatsLoggingMode
# Enable logging of threats details.
# Default is 0 (OFF).
ThreatsLoggingMode = 0

# DisableNativeAuth (0/1)
# Disables valve/steam auth system.
# For p.47 Based: Server will not connect to auth servers.
# For All: Server will not call authorization functions.
# This is a fix for startup freeze for old (p.47) servers.
DisableNativeAuth = 0

# ServerInfoAnswerType (0/1/2)
# Sets server answer type for query requests
# 0 = New style (Source Engine)
# 1 = Old Style (Fix favorites list for p.47 clients)
# 2 = Hybrid mode - Server is visible anywhere, but there are 3 packets generated for every serverinfo request
ServerInfoAnswerType = 0

# Game_Name (string)
# Sets game name displayed for clients
# If Game_Name is empty, native game name will be used
Game_Name =

# Enables fix for proper player id displaying on HLStats server monitoring
# Enable this only if you have HLStats
HLStatsPlayerIdFix = 0

# ExportVersion (0 / 1)
# Enables/Disables exporting of dp_version cvar
# 1 = dp_version cvar will be exported to server rules. It will be visible in server monitoring tools (like HLSW)
# 0 = dp_version cvar will not be exported to server rules.
ExportVersion = 1

# HLTVExcept_IP (ip addr)
# HLTV from this IP will be able to join the server even if cid_HLTV is set to 5 (deprecated)
HLTVExcept_IP = 127.0.0.1


Цитата(Kasper55 @ 11.5.2014, 14:31) *
а как можно сделать что бы плагин считал его старым до версии 6027 ?

где-то уже писалось, что дпрото не выделяет игроков по версии билда кс, а только по эмулятору

и вообще, почему появилась такая острая нужда перевести всех на 6027? потому что они steam не слышут :D ?? так для этого есть vtc


Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Kasper55
сообщение 11.5.2014, 12:40
Сообщение #8
Стаж: 16 лет

Сообщений: 1145
Благодарности: выкл.

а можно сделать плагин через офрей такой плагин?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: