propje400 Geplaatst: 15 augustus 2009 Rapport Geplaatst: 15 augustus 2009 (bewerkt) 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: 15 augustus 2009 door propje400 Reageren
mosweg Geplaatst: 15 augustus 2009 Rapport Geplaatst: 15 augustus 2009 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. Reageren
propje400 Geplaatst: 15 augustus 2009 Auteur Rapport Geplaatst: 15 augustus 2009 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 Reageren
mosweg Geplaatst: 15 augustus 2009 Rapport Geplaatst: 15 augustus 2009 (bewerkt) 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: 15 augustus 2009 door mosweg Reageren
propje400 Geplaatst: 15 augustus 2009 Auteur Rapport Geplaatst: 15 augustus 2009 werkt dit alleen als je vermoord wordt? of ook als je bv /kill of van een flat valt? zo nee. wat moet ik verandere waardoor dat wel is? (kan niet testen met meerdere spelers) Reageren
mosweg Geplaatst: 16 augustus 2009 Rapport Geplaatst: 16 augustus 2009 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. Reageren
propje400 Geplaatst: 16 augustus 2009 Auteur Rapport Geplaatst: 16 augustus 2009 (bewerkt) 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: 16 augustus 2009 door propje400 Reageren
propje400 Geplaatst: 16 augustus 2009 Auteur Rapport Geplaatst: 16 augustus 2009 wtf! als ik het weer naar het oude verwerkt, zie ik nogsteeds de grond enzo niet! ik hoop dat ik dit wel kan oplossen!!! Reageren
mosweg Geplaatst: 16 augustus 2009 Rapport Geplaatst: 16 augustus 2009 (bewerkt) jij hebt hem onder public OnPlayerDeath(playerid, killerid, reason) gezet de teambalance moet onder public OnPlayerSpawn(playerid) Bewerkt: 16 augustus 2009 door mosweg Reageren
propje400 Geplaatst: 16 augustus 2009 Auteur Rapport Geplaatst: 16 augustus 2009 (bewerkt) 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: 16 augustus 2009 door propje400 Reageren
mosweg Geplaatst: 16 augustus 2009 Rapport Geplaatst: 16 augustus 2009 (bewerkt) 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: 16 augustus 2009 door mosweg Reageren
propje400 Geplaatst: 16 augustus 2009 Auteur Rapport Geplaatst: 16 augustus 2009 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); Reageren
mosweg Geplaatst: 16 augustus 2009 Rapport Geplaatst: 16 augustus 2009 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"); } } } Reageren
vierkant1 Geplaatst: 16 augustus 2009 Rapport Geplaatst: 16 augustus 2009 (bewerkt) Thanks! (had ik ook nodig ) Bewerkt: 16 augustus 2009 door vierkant1 Reageren
Recommended Posts
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.