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

Sunucu Bakımda Yazısı

Başlatan Submarine, 06 Mayıs 2019, 13:19:24

« önceki - sonraki »

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Submarine

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);
}
Son düzenlenme: 08 Mayıs 2019, 08:50:17 kerematayy

Medcezir

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


TC9

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ı

2017-2020

Redfield

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


Excision

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);


Submarine

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.


Prisoners

Paylaşım için Teşekkürler, Ellerine sağlık, Güzel paylaşım, Başarılar


Warning

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.


Pablo

Alıntı




Pawnotürk Üyesi 2017-2020


FalafelÇorba


Ryroz

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


Pablo

Alıntı




Pawnotürk Üyesi 2017-2020

FelleR