PHP Code:
public invite_to_clan_menu_handler(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu);
return PLUGIN_HANDLED;
}
new szClanName[64], szClanTag[64];
copy(szClanName, charsmax(szClanName), g_UserData[id][ClanName]);
copy(szClanTag, charsmax(szClanTag), g_UserData[id][ClanTag]);
item += 1;
/*if(!equal(g_UserData[item][ClanName], "NONE"))
{
client_print_color(id, print_team_default, "%s %L", g_szTag, id, "INVITED_ALREADY_MEMBER", g_UserData[item][szName], g_UserData[item][ClanName]);
return PLUGIN_HANDLED;
}*/
if(!is_user_connected(item))
{
client_print_color(id, print_team_default, "%s %L", g_szTag, id, "INVITED_PLAYER_OFFLINE");
return PLUGIN_HANDLED;
}
open_invite_menu(item, szClanName, szClanTag, id); //OPEN INVITE MENU TO INVITED PLAYER AND PASSING CLANNAME, CLANTAG AND INVITER ID
client_print_color(id, print_team_default, "%s %L", g_szTag, id, "INVITATION_SENT", g_UserData[item][szName]);
return PLUGIN_CONTINUE;
}
public open_invite_menu(id, const clanname[], const clantag[], inviterid)
{
new szData[64];
formatex(szData, charsmax(szData), "%s#%s#%i", clanname, clantag, inviterid);
new szTitle[64], szItem[2][64];
//if i print szdata it will shot it correct
formatex(szTitle, charsmax(szTitle), "%L", id, "PLAYER_INVITED_MENU_TITLE", clanname);
new iMenu = menu_create(szTitle, "open_invite_menu_handler");
formatex(szItem[0], charsmax(szItem[]), "%L", id, "FIRST_OPTION");
menu_additem(iMenu, szItem[0], szData);
formatex(szItem[1], charsmax(szItem[]), "%L", id, "SECOND_OPTION");
menu_additem(iMenu, szItem[1], szData); //passing string to handler
server_print("1szData: %s", szData);
menu_setprop(iMenu, MPROP_EXIT, MEXIT_ALL);
menu_display(id, iMenu, 0);
}
public open_invite_menu_handler(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(id);
return PLUGIN_HANDLED;
}
new iInviter, iMenu, iAccess, szData[32], szClanName[32], szClanTag[32], szInviter[32];
menu_item_getinfo(iMenu, item, iAccess, szData, charsmax(szData));
replace_all(szData, charsmax(szData), "#", " ");
parse(szData, szClanName, charsmax(szClanName), szClanTag, charsmax(szClanTag), szInviter, charsmax(szInviter));
iInviter = str_to_num(szInviter);
server_print("szData: %s, item: %i", szData, item); // szdata is empty, item is printed correct
switch(item)
{
case 0:
{
client_print_color(iInviter, print_team_default, "%s %L", g_szTag, iInviter, "INVITE_DECLINED", g_UserData[id][szName]);
client_print_color(id, print_team_default, "%s %L", g_szTag, id, "PLAYER_DECLINED_INVITATION", g_UserData[iInviter][ClanName], g_UserData[iInviter][ClanName]);
}
case 1:
{
client_print_color(iInviter, print_team_default, "%s %L", g_szTag, iInviter, "INVITE_ACCEPTED", g_UserData[id][szName]);
client_print_color(id, print_team_default, "%s %L", g_szTag, id, "PLAYER_ACCEPTED_INVITATION", g_UserData[id][ClanName]);
copy(g_UserData[id][ClanName], charsmax(g_UserData[][ClanName]), g_UserData[iInviter][ClanName]);
copy(g_UserData[id][ClanTag], charsmax(g_UserData[][ClanTag]), g_UserData[iInviter][ClanTag]);
server_print("3 szClanName: %s, szClanTag: %s, iInviter: %i, userdataname: %s, userdatatag: %s", szClanName, szClanTag, iInviter, g_UserData[iInviter][ClanName], g_UserData[iInviter][ClanTag]);
set_player_clan(id, szClanName);
}
}
return PLUGIN_CONTINUE;
}
public set_player_clan(id, clanname[])
{
server_print("set_player_clan clanname:%s");
new szQuery[512];
formatex(szQuery, charsmax(szQuery), "UPDATE `%s` SET `clan` = '%s' WHERE `steamid` = '%s'", clanname, g_UserData[id][szAuthid]);
server_print("set_player_clan, clanname: %s", clanname);
SQL_ThreadQuery(g_SqlTuple, "FreeHandle", szQuery);
new szQuery2[512];
formatex(szQuery, charsmax(szQuery), "INSERT INTO `%s` \
(`member_name`,`steamid`,`is_clan_leader`,`is_second_leader`) \
VALUES \
('%s','%s','0','0')", clanname, g_UserData[id][szName], g_UserData[id][szAuthid]);
SQL_ThreadQuery(g_SqlTuple, "FreeHandle", szQuery2);
}