Jump to content

remaining


propje400

Recommended Posts

Hoi, wie weet een script dat je bv 30 sec moet wachten als je dood bent, en het liefst dat je dan 30 sec met de gene meekijk die je vermoord heeft, net als The Area51 Server.

[EDIT] weet iemand toevallig ook het script voor team balance? dus dat er niet 10 in rood en 1 in groen kan zitten. ;)

[EDIT] effe over mijn menu, ik heb het van sandra, maar ik kan het niet weg doen ingame, dus als ik het aanklik, en ik klik enter dan blijf hij op het begin menu, maar het zou eigelijk weg moeten gaan, want ik heb een gunupgrade menu, dus als spelers het aanklikken moeten ze iets kopen:S

Bewerkt: door propje400
Link to comment
Delen op andere websites

spectating is niet zo moeilijk:

public OnPlayerDeath(playerid, killerid, reason)
{
TogglePlayerSpectating(playerid, 1);
PlayerSpectatePlayer(playerid, killerid);
SetTimer("dead",30000,false);
return 1;
}
forward dead(playerid);
public dead(playerid)
{
TogglePlayerSpectating(playerid, 0);
}

en je kunt mischien ook nog bij public dead de spawn coordinaten zetten.

Link to comment
Delen op andere websites

blijkbaar wel, ik heb dit nu bij death,

public OnPlayerDeath(playerid, killerid, reason)

{

if (killerid != INVALID_PLAYER_ID) {



	if (gTeam[playerid] == gTeam[killerid]) {

		SetPlayerScore(killerid, GetPlayerScore(killerid) - 0);

	}

	else {

		SetPlayerScore(killerid, GetPlayerScore(killerid) + 1);
		GivePlayerMoney(killerid, GivePlayerMoney(killerid) + 1000);
		GameTextForPlayer(killerid, "~y~1000$", 3000, 5);
		GameTextForPlayer(playerid, "~y~Fail!", 3000, 5);
		if(rhino[playerid] == 0)
TogglePlayerSpectating(playerid, 1);
PlayerSpectatePlayer(playerid, killerid);
SetTimer("dead",30000,false);






MyDeaths[playerid]++;  //Put at top of the function under printf(.....)
MyKills[killerid]++;   //I have this under the valid kill section of code
MyTeamKills[killerid]++;  //I have this under the invalid(teamkill) section of code

DisablePlayerCheckpoint(playerid);


gPlayerCheckpointStatus[playerid] = CHECKPOINT_NONE;

KillTimer(endgametimer);

SetPlayerColor(playerid,COLOR_GREY);

 if(gTeam[killerid] == gTeam[playerid]) //Als de moordenaar uit hetzelfde team komt als de overleden persoon
{
	GetPlayerPos(playerid, X, Y, Z); //positiei opslaan.
	 GivePlayerMoney(killerid, -1000);
	GameTextForPlayer(killerid, "~r~-1000$ Teamkill", 3000, 5);
	DiedByOwnTeam[playerid] = true;
}


	return 1;

}

public dead(playerid)
{
TogglePlayerSpectating(playerid, 0);
}
SendDeathMessage(killerid, playerid, reason);

	}

}

ik heb forward dead(playerid); bovenaan

Link to comment
Delen op andere websites

Dat spectating is niet zo moeilijk. de rest om de doodheen kan inderdaad lastiger zijn.

EDIT:

Je hebt het allemaal niet goed afgesloten en sendeadmessage kun je beter bovenaan:

public OnPlayerDeath(playerid, killerid, reason)

{

if (killerid != INVALID_PLAYER_ID) {



	if (gTeam[playerid] == gTeam[killerid]) {

		SetPlayerScore(killerid, GetPlayerScore(killerid) - 0);

	}

	else {

		SetPlayerScore(killerid, GetPlayerScore(killerid) + 1);
		GivePlayerMoney(killerid, GivePlayerMoney(killerid) + 1000);
		GameTextForPlayer(killerid, "~y~1000$", 3000, 5);
		GameTextForPlayer(playerid, "~y~Fail!", 3000, 5);
		if(rhino[playerid] == 0)
TogglePlayerSpectating(playerid, 1);
PlayerSpectatePlayer(playerid, killerid);
SendDeathMessage(killerid, playerid, reason);
SetTimer("dead",30000,false);
}
}




MyDeaths[playerid]++;  //Put at top of the function under printf(.....)
MyKills[killerid]++;   //I have this under the valid kill section of code
MyTeamKills[killerid]++;  //I have this under the invalid(teamkill) section of code

DisablePlayerCheckpoint(playerid);


gPlayerCheckpointStatus[playerid] = CHECKPOINT_NONE;

KillTimer(endgametimer);

SetPlayerColor(playerid,COLOR_GREY);

 if(gTeam[killerid] == gTeam[playerid]) //Als de moordenaar uit hetzelfde team komt als de overleden persoon
{
	GetPlayerPos(playerid, X, Y, Z); //positiei opslaan.
	 GivePlayerMoney(killerid, -1000);
	GameTextForPlayer(killerid, "~r~-1000$ Teamkill", 3000, 5);
	DiedByOwnTeam[playerid] = true;
}

return 1;

}

public dead(playerid)
{
TogglePlayerSpectating(playerid, 0);
}

Bewerkt: door mosweg
Link to comment
Delen op andere websites

Dit is alleen als je vermoord word door een andere speler die niet in je team zit, waar jij dus (killerid)score +1 en (killerid)money+1000 hebt gezet. als hetgoed is gebuirt dat alleen als je word vermoord door een geldige killerid en dan moet je pas spectating, als je het ergens anders zet dan spectate je niemand

Nog even over je vraag van teambalance:

new TeamBalanceOn;
public OnGameModeInit()
{
TeamBalanceOn = 1;
return 1;
}
public OnPlayerSpawn(playerid)
{
if(TeamBalanceOn == 1)
{
	new RedCount; new BlueCount;
	for(new i=0; i<MAX_PLAYERS; i++)
	{
		if(IsPlayerConnected(i))
		{
			if(PlayerInfo[i][team] == Team_Blue)
			{
				BlueCount++;
			}
			else if(PlayerInfo[i][team] == Team_Red)
			{
				RedCount++;
			}
		}
	}
	if(RedCount > BlueCount+1 && PlayerInfo[playerid][team] == Team_Red) {
	PlayerInfo[playerid][team] = Team_Blue;
	SendClientMessage(playerid,COLOR_BLUE,"You have been automatically switched to blue team to even out teams");
	} else if(BlueCount > RedCount+2 && PlayerInfo[playerid][team] == Team_Blue) {
	PlayerInfo[playerid][team] = Team_Red;
	SendClientMessage(playerid,COLOR_RED,"You have been automatically switched to red team to even out teams");
	}
}
return 1;
}

je moet de teams wel even aanpassen aan je eigen teams maar als het goed is moet dit werken.

Link to comment
Delen op andere websites

ok i kheb nu dit:

public OnPlayerDeath(playerid, killerid, reason)

{

if (killerid != INVALID_PLAYER_ID) {



	if (gTeam[playerid] == gTeam[killerid]) {

		SetPlayerScore(killerid, GetPlayerScore(killerid) - 0);

	}

	else {

		SetPlayerScore(killerid, GetPlayerScore(killerid) + 1);
		GivePlayerMoney(killerid, GivePlayerMoney(killerid) + 1000);
		GameTextForPlayer(killerid, "~y~1000$", 3000, 5);
		GameTextForPlayer(playerid, "~y~Fail!", 3000, 5);
		if(rhino[playerid] == 0)
TogglePlayerSpectating(playerid, 1);
PlayerSpectatePlayer(playerid, killerid);
SendDeathMessage(killerid, playerid, reason);
SetTimer("dead",30000,false);
}
}




MyDeaths[playerid]++;  //Put at top of the function under printf(.....)
MyKills[killerid]++;   //I have this under the valid kill section of code
MyTeamKills[killerid]++;  //I have this under the invalid(teamkill) section of code

DisablePlayerCheckpoint(playerid);


gPlayerCheckpointStatus[playerid] = CHECKPOINT_NONE;

KillTimer(endgametimer);

SetPlayerColor(playerid,COLOR_GREY);

 if(gTeam[killerid] == gTeam[playerid]) //Als de moordenaar uit hetzelfde team komt als de overleden persoon
{
	GetPlayerPos(playerid, X, Y, Z); //positiei opslaan.
	 GivePlayerMoney(killerid, -1000);
	GameTextForPlayer(killerid, "~r~-1000$ Teamkill", 3000, 5);
	DiedByOwnTeam[playerid] = true;
}

  if(TeamBalanceOn == 1)
{
	new RedCount; new BlueCount;
	for(new i=0; i<MAX_PLAYERS; i++)
	{
		if(IsPlayerConnected(i))
		{
			if(PlayerInfo[i][team] == Team_Blue)
			{
				BlueCount++;
			}
			else if(PlayerInfo[i][team] == Team_Red)
			{
				RedCount++;
			}
		}
	}
	if(RedCount > BlueCount+1 && PlayerInfo[playerid][team] == Team_Red) {
	PlayerInfo[playerid][team] = Team_Blue;
	SendClientMessage(playerid,COLOR_BLUE,"You have been automatically switched to blue team to even out teams");
	} else if(BlueCount > RedCount+2 && PlayerInfo[playerid][team] == Team_Blue) {
	PlayerInfo[playerid][team] = Team_Red;
	SendClientMessage(playerid,COLOR_RED,"You have been automatically switched to red team to even out teams");
	}


return 1;

}

public dead(playerid)
{
TogglePlayerSpectating(playerid, 0);
}

het werkt niet echt, ik heb deze warnings

: warning 235: public function lacks forward declaration (symbol "dead")

: warning 203: symbol is never used: "SetPlayerToTeamColour"

: warning 204: symbol is assigned a value that is never used: "TeamBalanceOn"

en hierdoor is de hele server niet speelbaar, wanti k zie de grond, autos sommige muren niet meer:S

Bewerkt: door propje400
Link to comment
Delen op andere websites

ok mijn fout :

public OnPlayerSpawn(playerid)

{

if(TeamBalanceOn == 1)

{

new RedCount; new BlueCount;

for(new i=0; i<MAX_PLAYERS; i++)

{

if(IsPlayerConnected(i))

{

if(PlayerInfo[team] == TEAM_RED) <<<< (1823)

{

BlueCount++;

}

else if(PlayerInfo[team] == TEAM_GREEN)

{

RedCount++;

}

}

}

if(RedCount > BlueCount+1 && PlayerInfo[playerid][team] == TEAM_GREEN) {

PlayerInfo[playerid][team] = Team_Blue;

SendClientMessage(playerid,COLOR_BLUE,"You have been automatically switched to blue team to even out teams");

} else if(BlueCount > RedCount+2 && PlayerInfo[playerid][team] == TEAM_RED) {

PlayerInfo[playerid][team] = Team_Red;

SendClientMessage(playerid,COLOR_RED,"You have been automatically switched to red team to even out teams");

}

SetPlayerToTeamColour(playerid);

if(logged[playerid] == 0)

{

SendClientMessage(playerid, COLOR_FELRED, "/Register or /login!");

GameTextForPlayer(playerid,"~r~/login /register", 3000, 1);

ForceClassSelection(playerid);

}

switch (gPlayerClass[playerid])

{

case 0, 1, 2:

{

gPlayerCheckpointStatus[playerid] = CHECKPOINT_NONE;

SendClientMessage(playerid, COLOR_RED, "Welcome(back) in Mafia. Use /openmafia to open the gate! Kill the Army!");

SetPlayerInterior(playerid,0);

pickup = CreatePickup ( 1274, 2, -93.1210,143.0031,3.1147 );

pickup2 = CreatePickup ( 1274, 2, -108.0126,149.0812,3.2391 );

if(logged[playerid] == 0)

SendClientMessage(playerid, COLOR_FELRED, "WARNING: USE /LOGIN /REGISTER TO OPEN THE GATE!");

{

return 1;

}

}

case 3, 4, 5:

{

gPlayerCheckpointStatus[playerid] = CHECKPOINT_NONE;

SendClientMessage(playerid, COLOR_FELGREEN, "Welcome(back) in Army. Use /openarmy to open the gate! Kill the Mafia!");

SetPlayerInterior(playerid,0);

pickup = CreatePickup ( 1274, 2, -93.1210,143.0031,3.1147 );

pickup2 = CreatePickup ( 1274, 2, -108.0126,149.0812,3.2391 );

if(logged[playerid] == 0)

SendClientMessage(playerid, COLOR_FELRED, "WARNING: USE /LOGIN /REGISTER TO OPEN THE GATE!");

}

case 6:

{

gPlayerCheckpointStatus[playerid] = CHECKPOINT_NONE;

GameTextForPlayer(playerid, "~b~Welcome at Admin spawn!", 2000, 5);

pickup = CreatePickup ( 1274, 2, -93.1210,143.0031,3.1147 );

pickup2 = CreatePickup ( 1274, 2, -108.0126,149.0812,3.2391 );

SetPlayerInterior(playerid,0);

}

}

if(DiedByOwnTeam[playerid] == true) //Als de speler is vermoord door zijn eigen team

{

SetPlayerPos(playerid, X, Y, Z); //Zet hem terug op zijn oude positie

}

DiedByOwnTeam[playerid] = false; //Laat dit onderaan staan, anders werkt het niet.

return 1;

}

deze errors :

(871) : error 017: undefined symbol "ReturnPlayerName"

(1530) : error 017: undefined symbol "GetXYInFrontOfPlayer"

(1823) : error 017: undefined symbol "PlayerInfo"

(1823) : warning 215: expression has no effect

(1823) : error 001: expected token: ";", but found "]"

(1823) : error 029: invalid expression, assumed zero

(1823) : fatal error 107: too many error messages on one line

Bewerkt: door propje400
Link to comment
Delen op andere websites

welk team gebruik je?

dit is er een die ik zelf niet gebruik. (ik heb geen DM server)

Ik werk zelf met gteam als jij daar ook mee werkt moet je denk ik

if(PlayerInfo[i][team] == TEAM_RED)

veranderen in

if (gTeam[playerid] == TEAM_RED)

en hetzelfde met team blue.

dan zul je die errors weg hebben

Bewerkt: door mosweg
Link to comment
Delen op andere websites

public OnPlayerSpawn(playerid)

{

if(TeamBalanceOn == 1)

{

new RedCount; new BlueCount;

for(new i=0; i<MAX_PLAYERS; i++)

{

if(IsPlayerConnected(i))

{

if (gTeam[playerid] == TEAM_RED)

{

BlueCount++;

}

else if (gTeam[playerid] == TEAM_GREEN)

{

RedCount++;

}

}

}

if(RedCount > BlueCount+1 && gTeam[playerid] == TEAM_RED) { {

PlayerInfo[playerid][team] = Team_Blue; <<<<<<<<<<<<<<<< heb ik van alles proberen te verandere maar dan krijg ik 26 errors, en zo als het nu is, maakt geen verschil?

SendClientMessage(playerid,COLOR_BLUE,"You have been automatically switched to blue team to even out teams");

} else if(BlueCount > RedCount+2 && gTeam[playerid] == TEAM_GREEN) { {

gTeam[playerid] == TEAM_GREEN)

SendClientMessage(playerid,COLOR_RED,"You have been automatically switched to red team to even out teams");

}

SetPlayerToTeamColour(playerid);

Link to comment
Delen op andere websites

Iheb hem even in een FS gezet en gekeken wat er mis was,

Je moest de andere PlayerInfo[playerid][team] ook naar gTeam[playerid] veranderen,

Hier is de zonder een error teambalance script:

#include <a_samp>

#define TEAM_RED 1
#define TEAM_BLUE 2
static gTeam[MAX_PLAYERS];
new TeamBalanceOn;

public OnPlayerSpawn(playerid)
{

if(TeamBalanceOn == 1)
{
	new RedCount; new BlueCount;
	for(new i=0; i<MAX_PLAYERS; i++)
	{
		if(IsPlayerConnected(i))
		{
			if (gTeam[playerid] == TEAM_BLUE)
			{
				BlueCount++;
			}
			else if (gTeam[playerid] == TEAM_RED)
			{
				RedCount++;
			}
		}
	}
	if(RedCount > BlueCount+1 && gTeam[playerid] == TEAM_RED) {
	gTeam[playerid] = TEAM_BLUE;
	SendClientMessage(playerid,0x0000FFAA,"You have been automatically switched to blue team to even out teams");
	} else if(BlueCount > RedCount+2 && gTeam[playerid] == TEAM_BLUE) {
	gTeam[playerid] = TEAM_RED;
	SendClientMessage(playerid,0xFF0000AA,"You have been automatically switched to red team to even out teams");
	}
}
}

Link to comment
Delen op andere websites

Een reactie plaatsen

Je kan nu een reactie plaatsen en pas achteraf registreren. Als je al lid bent, log eerst in om met je eigen account een reactie te plaatsen.

Gast
Op dit onderwerp reageren...

×   Je hebt text geplaatst met opmaak.   Opmaak verwijderen

  Only 75 emoji are allowed.

×   Je link is automatisch ingevoegd.   In plaats daarvan weergeven als link

×   Je vorige bewerkingen zijn hersteld.   Alles verwijderen

×   You cannot paste images directly. Upload or insert images from URL.

  • Recent actief   0 leden

    • Er zijn hier geen geregistreerde gebruikers aanwezig.
×
×
  • Create New...