03.09.2011, 22:06
Si me preguntava como poner un sonido al final de cada rona, mapa de mi server ayuda
aqui dejo un gm que uso expliquenme donde puedo poner el sonido para cuando acaba un ronda los jugadores puedan oirla (todos los jugadores la oigan)
aqui dejo un gm que uso expliquenme donde puedo poner el sonido para cuando acaba un ronda los jugadores puedan oirla (todos los jugadores la oigan)
Код:
#include <a_samp> //============================================================================== #undef MAX_PLAYERS #define MAX_PLAYERS 50 //============================================================================== static gTeam[MAX_PLAYERS]; //===============================[Teams]======================================== #define TEAM_CT 1 #define TEAM_TT 2 //============================[Forwards]======================================== forward SendCounterMessage(color, string[]); forward SendTerrorMessage(color, string[]); forward SetPlayerSpawn(playerid); forward DMTimer(playerid); forward TextClear(playerid); //============================================================================== new TeamWarning[MAX_PLAYERS]; //==============================[Textdraws]===================================== new Text:scoretext; new Text:Time; new Text:teamtext; //==============================[Others]======================================== new ctscore; new ttscore; new DMTime; new realchat = 1; new dmtimer; new CTcount; new TTcount; //============================================================================== main() { } //============================================================================== public OnGameModeInit() { DMTime = 350; ctscore=0; ttscore=0; CTcount = 0; TTcount = 0; SendRconCommand("mapname Tuneles 2"); SendRconCommand("reloadfs admin"); //=================================[Objects]=========================== //===================================[Score]==================================== scoretext = TextDrawCreate(244, 428, " "); TextDrawFont(Text:scoretext, 1); TextDrawLetterSize(Text:scoretext, 0.599999,2.100000); TextDrawColor(Text:scoretext, 0xffffffff); TextDrawBackgroundColor(Text:scoretext, 0x000000ff); TextDrawSetOutline(Text:scoretext, 1); TextDrawSetProportional(Text:scoretext, 2); TextDrawSetShadow(Text:scoretext, 1); //=================================[Time]======================================= Time = TextDrawCreate(555.0,25.0, " "); TextDrawSetShadow(Text:Time, 0); TextDrawSetOutline(Text:Time, 1); TextDrawLetterSize(Text:Time,0.5,1.5); //=========================[Team Balance Textdraw]============================== teamtext = TextDrawCreate(25, 145, "This team is full, please choose another one!"); TextDrawAlignment(teamtext, 1); TextDrawFont(teamtext, 1); TextDrawLetterSize(teamtext, 0.39, 2.3); TextDrawColor(teamtext, 0xFFFFFFFF); TextDrawSetShadow(teamtext, 1); TextDrawSetProportional(teamtext, 1); TextDrawSetOutline(teamtext, 1); TextDrawUseBox(teamtext, 1); TextDrawTextSize(teamtext, 200, 210); TextDrawBoxColor(teamtext, 0x000000FF); //=============================[Timers]========================================= dmtimer = SetTimer("DMTimer", 888,1); return 1; } //============================================================================== public OnPlayerRequestClass(playerid, classid) { SetPlayerClass(playerid, classid); SetPlayerInterior(playerid, 11); SetPlayerPos(playerid, 508.8771,-87.8426,998.9683); SetPlayerFacingAngle(playerid, 1); SetPlayerCameraPos(playerid, 508.8771,-83.6699,998.9609); SetPlayerCameraLookAt(playerid, 508.8771,-87.8426,998.9683); switch (classid) { case 0..3: GameTextForPlayer(playerid, "~r~Bandas", 2000, 3); case 4..7: GameTextForPlayer(playerid, "~b~Policias", 2000, 3); } return 1; } //============================================================================== SetPlayerClass(playerid, classid) { switch(classid) { case 0..3: { gTeam[playerid] = TEAM_TT; SetPlayerTeam(playerid, TEAM_TT); } case 4..7: { gTeam[playerid] = TEAM_CT; SetPlayerTeam(playerid, TEAM_CT); } } } //============================================================================== public OnPlayerRequestSpawn(playerid) { if(gTeam[playerid] == TEAM_CT && CTcount > TTcount) { TextDrawShowForPlayer(playerid, teamtext); SetTimerEx("TextClear", 3000, false, "i", playerid); return 0; } else if(gTeam[playerid] == TEAM_TT && TTcount > CTcount) { TextDrawShowForPlayer(playerid, teamtext); SetTimerEx("TextClear", 3000, false, "i", playerid); return 0; } return 1; } //============================================================================== public OnPlayerConnect(playerid) { TeamWarning[playerid] = 0; } //============================================================================== public OnPlayerDisconnect(playerid, reason) { if(gTeam[playerid] == TEAM_CT) CTcount --; else if(gTeam[playerid] == TEAM_TT) TTcount --; return 1; } //============================================================================== public OnPlayerSpawn(playerid) { SetPlayerSpawn(playerid); TextDrawHideForPlayer(playerid, teamtext); return 1; } //============================================================================== public OnPlayerDeath(playerid, killerid, reason) { new string[128]; if(gTeam[killerid] == TEAM_CT) ctscore++; if(gTeam[killerid] == TEAM_TT ) ttscore++; if(gTeam[killerid] == gTeam[playerid]) { TeamWarning[killerid] ++; SendClientMessage(killerid, 0xa9c4e4ff, "Don't team kill or you will get kicked."); if(TeamWarning[killerid] >= 3) { format(string, sizeof(string), "AdmCmd: %s was kicked, reason: Excessive Team Killing.", PlayerName(killerid)); SendClientMessageToAll(0xFF6347AA, string); Kick(killerid); } } return 1; } //============================================================================== public OnPlayerText(playerid, text[]) { new string[128]; if(text[0] == '!') { format(string, sizeof(string), "[TEAM] %s [%d]: %s.", PlayerName(playerid),playerid, text[1]); if(gTeam[playerid] == TEAM_CT) SendCounterMessage(0xF97804FF, string); else if(gTeam[playerid] == TEAM_TT) SendTerrorMessage(0xF97804FF, string); return 0; } if(realchat) { format(string, sizeof(string), "(%d): %s.", playerid, text[0]); SendPlayerMessageToAll(playerid, string); return 0; } return 1; } //============================================================================== strtok(const string[], &index) { new length = strlen(string); while ((index < length) && (string[index] <= ' ')) { index++; } new offset = index; new result[20]; while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1))) { result[index - offset] = string[index]; index++; } result[index - offset] = EOS; return result; } //============================================================================== public OnPlayerCommandText(playerid, cmdtext[]) { PlayerPlaySound(playerid, 1186, 0.0,0.0,0.0); new cmd[128]; new idx; cmd = strtok(cmdtext, idx); if(strcmp(cmd, "/nextmap", true) == 0) { if(IsPlayerConnected(playerid)) { for(new i = 0; i < MAX_PLAYERS; i++) { TogglePlayerControllable(i, 0); } SendRconCommand("changemode cs2"); } return 1; } return 0; } //============================================================================== stock right(source[], len) { new retval[MAX_STRING], srclen; srclen = strlen(source); strmid(retval, source, srclen - len, srclen, MAX_STRING); return retval; } stock strvalEx( const string[] ) { if( strlen( string ) >= 50 ) return 0; return strval(string); } //============================================================================== public SetPlayerSpawn(playerid) { if(IsPlayerConnected(playerid)) { if(gTeam[playerid] == TEAM_CT) { SetPlayerPos(playerid, 2581.2603,-1916.8545,8.2730); SetPlayerFacingAngle(playerid, 360.0); SetPlayerInterior(playerid, 0); SetPlayerColor(playerid,0x2641FEAA); TogglePlayerControllable(playerid, 1); SetPlayerTeam(playerid, TEAM_CT); CTcount ++; return 1; } if(gTeam[playerid] == TEAM_TT) { SetPlayerPos(playerid, 2581.6724,-1773.2089,6.0465); SetPlayerFacingAngle(playerid, 360.0); SetPlayerInterior(playerid, 0); SetPlayerColor(playerid,0xE60000FF); TogglePlayerControllable(playerid, 1); SetPlayerTeam(playerid, TEAM_TT); TTcount ++; return 1; } } return 1; } //============================================================================== public DMTimer() { DMTime --; new tmp[256]; format(tmp, sizeof tmp, "%s", TimeConvert(DMTime)); TextDrawSetString(Text:Time, tmp); TextDrawShowForAll(Text:Time); format(tmp, sizeof(tmp), "~b~Policias: ~w~%d ~r~Bandas: ~w~%d", ctscore, ttscore); TextDrawSetString(Text:scoretext, tmp); TextDrawShowForAll(Text:scoretext); if (DMTime == 0) { if(ctscore > ttscore) { GameTextForAll("~w~ The round is over, ~b~Policias ~w~win.", 3000, 5); } else if(ttscore > ctscore) { GameTextForAll("~w~ The round is over, ~r~Bandas ~w~win.", 3000, 5); } else if(ctscore == ttscore) { GameTextForAll("~y~ The round is over, ~y~Draw.", 3000, 5); } SendRconCommand("changemode cs2"); KillTimer(dmtimer); GameTextForAll("~w~Server:~r~ Loading Next map",5000,4); } return 1; } //============================================================================== TimeConvert(seconds) { new tmp[256]; new minutes = floatround(seconds/60); seconds -= minutes*60; format(tmp, sizeof(tmp), "%d:%02d", minutes, seconds); return tmp; } //============================================================================== stock PlayerName(playerid) { new name[255]; GetPlayerName(playerid, name, 255); return name; } //============================================================================== public SendCounterMessage(color, string[]) { for(new i = 0; i < MAX_PLAYERS; i++) { if(IsPlayerConnected(i)) { if(gTeam[i] == TEAM_CT) { SendClientMessage(i, color, string); } } } } //============================================================================== public SendTerrorMessage(color, string[]) { for(new i = 0; i < MAX_PLAYERS; i++) { if(IsPlayerConnected(i)) { if(gTeam[i] == TEAM_TT) { SendClientMessage(i, color, string); } } } } //============================================================================== public TextClear(playerid) { TextDrawHideForPlayer(playerid, teamtext); return 1; }