Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /****************************************************************
- * Zombie Panic! Source *
- * Made by [ZPS]Artjom *
- * Copyright © [ZPS]Artjom *
- * *
- * Do not Remove this Credits *
- * Do not re-upload this and dont claim it as your own *
- *You might edit this for your own but you have to give Credits *
- *****************************************************************
- */
- #include <a_samp>
- #include <core>
- #include <float>
- #include <a_mysql>
- #include <zcmd>
- forward SaveIn(filename[],text[]);
- forward infection(playerid);
- forward reghealth(playerid);
- forward Float:GetDistanceBetweenPlayers(p1, p2);
- forward EndRound(playerid);
- forward StartRound(playerid);
- forward AwaitPlayers(playerid);
- // Do not Change these Numbers if you dont know what you are doing
- //Defines the teams
- #define TEAM_ZOMBIE 0
- #define TEAM_SURVIVOR 1
- #define TEAM_SPEC 2
- // defines the Dialogs - Do not change the number if you dont know what it do
- #define DIALOG_REGISTER 7000
- #define DIALOG_LOGIN 7001
- #define DIALOG_KREASON 7002
- #define DIALOG_BREASON 7003
- #define LEVEL1 7004
- #define LEVEL2 7005
- #define DIALOG_MREASON 7006
- #define DIALOG_UMREASON 7007
- #define DIALOG_APM 7008
- #define DIALOG_FREEZE 7009
- #define DIALOG_UNFREEZE 7010
- #define DIALOG_SPAWN 7011
- #define DIALOG_AKILL 7012
- #define COLOR_DARKGREEN 0x008A05AA
- // Change this to your Settings. Note you need to setup this database before you start the server
- #define SQL_HOST "localhost" // default host: localhost
- #define SQL_USER "root" // Username for connecting
- #define SQL_DB "zombie_panic_source" // Database. Be sure to change this in any query its needed
- #define SQL_PW "" // User Password
- #define mysql_fetch_row(%1) mysql_fetch_row_format(%1,"|")
- #pragma tabsize 0 // Tells the loose indention to shut up :)
- // Player Variables and Strings
- new PlayerAdminLevel[MAX_PLAYERS];
- new gTeam[MAX_PLAYERS];
- new InAdminMode[MAX_PLAYERS];
- new Auth[MAX_PLAYERS];
- new Hide[MAX_PLAYERS];
- new adminduty[MAX_PLAYERS];
- new Muted[MAX_PLAYERS];
- new pmoff[MAX_PLAYERS];
- new roundstarted =0;
- new await;
- new ZombieLives=12;
- // ZombieLives can be changed to a different number. But dont make it to high or it will be unfair for the survivors :-)
- // more variable and strings
- new infect;
- new regheal;
- new Infected[MAX_PLAYERS];
- new Carrier[MAX_PLAYERS];
- //TextDraw for the Zombe Lives
- new Text:zombielive;
- // Required for the admin panel
- new giveplayerid;
- // Required for the MySQL functions
- new Query[256];
- // Random Spawn of Zombies
- new Float:ZombieSpawn[6][4] = {
- {1242.4312,-820.4415,1083.1563,156.8149},
- {1237.5525,-821.5093,1083.1563,208.5879},
- {1232.9702,-821.9721,1083.1563,206.0087},
- {1235.0757,-825.6114,1083.1563,206.0087},
- {1241.7732,-826.3545,1083.1563,177.8085},
- {1233.6747,-829.8359,1084.0149,238.5958}
- };
- // Random Spawn of Survivors
- new Float:SurvivorSpawn[6][4] = {
- {1296.8135,-793.0980,1084.0078,336.3332},
- {1302.3759,-793.5371,1084.0078,350.1200},
- {1297.5411,-791.2996,1084.0078,344.7933},
- {1302.7249,-791.4534,1084.0078,344.7933},
- {1300.1113,-790.6651,1084.0078,353.8800},
- {1298.9369,-793.7982,1084.0078,345.1066}
- };
- // Random Spawn of Spectators
- new Float:SpectatorSpawn[9][4] = {
- {1258.1570,-825.5559,1084.0078,154.8145},
- {1256.4148,-820.7083,1084.0078,159.8279},
- {1251.1288,-820.7757,1084.0078,190.5349},
- {1246.3337,-822.0853,1084.0078,212.7818},
- {1247.1388,-826.7230,1084.0078,246.3087},
- {1250.7412,-827.4081,1084.0078,240.9820},
- {1254.2709,-827.1176,1084.0078,185.2081},
- {1258.5479,-830.4626,1084.0149,33.4808},
- {1246.0511,-830.5308,1084.0078,250.1413}
- };
- new aDisconnectNames[][16] = {
- {"Timeout"}, // 0
- {"Left"}, // 1
- {"Kicked/Banned"} // 2
- };
- main()
- {
- print("\n----------------------------------");
- print(" Zombie Panic! Source by [ZPS]Artjom");
- print("----------------------------------\n");
- }
- // Check the Regeneration for Zombies to get their health back
- public reghealth(playerid)
- {
- if(IsPlayerConnected(playerid) && gTeam[playerid] == TEAM_ZOMBIE)
- {
- new Float:health;
- GetPlayerHealth(playerid,health);
- if(health <=199)
- {
- SetPlayerHealth(playerid,health+5);
- }
- else if(health >= 201 && Carrier[playerid] ==0)
- {
- SetPlayerHealth(playerid,200.0); // preventing that a normal zombie dont gets more health then 200
- KillTimer(regheal);
- }
- else if(health <= 249 && Carrier[playerid] ==1)
- {
- SetPlayerHealth(playerid,health+5);
- }
- else if(health >=251 && Carrier[playerid] == 1)
- {
- SetPlayerHealth(playerid,250.0);
- KillTimer(regheal);
- }
- else if(health == 200)
- {
- KillTimer(regheal);
- }
- }
- return 1;
- }
- public Float:GetDistanceBetweenPlayers(p1,p2){
- new Float:x1,Float:y1,Float:z1,Float:x2,Float:y2,Float:z2;
- if (!IsPlayerConnected(p1) || !IsPlayerConnected(p2)){
- return -1.00;
- }
- GetPlayerPos(p1,x1,y1,z1);
- GetPlayerPos(p2,x2,y2,z2);
- return floatsqroot(floatpower(floatabs(floatsub(x2,x1)),2)+floatpower(floatabs(floatsub(y2,y1)),2)+floatpower(floatabs(floatsub(z2,z1)),2));
- }
- //Check the Infection and Mutate the Player to a Zombie
- public infection(playerid)
- {
- if(IsPlayerConnected(playerid) && gTeam[playerid] == TEAM_SURVIVOR)
- {
- if(Infected[playerid] == 1)
- {
- new Float:health;
- GetPlayerHealth(playerid,health);
- if(health <=50)
- {
- gTeam[playerid] = TEAM_ZOMBIE;
- SetPlayerSkin(playerid,33);
- SetPlayerHealth(playerid,200);
- ResetPlayerWeapons(playerid);
- KillTimer(infect);
- TogglePlayerControllable(playerid,1);
- }
- else if(health >=51)
- {
- SetPlayerHealth(playerid,health-5);
- }
- }
- }
- return 1;
- }
- public OnGameModeInit()
- {
- SetGameModeText("Zombie Panic! Source");
- EnableStuntBonusForAll(0);
- mysql_connect(SQL_HOST,SQL_USER,SQL_DB,SQL_PW);
- UsePlayerPedAnims();
- DisableInteriorEnterExits();
- AddPlayerClass(20, 1958.3783, 1343.1572, 15.3746, 269.1425, 2, 1, 22, 27, 0, 0);
- AddPlayerClass(7, 1958.3783, 1343.1572, 15.3746, 269.1425, 3, 1, 22, 27, 0, 0);
- AddPlayerClass(11, 1958.3783, 1343.1572, 15.3746, 269.1425, 5, 1, 22, 27, 0, 0);
- AddPlayerClass(12, 1958.3783, 1343.1572, 15.3746, 269.1425, 6, 1, 22, 27, 0, 0);
- AddPlayerClass(22, 1958.3783, 1343.1572, 15.3746, 269.1425, 7, 1, 22, 27, 0, 0);
- AddPlayerClass(24, 1958.3783, 1343.1572, 15.3746, 269.1425, 8, 1, 22, 27, 0, 0);
- AddPlayerClass(46, 1958.3783, 1343.1572, 15.3746, 269.1425, 15, 1, 22, 27, 0, 0);
- AddPlayerClass(33, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
- AddPlayerClass(34, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
- AddPlayerClass(78, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
- AddPlayerClass(62, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
- AddPlayerClass(79, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
- CreateObject(971,1252.9361572266,-830.99554443359,1085.6008300781,0.00000000,0.00000000,179.99993896484); // objects (subwaygate) (3)
- roundstarted=0;
- SetTimer("reghealth",1000,1);
- return 1;
- }
- public OnGameModeExit()
- {
- mysql_close();
- return 1;
- }
- stock PlayerName(playerid) {
- new name[255];
- GetPlayerName(playerid, name, 255);
- return name;
- }
- public EndRound(playerid)
- {
- if(roundstarted == 1)
- {
- for(new i=0; i < MAX_PLAYERS; i++)
- {
- TogglePlayerControllable(i,0);
- SendClientMessageToAll(0x87CEEBAA,"Round End");
- }
- }
- return 1;
- }
- public StartRound(playerid)
- {
- if(roundstarted == 1)
- {
- for (new i=0; i < MAX_PLAYERS; i++)
- {
- TogglePlayerControllable(i,1);
- SendClientMessage(playerid,0xFFD859AA,"Round Started. All late joiners will spawn as zombie");
- SetTimer("EndRound",600000,0);
- KillTimer(await);
- }
- }
- return 1;
- }
- public AwaitPlayers(playerid)
- {
- if(roundstarted == 1)
- {
- for(new i=0; i < MAX_PLAYERS; i++)
- {
- TogglePlayerControllable(i,1);
- KillTimer(await);
- }
- }
- GameTextForPlayer(playerid,"~w~Awaiting more players",1000,0);
- TogglePlayerControllable(playerid,0);
- return 1;
- }
- public OnPlayerRequestClass(playerid, classid)
- {
- if(GetPVarInt(playerid,"KilledByZombie") == 1)
- {
- SpawnPlayer(playerid);
- gTeam[playerid] = TEAM_ZOMBIE;
- SetPlayerColor(playerid,0x8F0D0DAA);
- SetPlayerHealth(playerid,200.0);
- }
- SetPlayerTeamFromClass(playerid, classid);
- SetPlayerInterior(playerid,3);
- SetPlayerPos(playerid,1206.9768,-32.5926,1000.9531);
- SetPlayerFacingAngle(playerid,249.3010);
- SetPlayerCameraPos(playerid,1209.1083,-33.8061,1000.9531);
- SetPlayerCameraLookAt(playerid,1206.9768,-32.5926,1000.9531);
- switch (classid){
- case 0:GameTextForPlayer(playerid,"~b~SURVIVOR",6000,4);
- case 1:GameTextForPlayer(playerid,"~b~SURVIVOR",6000,4);
- case 2:GameTextForPlayer(playerid,"~b~SURVIVOR",6000,4);
- case 3:GameTextForPlayer(playerid,"~b~SURVIVOR",6000,4);
- case 4:GameTextForPlayer(playerid,"~b~SURVIVOR",6000,4);
- case 5:GameTextForPlayer(playerid,"~b~SURVIVOR",6000,4);
- case 6:GameTextForPlayer(playerid,"~r~ZOMBIE",6000,4);
- case 7:GameTextForPlayer(playerid,"~r~ZOMBIE",6000,4);
- case 8:GameTextForPlayer(playerid,"~r~ZOMBIE",6000,4);
- case 9:GameTextForPlayer(playerid,"~r~ZOMBIE",6000,4);
- case 10:GameTextForPlayer(playerid,"~r~ZOMBIE",6000,4);
- }
- return 1;
- }
- SetPlayerTeamFromClass(playerid, classid) {
- switch(classid){
- case 0: gTeam[playerid] = TEAM_SURVIVOR;
- case 1: gTeam[playerid] = TEAM_SURVIVOR;
- case 2: gTeam[playerid] = TEAM_SURVIVOR;
- case 3: gTeam[playerid] = TEAM_SURVIVOR;
- case 4: gTeam[playerid] = TEAM_SURVIVOR;
- case 5: gTeam[playerid] = TEAM_SURVIVOR;
- case 6: gTeam[playerid] = TEAM_ZOMBIE;
- case 7: gTeam[playerid] = TEAM_ZOMBIE;
- case 8: gTeam[playerid] = TEAM_ZOMBIE;
- case 9: gTeam[playerid] = TEAM_ZOMBIE;
- case 10: gTeam[playerid] = TEAM_ZOMBIE;
- }
- }
- CMD:rules(playerid,params[])
- {
- #pragma unused params
- SendClientMessage(playerid,0xFF7700AA,"Do not cheat / hax");
- SendClientMessage(playerid,0xFF7700AA,"Do not Teamkill on purpose");
- SendClientMessage(playerid,0xFF7700AA,"Suspected a cheated ? Use /report id reason to report him to the admins");
- return 1;
- }
- CMD:commands(playerid,params[])
- {
- #pragma unused params
- if(gTeam[playerid] == TEAM_SURVIVOR)
- {
- SendClientMessage(playerid,0x00FFFFAA,"Survivor Commands:");
- SendClientMessage(playerid,0x00FFFFAA,"/rules - Shows the Server Rules");
- SendClientMessage(playerid,0x00FFFFAA,"/info - Shows your Statistics");
- SendClientMessage(playerid,0x00FFFFAA,"/pm - Send a Private Message to an other players");
- SendClientMessage(playerid,0x00FFFFAA,"/report - Reports a RuleBreaker to an admin");
- SendClientMessage(playerid,0x00FFFFAA,"/admins Shows the Current Admins Online");
- SendClientMessage(playerid,0x00FFFFAA,"/smsg -Team Chat for Survivors");
- }
- else if(gTeam[playerid] == TEAM_ZOMBIE)
- {
- SendClientMessage(playerid,0x8F0D0DAA,"Zombie Commands:");
- SendClientMessage(playerid,0x8F0D0DAA,"/rules - Shows the Server Rules");
- SendClientMessage(playerid,0x8F0D0DAA,"/info - Shows your Statistics");
- SendClientMessage(playerid,0x8F0D0DAA,"/pm - Send a Private Message to an other players");
- SendClientMessage(playerid,0x8F0D0DAA,"/report - Reports a RuleBreaker to an admin");
- SendClientMessage(playerid,0x8F0D0DAA,"/admins Shows the Current Admins Online");
- SendClientMessage(playerid,0x8F0D0DAA,"/infect If you are the Carrier you can infect other people");
- SendClientMessage(playerid,0x8F0D0DAA,"/zmsg - Team Chat for Zombies");
- }
- return 1;
- }
- CMD:zmsg(playerid, params[])
- {
- new pname[24],string[128],msg[128];
- GetPlayerName(playerid,pname,24);
- if(sscanf(params,"s",msg)) return SendClientMessage(playerid,0xAA3333AA,"Usage: /zmsg [text]");
- if(gTeam[playerid] != TEAM_ZOMBIE) return SendClientMessage(playerid,0xAA3333AA,"You are not a Zombie");
- format(string,sizeof(string),"(TEAM) %s(%d): %s",pname,playerid,msg);
- SendZombieMessage(string);
- format(string,sizeof(string),"%s(%d) said in Teamchat Zombies: %s",pname,playerid,msg);
- SendAdminMessage(string);
- return 1;
- }
- CMD:smsg(playerid, params[])
- {
- new pname[24],string[128],msg[128];
- GetPlayerName(playerid,pname,24);
- if(sscanf(params,"s",msg)) return SendClientMessage(playerid,0xAA3333AA,"Usage: /smsg [text]");
- if(gTeam[playerid] != TEAM_SURVIVOR) return SendClientMessage(playerid,0xAA3333AA,"You are not a Survivor");
- format(string,sizeof(string),"(TEAM) %s(%d): %s",pname,playerid,msg);
- SendSurvivorMessage(string);
- format(string,sizeof(string),"%s(%d) said in Teamchat Survivors: %s",pname,playerid,msg);
- SendAdminMessage(string);
- return 1;
- }
- CMD:report(playerid, params[])
- {
- new pName[MAX_PLAYER_NAME], aName[MAX_PLAYER_NAME], str[128], reason, iD;
- if (sscanf(params, "ds", iD, reason)) return SendClientMessage(playerid, 0xAA3333AA, "Usage: /report (id) [reason]");
- if (iD == INVALID_PLAYER_ID) return SendClientMessage(playerid, 0xAA3333AA, "Player is not Connected");
- if (playerid == iD) return SendClientMessage(playerid, 0xAA3333AA, "You can't report yourself.");
- GetPlayerName(playerid, pName, sizeof(pName));
- GetPlayerName(iD, aName, sizeof(aName));
- for (new i = 0; i < MAX_PLAYERS; i++)
- {
- if (IsPlayerConnected(i))
- {
- if (IsPlayerAdmin(i) || PlayerAdminLevel[i] >= 1)
- {
- SendClientMessage(playerid,0xFF7F50AA,"Your Report has been sent to any online admins");
- format(str, sizeof(str), "%s(%d) has reported %s(%d) for: %s", pName, playerid, aName, iD, reason);
- SendClientMessage(i, 0xFF7F50AA, str);
- SaveIn("reports",str);
- }
- }
- else if(!IsPlayerConnected(i))
- {
- SendClientMessage(playerid,0xFFFFFFAA,"We are sorry but currently there is no admin online but your report has been saved into our database");
- new escpname[24], escrname[24];
- mysql_real_escape_string(pName, escrname);
- mysql_real_escape_string(aName, escpname);
- format(Query, sizeof(Query), "INSERT INTO `reports` (`id`, `reporter`, `reported`, `reason`)VALUES (NULL,'%s', '%s', '%s')", escpname, escrname, reason);
- mysql_query(Query);
- }
- }
- return 1;
- }
- CMD:infect(playerid,params[])
- {
- if(gTeam[playerid] != TEAM_ZOMBIE) return SendClientMessage(playerid,0xAA3333AA,"You are not Zombie");
- new iD;
- if(sscanf(params,"d",iD)) return SendClientMessage(playerid,0xAA3333AA,"Usage: /infect id");
- if(iD == INVALID_PLAYER_ID) return SendClientMessage(playerid,0xAA3333AA,"Player is not Connected");
- if(playerid == iD) return SendClientMessage(playerid,0xAA3333AA,"You can't infect yourself");
- if(Infected[iD] == 1) return SendClientMessage(playerid,0xAA3333AA,"Player is already Infected");
- if(Carrier[playerid] != 1) return SendClientMessage(playerid,0xAA3333AA,"You are not a Carrier");
- if(GetDistanceBetweenPlayers(playerid,iD) >= 6) return SendClientMessage(playerid,0xAA3333AA,"Player is not Close enough");
- Infected[playerid] =1;
- infect = SetTimer("infection",2000,1);
- return 1;
- }
- CMD:admins(playerid,params[])
- {
- #pragma unused params
- new aname[24],string[128];
- SendClientMessage(playerid,0x87CEEBAA, "Admins Online (Red Means off Duty):");
- for (new i=0; i < MAX_PLAYERS; i++)
- {
- GetPlayerName(i,aname,24);
- if(IsPlayerConnected(i))
- {
- if(Hide[i] == 0)
- {
- if(adminduty[i] == 1)
- {
- if(PlayerAdminLevel[i] == 1)
- {
- format(string,sizeof(string),"%s Level: 1",aname);
- SendClientMessage(playerid,0x87CEEBAA,string);
- }
- else if(PlayerAdminLevel[i] == 2)
- {
- format(string,sizeof(string),"%s Level: 2",aname);
- SendClientMessage(playerid,0x87CEEBAA,string);
- }
- }
- else if(adminduty[i] == 0)
- {
- if(PlayerAdminLevel[i] == 1)
- {
- format(string,sizeof(string),"%s Level: 1 [Off Duty]",aname);
- SendClientMessage(playerid,0xFF0000BAA,string);
- }
- else if(PlayerAdminLevel[i] == 2)
- {
- format(string,sizeof(string),"%s Level: 2 [Off Duty]",aname);
- SendClientMessage(playerid,0xFF0000AA,string);
- }
- }
- }
- }
- }
- return 1;
- }
- CMD:info(playerid,params[])
- {
- #pragma unused params
- new string[128],pname[24],Float:health,Float:armour;
- GetPlayerName(playerid,pname,24);
- GetPlayerHealth(playerid,health);
- GetPlayerArmour(playerid,armour),
- format(string,sizeof(string),"Infos of: %s",pname);
- SendClientMessage(playerid,0x87CEEBAA,string);
- if(gTeam[playerid] == TEAM_ZOMBIE)
- {
- SendClientMessage(playerid,0x87CEEBAA,"Team: Zombies");
- }
- if(gTeam[playerid] == TEAM_ZOMBIE && Carrier[playerid] == 1)
- {
- SendClientMessage(playerid,0x98CEEBAA,"Carrier: Yes");
- }
- if(gTeam[playerid] == TEAM_ZOMBIE && Carrier[playerid] == 0)
- {
- SendClientMessage(playerid,0x98CEEBAA,"Carrier: No");
- }
- if(gTeam[playerid] == TEAM_SURVIVOR)
- {
- SendClientMessage(playerid,0x87CEEBAA,"Team: Survivors");
- }
- format(string,sizeof(string),"Current health: %f",health);
- SendClientMessage(playerid,0x87CEEBAA,string);
- format(string,sizeof(string),"Current Armour: %f",armour);
- SendClientMessage(playerid,0x87CEEBAA,string);
- if(Infected[playerid] == 1)
- {
- SendClientMessage(playerid,0x87CEEBAA,"You are Infected. You will soon mutate to an zombie unless you find an Medi-Pack");
- }
- if(Infected[playerid] == 0)
- {
- SendClientMessage(playerid,0x87CEEBAA,"You are not Infected.");
- }
- return 1;
- }
- CMD:start(playerid,params[])
- {
- if(PlayerAdminLevel[playerid] != 2) return SendClientMessage(playerid,0xFFFFFFAA,"You dont have Access to this command");
- for(new i=0; i < MAX_PLAYERS; i++)
- {
- if(IsPlayerConnected(i) && roundstarted == 0)
- {
- SendClientMessageToAll(0x87CEEBAA,"Round has started. All late Joiners will join as zombie");
- SetTimer("EndRound",600000,0);
- KillTimer(await);
- roundstarted=1;
- TogglePlayerControllable(i,1);
- return 1;
- }
- else if(roundstarted == 1) return SendClientMessage(playerid,0xFF0000AA,"Round already started");
- }
- return 1;
- }
- CMD:pm(playerid,params[])
- {
- new sname[24],rname[24],msg,iD,string[128];
- if(sscanf(params,"ds",iD,msg)) return SendClientMessage(playerid,0xAA3333AA,"Usage: /pm (id) [text]");
- if(iD == INVALID_PLAYER_ID) return SendClientMessage(playerid,0xAA3333AA,"Player is not Connected");
- if(playerid == iD) return SendClientMessage(playerid,0xAA3333AA,"You can't pm yourself");
- if(Muted[playerid] == 1)
- {
- SendClientMessage(playerid,0xFF0000AA,"You are muted. You cannot chat");
- return 0;
- }
- if(pmoff[playerid] == 1) return SendClientMessage(playerid,0xAA3333AA,"Player does not accept pms at the moment");
- GetPlayerName(playerid,sname,24);
- GetPlayerName(iD,rname,24);
- format(string,sizeof(string),"PM Sent to: %s(%d) %s",rname,iD,msg);
- SendClientMessage(playerid,0xFFFF00AA,string);
- format(string,sizeof(string),"PM From: %s(%d) %s",sname,playerid,msg);
- SendClientMessage(iD,0xFFFF00AA,string);
- for (new i=0; i < MAX_PLAYERS; i++)
- {
- if(IsPlayerConnected(i))
- {
- if(Auth[i] == 1)
- {
- if(PlayerAdminLevel[playerid] == 2)
- {
- if(playerid != i)
- {
- if(iD != i)
- {
- format(string,sizeof(string),"PM from %s(%d) to %s(%d): %s",sname,playerid,rname,iD,msg);
- SendClientMessage(i,0xFF0000AA,string);
- }
- }
- }
- }
- }
- }
- return 1;
- }
- public SaveIn(filename[],text[])
- {
- new File:Lfile;
- new filepath[256];
- new string[256];
- new year,month,day;
- new hour,minute,second;
- getdate(year,month,day);
- gettime(hour,minute,second);
- format(filepath,sizeof(filepath),"/Logs/%s.log",filename);
- Lfile = fopen(filepath,io_append);
- format(string,sizeof(string),"[%02d/%02d/%02d | %02d:%02d:%02d] %s\r\n",day,month,year,hour,minute,second,text);
- fwrite(Lfile,string);
- fclose(Lfile);
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- new string[128],pname[24],escpname[24];
- GetPlayerName(playerid,pname,24);
- format(string,sizeof(string),"%s(%d) has joined Zombie Panic! Source",pname,playerid);
- SendClientMessageToAll(0x333333AA,string);
- mysql_real_escape_string(pname, escpname);
- format(Query, sizeof(Query), "SELECT * FROM `users` WHERE `username` = '%s'", escpname); //Selects the line where the playername is the player
- mysql_query(Query); //Querys the string
- mysql_store_result(); //Stores the result
- if(mysql_num_rows() != 0)
- {
- SendClientMessage(playerid,0x9ACD32AA,"This Playername is Registered. Please login before you spawn");
- ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Your account has been found","Welcome on Zombie Panic! Source","Login","Cancle");
- }
- else
- {
- format(string,sizeof(string),"Welcome on Zombie Panic! Source. Please Register");
- SendClientMessage(playerid,0x9ACD32AA,"This Playername has not yet been registered. You must register on this server before you can play");
- ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Your account has not been created yet",string,"Register","Cancle");
- }
- SetPlayerWeather(playerid,09);
- pmoff[playerid] = 0;
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- new msg[128];
- new name[32],pip[16];
- GetPlayerName(playerid, name, sizeof(name));
- GetPlayerIp(playerid,pip,16);
- format(msg, sizeof(msg), "\2;%s(%d) Has left the server (%s)\2;", name,playerid,aDisconnectNames[reason]);
- PlayerAdminLevel[playerid] =0;
- InAdminMode[playerid] =0;
- Infected[playerid] =0;
- pmoff[playerid] = 0;
- Carrier[playerid] =0;
- Hide[playerid] =0;
- SetPVarInt(playerid,"KilledByZombie",0);
- format(Query,sizeof(Query),"UPDATE `users` SET `score` = '%d' WHERE username = '%s'",GetPlayerScore(playerid),name);
- mysql_query(Query);
- mysql_free_result();
- Auth[playerid] =0;
- new ConnectName[30], str[100];
- GetPlayerName(playerid, ConnectName, 30);
- switch (reason) {
- case 0: format(str, 256, "%s has left the server! (Timeout)", ConnectName);
- case 1: format(str, 256, "%s has left the server! (Leaving)", ConnectName);
- case 2: format(str, 256, "%s has left the server! (Kicked/Banned)", ConnectName);
- }
- SendClientMessageToAll(0x808080AA, str);
- return 1;
- }
- public OnPlayerSpawn(playerid)
- {
- SetPlayerInterior(playerid,5);
- if(roundstarted == 0)
- {
- TogglePlayerControllable(playerid,0);
- }
- else if(roundstarted == 1)
- {
- SendClientMessage(playerid,0xFFD859AA,"Round already started. Spawning as Zombie instead");
- gTeam[playerid] = TEAM_ZOMBIE;
- SetPlayerColor(playerid,0x8F0D0DAA);
- SetPlayerHealth(playerid,200.0);
- ResetPlayerWeapons(playerid);
- TogglePlayerControllable(playerid,1);
- }
- if(GetPlayersInTeam(TEAM_ZOMBIE) == 0 && GetPlayersInTeam(TEAM_SURVIVOR) >= 1)
- {
- if(roundstarted == 0)
- {
- await = SetTimer("AwaitPlayers",4000,1);
- }
- }
- else if (GetPlayersInTeam(TEAM_SURVIVOR) == 0 && GetPlayersInTeam(TEAM_ZOMBIE) >= 1)
- {
- if(roundstarted == 0)
- {
- await = SetTimer("AwaitPlayers",4000,1);
- }
- }
- else if(GetPlayersInTeam(TEAM_SURVIVOR) >= 1 && GetPlayersInTeam(TEAM_ZOMBIE) >=1 && roundstarted == 0)
- {
- SendClientMessage(playerid,0xFFD859AA,"Round will Start in a few seconds. You must Choose now if you wish to play as Survivor");
- SetTimer("StartRound",4000,0);
- KillTimer(await);
- }
- if(ZombieLives== 0)
- {
- if(gTeam[playerid] == TEAM_ZOMBIE)
- {
- new rnd;
- rnd = random(sizeof (SpectatorSpawn));
- SetPlayerPos(playerid,SpectatorSpawn[rnd][0], SpectatorSpawn[rnd][1], SpectatorSpawn[rnd][2]);
- SetPlayerFacingAngle(playerid,SpectatorSpawn[rnd][3]);
- SetCameraBehindPlayer(playerid);
- gTeam[playerid] = TEAM_SPEC;
- TogglePlayerControllable(playerid,0);
- ResetPlayerWeapons(playerid);
- SetPlayerColor(playerid,0x999999CC);
- TextDrawHideForPlayer(playerid,zombielive);
- TextDrawDestroy(zombielive);
- SetCameraBehindPlayer(playerid);
- }
- }
- if(gTeam[playerid] == TEAM_SURVIVOR)
- {
- SetPlayerHealth(playerid,100.0);
- SetPlayerSkillLevel(playerid,WEAPONSKILL_PISTOL,1);
- SetPlayerSkillLevel(playerid,WEAPONSKILL_PISTOL_SILENCED,1);
- SetPlayerSkillLevel(playerid,WEAPONSKILL_DESERT_EAGLE,1);
- SetPlayerSkillLevel(playerid,WEAPONSKILL_SHOTGUN,999);
- SetPlayerSkillLevel(playerid,WEAPONSKILL_SAWNOFF_SHOTGUN,1);
- SetPlayerSkillLevel(playerid,WEAPONSKILL_SPAS12_SHOTGUN,1);
- SetPlayerSkillLevel(playerid,WEAPONSKILL_MICRO_UZI,1);
- SetPlayerSkillLevel(playerid,WEAPONSKILL_MP5,1);
- SetPlayerSkillLevel(playerid,WEAPONSKILL_AK47,999);
- SetPlayerSkillLevel(playerid,WEAPONSKILL_M4,999);
- SetPlayerSkillLevel(playerid,WEAPONSKILL_SNIPERRIFLE,1);
- SetPlayerColor(playerid,0x00FFFFAA);
- SetCameraBehindPlayer(playerid);
- }
- else if(gTeam[playerid] == TEAM_ZOMBIE)
- {
- if(Carrier[playerid] == 0)
- {
- SetPlayerColor(playerid,0x8F0D0DAA);
- SetPlayerHealth(playerid,200.0);
- TextDrawHideForPlayer(playerid,zombielive);
- ZombieLivesTextDraw(playerid);
- SetCameraBehindPlayer(playerid);
- }
- else if(Carrier[playerid] == 1)
- {
- SetPlayerColor(playerid,0xE3CE54AA);
- SetPlayerHealth(playerid,250.0);
- TextDrawHideForPlayer(playerid,zombielive);
- ZombieLivesTextDraw(playerid);
- SetCameraBehindPlayer(playerid);
- }
- }
- if(gTeam[playerid] == TEAM_SURVIVOR)
- {
- new rnd;
- rnd = random(sizeof (SurvivorSpawn));
- SetPlayerPos(playerid, SurvivorSpawn[rnd][0], SurvivorSpawn[rnd][1], SurvivorSpawn[rnd][2]);
- SetPlayerFacingAngle(playerid, SurvivorSpawn[rnd][3]);
- SetCameraBehindPlayer(playerid);
- }
- if(gTeam[playerid] == TEAM_ZOMBIE)
- {
- new rnd;
- rnd = random(sizeof (ZombieSpawn));
- SetPlayerPos(playerid, ZombieSpawn[rnd][0], ZombieSpawn[rnd][1], ZombieSpawn[rnd][2]);
- SetPlayerFacingAngle(playerid, ZombieSpawn[rnd][3]);
- SetCameraBehindPlayer(playerid);
- }
- return 1;
- }
- public OnPlayerDeath(playerid, killerid, reason)
- {
- new string[128],pname[24],vname[24],oscore;
- GetPlayerName(playerid,vname,24);
- GetPlayerName(killerid,pname,24);
- oscore = GetPlayerScore(killerid);
- if(GetPlayersInTeam(TEAM_ZOMBIE) == 0)
- {
- GameTextForPlayer(playerid,"~w~Survivors win",10000,0);
- TogglePlayerControllable(playerid,0);
- roundstarted=0;
- }
- else
- if(GetPlayersInTeam(TEAM_SURVIVOR) == 0)
- {
- GameTextForPlayer(playerid,"~w~Zombies win",10000,0);
- TogglePlayerControllable(playerid,0);
- roundstarted=0;
- }
- if(gTeam[killerid] == TEAM_ZOMBIE)
- {
- format(string,sizeof(string),"ZOMBIE KILL: %s(%d) has killed %s(%d)",pname,killerid,vname,playerid);
- SendZombieMessage(string);
- SendDeathMessage(killerid,playerid,reason);
- format(string,sizeof(string),"%s(%d) has killed you with Zombie Arms",pname,killerid);
- SendClientMessage(playerid,COLOR_DARKGREEN,string);
- SetPVarInt(playerid,"KilledByZombie",1);
- KillTimer(infect);
- ZombieLives+=1;
- oscore +=1;
- }
- if(gTeam[killerid] == TEAM_SURVIVOR)
- {
- format(string,sizeof(string),"SURVIVOR KILL: %s(%d) has killed %s(%d)",pname,killerid,vname,playerid);
- SendZombieMessage(string);
- format(string,sizeof(string),"%s(%d) has killed you with a %s",pname,killerid,reason);
- SendClientMessage(playerid,COLOR_DARKGREEN,string);
- SendDeathMessage(killerid,playerid,reason);
- ZombieLives-=1;
- oscore +=1;
- }
- if(InAdminMode[killerid] == 1)
- {
- format(string,sizeof(string),"%s(%d) has killed you while he was in admin mode",pname,killerid);
- SendClientMessage(playerid,0xFF7F50AA,string);
- format(string,sizeof(string),"You have killed %s(%d) while in admin mode",vname,playerid);
- SendClientMessage(killerid,0xFF7F50AA,string);
- SendDeathMessage(killerid,playerid,reason);
- }
- return 1;
- }
- public OnPlayerText(playerid, text[])
- {
- if(Muted[playerid] == 1)
- {
- SendClientMessage(playerid,0xFF0000AA,"You are muted. You cannot chat");
- return 0;
- }
- new string[128],pname[24];
- GetPlayerName(playerid,pname,24);
- format(string,sizeof(string),"%s(%d): %s",pname,playerid,text);
- SaveIn("Chatlog",string);
- return 1;
- }
- public OnPlayerCommandText(playerid, cmdtext[])
- {
- return 0;
- }
- public OnPlayerRequestSpawn(playerid)
- {
- if(GetPVarInt(playerid,"KilledByZombie") == 1)
- {
- SpawnPlayer(playerid);
- gTeam[playerid] = TEAM_ZOMBIE;
- SetPlayerColor(playerid,0x8F0D0DAA);
- SetPlayerHealth(playerid,200.0);
- SetPlayerSkin(playerid,33);
- }
- new pname[24],escpname[24];
- GetPlayerName(playerid,pname,24);
- mysql_real_escape_string(pname, escpname);
- format(Query, sizeof(Query), "SELECT * FROM `users` WHERE `username` = '%s'", escpname); //Selects the line where the playername is the player
- mysql_query(Query); //Querys the string
- mysql_store_result(); //Stores the result
- if(mysql_num_rows() != 0)
- {
- if(Auth[playerid] == 0)
- {
- GameTextForPlayer(playerid,"~w~ THIS PLAYER NAME IS REGISTERED~n~~r~!- YOU ARE NOT LOGGED IN -!",5000,3);
- return 0;
- }
- }
- else
- {
- if(Auth[playerid] == 0)
- {
- GameTextForPlayer(playerid,"~w~ PLAYER NAME NOT REGISTERED~n~~r~!- YOU ARE NOT REGISTERED -!",5000,3);
- return 0;
- }
- }
- new zombies = random(GetPlayersInTeam(TEAM_ZOMBIE));
- for(new i=0; i < zombies; i++)
- {
- if(gTeam[i] == TEAM_ZOMBIE && Carrier[i] == 0)
- {
- Carrier[i]=1;
- }
- else if(gTeam[i] == TEAM_ZOMBIE && Carrier[i] == 1)
- {
- Carrier[i]=0;
- }
- }
- return 1;
- }
- public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
- {
- return 1;
- }
- public OnRconLoginAttempt(ip[], password[], success)
- {
- return 1;
- }
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- new pname[24],aname[24],string[128];
- new escpname[24], escpass[100];
- if(dialogid == DIALOG_REGISTER)
- {
- GetPlayerName(playerid,pname,24);
- mysql_real_escape_string(inputtext, escpass);
- mysql_real_escape_string(pname, escpname);
- format(Query,sizeof(Query),"INSERT INTO `users`(`reg_id`,`username`,`password`,`score`,`admin_level`, `banned`) VALUES (NULL, '%s', sha1('%s'), '0', '0','0')",escpname,escpass);
- mysql_query(Query);
- SendClientMessage(playerid,0x00A313AA,"You have been Registered you may now login");
- ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Your account has been found","Welcome on Zombie Panic! Source","Login","Cancle");
- return 1;
- }
- if(dialogid == DIALOG_LOGIN)
- {
- if(!strlen(inputtext))
- {
- SendClientMessage(playerid,0x966C0FAA,"Wrong Password");
- ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Your account has been found","Welcome on Zombie Panic! Source","Login","Cancle");
- return 1;
- }
- GetPlayerName(playerid,pname,24);
- mysql_real_escape_string(inputtext, escpass);
- mysql_real_escape_string(pname, escpname);
- format(Query,sizeof(Query),"SELECT * FROM `users` WHERE username = '%s' AND password = sha1('%s')",escpname,escpass);
- mysql_query(Query);
- mysql_store_result();
- if(!mysql_num_rows())
- {
- SendClientMessage(playerid,0x966C0FAA,"Wrong Password");
- ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Your account has been found","Welcome on Zombie Panic! Source","Login","Cancle");
- return 1;
- }
- else
- {
- new line[750];
- if(mysql_fetch_row(line)) //Fetches the line
- {
- new data[3];//The data strings
- new data2[5]; //The data variables
- sscanf(line, "p|dssdd",data2[1], data[1],data[2],data2[2],data2[3],data2[4]); //Splits the line with sscanf
- SetPlayerScore(playerid, data2[2]); //Sets players score
- PlayerAdminLevel[playerid] = data2[3]; //Sets players admin level
- mysql_free_result();
- Auth[playerid] = 1;
- if(PlayerAdminLevel[playerid] >= 1) adminduty[playerid] = 1;
- SendClientMessage(playerid, 0x009600AA, "You have been logged in!");
- }
- }
- }
- if(dialogid == LEVEL1)
- {
- if(listitem == 0)
- {
- ShowPlayerDialog(playerid,DIALOG_KREASON,DIALOG_STYLE_INPUT,"Admin Panel","Enter a reason to kick the player","Kick","Close");
- }
- else if(listitem == 1)
- {
- ShowPlayerDialog(playerid,DIALOG_MREASON,DIALOG_STYLE_INPUT,"Admin Panel","Enter a reason to mute the player","Mute","Close");
- }
- else if(listitem == 2)
- {
- ShowPlayerDialog(playerid,DIALOG_UMREASON,DIALOG_STYLE_INPUT,"Admin Panel","Enter a reason to unmute the player","Unmute","Close");
- }
- else if(listitem == 3)
- {
- ShowPlayerDialog(playerid,DIALOG_FREEZE,DIALOG_STYLE_INPUT, "Admin Panel","Enter a reason to freeze the player","Freeze","Close");
- }
- else if(listitem == 4)
- {
- ShowPlayerDialog(playerid,DIALOG_UNFREEZE,DIALOG_STYLE_INPUT,"Admin Panel","Enter a reason to unfreeze the player","Unfreeze","Close");
- }
- }
- if(dialogid == LEVEL2)
- {
- if(listitem == 0)
- {
- ShowPlayerDialog(playerid,DIALOG_KREASON,DIALOG_STYLE_INPUT,"Admin Panel","Enter a reason to kick the player","Kick","Close");
- }
- else if(listitem == 1)
- {
- ShowPlayerDialog(playerid,DIALOG_BREASON,DIALOG_STYLE_INPUT,"Admin Panel","Enter a reason to ban the player","Ban","Close");
- }
- else if(listitem == 2)
- {
- ShowPlayerDialog(playerid,DIALOG_MREASON,DIALOG_STYLE_INPUT,"Admin Panel","Enter a reason to mute the player","Mute","Close");
- }
- else if(listitem == 3)
- {
- ShowPlayerDialog(playerid,DIALOG_UMREASON,DIALOG_STYLE_INPUT,"Admin Panel","Enter a reason to unmute the player","Unmute","Close");
- }
- else if(listitem == 4)
- {
- ShowPlayerDialog(playerid,DIALOG_FREEZE,DIALOG_STYLE_INPUT, "Admin Panel","Enter a reason to freeze the player","Freeze","Close");
- }
- else if(listitem == 5)
- {
- ShowPlayerDialog(playerid,DIALOG_UNFREEZE,DIALOG_STYLE_INPUT,"Admin Panel","Enter a reason to unfreeze the player","Unfreeze","Close");
- }
- else if(listitem == 6)
- {
- if(Infected[giveplayerid] == 1) return SendClientMessage(playerid,0xFF0000AA,"Player is already Infected");
- Infected[giveplayerid] =1;
- infect = SetTimer("infection",1000,1);
- }
- else if(listitem == 7)
- {
- if(Infected[giveplayerid] == 0) return SendClientMessage(playerid,0xFF0000AA,"Player is not Infected");
- Infected[giveplayerid] =0;
- KillTimer(infect);
- SetPlayerHealth(giveplayerid,100.0);
- }
- else if(listitem == 8)
- {
- if(gTeam[playerid] == TEAM_ZOMBIE)
- {
- SendClientMessage(playerid,0x824908AA,"Player is already Zombie");
- return 1;
- }
- Infected[giveplayerid] =0;
- KillTimer(infect);
- gTeam[giveplayerid] = TEAM_ZOMBIE;
- SetPlayerSkin(giveplayerid,33);
- ResetPlayerWeapons(giveplayerid);
- SetPlayerArmour(giveplayerid,0.0);
- SetPlayerHealth(giveplayerid,200);
- }
- else if(listitem == 9)
- {
- if(gTeam[playerid] == TEAM_SURVIVOR)
- {
- SendClientMessage(playerid,0x824908AA,"Player is already Survivor");
- return 1;
- }
- gTeam[giveplayerid] = TEAM_SURVIVOR;
- SetPlayerSkin(giveplayerid,11);
- GivePlayerWeapon(giveplayerid,2,1);
- GivePlayerWeapon(giveplayerid,22,27);
- SetPlayerArmour(giveplayerid,0.0);
- SetPlayerHealth(giveplayerid,100);
- SetPlayerSkillLevel(playerid,WEAPONSKILL_PISTOL,1);
- SetPlayerSkillLevel(playerid,WEAPONSKILL_PISTOL_SILENCED,1);
- SetPlayerSkillLevel(playerid,WEAPONSKILL_DESERT_EAGLE,1);
- SetPlayerSkillLevel(playerid,WEAPONSKILL_SHOTGUN,999);
- SetPlayerSkillLevel(playerid,WEAPONSKILL_SAWNOFF_SHOTGUN,1);
- SetPlayerSkillLevel(playerid,WEAPONSKILL_SPAS12_SHOTGUN,1);
- SetPlayerSkillLevel(playerid,WEAPONSKILL_MICRO_UZI,1);
- SetPlayerSkillLevel(playerid,WEAPONSKILL_MP5,1);
- SetPlayerSkillLevel(playerid,WEAPONSKILL_AK47,999);
- SetPlayerSkillLevel(playerid,WEAPONSKILL_M4,999);
- SetPlayerSkillLevel(playerid,WEAPONSKILL_SNIPERRIFLE,1);
- }
- else if(listitem == 10)
- {
- ShowPlayerDialog(playerid,DIALOG_AKILL,DIALOG_STYLE_INPUT,"Admin Kill","Enter a reason why you kill him","Kill","Close");
- }
- else if(listitem == 11)
- {
- ShowPlayerDialog(playerid,DIALOG_APM,DIALOG_STYLE_INPUT,"Admin Private Message","Enter the Message to send as Admin","Send","Close");
- }
- }
- if(dialogid == DIALOG_APM)
- {
- if(!response)
- {
- SendClientMessage(playerid,0xFF0000AA,"Error: You have aborted");
- return 1;
- }
- GetPlayerName(giveplayerid,pname,24);
- format(string,sizeof(string),"PM from Admin: %s",inputtext);
- SendClientMessage(giveplayerid,0xFF7F50AA,string);
- PlayerPlaySound(giveplayerid,1085,0.0,0.0,0.0);
- format(string,sizeof(string),"PM Send to %s(%d): %s",pname,giveplayerid,inputtext);
- SendClientMessage(playerid,0xFF7F50AA,string);
- }
- if(dialogid == DIALOG_AKILL)
- {
- if(!response)
- {
- SendClientMessage(playerid,0xFF0000AA,"Error: You have aborted");
- return 1;
- }
- GetPlayerName(giveplayerid,pname,24);
- format(string,sizeof(string),"%s(%d) has been killed by an admin. Reason: %s",pname,giveplayerid,inputtext);
- SendClientMessageToAll(0xFF7F50AA,string);
- SetPlayerHealth(giveplayerid,0.0);
- if(gTeam[giveplayerid] == TEAM_ZOMBIE)
- {
- ZombieLives-=1;
- }
- else if(gTeam[giveplayerid] == TEAM_SURVIVOR)
- {
- SetPVarInt(playerid,"KilledByZombie",1);
- }
- }
- if(dialogid == DIALOG_KREASON)
- {
- if(!response)
- {
- SendClientMessage(playerid,0xFF0000AA,"Error: You have aborted");
- return 1;
- }
- new escreason[250];
- mysql_real_escape_string(inputtext,escreason);
- GetPlayerName(playerid,aname,24);
- GetPlayerName(giveplayerid,pname,24);
- format(string,sizeof(string),"%s(%d) has been kicked by an admin. Reason: %s",pname,giveplayerid,inputtext);
- SendClientMessageToAll(0xFF7F50AA,string);
- format(Query,sizeof(Query),"INSERT INTO `zombie_panic_source`.`kicks` (`id`,`kickedname`,`kickername`,`reason`) VALUES (NULL, '%s', '%s', '%s')",pname,aname,escreason);
- mysql_query(Query);
- Kick(giveplayerid);
- }
- if(dialogid == DIALOG_BREASON)
- {
- new escreason[250];
- mysql_real_escape_string(inputtext,escreason);
- GetPlayerName(playerid,aname,24);
- GetPlayerName(giveplayerid,pname,24);
- format(string,sizeof(string),"%s(%d) has been BANNED by an admin. Reason: %s ",pname,giveplayerid,inputtext);
- SendClientMessageToAll(0xFF7F50AA,string);
- format(Query,sizeof(Query),"INSERT INTO `zombie_panic_source`.`bans` (`id` ,`bannedname` ,`bannername` ,`reason`) VALUES (NULL , '%s', '%s', '%s')",pname,aname,escreason);
- mysql_query(Query);
- BanEx(giveplayerid,escreason);
- }
- if(dialogid == DIALOG_MREASON)
- {
- GetPlayerName(giveplayerid,pname,24);
- if(Muted[giveplayerid] == 1) return SendClientMessage(playerid,0xFF0000AA,"Player is already muted");
- format(string,sizeof(string),"%s(%d) has been muted by an admin. Reason: %s",pname,giveplayerid,inputtext);
- SendClientMessageToAll(0xFF7F50AA,string);
- Muted[giveplayerid] =1;
- }
- if(dialogid == DIALOG_UMREASON)
- {
- GetPlayerName(giveplayerid,pname,24);
- if(Muted[giveplayerid] == 0) return SendClientMessage(playerid,0xFF0000AA,"Player is already unmuted");
- format(string,sizeof(string),"%s(%d) has been unmuted by an admin. Reason: %s",pname,giveplayerid,inputtext);
- SendClientMessageToAll(0xFF7F50AA,string);
- Muted[giveplayerid] =0;
- }
- if(dialogid == DIALOG_FREEZE)
- {
- GetPlayerName(giveplayerid,pname,24);
- format(string,sizeof(string),"%s(%d) has been frozen. Reason %s",pname,giveplayerid,inputtext);
- SendClientMessageToAll(0xFF7F50AA,string);
- TogglePlayerControllable(giveplayerid,0);
- }
- if(dialogid == DIALOG_UNFREEZE)
- {
- GetPlayerName(giveplayerid,pname,24);
- format(string,sizeof(string),"%s(%d) has been unfrozen. Reason %s",pname,giveplayerid,inputtext);
- SendClientMessageToAll(0xFF7F50AA,string);
- TogglePlayerControllable(giveplayerid,1);
- }
- return 1;
- }
- public OnPlayerClickPlayer(playerid, clickedplayerid, source)
- {
- giveplayerid = clickedplayerid;
- if(PlayerAdminLevel[playerid] == 1)
- {
- ShowPlayerDialog(playerid,LEVEL1,DIALOG_STYLE_LIST,"Admin Level 1","Kick Player\r\nMute Player\r\nUnmute Player\r\nFreeze Player\r\nUnfreeze Player\r\nAdmin Private Message","Choose","Abort");
- }
- else
- if(PlayerAdminLevel[playerid] == 2)
- {
- ShowPlayerDialog(playerid,LEVEL2,DIALOG_STYLE_LIST,"Admin Level 2","Kick Player\r\nBan Player\r\nMute Player\r\nUnmute Player\r\nFreeze Player\r\nUnfreeze Player\r\nInfect\r\nCure Infection\r\nForce Zombie\r\nForce Survivor\r\nAdmin Kill\r\nAdmin Private Message","Choose","Abort");
- }
- return 1;
- }
- stock sscanf(string[], format[], {Float,_}:...)
- {
- #if defined isnull
- if (isnull(string))
- #else
- if (string[0] == 0 || (string[0] == 1 && string[1] == 0))
- #endif
- {
- return format[0];
- }
- #pragma tabsize 4
- new
- formatPos = 0,
- stringPos = 0,
- paramPos = 2,
- paramCount = numargs(),
- delim = ' ';
- while (string[stringPos] && string[stringPos] <= ' ')
- {
- stringPos++;
- }
- while (paramPos < paramCount && string[stringPos])
- {
- switch (format[formatPos++])
- {
- case '\0':
- {
- return 0;
- }
- case 'i', 'd':
- {
- new
- neg = 1,
- num = 0,
- ch = string[stringPos];
- if (ch == '-')
- {
- neg = -1;
- ch = string[++stringPos];
- }
- do
- {
- stringPos++;
- if ('0' <= ch <= '9')
- {
- num = (num * 10) + (ch - '0');
- }
- else
- {
- return -1;
- }
- }
- while ((ch = string[stringPos]) > ' ' && ch != delim);
- setarg(paramPos, 0, num * neg);
- }
- case 'h', 'x':
- {
- new
- num = 0,
- ch = string[stringPos];
- do
- {
- stringPos++;
- switch (ch)
- {
- case 'x', 'X':
- {
- num = 0;
- continue;
- }
- case '0' .. '9':
- {
- num = (num << 4) | (ch - '0');
- }
- case 'a' .. 'f':
- {
- num = (num << 4) | (ch - ('a' - 10));
- }
- case 'A' .. 'F':
- {
- num = (num << 4) | (ch - ('A' - 10));
- }
- default:
- {
- return -1;
- }
- }
- }
- while ((ch = string[stringPos]) > ' ' && ch != delim);
- setarg(paramPos, 0, num);
- }
- case 'c':
- {
- setarg(paramPos, 0, string[stringPos++]);
- }
- case 'f':
- {
- new changestr[16], changepos = 0, strpos = stringPos;
- while(changepos < 16 && string[strpos] && string[strpos] != delim)
- {
- changestr[changepos++] = string[strpos++];
- }
- changestr[changepos] = '\0';
- setarg(paramPos,0,_:floatstr(changestr));
- }
- case 'p':
- {
- delim = format[formatPos++];
- continue;
- }
- case '\'':
- {
- new
- end = formatPos - 1,
- ch;
- while ((ch = format[++end]) && ch != '\'') {}
- if (!ch)
- {
- return -1;
- }
- format[end] = '\0';
- if ((ch = strfind(string, format[formatPos], false, stringPos)) == -1)
- {
- if (format[end + 1])
- {
- return -1;
- }
- return 0;
- }
- format[end] = '\'';
- stringPos = ch + (end - formatPos);
- formatPos = end + 1;
- }
- case 'u':
- {
- new
- end = stringPos - 1,
- id = 0,
- bool:num = true,
- ch;
- while ((ch = string[++end]) && ch != delim)
- {
- if (num)
- {
- if ('0' <= ch <= '9')
- {
- id = (id * 10) + (ch - '0');
- }
- else
- {
- num = false;
- }
- }
- }
- if (num && IsPlayerConnected(id))
- {
- setarg(paramPos, 0, id);
- }
- else
- {
- #if !defined foreach
- #define foreach(%1,%2) for (new %2 = 0; %2 < MAX_PLAYERS; %2++) if (IsPlayerConnected(%2))
- #define __SSCANF_FOREACH__
- #endif
- string[end] = '\0';
- num = false;
- new
- name[MAX_PLAYER_NAME];
- id = end - stringPos;
- foreach (Player, playerid)
- {
- GetPlayerName(playerid, name, sizeof (name));
- if (!strcmp(name, string[stringPos], true, id))
- {
- setarg(paramPos, 0, playerid);
- num = true;
- break;
- }
- }
- if (!num)
- {
- setarg(paramPos, 0, INVALID_PLAYER_ID);
- }
- string[end] = ch;
- #if defined __SSCANF_FOREACH__
- #undef foreach
- #undef __SSCANF_FOREACH__
- #endif
- }
- stringPos = end;
- }
- case 's', 'z':
- {
- new
- i = 0,
- ch;
- if (format[formatPos])
- {
- while ((ch = string[stringPos++]) && ch != delim)
- {
- setarg(paramPos, i++, ch);
- }
- if (!i)
- {
- return -1;
- }
- }
- else
- {
- while ((ch = string[stringPos++]))
- {
- setarg(paramPos, i++, ch);
- }
- }
- stringPos--;
- setarg(paramPos, i, '\0');
- }
- default:
- {
- continue;
- }
- }
- while (string[stringPos] && string[stringPos] != delim && string[stringPos] > ' ')
- {
- stringPos++;
- }
- while (string[stringPos] && (string[stringPos] == delim || string[stringPos] <= ' '))
- {
- stringPos++;
- }
- paramPos++;
- }
- do
- {
- if ((delim = format[formatPos++]) > ' ')
- {
- if (delim == '\'')
- {
- while ((delim = format[formatPos++]) && delim != '\'') {}
- }
- else if (delim != 'z')
- {
- return delim;
- }
- }
- }
- while (delim > ' ');
- return 0;
- }
- stock GetPlayersInTeam(TEAM)
- {
- new players;
- for (new i; i < MAX_PLAYERS; i++)
- {
- if (IsPlayerConnected(i))
- {
- if (gTeam[i] == TEAM) players++;
- }
- }
- return players;
- }
- ZombieLivesTextDraw(playerid)
- {
- new string[10];
- format(string,sizeof(string),"%d",ZombieLives);
- zombielive = TextDrawCreate(18.0,170.0,string);
- TextDrawColor(zombielive,0xFF0000AA);
- TextDrawSetOutline(zombielive,1);
- TextDrawSetShadow(zombielive,0);
- TextDrawFont(zombielive,0);
- TextDrawLetterSize(zombielive,1.0,2.0);
- TextDrawShowForPlayer(playerid,zombielive);
- }
- stock SendZombieMessage(Message[])
- {
- for(new i; i<MAX_PLAYERS; i++)
- {
- if(gTeam[i] == TEAM_ZOMBIE) SendClientMessage(i, 0x8F0D0DAA, Message); // beim Stock am ende Message beim script string versuche es mal so
- }
- }
- stock SendSurvivorMessage(Message[])
- {
- for(new i; i<MAX_PLAYERS; i++)
- {
- if(gTeam[i] == TEAM_SURVIVOR) SendClientMessage(i, 0x00FFFFAA, Message); // beim Stock am ende Message beim script string versuche es mal so
- }
- }
- stock SendAdminMessage(Message[])
- {
- for(new i; i<MAX_PLAYERS; i++)
- {
- if(PlayerAdminLevel[i] == 2) SendClientMessage(i, 0xFF0000AA, Message); // beim Stock am ende Message beim script string versuche es mal so
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement