Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // This is a comment
- // Yes I do understand that
- // uncomment the line below if you want to write a filterscript
- // which one?
- /*CREDITS: Wups - For help fixing bugs in middle stage
- Stommpy - A friend with who we started this game and script
- Thanks for people who helped me to test it:
- Damien
- Lakiuz*/
- #include <a_samp>
- #define FOREACH_NO_BOTS
- #include <foreach>
- #define RENK_YESIL 0x33AA33AA
- #define RENK_KIRMIZI 0xAA3333AA
- #define RENK_BEYAZ 0xFFFFFFAA
- #define DEFAULT_TIME 15
- #define DIALOGID 15000
- new
- bool:copchase=false,
- bool:katilmayauygun=false,
- bool:AutoFix=false,
- bool:yapabilirmi=false,
- g_Polis,
- katildi[MAX_PLAYERS],
- Noobie[MAX_PLAYERS],
- g_Kacan[MAX_PLAYERS],
- CoolDown[MAX_PLAYERS],
- g_TarafindanBaslatildi = -1,
- KacmaModu = 1,
- KacmaSuresi = 60,
- KacmaZaman,
- Katilimcilar,
- Text:Info,
- Iterator:Dalyviai<MAX_PLAYERS>
- ;
- public OnFilterScriptInit()
- {
- print("\n--------------------------------------");
- print(" Chase game FS by Awdrius Loaded");
- print("--------------------------------------\n");
- Info=TextDrawCreate(390,5,"Chaser Will be HERE!");
- TextDrawColor(Info,0xFFFFFFFF);
- TextDrawSetShadow(Info,0);
- TextDrawSetOutline(Info,1);
- TextDrawLetterSize(Info,0.5,2);
- TextDrawBackgroundColor(Info,0x00000040);
- TextDrawFont(Info,1);
- for(new i;i<MAX_PLAYERS;i++)
- {
- if(IsPlayerConnected(i))
- {
- g_Polis++;
- Iter_Add(Player,i);
- }
- }
- return 1;
- }
- public OnFilterScriptExit()
- {
- CloseChase();
- TextDrawDestroy(Info);
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- g_Polis++;
- SetPlayerColor(playerid, 0x80808000);
- if(copchase)
- {
- SendClientMessage(playerid, RENK_YESIL, "[COPCHASE] Katılmak için /copchase kullanabilirsin.");
- Noobie[playerid]=true;
- }
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- Iter_Remove(Dalyviai,playerid);
- if(g_TarafindanBaslatildi == playerid && (copchase || katilmayauygun))
- {
- SendClientMessageToAll(0x33AA33AA,"[COPCHASE] Oyun modu bitti, çünkü yaratan kişi oyundan çıktı.");
- foreach(Player, i)
- {
- katildi[i]=false;
- g_Kacan[i]=0;
- Iter_Remove(Dalyviai,i);
- }
- copchase=false;
- katilmayauygun=false;
- }
- g_Polis--;
- katildi[playerid]=false;
- Noobie[playerid]=false;
- if(g_Polis<2 && (copchase || katilmayauygun))
- {
- SendClientMessageToAll(0x33AA33AA,"[COPCHASE] Oyun bitti.");
- foreach(Player, i)
- {
- katildi[i]=false;
- g_Kacan[i]=0;
- Iter_Remove(Dalyviai,i);
- }
- katilmayauygun=false;
- copchase=false;
- }
- else
- {
- if(g_Kacan[playerid]==1)
- {
- new chaser;
- chaser=Iter_Random(Dalyviai);
- while(katildi[chaser]!=1)
- {
- chaser=Iter_Random(Dalyviai);
- }
- new name[MAX_PLAYER_NAME], msg[128];
- GetPlayerName(chaser,name,sizeof(name));
- TextDrawSetString(Text:Info, msg);
- TextDrawShowForAll(Text:Info);
- g_Kacan[chaser]=1;
- g_Kacan[playerid]=0;
- }
- }
- return 1;
- }
- public OnPlayerCommandText(playerid, cmdtext[])
- {
- if (strcmp("/copchase", cmdtext, true) == 0)
- {
- if(!copchase && !katilmayauygun)
- {
- if(g_Polis>1)
- {
- if(!IsPlayerAdmin(playerid))
- {
- new a;
- foreach(Player, i)
- {
- if(IsPlayerAdmin(i)) a++;
- }
- yapabilirmi = (a<1);
- }
- if(IsPlayerAdmin(playerid) || yapabilirmi)
- {
- new MainMenu[200];
- format(MainMenu,sizeof(MainMenu),"Mod [%s]\nOyun süresi [%imin]\nAutoFix[%s]\nOyunu başlat", ((KacmaModu == 1) ? ("Bir kaçan") : ("Son kaçana kadar")), ((KacmaZaman == 0) ? DEFAULT_TIME : (KacmaZaman/60000)), ((AutoFix == false) ? ("Kapalı") : ("Açık")));
- ShowPlayerDialog(playerid,DIALOGID,DIALOG_STYLE_LIST,"COPCHASE",MainMenu,"Seç","Çık");
- }
- else SendClientMessage(playerid,RENK_KIRMIZI,"[COPCHASE] Herhangi bir yetkili aktif değil.");
- return 1;
- }
- else SendClientMessage(playerid, RENK_KIRMIZI, "[COPCHASE] Zaten bir oyundasın.");
- }
- else
- {
- if(IsPlayerAdmin(playerid) || (yapabilirmi && g_TarafindanBaslatildi == playerid))
- {
- new name[MAX_PLAYER_NAME],msg[64];
- GetPlayerName(playerid,name,sizeof(name));
- format(msg,sizeof(msg),"[COPCHASE] %s oyunu durdurdu.",name);
- SendClientMessageToAll(RENK_KIRMIZI,msg);
- CloseChase();
- KillTimer(CloseChase());
- }
- else SendClientMessage(playerid,RENK_KIRMIZI,"[COPCHASE] Oyun zaten başladı!");
- }
- return 1;
- }
- if (strcmp("/join", cmdtext, true) == 0)
- {
- if(!katilmayauygun && !Noobie[playerid]) return SendClientMessage(playerid,RENK_KIRMIZI,"[COPCHASE] Katılma şu anda devredışı!");
- if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SendClientMessage(playerid,RENK_KIRMIZI,"[COPCHASE] Bu komutu kullanabilmek için bir araçta olmalısın.");
- if(!katildi[playerid])
- {
- if(Noobie[playerid])
- {
- SetPlayerColor(playerid, RENK_BEYAZ);
- new name[MAX_PLAYER_NAME], msg[128];
- for(new i;i<MAX_PLAYERS;i++)
- {
- if(g_Kacan[i]==1) GetPlayerName(i,name,sizeof(name));
- }
- if(KacmaModu==1)
- {
- format(msg,sizeof(msg),"Kacan - %s",name);
- TextDrawSetString(Text:Info, msg);
- TextDrawShowForPlayer(playerid,Text:Info);
- }
- }
- new msg[70];
- katildi[playerid]=true;
- Katilimcilar++;
- Iter_Add(Dalyviai, playerid);
- format(msg,sizeof(msg),"[COPCHASE] Copchase oyunun başarıyla katıldın, %d saniye sonra kayıtlar kapanacak.",KacmaSuresi);
- SendClientMessage(playerid,RENK_YESIL,msg);
- }
- else if(katildi[playerid])
- {
- if(Noobie[playerid])
- {
- SetPlayerColor(playerid,0x80808000);
- }
- katildi[playerid]=false;
- Katilimcilar--;
- Iter_Remove(Dalyviai, playerid);
- SendClientMessage(playerid,RENK_YESIL,"[COPCHASE] Oyundan başarıyla çıktınız.");
- }
- return 1;
- }
- return 0;
- }
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- if(dialogid == DIALOGID)
- {
- if(response)
- {
- if(listitem == 0)
- {
- ShowPlayerDialog(playerid,DIALOGID+1,DIALOG_STYLE_LIST,"Copchase","Bir kaçan\nSon kaçana kadar","Seç","Geri");
- return 1;
- }
- else if(listitem == 1)
- {
- ShowPlayerDialog(playerid, DIALOGID+2, DIALOG_STYLE_INPUT , "Copchase", "Lütfen oyun dakikasını gir. (1>)", "Seç", "Geri");
- return 1;
- }
- else if(listitem == 2)
- {
- ShowPlayerDialog(playerid, DIALOGID+3, DIALOG_STYLE_LIST , "AutoFix", "Kapalı\nAktif","Seç","Geri");
- return 1;
- }
- else if(listitem == 3)
- {
- SendClientMessageToAll(RENK_YESIL,"[COPCHASE] Oyun moduna katılmak için /copchase komutunu kullanın.");
- g_TarafindanBaslatildi = playerid;
- katilmayauygun=true;
- SetTimer("CloseReg",KacmaSuresi*1000,false);
- SetTimer("CountDown",1000,true);
- return 1;
- }
- }
- return 1;
- }
- if(dialogid == DIALOGID+1)
- {
- if(response)
- {
- if(listitem == 0) KacmaModu=1;
- else if(listitem == 1)
- {
- if(g_Polis>2) KacmaModu=2;
- else
- {
- KacmaModu=1;
- SendClientMessage(playerid,RENK_KIRMIZI,"[COPCHASE] Oyunun başlaması için en az 3 kişi gerekli.");
- }
- }
- }
- new MainMenu[200];
- format(MainMenu,sizeof(MainMenu),"Mod [%s]\nOyun süresi [%imin]\nAutoFix[%s]\nOyunu başlat", ((KacmaModu == 1) ? ("Bir kaçan") : ("Son kaçana kadar")), ((KacmaZaman == 0) ? DEFAULT_TIME : (KacmaZaman/60000)), ((AutoFix == false) ? ("Kapalı") : ("Açık")));
- ShowPlayerDialog(playerid,DIALOGID,DIALOG_STYLE_LIST,"COPCHASE",MainMenu,"Seç","Çık");
- return 1;
- }
- if(dialogid == DIALOGID+2)
- {
- if(response)
- {
- if(IsNumeric(inputtext)) KacmaZaman=strval(inputtext)*60000;
- }
- new MainMenu[200];
- format(MainMenu,sizeof(MainMenu),"Mod [%s]\nOyun süresi [%imin]\nAutoFix[%s]\nOyunu başlat", ((KacmaModu == 1) ? ("Bir kaçan") : ("Son kaçana kadar")), ((KacmaZaman == 0) ? DEFAULT_TIME : (KacmaZaman/60000)), ((AutoFix == false) ? ("Kapalı") : ("Açık")));
- ShowPlayerDialog(playerid,DIALOGID,DIALOG_STYLE_LIST,"COPCHASE",MainMenu,"Seç","Çık");
- }
- if(dialogid == DIALOGID+3)
- {
- if(response)
- {
- if(listitem == 0) AutoFix=false;
- else if(listitem == 1) AutoFix=true;
- }
- new MainMenu[200];
- format(MainMenu,sizeof(MainMenu),"Mod [%s]\nOyun süresi [%imin]\nAutoFix[%s]\nOyunu başlat", ((KacmaModu == 1) ? ("Bir kaçan") : ("Son kaçana kadar")), ((KacmaZaman == 0) ? DEFAULT_TIME : (KacmaZaman/60000)), ((AutoFix == false) ? ("Kapalı") : ("Açık")));
- ShowPlayerDialog(playerid,DIALOGID,DIALOG_STYLE_LIST,"COPCHASE",MainMenu,"Seç","Çık");
- }
- return 1;
- }
- public OnVehicleDamageStatusUpdate(vehicleid, playerid)
- {
- new Float:vehx, Float:vehy, Float:vehz;
- GetVehiclePos(vehicleid, vehx, vehy, vehz);
- if(AutoFix && copchase) RepairVehicle(vehicleid);
- foreach(Player, i)
- {
- if (GetPlayerState(i) == PLAYER_STATE_DRIVER && playerid != i)
- {
- if(katildi[playerid] && katildi[i] && copchase)
- {
- if(IsPlayerInRangeOfPoint(i, 10.0, vehx, vehy, vehz))
- {
- new vehicleid2 = GetPlayerVehicleID(i);
- if(KacmaModu==1)
- {
- new params[14];
- new msg[128],runner[MAX_PLAYER_NAME];
- if(g_Kacan[playerid] == 1 && CoolDown[playerid]==0)
- {
- g_Kacan[i]=1;
- g_Kacan[playerid]=0;
- GetPlayerName(i,runner,sizeof(runner));
- SetPlayerColor(i, RENK_KIRMIZI);
- SetPlayerColor(playerid, RENK_BEYAZ);
- GetVehicleParamsEx(vehicleid,params[0],params[1],params[2],params[3],params[4],params[5],params[6]);
- SetVehicleParamsEx(vehicleid,params[0],params[1],params[2],params[3],params[4],params[5],false);
- GetVehicleParamsEx(vehicleid2,params[0],params[1],params[2],params[3],params[4],params[5],params[6]);
- SetVehicleParamsEx(vehicleid2,params[0],params[1],params[2],params[3],params[4],params[5],true);
- TogglePlayerControllable(i,false);
- CoolDown[i]=5;
- SetTimerEx("Ready",5000,0,"i",i);
- SendClientMessage(i,RENK_KIRMIZI,"Beş saniye boyunca donduruldun!");
- }
- else if(g_Kacan[i] == 1 && CoolDown[i]==0)
- {
- g_Kacan[playerid]=1;
- g_Kacan[i]=0;
- GetPlayerName(playerid,runner,sizeof(runner));
- SetPlayerColor(playerid, RENK_KIRMIZI);
- SetPlayerColor(i, RENK_BEYAZ);
- GetVehicleParamsEx(vehicleid,params[0],params[1],params[2],params[3],params[4],params[5],params[6]);
- SetVehicleParamsEx(vehicleid,params[0],params[1],params[2],params[3],params[4],params[5],true);
- GetVehicleParamsEx(vehicleid2,params[0],params[1],params[2],params[3],params[4],params[5],params[6]);
- SetVehicleParamsEx(vehicleid2,params[0],params[1],params[2],params[3],params[4],params[5],false);
- TogglePlayerControllable(playerid,false);
- CoolDown[playerid]=5;
- SetTimerEx("Ready",5000,0,"i",playerid);
- SendClientMessage(playerid,RENK_KIRMIZI,"Beş saniye boyunca donduruldun!");
- }
- format(msg,sizeof(msg),"Kacan - %s",runner);
- TextDrawSetString(Text:Info, msg);
- foreach(Player,y)
- {
- if(katildi[y]) TextDrawShowForPlayer(y,Text:Info);
- }
- break;
- }
- if(KacmaModu==2)
- {
- if(g_Kacan[i]==1 && g_Kacan[playerid]==1) break;
- new params[7];
- GetVehicleParamsEx(vehicleid,params[0],params[1],params[2],params[3],params[4],params[5],params[6]);
- SetVehicleParamsEx(vehicleid,params[0],params[1],params[2],params[3],params[4],params[5],true);
- GetVehicleParamsEx(vehicleid2,params[0],params[1],params[2],params[3],params[4],params[5],params[6]);
- SetVehicleParamsEx(vehicleid2,params[0],params[1],params[2],params[3],params[4],params[5],true);
- new msg[128],runner[MAX_PLAYER_NAME],chaser[MAX_PLAYER_NAME];
- Katilimcilar--;
- if(Katilimcilar<2)
- {
- foreach(Player,f)
- {
- if(g_Kacan[f]==0) GetPlayerName(f,runner,sizeof(runner));
- }
- format(msg,sizeof(msg),"%s adlı kişi copchase oyununu kazandı!",runner);
- SendClientMessageToAll(RENK_YESIL, msg);
- CloseChase();
- }
- if(g_Kacan[playerid] == 1)
- {
- g_Kacan[i]=1;
- GetPlayerName(i,runner,sizeof(runner));
- GetPlayerName(playerid,chaser,sizeof(chaser));
- SetPlayerColor(i, RENK_KIRMIZI);
- }
- else if(g_Kacan[i] == 1)
- {
- g_Kacan[playerid]=1;
- GetPlayerName(playerid,runner,sizeof(runner));
- GetPlayerName(i,chaser,sizeof(chaser));
- SetPlayerColor(playerid, RENK_KIRMIZI);
- }
- format(msg,sizeof(msg),"[COPCHASE] %s adlı kişi %s adlı kişiyi yakaladı.",chaser,runner);
- foreach(Player,y)
- {
- if(katildi[y]) SendClientMessage(y, RENK_YESIL, msg);
- }
- break;
- }
- }
- }
- }
- }
- return 1;
- }
- forward CloseReg();
- public CloseReg()
- {
- new Check;
- foreach(Player,i)
- {
- if(katildi[i]) Check++;
- }
- if(Check>1)
- {
- if(KacmaModu==1) PrepareChase();
- else
- {
- if(Check>2) PrepareChase();
- else
- {
- CloseChase();
- SendClientMessageToAll(RENK_KIRMIZI,"[COPCHASE] Oyun başlatılamadı çünkü çok az sayıda katılımcı var.");
- }
- }
- }
- else
- {
- CloseChase();
- SendClientMessageToAll(RENK_KIRMIZI,"[COPCHASE] Oyun başlatılamadı çünkü çok az sayıda katılımcı var.");
- }
- katilmayauygun=false;
- return 1;
- }
- forward PrepareChase();
- public PrepareChase()
- {
- new chaser;
- chaser=Iter_Random(Dalyviai);
- while(katildi[chaser]!=1)
- {
- chaser=Iter_Random(Dalyviai);
- }
- foreach(Dalyviai, i)
- {
- new name[MAX_PLAYER_NAME], msg[60],chasem[100];
- if(katildi[i])
- {
- if(i != chaser) SetPlayerColor(i, RENK_BEYAZ);
- else SetPlayerColor(i, RENK_KIRMIZI);
- GetPlayerName(chaser,name,sizeof(name));
- format(chasem,sizeof(chasem),"[COPCHASE] Copchase oyunu başladı. Kaçan: %s",name);
- SendClientMessage(i, RENK_YESIL, chasem);
- if(KacmaModu==1)
- {
- format(msg,sizeof(msg),"Kacan - %s",name);
- TextDrawSetString(Text:Info, msg);
- TextDrawShowForPlayer(i,Text:Info);
- }
- }
- }
- g_Kacan[chaser]=1;
- new params[7];
- new vehicleid = GetPlayerVehicleID(chaser);
- GetVehicleParamsEx(vehicleid,params[0],params[1],params[2],params[3],params[4],params[5],params[6]);
- SetVehicleParamsEx(vehicleid,params[0],params[1],params[2],params[3],params[4],params[5],true);
- copchase=true;
- if(KacmaZaman<1) SetTimer("CloseChase",DEFAULT_TIME*60000,false);
- else SetTimer("CloseChase",KacmaZaman,false);
- return 1;
- }
- forward CloseChase();
- public CloseChase()
- {
- if(copchase)
- {
- if(KacmaModu==1)
- {
- new name[MAX_PLAYER_NAME], msg[64];
- foreach(Player,f)
- {
- if(g_Kacan[f]==1) GetPlayerName(f,name,sizeof(name));
- }
- format(msg,sizeof(msg),"[COPCHASE] %s son kaçan kişi.",name);
- SendClientMessageToAll(RENK_YESIL, msg);
- }
- KacmaModu=1;
- KacmaZaman=0;
- Katilimcilar=0;
- AutoFix=false;
- for(new i;i<MAX_PLAYERS;i++)
- {
- if(katildi[i])
- {
- Iter_Remove(Dalyviai,i);
- katildi[i]=0;
- SetPlayerColor(i, 0x80808000);
- TextDrawHideForPlayer(i,Text:Info);
- if(g_Kacan[i]==1)
- {
- g_Kacan[i]=0;
- new vehicleid = GetPlayerVehicleID(i);
- new params[7];
- GetVehicleParamsEx(vehicleid,params[0],params[1],params[2],params[3],params[4],params[5],params[6]);
- SetVehicleParamsEx(vehicleid,params[0],params[1],params[2],params[3],params[4],params[5],false);
- }
- }
- }
- }
- copchase=false;
- }
- forward CountDown();
- public CountDown()
- {
- new msg[64];
- KacmaSuresi--;
- if(KacmaSuresi % 30 == 0 && KacmaSuresi>1)
- {
- format(msg,sizeof(msg),"[COPCHASE] %d saniye sonra oyun başlayacak.",KacmaSuresi);
- SendClientMessageToAll(RENK_BEYAZ,msg);
- }
- else if(KacmaSuresi==10)
- {
- format(msg,sizeof(msg),"[COPCHASE] %d saniye sonra oyun başlayacak.",KacmaSuresi);
- SendClientMessageToAll(RENK_BEYAZ,msg);
- }
- else if(KacmaSuresi==1)
- {
- KillTimer(CountDown());
- }
- }
- forward Ready(playerid);
- public Ready(playerid)
- {
- TogglePlayerControllable(playerid,true);
- CoolDown[playerid]=0;
- }
- IsNumeric(const string[])
- {
- for (new i = 0, j = strlen(string); i < j; i++)
- {
- if (string[i] > '9' || string[i] < '0') return 0;
- }
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement