Beiträge von Jeffry
-
-
Dann gehe jetzt wieder in deinen Server und teste ob die Fehlermeldungen weg sind.
In Zeile 11701 im Code befindet sich ebenfalls noch das Problem mit den INVALID_PLAYER_ID.
-
Dann füge mal unter den Includes das hier ein:
#pragma dynamic 100000Erhöhe die Zahl falls die Meldung nicht weg geht so lange, bis die Meldung im Compiler weg geht.
-
Das heißt, dass du auf vorhergehender Ebene im Code schonmal ein "haus" als "new" deklariert hast.
Benenne es in dieser Schleife um, zum Beispiel zu "haus2".Achte auch darauf, dass du alle Arrays mit denen du mit dieser Schleife einen Zugriff im Code hast, auf die neue Zählervariable "haus2" anpasst.
Poste gegebenenfalls mehr vom Code, falls du nicht weißt, was zu tun ist. -
Kannst du den Code bitte nochmal richtig formatieren?
Zwecks der Meldung im Compiler: Entferne die pawn.cfg und öffne deinen Code erneut. Zeigt der Compiler die Meldung dann noch immer an? -
Du hast am Code noch was anderes verändert.
Ändere das wieder zurück.
printf("f0: %d / max: %d", FactionCars[fc][fFaction][fc], sizeof(Factions));
format(pstring,sizeof(pstring),"%s,%d",Factions[FactionCars[fc][fFaction][fc]],randomplate);zu:
printf("f0: %d / max: %d", FactionCars[fc][fFaction][0], sizeof(Factions));
format(pstring,sizeof(pstring),"%s,%d",Factions[FactionCars[fc][fFaction][0]],randomplate); -
In der Zeile 11572 greifst du, ohne abzufragen ob killerid INVALID_PLAYER_ID ist auf ein Array zu.
Füge dort
if(killerid != INVALID_PLAYER_ID) zuvor ein.Die anderen Fehler scheinen in einer oder mehreren Includes zu liegen.
Hast du die Meldung mit den vielen Zahlen auch im Compiler, wenn du die pawn.cfg Datei entfernst? -
-
Ja, diese erhöhen.
Zwecks den anderen Fehlern:
Erstelle in deinem /pawno/ Ordner eine Datei "pawn.cfg" und schreibe dort "-d3" (ohne Anführungszeichen) rein.
Dann kompiliere deinen Code erneut und lasse dir die Fehler im Server Log wieder ausgeben. Dann siehst du neben den Fehlern die Zeilenangabe im Code, in der der Fehler generiert wird. -
Du hast irgendein Array mit 302 deklariert.
Erhöhe die Zahl in dem Array.new Array[302];
zu:
new Array[800]; -
-
-
Was wird dir so im Server Log ausgegeben?
dcmd_efa(playerid,params[])
{
if(GetPlayerAdminLevel(playerid) >= NEEDED_ADMINLEVEL)
{
new vehid,faction[5];
if(!sscanf(params,"dd",vehid,faction[0]))
{
sscanf(params,"dddddd",vehid,faction[0],faction[1],faction[2],faction[3],faction[4]);
if(vehid < 400 || vehid > 611) return SendClientMessage(playerid,FACTION_COL_GREY,"Vehicle-ID nur von 400 bis 611.");
if(faction[0] && faction[0] <= MAX_FACTIONS)
{
for(new f;f<5;f++)
{
if(faction[f] <= 1 || faction[f] > MAX_FACTIONS)
{
faction[f] = -255;
}
}
for(new fc;fc<sizeof(FactionCars);fc++)
{
if(FactionCars[fc][fVehid] < 400 || FactionCars[fc][fVehid] > 611)
{
FactionCars[fc][fVehid] = vehid;
new Float:fX,Float:fY,Float:fZ,Float:fA;
GetPlayerPos(playerid,fX,fY,fZ),GetPlayerFacingAngle(playerid,fA);
FactionCars[fc][fPos][0] = fX;
FactionCars[fc][fPos][1] = fY;
FactionCars[fc][fPos][2] = fZ;
FactionCars[fc][fPos][3] = fA;
new Color[2];
GetDefaultCarColorOfFaction(GetPlayerLeader(playerid),Color[0],Color[1]);
FactionCars[fc][fCol][0] = Color[0];
FactionCars[fc][fCol][1] = Color[1];
for(new f;f<5;f++)
{
FactionCars[fc][fFaction][f] = faction[f];
}
FactionCars[fc][fPrice] = 0;
for(new modd;modd<14;modd++)
FactionCars[fc][fTuning][modd] = 0;
FactionCars[fc][fCarid] = CreateVehicle(FactionCars[fc][fVehid],FactionCars[fc][fPos][0],FactionCars[fc][fPos][1],FactionCars[fc][fPos][2],FactionCars[fc][fPos][3],FactionCars[fc][fCol][0],FactionCars[fc][fCol][1],-1);
printf("Carid: %d", FactionCars[fc][fCarid]);
new pstring[128];
new randomplate = 1 + random(20);
printf("randomplate: %d", randomplate);
printf("f0: %d / max: %d", FactionCars[fc][fFaction][0], sizeof(Factions));
format(pstring,sizeof(pstring),"%s,%d",Factions[FactionCars[fc][fFaction][0]],randomplate);
printf("pstring: %s", pstring);
SetVehicleNumberPlate(FactionCars[fc][fCarid], pstring);
SendClientMessage(playerid,FACTION_COL_YELLOW,"Du hast das Fraktionsfahrzeug erfolgreich erstellt.");
SendClientMessage(playerid,FACTION_COL_YELLOW,"Vergesse es nicht mit '/fpark' umzuparken.");
PutPlayerInVehicle(playerid,FactionCars[fc][fCarid],0);
printf("Fertig.");
return true;
}
}
SendClientMessage(playerid,FACTION_COL_GREY,"Die Maximale Anzahl von Fraktionsfahrzeugen wurde bereits erreicht.");
}
else SendClientMessage(playerid,FACTION_COL_GREY,"Falsche Fraktion!");
}
else SendClientMessage(playerid,FACTION_COL_GREY,"Benutze: '/efa [Model] [Hauptfraktion]'.");
}
else SendClientMessage(playerid,FACTION_COL_GREY,"Du bist nicht berechtigt diesen Befehl anzuwenden.");
return 1;
} -
-
es nimmt zusätzliche Ressourcen für einen Wiedergabewert ein, den man auch über das "kleinere" Verfahren herauskriegen kann.
Möglicherweise, ja, das ist allerdings nicht der Sinn vom Caching und wahrscheinlich auch vernachlässigbar, sondern es geht darum, dass der Server nicht auf die Antwort des MySQL Severs warten muss.
Braucht dein MySQL Server angenommen 2 Sekunden für die Antwort auf das Query, aus welchem Grund auch immer, dann steht dein SA-MP Server so lange, bis die Antwort da ist. Das resultiert in einem merkbaren Lag. Daher sollte man, wo möglich, die Cache Funktionen in ein public auslagern. -
-
Lade dir das aktuelle MySQL Plugin (R39-5) herunter und füge es in deinen Server ein:
https://github.com/pBlueG/SA-MP-MySQL/releasesEntferne vorher das alte Plugin (R6).
-
if(strlen(inputtext) >= 4)
{
//Mach was
} -
Der Befehl:
if(!strcmp("/erdbeben", cmdtext, true))
{
//static Variablen-Wert bleibt erhalten
static eTimer = -1;
if(eTimer == -1)
{
//Timer ist aus -> starten & direkt einmal aufrufen
eTimer = SetTimer("ErdbebenTimer", 3000, true);
ErdbebenTimer();
}
else
{
//Timer ist an -> beenden
KillTimer(eTimer);
eTimer = -1;
}
return 1;
}Der Timer:
forward ErdbebenTimer();
public ErdbebenTimer()
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(IsPlayerInRangeOfPoint(i, 200.0, 2126.1475,-1759.0438,13.5625))
{
SetPlayerDrunkLevel(i, 400);
}
}
}
return 1;
} -
Der Code ist korrekt, bei mir kompiliert das problemlos.
Ich schätze, dass die Werte, die AUTOHAUSER und MAXPARKPLATZE haben nicht passen.Du könntest es auch einfach zu dem hier ändern:
new Float:DtcParkPlatz[][][] = {
Gleich beim anderen.Bei vorbelegten Arrays muss die Größe nicht angegeben werden, da dies von der Vorbelegung her klar wird.