Selamlar, kolay gelsin cümleten hayırlı kullanımlar.
#include <Apolet> // Ekleyin modun üst kısmınaÖrnek kullanım 1:Apolettak(playerid,0x8D8DFFFF,"Memur I")
Örnek Kullanım2:new a = GetPlayerMoney(playerid);
new b = playerid;
new string[60];
format(string,sizeof(string),"Üzerinde %d$ para var /soy (%d)",a,b);
Apolettak(playerid,0x8D8DFFFF,string)
//Apolettak(playerid,color, const text[]) // Oyuncuid,renk kodu,apoletyazisi
Download Apolet Include (https://s2.dosya.tc/server11/0b5tir/Apolet.rar.html)
Hastebin Link (https://hastebin.com/pasulemotu.cpp)
Virus Total Apolet Include (https://www.virustotal.com/gui/file-analysis/ZTcwMjBiYzhiMmEyM2RjNDA1MTRiYTk4N2I4NTUwYjM6MTU3MTIzODY5OQ==/detection)
Güzel, paylaşım teşekkürler.
Bak ilk defa buraya başka bir yorum yazıyorum, işime yarar cidden.
Hatalı kullanım.
#define MAX_APOLET (200)
new Text3D:apolet[MAX_APOLET];
public OnGameModeInit()
{
for(new i=0;i<MAX_APOLET;i++)
{
apolet = Create3DTextLabel("Apolet", -1, 30.0, 40.0, 50.0, 40.0, -1, 1);
}
#if defined SAYROXFUNC_OnGameModeInit
return SAYROXFUNC_OnGameModeInit();
#else
return 1;
#endif
}
İlk olarak burada bir loop döndürmene gerek yok. İkinci olarak apolet değişkeninin arrayları ilk önce üzerinden 200'e kadar açılıyor fakat sonrasında MAX_PLAYERS üzerinden veri almaya başlıyor ?_? Boşuna veri sorunları yaratır ve hatalı bir kullanım. 200 idsinden kişiden sonra sorunlar çıkmaya başlar(not: performans sorunları en öncelikli uyarım.)
stock ApoletClear(playerid)
{
Attach3DTextLabelToPlayer(apolet[playerid], playerid, 0,0,0.3);
Update3DTextLabelText(apolet[playerid],-1,"");
}
stock Apolettak(playerid,color, const text[])
{
new string[64];
format(string,sizeof(string),"%s",text);
Attach3DTextLabelToPlayer(apolet[playerid], playerid, 0,0,0.3);
Update3DTextLabelText(apolet[playerid],color,string);
}
bu iki fonksiyon içerisinde sadece playerid üzerinden bir textlabel oluşturup işleme sokabilirsin.
ayrıca neden streamer kullanılmıyor? streamer kullanarak yarattığınız textlabellerin buga girmesine neden olacaktır. (anlık kaybolmalar vs)
@Amper boş yapma icraat yap.
Alıntı yapılan: Sayrox - 16 Ekim 2019, 13:32:18@Amper boş yapma icraat yap.
Arkadaş sadece sana öneride bulunmuş.
Alıntı yapılan: Sayrox - 16 Ekim 2019, 13:32:18@Amper boş yapma icraat yap.
İki kuruşluk bilgin ile yazdığın kodun içerisindeki hataları yazıyorum. Bu includeyi kullanacak elemanların modunda sonsuz döngüden kaynaklı çökmeler olmasın diye yazıyorum köşene çekil ve işi bilenlere bırak. Ne kadar ağzımı bozmak istemesem de bunun gibilere bu bölümde konu açma izni verilmesi çok sakıncalı
@Zoxy
Amper adam doğru söylüyor, hatalarını düzeltmek yerine daha iyisini yapıp konu açabilirsin. :)
NOT: Artık SA:MP ile ilgilenmiyorum laf dalaşına girmeyeceğim.
Amper sadece bulduğu hataları eleştiriyor, ona teşekkür etmen lazım. Hatalar sana doğru yolu gösterir, hatanın farkına varmazsan yaptığın işi sorgulamazsın ve hep doğru olduğunu düşünürsün. Eleştiriler sana kendini geliştirmende yardımcı olacaktır, agresif tavırlar sergilemeye gerek yok. Sistem paylaşıyorsan eleştirilere açık olacaksın, konuyu açan kişi eleştirilere karşı saygılı bir şekilde yaklaşmalıdır yanlış olsa bile.
Benim yorumlarım silindiyse bu konuya daha fazla cevap yazmama gerek yok. Bizi bilen biliyor.
Son bir sözüm var. Amper 15 yaşında olmasına rağmen her konuda uzmandır ona güvenin ve ısrarla takip edin. 2 Tane forum paneli editledi ve her işi öğrendi.
Harika Amper:
full stack developer,
programming skills: c#, objective c, python, mysql, C++(but --)
web skills: php, javascript(ek: jQuery), html, css
UI
Tüm yazılım dillerini bilir her konuda ustadır.
beni insanlara tanıttığın için teşekkür ederim, modülüne göre bu olmalıyım:
(https://cdn.discordapp.com/attachments/608696651720163338/633997188200005643/unknown.png)
Tanımladığın değer #define MAX_APOLET (200) MAX_PLAYERS (500-1000) olarak değiştirmelisiniz. Sunucu kapasitesi 200 den fazla ve oyuncu kapasitesi de 200 den fazlaysa array hatası alırsın. Çünkü değeri playerid olarak giriyorsun. Ayrıca temizlemek için Destroy işlemi kullanmalısın ki boş yere TextLabel slotlarını kullanmasın. Girişte oluşturup çıkışta yok etmek en doğru işlemdir.
Alıntı yapılan: NexoR - 16 Ekim 2019, 15:25:24Tanımladığın değer #define MAX_APOLET (200) MAX_PLAYERS (500-1000) olarak değiştirmelisiniz. Sunucu kapasitesi 200 den fazla ve oyuncu kapasitesi de 200 den fazlaysa array hatası alırsın. Çünkü değeri playerid olarak giriyorsun. Ayrıca temizlemek için Destroy işlemi kullanmalısın ki boş yere TextLabel slotlarını kullanmasın. Girişte oluşturup çıkışta yok etmek en doğru işlemdir.
Hastebin Link (https://hastebin.com/pasulemotu.cpp)
Includede güncelleme yapıldı tavsiyeler için teşekkürler. Velakin kullanıcısının includeleyi kullanmadan. Önce içini açıp incelemesi gerekir. MAX_APOLET değeri 200 bilinçli bir şekilde yazdım. Şu zamanda 200 playerı geçecek bir sunucu barındırmak pek mümkün değil. Diyelimki geçti zaten kullanıcı 200 id sonrası Apoletin takılmadığının farkına varacaktı ve MAX_APOLET değerini değiştirecekti.
Artık bunlara gerek kalmadı oyuncu giriş yaptığında yeni bir create3dtextlabel oluşuyor çıkış yaptığında label siliniyor.
Olası çıkabilecek yan etkiler her ilacın barındırdığı gibi kullanıcılara duyrulur Apolet includede barınmaktadır.
Güncelleme öncesi ilk 0 - 200 arası oyuncular apolet sisteminden faydalana biliyorlardı.
Artık sunucuya giriş yapan ve bağlı durumda olan tüm oyuncular apolet sisteminden faydalanabiliyor.
Sampın maximum desteklediği global 3d text label sayısı 1024'dür.
Yan etki olasılığı şu zamanda %0.1 bir diyeniliriz. Oluşabilecek tek yan etki. sunucunuzda 1000 kişi aynı anda online durumda olursa. Size kalan Create3dTextLabel sayısı 24 adettir.
Yan etki etkisini sıfıra indirmenin bir yoluda. Create3dTextLabel stoklarını tamamen oyunculara bırakmak. ve Include kullanımına başladıktan sonra her sunucuda bulunan.
Streamer plugin aracılığı ile bundan sonra. CreateDynamic3DTextLabel stoklarını kullanmaya devam edebilirsiniz.
Gerekli kontroller ve testler tarafımca yapıldıktan sonra sizlerin kullanımına sunuldu. Şuanda görünürde her hangi bir konum veya pozisyon bugu barındırmıyor.
züper eline sağlık
neden her giren oyuncu için label oluşturuyorsun ? belki adam o labeli hiç kullanmayacak ?
her girişte oluşturmak yerine apolettak fonksiyonunun içinde oluştur.
ayrıca gördüğüm kadarıyla paylaşım yapana kadar kod bilgini geliştirmeni öneririm.