Discord sunucumuz açılmıştır, hepinizi bekleriz

https://discord.gg/43gGDQe6tS

Strtol hk.

Eklenti sorunlarınız ve özel eklenti istekleriniz

Moderatör: Moderatörler

Kullanıcı avatarı

Konu Sahibi
PawNod
Yasaklı Üye
Yasaklı Üye
Mesajlar: 63
Kayıt: Sal Eyl 22, 2020 6:20 pm

Strtol hk.

Mesaj gönderen PawNod »

Eklentimde say kısmına gönderiği mesajda belli bi satır sayı varsa engellemesini istedim fakat sayılar arasına harf girince engellemiyor num to str olarak da çektirdim fakat yine de olmadı örnek veriyorum 2348283 yazınca engelliyor 828382jsjxjs yazınca engelliyor fakat jsjcjs383838 yazınca engellemiyor stringin içerisindeki sayıları nasıl çekebilirim?
Eklenti;

Kod: Tümünü seç

read_args(iMessage, charsmax(iMessage)); 	
remove_quotes(iMessage);
new iNumed = str_to_num(iMessage),NTS[7]; 	
num_to_str(iNumed,NTS , charsmax(NTS));
if(iMessage[0] == '@' || iMessage[0] == '.' || iMessage[0] == '/' || iMessage[0] == '!' || equal(iMessage, "")) 
return PLUGIN_CONTINUE;
new strtola;
strtol(NTS,strtola);
if(strtola > 5) { 
	client_print_color(iP_ID, iP_ID, "%s ^1Reklam yapmaya calistiginiz icin engellendiniz.",sD_Tag[SayTag]); 	
	return PLUGIN_HANDLED; 	
}

Link:
Linklerini gizle
Linki Kopyala
Kullanıcı avatarı

Ömer TELLİ
Yönetici
Mesajlar: 5458
Kayıt: Pzr Eyl 06, 2015 6:12 pm
Server Ip/DNS: dm.csduragi.com
Clan İsmi: csd

Strtol hk.

Mesaj gönderen Ömer TELLİ »

Kullanım çok yanlış olmuş, yeni bir şeyler öğretebilmek amacı ile regex ile nasıl yapabileceğini göstereyim

Kod: Tümünü seç

#include <amxmodx>
#include <regex>

public plugin_init()
{
    register_clcmd("say","sayHook")
}

public sayHook(id)
{
    new szMessage[256];
    read_args(szMessage, charsmax(szMessage));
    remove_quotes(szMessage)
  
    new ret, szError[128], sonuc
    new rSayCheck = regex_compile("[0-9]", ret, szError, charsmax(szError))
    sonuc = regex_match_all_c(szMessage, rSayCheck, ret)
    regex_free(rSayCheck);

    if(sonuc > 5){
        client_print_color(id, id, "^1Reklam yapmaya calistiginiz icin engellendiniz."); 
        return PLUGIN_HANDLED; 
    }

    return PLUGIN_CONTINUE; 
}
regex kullanmak istemiyorsan gelen mesaj stringini döngü içerisine alıp, karakter karakter isdigit ile karşılaştırmasını yapıp sayacı arttırabilirsin

https://www.amxmodx.org/api/string/isdigit

Link:
Linklerini gizle
Linki Kopyala
Kullanıcı avatarı

Konu Sahibi
PawNod
Yasaklı Üye
Yasaklı Üye
Mesajlar: 63
Kayıt: Sal Eyl 22, 2020 6:20 pm

Strtol hk.

Mesaj gönderen PawNod »

Tamam çok teşekkürler deneyeceğim :)

Link:
Linklerini gizle
Linki Kopyala
Cevapla