GFirmaInfo[gfirma][firmengrid] = gfirma;
zu:
GFirmaInfo[gfirma][firmengrid] = gfirma;
break;
Beiträge von Jeffry
-
-
Poste bitte den Code mit dem du die Textdraws erstellst.
Um den Code korrekt einzufügen, nutze die Quellcode-Funktion über der Schriftart. -
Auf Anfrage in PN:
Mein Server stürzt nach einer Befehlseingabe ab.
Erstelle in dem /pawno/ Ordner neben der pawno.exe eine "pawn.cfg" Datei und schreibe dort "-d3" rein (ohne die Anführungszeichen). Anschließend öffne die pawno.exe und wähle deinen Code aus, dann kompiliere ihn neu. Dann poste nochmal was das crashdetect Plugin ausgibt.
-
Schreibe es bitte mal so und poste dann was im Server Log steht.
forward LoadGangfightZones();
public LoadGangfightZones()
{
new rows = cache_num_rows(), string[128];
printf("LoadGangfightZones: %d rows", rows);
for(new i=0;i<rows;i++)
{
printf("Lade %d", i);
Gangzonen[i][GFOwnerID] = cache_get_field_content_int(i,"GFOwnerID",dbhandle);
Gangzonen[i][GFGegnerID] = cache_get_field_content_int(i,"GFGegnerID",dbhandle);
Gangzonen[i][GFOwnerPoints] = cache_get_field_content_int(i,"GFOwnerPoints",dbhandle);
Gangzonen[i][GFGegnerPoints] = cache_get_field_content_int(i,"GFGegnerPoints",dbhandle);
Gangzonen[i][GFRunningTime] = cache_get_field_content_int(i,"GFRunningTime",dbhandle);
Gangzonen[i][GFPauseTime] = cache_get_field_content_int(i,"GFPauseTime",dbhandle);
Gangzonen[i][GFFlaggenOwnerA] = cache_get_field_content_int(i,"GFFlaggenOwnerA",dbhandle);
Gangzonen[i][GFFlaggenOwnerB] = cache_get_field_content_int(i,"GFFlaggenOwnerB",dbhandle);
Gangzonen[i][GFFlaggenOwnerC] = cache_get_field_content_int(i,"GFFlaggenOwnerC",dbhandle);
}
for(new i=rows;i<sizeof(Gangzonen);i++)
{
printf("Erstelle %d neu", i);
Gangzonen[i][GFOwnerID] = 0;
Gangzonen[i][GFGegnerID] = -1;
Gangzonen[i][GFOwnerPoints] = 0;
Gangzonen[i][GFGegnerPoints] = 0;
Gangzonen[i][GFRunningTime] = -1;
Gangzonen[i][GFPauseTime] = -1;
format(string, sizeof(string), "INSERT INTO `gangzonen` (`GangzoneID`) VALUES ('%d')", i);
mysql_pquery(dbhandle, string);
}
print("Rufe SaveGangfightZones auf.");
SaveGangfightZones();
return 1;
}forward SaveGangfightZones();
public SaveGangfightZones()
{
new var[526];
for(new i = 0; i < sizeof(Gangzonen); i++)
{
format(var, sizeof(var), "UPDATE `gangzonen` SET `GFOwnerID`='%d', `GFGegnerID`='%d', `GFOwnerPoints`='%d', `GFGegnerPoints`='%d', `GFRunningTime`='%d', `GFPauseTime`='%d', `GFFlaggenOwnerA`='%d', `GFFlaggenOwnerB`='%d', `GFFlaggenOwnerC`='%d' WHERE `GangzoneID`='%d'",
Gangzonen[i][GFOwnerID],
Gangzonen[i][GFGegnerID],
Gangzonen[i][GFOwnerPoints],
Gangzonen[i][GFGegnerPoints],
Gangzonen[i][GFRunningTime],
Gangzonen[i][GFPauseTime],
Gangzonen[i][GFFlaggenOwnerA],
Gangzonen[i][GFFlaggenOwnerB],
Gangzonen[i][GFFlaggenOwnerC],
i);
print(var);
mysql_pquery(dbhandle, var);
}
print("Fertig.");
return 1;
} -
Dann mache es so, das ist auch etwas performanter:
forward LoadGangfightZones();
public LoadGangfightZones()
{
new rows = cache_num_rows(), string[128];
for(new i=0;i<rows;i++)
{
Gangzonen[i][GFOwnerID] = cache_get_field_content_int(i,"GFOwnerID",dbhandle);
Gangzonen[i][GFGegnerID] = cache_get_field_content_int(i,"GFGegnerID",dbhandle);
Gangzonen[i][GFOwnerPoints] = cache_get_field_content_int(i,"GFOwnerPoints",dbhandle);
Gangzonen[i][GFGegnerPoints] = cache_get_field_content_int(i,"GFGegnerPoints",dbhandle);
Gangzonen[i][GFRunningTime] = cache_get_field_content_int(i,"GFRunningTime",dbhandle);
Gangzonen[i][GFPauseTime] = cache_get_field_content_int(i,"GFPauseTime",dbhandle);
Gangzonen[i][GFFlaggenOwnerA] = cache_get_field_content_int(i,"GFFlaggenOwnerA",dbhandle);
Gangzonen[i][GFFlaggenOwnerB] = cache_get_field_content_int(i,"GFFlaggenOwnerB",dbhandle);
Gangzonen[i][GFFlaggenOwnerC] = cache_get_field_content_int(i,"GFFlaggenOwnerC",dbhandle);
}
for(new i=rows;i<sizeof(Gangzonen);i++)
{
Gangzonen[i][GFOwnerID] = 0;
Gangzonen[i][GFGegnerID] = -1;
Gangzonen[i][GFOwnerPoints] = 0;
Gangzonen[i][GFGegnerPoints] = 0;
Gangzonen[i][GFRunningTime] = -1;
Gangzonen[i][GFPauseTime] = -1;
format(string, sizeof(string), "INSERT INTO `gangzonen` (`GangzoneID`) VALUES ('%d')", i);
mysql_pquery(dbhandle, string);
}
SaveGangfightZones();
return 1;
}forward SaveGangfightZones();
public SaveGangfightZones()
{
new var[526];
for(new i = 0; i < sizeof(Gangzonen); i++)
{
format(var, sizeof(var), "UPDATE `gangzonen` SET `GFOwnerID`='%d', `GFGegnerID`='%d', `GFOwnerPoints`='%d', `GFGegnerPoints`='%d', `GFRunningTime`='%d', `GFPauseTime`='%d', `GFFlaggenOwnerA`='%d', `GFFlaggenOwnerB`='%d', `GFFlaggenOwnerC`='%d' WHERE `GangzoneID`='%d'",
Gangzonen[i][GFOwnerID],
Gangzonen[i][GFGegnerID],
Gangzonen[i][GFOwnerPoints],
Gangzonen[i][GFGegnerPoints],
Gangzonen[i][GFRunningTime],
Gangzonen[i][GFPauseTime],
Gangzonen[i][GFFlaggenOwnerA],
Gangzonen[i][GFFlaggenOwnerB],
Gangzonen[i][GFFlaggenOwnerC],
i);
mysql_pquery(dbhandle, var);
}
return 1;
}Dann erstellt es dir die Zonen wenn du den Server startest.
Lösche zuvor alle raus. -
Hast du die Datensätze zuvor aus der Tabelle gelöscht? Wenn nein, dann mach das erst, sonst lädt er ja die Nullen aus der Datenbank.
-
Ok, so meinst du das.
Dann müsste es so passen:
forward LoadGangfightZones();
public LoadGangfightZones()
{
for(new i=0;i<sizeof(Gangzonen);i++)
{
Gangzonen[i][GFOwnerID] = 0;
Gangzonen[i][GFGegnerID] = -1;
Gangzonen[i][GFOwnerPoints] = 0;
Gangzonen[i][GFGegnerPoints] = 0;
Gangzonen[i][GFRunningTime] = -1;
Gangzonen[i][GFPauseTime] = -1;
}
new rows = cache_num_rows();
for(new i=0;i<rows;i++)
{
Gangzonen[i][GFOwnerID] = cache_get_field_content_int(i,"GFOwnerID",dbhandle);
Gangzonen[i][GFGegnerID] = cache_get_field_content_int(i,"GFGegnerID",dbhandle);
Gangzonen[i][GFOwnerPoints] = cache_get_field_content_int(i,"GFOwnerPoints",dbhandle);
Gangzonen[i][GFGegnerPoints] = cache_get_field_content_int(i,"GFGegnerPoints",dbhandle);
Gangzonen[i][GFRunningTime] = cache_get_field_content_int(i,"GFRunningTime",dbhandle);
Gangzonen[i][GFPauseTime] = cache_get_field_content_int(i,"GFPauseTime",dbhandle);
Gangzonen[i][GFFlaggenOwnerA] = cache_get_field_content_int(i,"GFFlaggenOwnerA",dbhandle);
Gangzonen[i][GFFlaggenOwnerB] = cache_get_field_content_int(i,"GFFlaggenOwnerB",dbhandle);
Gangzonen[i][GFFlaggenOwnerC] = cache_get_field_content_int(i,"GFFlaggenOwnerC",dbhandle);
}
return 1;
} -
Was genau ist das Problem? Was geht nicht?
-
Wie lädst du deine privaten Fahrzeuge, und wie speicherst du sie? Poste dazu bitte den Code.
-
Erstelle in dem /pawno/ Ordner neben der pawno.exe eine "pawn.cfg" Datei und schreibe dort "-d3" rein (ohne die Anführungszeichen). Anschließend öffne die pawno.exe und wähle deinen Code aus, dann kompiliere ihn neu.
Dann poste nochmal was das crashdetect Plugin ausgibt. -
Eine in die du in der gOnPlayerText Funktion schreiben willst.
Welche das ist kann ich dir nicht sagen, dazu musst du den Code posten. -
Wenn dein Rechner (localhost) aus ist, dann ist auch die Datenbank nicht zu erreichen, aber logischerweise auch dein SA-MP Server nicht mehr online.
Wenn du deinen SA-MP Server bei einem Hoster hast, dann lass dir dort eine MySQL Datenbank einrichten, auf die dein Server dann von dort aus lokal zugreifen kann.Für Tests auf deinem Rechner kannst du XAMPP nutzen.
-
-
Nein, dann lässt du nur den ersten Clan aus, aber so:
forward LoadClans();
public LoadClans()
{
new rows = cache_num_rows(), j;
for(new i=0;i<rows;i++)
{
j = i+1;
Clan[j][cID] = cache_get_field_content_int(i,"ID",dbhandle);
cache_get_field_content(i,"name",Clan[j][cName],dbhandle,32);
cache_get_field_content(i,"Leader",Clan[j][cLeader],dbhandle,32);
Clan[j][cMitglieder] = cache_get_field_content_int(i,"Mitglieder",dbhandle);
Clan[j][cLevel] = cache_get_field_content_int(i,"level",dbhandle);
Clan[j][cGeld] = cache_get_field_content_int(i,"geld",dbhandle);
Clan[j][cEXP] = cache_get_field_content_int(i,"EXP",dbhandle);
Clan[j][cSiege] = cache_get_field_content_int(i,"Siege",dbhandle);
Clan[j][cNiederlagen] = cache_get_field_content_int(i,"Niederlagen",dbhandle);
Clan[j][cUnentschieden] = cache_get_field_content_int(i,"Unentschieden",dbhandle);
printf("Clan ID: %i | Name: %s | Leader: %s | Mitglieder: %i | Level: %i | Geld: %i | EXP: %i | S: %i N: %i U: %i",Clan[j][cID], Clan[j][cName], Clan[j][cLeader], Clan[j][cMitglieder], Clan[j][cLevel],Clan[j][cGeld],
Clan[j][cEXP],Clan[j][cSiege],Clan[j][cNiederlagen],Clan[j][cUnentschieden]);
}
return 1;
} -
So ich suche eine Mauer.
9339, 8659, 8658, 8657, 8656, 8653, 8652, 8651, 8650, 8649, 8648, 8647, 8646, 8645, 8188, 8185, 7956, 7939, 7191, 1894Das sind die, die gerade sind, ohne irgendwelche Ecken.
-
Das müsste sich ändern, sobald sich jemand registriert.
Um es direkt zu haben, füge nach dem Erstellen des Textdraws bei OnGameModeInit das ein:
new accounts = dini_Int("Info.ini", "RegAccounts"), string[32];
format(string, sizeof(string), "Accounts: %d", accounts);
TextDrawSetString(Textdraw0, string); -
stock CreateBusiness(Beschreibung, Float:X, Float: Y, Float: Z, Besitzer[64], Preis, Level)
zu:
stock CreateBusiness(Beschreibung[64], Float:X, Float: Y, Float: Z, Besitzer[64], Preis, Level)Da deine Beschreibung wahrscheinlich ein Text ist.
Und der Befehl:
ocmd:createbizz(playerid, params[])
{
new Preis, Level, Name[64];
new Float:X, Float:Y, Float:Z;
GetPlayerPos(playerid, X, Y, Z);
if(sscanf(params, "sdd", Name, Preis, Level)) return SendClientMessage(playerid, -1,"Benutze:{FFFFFF} /createbizz [Name des Business] [Preis] [Level]");
CreateBusiness(Name, X, Y, Z, "Der Staat", Preis, Level);
return 1;
} -
Dort wo du dich registrierst:
new accounts = dini_Int("Info.ini", "RegAccounts"), string[32];
format(string, sizeof(string), "Accounts: %d", accounts);
TextDrawSetString(Textdraw0, string);
TextDrawShowForAll(Textdraw0);Bei OnPlayerSpawn:
TextDrawShowForPlayer(playerid, Textdraw0);Und das TextDrawCreate eben bei OnGameModeInit.
-
Erstelle ein Textdraw unter OnGameModeInit, zeige es dem Spieler bei OnPlayerSpawn an und nutze TextDrawSetString wenn sich ein Spieler registriert.
-
Entweder du erstellst die Datei manuell, oder du schreibst bei OnGameModeInit das hin:
dini_Create("Info.ini");