Ich würde eher strcat(str, PlayerInfo[i][pName]); nutzen.
Achso und die Zeilenumbrüche nicht vergessen.
Also vielleicht eher format(str, sizeof(str), "%s%s\n", str, PlayerInfo[i][pName]);
[SAMMELTHREAD] Kleine Scripting Fragen
- Rafelder
- Unerledigt
Dein Problem konnte durch einen User gelöst werden? Bedank dich bei ihm indem du seinen Beitrag als Hilfreich markierst sowie einen Daumen oben dalässt
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!
Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
-
-
strcat(str, PlayerInfo[i][pName]);
Wo kommt das hin? Habe strcat noch nie gesehen oder damit gearbeitet
-
Wie gesagt, kannst auch format nehmen:
C
Alles anzeigenocmd:members(playerid, params[]) { new str[256]; for (new i = 0; i < MAX_PLAYERS; i++) { if (PlayerInfo[i][frak] != PlayerInfo[playerid][frak]) continue; format(str, sizeof(str), "%s%s\n", str, PlayerInfo[i][pName]); } ShowPlayerDialog(playerid, 0, 2, "Members", str, "Schließen", ""); return 1; } -
Ok dieses Create3DTextLabels scheinen mir sehr buggy oder ich bin zu dumm um die zu benutzen.
MoneyPickup = CreatePickup(1274, 1, -29.0164,-184.8195,1003.5469, 3); // Money
MoneyText[0] = Create3DTextLabel("Laufe hierein um Geld zu erhalten.", 0x04B404FF, -29.0164,-184.8195,1003.5469, 30.00, 3, 1);Das Pickup funktioniert aber das 3DTextLabel mit den selben Angaben funktioniert nicht? Wieso? Was mache ich falsch, oder spinnt dort die Virtual World?
-
Wegen der Virtual World, kannst du mal -1 probieren, dann wird das Label überall angezeigt. Ist das in einem Interior? Wenn ja dann bitte mal die ID davon nennen.
-
Wegen der Virtual World, kannst du mal -1 probieren, dann wird das Label überall angezeigt. Ist das in einem Interior? Wenn ja dann bitte mal die ID davon nennen.
Interior ID 17, das mit -1 noch nicht getestet, teste ich jetzt aber, auf SAMP Wiki steht aber, dass es bei -1 überhaupt nicht geht.
geht auch nicht bei -1
-
Es existiert ein Limit von 1024 TextLabels. Kann es sein, dass du diese erreicht hast?
Ansonsten einen Streamer nutzen.
-
Das mit -1 ist wahrscheinlich bei den Pickups der Fall.
-
Es existiert ein Limit von 1024 TextLabels. Kann es sein, dass du diese erreicht hast?
Ansonsten einen Streamer nutzen.
Nein ich habe gerade mal 3 Text Labels
Was ist ein Streamer?
Das mit -1 ist wahrscheinlich bei den Pickups der Fall.
Naja so funktioniert es halt nicht, irgendeine Idee?
Die außerhalb von einem Interior gehen, aber die in einem Interior gehen nicht, -
Also bei mir geht's. Du setzt die VW des Spielers auch auf 3 ja?
-
Also bei mir geht's. Du setzt die VW des Spielers auch auf 3 ja?
Ja sonst würde ich das Pickup nicht sehen
-
Testweise mal den letzten Parameter auf 0 gesetzt?
-
Geht auch nicht
-
Dann hab ich im Moment keine Ideen mehr, wie gesagt bei mir funktioniert's. Könntest sonst nur mal deinen Code durchschauen, ob es irgendwas gibt, was sich damit beißen könnte.
-
Wüsste jetzt nicht was, da der Code relativ neu ist und ich 0 an Interiors oder ähnlichem verändert habe
hat nur 5k zeilen
-
Ich bräuchte mal "Starthilfe"..
Ich möchte verschiedenen modelIDs verschiedene Tank Größen zuweisen.
Wie mach ich das am elegantesten? brauch ja erstmal ein "new gassize"
Wie pack ich da ein "id model id ist gleich.." rein?! -
Wie pack ich da ein "id model id ist gleich.." rein?!
Cnew max_tank[211]; max_tank[0] = 80; //Bedeutet der Landstalker hat ein maximales Füllvolumen von 80 Litern //Abfragen: (angenommen wir sitzen in einem Landstalker) new v = GetPlayerVehicleID(playerid); printf("Landstalker hat ein Tankvolumen von %d Litern.", max_tank[GetVehicleModel(v)-400]); //Das gibt dir 80 eben aus :)Hier mal ein simples Beispiel

-
Alles anzeigen
Ungetestet, aber sollte so funktionieren.
PS: Wieso überhaupt ein Timer? Kannst ihn ja auch ohne kicken..public OnPlayerConnect (playerid)
{
if(sSpieler[playerid][Gebannt] = 1)
{
DelayKick[playerid] = SetTimerEx("DelayKickPlayer", 1000, false, "i", playerid);
}
return 1;
}da muss ein fehler sein weil da 26 errors kommen!
-
Eigentlich müsste das richtig sein, hast du vllt irgendwo anders im Script ein Klammerfehler o.ä?
beim if(sSpieler[playerid][Gebannt] = 1) sollte man 2 = Zeichen verwenden ( == 1) aber das gibt nur eine Warnung und kein Error.
Hast du kein SekundenTimer im Script der jede Sekunde läuft und Spieler irgendwas abfragt? Falls ja finde ich da den SetTimerEx unnötig.
-
Da lohnt sich das generell nur wenn man vorher noch eine Nachricht schicken möchte.
Ich denke einfach falsche Copy&Paste Anwendung.

