Selamlar dostlar, ben SqueSarsılmaz bugün kendi kodladığım yaptığım trucker sistemini paylaşma gereği bulundum her türlü teknik destekde bulunacağım hata çıkarsa lütfen konunun altında yazın iyi kullanımlar dilerim. :elsalla:
CMD'lerin bulunduğu yere.
CMD:trucker(playerid)
{
new gerekensefer, para;
switch(PlayerData[playerid][TruckerSeviyesi])
{
case 0: gerekensefer = 50, para = 430;
case 1: gerekensefer = 80, para = 500;
case 2: gerekensefer = 110, para = 515;
case 3: gerekensefer = 140, para = 550;
case 4: gerekensefer = 170, para = 600;
case 5: gerekensefer = 200, para = 620;
}
new vehicleid = GetPlayerVehicleID(playerid);
if(!IsPlayerConnected(playerid)) return 1;
if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return HataMesajGonder(playerid, "Araçta olmanız gerekmekte.");
if(!IsPlayerInRangeOfPoint(playerid, 5.0, 1228.6822,183.5680,20.1310)) return HataMesajGonder(playerid, "Trucker mesleği noktasına yakın değilsiniz.");
if(GetVehicleModel(GetPlayerVehicleID(playerid)) != 499) return HataMesajGonder(playerid, "Bu araç trucker mesleği için uygun değil.");
new string[1024], string2[250];
strcat(string, "Y?lem\tAd\n");
strcat(string, "{C3C3C3}» {ffffff}Başlangıç:\t{ffffff}Montgomery\n");
strcat(string, "{C3C3C3}» {ffffff}Bitiş:\t{ffffff}Blueberry\n");
format(string2,sizeof(string2),"{C3C3C3}» {ffffff}Araç Modeli:\t{ffffff}%s\n",ReturnVehicleModelName(GetVehicleModel(vehicleid)));
strcat(string,string2);
format(string2,sizeof(string2),"{C3C3C3}» {ffffff}Trucker Seviyesi:\t{ffffff}%d/5\n",PlayerData[playerid][TruckerSeviyesi]);
strcat(string,string2);
format(string2,sizeof(string2),"{C3C3C3}» {ffffff}Sefer Hakkı:\t{ffffff}%d\n",gerekensefer - PlayerData[playerid][TruckerSeferi]);
strcat(string,string2);
format(string2,sizeof(string2),"{C3C3C3}» {ffffff} Kazanç:\t{ffffff}%s\n",FormatNumber(para));
strcat(string,string2);
strcat(string, " \n");
strcat(string, " \n");
strcat(string, " \n");
strcat(string, " \n");
strcat(string, "{996600}» {ffffff}Yük Al\n");
Dialog_Show(playerid, Trucker, DIALOG_STYLE_TABLIST_HEADERS, "{996600}Trucker Ağı: {ffffff}Ana Menü", string, "Seç", "{FF6347}Kapat");
return 1;
}
Dialog:Trucker(playerid, response, listitem, inputtext[])
{
if(response)
{
switch(listitem)
{
case 0:
{
HataMesajGonder(playerid, "Bu bölüme erişim yok.");
}
case 1:
{
HataMesajGonder(playerid, "Bu bölüme erişim yok.");
}
case 2:
{
HataMesajGonder(playerid, "Bu bölüme erişim yok.");
}
case 3:
{
HataMesajGonder(playerid, "Bu bölüme erişim yok.");
}
case 4:
{
HataMesajGonder(playerid, "Bu bölüme erişim yok.");
}
case 10:
{
new para;
switch(PlayerData[playerid][TruckerSeviyesi])
{
case 0: para = 150;
case 1: para = 360;
case 2: para = 410;
case 3: para = 460;
case 4: para = 510;
case 5: para = 800;
}
if(TruckerYuk[GetPlayerVehicleID(playerid)] == 1) return HataMesajGonder(playerid, "Bu araca zaten yük alınmıyor..");
Dialog_Show(playerid, TruckerYuk, DIALOG_STYLE_MSGBOX, "{C3C3C3}Trucker Alım: {ffffff}Yük Al", "{996600}» {AFAFAF}Baslangıç: {996600}Montgomery\n{996600}» {AFAFAF}Bitiş: {996600}Blueberry\n{996600}» {AFAFAF}Kazanç: {996600}%s\n{996600}» {666666}Taşınacak Yük: {996600}Domates\n", "Başla", "Iptal", FormatNumber(para));
}
}
}
return 1;
}
forward truckeryukleniyor(playerid);
public truckeryukleniyor(playerid)
{
TogglePlayerControllable(playerid,true);
GameTextForPlayer(playerid,"~g~Icki kutulari yuklendi.",3000,3);
TruckerYuk[GetPlayerVehicleID(playerid)] = 1;
SetPlayerCheckpoint(playerid, 1247.8058,158.2743,19.5238, 10.0);
BilgiMesajGonder(playerid, "Domates kutuları alındı, haritada işaretlenen Blueberry bölgesine yükleri teslim ediniz. (İptal için '/truckeriptal')");
return 1;
}
CMD:truckeriptal(playerid)
{
if(!IsPlayerConnected(playerid)) return 1;
if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return HataMesajGonder(playerid, "Mesleği iptal etmek için kamyonda bulunmalısınız.");
if(TruckerYuk[GetPlayerVehicleID(playerid)] == 0) return HataMesajGonder(playerid, "Bu araçta yük bulunmamakta.");
TruckerYuk[GetPlayerVehicleID(playerid)] = 0;
new vehicleid = GetPlayerVehicleID(playerid);
BilgiMesajGonder(playerid, "Trucker mesleğini iptal ettiniz.");
DisablePlayerCheckpoint(playerid);
return 1;
}
Dialog:TruckerYuk(playerid, response, listitem, inputtext[])
{
if(response)
{
if(!IsPlayerConnected(playerid)) return 1;
TogglePlayerControllable(playerid,false);
SetTimerEx("truckeryukleniyor",2500,false,"i",playerid);
BilgiMesajGonder(playerid, "Domates kutuları araca yükleniyor, bekleyin.");
}
return 1;
}
Labellerin oraya.
CreateDynamicPickup(1239, 1, 1228.7434,183.8108,20.0998);
CreateDynamic3DTextLabel("[Trucker Alım Noktası]\n \n/trucker", COLOR_DEPARTMENT, 1228.7434,183.8108,20.0998, 10.0);
CreateDynamicPickup(1239, 1, 89.9208,-306.1798,1.5781);
CreateDynamic3DTextLabel("[Trucker Teslim Noktası]\n \nYük Teslim Noktası", COLOR_DEPARTMENT, 89.9208,-306.1798,1.5781, 10.0);
PlayerData
TruckerSeviyesi,
TruckerSeferi,
New tanımlarının bulunduğu yere
new TruckerYuk[MAX_VEHICLES];
Mesaj Tanımları
#define MesajGonder(%0,%1) \
SendClientMessageEx(%0, 0xFFFF00AA, "[!]{C3C3C3} "%1)
#define SunucuMesaji(%0,%1) \
SendClientMessageEx(%0, 0xFFFF00AA, "[!]{C3C3C3} "%1)
#define BilgiMesajGonder(%0,%1) \
SendClientMessageEx(%0, 0xFFFF00AA, "[BILGI]{C3C3C3} "%1)
#define KullanimMesaji(%0,%1) \
SendClientMessageEx(%0, 0xFFFF00AA, "{C3C3C3}[BILGI]{C3C3C3} "%1)
#define HataMesajGonder(%0,%1) \
SendClientMessageEx(%0, 0xFF0000AA, "[HATA] "%1)
#define HataMesaji(%0,%1) \
SendClientMessageEx(%0, 0xFF0000AA, "[HATA] "%1)
#define SendAdminAction(%0,%1) \
SendClientMessageEx(%0, 0xC93636AA, "[!] {F5F5F5}"%1)
#define KullanimMesajGonder(%0,%1) \
SendClientMessageEx(%0, 0xC93636AA, "{C93636}[!]{C93636} "%1)
SİSTEM GÖRÜNTÜSÜ
Bir kaç hafta önce yaptığım için new görüntü bulamadım, kendi sunucunuzun konseptine göre fiyatları değiştirebilirsiniz iyi günler iyi kullanımlar.
Dipnot: Sistemin "hatamesaji" gibi tanımlar kendi moduma göre tanımlanmıştır, herkes kendi moduna göre tanımlıyabilir çok zor bir şey değil.
#1
Güzel.
Çalıntı, https://www.gtamulti.com/forum/kilitli-konular-80/trucker-meslegi-beta/ gerçeği burada yer almakta.
Alıntı yapılan: Crius - 09 Şubat 2022, 19:17:35Çalıntı, https://www.gtamulti.com/forum/kilitli-konular-80/trucker-meslegi-beta/ gerçeği burada yer almakta.
Attığın linkdeki paylaşılan sistemin derinliklerine inen birisi ne kadar çıkacak para buglarını tahmin edebilir, benim paylaştığımdakinde çıkıcak tüm para bug fonksiyonları fix iyi forumlar. :D
Alıntı yapılan: undefinedADD-ON olarak paylaştığınız kodlar her mod için uygun olmalıdır. Modunuzdan aldığınız kodları tüm modlara uygun hale getirmelisiniz. Eksik olmamalı ve hata, uyarı vermemelidir.
:kahkaha: :kahkaha: :kahkaha: :kahkaha: :kahkaha:
Alıntı yapılan: AloneWarrioR - 09 Şubat 2022, 19:53:32Alıntı yapılan: undefinedADD-ON olarak paylaştığınız kodlar her mod için uygun olmalıdır. Modunuzdan aldığınız kodları tüm modlara uygun hale getirmelisiniz. Eksik olmamalı ve hata, uyarı vermemelidir.
:kahkaha: :kahkaha: :kahkaha: :kahkaha: :kahkaha:
Enum eklemesi yapıyorum bir dakika.
Alıntı yapılan: SqueSarsilmaz - 09 Şubat 2022, 17:43:25Selamlar dostlar, ben SqueSarsılmaz bugün kendi kodladığım yaptığım trucker sistemini paylaşma gereği bulundum her türlü teknik destekde bulunacağım hata çıkarsa lütfen konunun altında yazın iyi kullanımlar dilerim. :elsalla:
CMD'lerin bulunduğu yere.
CMD:trucker(playerid)
{
new gerekensefer, para;
switch(PlayerData[playerid][TruckerSeviyesi])
{
case 0: gerekensefer = 50, para = 430;
case 1: gerekensefer = 80, para = 500;
case 2: gerekensefer = 110, para = 515;
case 3: gerekensefer = 140, para = 550;
case 4: gerekensefer = 170, para = 600;
case 5: gerekensefer = 200, para = 620;
}
new vehicleid = GetPlayerVehicleID(playerid);
if(!IsPlayerConnected(playerid)) return 1;
if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return HataMesajGonder(playerid, "Araçta olmanız gerekmekte.");
if(!IsPlayerInRangeOfPoint(playerid, 5.0, 1228.6822,183.5680,20.1310)) return HataMesajGonder(playerid, "Trucker mesleği noktasına yakın değilsiniz.");
if(GetVehicleModel(GetPlayerVehicleID(playerid)) != 499) return HataMesajGonder(playerid, "Bu araç trucker mesleği için uygun değil.");
new string[1024], string2[250];
strcat(string, "Y?lem\tAd\n");
strcat(string, "{C3C3C3}» {ffffff}Başlangıç:\t{ffffff}Montgomery\n");
strcat(string, "{C3C3C3}» {ffffff}Bitiş:\t{ffffff}Blueberry\n");
format(string2,sizeof(string2),"{C3C3C3}» {ffffff}Araç Modeli:\t{ffffff}%s\n",ReturnVehicleModelName(GetVehicleModel(vehicleid)));
strcat(string,string2);
format(string2,sizeof(string2),"{C3C3C3}» {ffffff}Trucker Seviyesi:\t{ffffff}%d/5\n",PlayerData[playerid][TruckerSeviyesi]);
strcat(string,string2);
format(string2,sizeof(string2),"{C3C3C3}» {ffffff}Sefer Hakkı:\t{ffffff}%d\n",gerekensefer - PlayerData[playerid][TruckerSeferi]);
strcat(string,string2);
format(string2,sizeof(string2),"{C3C3C3}» {ffffff} Kazanç:\t{ffffff}%s\n",FormatNumber(para));
strcat(string,string2);
strcat(string, " \n");
strcat(string, " \n");
strcat(string, " \n");
strcat(string, " \n");
strcat(string, "{996600}» {ffffff}Yük Al\n");
Dialog_Show(playerid, Trucker, DIALOG_STYLE_TABLIST_HEADERS, "{996600}Trucker Ağı: {ffffff}Ana Menü", string, "Seç", "{FF6347}Kapat");
return 1;
}
Dialog:Trucker(playerid, response, listitem, inputtext[])
{
if(response)
{
switch(listitem)
{
case 0:
{
HataMesajGonder(playerid, "Bu bölüme erişim yok.");
}
case 1:
{
HataMesajGonder(playerid, "Bu bölüme erişim yok.");
}
case 2:
{
HataMesajGonder(playerid, "Bu bölüme erişim yok.");
}
case 3:
{
HataMesajGonder(playerid, "Bu bölüme erişim yok.");
}
case 4:
{
HataMesajGonder(playerid, "Bu bölüme erişim yok.");
}
case 10:
{
new para;
switch(PlayerData[playerid][TruckerSeviyesi])
{
case 0: para = 150;
case 1: para = 360;
case 2: para = 410;
case 3: para = 460;
case 4: para = 510;
case 5: para = 800;
}
if(TruckerYuk[GetPlayerVehicleID(playerid)] == 1) return HataMesajGonder(playerid, "Bu araca zaten yük alınmıyor..");
Dialog_Show(playerid, TruckerYuk, DIALOG_STYLE_MSGBOX, "{C3C3C3}Trucker Alım: {ffffff}Yük Al", "{996600}» {AFAFAF}Baslangıç: {996600}Montgomery\n{996600}» {AFAFAF}Bitiş: {996600}Blueberry\n{996600}» {AFAFAF}Kazanç: {996600}%s\n{996600}» {666666}Taşınacak Yük: {996600}Domates\n", "Başla", "Iptal", FormatNumber(para));
}
}
}
return 1;
}
forward truckeryukleniyor(playerid);
public truckeryukleniyor(playerid)
{
TogglePlayerControllable(playerid,true);
GameTextForPlayer(playerid,"~g~Icki kutulari yuklendi.",3000,3);
TruckerYuk[GetPlayerVehicleID(playerid)] = 1;
SetPlayerCheckpoint(playerid, 1247.8058,158.2743,19.5238, 10.0);
BilgiMesajGonder(playerid, "Domates kutuları alındı, haritada işaretlenen Blueberry bölgesine yükleri teslim ediniz. (İptal için '/truckeriptal')");
return 1;
}
CMD:truckeriptal(playerid)
{
if(!IsPlayerConnected(playerid)) return 1;
if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return HataMesajGonder(playerid, "Mesleği iptal etmek için kamyonda bulunmalısınız.");
if(TruckerYuk[GetPlayerVehicleID(playerid)] == 0) return HataMesajGonder(playerid, "Bu araçta yük bulunmamakta.");
TruckerYuk[GetPlayerVehicleID(playerid)] = 0;
new vehicleid = GetPlayerVehicleID(playerid);
BilgiMesajGonder(playerid, "Trucker mesleğini iptal ettiniz.");
DisablePlayerCheckpoint(playerid);
return 1;
}
Dialog:TruckerYuk(playerid, response, listitem, inputtext[])
{
if(response)
{
if(!IsPlayerConnected(playerid)) return 1;
TogglePlayerControllable(playerid,false);
SetTimerEx("truckeryukleniyor",2500,false,"i",playerid);
BilgiMesajGonder(playerid, "Domates kutuları araca yükleniyor, bekleyin.");
}
return 1;
}
Labellerin oraya.
CreateDynamicPickup(1239, 1, 1228.7434,183.8108,20.0998);
CreateDynamic3DTextLabel("[Trucker Alım Noktası]\n \n/trucker", COLOR_DEPARTMENT, 1228.7434,183.8108,20.0998, 10.0);
CreateDynamicPickup(1239, 1, 89.9208,-306.1798,1.5781);
CreateDynamic3DTextLabel("[Trucker Teslim Noktası]\n \nYük Teslim Noktası", COLOR_DEPARTMENT, 89.9208,-306.1798,1.5781, 10.0);
PlayerData
TruckerSeviyesi,
TruckerSeferi,
New tanımlarının bulunduğu yere
new TruckerYuk[MAX_VEHICLES];
Mesaj Tanımları
#define MesajGonder(%0,%1) \
SendClientMessageEx(%0, 0xFFFF00AA, "[!]{C3C3C3} "%1)
#define SunucuMesaji(%0,%1) \
SendClientMessageEx(%0, 0xFFFF00AA, "[!]{C3C3C3} "%1)
#define BilgiMesajGonder(%0,%1) \
SendClientMessageEx(%0, 0xFFFF00AA, "[BILGI]{C3C3C3} "%1)
#define KullanimMesaji(%0,%1) \
SendClientMessageEx(%0, 0xFFFF00AA, "{C3C3C3}[BILGI]{C3C3C3} "%1)
#define HataMesajGonder(%0,%1) \
SendClientMessageEx(%0, 0xFF0000AA, "[HATA] "%1)
#define HataMesaji(%0,%1) \
SendClientMessageEx(%0, 0xFF0000AA, "[HATA] "%1)
#define SendAdminAction(%0,%1) \
SendClientMessageEx(%0, 0xC93636AA, "[!] {F5F5F5}"%1)
#define KullanimMesajGonder(%0,%1) \
SendClientMessageEx(%0, 0xC93636AA, "{C93636}[!]{C93636} "%1)
SİSTEM GÖRÜNTÜSÜ
Bir kaç hafta önce yaptığım için new görüntü bulamadım, kendi sunucunuzun konseptine göre fiyatları değiştirebilirsiniz iyi günler iyi kullanımlar.
Dipnot: Sistemin "hatamesaji" gibi tanımlar kendi moduma göre tanımlanmıştır, herkes kendi moduna göre tanımlıyabilir çok zor bir şey değil.
Düzeltildi.
Text bir sistem çok zor değil ama yeni başlayanlar kullanabilir
Alıntı bir sistem fakat genede eline sağlık.
Alıntı yapılan: Daxy - 09 Şubat 2022, 20:50:45Text bir sistem çok zor değil ama yeni başlayanlar kullanabilir
Teşekkür ederim, PAWN'a yeni başlıyanlar için kullanılabilir & geliştirilebilir bir sistem.
Alıntı yapılan: Synax - 09 Şubat 2022, 21:14:13Alıntı bir sistem fakat genede eline sağlık.
Teşekkür ederim, alıntı fakat bulduğumda acayip hatalıydı tamamiyle hatalarını düzelttim paylaştım, paylaşılan konu arşivde zaten.
:(
Paylaşım için teşekkürler. Sistemin temeli başka birine ait ise "kodladığım, yaptığım" demek yerine "hatalarını giderdiğim" gibi sözler kullanman daha hoş olur. Bu seni asla küçültmez aksine alkışlanırsın.
Eline sağlık, yeni başlıyanların işine yarıyabilir.
Paylaşım için teşekkürler yeni başlayanlar için faydalı olacaktır, forumda bu tarz içerikler görmek güzel.
Alıntı yapılan: Bölüm KurallarıPaylaştığınız mod, forumda daha önce paylaşılmış modlar ile taban olarak (yazılımsal) ciddi benzerlikler taşıyorsa bu modu paylaşamazsınız. Paylaşılması durumunda içerik kaldılır ve üye uyarılır, devamı halinde uzaklaştırma alabilirsiniz. Bu tür modlar, asıl üreticisinden izin alındığı taktirde paylaşılabilir. İzin alınırsa, forum konunuzun herhangi bir yerine; "Mod altyapısı: XXX kişisine aittir." metnini eklemeniz zorunludur.
Asıl Konu:
https://www.gtamulti.com/forum/kilitli-konular-80/trucker-meslegi-beta/K/A