←  Problemy z pluginami

AMXX.pl: Support AMX Mod X i SourceMod

»

Błędne przypisywanie w menu

  • +
  • -
MaxioR - zdjęcie MaxioR 17.08.2015

Witam, posiadam problem mianowicie mam plugin, który blokuje dmg u gracza, lecz posiada on błędy w menu, tzn. od numeru 1-6 menu wszystko jest ok, lecz problem pojawia sie, gdy chcemy wybrać 7 wtedy plugin blokuje hltv.

cyzi2k.jpg
Następnie na drugiej stronie każda pozycja tj. 0d 1-7 blokuje hltv.

 

#include <amxmodx>
#include <hamsandwich>
 
new bool:g_bCantShoot[33];
new iMaxPlayers;
 
public plugin_init()
{
register_plugin("Block Damage for Player", "0.1", "asiap");
 
register_clcmd("say /admin", "Clcmd_Admin", ADMIN_BAN);
 
RegisterHam(Ham_TraceAttack, "player", "TraceAttack");
 
iMaxPlayers = get_maxplayers();
}
 
public Clcmd_Admin(id, iBitFlag)
{
if(~get_user_flags(id) & iBitFlag)
{
console_print(id,  "Nie masz dostepu do tej komendy.");
return PLUGIN_HANDLED;
}
new szNum[3], szName[48];
new menu = menu_create("\yWybierz gracza", "Handle_Admin");
for(new i = 1; i <= iMaxPlayers; i++)
{
if(!is_user_connected(i) || is_user_hltv(i) || i == id)
{
continue;
}
get_user_name(i, szName, 31);
 
if(g_bCantShoot[i])
{
add(szName, 47, " \R[ODBLOKUJ]");
}
 
num_to_str(i, szNum, 2);
menu_additem(menu, szName, szNum);
}
menu_setprop(menu, MPROP_NUMBER_COLOR, "\y");
menu_setprop(menu, MPROP_BACKNAME, "Poprzednia strona");
menu_setprop(menu, MPROP_NEXTNAME, "Nastepna strona");
menu_setprop(menu, MPROP_EXITNAME, "Wyjdz");
return menu_display(id, menu);
}
 
public Handle_Admin(id, menu, item)
{
new iBitAccess, szData[2], szName[32], iPid;
menu_item_getinfo(menu, item, iBitAccess, szData, 1, _, _, iPid);
 
iPid = str_to_num(szData);
get_user_name(iPid, szName, 31);
 
g_bCantShoot[iPid] = !g_bCantShoot[iPid];
client_print(id, print_chat, "%sblokowales mozliwosc zadawania obrazen graczowi ^"%s^"", g_bCantShoot[iPid] ? "Za" : "Od", szName);
}
 
public TraceAttack(id, iAttacker, Float:fDamage)
{
if(!is_user_connected(iAttacker) || !is_user_connected(id) || !g_bCantShoot[iAttacker]) return HAM_IGNORED;
 
SetHamParamFloat(3, 0.0);
return HAM_SUPERCEDE;
}
Odpowiedz

  • +
  • -
Asiap - zdjęcie Asiap 18.08.2015

sprobuj

new iBitAccess, szData[2], szName[32], iPid;
menu_item_getinfo(menu, item, iBitAccess, szData, 1, _, _, iPid);

na

new iBitAccess, szData[3], szName[32], iPid;
menu_item_getinfo(menu, item, iBitAccess, szData, 2, _, _, iPid);
Odpowiedz

  • +
  • -
NoLiFeR - zdjęcie NoLiFeR 18.08.2015

@up powinno rozwiązać twój problem, ponieważ gdy masz szData z dwoma zarezerwowanymi bajtami, może zmieścić się tam tylko jedna cyfra / jeden znak (Ponieważ w pawnie ostatni bajt musi być pusty)

 

wybierasz 12 zwróci 1

wybierasz 412 zwróci 4

Użytkownik NoLiFeR edytował ten post 18.08.2015 00:56
Odpowiedz