-
log yapımı
merabalar. yapmak istediğim birşey var ama şöyle söyliyim. Bi log dosyası yapmak istiyorum. Servera giren oyuncuların bilgilerini kaydetsin. Kaydetme sırası da şu şekilde olacak. Mesela cstrike içerisine bi kayitlar.log diye bi dosya oluştursun. içeriginde de satılarda mesela şu şekilde olsun.
1- "Nick" "Steamid" "Ip Adress"
Örnek :
1- "Shakespeare" "STEAM_0:0:25224561" "95.25.66.12"
2- "Hasan" "VALVE_ID_LAN" "123.22.63.11"
gibi bi kayıt oluşturma imkanım varmı acaba ? Teşekkür ederim ilgileriniz icin.
-
Cevap: log yapımı
Elbette var ama bunun nasıl yapıldığını öğrenmek istiyorsan senin için biraz ileri düzey olabilir. Böyle bir plugini kendi başına yapabilmen için, dosya fonksiyonları, array değişkenleri ve for döngüsü hakkında orta düzeyde bilgi gerek.
Yinede istiyorsan, 20-30 dk sonra yapar veririm.
-
Cevap: log yapımı
aslında adamın authid sini almayı nickini çağırmayı ve ip adresini almayı kodlarını biliyorum get_user_ip ve get_user_authid ile dünkü gibi yapabilirm fakat alt alta herkesin sıralı bi şekilde nasıl kayıt ettirebilecegimi bilmiyorum o yuzden yardım istedim.
---------- Alttaki Mesaj Zamani 13:35 ---------- Önceki Mesaj Zamani 13:33 ----------
for komutuyla herkese uygulanıyodu bildigim kadarıyla fakat işte alt alta nası sıralatıcam o var. O yüzden eksik kaldım. Aslında bu plugine ihtiyac duydugum icin istiyorum. Yapıldıktan sonra kodlarını da görürsem bir nevze ögrenmiş olurum
-
Cevap: log yapımı
Tamam 20 dk sonra işim bitince yapar veririm.
-
Cevap: log yapımı
Peki teşekkürler bekliyorum
-
Cevap: log yapımı
PHP- Kodu:
/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <amxmisc>
#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "author"
// Dosyamizin konumunu file adli bir sabite baglayalim.
new const file[] = "addons/amxmodx/configs/kayitlar.log";
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
}
public plugin_cfg() {
// Belirtilen konumda oyle bir dosya yoksa biz yaratalim.
if(!file_exists(file)) {
new f = fopen(file,"wt");
fclose(f);
}
}
public client_putinserver(id) {
// Oyuncu oyuna girdiginde bilgilerini toplayalim
new name[32],steamid[32],ip[32];
get_user_name(id,name,sizeof(name))
get_user_authid(id,steamid,sizeof(steamid))
get_user_ip(id,ip,sizeof(ip),0)
// Eger ismi daha once dosyanin icine yazilmamissa oyuncuyu ekleyecek fonksiyonu calistiralim.
if(!is_name_exist(id,file)) {
add_player(name,steamid,ip)
}
}
// add player fonksiyonunu yaratalim
public add_player(const name[],const steamid[], const ip[]) {
new WriteData[96];
format(WriteData,sizeof(WriteData),"^"%s^" ^"%s^" ^"%s^"",name,steamid,ip)
write_file(file,WriteData)
}
// is_name_exist stockunu yaratalim. Bu Stock eger oyuncunun ismi dosyada yaziliysa true, yazili degilse false a doner.
stock is_name_exist(id,const file[]) {
// Toplam satir sayısını bulalım.
new total_lines = file_size(file,1);
new txtlen,found_matching;
new szLineText[96],user_name[32];
get_user_name(id,user_name,sizeof(user_name))
// Olası tüm satırlar için kontrol yapmamız gerek. Bunun için de for döngüsünü kullanalım.
for( new line ; line < total_lines ; line++ ) { // Satır, toplam satır sayısına eşit olduğunda döngü duracaktır.
// Dosyada belli bir satırı okutmak için bu fonksiyonu kullanalım.
read_file(file,line,szLineText,sizeof(szLineText),txtlen)
// satır boş ise döngüyi baştan alalım. Böylece olası bir boş satır varsa cpu kullanımından tasarruf etmek için
// başa sarıp bir sonraki satıra atlayalım.
if(szLineText[0] == 0) continue;
new arg_name[32],arg_steamid[32],arg_ip[32];
// Parse = parçala fonksiyonu, belli bir stringi bölmek için kullanılır.
// Peki neye göre bölüyor ? Parse tırnak içinde belirtilmiş tüm yazıları parçalar.
// Örnegin ("a" "b" "c") bir string halinde bulunuyorsa, bu fonksiyonla bu stringi 3 farklı stringe ayırabiliriz.
// ("a") , ("b"), ("c") şekline parçalanmış olur
parse(szLineText,arg_name,sizeof(arg_name),arg_steamid,sizeof(arg_steamid),arg_ip,sizeof(arg_ip))
// Eğer ilk parametrede yazan isim bilgisi ile belirtilen oyuncunun ismi aynı ise eşleşme_bulundu değişkenine 1 ekle.
// Ve döngüyü kır. Böylece boşa cpu kullanmamış oluruz.
if(equali(user_name,arg_name)) {
found_matching++
break;
}
continue
}
// Eger eşleşme bulunduysa true ya döndür.
if(found_matching) return true;
// Bulunmadıysa false.
return false;
}
-
Cevap: log yapımı
çok teşekkür ederim plugin çok güzel çalışıyor. Kodları tek tek açıklamışsın biraz anlıyor gibiyim fakat çok eksiğim var :)
---------- Alttaki Mesaj Zamani 16:45 ---------- Önceki Mesaj Zamani 16:35 ----------
birde bişey sorucam bunu oyuncunun görmesini nasıl sağlarım yani şöyle consolda yazı cıksın adam oyuna girince. ben denedim yazmıyo. yanlış publice ekliyorum sanırsam.
public client_putinserver altına
PHP- Kodu:
console_print( id, "[%s] Isminiz, Steam ID'niz ve IP Adresiniz Server Tarafindan Kayit Altina Alinmistir.",szStag);
console_print( id, "[%s] Isminiz, Steam ID'niz ve IP Adresiniz Server Tarafindan Kayit Altina Alinmistir.",szStag);
ekledim fakat yazmıyor genede. bi yanlış mı yapıyorum acaba
-
Cevap: log yapımı
console_print - konsola yazdırır.
client_print(index,print_type,"mesaj",any) - Oyuncunun ekranına yazdırır.
print_type:
print_chat - chat kısmında yazar
print_center - ekranın ortasında yazar
print_console - konsolda yazar
Örnek Kullanım:
console_print(id,print_chat,"Ip Adresiniz Kayit Altina Alindi [%s]",ip)
Bkz: https://www.csplague.com/pawn-plugin...l-konular.html
-
Cevap: log yapımı
PHP- Kodu:
client_print( id, print_console,"[%s] Isminiz, Steam ID'niz ve IP Adresiniz Server Tarafindan Kayit Altina Alinmistir.",szStag);
client_print( id, print_console,"[%s] Isminiz, Steam ID'niz ve IP Adresiniz Server Tarafindan Kayit Altina Alinmistir.",szStag);
bu şekilde düzelttim client_putinserverda yazmadı client_connect publicine deneyecem bide
-
Cevap: log yapımı
Yine print_console yaptın. Yine konsola gönderdin yazıyı :) print_chat yapıcaksın.
Ve bir yazı putinserver da görünmezse connect te hiç görünmez :)
Bir kişi serverına baglanmak için istek gönderdiğinde olaylar şu sırayla gerçekleşir
1. Client Connect
2. Client Authorized
3. Client Putinserver
SEO by vBSEO 3.6.0 ©2011, Crawlability, Inc.