SA-MP Forums Archive
ayuda como poner un sonido al final de cada ronda - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Español/Spanish (https://sampforum.blast.hk/forumdisplay.php?fid=29)
+---- Thread: ayuda como poner un sonido al final de cada ronda (/showthread.php?tid=281008)



ayuda como poner un sonido al final de cada ronda - adrianxd - 03.09.2011

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)

Код:
#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;
}



Re: ayuda como poner un sonido al final de cada ronda - OwlCity - 03.09.2011

Deberнas aсadir el cуdigo en el timer: "DMTimer()", dentro del condicional "if (DMTime == 0)".

Para que les suene a todos deberнas usar un bucle o la funciуn "foreach".


Respuesta: Re: ayuda como poner un sonido al final de cada ronda - adrianxd - 03.09.2011

Quote:
Originally Posted by OwlCity
Посмотреть сообщение
Deberнas aсadir el cуdigo en el timer: "DMTimer()", dentro del condicional "if (DMTime == 0)".

Para que les suene a todos deberнas usar un bucle o la funciуn "foreach".
Pero como dime please


Re: ayuda como poner un sonido al final de cada ronda - OwlCity - 03.09.2011

Quote:

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)

Explicado estб, si querнas que te lo hicieran deberнas haberlo publicado en la secciуn de pedidos.

pawn Код:
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");
        for(new a=0; a<MAX_PLAYERS;a++)
        {
            if(IsPlayerConnected(a))
                PlayerPlaySound(a, soundid, 0.0, 0.0, 0.0);
           
        }
        KillTimer(dmtimer);
        GameTextForAll("~w~Server:~r~ Loading Next map",5000,4);
     }
    return 1;
}



Respuesta: ayuda como poner un sonido al final de cada ronda - adrianxd - 03.09.2011

Listo ya esta en pedidos


Re: ayuda como poner un sonido al final de cada ronda - OwlCity - 03.09.2011

Pero si te he dado una soluciуn no lo pongas en pedidos...


- adrianxd - 03.09.2011

a perdon no la abia visto xD

EDIT:
men me sirvio eres re bueno me sirvio a hora como hago q se pare la musica sigel el siguiente mapa y sige la musica
ayuda



Bueno el sonido de eleji si sale lo malo es que cuando entran ami server personas al final de cada ronda disen q no ollen nada porfavor ayuda