forward DiscordPanel(playerid);
public DiscordPanel(playerid)
{
new kod[64], discord_id[21];
cache_get_value_index(0, 0, kod);
cache_get_value_index(0, 1, discord_id);
if(!strcmp(discord_id, "0", true))
{
format(kod, sizeof(kod), "AUTH-%d", RandomEx(10000000000, 999999999999));
new query[55 + 90 + 11 + 1];
mysql_format(g_SQL, query, sizeof(query), "UPDATE oyuncular SET discord_kod = '%e' WHERE ID = '%d'", kod, PlayerData[playerid][pID]);
mysql_query(g_SQL, query);
Dialog_Show(playerid, 0, DIALOG_STYLE_TABLIST, "{ffffff}Discord: {7285bc}Doğrula", "{ffffff}Discord Doğrulama Kodunuz: {7285bc}%s\n\n{7285bc}Dikkat: {ffffff}Bu ekranı her yenilediğinizde kod yenilenecektir.", "Kapat", "", kod);
SunucuMesaji(playerid, "Doğrulama kodunuz: %s", kod);
}
else
{
new query[61 + 11 + 1];
mysql_format(g_SQL, query, sizeof(query), "SELECT discord_id, discord_exp FROM oyuncular WHERE ID = '%d'", PlayerData[playerid][pID]);
mysql_tquery(g_SQL, query, "DiscordPanelBilgi", "d", playerid);
}
return 1;
}
forward DiscordPanelBilgi(playerid);
public DiscordPanelBilgi(playerid)
{
new rows = cache_num_rows();
if(rows)
{
new discord_id[21];
cache_get_value_index(0, 0, discord_id);
new DCC_User:kullanici = DCC_FindUserById(discord_id);
if(kullanici != DCC_INVALID_USER)
{
new aktifUye;
DCC_GetGuildMemberCount(DCC_Guild:1, aktifUye);
new kullanici_isim[DCC_USERNAME_SIZE];
DCC_GetUserName(kullanici, kullanici_isim);
new discord_exp;
cache_get_value_index_int(0, 1, discord_exp);
SetPVarInt(playerid, "discordExp", discord_exp);
Dialog_Show(playerid, DiscordBilgileri, DIALOG_STYLE_TABLIST, "{ffffff}Discord: {7285bc}Bilgiler", "{ffffff}Hesap: {7285bc}%s\t\n{ffffff}Üye Sayısı: {7285bc}%d kişi\t\n{ffffff}Biriken EXP Miktarınız: {7285bc}%d {ffffff}(tıklayarak 4/1 oranında üzerine ekle)\t\n{000000}.\n{000000}.\n{7285bc}Hesapla İlişkimi Kes", "Seç", "Kapat", kullanici_isim, aktifUye, discord_exp);
}
else
{
new query[74 + 11 + 1];
mysql_format(g_SQL, query, sizeof(query), "UPDATE oyuncular SET discord_kod = 'Yok', discord_id = '0' WHERE ID = '%d'", PlayerData[playerid][pID]);
mysql_query(g_SQL, query);
SunucuMesaji(playerid, "Discord sunucusunda olmadığınız için bilgileriniz sıfırlanmıştır.");
}
}
else HataMesajGonder(playerid, "Veriler alınamadı.");
return 1;
}
Dialog:DiscordBilgileri(playerid, response, listitem, inputtext[])
{
if(response)
{
if(strfind(inputtext, "Biriken Exp Miktarınız", true) != -1)
{
new discord_exp = GetPVarInt(playerid, "discordExp");
if(discord_exp % 4 != 0)
return HataMesajGonder(playerid, "Henüz discord explerinizi alamazsınız. (almak için 4 ve katı sayılar olması gerekiyor.)");
new exp_miktar = discord_exp / 4;
PlayerData[playerid][pEXP] += exp_miktar;
SunucuMesaji(playerid, "%d discord exp karşılığında karakterinize %d exp verildi.", discord_exp, exp_miktar);
if (PlayerData[playerid][pEXP] >= PlayerData[playerid][pLevel]*5)
{
new kalanexp = 0;
if (PlayerData[playerid][pEXP] > PlayerData[playerid][pLevel]*5)
{
kalanexp = PlayerData[playerid][pEXP] - PlayerData[playerid][pLevel]*5;
}
PlayerData[playerid][pEXP] = kalanexp;
PlayerData[playerid][pLevel]++;
SunucuMesaji(playerid, "Discord expleriniz sayesinde seviye atladınız.");
}
new query[54 + 11 + 1];
mysql_format(g_SQL, query, sizeof(query), "UPDATE oyuncular SET discord_exp = '0' WHERE ID = '%d'", PlayerData[playerid][pID]);
mysql_query(g_SQL, query);
}
else if(strfind(inputtext, "Hesapla İlişkimi Kes", true) != -1)
{
new query[53 + 11 + 1];
mysql_format(g_SQL, query, sizeof(query), "UPDATE oyuncular SET discord_id = '0' WHERE ID = '%d'", PlayerData[playerid][pID]);
mysql_tquery(g_SQL, query);
SunucuMesaji(playerid, "Bağlanmış discord hesabıyla ilişiğiniz kesilmiştir. EXP miktarınız saklı kalacaktır.");
}
else cmd_discord(playerid);
}
return 1;
}
public DCC_OnMessageCreate(DCC_Message:message)
{
new DCC_Channel:kanal, kanal_isim[128], mesaj[128], DCC_User:yazan;
DCC_GetMessageContent(message, mesaj);
DCC_GetMessageChannel(message, kanal);
DCC_GetChannelName(kanal, kanal_isim);
DCC_GetMessageAuthor(message, yazan);
new yazan_isim[DCC_USERNAME_SIZE];
DCC_GetUserName(yazan, yazan_isim);
if(!strcmp(kanal_isim, "bot-dogrulama", true))
{
if(strfind(mesaj, "AUTH", true) != -1 || strfind(mesaj, "AUTH-", true) != -1)
{
new query[67 + 64 + 1];
mysql_format(g_SQL, query, sizeof(query), "SELECT ID, discord_id, Isim FROM oyuncular WHERE discord_kod = '%e'", mesaj);
mysql_tquery(g_SQL, query, "DiscordKodKontrol", "d", _:yazan);
}
else if(strcmp(yazan_isim, "Unique RPG", true)) DCC_DeleteMessage(message);
}
return 1;
}
forward DiscordKodKontrol(DCC_User:kullanici_id);
public DiscordKodKontrol(DCC_User:kullanici_id)
{
new rows = cache_num_rows();
if(rows)
{
new id, discord_id[21], isim[MAX_PLAYER_NAME];
cache_get_value_index_int(0, 0, id);
cache_get_value_index(0, 1, discord_id);
cache_get_value_index(0, 2, isim);
DogrulandiMesaj(isim);
foreach(new i : Player)
{
if(PlayerData[pID] != id)
continue;
new hesap[DCC_USERNAME_SIZE];
DCC_GetUserName(kullanici_id, hesap);
SunucuMesaji(i, "Discord hesabınız \"%s\" olarak güncellendi.", hesap);
break;
}
new kod[21];
DCC_GetUserId(kullanici_id, kod);
new query[54 + 21 + 11 + 1];
mysql_format(g_SQL, query, sizeof(query), "UPDATE oyuncular SET discord_id = '%e' WHERE ID = '%d'", kod, id);
mysql_query(g_SQL, query);
}
else HataliMesaj();
return 1;
}
stock DogrulandiMesaj(const isim[])
{
new DCC_Embed:ixd = DCC_CreateEmbed(), str[300], gonderen[64];
format(gonderen, sizeof(gonderen), "**%s**", isim);
DCC_SetEmbedColor(ixd, 3066993);
format(str, sizeof(str), "Discord hesabiniz oyun hesabinizla baglandi! Her saat basi gelen EXP'yi almak icin /discord ekranini kullanin.");
DCC_AddEmbedField(ixd, trcar(gonderen), trcar(str));
DCC_SendChannelEmbedMessage(DCC_FindChannelByName(BOT_KANAL), ixd);
return 1;
}
stock HataliMesaj()
{
new DCC_Embed:ixd = DCC_CreateEmbed(), str[300];
DCC_SetEmbedColor(ixd, 15158332);
format(str, sizeof(str), "Gecersiz kod girisi yaptiniz.");
DCC_AddEmbedField(ixd, "HATA", trcar(str));
DCC_SendChannelEmbedMessage(DCC_FindChannelByName(BOT_KANAL), ixd);
return 1;
}
stock DCMesaj(kanal[], const mesaj[])
{
return DCC_SendChannelMessage(DCC_FindChannelByName(kanal), mesaj);
}
stock trduzelt(mesaj[])
{
new tmp[1024];
format(tmp, sizeof(tmp), "%s", mesaj);
strreplace(tmp, "ğ","g");
strreplace(tmp, "Ğ","G");
strreplace(tmp, "ş","s");
strreplace(tmp, "Ş","S");
strreplace(tmp, "ı","i");
strreplace(tmp, "İ","I");
strreplace(tmp, "ö","o");
strreplace(tmp, "Ö","O");
strreplace(tmp, "ç","c");
strreplace(tmp, "Ç","C");
strreplace(tmp, "ü","u");
strreplace(tmp, "Ü","U");
return tmp;
}
forward DiscordExp();
public DiscordExp()
{
new rows = cache_num_rows();
if(rows)
{
new id, discord_id[21], DCC_User:kullanici, DCC_UserPresenceStatus:durum;
for(new i = 0; i < rows; i++)
{
cache_get_value_index_int(i, 0, id);
cache_get_value_index(i, 1, discord_id);
kullanici = DCC_FindUserById(discord_id);
DCC_GetGuildMemberStatus(DCC_Guild:1, kullanici, durum);
if(_:durum != 0 && _:durum != 4)
{
DiscordEXPVer(id);
}
}
}
return 1;
}
stock DiscordEXPVer(id)
{
new query[59 + 11 + 11 + 1];
format(query, sizeof(query), "UPDATE oyuncular SET discord_exp = discord_exp + 1 WHERE ID = '%d'", id);
mysql_query(g_SQL, query, false);
return 1;
}