Проблема с плагином "Buy Respawn"

Статус
В этой теме нельзя размещать новые ответы.
Сообщения
46
Реакции
2
Помог
1 раз(а)
Ошибка
if(uses == respawns[id])
{
client_print_color(0,print_team_default, "^4[RESPAWN] ^1Вы купили максимум возрождений за этот раунд!");
return PLUGIN_HANDLED;
}
ОС
Linux
Amx Mod X
AMX Mod X 1.9.0.5294 (http://www.amxmodx.org)
Authors:
David "BAILOPAN" Anderson, Pavol "PM OnoTo" Marko
Felix "SniperBeamer" Geyer, Jonny "Got His Gun" Bergstrom
Lukasz "SidLuke" Wlasinski, Christian "Basic-Master" Hammacher
Borja "faluco" Ferrer, Scott "DS" Ehlert
Compiled: Dec 3 2021 15:54:56
Built from: https://github.com/alliedmodders/amxmodx/commit/363871a
Build ID: 5294:363871a
Core mode: JIT+ASM32
Билд
Protocol version 48
Exe version 1.1.2.7/Stdio (cstrike)
ReHLDS version: 3.12.0.780-dev
Build date: 16:20:56 Sep 19 2022 (3082)
Build from: https://github.com/dreamstalker/rehlds/commit/d6ebe82
ReGamedll
ReGameDLL version: 5.21.0.556-dev
Build date: 08:43:58 Jul 22 2022
Build from: https://github.com/s1lentq/ReGameDLL_CS/commit/1081301
Версия Metamod
Metamod v1.21p37 2013/05/30 (5:13)
by Will Day
http://www.metamod.org/
Patch: Metamod-P (mm-p) v37
by Jussi Kivilinna
http://metamod-p.sourceforge.net/
compiled: May 30 2013, 11:41:16 EET (optimized)
Список метамодулей
Currently loaded plugins:
description stat pend file vers src load unlod
[ 1] Reunion RUN - reunion_mm_i386. v0.1.92d ini Start Never
[ 2] AMX Mod X RUN - amxmodx_mm_i386. v1.9.0.5 ini Start ANY
[ 3] Revoice RUN - revoice_mm_i386. v0.1.26 ini Start Never
[ 4] ReAuthCheck RUN - reauthcheck.so v0.1.6 ini Start Never
[ 5] WHBlocker RUN - whblocker_mm_i38 v1.5.697 ini Chlvl ANY
[ 6] HitBox Fix RUN - hitbox_fix_mm_i3 v1.1.2 ini Start ANY
[ 7] Rechecker RUN - rechecker_mm_i38 v2.7 ini Chlvl ANY
[ 8] MySQL RUN - mysql_amxx_i386. v1.9.0.5 pl2 ANY ANY
[ 9] Fun RUN - fun_amxx_i386.so v1.9.0.5 pl2 ANY ANY
[10] Engine RUN - engine_amxx_i386 v1.9.0.5 pl2 ANY ANY
[11] FakeMeta RUN - fakemeta_amxx_i3 v1.9.0.5 pl2 ANY ANY
[12] GeoIP RUN - geoip_amxx_i386. v1.9.0.5 pl2 ANY ANY
[13] CStrike RUN - cstrike_amxx_i38 v1.9.0.5 pl2 ANY ANY
[14] CSX RUN - csx_amxx_i386.so v1.9.0.5 pl2 ANY ANY
[15] Ham Sandwich RUN - hamsandwich_amxx v1.9.0.5 pl2 ANY ANY
[16] ReAPI RUN - reapi_amxx_i386. v5.22.0. pl2 ANY Never
16 plugins, 16 running
Список плагинов
[ 1] Admin Base 1.9.0.5294 AMXX Dev Team admin.amxx running
[ 2] Admin Commands 1.9.0.5294 AMXX Dev Team admincmd.amxx running
[ 3] Slots Reservation 1.9.0.5294 AMXX Dev Team adminslots.amxx running
[ 4] Commands Menu 1.9.0.5294 AMXX Dev Team cmdmenu.amxx running
[ 5] Players Menu 1.9.0.5271 AMXX Dev Team plmenu.amxx running
[ 6] Teleport Menu 1.9.0.5271 AMXX Dev Team telemenu.amxx running
[ 7] Maps Menu 1.9.0.5271 AMXX Dev Team mapsmenu.amxx running
[ 8] Admin Chat 1.9.0.5294 AMXX Dev Team adminchat.amxx running
[ 9] Anti Flood 1.9.0.5294 AMXX Dev Team antiflood.amxx running
[ 10] Admin Votes 1.9.0.5294 AMXX Dev Team adminvote.amxx running
[ 11] StatsX 1.9.0.5271 AMXX Dev Team statsx.amxx running
[ 12] Surfmod: Core 0.3f Mistrick surfmod_core.am running
[ 13] Surf Fix 1.9 Lopol2010 surf_fix.amxx running
[ 14] surf_ski_2 Jail remove 1.0 xPaw surf_jailremove running
[ 15] Ban Cs 0.8 Empower amx_bancs.amxx running
[ 16] OciXCrom's Rank System 3.10 OciXCrom crx_ranksystem. running
[ 17] Knife Models 3.1.1 OciXCrom crx_knife_model running
[ 18] Basic Skills 1.1 OciXCrom crxknives_basic running
[ 19] Starting Health 1.0 Sn!ff3r start_hp.amxx running
[ 20] Block Buy Zone 1.0 Anonim block_buyzone.a running
[ 21] Custom Models 1.3.2 neugomon custom_models.a running
[ 22] Models Replacement 0.0.2 ConnorMcLeod | V models_replacem running
[ 23] Sound CSO 1.2 TBONTB cso_kill_sound. running
[ 24] [AMXX] Addon: Floating 1.0v4 Yoshioka Haruki addon_floating_ running
[ 25] Autoresponder/Advertis 0.5 MaximusBrood ad_manager.amxx running
[ 26] Kill assist (for CS) 1.2b Digi (www.thehun kill_assist.amx running
[ 27] Perfect Camera 0.2.5 Nordic Warrior perfectcamera.a running
[ 28] motd 1.1 L@NPOC@N rules_motd.amxx running
[ 29] Reset Score 0.0.2f wopox1337 resetscore.amxx running
[ 30] Yet Another Voteban 1.8 AndrewZ/voed yet_another_vot running
[ 31] Team Score 1.1.0 so1l & Radius team_score.amxx running
[ 32] Descriptive 'Fire in t 0.1 VEN descriptive_fit running
[ 33] Killa HP 1.0 jas0n kill_info.amxx running
[ 34] Hide HUD/Menu on Vote 1.2.2 d3m37r4 hham_on_vote.am running
[ 35] Buying Ammo 0.0.1 Albertio buying_ammo.amx running
[ 36] Spect Bot 1.2 SKAJIbnEJIb & Bo spectbot.amxx running
[ 37] Connect Message 2.0.0 ArKaNeMaN ConnectMessage. running
[ 38] Santa Hat + Snow 1.3 xPaw xmas_hat.amxx running
[ 39] SpecList 1.2a FatalisDK speclist.amxx running
[ 40] [Customizable] AmxModM 0.0.5 Albertio amxmodmenu.amxx running
[ 41] Menu 1.0 WaT_1 menu.amxx running
[ 42] Simple CSO Buy Menu 1.0 Kiowka buymenu.amxx running
[ 43] [ZP] Weapon: Smguns 1.0 LARS-DAY[BR]EAKE cso_shop.amxx running
[ 44] CSO Pistols Shop 1.0 Kiowka cso_pistols_sho running
[ 45] Item's Menu 1.0 Kiow items_menu.amxx running
[ 46] Weapon Menu New 2.1b Kiow & b0t. WeaponMenu.amxx running
[ 47] Auto Team Balance Adva 1.5.1 Radius auto_team_balan running
[ 48] CSO Needler 1.0 Dias needler.amxx running
[ 49] [CSO] M79 1.0 Dias Pendoragon m79.amxx running
[ 50] VSK94 1.0 LARS-DAY[BR]EAKE vsk94.amxx running
[ 51] Balrog-I 1.0 Barney cso_balrog-I.am running
[ 52] [Jb] Extra: Dual Infin 1.0 Crock / =) (Popr cso_dinfinity.a running
[ 53] [Jb] Weapon: Luger 1.0 crock / =) / fay cso_luger.amxx running
[ 54] [ZP] Extra: Anaconda 1.0 LARS-DAY[BR]EAKE cso_anaconda.am running
[ 55] Buy armor 1.0 FakeNick buy_armor.amxx running
[ 56] Heal for money 1.2 Emilioneri buy_heal.amxx running
[ 57] Buy Nades 1.0 Kiow buy_nades.amxx running
[ 58] Buy Respawn 1.0.2 Rodrigo286 buy_respawn.amx running
[ 59] GameName Changer 1.0 neugomon reapi_gamechang running
[ 60] [ReAPI] Hint blocker 0.1.0 F@tn0M reapi_hint_bloc running
[ 61] ReAPI Test 1.0 s1lent reapi_test.amxx running
[ 62] reunion testing 1 reu_test.amxx running
[ 63] << CORE >> 3.0 << Corona-Bytes. evolutionx.core running
[ 64] UpdateHint 1.3 Lev updatehint.amxx running
[ 65] Map Manager: Core 3.1.5 Mistrick map_manager_cor running
[ 66] Map Manager: Scheduler 0.1.10 Mistrick map_manager_sch running
[ 67] Map Manager: Rtv 0.1.1 Mistrick map_manager_rtv running
[ 68] Map Manager: Nominatio 0.2.1 Mistrick map_manager_nom running
[ 69] Map Manager: BlockList 0.0.4 Mistrick map_manager_blo running
[ 70] Map Manager: Online so 0.0.4 Mistrick map_manager_onl running
[ 71] Map Manager: Effects 0.1.1 Mistrick map_manager_eff running
[ 72] Map Manager: Informer 0.0.5 Mistrick map_manager_inf running
[ 73] Map Manager: Sounds 0.0.2 Mistrick map_manager_sou running
[ 74] Chat Manager 4.8 OciXCrom crx_chatmanager running
[ 75] CM: Toggle Chat 4.1 OciXCrom crx_chatmanager running
Автор плагина
Rodrigo286
Версия плагина
1.0.2
Исходный код
Файл с исходным кодом более 1000 строк, поэтому прикрепил его ниже.
Приветствую всех, друзья!

Проблема с плагином возрождения, а именно в том, что при покупке респавна, в чат отправляются сообщения, по типу "[RESPAWN] Вы купили Возрождение" или "[RESPAWN] Вы купили максимум возрождений за этот раунд!". И вроде бы всё нормально, но загвоздка в том, что подобные оповещения в чате отправляются не конкретному игроку (как задумывалось самим плагином), а всем в общий чат. Пример: какой-то игрок на сервере хочет купить возрождение, а в общем чате ВСЕ игроки видят "[RESPAWN] Вы купили максимум возрождений за этот раунд!", хотя они даже не совершали этих действий .

Сам попытался решить эту проблему, но что-то не очень получилось. Изначально там везде, где сейчас стоит приставка "(id)" (заранее извиняюсь за неправильное название тех или иных функций), стояла (client). Я все это поменял и вроде бы некоторые сообщения перестали высвечиваться в общий чат, но оставшиеся все еще появляются в чате, что, естественно, неправильно.

Прошу помощи в решении данной проблемы, так как сам я и правда не понимаю в чем дело 😅

* Заранее предупреждаю, что в поле "Ошибка" указал на предполагаемою мной строку с проблемой, но это может быть не так.
 
В этой теме было размещено решение! Перейти к решению.

Вложения

Сообщения
1,042
Реакции
206
Предупреждения
1
Помог
6 раз(а)
вместо нуля индекс игрока пиши
 
Сообщения
46
Реакции
2
Помог
1 раз(а)
BiZaJe, все, прописал. Чуть позже отпишу сюда сработало или нет.
И могу ли я попросить хотя бы краткое пояснение к этому, если, конечно, не трудно. Вот до этого там стояло в некоторых строках "client", а я поменял на индекс "id". В чем вообще их разница?
И по поводу 0. То есть если не указывать индекс игрока, то все будет "спамить" в общий?
 
Сообщения
1,042
Реакции
206
Предупреждения
1
Помог
6 раз(а)
Kioo, 0 это всем показать
Вместо 0 пишешь переменную где хранится индекс игрока
А лучше скинь полноценный кусок кода
 
Сообщения
494
Реакции
341
Помог
11 раз(а)
Первый аргумент - индекс игрока, которому шлём сообщение.
Аргумент 0 в данном случае принимается функцией как отослать всем игрокам.
 
Сообщения
46
Реакции
2
Помог
1 раз(а)
BiZaJe, не знаю, актуально ли это на данный момент или нет, так как поздно отвечаю, но вот полноценный код. Может так даже полезней будет

Код:
#include <amxmodx>
#include <hamsandwich>
#include <cstrike>

/*
    Plugin info
*/
#define PLUGIN "Buy Respawn"
#define VERSION "1.0.2"
#define AUTHOR "Rodrigo286"

/*
    Variables
*/
new gCost;
new gUses;
new gEnabled;
new gMessages;
new respawns[33];

public plugin_init()
{
    register_plugin(PLUGIN, VERSION, AUTHOR)

/*
    Cvars
*/
    register_cvar("amxx_buy_respawn_version", VERSION, FCVAR_SERVER|FCVAR_EXTDLL|FCVAR_UNLOGGED|FCVAR_SPONLY)
    gEnabled = register_cvar("amxx_buy_respawn_enabled", "1") // Plugin is enbaled?
    gCost = register_cvar("amxx_buy_respawn_cost", "3000") // How much respawn cost?
    gUses = register_cvar("amxx_buy_respawn_per_round", "2") // How many respawns allowed per round?
    gMessages = register_cvar("amxx_buy_respawn_messages", "1") // Info messages enabled?
/*
    Commands
*/
    register_clcmd("say !respawn", "respawnCMD"); // Command to buy respawn
    register_clcmd("say /respawn", "respawnCMD"); // Command to buy respawn

/*
    Events
*/
    register_event("HLTV", "LogEvent_RoundStart", "a", "1=0", "2=0");
}

public LogEvent_RoundStart()
{
    arrayset(respawns, 0, sizeof(respawns));
}

public respawnCMD(id)
{
    new money = cs_get_user_money(id);

    new cost = get_pcvar_num(gCost);

    new uses = get_pcvar_num(gUses);

    new payment = money - cost;

    new messages = get_pcvar_num(gMessages);

    if(get_user_team(id) == 3 || get_user_team(id) == 0)
    {
        client_print_color(id,print_team_default, "^4[RESPAWN] ^1Выбери команду перед покупкой возрождения");
        return PLUGIN_HANDLED;
    }

    if(get_pcvar_num(gEnabled) != 1)
    {
        if(messages != 0)
            client_print_color(id,print_team_default, "^4[RESPAWN] ^1Покупка возрождения сейчас отключена");

        return PLUGIN_HANDLED;
    }

    if(is_user_alive(id))
    {
        client_print_color(id,print_team_default, "^4[RESPAWN] ^1Доступно только мертвым игрокам!");
        return PLUGIN_HANDLED;
    }

    if(uses == respawns[id])
    {
        client_print_color(id,print_team_default, "^4[RESPAWN] ^1Вы купили максимум возрождений за этот раунд!");
        return PLUGIN_HANDLED;
    }

    if(money < cost)
    {
        client_print_color(id,print_team_default, "^4[RESPAWN] ^1Недостаточно средств", cost);
        return PLUGIN_HANDLED;
    }

    cs_set_user_money(id, payment);

    ExecuteHamB(Ham_CS_RoundRespawn, id);

    respawns[id] += 1;

    if(messages != 0)
        client_print_color(id,print_team_default, "^4[RESPAWN] ^1Вы купили ^4Возрождение", cost);

    return PLUGIN_CONTINUE;
}

public client_connect(id)
{
/*
    Reset respawn uses on player connect
*/
    respawns[id] = 0;
}
18 Дек 2022
BiZaJe, и спасибо за небольшое пояснение
18 Дек 2022
bizon, вот как, спасибо, теперь стало еще более понятнее 😁
 
Статус
В этой теме нельзя размещать новые ответы.

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу