GTAMulti - GTA Türkiye

San Andreas Multiplayer => Yardım Talepleri => PAWN Kodlama => Kilitli Konular => Konuyu başlatan: Kjen - 08 Eylül 2020, 20:39:55

Başlık: SendClientMessageEx Problemi
Gönderen: Kjen - 08 Eylül 2020, 20:39:55
Sabahtan beri denemediğim şey kalmadı bir çok pawnocu arkadaşımlada iletişime geçtim ancak bilen yok lütfen yardımcı olun.

Hata Kodu;

PAWN Kodu: Seç
C:\Users\Lenard\Desktop\Asena Police Pursuit\gamemodes\asena.pwn(149) : error 017: undefined symbol "SendClientMessageEx"
C:\Users\Lenard\Desktop\Asena Police Pursuit\gamemodes\asena.pwn(152) : warning 235: public function lacks forward declaration (symbol "OnPlayerCommandPerformed")
C:\Users\Lenard\Desktop\Asena Police Pursuit\gamemodes\asena.pwn(156) : error 017: undefined symbol "SendClientMessageEx"
C:\Users\Lenard\Desktop\Asena Police Pursuit\gamemodes\asena.pwn(299) : error 017: undefined symbol "SendClientMessageEx"
C:\Users\Lenard\Desktop\Asena Police Pursuit\gamemodes\asena.pwn(355) : error 017: undefined symbol "SendClientMessageEx"
Pawn compiler 3.10.8 Copyright (c) 1997-2006, ITB CompuPhase


4 Errors.

Kod Satırları;

PAWN Kodu: Seç
149.Kod Satırı: return SendErrorMessage(playerid,"Eksik veya geçersiz komut kullandınız! Tüm komutları görmek için /komutlar yazmanız yeterli.");
152.Kod Satırı: public OnPlayerCommandPerformed(playerid, cmdtext[], success)
156.Kod Satırı:     SendErrorMessage(playerid,"Eksik veya geçersiz komut kullandınız! Tüm komutları görmek için /komutlar yazmanız yeterli.");
299.Kod Satırı:                   SendClientMessage(playerid, -1, "Başarıyla giriş yaptınız.");
355.Kod Satırı:       SendClientMessage(playerid, -1, "Başarıyla kayıt oldunuz, otomatik giriş yapıldı.");

Hataya Sebebiyet Oluşturduğunu Düşündüğüm Kodlar;

PAWN Kodu: Seç
#define SendClientMessage(%0,%1) \
SendClientMessageEx(%0, 0x367ff5FF, "[!] {FFFFFF}"%1)

#define SendErrorMessage(%0,%1) \
SendClientMessageEx(%0, 0xE74C3CFF, "[!] {FFFFFF}"%1)

#define SendAdminMessage(%0,%1) \
SendClientMessageEx(%0, 0xAAC4E5FF, "[!] {FFFFFF}"%1)
Başlık: Ynt: SendClientMessageEx Problemi
Gönderen: Hata - 08 Eylül 2020, 23:21:48
SendClientMessageEx yerine, SendMessage, MesajYolla, MesajGonder gibi şeyler tanıtarak onları koymayı deneyebilir misiniz? Eğer olmazsa SendClientMessage(playerid, -1, "Başarıyla giriş yaptınız."); kodundaki -1 kısmını silerseniz düzelir sanırım.
Başlık: Ynt: SendClientMessageEx Problemi
Gönderen: squarepants - 08 Eylül 2020, 23:38:10
SendClientMessageEx adlı fonksiyon tanımlı değil , Ayrıca tanımlama ifadeleri yanlış kullanılmış görünüyor. SendClientMessage() adlı fonksiyon zaten tanımlı olmalıdır. Son olarak ise public OnPlayerCommandPerformed(playerid, cmdtext[], success) fonksiyonunun eksik olması zcmd adlı kütüphanenizi düzgün kurmamanızdan kaynaklı :


#define SendErrorMessage(%0,%1) \
SendClientMessageEx(%0, 0xE74C3CFF, "[!] {FFFFFF}%1") // düzenlendi

#define SendAdminMessage(%0,%1) \
SendClientMessageEx(%0, 0xAAC4E5FF, "[!] {FFFFFF}%1") // düzenlendi

stock SendClientMessageEx(playerid, renk, const metin[])
return SendClientMessage(playerid, renk, metin);
Başlık: Ynt: SendClientMessageEx Problemi
Gönderen: Radless - 08 Eylül 2020, 23:54:07
Tanımlardaki adları düzenleyebilirsin yazdığım örneklerden yeni tanımlar oluşturabilirsin, "OnPlayerCommandPerformed" public'i içinse diyebileceğim tek şey kullandığın komut kütüphanesini/eklentisini tekrar orjinal sayfasından indirerek düzgünce kurmaya çalışırsan düzelecektir büyük ihtimalle.

PAWN Kodu: Seç
#define SendInformationMessage(%0,%1)\
    SendClientMessageEx(%0, 0x00FF00FF, "[!] {FFFFFF}"%1)

#define SendErrorMessage(%0,%1)\
    SendClientMessageEx(%0, 0xFF0000FF, "[!] {FFFFFF}"%1)

SendClientMessageEx(playerid, color, const text[], {Float, _}:...)
{
new
    args,
    str[144]
    ;

if ((args = numargs()) == 3)
{
    SendClientMessage(playerid, color, text);
}
else
{
while (--args >= 3)
{
#emit LCTRL 5
#emit LOAD.alt args
#emit SHL.C.alt 2
#emit ADD.C 12
#emit ADD
#emit LOAD.I
#emit PUSH.pri
}
#emit PUSH.S text
#emit PUSH.C 144
#emit PUSH.C str
#emit PUSH.S 8
#emit SYSREQ.C format
#emit LCTRL 5
#emit SCTRL 4

SendClientMessage(playerid, color, str);

#emit RETN
}
return 1;
}

Örnek kullanım;

PAWN Kodu: Seç
CMD:messagetest(playerid, args[])
{
    SendInformationMessage(playerid, "Yeşil bilgilendirme yazısı.");
    SendErrorMessage(playerid, "Kırmızı hata/uyarı yazısı.");
    return 1;
}
Başlık: Ynt: SendClientMessageEx Problemi
Gönderen: Kjen - 09 Eylül 2020, 13:06:22
Deneyeceğim.
Başlık: Ynt: SendClientMessageEx Problemi
Gönderen: Kjen - 09 Eylül 2020, 13:07:17
Teşekkürler dediklerinizi yaptım ve oldu. K%A