new string; zu new string[128];
GetPlayerSpeed(playerid,true) zu GetPlayerSpeed(playerid)
//
New string entfernen
Gut soweit, jetzt steht noch rror 017: undefined symbol "playerid"
Keine Idee was daran nicht stimmt
new string; zu new string[128];
GetPlayerSpeed(playerid,true) zu GetPlayerSpeed(playerid)
//
New string entfernen
Gut soweit, jetzt steht noch rror 017: undefined symbol "playerid"
Keine Idee was daran nicht stimmt
CMD:sup(playerid, params[])
{
new input[90], text[96], string[128];
if(!IsLoggedIn(playerid))return 1;
if(sscanf(params, "s[90]", input))return SendClientMessage(playerid, COLOR_GREY, "Benutze /sup [Nachricht]");
new bool:isOnline;
for(new i=0;i<GetMaxPlayers();i++)
{
if(IsPlayerConnected(i) && Spieler[i][pLoggedIn])
{
if(Spieler[i][pAdmin] > 0)
{
isOnline = true;
}
}
}
if(!isOnline)
{
SendClientMessage(playerid, COLOR_GREY, "Derzeit ist kein Team Mitglied online.");
return 1;
}
// CREATE SUPPORT TICKET
if(GetTicketCount() > MAX_REPORTS)return SendClientMessage(playerid, COLOR_GREY, "Die Team Mitglieder haben momentan zuviele Tickets. Schreibe in einigen Minuten ein neues Ticket!");
if(Spieler[playerid][pReportAktiv] != 0)return SendClientMessage(playerid, COLOR_GREY, "Du bist bereits in einem aktiven Report oder hast ein Ticket erstellt!");
SendClientMessage(playerid, COLOR_GREEN, "Du hast ein Support-Ticket abgeschickt. Bitte gedulde dich nun einen moment.");
format(string, sizeof(string), "%s hat ein Support-Ticket erstellt! (/areport)", GetName(playerid));
SendAdminMessage(COLOR_GREEN, string);
format(string, sizeof(string), "Support-Ticket: "COLOR_HEX_WHITE"%s", input);
SendClientMessage(playerid, COLOR_GREEN, string);
Spieler[playerid][pReportAktiv] = 1;
new ticket = GetFreeTicket();
gSupport[ticket][ticketCreated] = true;
format(gSupport[ticket][ticketMessage], 90, input);
gSupport[ticket][ticketSender] = playerid;
gSupport[ticket][ticketAdmin] = INVALID_PLAYER_ID;
gSupport[ticket][ticketType] = 1;
format(string, sizeof(string), "Offene Tickets: ~g~%d", GetTicketCount());
for(new i=0;i<GetMaxPlayers();i++)
{
if(IsLoggedIn(i))
{
if(Spieler[i][pAdminDuty] == 1)
{
PlayerTextDrawSetString(i, pTextSupport[i][2], string);
}
}
}
if(Spieler[playerid][pReportAktiv] == 1)
{
for(new i=0;i<MAX_REPORTS;i++)
{
if(gSupport[i][ticketCreated])
{
if(gSupport[i][ticketSender] == playerid && Spieler[playerid][pAdmin] == 0)
{
if(gSupport[i][ticketAdmin] != INVALID_PLAYER_ID)
{
if(IsPlayerConnected(gSupport[i][ticketAdmin]))
{
strdel(text, 0, 1);
format(string, sizeof(string), "{21DD00}(( %s: %s ))", GetName(playerid), text);
SendClientMessage(gSupport[i][ticketAdmin], COLOR_WHITE, string);
SendClientMessage(playerid, COLOR_WHITE, string);
return 0;
}
else
{
SendClientMessage(playerid, COLOR_GREY, "* Dein Gegenüber ist offline. Das Ticket wurde gelöscht.");
gSupport[i][ticketAdmin] = INVALID_PLAYER_ID;
gSupport[i][ticketSender] = INVALID_PLAYER_ID;
gSupport[i][ticketCreated] = false;
gSupport[i][ticketType] = 0;
strdel(gSupport[i][ticketMessage], 0, 90);
return 0;
}
}
}
else if(gSupport[i][ticketAdmin] == playerid && Spieler[playerid][pAdmin] > 0)
{
if(gSupport[i][ticketSender] != INVALID_PLAYER_ID)
{
if(IsPlayerConnected(gSupport[i][ticketSender]))
{
strdel(text, 0, 1);
format(string, sizeof(string), "{21DD00}(( %s: %s ))", GetName(playerid), text);
SendClientMessage(gSupport[i][ticketSender], COLOR_WHITE, string);
SendClientMessage(playerid, COLOR_WHITE, string);
return 0;
}
else
{
SendClientMessage(playerid, COLOR_GREY, "Dein Gegenüber ist offline. Das Ticket wurde gelöscht.");
gSupport[i][ticketAdmin] = INVALID_PLAYER_ID;
gSupport[i][ticketSender] = INVALID_PLAYER_ID;
gSupport[i][ticketCreated] = false;
gSupport[i][ticketType] = 0;
strdel(gSupport[i][ticketMessage], 0, 90);
for(new a=0;a<GetMaxPlayers();a++)
{
if(Spieler[a][pLoggedIn]){
if(Spieler[a][pAdminDuty] == 1)
{
format(string, sizeof(string), "Offene Tickets: ~g~%d", GetTicketCount());
PlayerTextDrawSetString(a, pTextSupport[a][2], string);
}
}
}
return 0;
}
}
}
}
}
}
return 1;
}
Alles anzeigen
Hallo,
Ich habe das Problem wen ich jetzt den report annehme könn wir nicht antworten.
/sup Text (Admin) genauso auch für User das er /sup eingibt und dann den text aber das klappt iwie nicht?
Wie macht man es, dass man beim Login/Register die Spawn Taste nicht benutzen kann... also da nix passiert?
der Liebe @Jeffry hatte doch mal ein Stock Geschrieben um das Geburtsjahr auszulesen.
Sprich, das man bei der Registration so ein Format nutzen musste: 01.01.1990, hat dies vielleicht noch einer oder kann mir die Funktion
zukommen lassen?
GetPlayerAge:
Nützliche Codeschnipsel
Wie macht man es, dass man beim Login/Register die Spawn Taste nicht benutzen kann... also da nix passiert?
return 0 bei http://wiki.sa-mp.com/wiki/OnPlayerRequestSpawn
Habe ne Frage
Wie wende ich meine binaersuchfunktion an wenn ich beispielsweise nur in der ersten Dimension meines Arrays suchen will?
Beispiel Array[][]={
{12,"blah"},
{13,"blah2"}
}
Wenn ich z.B. nach der 13 suchen will
stock binarysearch(a[],key,l,r)
{
new k;
while(r >=l)
{
k = (l+r)/2;
if(key == a[k])
{
return k;
}
if(key < a[k])
{
r = k-1;
}
else
{
l= k+1;
}
}
return -1;
}
Alles anzeigen
Und wie kann ich bei nem Float beim printen die Nachkommastellen begrenzen?
stock ClearPlayerChat(playerid, counts)
{
for(new i = 0; i < counts; i++)
SendClientMessage(playerid, COLOR_WEIS, " ");
return 1;
}
Kurze Frage, Problem liegt wo? Schon zu spät für mich...
array must be indexed (variable "inputtext")
case DIALOG_WERBETAFELNSEARCH:
{
if(response)
{
if(strlen(inputtext) && IsNumeric(inputtext))
{
if(inputtext<0||inputtext>(MAX_WERBETAFELN)-1)
{
format(DialogString, sizeof(DialogString),""COLOR_HEX_YELLOW"Diese Werbetafeln ID existiert nicht\n\n"COLOR_HEX_WHITE"Du hast hier die Möglichkeit, eine bestimmte Werbetafel auf der Karte anzeigen zu lassen.\n\nBitte gebe die ID der gesuchten Werbetafel ein:\n"COLOR_HEX_SERVER"Info"COLOR_HEX_WHITE": Nutze die Übersicht der Werbetafeln, um die ID zu finden.");
ShowPlayerDialog(playerid, DIALOG_WERBETAFELNSEARCH, DIALOG_STYLE_INPUT, ""COLOR_HEX_SERVER""#SERVER_NAME""COLOR_HEX_WHITE": Werbetafeln", DialogString, "Bestätigen", "Abbrechen");
return 1;
}
new string[128];
if(IsPlayerInRangeOfPoint(playerid,20.0,Werbetafeln[inputtext][wtafelx],Werbetafeln[inputtext][wtafely],Werbetafeln[inputtext][wtafelz]))return SendClientMessage(playerid,COLOR_GREY,"Du bist bereits an der angegebenen Werbetafel!");
format(string,sizeof(string),"Die Werbetafel %i wurde auf deiner Karte markiert.",inputtext);
SendClientMessage(playerid,COLOR_LIGHTBLUE,string);
SetPlayerCheckpointEx(playerid, Werbetafeln[inputtext][wtafelx],Werbetafeln[inputtext][wtafely],Werbetafeln[inputtext][wtafelz], 4.0, CP_WERBETAFEL, INVALID_CHECKPOINT_TYPE);
}
else
{
format(DialogString, sizeof(DialogString),""COLOR_HEX_WHITE"Du hast hier die Möglichkeit, eine bestimmte Werbetafel auf der Karte anzeigen zu lassen.\n\nBitte gebe die ID der gesuchten Werbetafel ein:\n"COLOR_HEX_SERVER"Info"COLOR_HEX_WHITE": Nutze die Übersicht der Werbetafeln, um die ID zu finden.");
ShowPlayerDialog(playerid, DIALOG_WERBETAFELNSEARCH, DIALOG_STYLE_INPUT, ""COLOR_HEX_SERVER""#SERVER_NAME""COLOR_HEX_WHITE": Werbetafeln", DialogString, "Bestätigen", "Abbrechen");
return 1;
}
}
}
C:\Users\Marcel\Desktop\SAMP Projekt\Server\gamemodes\Script.pwn(390) : error 035: argument type mismatch (argument 2)
Bitte die Zeile im Code markieren.
if(inputtext<0||inputtext>(MAX_WERBETAFELN)-1)
zu:
if(strval(inputtext)<0||strval(inputtext)>=MAX_WERBETAFELN)
Wie wende ich meine binaersuchfunktion an wenn ich beispielsweise nur in der ersten Dimension meines Arrays suchen will?
stock binarysearch2(a[][],idx,key,l,r)
{
new k;
while(r >=l)
{
k = (l+r)/2;
if(key == a[k][idx])
{
return k;
}
if(key < a[k][idx])
{
r = k-1;
}
else
{
l= k+1;
}
}
return -1;
}
Bei "idx" dann den Index mit geben, in dem Fall also die 0, für den ersten Index.
Und wie kann ich bei nem Float beim printen die Nachkommastellen begrenzen?
%0.2f
= 2 Nachkommastellen
@Jeffry es ist die Zeile mit dem SendClientMessage
Dann hast du das COLOR_WEIS wahrscheinlich als embedded-Farbe definiert, z.B.: {FFFFFF}
Mache es so:
stock ClearPlayerChat(playerid, counts)
{
for(new i = 0; i < counts; i++) SendClientMessage(playerid, 0xFFFFFFFF, " ");
return 1;
}
Hey ich wollte gerade mein Script auf mein Server laden aber iwie funktioniert es doch nicht
#define MYSQL_HOST "localhost"
#define MYSQL_USER "samp"
#define MYSQL_PASS "test123"
#define MYSQL_DBSE "testdb"
OnGameMode
stock MySQL_SetupConnection(ttl = 3)
{
print("[MySQL] Verbindungsaufbau...");
handle = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS, MYSQL_DBSE);
if(mysql_errno(handle) != 0)
{
if(ttl > 1)
{
print("[MySQL] Es konnte keine Verbindung zur Datenbank hergestellt werden.");
printf("[MySQL] Starte neuen Verbindungsversuch (TTL: %d).", ttl-1);
return MySQL_SetupConnection(ttl-1);
}
else
{
print("[MySQL] Es konnte keine Verbindung zur Datenbank hergestellt werden.");
print("[MySQL] Bitte prüfen Sie die Verbindungsdaten.");
print("[MySQL] Der Server wird heruntergefahren.");
return SendRconCommand("exit");
}
}
printf("[MySQL] Die Verbindung zur Datenbank wurde erfolgreich hergestellt! Handle: %d", _:handle);
return 1;
}
Alles anzeigen
---------
Loaded log file: "server_log.txt".
----------
SA-MP Dedicated Server
----------------------
v0.3.7-R2, (C)2005-2015 SA-MP Team
[21:34:15] language = "" (string)
[20/03/2017 21:34:15]
[20/03/2017 21:34:15] Server Plugins
[20/03/2017 21:34:15] --------------
[20/03/2017 21:34:15] Loading plugin: crashdetect.so
[20/03/2017 21:34:15] CrashDetect v4.18.1 is OK.
[20/03/2017 21:34:15] Loaded.
[20/03/2017 21:34:15] Loading plugin: mysql.so
[20/03/2017 21:34:15] >> plugin.mysql: R41-2 successfully loaded.
[20/03/2017 21:34:15] Loaded.
[20/03/2017 21:34:15] Loading plugin: streamer.so
[20/03/2017 21:34:15]
*** Streamer Plugin v2.8.2 by Incognito loaded ***
[20/03/2017 21:34:15] Loaded.
[20/03/2017 21:34:15] Loading plugin: sscanf.so
[20/03/2017 21:34:15]
[20/03/2017 21:34:15] ===============================
[20/03/2017 21:34:15] sscanf plugin loaded.
[20/03/2017 21:34:15] Version: 2.8.2
[20/03/2017 21:34:15] (c) 2012 Alex "Y_Less" Cole
[20/03/2017 21:34:15] ===============================
[20/03/2017 21:34:15] Loaded.
[20/03/2017 21:34:15] Loaded 4 plugins.
[20/03/2017 21:34:15]
[20/03/2017 21:34:15] Filterscripts
[20/03/2017 21:34:15] ---------------
[20/03/2017 21:34:15] Loaded 0 filterscripts.
[20/03/2017 21:34:15] [MySQL] Verbindungsaufbau...
Alles anzeigen
//Edit
In den Ordner mit den Mysql Logs steht auch nichts drinne
//Edit
@Jeffry:
Alles anzeigenHey ich wollte gerade mein Script auf mein Server laden aber iwie funktioniert es doch nicht
Code#define MYSQL_HOST "localhost" #define MYSQL_USER "samp" #define MYSQL_PASS "test123" #define MYSQL_DBSE "testdb"
OnGameMode
CodeAlles anzeigenstock MySQL_SetupConnection(ttl = 3) { print("[MySQL] Verbindungsaufbau..."); handle = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS, MYSQL_DBSE); if(mysql_errno(handle) != 0) { if(ttl > 1) { print("[MySQL] Es konnte keine Verbindung zur Datenbank hergestellt werden."); printf("[MySQL] Starte neuen Verbindungsversuch (TTL: %d).", ttl-1); return MySQL_SetupConnection(ttl-1); } else { print("[MySQL] Es konnte keine Verbindung zur Datenbank hergestellt werden."); print("[MySQL] Bitte prüfen Sie die Verbindungsdaten."); print("[MySQL] Der Server wird heruntergefahren."); return SendRconCommand("exit"); } } printf("[MySQL] Die Verbindung zur Datenbank wurde erfolgreich hergestellt! Handle: %d", _:handle); return 1; }
CodeAlles anzeigen--------- Loaded log file: "server_log.txt". ---------- SA-MP Dedicated Server ---------------------- v0.3.7-R2, (C)2005-2015 SA-MP Team [21:34:15] language = "" (string) [20/03/2017 21:34:15] [20/03/2017 21:34:15] Server Plugins [20/03/2017 21:34:15] -------------- [20/03/2017 21:34:15] Loading plugin: crashdetect.so [20/03/2017 21:34:15] CrashDetect v4.18.1 is OK. [20/03/2017 21:34:15] Loaded. [20/03/2017 21:34:15] Loading plugin: mysql.so [20/03/2017 21:34:15] >> plugin.mysql: R41-2 successfully loaded. [20/03/2017 21:34:15] Loaded. [20/03/2017 21:34:15] Loading plugin: streamer.so [20/03/2017 21:34:15] *** Streamer Plugin v2.8.2 by Incognito loaded *** [20/03/2017 21:34:15] Loaded. [20/03/2017 21:34:15] Loading plugin: sscanf.so [20/03/2017 21:34:15] [20/03/2017 21:34:15] =============================== [20/03/2017 21:34:15] sscanf plugin loaded. [20/03/2017 21:34:15] Version: 2.8.2 [20/03/2017 21:34:15] (c) 2012 Alex "Y_Less" Cole [20/03/2017 21:34:15] =============================== [20/03/2017 21:34:15] Loaded. [20/03/2017 21:34:15] Loaded 4 plugins. [20/03/2017 21:34:15] [20/03/2017 21:34:15] Filterscripts [20/03/2017 21:34:15] --------------- [20/03/2017 21:34:15] Loaded 0 filterscripts. [20/03/2017 21:34:15] [MySQL] Verbindungsaufbau...
//Edit
In den Ordner mit den Mysql Logs steht auch nichts drinne
Alles anzeigenHey ich wollte gerade mein Script auf mein Server laden aber iwie funktioniert es doch nicht
Code#define MYSQL_HOST "localhost" #define MYSQL_USER "samp" #define MYSQL_PASS "test123" #define MYSQL_DBSE "testdb"
OnGameMode
CodeAlles anzeigenstock MySQL_SetupConnection(ttl = 3) { print("[MySQL] Verbindungsaufbau..."); handle = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS, MYSQL_DBSE); if(mysql_errno(handle) != 0) { if(ttl > 1) { print("[MySQL] Es konnte keine Verbindung zur Datenbank hergestellt werden."); printf("[MySQL] Starte neuen Verbindungsversuch (TTL: %d).", ttl-1); return MySQL_SetupConnection(ttl-1); } else { print("[MySQL] Es konnte keine Verbindung zur Datenbank hergestellt werden."); print("[MySQL] Bitte prüfen Sie die Verbindungsdaten."); print("[MySQL] Der Server wird heruntergefahren."); return SendRconCommand("exit"); } } printf("[MySQL] Die Verbindung zur Datenbank wurde erfolgreich hergestellt! Handle: %d", _:handle); return 1; }
CodeAlles anzeigen--------- Loaded log file: "server_log.txt". ---------- SA-MP Dedicated Server ---------------------- v0.3.7-R2, (C)2005-2015 SA-MP Team [21:34:15] language = "" (string) [20/03/2017 21:34:15] [20/03/2017 21:34:15] Server Plugins [20/03/2017 21:34:15] -------------- [20/03/2017 21:34:15] Loading plugin: crashdetect.so [20/03/2017 21:34:15] CrashDetect v4.18.1 is OK. [20/03/2017 21:34:15] Loaded. [20/03/2017 21:34:15] Loading plugin: mysql.so [20/03/2017 21:34:15] >> plugin.mysql: R41-2 successfully loaded. [20/03/2017 21:34:15] Loaded. [20/03/2017 21:34:15] Loading plugin: streamer.so [20/03/2017 21:34:15] *** Streamer Plugin v2.8.2 by Incognito loaded *** [20/03/2017 21:34:15] Loaded. [20/03/2017 21:34:15] Loading plugin: sscanf.so [20/03/2017 21:34:15] [20/03/2017 21:34:15] =============================== [20/03/2017 21:34:15] sscanf plugin loaded. [20/03/2017 21:34:15] Version: 2.8.2 [20/03/2017 21:34:15] (c) 2012 Alex "Y_Less" Cole [20/03/2017 21:34:15] =============================== [20/03/2017 21:34:15] Loaded. [20/03/2017 21:34:15] Loaded 4 plugins. [20/03/2017 21:34:15] [20/03/2017 21:34:15] Filterscripts [20/03/2017 21:34:15] --------------- [20/03/2017 21:34:15] Loaded 0 filterscripts. [20/03/2017 21:34:15] [MySQL] Verbindungsaufbau...
//Edit
In den Ordner mit den Mysql Logs steht auch nichts drinne
Probiers mal so
stock MySQL_SetupConnection(ttl = 3)
{
print("[MySQL] Verbindungsaufbau...");
switch(GetServerVarAsInt("port"))
{
case 7777:
{
mysql_log(ALL);
handle = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS, MYSQL_DBSE);
}
}
//Prüfen und gegebenenfalls wiederholen
if(mysql_errno(handle) != 0)
{
//Fehler im Verbindungsaufbau, prüfe ob ein weiterer Versuch gestartet werden soll
if(ttl > 1)
{
//Versuche erneut eine Verbindung aufzubauen
print("[MySQL] Es konnte keine Verbindung zur Datenbank hergestellt werden.");
printf("[MySQL] Starte neuen Verbindungsversuch (TTL: %d).", ttl-1);
return MySQL_SetupConnection(ttl-1);
}
else
{
//Abbrechen und Server schließen
print("[MySQL] Es konnte keine Verbindung zur Datenbank hergestellt werden.");
print("[MySQL] Bitte prüfen Sie die Verbindungsdaten.");
print("[MySQL] Der Server wird heruntergefahren.");
return SendRconCommand("exit");
}
}
printf("[MySQL] Die Verbindung zur Datenbank wurde erfolgreich hergestellt! Handle: %d", _:handle);
return 1;
}
Wie fragt man am besten ab ob der Spieler zum Fahrzeug gedreht ist? Wie z.B. bei einem Kofferraum System.
Wie z.B. bei einem Kofferraum System.
Da kannst du einen Trick anwenden und einfach prüfen ob der Spieler ungefähr die selbe ZAngle wie das Auto hat
new Float:ang,Float:v_a,v=GetClosestVehicle(playerid,10.0);
if(v == INVALID_VEHICLE_ID) return 1;
GetPlayerFacingAngle(playerid,ang);
GetVehicleZAngle(v,v_a);
new a = floatround(ang), b = floatround(v_a);
if(a<40&&b>350) b=0;
else if(a>350&&b<40) a=0;
if(VectorSize(a-b,0,0) <= 40)
{
//Hier schaut er auf den Kofferraum :)
}
Alles anzeigen
//Edit: So..
Gibt es eigentlich nen Fix fuer das Nightvision Goggles Problem in SA;MP? Habe viele Freds in Google gefunden die auf das englischen SAMP Forum verweisen, aber beim Aufruf scheinen die Themen zwischenzeitlich geloescht zu sein.
Weiterhin habe ich hier Bedingungen um zu pruefen ob nur noch 1 Team verbleibt auf dem Server, bzw. nur noch 1 Team am leben ist um den Sieger festzustellen.
Kann ich das eventuell anders darstellen? Weil so ist es pott haesslich
#if defined TEAMSIZE
#if TEAMSIZE == 2
if(GetTeamCount(FIRST_TEAM) > 0 && GetTeamCount(SECOND_TEAM) == 0)
{
for(new i;i<MAX_PLAYERS;i++)
{
SendClientMessageEx(i,COLOR_WHITE,"SERVER: All remaining teams have been wiped. Team %s {FFFFFF}has won the game!",FIRST_TEAM_COLOR_TAG);
}
printf("Total game time: %d",totaltime);
SendRconCommand("gmx");
}
if(GetTeamCount(FIRST_TEAM) == 0 && GetTeamCount(SECOND_TEAM) > 0)
{
for(new i;i<MAX_PLAYERS;i++)
{
SendClientMessageEx(i,COLOR_WHITE,"SERVER: All remaining teams have been wiped. Team %s {FFFFFF}has won the game!",SECOND_TEAM_COLOR_TAG);
}
printf("Total game time: %d",totaltime);
SendRconCommand("gmx");
}
#endif
#endif
#if defined TEAMSIZE
#if TEAMSIZE == 3
if(GetTeamCount(FIRST_TEAM) > 0 && GetTeamCount(SECOND_TEAM) == 0 && GetTeamCount(THIRD_TEAM) == 0)
{
for(new i;i<MAX_PLAYERS;i++)
{
SendClientMessageEx(i,COLOR_WHITE,"SERVER: All remaining teams have been wiped. Team %s {FFFFFF}has won the game!",FIRST_TEAM_COLOR_TAG);
}
printf("Total game time: %d",totaltime);
SendRconCommand("gmx");
}
if(GetTeamCount(FIRST_TEAM) == 0 && GetTeamCount(SECOND_TEAM) > 0 && GetTeamCount(THIRD_TEAM) == 0)
{
for(new i;i<MAX_PLAYERS;i++)
{
SendClientMessageEx(i,COLOR_WHITE,"SERVER: All remaining teams have been wiped. Team %s {FFFFFF}has won the game!",SECOND_TEAM_COLOR_TAG);
}
printf("Total game time: %d",totaltime);
SendRconCommand("gmx");
}
if(GetTeamCount(FIRST_TEAM) == 0 && GetTeamCount(SECOND_TEAM) == 0 && GetTeamCount(THIRD_TEAM) > 0)
{
for(new i;i<MAX_PLAYERS;i++)
{
SendClientMessageEx(i,COLOR_WHITE,"SERVER: All remaining teams have been wiped. Team %s {FFFFFF}has won the game!",THIRD_TEAM_COLOR_TAG);
}
printf("Total game time: %d",totaltime);
SendRconCommand("gmx");
}
#endif
#endif
#if defined TEAMSIZE
#if TEAMSIZE == 4
if(GetTeamCount(FIRST_TEAM) > 0 && GetTeamCount(SECOND_TEAM) == 0 && GetTeamCount(THIRD_TEAM) == 0 && GetTeamCount(FOURTH_TEAM) == 0)
{
for(new i;i<MAX_PLAYERS;i++)
{
SendClientMessageEx(i,COLOR_WHITE,"SERVER: All remaining teams have been wiped. Team %s {FFFFFF}has won the game!",FIRST_TEAM_COLOR_TAG);
}
printf("Total game time: %d",totaltime);
SendRconCommand("gmx");
}
if(GetTeamCount(FIRST_TEAM) == 0 && GetTeamCount(SECOND_TEAM) > 0 && GetTeamCount(THIRD_TEAM) == 0 && GetTeamCount(FOURTH_TEAM) == 0)
{
for(new i;i<MAX_PLAYERS;i++)
{
SendClientMessageEx(i,COLOR_WHITE,"SERVER: All remaining teams have been wiped. Team %s {FFFFFF}has won the game!",SECOND_TEAM_COLOR_TAG);
}
printf("Total game time: %d",totaltime);
SendRconCommand("gmx");
}
if(GetTeamCount(FIRST_TEAM) == 0 && GetTeamCount(SECOND_TEAM) == 0 && GetTeamCount(THIRD_TEAM) > 0 && GetTeamCount(FOURTH_TEAM) == 0)
{
for(new i;i<MAX_PLAYERS;i++)
{
SendClientMessageEx(i,COLOR_WHITE,"SERVER: All remaining teams have been wiped. Team %s {FFFFFF}has won the game!",THIRD_TEAM_COLOR_TAG);
}
printf("Total game time: %d",totaltime);
SendRconCommand("gmx");
}
if(GetTeamCount(FIRST_TEAM) == 0 && GetTeamCount(SECOND_TEAM) == 0 && GetTeamCount(THIRD_TEAM) == 0 && GetTeamCount(FOURTH_TEAM) > 0)
{
for(new i;i<MAX_PLAYERS;i++)
{
SendClientMessageEx(i,COLOR_WHITE,"SERVER: All remaining teams have been wiped. Team %s {FFFFFF}has won the game!",FOURTH_TEAM_COLOR_TAG);
}
printf("Total game time: %d",totaltime);
SendRconCommand("gmx");
}
#endif
#endif
#if defined TEAMSIZE
#if TEAMSIZE == 5
if(GetTeamCount(FIRST_TEAM) > 0 && GetTeamCount(SECOND_TEAM) == 0 && GetTeamCount(THIRD_TEAM) == 0 && GetTeamCount(FOURTH_TEAM) == 0 && GetTeamCount(FIFTH_TEAM)== 0)
{
for(new i;i<MAX_PLAYERS;i++)
{
SendClientMessageEx(i,COLOR_WHITE,"SERVER: All remaining teams have been wiped. Team %s {FFFFFF}has won the game!",FIRST_TEAM_COLOR_TAG);
}
printf("Total game time: %d",totaltime);
SendRconCommand("gmx");
}
if(GetTeamCount(FIRST_TEAM) == 0 && GetTeamCount(SECOND_TEAM) > 0 && GetTeamCount(THIRD_TEAM) == 0 && GetTeamCount(FOURTH_TEAM) == 0 && GetTeamCount(FIFTH_TEAM)== 0)
{
for(new i;i<MAX_PLAYERS;i++)
{
SendClientMessageEx(i,COLOR_WHITE,"SERVER: All remaining teams have been wiped. Team %s {FFFFFF}has won the game!",SECOND_TEAM_COLOR_TAG);
}
printf("Total game time: %d",totaltime);
SendRconCommand("gmx");
}
if(GetTeamCount(FIRST_TEAM) == 0 && GetTeamCount(SECOND_TEAM) == 0 && GetTeamCount(THIRD_TEAM) > 0 && GetTeamCount(FOURTH_TEAM) == 0 && GetTeamCount(FIFTH_TEAM)== 0)
{
for(new i;i<MAX_PLAYERS;i++)
{
SendClientMessageEx(i,COLOR_WHITE,"SERVER: All remaining teams have been wiped. Team %s {FFFFFF}has won the game!",THIRD_TEAM_COLOR_TAG);
}
printf("Total game time: %d",totaltime);
SendRconCommand("gmx");
}
if(GetTeamCount(FIRST_TEAM) == 0 && GetTeamCount(SECOND_TEAM) == 0 && GetTeamCount(THIRD_TEAM) == 0 && GetTeamCount(FOURTH_TEAM) > 0 && GetTeamCount(FIFTH_TEAM)== 0)
{
for(new i;i<MAX_PLAYERS;i++)
{
SendClientMessageEx(i,COLOR_WHITE,"SERVER: All remaining teams have been wiped. Team %s {FFFFFF}has won the game!",FOURTH_TEAM_COLOR_TAG);
}
printf("Total game time: %d",totaltime);
SendRconCommand("gmx");
}
if(GetTeamCount(FIRST_TEAM) == 0 && GetTeamCount(SECOND_TEAM) == 0 && GetTeamCount(THIRD_TEAM) == 0 && GetTeamCount(FOURTH_TEAM) == 0 && GetTeamCount(FIFTH_TEAM) > 0)
{
for(new i;i<MAX_PLAYERS;i++)
{
SendClientMessageEx(i,COLOR_WHITE,"SERVER: All remaining teams have been wiped. Team %s {FFFFFF}has won the game!",FIFTH_TEAM_COLOR_TAG);
}
printf("Total game time: %d",totaltime);
SendRconCommand("gmx");
}
#endif
#endif
#if defined TEAMSIZE
#if TEAMSIZE == 6
if(GetTeamCount(FIRST_TEAM) > 0 && GetTeamCount(SECOND_TEAM) == 0 && GetTeamCount(THIRD_TEAM) == 0 && GetTeamCount(FOURTH_TEAM) == 0 && GetTeamCount(FIFTH_TEAM) == 0 && GetTeamCount(SIXTH_TEAM) == 0)
{
for(new i;i<MAX_PLAYERS;i++)
{
SendClientMessageEx(i,COLOR_WHITE,"SERVER: All remaining teams have been wiped. Team %s {FFFFFF}has won the game!",FIRST_TEAM_COLOR_TAG);
}
printf("Total game time: %d",totaltime);
SendRconCommand("gmx");
}
if(GetTeamCount(FIRST_TEAM) == 0 && GetTeamCount(SECOND_TEAM) > 0 && GetTeamCount(THIRD_TEAM) == 0 && GetTeamCount(FOURTH_TEAM) == 0 && GetTeamCount(FIFTH_TEAM)== 0 && GetTeamCount(SIXTH_TEAM) == 0)
{
for(new i;i<MAX_PLAYERS;i++)
{
SendClientMessageEx(i,COLOR_WHITE,"SERVER: All remaining teams have been wiped. Team %s {FFFFFF}has won the game!",SECOND_TEAM_COLOR_TAG);
}
printf("Total game time: %d",totaltime);
SendRconCommand("gmx");
}
if(GetTeamCount(FIRST_TEAM) == 0 && GetTeamCount(SECOND_TEAM) == 0 && GetTeamCount(THIRD_TEAM) > 0 && GetTeamCount(FOURTH_TEAM) == 0 && GetTeamCount(FIFTH_TEAM)== 0 && GetTeamCount(SIXTH_TEAM) == 0)
{
for(new i;i<MAX_PLAYERS;i++)
{
SendClientMessageEx(i,COLOR_WHITE,"SERVER: All remaining teams have been wiped. Team %s {FFFFFF}has won the game!",THIRD_TEAM_COLOR_TAG);
}
printf("Total game time: %d",totaltime);
SendRconCommand("gmx");
}
if(GetTeamCount(FIRST_TEAM) == 0 && GetTeamCount(SECOND_TEAM) == 0 && GetTeamCount(THIRD_TEAM) == 0 && GetTeamCount(FOURTH_TEAM) > 0 && GetTeamCount(FIFTH_TEAM)== 0 && GetTeamCount(SIXTH_TEAM) == 0)
{
for(new i;i<MAX_PLAYERS;i++)
{
SendClientMessageEx(i,COLOR_WHITE,"SERVER: All remaining teams have been wiped. Team %s {FFFFFF}has won the game!",FOURTH_TEAM_COLOR_TAG);
}
printf("Total game time: %d",totaltime);
SendRconCommand("gmx");
}
if(GetTeamCount(FIRST_TEAM) == 0 && GetTeamCount(SECOND_TEAM) == 0 && GetTeamCount(THIRD_TEAM) == 0 && GetTeamCount(FOURTH_TEAM) == 0 && GetTeamCount(FIFTH_TEAM) > 0 && GetTeamCount(SIXTH_TEAM) == 0)
{
for(new i;i<MAX_PLAYERS;i++)
{
SendClientMessageEx(i,COLOR_WHITE,"SERVER: All remaining teams have been wiped. Team %s {FFFFFF}has won the game!",FIFTH_TEAM_COLOR_TAG);
}
printf("Total game time: %d",totaltime);
SendRconCommand("gmx");
}
if(GetTeamCount(FIRST_TEAM) == 0 && GetTeamCount(SECOND_TEAM) == 0 && GetTeamCount(THIRD_TEAM) == 0 && GetTeamCount(FOURTH_TEAM) == 0 && GetTeamCount(FIFTH_TEAM) == 0 && GetTeamCount(SIXTH_TEAM) > 0)
{
for(new i;i<MAX_PLAYERS;i++)
{
SendClientMessageEx(i,COLOR_WHITE,"SERVER: All remaining teams have been wiped. Team %s {FFFFFF}has won the game!",SIXTH_TEAM_COLOR_TAG);
}
printf("Total game time: %d",totaltime);
SendRconCommand("gmx");
}
#endif
#endif
Alles anzeigen
Kann man dafuer eventuell ne Funktion schreiben? Leider habe ich keinen Ansatz dafuer
Erstmal um den Code schöner zu machen würde ich einen Switch empfehlen.
Erstmal um den Code schöner zu machen würde ich einen Switch empfehlen.
Wie kann ich das machen bzw. wie kann ich das in den cases pruefen?
Letztendlich sind das ueber 200 Zeilen nur um zu schauen ob in den anderen Teams Gegner verbleiben bei 6 Teams
Spieler die nicht mehr Leben werden in ein Team TEAM_SPECTATOR gebracht, daher bin ich am ueberlegen ob es eventuell einfachere Moeglichkeiten gibt.
Habe gedacht vielleicht schauen, wieviele Spieler im Server sind, wieviele davon TEAM_SPECTATOR, und wieviele dann in welchem Team sind
KA haha
Also, wenn du TEAM_FIRST als 0 deklariert hast, kannst du es folgendermaßen verkürzen:
stock isEnd()
{
new bool:end;
for(new i=0; i<TEAMSIZE; i++)
{
if(GetTeamCount(i) > 0)
{
if(end) return 0;
end = true;
}
}
return end;
}
if(isEnd())
{
for(new i;i<MAX_PLAYERS;i++)
{
SendClientMessageEx(i,COLOR_WHITE,"SERVER: All remaining teams have been wiped. Team %s {FFFFFF}has won the game!",FIRST_TEAM_COLOR_TAG);
}
printf("Total game time: %d",totaltime);
SendRconCommand("gmx");
}
Alles anzeigen
Ich habe mal eine Frage am Rande,
ist es irgendwie möglich, den Spieler dazu zu Zwingen das er nicht Rennen kann bzw. mit "ALT" Laufen muss?
MfG.
Aaron!