Servera dakikada bir işlem yaptırmayacak nvaulta kaydeden hesaplamayı oyuncu çıkarken toplamsüresi + oyunda olduğu süre şeklinde kaydedip listeleyen bi eklenti bulamadığım için ekte verdiğimi kullanılıyorum
Bu eklentide oyuncunun ismi Guest , Oyuncu , V2016 , Csduraği ise süresini kaydetmemesini ve toptime'a girmemesini ayarlabilecek var mı?
(Ek olarak dakikada bir puan ver değil de oyundan çıkınca nvaulttaki verisi + oynadığı süre şeklinde ayarlayabilecek var mı olmasada olur.
2. Ek olarak zaman hesaplamasında Gün yok misal 26 saat 23 dakika yerine 1 gün 2 saat 23 dakika şeklinde hesaplatabilecek var mı)
Ekler olmasa da olur olursa güzel olur uğraşan yardımcı olmaya çalışan herkese teşekkürler.
@By.KinG @PawNod' @"MawiLarq" @Anıl Can
Konu
Dene bakalım.
PHP Kod:
#include <amxmodx>
#include <nvault>
new const PLUGIN[] = "Online_Stats";
new const VERSION[] = "1.0";
new const AUTHOR[] = "By.KinG";
new Top_Online[33], Online[33];
new Vault_Name;
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR);
}
public plugin_cfg()
{
Vault_Name = nvault_open("Online_Stats");
}
public plugin_end()
{
nvault_close(Vault_Name);
}
public client_putinserver(ID)
{
if(Name_Control(ID) == 1)
{
new Name[33], Online_Stats[64];
get_user_name(ID, Name, 32);
nvault_get(Vault_Name, Name, Online_Stats, 63);
replace_all(Online_Stats, 255, "#", " ");
new Gun, Saat, Dakika;
parse(Online_Stats, Gun, Saat, Dakika);
Top_Online[ID] = (Gun * 86400) + (Saat * 3600) + (Dakika * 60);
set_task(1.0, "Online_Control", ID, _, _, "b");
}
}
public Online_Control(ID)
{
Online[ID]++;
}
public client_disconnected(ID)
{
if(Name_Control(ID) == 1)
{
remove_task(ID);
Top_Online[ID] += Online[ID];
new Top_Online_New = Top_Online[ID];
new Gun, Saat, Dakika;
Gun = Top_Online[ID] / 86400;
Top_Online_New = Top_Online_New - (Gun * 86400);
Saat = Top_Online[ID] / 3600;
Top_Online_New = Top_Online_New - (Saat * 3600);
Dakika = Top_Online[ID] / 60;
Top_Online_New = Top_Online_New - (Dakika * 60);
new Name[33], Text[64], Online_Stats[64];
get_user_name(ID, Name, 32);
formatex(Text, 63, "%s", Name);
formatex(Online_Stats, 63, "%i#%i#%i#%i", Gun, Saat, Dakika, Online[ID]);
nvault_set(Vault_Name, Text, Online_Stats);
}
}
stock Name_Control(ID)
{
new Name[33];
get_user_name(ID, Name, 32);
if(containi(Name, "Guest") != -1 || containi(Name, "CSDuragi") != -1 || containi(Name, "V2016") != -1 || containi(Name, "Oyuncu") != -1)
{
return 0;
}
return 1;
}
Son Düzenleme: 22-02-2020, 13:08, Düzenleyen: By.KinG.
Uğraşmışsın sağol da attığında top10 olayı yok her oyuncuya saniye başı komut uyguluyor attığım eklentiye sadece belirli nickler dahil olmamasını eklesen daha makbule geçer sıfırdan eklenti yazmışsın ama bana attığım daha cazip geldi teşekkürler
@ITenGriTR Belirlenen ismi kayıt ettirmeme ve istediğim kişinin verisini silme olayını sen çok olay halledebilirsin gibi geliyor bana vaktin varsa bakabilirmisin teşekkürler.
@ITenGriTR Belirlenen ismi kayıt ettirmeme ve istediğim kişinin verisini silme olayını sen çok olay halledebilirsin gibi geliyor bana vaktin varsa bakabilirmisin teşekkürler.
Son Düzenleme: 22-02-2020, 22:52, Düzenleyen: ByBuLuT.
Benim hesap sistemimin mantığı al bakalım bu şekilde adaım girdikten çıkana kadarki olan süreyi yakalayabilirsin gerisini sen yapıver
PHP Kod:
#include <amxmodx>
new iG_MyTime[33];
public plugin_init(){
register_plugin
("Naber",
"1.0",
"Berk");
}
public client_putinserver(iP_ID){
iG_MyTime[iP_ID] = get_systime();
}
//Oyundan cikarsa ?
#if AMXX_VERSION_NUM < 183
public client_disconnect(iP_ID){
new iL_DiffTime = get_systime()-iG_MyTime[iP_ID];
//Oyunda durdugu saniye iL_DiffTime degiskeni içinde
}
#else
public client_disconnected(iP_ID){
new iL_DiffTime = get_systime()-iG_MyTime[iP_ID];
//Oyunda durdugu saniye iL_DiffTime degiskeni içinde
}
#endif
// Map degisirse ?
public plugin_end(){
new sL_Players[32],iL_Num,iL_GetID,iL_DiffTime;
get_players(sL_Players,iL_Num);
for(new i; i < iL_Num; i++){
iL_GetID = sL_Players[i];
iL_DiffTime = get_systime()-iG_MyTime[iL_GetID];
//Oyunda durdugu saniye iL_DiffTime degiskeni içinde
}
}
Yakında boş vakit bulursam bir kaç eklenti yazacağım baya aktif kullanılan ve bu eklenti onlardan birisi
(22-02-2020, 22:57)ITenGriTR Adlı Kullanıcıdan Alıntı: Benim hesap sistemimin mantığı al bakalım bu şekilde adaım girdikten çıkana kadarki olan süreyi yakalayabilirsin gerisini sen yapıverPHP Kod:#include <amxmodx>
new iG_MyTime[33];
public plugin_init(){
register_plugin
("Naber",
"1.0",
"Berk");
}
public client_putinserver(iP_ID){
iG_MyTime[iP_ID] = get_systime();
}
//Oyundan cikarsa ?
#if AMXX_VERSION_NUM < 183
public client_disconnect(iP_ID){
new iL_DiffTime = get_systime()-iG_MyTime[iP_ID];
//Oyunda durdugu saniye iL_DiffTime degiskeni içinde
}
#else
public client_disconnected(iP_ID){
new iL_DiffTime = get_systime()-iG_MyTime[iP_ID];
//Oyunda durdugu saniye iL_DiffTime degiskeni içinde
}
#endif
// Map degisirse ?
public plugin_end(){
new sL_Players[32],iL_Num,iL_GetID,iL_DiffTime;
get_players(sL_Players,iL_Num);
for(new i; i < iL_Num; i++){
iL_GetID = sL_Players[i];
iL_DiffTime = get_systime()-iG_MyTime[iL_GetID];
//Oyunda durdugu saniye iL_DiffTime degiskeni içinde
}
}
Ondan önce şu istemediğim kişilerin verisinden kurtulabilseydim keşke yine de teşekkürler attığın da lazımdı vaktim olduğunda üzerinde çalışacağım
(22-02-2020, 22:59)ITenGriTR Adlı Kullanıcıdan Alıntı: Yakında boş vakit bulursam bir kaç eklenti yazacağım baya aktif kullanılan ve bu eklenti onlardan birisi
Bu mesajı şimdi gördüm o boş vakit insana zor denk geliyor umarım yakında denk gelir ben hiç bulaşmıyorum o zaman işi uzmana bırakıyorum

Son Düzenleme: 22-02-2020, 23:04, Düzenleyen: ByBuLuT.
Benzer Konular
Yorum
581
Okunma
28-03-2026, 23:15
)


