windowsi indirmek için tıklayın (https://raw.githubusercontent.com/valychbreak/SAMP-WinDoSi.inc/master/include/windosi.inc).
En üstlere yapıştırın
#include <windosi>
#if !defined IsValidVehicle
native IsValidVehicle(vehicleid);
#endif
CMD'lerin olduğu yerlere yapıştırın.
CMD:sirentak(playerid) {
new vehicleid;
// if(GetFactionType(playerid) != BIRLIK_LSPD) return 0;
vehicleid = GetPlayerVehicleID(playerid);
if(IsPlayerInVehicle(playerid, vehicleid) == 0) return SendClientMessage(playerid, -1, "aracta degilsin"); // thx 4 sug. ThePosition
InstallVehicleSiren(vehicleid);
PutPlayerInVehicle(playerid, vehicleid, 0);
return 1;
}
CMD:sirencikar(playerid) {
new vehicleid;
// if(GetFactionType(playerid) != BIRLIK_LSPD) return 0;
vehicleid = GetPlayerVehicleID(playerid);
if(IsPlayerInVehicle(playerid, vehicleid) == 0) return SendClientMessage(playerid, -1, "aracta degilsin"); // thx 4 sug. ThePosition
UninstallVehicleSiren(vehicleid);
PutPlayerInVehicle(playerid, vehicleid, 0);
return 1;
}
CMD:kapiac(playerid, params[]) {
new id, doorNumber;
id = GetNearestVehicle(playerid);
if(id == 65535) // returns 65535 if you dont have a car with you
return SendClientMessage(playerid, -1, "araba nerde");
if(sscanf(params, "i", doorNumber))
return SendClientMessage(playerid, -1, "/kapiac [1-4]");
if(doorNumber < 1 || doorNumber > 4)
return SendClientMessage(playerid, -1, "/kapiac [1-4]");
if(doorNumber == 1 || doorNumber == 3) {
ApplyAnimation(playerid, "PED", "CAR_OPEN_RHS", 4.1, 0, 1, 0, 1, 1, 1); // this right animation
} else if(doorNumber == 2 || doorNumber == 4) {
ApplyAnimation(playerid, "PED", "CAR_OPEN_LHS", 4.1, 0, 1, 0, 1, 1, 1); // this left animation
}
OpenVehicleDoor(id, doorNumber);
// TODO: /ame add command
return 1;
}
CMD:kapikapat(playerid, params[]) {
new id, doorNumber;
id = GetNearestVehicle(playerid);
if(id == 65535)
return SendClientMessage(playerid, -1, "araba nerde");
if(sscanf(params, "i", doorNumber))
return SendClientMessage(playerid, -1, "/kapikapat [1-4]");
if(doorNumber < 1 || doorNumber > 4)
return SendClientMessage(playerid, -1, "/kapikapat [1-4]");
if(doorNumber == 1 || doorNumber == 3) {
ApplyAnimation(playerid, "PED", "CAR_CLOSE_RHS", 4.1, 0, 1, 0, 1, 1, 1); // this right animation
} else if(doorNumber == 2 || doorNumber == 4) {
ApplyAnimation(playerid, "PED", "CAR_CLOSE_LHS", 4.1, 0, 1, 0, 1, 1, 1); // this left animation
}
CloseVehicleDoor(id, doorNumber);
// TODO: /ame add command
return 1;
}
CMD:camac(playerid, params[]) {
new id, windowNumber;
id = GetPlayerVehicleID(playerid);
if(id == 0) return SendClientMessage(playerid, -1, "araca bin");
if(sscanf(params, "i", windowNumber))
return SendClientMessage(playerid, -1, "/camac [1-4]");
if(windowNumber < 1 || windowNumber > 4)
return SendClientMessage(playerid, -1, "/camac [1-4]");
OpenVehicleWindow(id, windowNumber);
// TODO: /ame add command
return 1;
}
CMD:c***apat(playerid, params[]) {
new id, windowNumber;
id = GetPlayerVehicleID(playerid);
if(id == 0) return SendClientMessage(playerid, -1, "araca bin");
if(sscanf(params, "i", windowNumber))
return SendClientMessage(playerid, -1, "/c***apat [1-4]");
if(windowNumber < 1 || windowNumber > 4)
return SendClientMessage(playerid, -1, "/c***apat [1-4]");
CloseVehicleWindow(id, windowNumber);
// TODO: /ame add command
return 1;
}
stock GetNearestVehicle(playerid) // nereden buldum hatırlamıyorum ama tşk
{
static
Float:fX,
Float:fY,
Float:fZ;
for (new i = 1; i != MAX_VEHICLES; i ++) if (IsValidVehicle(i) && GetVehiclePos(i, fX, fY, fZ))
{
if (IsPlayerInRangeOfPoint(playerid, 3.5, fX, fY, fZ)) return i;
}
return INVALID_VEHICLE_ID;
}
Dostlar selam, bir arkadaşım unmarked araçlara nasıl siren takabiliriz gibisinden bir şey sormuştu, küçük bir googlelama ile windowsi denilen include'u buldum ve bir kaç example code yazdım. Bu durumda YSF'yi de inceledim ve SAMP_03DL ile çalıştırdığımda nedense siren değerini değiştirsem de işlemedi. Unmarked araçların yanına araçlarınızda kapılarınızın camı açıp kapatma, kapılarınızı açma kapatma gibisinden fonksiyonları ekledim. Böylece rol esnasında birinin kapısını açma gibisinden tatlı rolleri yapabilirsiniz. Geliştirmek isteyen ya da fikir sunmak/yapamadığı yerlerde çözüm isteyen arkadaşlar bu konu altında geliştirme yaparlarsa çok sevinirim, iyi forumlar. :serefe:
başarılı bir o kadarda güzel bir include
gardasım yapmıs ya.
Eline sağlık!
Birkaç hatalı kullanım var galiba:
CMD:sirentak(playerid) {
new vehicleid;
// if(GetFactionType(playerid) != BIRLIK_LSPD) return 0;
vehicleid = GetPlayerVehicleID(playerid);
InstallVehicleSiren(vehicleid);
PutPlayerInVehicle(playerid, vehicleid, 0);
return 1;
}
Burada oyuncu zaten araçtayken PutPlayerInVehicle fonksiyonunu kullanmaya gerek var mı acaba, ek olarak oyuncunun araçta olup olmadığı da kontrol edilmemiş.
new id, doorNumber;
id = GetNearestVehicle(playerid);
if(doorNumber == 65535) // returns 65535 if you dont have a car with you
return SendClientMessage(playerid, -1, "araba nerde");
if(sscanf(params, "i", doorNumber))
return SendClientMessage(playerid, -1, "/kapiac [1-4]");Bu kısımda ise doorNumber adlı değişken birinci koşulda sürekli olarak 0 döneceği için koşul sağlıklı çalışmayacak, sscanf parametresinden sonra bu koşulu kullanmanız sorunu ortadan kaldıracaktır. Bu arada paylaşım için teşekkürler, iyi forumlar
Alıntı yapılan: ThePosition - 14 Temmuz 2021, 15:42:38Birkaç hatalı kullanım var galiba:
CMD:sirentak(playerid) {
new vehicleid;
// if(GetFactionType(playerid) != BIRLIK_LSPD) return 0;
vehicleid = GetPlayerVehicleID(playerid);
InstallVehicleSiren(vehicleid);
PutPlayerInVehicle(playerid, vehicleid, 0);
return 1;
}
Burada oyuncu zaten araçtayken PutPlayerInVehicle fonksiyonunu kullanmaya gerek var mı acaba, ek olarak oyuncunun araçta olup olmadığı da kontrol edilmemiş.
new id, doorNumber;
id = GetNearestVehicle(playerid);
if(doorNumber == 65535) // returns 65535 if you dont have a car with you
return SendClientMessage(playerid, -1, "araba nerde");
if(sscanf(params, "i", doorNumber))
return SendClientMessage(playerid, -1, "/kapiac [1-4]");Bu kısımda ise doorNumber adlı değişken birinci koşulda sürekli olarak 0 döneceği için koşul sağlıklı çalışmayacak, sscanf parametresinden sonra bu koşulu kullanmanız sorunu ortadan kaldıracaktır. Bu arada paylaşım için teşekkürler, iyi forumlar
Selam, PutPlayerInVehicle fonksiyonunun kullanılma sebebi, include yüzünden aracımızı silip tekrardan oluşturmasından kaynaklı(include'u incelemek için tıklayın (https://raw.githubusercontent.com/valychbreak/SAMP-WinDoSi.inc/master/include/windosi.inc)) olduğu için kişiyi araca tekrardan yerleştirmek için kullandığım bir fonksiyon idi. Ve evet haklısınız, aslında kontrol etse iyi olabilirdi. Bu aklımdan nedense çıkmış.
Etrafınızda araç bulunmuyorsa size 65535 değerini döndürüyor, orada not olarak eklemiştim. O yüzden en başta onu yazdırdım ki eğer etrafında bir araç yok ise "araba nerde" diye bir yazı yazdırsın, eğer bir araç var ise de sscanf ile hangi kapıyı açmak istediğini belirten bir sscanf devreye giriyor. Teşekkür ederim, iyi forumlar.
new vehicleid;
vehicleid = GetPlayerVehicleID(playerid);
if(IsPlayerInVehicle(playerid, vehicleid) == 0)
yaparak kodu uzatmak yerine:
if (!GetPlayerVehicleID(playerid)) return SendClientMessage(playerid, -1, "Araçta değilsiniz!");
ya da
if (!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, -1, "Araçta değilsiniz!");
yapabilirsin
@Hasan Sangrento
Alıntı yapılan: Radless - 14 Temmuz 2021, 19:46:27new vehicleid;
vehicleid = GetPlayerVehicleID(playerid);
if(IsPlayerInVehicle(playerid, vehicleid) == 0)
yaparak kodu uzatmak yerine:
if (!GetPlayerVehicleID(playerid)) return SendClientMessage(playerid, -1, "Araçta değilsiniz!");
ya da
if (!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, -1, "Araçta değilsiniz!");
yapabilirsin @Hasan Sangrento
Evet aslında yalnız sonuç olarak ikisi de aynı kapıya çıkıyor, çok teşekkür ederim öneri için.
bu adam yapıyor
Alıntı yapılan: sharax - 14 Temmuz 2021, 20:55:40bu adam yapıyor
evet efeniiim, kopernik pizza. hangi sistemi yaptırmak istersiniz? :kahkaha2:
@Hasan Sangrento merhabalar. Evet, normal koşullar altında bahsettiğiniz değerin dönmesi gerekiyor ama orada doorNumber adlı değişken koşul haricinde hiçbir yerde kullanılmadığı için varsayılan değeri olan 0 değerini döndürecektir.
Alıntı yapılan: ThePosition - 14 Temmuz 2021, 21:25:44@Hasan Sangrento merhabalar. Evet, normal koşullar altında bahsettiğiniz değerin dönmesi gerekiyor ama orada doorNumber adlı değişken koşul haricinde hiçbir yerde kullanılmadığı için varsayılan değeri olan 0 değerini döndürecektir.
Ne dengesiz herifim ya. Kusura bakmayın gerçekten if statement'i "id" kısmına tanımlamam gerekirken doorNumber'a tanımlamışım. Düzeltiyorum çok sağolun.
Elline saglik :helal:
Güzel yorumlarınız için çok teşekkür ederim, ayriyeten
@ThePosition 'a ayrı teşekkür ederim. Altı yıl önceki bir include olduğu için biraz sıkıntılı olması muhtemel evet, yapamadığınız bir yer olursa bu konu üzerinden iletişime geçmeyi unutmayın.