Wie speicherst du deine anderen Statistiken? Poste gegebenenfalls mal den Code dazu, auch wie du sie lädst.
Beiträge von Jeffry
-
-
Benenne das IsNumeric aus dem Command und am stock um zu IsNumeric2, dann kompiliere den Code neu.
-
Das sollte kein Problem darstellen, hmm.
Dann versuche mal, stück für stück ein Callback nach dem anderen auszuklammern, und schaue, ab welchem Callback es wieder geht.
-
-
Unter den Includes:
C
Alles anzeigenCMD:ejoin(playerid,params[]) { new name[MAX_PLAYER_NAME], string[100]; GetPlayerName(playerid, name, sizeof(name)); if(zaehler >= sizeof(RandomSpawns)) zaehler = 0; SetPlayerPos(playerid, RandomSpawns[zaehler][0], RandomSpawns[zaehler][1], RandomSpawns[zaehler][2]); format(string, sizeof(string), "{FF1717}[EVENT]:{FFFFFF}{%06x} %s{FFFFFF} joined the Event - {FF1717}/ejoin", GetPlayerColor(playerid) >>> 8,name); SendClientMessageToAll(0xC4C4C4FF, string); zaehler++; inEvent[playerid] = true; return 1; }
Beim Dialog anzeigen:Cnew str[512], pname[MAX_PLAYER_NAME]; for(new i=0; i<MAX_PLAYERS; i++) { if(IsPlayerConnected(i) && inEvent[i]) { GetPlayerName(i, pname, MAX_PLAYER_NAME); format(str, sizeof(str), "%s%s (ID: %d)\n", str, pname, i); } } ShowPlayerDialog(playerid, DIALOG_EVENTLIST, DIALOG_STYLE_MSGBOX, "Event Participants", str, "Ok", "");
Beim Verlassen des Events: -
Soll die Liste im Dialog angezeigt werden, oder im Chat?
-
Uhh, hast du etwas bei OnPlayerConnect geändert?
Kommentiere da vielleicht testweise mal alles aus, und schaue ob es dann geht. Möglicherweise hängt er irgendwo in einer Endlosschleife, genau kann ich dir das aber leider nicht sagen, da musst du rumprobieren, wo der Fehler liegen könnte.Wenn möglich, mache die Änderungen die du gemacht hast rückgängig, vielleicht löst das das Problem schon. Außer du hast irgendwo unbewusst aus Versehen etwas geändert.
-
Nein.
Die Zeile heißt: Wenn der Zähler am Maximum ist (in deinem Fall 15), dann fängt er wieder von vorne an, also bei 0. -
Nein, das Maximum wird ja über sizeof(RandomSpawns) geregelt.
-
Funktioniert es mit einem leeren Gamemode (grandlarc)?
-
-
-
-
Das kann aber nichts mit der Änderung von "print" zu "printf" zu tun haben.
Oder geht es, wenn du es wieder zurück änderst? -
Was genau meinst du?
Die Koordinate für ein Objekt bekommst du mit GetObjectPos, aber für Random-Spawns würde ich dir sowas raten:
http://wiki.sa-mp.com/wiki/Random -
Ah, sorry. Das liegt daran, dass ich immer printf nutze, da habe ich vergessen das zu ändern.
C
Alles anzeigenprintf("Step 1"); for(new i=0; i < sizeof(VehicleInfo); i++) { printf("Step 2: %d (i: %d)", VehicleInfo[i][v_XID], i); if(VehicleInfo[i][v_XID] == 0)continue; printf("Step 3 (%d/%d)",VehicleInfo[i][v_ID],PlayerInfo[playerid][p_ID]); if(VehicleInfo[i][v_ID] != PlayerInfo[playerid][p_ID])continue; printf("Step 4"); new Float:health; GetVehiclePos(VehicleInfo[i][v_XID], VehicleInfo[i][v_X], VehicleInfo[i][v_Y], VehicleInfo[i][v_Z]); GetVehicleZAngle(VehicleInfo[i][v_XID], VehicleInfo[i][v_R]); GetVehicleHealth(VehicleInfo[i][v_XID], health); printf("Step 5"); new query[256]; mysql_format(handle, query, sizeof(query), "UPDATE vehicles SET x='%f', y='%f', z='%f', r='%f', health='%f' WHERE id='%d'", VehicleInfo[i][v_X], VehicleInfo[i][v_Y], VehicleInfo[i][v_Z], VehicleInfo[i][v_R], health, i); mysql_pquery(handle, query); printf("[USERVEH] Fahrzeug (ID: %i) vom Spieler (ID: %d) wurde entfernt.", VehicleInfo[i][v_XID], PlayerInfo[playerid][p_ID]); DestroyVehicle(VehicleInfo[i][v_XID]); VehicleInfo[i][v_XID] = 0; }So passt es.
-
Je größer die Zahl ist, die du eingibst, desto mehr Speicher wird reserviert.
Es gibt ein Limit an Zeichen das angezeigt werden kann, das erreicht man aber kaum, nur wenn man viele eingebettete Farben verwendet. Du kannst ohne diese Farben den kompletten Bildschirm voll schreiben.Limit: http://wiki.sa-mp.com/wiki/Limits
4096 Zeichen im Text. -
-
Erstmal danke für das Erstellen eines Threads, das macht die Sache übersichtlicher.
Versuche es so:C
Alles anzeigenprint("Step 1"); for(new i=0; i < sizeof(VehicleInfo); i++) { print("Step 2: %d (i: %d)", VehicleInfo[i][v_XID], i); if(VehicleInfo[i][v_XID] == 0)continue; print("Step 3 (%d/%d)",VehicleInfo[i][v_ID],PlayerInfo[playerid][p_ID]); if(VehicleInfo[i][v_ID] != PlayerInfo[playerid][p_ID])continue; print("Step 4"); new Float:health; GetVehiclePos(VehicleInfo[i][v_XID], VehicleInfo[i][v_X], VehicleInfo[i][v_Y], VehicleInfo[i][v_Z]); GetVehicleZAngle(VehicleInfo[i][v_XID], VehicleInfo[i][v_R]); GetVehicleHealth(VehicleInfo[i][v_XID], health); print("Step 5"); new query[256]; mysql_format(handle, query, sizeof(query), "UPDATE vehicles SET x='%f', y='%f', z='%f', r='%f', health='%f' WHERE id='%d'", VehicleInfo[i][v_X], VehicleInfo[i][v_Y], VehicleInfo[i][v_Z], VehicleInfo[i][v_R], health, i); mysql_pquery(handle, query); printf("[USERVEH] Fahrzeug (ID: %i) vom Spieler (ID: %d) wurde entfernt.", VehicleInfo[i][v_XID], PlayerInfo[playerid][p_ID]); DestroyVehicle(VehicleInfo[i][v_XID]); VehicleInfo[i][v_XID] = 0; }Was wird dann geprintet?
-
So:
C
Alles anzeigen#include <a_samp> new Gein, Gaus; new Pein, Paus; new GPein, GPaus; new Wein, Waus; new WaffenMenu; new WaffenPICK; new bool:blockedPickup[MAX_PLAYERS]; public OnGameModeInit() { DisableInteriorEnterExits(); //Pickup Gein = CreatePickup(1318, 2, 2539.1487,2790.9890,10.8203, -1); Gaus = CreatePickup(1318, 2, 238.9117,139.2440,1003.0234, -1); Pein = CreatePickup(1318, 2, 1555.2286,-1674.8322,16.1953, -1); Paus = CreatePickup(1318, 2, 246.2067,62.2156,1003.6406, -1); GPein = CreatePickup(1318, 2, 246.3761,87.9190,1003.6406, -1); GPaus = CreatePickup(1318, 2, 1568.6259,-1689.9702,6.2188, -1); Wein = CreatePickup(1318, 2, 1524.4877,-1677.3599,6.2188, -1); Waus = CreatePickup(1318, 2, 286.3227,-41.8052,1001.5156, -1); WaffenPICK = CreatePickup(1242, 2, 290.7124,-34.7458,1001.5156, -1); //menu { WaffenMenu = CreateMenu("Waffen", 4, 200.0, 100.0, 150.0, 150.0); AddMenuItem(WaffenMenu, 0, "9mm"); AddMenuItem(WaffenMenu, 0, "Schlagstock"); AddMenuItem(WaffenMenu, 0, "Schrotflinte"); AddMenuItem(WaffenMenu, 0, "MP5"); } return 1; } public OnGameModeExit() { return 1; } public OnPlayerRequestClass(playerid, classid) { SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746); SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746); SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746); return 1; } public OnPlayerConnect(playerid) { return 1; } public OnPlayerDisconnect(playerid, reason) { return 1; } public OnPlayerSpawn(playerid) { return 1; } public OnPlayerDeath(playerid, killerid, reason) { return 1; } public OnVehicleSpawn(vehicleid) { return 1; } public OnVehicleDeath(vehicleid, killerid) { return 1; } public OnPlayerText(playerid, text[]) { return 1; } public OnPlayerCommandText(playerid, cmdtext[]) { if (strcmp("/show", cmdtext, true, 10) == 0) { ShowMenuForPlayer(WaffenMenu,playerid); TogglePlayerControllable(playerid, false); return 1; } return 0; } public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger) { return 1; } public OnPlayerExitVehicle(playerid, vehicleid) { return 1; } public OnPlayerStateChange(playerid, newstate, oldstate) { return 1; } public OnPlayerEnterCheckpoint(playerid) { return 1; } public OnPlayerLeaveCheckpoint(playerid) { return 1; } public OnPlayerEnterRaceCheckpoint(playerid) { return 1; } public OnPlayerLeaveRaceCheckpoint(playerid) { return 1; } public OnRconCommand(cmd[]) { return 1; } public OnPlayerRequestSpawn(playerid) { return 1; } public OnObjectMoved(objectid) { return 1; } public OnPlayerObjectMoved(playerid, objectid) { return 1; } public OnPlayerPickUpPickup(playerid, pickupid) { //Prisen if(pickupid == Gein) { SetPlayerPos(playerid,238.6620,141.0520,1003.0234); SetPlayerFacingAngle(playerid,0.0000); SetPlayerInterior(playerid,3); } if(pickupid == Gaus) { SetPlayerPos(playerid,2539.2849,2788.9829,10.8203); SetPlayerFacingAngle(playerid,149.4668); SetPlayerInterior(playerid,0); } //Ein und Aus HQ if(pickupid == Pein) { SetPlayerPos(playerid,246.7840,63.9002,1003.6406); SetPlayerFacingAngle(playerid,0.0000); SetPlayerInterior(playerid,6); } if(pickupid == Paus) { SetPlayerPos(playerid,1552.4500,-1674.9900,16.1953); SetPlayerFacingAngle(playerid,90.0000); SetPlayerInterior(playerid,0); } //Ein und Aus gan HQ und Gerasche if(pickupid == GPein) { SetPlayerPos(playerid,1569.1481,-1692.6613,5.8906); SetPlayerFacingAngle(playerid,151.3919); SetPlayerInterior(playerid,0); } if(pickupid == GPaus) { SetPlayerPos(playerid,246.5363,85.9509,1003.6406); SetPlayerFacingAngle(playerid,184.8450); SetPlayerInterior(playerid,6); } //Waffenladen polize if(pickupid == Wein) { SetPlayerPos(playerid,285.8537,-38.9897,1001.5156); SetPlayerFacingAngle(playerid,359.9000); SetPlayerInterior(playerid,1); } if(pickupid == Waus) { SetPlayerPos(playerid,1527.7048,-1676.9601,5.8906); SetPlayerFacingAngle(playerid,261.8632); SetPlayerInterior(playerid,0); } if(pickupid == WaffenPICK) { if(blockedPickup[playerid]) return 1; blockedPickup[playerid] = true; ShowMenuForPlayer(WaffenMenu,playerid); TogglePlayerControllable(playerid, false); return 1; } return 1; } public OnPlayerSelectedMenuRow(playerid, row) { new Menu:CurrentMenu = GetPlayerMenu(playerid); if(CurrentMenu==WaffenMenu) { SetTimerEx("UnblockPickup", 1000, 0, "d", playerid); switch(row) { case 0: { TogglePlayerControllable(playerid,true); GivePlayerWeapon(playerid, 22, 50); HideMenuForPlayer(WaffenMenu, playerid); } case 2: { TogglePlayerControllable(playerid,true); GivePlayerWeapon(playerid, 3, 1); HideMenuForPlayer(WaffenMenu, playerid); } case 3: { TogglePlayerControllable(playerid,true); GivePlayerWeapon(playerid, 25, 50); HideMenuForPlayer(WaffenMenu, playerid); } case 4: { TogglePlayerControllable(playerid,true); GivePlayerWeapon(playerid, 29, 50); HideMenuForPlayer(WaffenMenu, playerid); } } } return 1; } public OnPlayerExitedMenu(playerid) { return 1; } forward UnblockPickup(playerid); public UnblockPickup(playerid) { blockedPickup[playerid] = false; return 1; }Ich habe noch einen Timer hinzugefügt, das ist dann wahrscheinlich noch etwas besser, da der Spieler mehr Zeit hat, sich vom Pickup zu entfernen.