[TOOL]CS 1.6NAV PARSER
Counter-Strike 1.6 Path Finder, A-Star, Navigation Parser Aracı.

Counter-Strike 1.6 (Z-Bot) botlarının oluşturduğu .nav dosyalarını .ini formatına çevirmenizi sağlar!
[.Nav]Oluşturma Rehberi:
Yeni .nav oluşturacağınız haritayı seçin ve haritanın analiz olmasını bekleyin.
İşlem bittikten sonra .nav dosyasını (cstrike/maps) klasörünüzden alıp nav parsere gönderin.
Yeni .nav oluşturacağınız haritayı seçin ve haritanın analiz olmasını bekleyin.
İşlem bittikten sonra .nav dosyasını (cstrike/maps) klasörünüzden alıp nav parsere gönderin.

[.Nav]Okuma Rehberi:
Nav Parser analiz yaptıktan sonra sağ üstte map ismi .ini dosyasını indir'e tıkla
İnen .ini dosyasını (amxmodx/configs/waypoints) klasörü oluşturup içerisine ekleyelim
Nav Parser analiz yaptıktan sonra sağ üstte map ismi .ini dosyasını indir'e tıkla
İnen .ini dosyasını (amxmodx/configs/waypoints) klasörü oluşturup içerisine ekleyelim
PHP Kod:
#include <amxmodx>
enum _:WaypointBilgisi {
WAYPOINT_ID,
Float:WAYPOINT_X,
Float:WAYPOINT_Y,
Float:WAYPOINT_Z,
Float:WAYPOINT_GENISLIK,
Float:WAYPOINT_YUKSEKLIK
};
enum _:BaglantiBilgisi {
BAGLANTI_NEREDEN,
BAGLANTI_NEREYE
};
new Array:WaypointListesi;
new Array:BaglantiListesi;
new HARITA_ISMI[32];
new DOSYA_YOLU[128];
new CONFIG_YOLU[128];
public plugin_init() {
get_mapname(HARITA_ISMI, charsmax(HARITA_ISMI));
get_localinfo("amxx_configsdir", CONFIG_YOLU, charsmax(CONFIG_YOLU));
formatex(DOSYA_YOLU, charsmax(DOSYA_YOLU), "%s/waypoints/%s_waypoints.ini", CONFIG_YOLU, HARITA_ISMI);
WaypointListesi = ArrayCreate(WaypointBilgisi);
BaglantiListesi = ArrayCreate(BaglantiBilgisi);
@WaypointYukle();
}
public plugin_end() {
ArrayDestroy(WaypointListesi);
ArrayDestroy(BaglantiListesi);
}
@WaypointYukle() {
if(!file_exists(DOSYA_YOLU)) {
log_amx("[>] Hata: %s dosyasi bulunamadi!", DOSYA_YOLU);
return;
}
new Dosya = fopen(DOSYA_YOLU, "r");
if(!Dosya) {
log_amx("[>] Hata: %s dosyasi acilamadi!", DOSYA_YOLU);
return;
}
new Satir[128], Kategori = 0;
while(fgets(Dosya, Satir, charsmax(Satir))) {
trim(Satir);
if(Satir[0] == EOS || Satir[0] == ';') {
continue;
}
if(Satir[0] == '[') {
if(containi(Satir, "[waypoints]") != -1) Kategori = 1;
else if(containi(Satir, "[connections]") != -1) Kategori = 2;
else Kategori = 0;
continue;
}
switch(Kategori) {
case 1: {
new StrID[6], StrX[12], StrY[12], StrZ[12], StrW[12], StrH[12];
parse(Satir,
StrID, charsmax(StrID),
StrX, charsmax(StrX),
StrY, charsmax(StrY),
StrZ, charsmax(StrZ),
StrW, charsmax(StrW),
StrH, charsmax(StrH)
);
new Veri[WaypointBilgisi];
Veri[WAYPOINT_ID] = str_to_num(StrID);
Veri[WAYPOINT_X] = str_to_float(StrX);
Veri[WAYPOINT_Y] = str_to_float(StrY);
Veri[WAYPOINT_Z] = str_to_float(StrZ);
Veri[WAYPOINT_GENISLIK] = str_to_float(StrW);
Veri[WAYPOINT_YUKSEKLIK] = str_to_float(StrH);
ArrayPushArray(WaypointListesi, Veri);
}
case 2: {
new StrNereden[6], StrNereye[6];
parse(Satir, StrNereden, charsmax(StrNereden), StrNereye, charsmax(StrNereye));
new Veri[BaglantiBilgisi];
Veri[BAGLANTI_NEREDEN] = str_to_num(StrNereden);
Veri[BAGLANTI_NEREYE] = str_to_num(StrNereye);
ArrayPushArray(BaglantiListesi, Veri);
}
}
}
fclose(Dosya);
new ToplamWp = ArraySize(WaypointListesi);
new ToplamBaglanti = ArraySize(BaglantiListesi);
server_print("---------------------------------------------------------");
server_print(" [>] Harita: %s", HARITA_ISMI);
server_print(" [>] Waypoint (Noktalar): %d adet", ToplamWp);
server_print(" [>] Connection (Baglantilar): %d adet", ToplamBaglanti);
server_print("---------------------------------------------------------");
}
[.Nav Parser]Eklenti Resimleri:



[TOOL]CS 1.6Nav Parser v1.0
[ TIKLA ]
)

