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

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

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

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

> Информационная доска

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

1. Во время создания новой темы аккуратно оформляйте её, не допускайте грамматических ошибок.
2. Описывая проблему старайтесь, как можно больше рассказать о ней, а так же о действиях с сервером после которых она возникла, по возможности подкрепите информацию логами.
3. Если вопрос касается проблемы в работе сервера, то обязательно прикрепляйте список плагинов (введите в консоли сервера: meta list и amxx plugins), настройки server.cfg, логи. Так же указывайте операционную систему, версию HLDS (введите к консоли сервера: version) и где хостится сервер.

Длинную информацию скрывайте под спойлер.

Непонятный баг

Статус пользователя r1nk0
сообщение 17.6.2015, 17:40
Сообщение #1


Стаж: 12 лет

Сообщений: 1417
Благодарностей: 705
Полезность: 349

Клиент со стима зашел на сервер в начале боя, у него показало в таблице сразу 3 фрага.
Убил 1 и умер стало 4-1.

как такое возможно?

из плагинов необычных каких то которые стоит steam bonus

Скрытый текст
Код:
#include <amxmodx>
#include <fun>
#include <cstrike>
#include <hamsandwich>

#pragma semicolon 1

#define PLUGIN "Steam Bonus"
#define VERSION "1.3e"
#define AUTHOR "Gudaus"
#define PREFIX "СЕРВЕР"

#define get_bit(%1,%2) (%1 & (1 << (%2 & 31)))
#define set_bit(%1,%2) (%1 |= (1 << (%2 & 31)))
#define reset_bit(%1,%2) (%1 &= ~(1 << (%2 & 31)))

new g_bIsSteam;

new round_number;

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR);
register_event("TextMsg", "eRestart", "a", "2&#Game_C", "2&#Game_w");
register_event("HLTV", "RoundStart", "a", "1=0", "2=0");
RegisterHam(Ham_Spawn, "player", "fw_CS_RoundRespawn_Post", true);
}

public eRestart()
round_number = 0;

public RoundStart()
round_number++;

public client_putinserver(id)
{

if(is_user_steam(id))
{
set_bit(g_bIsSteam, id);
}
else
reset_bit(g_bIsSteam, id);
}

public get_player_deagle(id)
{
const dropped_weapons = ( 1 << CSW_USP ) | ( 1 << CSW_GLOCK18 );
static iWeapons[ 32 ], iNum, i;
iNum = 0;
get_user_weapons( id, iWeapons, iNum );
for( i = 0; i < iNum; i++ )
{
if( ( 1 << iWeapons[ i ] ) & dropped_weapons )
{
switch( iWeapons[ i ])
{
case CSW_USP:
{
engclient_cmd(id, "drop", "weapon_usp");
give_item(id, "weapon_deagle");
cs_set_user_bpammo(id, CSW_DEAGLE, 35);
ChatColor(id, "^1[^4%s^1] Ваш бонус за ^4STEAM ^1- Desert Eagle", PREFIX);
}
case CSW_GLOCK18:
{
engclient_cmd(id, "drop", "weapon_glock18");
give_item(id, "weapon_deagle");
cs_set_user_bpammo(id, CSW_DEAGLE, 35);
ChatColor(id, "^1[^4%s^1] Ваш бонус за ^4STEAM ^1- Desert Eagle", PREFIX);
}
case CSW_DEAGLE:
{
cs_set_user_money(id, cs_get_user_money(id) + 1000);
ChatColor(id, "^1[^4%s^1] Ваш бонус за ^4STEAM ^1- 1000 ^4$", PREFIX);
}
}
}
}
}

public fw_CS_RoundRespawn_Post(id)
{
if(round_number>=3)
{
if( is_user_alive(id) && get_bit(g_bIsSteam, id))
{
new deaths = get_user_deaths(id);
new frags = get_user_frags(id);
if(deaths!=0)
{
new soot = frags/deaths;
if (soot<1)
{
switch(random(5))
{
case 0:
{
cs_set_user_money(id, cs_get_user_money(id) + 2000);
ChatColor(id, "^1[^4%s^1] Ваш бонус за ^4STEAM ^1- 2000 ^4$", PREFIX);
}
case 1:
{
give_item(id, "weapon_hegrenade");
give_item(id, "weapon_flashbang");
give_item(id, "weapon_flashbang");
give_item(id, "weapon_smokegrenade");
ChatColor(id, "^1[^4%s^1] Ваш бонус за ^4STEAM ^1- Все гранаты", PREFIX);
}
case 2:
{
cs_set_user_armor(id, 100, CsArmorType:2);
ChatColor(id, "^1[^4%s^1] Ваш бонус за ^4STEAM ^1- Броня и Шлем", PREFIX);
}
case 3:
{
get_player_deagle(id);
}
case 4:
{
cs_set_user_money(id, cs_get_user_money(id) + 1000 + frags*100);
ChatColor(id, "^1[^4%s^1] Ваш бонус за ^4STEAM ^1- %d ^4$", PREFIX, 1000 + frags*100);
}
}
}
else if (soot == 1)
{
switch(random(5))
{
case 0:
{
cs_set_user_money(id, cs_get_user_money(id) + 1500);
ChatColor(id, "^1[^4%s^1] Ваш бонус за ^4STEAM ^1- 1500 ^4$", PREFIX);
}
case 1:
{
give_item(id, "weapon_hegrenade");
give_item(id, "weapon_flashbang");
give_item(id, "weapon_flashbang");
ChatColor(id, "^1[^4%s^1] Ваш бонус за ^4STEAM ^1- HE+Flash гранаты", PREFIX);
}
case 2:
{
cs_set_user_armor(id, 100, CsArmorType:2);
ChatColor(id, "^1[^4%s^1] Ваш бонус за ^4STEAM ^1- Броня и Шлем", PREFIX);
}
case 3:
{
get_player_deagle(id);
}
case 4:
{
give_item(id, "weapon_flashbang");
give_item(id, "weapon_flashbang");
give_item(id, "weapon_smokegrenade");
ChatColor(id, "^1[^4%s^1] Ваш бонус за ^4STEAM ^1- Smoke+Flash гранаты", PREFIX);
}
}
}
else if (soot == 2)
{
switch(random(6))
{
case 0:
{
cs_set_user_money(id, cs_get_user_money(id) + 1000);
ChatColor(id, "^1[^4%s^1] Ваш бонус за ^4STEAM ^1- 1000 ^4$", PREFIX);
}
case 1:
{
give_item(id, "weapon_hegrenade");
give_item(id, "weapon_flashbang");
ChatColor(id, "^1[^4%s^1] Ваш бонус за ^4STEAM ^1- HE+Flash граната", PREFIX);
}
case 2:
{
cs_set_user_armor(id, 100, CsArmorType:2);
ChatColor(id, "^1[^4%s^1] Ваш бонус за ^4STEAM ^1- Броня и Шлем", PREFIX);
}
case 3:
{
get_player_deagle(id);
}
case 4:
{
cs_set_user_money(id, cs_get_user_money(id) + (frags-deaths)*100);
ChatColor(id, "^1[^4%s^1] Ваш бонус за ^4STEAM ^1- %d ^4$", PREFIX, (frags-deaths)*100);
}
default: return;
}
}
else if (soot == 3)
{
switch(random(7))
{
case 0:
{
cs_set_user_money(id, cs_get_user_money(id) + 1000);
ChatColor(id, "^1[^4%s^1] Ваш бонус за ^4STEAM ^1- 1000 ^4$", PREFIX);
}
case 1:
{
give_item(id, "weapon_hegrenade");
give_item(id, "weapon_flashbang");
cs_set_user_money(id, cs_get_user_money(id) + 500);
ChatColor(id, "^1[^4%s^1] Ваш бонус за ^4STEAM ^1- Flash + 500 ^4$", PREFIX);
}
case 2:
{
cs_set_user_armor(id, 100, CsArmorType:2);
ChatColor(id, "^1[^4%s^1] Ваш бонус за ^4STEAM ^1- Броня и Шлем", PREFIX);
}
case 3:
{
get_player_deagle(id);
}
case 4:
{
cs_set_user_money(id, cs_get_user_money(id) + (frags-deaths)*70);
ChatColor(id, "^1[^4%s^1] Ваш бонус за ^4STEAM ^1- %d ^4$", PREFIX, (frags-deaths)*70);
}
default: return;
}
}
else
{
switch(random(8))
{
case 0:
{
cs_set_user_money(id, cs_get_user_money(id) + 1000);
ChatColor(id, "^1[^4%s^1] Ваш бонус за ^4STEAM ^1- 1000 ^4$", PREFIX);
}
case 1:
{
give_item(id, "weapon_hegrenade");
ChatColor(id, "^1[^4%s^1] Ваш бонус за ^4STEAM ^1- HE граната", PREFIX);

}
case 2:
{
cs_set_user_armor(id, 100, CsArmorType:2);
ChatColor(id, "^1[^4%s^1] Ваш бонус за ^4STEAM ^1- Броня и Шлем", PREFIX);

}
case 3:
{
get_player_deagle(id);
}
case 4:
{
give_item(id, "weapon_flashbang");
give_item(id, "weapon_flashbang");
ChatColor(id, "^1[^4%s^1] Ваш бонус за ^4STEAM ^1- Flash гранаты", PREFIX);

}
default: return;
}
}
}
else if (frags!=0)
{
cs_set_user_money(id, cs_get_user_money(id) + frags*200);
ChatColor(id, "^1[^4%s^1] Ваш бонус за ^4STEAM ^1- %d ^4$", PREFIX, frags*200);
}

}
}
}


stock bool:is_user_steam(id)
{
static dp_pointer;

if(dp_pointer || (dp_pointer = get_cvar_pointer("dp_r_id_provider")))
{
server_cmd("dp_clientinfo %d", id);
server_exec();
return (get_pcvar_num(dp_pointer) == 2) ? true : false;
}

new szAuthid[34];
get_user_authid(id, szAuthid, charsmax(szAuthid));

return (containi(szAuthid, "LAN") < 0);
}

stock ChatColor(const id, const szMessage[], any:...)
{
static pnum, players[32], szMsg[190], IdMsg;
vformat(szMsg, charsmax(szMsg), szMessage, 3);

if(!IdMsg) IdMsg = get_user_msgid("SayText");

if(id)
{
if(!is_user_connected(id)) return 0;
players[0] = id;
pnum = 1;
}
else get_players(players, pnum, "ch");

for(new i; i < pnum; i++)
{
message_begin(MSG_ONE, IdMsg, .player = players[i]);
write_byte(players[i]);
write_string(szMsg);
message_end();
}
return 1;
}


и kills_counter

Скрытый текст
Код:
#include <amxmodx>
#include <hamsandwich>

new sprites[][] = {
"",
"number_1",
"number_2",
"number_3",
"number_4",
"number_5",
"number_6",
"number_7",
"number_8",
"number_9"
}

new g_maxplayers,g_statusicon

new cvColor,cvBlinkTime,cvOverCount

new idid[33]
new clor[3]

new Float:blinkTime
new overCountSpr[40]

#define RESETBLINK_TASKID 45454

public plugin_init(){
register_plugin("Kills Counter","0.3","serfreeman1337")

g_maxplayers = get_maxplayers()
g_statusicon = get_user_msgid("StatusIcon")

cvColor = register_cvar("ks_color","0 255 0")
cvBlinkTime = register_cvar("ks_blink_time","2.0")
cvOverCount = register_cvar("ks_over_count_spr","dmg_rad")

RegisterHam(Ham_Killed,"player","fw_PlayerKilled",1)
RegisterHam(Ham_Spawn,"player","fw_PlayerSpawn",1)
}

public plugin_cfg(){
new data[20],raw[3][5]
get_pcvar_string(cvColor,data,19)

parse(data,raw[0],4,raw[1],4,raw[2],4)

clor[0] = str_to_num(raw[0])
clor[1] = str_to_num(raw[1])
clor[2] = str_to_num(raw[2])

blinkTime = get_pcvar_float(cvBlinkTime)
get_pcvar_string(cvOverCount,overCountSpr,39)
}

public fw_PlayerSpawn(id)
icon(id,0)

public fw_PlayerKilled(victim,killer){
if(0 < killer <= g_maxplayers){
if(ExecuteHam(Ham_IsAlive,killer))
icon(killer,1)
}

icon(victim,0)
}

public icon(id,style){
if(!style){
if(!idid[id])
return PLUGIN_CONTINUE

message_begin(MSG_ONE,g_statusicon,_,id)
write_byte(0)
write_string(idid[id] < 10 ? sprites[idid[id]] : overCountSpr)
message_end()

idid[id] = 0

return PLUGIN_CONTINUE
}

if(0 < idid[id] < 10){
message_begin(MSG_ONE,g_statusicon,_,id)
write_byte(0)
write_string(sprites[idid[id]])
message_end()
}

idid[id] ++

message_begin(MSG_ONE,g_statusicon,_,id)
write_byte(blinkTime > 0.0 ? 2 : 1)
write_string(idid[id] < 10 ? sprites[idid[id]] : overCountSpr)
write_byte(clor[0])
write_byte(clor[1])
write_byte(clor[2])
message_end()

if(blinkTime > 0.0){
remove_task(RESETBLINK_TASKID + id)
set_task(2.0,"resetblink",RESETBLINK_TASKID + id)
}

return PLUGIN_CONTINUE
}

public resetblink(tId){
new id = tId - RESETBLINK_TASKID

if(!is_user_connected(id))
return

message_begin(MSG_ONE,g_statusicon,_,id)
write_byte(1)
write_string(idid[id] < 10 ? sprites[idid[id]] : overCountSpr)
write_byte(clor[0])
write_byte(clor[1])
write_byte(clor[2])
message_end()
}


ну может быть еще

StatsX GUI 1.8 + Skill



Создание и редактирование карт ($) - vk.com/id476857873
Настройка и техническое обслуживание ваших игровых серверов - vk.com/id476857873
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя Bloo
сообщение 17.6.2015, 18:04
Сообщение #2


Стаж: 12 лет

Сообщений: 15547
Благодарностей: 6971
Полезность: 1206

r1nk0, логи?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя r1nk0
сообщение 17.6.2015, 18:27
Сообщение #3


Стаж: 12 лет

Сообщений: 1417
Благодарностей: 705
Полезность: 349

Цитата(Bloo @ 17.6.2015, 19:04) *
r1nk0, логи?


нет их :D отключены


Создание и редактирование карт ($) - vk.com/id476857873
Настройка и техническое обслуживание ваших игровых серверов - vk.com/id476857873
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Bloo
сообщение 17.6.2015, 19:20
Сообщение #4


Стаж: 12 лет

Сообщений: 15547
Благодарностей: 6971
Полезность: 1206

r1nk0, ну тогда только гадать
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя igor_ok
сообщение 17.6.2015, 19:48
Сообщение #5
Стаж: 15 лет
Город: Донецк

Сообщений: 267
Благодарностей: 89
Полезность: 239

Скрытый текст


P.S. Если я правильно понял суть бага - не обнулили/лась переменная, другого варианта я не вижу)

Отредактировал: igor_ok, - 17.6.2015, 19:50


PPC-ZONE
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
XyLiGaN
сообщение 17.6.2015, 19:50
Сообщение #6
Стаж: 13 лет
Город: Югорск

Сообщений: 11668
Благодарностей: 6450
Полезность: 1052

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

r1nk0, rs какой стоит?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя r1nk0
сообщение 17.6.2015, 20:02
Сообщение #7


Стаж: 12 лет

Сообщений: 1417
Благодарностей: 705
Полезность: 349

Цитата(XyLiGaN @ 17.6.2015, 20:50) *
r1nk0, rs какой стоит?



от Esecman

Скрытый текст
Код:
#include <amxmodx>
#include <fun>
#include <cstrike>

#define PLUGIN "resetscore"
#define VERSION "2.5.7"
#define AUTHOR "Esecman"

new g_Enable, g_ResetMoney, iMoneyToReset
new bool:hasReset[33]

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR) // регистрируем плагин
register_dictionary("resetscore.txt") // подключение ланг файла
register_clcmd("say /rs", "resetscore") // команда в чате
register_clcmd("say_team /rs", "resetscore") // команда в чате
register_clcmd("say resetscore", "resetscore") // команда в чате
register_clcmd("say_team resetscore", "resetscore") // команда в чате

g_Enable = register_cvar("resetscore_enable", "1") // Включить/Отключить 1/0 плагин "ResetScore"
g_ResetMoney = register_cvar("resetmoney_enable", "0") // Cash за reset score (Включить/Отключить 1/0)
iMoneyToReset = register_cvar("money_reset", "1000") // если включена функция g_ResetMoney (Отнимать 1000 $)
}

public resetscore(id)
{
if(!is_user_connected(id)) return PLUGIN_HANDLED

new deaths = get_user_deaths(id)
new money = cs_get_user_money(id)

if(get_pcvar_num(g_Enable) == 1)
{
if(deaths == 0)
{
client_printcolor(id, "%L", LANG_SERVER, "NO_HAVE_DEATHS")

return PLUGIN_HANDLED
}

if(get_pcvar_num(g_ResetMoney))
{

if(money > get_pcvar_num(iMoneyToReset))
{
cs_set_user_money(id, money - get_pcvar_num(iMoneyToReset))

hasReset[id] = true

}

else
{
client_printcolor(id, "%L", LANG_SERVER, "NO_MONEY_TO_RESET")
client_printcolor(id, "%L", LANG_SERVER, "MSG_INF_NO_MONEY", money)
client_printcolor(id, "%L", LANG_SERVER, "MSG_INF_NO_MONEY2", get_pcvar_num(iMoneyToReset))

return PLUGIN_HANDLED
}
}

set_user_frags(id, 0)
cs_set_user_deaths(id, 0)

client_printcolor(id, "%L", LANG_SERVER, "RESETSCORE")

if(hasReset[id])
{
client_printcolor(id, "%L", LANG_SERVER, "MINUS_MONEY", get_pcvar_num(iMoneyToReset))

hasReset[id] = false
}

return PLUGIN_HANDLED
}

else
{
client_printcolor(id, "%L", LANG_SERVER, "RESETSCORE_NOT_ENABLED")

return PLUGIN_HANDLED
}

return PLUGIN_CONTINUE
}

stock client_printcolor( const id, const input[], any:... )
{
new count = 1, players[ 32 ]
static msg[ 191 ]
vformat( msg, 190, input, 3 )

replace_all( msg, 190, "!g", "^4" )
replace_all( msg, 190, "!n", "^1" )
replace_all( msg, 190, "!t", "^3" )

if( id ) players[ 0 ] = id; else get_players( players, count, "ch" )
{
for( new i = 0; i < count; i ++ )
{
if( is_user_connected( players[ i ] ) )
{
message_begin( MSG_ONE_UNRELIABLE, get_user_msgid( "SayText" ), _, players[ i ] )
write_byte( players[ i ] )
write_string( msg )
message_end()
}
}
}
}


Цитата(igor_ok @ 17.6.2015, 20:48) *
Скрытый текст


P.S. Если я правильно понял суть бага - не обнулили/лась переменная, другого варианта я не вижу)


ну игрок за день 1 раз зашел.


Создание и редактирование карт ($) - vk.com/id476857873
Настройка и техническое обслуживание ваших игровых серверов - vk.com/id476857873
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
XyLiGaN
сообщение 17.6.2015, 20:03
Сообщение #8
Стаж: 13 лет
Город: Югорск

Сообщений: 11668
Благодарностей: 6450
Полезность: 1052

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

r1nk0, Сразу, почему то вспомнилось lol.gif
Код
if(!is_user_connected(id))
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя igor_ok
сообщение 17.6.2015, 20:05
Сообщение #9
Стаж: 15 лет
Город: Донецк

Сообщений: 267
Благодарностей: 89
Полезность: 239

Цитата
ну игрок за день 1 раз зашел.


Не в этом смысле)

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

Вариант с /rs тоже правдоподобен.

Отредактировал: igor_ok, - 17.6.2015, 20:06


PPC-ZONE
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя r1nk0
сообщение 17.6.2015, 20:07
Сообщение #10


Стаж: 12 лет

Сообщений: 1417
Благодарностей: 705
Полезность: 349

дак в чем трабла то? в /rs ?


Создание и редактирование карт ($) - vk.com/id476857873
Настройка и техническое обслуживание ваших игровых серверов - vk.com/id476857873
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
XyLiGaN
сообщение 17.6.2015, 20:09
Сообщение #11
Стаж: 13 лет
Город: Югорск

Сообщений: 11668
Благодарностей: 6450
Полезность: 1052

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

r1nk0, А вообще, вот - resetscore (Пост #795312) подредактируй под себя, добавь то, что тебе нужно и всё.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: