Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- #define MAX_TEAMS 2
- #define MAX_PLAYERS_PER_TEAM 5
- #define NO_TEAM -1
- #define INVALID_PLAYER_ID -1
- #define COLOR_WHITE 0xFFFFFF
- #define COLOR_YELLOW 0xFFFF00
- new playerTeam[MAX_PLAYERS];
- new teamScore[MAX_TEAMS];
- public OnPlayerConnect(playerid)
- {
- SetPlayerTeam(playerid, NO_TEAM); // Noví hráči nemajú tím
- playerTeam[playerid] = NO_TEAM;
- return 1;
- }
- public OnPlayerRequestClass(playerid, classid)
- {
- if (playerTeam[playerid] == NO_TEAM)
- {
- SetPlayerTeam(playerid, classid); // Priradenie hráča k tímu
- playerTeam[playerid] = classid;
- SendClientMessage(playerid, COLOR_WHITE, "Pripojil si sa k tímu!");
- }
- else
- {
- SendClientMessage(playerid, COLOR_WHITE, "Už si v tíme!");
- }
- return 1;
- }
- public OnPlayerDeath(playerid, killerid, reason)
- {
- if (killerid != INVALID_PLAYER_ID && playerTeam[playerid] != NO_TEAM && playerTeam[playerid] == playerTeam[killerid])
- {
- teamScore[playerTeam[playerid]]++; // Zvýšenie skóre tímu
- SendClientMessageToAll(COLOR_YELLOW, "Gól! Tím %d má %d bodov.", playerTeam[playerid], teamScore[playerTeam[playerid]]);
- }
- return 1;
- }
- // Príkaz na vytvorenie tímu
- public OnPlayerCommandText(playerid, cmdtext[])
- {
- new cmd[32];
- new params[128];
- if(sscanf(cmdtext, "ss[32]s[128]", cmd, params))
- {
- if(!strcmp(cmd, "/createteam", true))
- {
- CreateTeam(playerid, params);
- return 1;
- }
- else if(!strcmp(cmd, "/showscore", true))
- {
- ShowTeamScore(playerid);
- return 1;
- }
- else if(!strcmp(cmd, "/changeteam", true))
- {
- ChangeTeam(playerid, params);
- return 1;
- }
- else if(!strcmp(cmd, "/resetscore", true))
- {
- ResetTeamScore(playerid);
- return 1;
- }
- }
- return 0;
- }
- public CreateTeam(playerid, teamname[])
- {
- new teamID = GetAvailableTeamID();
- if(teamID != -1)
- {
- SetPlayerTeam(playerid, teamID);
- SendClientMessageToAll(COLOR_WHITE, "Hráč %d vytvoril nový tím %s.", playerid, teamname);
- }
- else
- {
- SendClientMessage(playerid, COLOR_WHITE, "Všetky tímy sú plné.");
- }
- }
- public GetAvailableTeamID()
- {
- for(new i = 0; i < MAX_TEAMS; i++)
- {
- new playersInTeam = CountPlayersInTeam(i);
- if(playersInTeam < MAX_PLAYERS_PER_TEAM)
- {
- return i;
- }
- }
- return -1;
- }
- public CountPlayersInTeam(teamID)
- {
- new count = 0;
- for(new i = 0; i < MAX_PLAYERS; i++)
- {
- if(playerTeam[i] == teamID)
- {
- count++;
- }
- }
- return count;
- }
- public ShowTeamScore(playerid)
- {
- for(new i = 0; i < MAX_TEAMS; i++)
- {
- SendClientMessage(playerid, COLOR_WHITE, "Tím %d má %d bodov.", i, teamScore[i]);
- }
- }
- public ChangeTeam(playerid, newteamid)
- {
- if(newteamid >= 0 && newteamid < MAX_TEAMS)
- {
- SetPlayerTeam(playerid, newteamid);
- SendClientMessage(playerid, COLOR_WHITE, "Zmenil si tím.");
- }
- else
- {
- SendClientMessage(playerid, COLOR_WHITE, "Neplatný tím.");
- }
- }
- public ResetTeamScore(playerid)
- {
- for(new i = 0; i < MAX_TEAMS; i++)
- {
- teamScore[i] = 0;
- }
- SendClientMessageToAll(COLOR_WHITE, "Skóre tímov bolo resetované.");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement