Witam,
Mam problem z ustawieniem zapisu ilości znaków w nazwie serwera do bazy danych. Proszę o zmianę w kodzie poniżej zmianę ilości znaków dla kolumny w nazwie serwera z 31 do 62 (bo chyba tyle można) . Dodatkowo mam problem z przekompilowaniem lokalnie tego . Proszę dodatkowo o kompilacje pluginu po edycji.
Spoiler
#include <amxmodx>
#include <sqlx>
#include <tutor>
#include <core>
new MySQL;
new MaxPlayers, Players[32][32];
new ReportName[32][32], ReportReason[32][50];
new PlayerTimeBlock[32], PlayerNameBlock[32][32];
new Host, User, Pass, Base, NumberUser, NumberShout;
new GetHost[32], GetUser[32], GetPass[32], GetBase[32], GetNumberUser, GetNumberShout;
public plugin_init()
{
register_plugin("Report Player", "4.0", "Sloenthran");
tutorInit();
Host = register_cvar("report_host", "", FCVAR_PROTECTED|FCVAR_SPONLY);
User = register_cvar("report_user", "", FCVAR_PROTECTED|FCVAR_SPONLY);
Pass = register_cvar("report_pass", "", FCVAR_PROTECTED|FCVAR_SPONLY);
Base = register_cvar("report_base", "", FCVAR_PROTECTED|FCVAR_SPONLY);
NumberUser = register_cvar("report_number_user", "1", FCVAR_PROTECTED|FCVAR_SPONLY);
NumberShout = register_cvar("report_number_shout", "3", FCVAR_PROTECTED|FCVAR_SPONLY);
register_clcmd("say /zglos", "PlayerMenu");
register_clcmd("say_team /zglos", "PlayerMenu");
}
public plugin_precache()
{
tutorPrecache();
}
public plugin_cfg()
{
get_pcvar_string(Host, GetHost, 31);
get_pcvar_string(User, GetUser, 31);
get_pcvar_string(Pass, GetPass, 31);
get_pcvar_string(Base, GetBase, 31);
GetNumberUser = get_pcvar_num(NumberUser);
GetNumberShout = get_pcvar_num(NumberShout);
MaxPlayers = get_maxplayers();
MySQL = SQL_MakeDbTuple(GetHost, GetUser, GetPass, GetBase);
}
public PlayerMenu(id)
{
if(PlayerTimeBlock[id] > get_systime())
{
tutorMake(id, TUTOR_RED, 5.0, "Odczekaj minute przed ponownym zgloszeniem!");
return PLUGIN_HANDLED;
}
new Name[32];
new PlayersNumber = 0;
new Menu = menu_create("Wybierz gracza", "PlayerMenuHandle");
for(new Number = 1; Number <= MaxPlayers; Number++)
{
if(is_user_connected(Number) && !is_user_bot(Number) && !is_user_hltv(Number))
{
get_user_name(Number, Name, 31);
Players[PlayersNumber] = Name;
PlayersNumber++;
menu_additem(Menu, Name);
}
}
menu_setprop(Menu, MPROP_BACKNAME, "Wroc");
menu_setprop(Menu, MPROP_NEXTNAME, "Dalej");
menu_setprop(Menu, MPROP_EXITNAME, "Wyjscie");
menu_display(id, Menu);
return PLUGIN_HANDLED;
}
public PlayerMenuHandle(id, Menu, Item)
{
if(Item == MENU_EXIT)
{
menu_destroy(Menu);
return PLUGIN_HANDLED;
}
ReportName[id] = Players[Item];
menu_destroy(Menu);
if(equali(ReportName[id], PlayerNameBlock[Item]))
{
tutorMake(id, TUTOR_RED, 5.0, "Ten gracz przed chwila byl zglaszany!");
return PLUGIN_HANDLED;
}
PlayerNameBlock[Item] = ReportName[id];
set_task(300.0, "UnblockPlayerName", id);
PlayerReasonMenu(id);
return PLUGIN_HANDLED;
}
public PlayerReasonMenu(id)
{
new Menu = menu_create("Wybierz powod", "PlayerReasonHandle");
menu_additem(Menu, "Gracz ma WH");
menu_additem(Menu, "Gracz ma SH");
menu_additem(Menu, "Gracz ma AIM-a");
menu_additem(Menu, "Gracz utrudnia gre");
menu_additem(Menu, "Gracz reklamuje");
menu_additem(Menu, "Gracz nie wykonuje celow mapy");
menu_setprop(Menu, MPROP_BACKNAME, "Wroc");
menu_setprop(Menu, MPROP_NEXTNAME, "Dalej");
menu_setprop(Menu, MPROP_EXITNAME, "Wyjscie");
menu_display(id, Menu);
return PLUGIN_HANDLED;
}
public PlayerReasonHandle(id, Menu, Item)
{
if(Item == MENU_EXIT)
{
menu_destroy(Menu);
return PLUGIN_HANDLED;
}
switch(Item)
{
case 0: ReportReason[id] = "ma WH";
case 1: ReportReason[id] = "ma SH";
case 2: ReportReason[id] = "ma AIM-a";
case 3: ReportReason[id] = "utrudnia gre";
case 4: ReportReason[id] = "reklamuje";
case 5: ReportReason[id] = "nie wykonuje celow mapy";
}
menu_destroy(Menu);
switch(GetNumberShout)
{
case 1: AddShoutsIPB(id);
case 2: AddShoutsPHPBB3(id);
case 3: AddShoutsHookIPB(id);
}
return PLUGIN_HANDLED;
}
public UnblockPlayerName(id)
{
PlayerNameBlock[id] = "";
}
public AddShoutsIPB(id)
{
static Query[512];
new IP[32], Name[32], ServerName[32], Message[256], OutPut[2][32];
new Time = get_systime();
get_user_name(id, Name, 31);
get_user_name(0, ServerName, 31);
get_user_ip(id, IP, 31, 1);
explode(ServerName, '@', OutPut, 2, 31);
formatex(Message, 255, "Gracz %s %s", ReportName[id], ReportReason[id]);
formatex(Query, 511, "INSERT INTO shoutbox_shouts VALUES('', '%i', '%i', '[ReportPlayer] Serwer: %s | Zgłaszający: %s | Wiadomość: %s', '%s', 'NULL');", GetNumberUser, Time, OutPut[0], Name, Message, IP);
tutorMake(id, TUTOR_RED, 5.0, "Gracz zostal zgloszony!");
PlayerTimeBlock[id] = Time + 60;
SQL_ThreadQuery(MySQL, "Query", Query);
}
public AddShoutsPHPBB3(id)
{
static Query[512];
new IP[32], Name[32], ServerName[32], Message[256], OutPut[2][32];
new Time = get_systime();
get_user_name(id, Name, 31);
get_user_name(0, ServerName, 31);
get_user_ip(id, IP, 31, 1);
explode(ServerName, '@', OutPut, 2, 31);
formatex(Message, 255, "Gracz %s %s", ReportName[id], ReportReason[id]);
formatex(Query, 511, "INSERT INTO phpbb3_mchat VALUES('', '%i', '%s', '[ReportPlayer] Serwer: %s | Zgłaszający: %s | Wiadomość: %s', '', '', '7', '%i', '0', '0');", GetNumberUser, IP, OutPut[0], Name, Message, Time);
tutorMake(id, TUTOR_RED, 5.0, "Gracz zostal zgloszony!");
PlayerTimeBlock[id] = Time + 60;
SQL_ThreadQuery(MySQL, "Query", Query);
}
public AddShoutsHookIPB(id)
{
static Query[512];
new IP[32], Name[32], ServerName[32], Message[256], OutPut[2][32];
new Time = get_systime();
get_user_name(id, Name, 31);
get_user_name(0, ServerName, 31);
get_user_ip(id, IP, 31, 1);
explode(ServerName, '@', OutPut, 2, 31);
formatex(Message, 255, "Gracz %s %s", ReportName[id], ReportReason[id]);
formatex(Query, 511, "INSERT INTO report_player VALUES('', '%s', '%i', '%s', '%s', '%s')", OutPut[0], Time, IP, Name, Message);
tutorMake(id, TUTOR_RED, 5.0, "Gracz zostal zgloszony!");
PlayerTimeBlock[id] = Time + 60;
SQL_ThreadQuery(MySQL, "Query", Query);
}
public Query(iFailState, Handle:hQuery, szError[], iError, iData[], iDataSize, Float:fQueueTime)
{
if(iFailState == TQUERY_CONNECT_FAILED || iFailState == TQUERY_QUERY_FAILED)
{
log_amx("%s", szError);
return;
}
}
stock explode(const string[], const character, output[][], const maxs, const maxlen)
{
new iDo = 0, len = strlen(string), oLen = 0;
do
{
oLen += (1+copyc(output[iDo++],maxlen,string[oLen],character));
} while(oLen < len && iDo < maxs);
}
Użytkownik Krzysiek? edytował ten post 15.08.2015 16:45