Jump to content
Posted
comment_1447787

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

Edited by propje400

Featured Replies

comment_1447873

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.

  • Author
comment_1447881

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

comment_1447889

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);
}

Edited by mosweg

comment_1448490

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.

  • Author
comment_1448808

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

Edited by propje400

  • Author
comment_1448862

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

Edited by propje400

comment_1448880

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

Edited by mosweg

  • Author
comment_1448975

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);

comment_1449044

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");
	}
}
}

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

Recently Browsing 0

  • No registered users viewing this page.