Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie

Bug CT jailbreak


  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
1 odpowiedź w tym temacie

#1 Zjarany_Ziomek_420

    Początkujący

  • Użytkownik

Reputacja: 0
Nowy

  • Postów:17
  • Imię:Damian
Online

Napisano dziś, 08:40

Witam mam problem z Bugiem na CT, otóż ten bug działa tak że jak wpiszesz komendę np /menu przez wybraniem drużyny to gracza przerzuca do CT nie ważne czy ma blokadę itak może zbugować i wbić do CT.

#include <amxmodx>
#include <cstrike>
#include <fakemeta>
#include <naxe_jailbreak>

#pragma semicolon 1

#define SetCtBan(%1) (Banned |= (1<<(%1&31)))
#define ClearCtBan(%1) (Banned &= ~(1 <<(%1&31)))
#define CheckCtBan(%1) (Banned & (1<<(%1&31)))

const IleTT = 5; // ile TT przepada na 1 CT
const TimeCT = 10800; // czas do CT w sekundach

new Trie: BannedNames, Banned, SelectedPlayer[33], szFile[64];
new sid[33][35], nick[33][32];
new g_msgid[33], czas;

public plugin_init() {
register_plugin("Menu Druzyn + Ban CT", "2.6", "naXe");

register_clcmd("jail_banct", "MenuBanCT");

register_clcmd("jointeam", "ShowMenu");
register_clcmd("chooseteam", "ShowMenu");

register_clcmd("Powod_bana_ct", "CmdEnterReason");

register_menucmd(register_menuid("mainmenu"), (1<<0)|(1<<1)|(1<<5)|(1<<9), "HandleMenu");
register_message(96, "MessageShowMenu");
register_message(114, "MessageVGUIMenu");

callfunc_begin("AddMenu", "menufront.amxx");
callfunc_push_str("Ban na CT");
callfunc_push_str("jail_banct");
callfunc_push_int((1<<3));
callfunc_push_str("Menu Druzyn + Ban CT");
callfunc_end();

BannedNames = TrieCreate();

formatex(szFile[get_localinfo("amxx_datadir", szFile, 63)], 63, "/banyct.ini");

new iFile = fopen(szFile, "rt"), szNick[32];
if(iFile) {
new szData[35];
while(!feof(iFile)) {
fgets(iFile, szData, 34);
trim(szData);

if(!szData[0] || szData[0] == ';' || (szData[0] == '/' && szData[1] == '/')) continue;

parse(szData, szNick, 31);
TrieSetCell(BannedNames, szNick, 1);
}
fclose(iFile);
}
}

public plugin_natives() register_native("jail_get_banct", "PobierzBan", 1);
public PobierzBan(id) return CheckCtBan(id);

public OnRoundStartPre() {
czas = false;
if(task_exists(112)) remove_task(112);
}

public OnRoundStartPost() set_task(530.0, "koniec_czasu", 112);
public OnRemoveData() czas = false;
public koniec_czasu() czas = true;

public OnPlayerConnected(id) {
get_user_name(id, nick[id], 31);
get_user_authid(id, sid[id], 34);

if(TrieKeyExists(BannedNames, nick[id])) {
client_print(0, 3, "* %s dolaczyl do gry i jest zbanowany na CT!", nick[id]);
SetCtBan(id);
}
else ClearCtBan(id);
}

public client_infochanged(id) {
if(!is_user_connected(id)) return;

new name[128]; get_user_info(id, "name", name, 31);
if(equal(name, nick[id])) return;

formatex(nick[id], 31, name);
}

public MessageShowMenu(msgid, dest, id) {
switch(get_msg_arg_int(1)) {
case 19, 51: {
g_msgid[id] = msgid;
ShowMenu(id);
return 1;
}
case 31, 531, 563: return 1;
}
return 0;

/*static arg[32]; get_msg_arg_string(4, arg, 31);
if(!equal(arg, "#Team_Select", 30)) return 0;

g_msgid[id] = msgid;
//set_pdata_int(id, 205, 0);
ShowMenu(id);
return 1;*/
}

public MessageVGUIMenu(msgid, dest, id) {
switch(get_msg_arg_int(1)) {
case 2: {
g_msgid[id] = msgid;
ShowMenu(id);
return 1;
}
case 26, 27: return 1;
}
return 0;

/*if(get_msg_arg_int(1) != 2) return 0;

g_msgid[id] = msgid;
//set_pdata_int(id, 205, 0);
ShowMenu(id);
return 1;*/
}

public ShowMenu(id) {
new menu[512], keys = (1<<9), len = formatex(menu, 511, "\wBilans: \y1 \wstraznik na \y%i \wwiezniow^n4 powody dlaczego druzyna CT jest niedostepna:^n1. Mozesz miec bana^n2. Nie masz przegranych %i godz.^n3. Admin zabral ci glos^n4. Druzyna jest pelna^n^n\yWybierz druzyne:^n^n", IleTT, TimeCT / 3600);

if(userTeam(id) == 1) len += formatex(menu[len], 511 - len, "\d[1] Wiezniowie [%i]^n", jail_get_tt(false));
else {
len += formatex(menu[len], 511 - len, "\y[1] \wWiezniowie \r[\d%i\r]^n", jail_get_tt(false));
keys |= (1<<0);
}
if(userTeam(id) == 2 || CheckCtBan(id) || playerGetTime(id) < TimeCT || jail_get_amute(id) || (jail_get_ct(false) && jail_get_ct(false) * IleTT >= jail_get_tt(false))) len += formatex(menu[len], 511 - len, "\d[2] Straznicy [%i]^n^n", jail_get_ct(false));
else {
len += formatex(menu[len], 511 - len, "\y[2] \wStraznicy \r[\d%i\r]^n^n", jail_get_ct(false));
keys |= (1<<1);
}
if(userTeam(id) == 3 || is_user_alive(id)) len += formatex(menu[len], 511 - len, "\d[6] Widzowie^n^n^n");
else {
len += formatex(menu[len], 511 - len, "\y[6] \wWidzowie^n^n^n");
keys |= (1<<5);
}
formatex(menu[len], 511 - len, "\y[0] \wWyjdz");
return show_menu(id, keys, menu, -1, "mainmenu");
}

public HandleMenu(id, key) {
new team = key + 1;

set_pdata_int(id, 125, get_pdata_int(id, 125) & ~(1<<8));
if(team == 6) {
engclient_cmd(id, "jointeam", "6");
return;
}
if(czas && jail_get_day() && !userTeam(id) && ((team == 1 && jail_get_tt(false)) || (team == 2 && jail_get_ct(false)))) {
ColorChat(id, 0, "^4[JailBreak]^1 Mozesz dolaczyc dopiero jak sie skonczy runda!");
return;
}
/*if(team == 2) {
if(jail_get_ct(false) && jail_get_ct(false) * IleTT >= jail_get_tt(false)) {
ColorChat(id, 0, "^4[JailBreak]^1 Druzyna CT pelna!");
return;
}
if(CheckCtBan(id)) {
ColorChat(id, 0, "^4[JailBreak]^1 Masz bana na dolaczanie do CT!");
return;
}
if(playerGetTime(id) < TimeCT) {
ColorChat(id, 0, "^4[JailBreak]^1 Musisz miec przegrane^3 %i^1 godz. aby moc dolaczyc do CT", TimeCT / 3600);
return;
}
if(jail_get_amute(id)) {
ColorChat(id, 0, "^4[JailBreak]^1 Masz bana na uzywanie mikrofonu do konca mapy!");
return;
}
}*/
new msg_blocke = get_msg_block(g_msgid[id]);
set_msg_block(g_msgid[id], 2);
new iTeam[3]; num_to_str(team, iTeam, 2);
engclient_cmd(id, "jointeam", iTeam);
engclient_cmd(id, "joinclass", "1");
set_msg_block(g_msgid[id], msg_blocke);
}

public CmdEnterReason(id) {
new i = SelectedPlayer[id];
if(!i) return 1;

new Reason[64]; read_argv(1, Reason, 63);

if(!strlen(Reason)) {
ColorChat(id, 0, "^3* Musisz podac powod bana!");
client_cmd(id, "messagemode Powod_bana_ct");
} else {
if(get_user_team(i) == 2) {
if(is_user_alive(i)) user_kill(i);

cs_set_user_team(i, CS_TEAM_T);
}
new szBuffer[128];

formatex(szBuffer, 127, "%s %s ^"%s^"", nick[i], sid[i], Reason);
write_file(szFile, szBuffer);

TrieSetCell(BannedNames, nick[i], 1);
SelectedPlayer[id] = 0;
SetCtBan(i);

static hudMsg, msg[191]; if(!hudMsg) hudMsg = CreateHudSyncObj();
set_hudmessage(0, 255, 0, 0.05, 0.30, 0, 6.0, 10.0, 0.5, 0.15);
for(new ii = 1; ii <= MaxClients; ii++) {
if(!is_user_connected(ii) || is_user_hltv(ii) || is_user_bot(ii)) continue;

if(userFlags(ii, "d")) format(msg, 190, "'%s' dostal bana na CT^n Powod: '%s'^n Admin: %s", nick[i], Reason, nick[id]);
else format(msg, 190, "'%s' dostal bana na CT^n Powod: '%s'", nick[i], Reason);

ShowSyncHudMsg(ii, hudMsg, msg);
ColorChat(ii, 0, "^4[JailBreak]^1 %s", msg);
}
//showActivityKey("ADMIN zbanowal %s na CT", "ADMIN %s zbanowal %s na CT", nick[id], nick[i]);
log_to_file("banyct.log", "%s <%s> zbanowal %s <%s> na CT.", nick[id], sid[id], nick[i], sid[i]);
}
return 1;
}

public MenuBanCT(id) {
if(!userFlags(id, "d")) return;

new i, int[3], szText[128], menu;
menu = menu_create("Wybierz gracza", "HandleBanCT");
for(i= 1; i <= MaxClients; i++) {
if(!is_user_connected(i) || is_user_hltv(i) || is_user_bot(i) || userFlags(i, "a") || i == id) continue;

if(TrieKeyExists(BannedNames, nick[i])) formatex(szText, 127, "%s \r[Odbanuj]", nick[i]);
else szText = nick[i];

num_to_str(i, int, 2);
menu_additem(menu, szText, int);
}
menu_setprop(menu, 2, "Poprzednia strona");
menu_setprop(menu, 3, "Nastepna strona");
menu_setprop(menu, 4, "Wyjdz");
menu_display(id, menu);
}

public HandleBanCT(id, menu, item) {
if(item == -3) return;

static data[3], acces, cb, i;
menu_item_getinfo(menu, item, acces, data, 2, _, _, cb);
i = str_to_num(data);
if(!i || !is_user_connected(i)) return;

if(!TrieKeyExists(BannedNames, nick[i])) {
SelectedPlayer[id] = i;
client_cmd(id, "messagemode Powod_bana_ct");
} else {
new szData[128], Line;
new iFile = fopen(szFile, "rt");

if(!iFile) return;

new szTempNick[32];

while(!feof(iFile)) {
fgets(iFile, szData, 127);
trim(szData);

Line++;

if(!szData[0] || szData[0] == ';' || (szData[0] == '/' && szData[1] == '/')) continue;

parse(szData, szTempNick, 31);

if(equali(nick[i], szTempNick)) {
format(szData, 127, "; %s", szData);
write_file(szFile, szData, Line - 1);
break;
}
}
TrieDeleteKey(BannedNames, nick[i]);
ClearCtBan(id);

showActivity(nick[id], "odbanowal^3 %s^1 na CT.", nick[i]);
log_to_file("banyct.log", "%s <%s> odbanowal %s <%s> na CT", nick[id], sid[id], nick[i], sid[i]);
}
menu_destroy(menu);
}
  • +
  • -
  • 0

#2 Zjarany_Ziomek_420

    Początkujący

  • Autor tematu
  • Użytkownik

Reputacja: 0
Nowy

  • Postów:17
  • Imię:Damian
Online

Napisano dziś, 08:42

Sorry nie wytłumaczyłem jak bug działa, wpisujesz /menu klikasz 2 opcje, i przerzuca cię do CT i przez konsole komendami też można, prosił bym o pomoc
  • +
  • -
  • 0




Użytkownicy przeglądający ten temat: 6

1 użytkowników, 5 gości, 0 anonimowych