Naja aber bei maximal 500 Spielern wäre es nicht so sinnvoll und 500 Spieler muss man auch erstmal haben
Beiträge von Anubis
-
-
Wieviel Zeilen code hast du denn bis jetzt ? Wenn nicht zuviel drin ist was der "geheimhaltung" unterliegt könnte ich dir höchsten anbieten mir deine pwn mal selbst anzusehen.Denn mit hin und hertexten kommen wir ja nicht weiter........
-
Mit den Infos die ich dir gegeben habe solltest du es eigentlich schaffen das zum laufen zu bringen.Du hast irgendwo nen Fehler den du ausmerzen musst......wenn ich dich noch weiter zutexte bringt uns das nicht weiter.
Am besten schaust nochmal selbst ob du was findest, genug infos hast du ja bekommen wie es aussehen muss udn ganz offensichtlich ist da irgendwo etwas das nicht so ist wie es sein soll.
-
enum spieler_daten
new Spieler[MAX_PLAYERS][spieler_daten];
daher, im script muss es immer heissen
Spieler[playerid][leader]
if(Spieler[playerid][leader] == 1) // beispielund das bei allen werten die im enum sind.......deswegen kann ich nicht nachvollziehen warum jetzt die meldung kommt "Spieler must be indexed".Und das enum nimmt auch nur (integer ) zahlen an.....daher
if(Spieler[playerid][leader] == TEAM_BLABLA)
würde nicht gehen, zwar käme keine Fehlermeldung aber es würde nicht gespeichert werden.
-
Kein problem,das Forum ist ja dazu da um sich gegenseitig zu helfen
Ok also das mit dem enum und dem new dazu passt schonmal.
Normal dürfte diese meldung "must be indexed" garnicht kommen da Spieler ja "indexed" ist......hmmmm
-
Wird es denn definitiv nicht in der ini gespeichert ? Denn die if
abfragen machst du ja mit gteam und nicht über die Spielerinfo, daher
es könnte sein das es in der ini gespeichert und auch geladen wird,
aber das weiß gteam(playerid) ja nicht.......Also ich weiß wo bei dir der Fehler liegt aber irgendwie bekommen wir das nicht auf die
Reihe da noch ein paar mehr sachen davon abhängen als du hier postest. Als erstes solltest du mal komplett alles was mit gteam zu tun
hat aus deinem script nehmen und alles nur über das enum steuern. Daher genau wie bei allen anderen.......im enum speichern und auch die if abfragen immer nur ans enum richten (Spieler). gTeam kannst du dir eigentlich komplett sparen.Spieler[playerid][leader]
Spieler[playerid][team] // ersetzt gTeam
-
Oha, etwas übersehen, es muss
if(gang==1) { SetPlayerSkin(id3,0);Spieler[id3][leader] = 0; }
if(gang==0) { SetPlayerSkin(id3,71);Spieler[id3][leader] = 1; }
heissen,denn id3 ist ja die playerid.Versuch das doch nochmal.....
-
Habe nochmal nen kommenar dazu editiert
Schreib mal statt TEAM_ZIVI einfach 0
und statt TEAM_OAMT eine 1
denn die Spielerinfo nimmt nur integer an, keine buchstaben....und ich bezweifle mal das die beiden Teams automatisch in integer(zahlen) umgewandelt werden, daher 0 und 1.Denn so sind die beiden ja oben bei den defines definiert.
-
Also so ganz versteh ich nicht was du da machst, ist auch immer so ne sache ob derjenige es auch so versteht wie man es meint.Da wir beide nicht wissen ob du es richtig umgesetzt hast. Dein makeleaderbefehl müsste so aussehen............
if(!strcmp(strget(cmdtext,0),"/makeleader"))
{
if(Spieler[playerid][Admin] >= 4 )
{
if(!strlen(strget(cmdtext,1)))
return
SendClientMessage(playerid,COLOR_GREY,"Benutze: /makeleader [ID] [FraktionsID]");
//new string[128];
new id3 = strval(strget(cmdtext,1));
new admin3[MAX_PLAYER_NAME];
new gang = strval(strget(cmdtext,2));
GetPlayerName(id3,admin3,sizeof(admin3));
format(string, sizeof(string), "*** Du wurdest von Admin %s zum Leader der Fraktionsnummer %d gemacht.", admin3, gang);
SendClientMessage(id3, COLOR_LIGHTRED, string);
format(string, sizeof(string), "*** Du hast %s zum Leader der Fraktionsnummer %d gemacht.", id3, gang);
SendClientMessage(playerid, COLOR_LIGHTRED, string);
Spieler[id3][leader] = gang;
if(gang==1) { SetPlayerSkin(id3,0);Spieler[playerid][leader] = TEAM_ZIVI; } // oder 0 statt team.....
if(gang==0) { SetPlayerSkin(id3,71);Spieler[playerid][leader] = TEAM_OAMT; } // oder 1 statt team.....}
else
{
SendClientMessage(playerid, COLOR_LIGHTRED,"Du darfst diesen Befehl nicht benutzen !");
}
return 1;
}und loose intendation kommt nur wenn du den code nicht bündig hast, da musst den den einfach nur richtig einrücken.
-
Ja weil alles andere nichts mit gteam zu tun hat sondern über das enum läuft.Beim disconnect holt sich das script alle daten aus der Spielerinfo (bei dir - Spieler) aber woher soll es den gteam status holen wenn er nicht in der Spielerinfo steht ? Ist ja klar das es dann nicht gespeichert wird.
-
Also wen ndu mit einem enum arbeitest und da bereits leader und team drin hast dann brauchst du eigentlich nicht unbedingt ein static gteam.
Was verwendest du denn bei If abfragen ?
If( gteam........
oder
If (Spieler[playerid][team]...........Weil da musst du dich schon für eins entscheiden.
-
Ah sry das enum hattest du oben ja auch schon.
Aber warum postest du alles nochmal^^
interessant wäre jetzt noch wie das new zu dem enum aussieht......müsste es ja auch noch geben.
Oder wird es jetzt gespeichert so wie du es nun hast ?
-
Poste doch mal dein enum, von mir aus auch ohne inhalt
dazu noch die definition, daher das new.........
Glaube das da der Fehler liegt bzw das du beim makeleader das enum falsch anwendest.
Edit: Ok, falls es jetzt funktioniert hat sich das erledigt - wenn nich dann poste das gleich mal.
-
Wieso gibt es bei dir denn
PlayerInfo[id3][leader]
und
Spieler[playerid][leader]Playerinfo ? Spieler ? - Wie heisst das enum denn und wie ist es definiert
Versuch doch mal beim /makeleader command
Spieler[id3][leader] = gang;
statt
PlayerInfo[id3][leader] = gang;und zusätzlich fügst du noch
Spieler[id3][team] = gang;
mit ein. -
Wegen dem
C:\Program Files\Rockstar Games\GTA San Andreas\gamemodes\myrl.pwn(1244) : warning 219: local variable "string" shadows a variable at a preceding levelsolltest du mal schauen ob unter dem callback irgendwo schon
new string[128];
definiert ist, denn genau das sagt die Fehlermeldung ja aus.Wenn nicht dann ka, benenn den string einfach in was anderes um- dann hast du den fehler auf jeden Fall schonmal weg.
-
Guten Abend,
Ich habe gerade eben mein GUI Login System fertiggestellt, klappt alles wunderbar aber 2 kleine probleme gibt es.
1. Bei der Skin Auswahl ist plötzlich CJ wählbar was vorher nicht der Fall war, zumal er als PlayerClass auch garnicht im Script steht, wenn man ihn wählt spawnt man dann irgendwo in Timbuktu aber nicht am noob spawn. Wie kann das sein ?
2. Nachdem man sich registriert hat und das 2te Fenster aufgeht um sich einzuloggen, erscheint im hintergrund bereits die Skin Auswahl. Wie kann ich das verzögern oder sogar abschalten ? Denn wenn man dann registriert ist braucht man die Skin Auswahl auch nicht mehr.
Wäre sehr dankbar wenn jemand antworten auf meine fragen hätte da ich selber nicht mehr weiter weiß.......
MfG
Anubis
-
Auf die Idee mit dem
#include <a_samp>
war ich auch schon gekommen aber da ich ihm gesagt hatte er soll ein neues blanko aufmachen und neu einfügen falls er da iwo was vermurks hat, war das schonmal auszuschliessen.Wenn man ein blanko aufmacht steht das doch von Haus aus mit drin ?
Wieso bei ihm nicht
-
Kann eigentlich nicht.
Obwohl ich weiß das es nicht sein kann habe ich eben mal ein blanko Script aufgemacht + deine daten eingefügt und kein einziger Fehler beim compilen wie erwartet.
Du musst da irgendwo anders was vermurkst haben...........Falls du in dem FS nur die Autos hast mach nochmal ein neues Blanko auf und füg es so ein wie oben.
-
Also.............
public OnGameModeInit()
{
AddStaticVehicle(409,2063.3274,2245.0093,10.4730,88.5224,6,6); // Taxilimo 1
AddStaticVehicle(409,2063.5557,2257.7139,10.4729,90.1541,6,6); //Taxilimo 2
AddStaticVehicle(420,2038.5255,2250.0386,10.4729,268.6721,1,1); // Taxi 3
AddStaticVehicle(420,2038.2749,2247.1589,10.4724,267.2554,1,1); // Taxi 4
AddStaticVehicle(420,2038.1528,2244.0989,10.4743,268.2368,1,1); // Taxi 5
AddStaticVehicle(420,2038.1921,2241.1445,10.4724,269.9518,1,1); // Taxi 6
AddStaticVehicle(420,2038.6151,2252.9954,10.4761,270.7347,1,1); // Taxi 7
AddStaticVehicle(420,2038.6483,2255.9937,10.4721,270.4057,1,1); // Taxi 8
return 1;
}So muss es aussehen..........dann dürfte eigentlich nichts schief gehen.
-