En üst kısımlara yapıştırın.
#include <discord-connector>
#define INSUFFICIENT_PERM "Yeterli yetkiniz yok."
#define NOT_CONNECTING_NOKIA "Oyuncu sunucuda yok."
static DCC_Channel:commandChannel;
static DCC_Channel:logChannel;
static DCC_Guild:guildName;
static DCC_Role:adminRole;
// static DCC_Role:slaveRole;
Bunu da Public'lerin yoğunluklu olduğu yerlere yapıştırın.
public DCC_OnMessageCreate(DCC_Message:message){
/*
Aşağıda gördüğünüz gibi değişkenler atadım. Bu değişkenleri lütfen kendinize göre değiştirin aksi takdirde bu kod çalışmaz.
Bu sistem tek bir rol üzerine bağlıdır, eğer kullanan kişide o rol yok ise isterse sunucu sahibi olsun yine de kullanamaz.
Eğer alt kadroda bulunan yetkililerin kullanmasını isterseniz "slaveRole" kısmındaki '//' && '/*' kısımlarını kaldırmanız yeterli olacaktır.
Kendi oyun modunuza göre düzenleme yapmanız daha sağlıklı olacaktır, hele ki ban komutunda SQL bağlantısını sağlamanız önerilir.
*/
commandChannel = DCC_FindChannelById("Kanal ID");
logChannel = DCC_FindChannelById("Log ID(in-aktif)");
guildName = DCC_FindGuildById("Sunucu ID'niz");
adminRole = DCC_FindRoleById("Komutları kullanabilecek rol ID'leri");
// new slaveRole = DCC_FindRoleById("Üstekinin aynısı");
new DCC_Channel:channel;
DCC_GetMessageChannel(message, channel);
if(channel != commandChannel)
return 1;
new DCC_User:author;
DCC_GetMessageAuthor(message, author);
new bool:rubot;
DCC_IsUserBot(author, rubot);
if(rubot) return 1;
new bool:hasAdminRole;
DCC_HasGuildMemberRole(guildName, author, adminRole, hasAdminRole);
// new bool:hasSlaveRole;
// DCC_HasGuildMemberRole(guildName, author, adminRole, hasSlaveRole);
if(!hasAdminRole){
DCC_SendChannelMessage(commandChannel, INSUFFICIENT_PERM);
return 1;
}
/* else if(!hasSlaveRole) {
DCC_SendChannelMessage(commandChannel, INSUFFICIENT_PERM);
return 1;
}
*/
new str[256];
new cmd[32], params[128];
new name[MAX_PLAYER_NAME + 1];
DCC_GetMessageContent(message, str);
sscanf(str, "s[32]s[128]", cmd, params);
if(!strcmp(cmd, "!kick", true)){ // !kick
new playerid, reasonText[128], result[128];
sscanf(params, "us[128]", playerid, reasonText);
if(!IsPlayerConnected(playerid))
return DCC_SendChannelMessage(channel, NOT_CONNECTING_NOKIA);
GetPlayerName(playerid, name, sizeof(name));
if(strlen(reasonText) < 1) return DCC_SendChannelMessage(channel, "Atmak istiyorsan sebep belirt.");
format(result, sizeof(result), "[!] %s adlı oyuncu %s sebebiyle kicklendi.", name, reasonText); // in-game
SendClientMessageToAll(0xE74C3CFF, result); // in-game output
KABOOM(playerid);
}
if(!strcmp(cmd, "!ban", true)){ // !ban
new playerid, reasonText[128], result[128];
sscanf(params, "us[128]", playerid, reasonText);
if(!IsPlayerConnected(playerid))
return DCC_SendChannelMessage(channel, NOT_CONNECTING_NOKIA);
GetPlayerName(playerid, name, sizeof(name));
if(strlen(reasonText) < 1) return DCC_SendChannelMessage(channel, "Yasaklamak istiyorsan sebep belirt.");
format(result, sizeof(result), "[!] %s adlı oyuncu %s sebebiyle sunucudan yasaklandı.", name, reasonText); // in-game
SendClientMessageToAll(0xE74C3CFF, result); // in-game output
// if u want u can add SQL connection ^^
Ban(playerid);
}
/*
if(!strcmp(cmd, "sizin yazdığınız komut ismi", true)){
// ur code
}
*/
return 1;
}
forward tiktackKick(playerid);
public tiktackKick(playerid)
{
Kick(playerid);
return 1;
}
KABOOM(playerid, time=500)
{
SetTimerEx("tiktackKick", time, false, "d", playerid);
return 1;
}
Hepinize merhaba, ben Hasan Sangrento. SA-MP ortamını pek bilmem kusura bakmayın. Bir arkadaşım böyle bir şey istedi, anca bakma fırsatım oldu. Embed log sistemi vs. ekleyecektim yalnız zaman pek yetişmedi(Sanırsam yarına hallederim). Hazır arkadaşıma atıyorken size de faydası olur diye düşündüğüm için buraya attım. Sorularınız olursa sorabilirsiniz ya da sistemi geliştirmek isterseniz bu konu altında geliştirirseniz çok sevinirim.
teşekkürler hasan abim kralsın
Sistemi test etmedim ancak güzele benziyor.
yapmis?
güzel bir sistem, bir çok şey eklenip geliştirilebilir.
Alıntı yapılan: jaweed - 26 Haziran 2021, 12:53:33güzel bir sistem, bir çok şey eklenip geliştirilebilir.
Evet, bunun için strcmp'nın en altına bir bölüm daha ekledim. Örnek çalışma için oradan komut ekleyebilirsiniz ve istediğiniz gibi kullanabilirsiniz.
Teşekkür eden arkadaşlara da selam olsun, ben teşekkür ederim desteğiniz için ^^.
kral bee
coding??!!!??
tesekkurler
Teşekkürler hasan güzel paylaşım.
Beni trend listesine çıkartığınız için çok teşekkür ederim hepinize, teşekkür eden arkadaşlara ben teşekkür ederim. Bu sistemi kullanmanız sunucunuzda daha kolaylık ve rahatlık sağlayacağını düşündüğüm için paylaşma gereği duydum. Yapamadığınız bir yer olursa bu konu altında ekran görüntüsü ile belirtirseniz çözümünü size atabilirim. İyi forumlar hepinize ^^
Güzel olmuş elie sağlık.
Elinize sağlık, teşekkürler. İşime yaradı.