GTAMulti.com - Türkiye'nin Türkçe GTA Sitesi

Discord-Connector / Kanal üzerinden sunucudan kişiyi atma, yasaklama.

Başlatan Hasan Sangrento, 26 Haziran 2021, 04:44:23

« önceki - sonraki »

0 Üye ve 2 Ziyaretçi konuyu incelemekte.

Hasan Sangrento

En üst kısımlara yapıştırın.
PAWN Kodu: Seç
#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.
PAWN Kodu: Seç
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.
Son düzenlenme: 26 Haziran 2021, 12:58:03 Hasan Sangrento Sebep: Kod üzerinde düzenleme.


Belkide Gameover

bloodsucker

Marcy

Telegram : @HenizDev
Discord : Heinz#9999
Full Stack Developer & Sys Admin and IT Manager.
Benim naciz vücudum, bir gün elbet toprak olacaktır. Fakat Türkiye Cumhuriyeti, ilelebet payidar kalacaktır

jaweed


Hasan Sangrento

Alıntı yapılan: jaweed - 26 Haziran 2021, 12:53:33
gü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 ^^.





Furkanulas


Hasan Sangrento

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 ^^


baum224

to greatest marina reborn

VERITAS

Elinize sağlık, teşekkürler. İşime yaradı.