GTAMulti - GTA Türkiye

San Andreas Multiplayer => PAWN Kodlama => Mod Galerisi => Konuyu başlatan: Submarine - 06 Mayıs 2019, 13:19:24

Başlık: Sunucu Bakımda Yazısı
Gönderen: Submarine - 06 Mayıs 2019, 13:19:24
Modun ilk başlarında tanımlanacak olan kütüphaneler :

PAWN Kodu: Seç

#include <a_samp>
#include <Pawn.CMD>


Kullanacağımız değişken :

PAWN Kodu: Seç
new serverBakim;

OnPlayerConnect publicine girilecekler


PAWN Kodu: Seç
public OnPlayerConnect(playerid)
{
if(serverBakim == 1)
{
SendClientMessage(playerid,-1,"Sunucumuz bakımdadır.Buraya giremezsin !");
SetTimer("KickTimer",1000,false); //Bu timer sayesinde yazının görünüp kick atılması sağlandı.Aşağıdaki public i kullandık (KickTimer)

}

    return 1;
}


Sunucunun bakımdadır yazısı devreye girmesini sağlamak için komutumuzu ekleyelim

PAWN Kodu: Seç
CMD:bakimmodu(playerid,params[])
{
if(!IsPlayerAdmin(playerid))return SendClientMessage(playerid,-1,"[!] Yetkin yok adamım"); //Kişi RCON admin değil ise bu koşul çalışacaktır.
if(serverbakim == 0) // Server bakımı devrede değilse serverbakim değişkenini devreye sokarak kimseyi sunucuya sokamayacktır.
{
serverbakim = 1;
SendClientMessage(playerid,-1,"Sunucuyu bakım moduna aldın !");
}
else // Server Bakımı devredeyse serverbakim değişkenini devre dışı bıraktık.Böylece herkes girebilecek sunucunuza.
{
serverbakim = 0;
SendClientMessage(playerid,-1,"Sunucuyu bakım modundan çıkardın.Artık herkes sunucuya gelebilir !");
}
return 1;
}



Oyuncunun kicklenmesini sağlayacağımız timerı da ekliyoruz


PAWN Kodu: Seç
forward KickTimer(playerid);
public KickTimer(playerid)
{
Kick(playerid);
}
Başlık: Ynt: Sunucu Bakımda Yazısı
Gönderen: Medcezir - 06 Mayıs 2019, 13:23:38
Paylaşım için teşekkürler.
Başlık: Ynt: Sunucu Bakımda Yazısı
Gönderen: TC9 - 06 Mayıs 2019, 14:00:40
Başarılı fakat connect bölümüne bir admin değişkeni ile ayarla daha iyi olur

Örnek: if(AdminLevel(playerid) > 1337)
Gibi ekleyerek kurucu vb kişilerin girmesini sağla daha kullanışlı olur
Çünkü oyuna giremeden bakımı kapatamayız :)

Bunu kötü algılama başarılı
Başlık: Ynt: Sunucu Bakımda Yazısı
Gönderen: Redfield - 06 Mayıs 2019, 14:24:49
Paylaşım için teşekkürler.
Başlık: Ynt: Sunucu Bakımda Yazısı
Gönderen: Excision - 07 Mayıs 2019, 21:04:22
timer kullanımı yanlış, settimerex kullanmalısınız.
böyle tek komutluk sistemlerde pawn.cmd kullanmak yerine daha yaygın olarak kullanılan zcmd yi kullanabilirsiniz.
sscanf kullanılmadığı halde tanıtmışsınız.
serverBakim değişkenini boolean olarak kullansanız daha sağlıklı olacaktır. nasıl olsa sadece true ve false değerlerini alacak değişken.
PAWN Kodu: Seç
#include <a_samp>
#include <zcmd>

new bool:serverBakim = false;

public OnPlayerConnect(playerid)
{
if(serverBakim == true)
{
SendClientMessage(playerid, -1, "Sunucumuz bakımdadır.Buraya giremezsin !");
SetTimerEx("KickTimer", 1000, false, "i", playerid); //Bu timer sayesinde yazının görünüp kick atılması sağlandı.Aşağıdaki public i kullandık (KickTimer)
return 1;
}
return 1;
}
CMD:bakimmodu(playerid)
{
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, -1, "[!] Yetkin yok adamım"); //Kişi RCON admin değil ise bu koşul çalışacaktır.
switch(serverBakim)
{
    case false: // Server bakımı devrede değilse serverbakim değişkenini devreye sokarak kimseyi sunucuya sokamayacktır.
    {
serverBakim = true;
SendClientMessage(playerid, -1, "Sunucuyu bakım moduna aldın !");
    }
    case true: // Server Bakımı devredeyse serverbakim değişkenini devre dışı bıraktık.Böylece herkes girebilecek sunucunuza.
    {
serverBakim = false;
SendClientMessage(playerid, -1, "Sunucuyu bakım modundan çıkardın.Artık herkes sunucuya gelebilir !");
    }
}
return 1;
}
forward KickTimer(playerid);
public KickTimer(playerid) return Kick(playerid);
Başlık: Ynt: Sunucu Bakımda Yazısı
Gönderen: Submarine - 08 Mayıs 2019, 08:54:48
Alıntı yapılan: Excision - 07 Mayıs 2019, 21:04:22

timer kullanımı yanlış, settimerex kullanmalısınız.
böyle tek komutluk sistemlerde pawn.cmd kullanmak yerine daha yaygın olarak kullanılan zcmd yi kullanabilirsiniz.
sscanf kullanılmadığı halde tanıtmışsınız.
serverBakim değişkenini boolean olarak kullansanız daha sağlıklı olacaktır. nasıl olsa sadece true ve false değerlerini alacak değişken.
PAWN Kodu: Seç
#include <a_samp>
#include <zcmd>

new bool:serverBakim = false;

public OnPlayerConnect(playerid)
{
if(serverBakim == true)
{
SendClientMessage(playerid, -1, "Sunucumuz bakımdadır.Buraya giremezsin !");
SetTimerEx("KickTimer", 1000, false, "i", playerid); //Bu timer sayesinde yazının görünüp kick atılması sağlandı.Aşağıdaki public i kullandık (KickTimer)
return 1;
}
return 1;
}
CMD:bakimmodu(playerid)
{
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, -1, "[!] Yetkin yok adamım"); //Kişi RCON admin değil ise bu koşul çalışacaktır.
switch(serverBakim)
{
    case false: // Server bakımı devrede değilse serverbakim değişkenini devreye sokarak kimseyi sunucuya sokamayacktır.
    {
serverBakim = true;
SendClientMessage(playerid, -1, "Sunucuyu bakım moduna aldın !");
    }
    case true: // Server Bakımı devredeyse serverbakim değişkenini devre dışı bıraktık.Böylece herkes girebilecek sunucunuza.
    {
serverBakim = false;
SendClientMessage(playerid, -1, "Sunucuyu bakım modundan çıkardın.Artık herkes sunucuya gelebilir !");
    }
}
return 1;
}
forward KickTimer(playerid);
public KickTimer(playerid) return Kick(playerid);


Teşekkür ederim sscanf kütüphanesini el alışkanlığı yazıvermişim.Yaptığın bilgilendirmeler için tekrar teşekkür ediyorum.
Başlık: Ynt: Sunucu Bakımda Yazısı
Gönderen: Prisoners - 08 Mayıs 2019, 15:28:19
Paylaşım için Teşekkürler, Ellerine sağlık, Güzel paylaşım, Başarılar
Başlık: Ynt: Sunucu Bakımda Yazısı
Gönderen: Warning - 09 Mayıs 2019, 12:28:27
Sunucu Otomatik İsimi Degismesi İcin Sw Basına [ BAKIM ] Yazdırabılırdın sunun gıbı

PAWN Kodu: Seç

#define SERVER_NAME "Byrpo Roleplay"
#define BAKIM_NAME "Byrpo Roleplay "

       bakimmode = 1;
      new rcon[80];
      format(rcon, sizeof(rcon), "hostname %s", BAKIM_NAME);
      SendRconCommand(rcon);
      foreach(new i : Player)
      {
          if(PlayerData[i][pAdmin] > 3)
          {
              SendErrorMessage(i, "+4 seviye admin olduğunuz için atılmadınız.");
         }
         else
         {
            SQL_SaveCharacter(i);
            KickEx(i);
            SendErrorMessage(i, "Yetkili %s sunucuyu bakım moduna aldığı için otomatik
                               olarak atıldınız.", ReturnName(playerid, 0));

[/i]


Alıntı
Versus Roleplay Alıntı Attım.
Başlık: Ynt: Sunucu Bakımda Yazısı
Gönderen: Pablo - 15 Haziran 2019, 04:04:24
Alıntı yapılan: Medcezir - 06 Mayıs 2019, 13:23:38

Paylaşım için teşekkürler.
Başlık: Ynt: Sunucu Bakımda Yazısı
Gönderen: QrzR - 15 Haziran 2019, 18:04:52
Alıntı yapılan: ArdaTR - 15 Haziran 2019, 04:04:24

Alıntı yapılan: Medcezir - 06 Mayıs 2019, 13:23:38

Paylaşım için teşekkürler.

Başlık: Ynt: Sunucu Bakımda Yazısı
Gönderen: FalafelÇorba - 16 Haziran 2019, 18:35:50
Başarılar.  :helal:
Başlık: Ynt: Sunucu Bakımda Yazısı
Gönderen: Ryroz - 17 Haziran 2019, 17:05:37
Paylaşım için teşekkürler.
Başlık: Ynt: Sunucu Bakımda Yazısı
Gönderen: Pablo - 18 Haziran 2019, 14:42:55
Eline sağlık
Başlık: Ynt: Sunucu Bakımda Yazısı
Gönderen: FelleR - 26 Haziran 2019, 19:57:34
Yararlı