Klar, das geht, nur ist es relativ komplex.
Willst du, dass man mehrere aufklappen kann, oder wenn man eins aufklappt, dass das andere geschlossen wird?
Beiträge von Jeffry
-
-
Das ist das knalligste Rot was geht, 255,0,0.
Es kommt immer auf das Wetter und die Zeit in GTA an, wie hell es erscheint. -
SetDynamicObjectMaterialText(SchmaleWand[61], " ", 0, OBJECT_MATERIAL_SIZE_256x128,"Arial", 50, 0, 0xFFFF0000, 0xFFFF0000, OBJECT_MATERIAL_TEXT_ALIGN_CENTER);
So ist es komplett rot bei mir.
-
Wie erstellst du das Objekt, kannst du den Code dazu posten? Dann würde ich es kurz ausprobieren.
-
Du musst eben standardmäßig sInfo[playerid][firma] auf -1 setzen, und wenn der Spieler dann bereits eines hat:
if(sInfo[playerid][firma] != -1) return SendClientMessage(playerid, 0xFF0000FF, "Error: Du hast bereits eine Firma.");Und bei OnPlayerConnect eben:
sInfo[playerid][firma]=1;
zu:
sInfo[playerid][firma]=-1;Beim Registrieren auch auf -1 setzen.
-
Beim Kauf kannst du sagen:
sInfo[playerid][firma]=i;Dann weißt du, welche Firmennummer dem Spieler gehört.
-
ocmd:inv(playerid,params[])
{
new string[256];
for(new i=0; i<sizeof(ItemInfo[]); i++)
{
if(ItemInfo[playerid][ItemsEnum:i]==0) continue;
format(string,sizeof(string),"%s%s (%i)\n",string, ItemName(i), ItemInfo[playerid][ItemsEnum:i]);
}
if(!strlen(string)) return SendClientMessage(playerid,C_Error,"Du hast keine Gegenstände in deinem Inventar.");
ShowPlayerDialog(playerid,DIALOG_Inventar,DIALOG_STYLE_LIST,"Inventar",string,"Wählen","Abbrechen");
return 1;
}stock ItemName(i)
{
new name[32];
switch(i)
{
case 0: name = "Schlagring";
case 1: name = "Golfschlaeger";
default: name = "Unbekannt";
}
return name;
} -
Das weiß ich nicht.
Normalerweise gibt es da keine Probleme.Schreibt er den MD5 Wert denn in die Tabelle rein, oder schlägt schon das fehl?
-
Eigentlich genau so wie beschrieben. Wenn das nicht geht (vielleicht liegts am MySQL Server?), dann könntest du es alternativ über ein Plugin (http://forum.sa-mp.com/showthread.php?t=152682) lösen.
-
Kannst du bitte mal die Koordinaten der Plätze schicken? Dann kann ich oder jemand anderes es ausprobieren. Das dürfte schneller gehen, als zu raten wo der Fehler ist.
@Mencent: Das passt so, das kann man so machen. Es wird dann entsprechend true oder false ausgegeben.
-
Ja, so.
Nur nimm die return 1; aus der Schleife, sonst geht es nur für den ersten Spieler und ohne das playerid im Kopf. -
Kannst du nochmal posten, was der Server Log sagt?
Oder ist beides immernoch 0? -
Ich hoffe das mir jemand helfen kann ( Jeffry)
Um was geht es denn? Kannst du das momentane Problem bitte nochmal erklären, so als wäre es der erste Post? Ich kann mir keine zweieinhalb Seiten Code durchlesen und dann noch durchblicken.
-
Also bei mir klappt das Grün.

Was mir aber an deinem Code in PN aufgefallen ist:
SetTimerEx("Laune", 60000*2, true, "u",playerid);
zu:
SetTimerEx("Laune", 60000*2, true, "d",playerid);u existiert bei SetTimerEx nicht, das ist eine Erfindung von sscanf.
Außerdem, wenn du den Timer bei OnPlayerConnect startest, dann startest du ihn jedes mal wieder, wenn ein neuer Spieler verbindet, so hast du irgendwann 10 Timer auf der gleichen ID laufen.
Sinnvoll wäre ein Timer, der eine Schleife durch alle Spieler enthält. -
Dann versuche mal:
printf("i: %d | Face: %d | Range: %d", i, PlayerFaces(playerid, FirePos[i][0], FirePos[i][1], FirePos[i][2], 1), IsPlayerInRangeOfPoint(playerid, 4, FirePos[i][0], FirePos[i][1], FirePos[i][2]));
if(PlayerFaces(playerid, FirePos[i][0], FirePos[i][1], FirePos[i][2], 1) && IsPlayerInRangeOfPoint(playerid, 4, FirePos[i][0], FirePos[i][1], FirePos[i][2]))
zu:
printf("i: %d | Face: %d | Range: %d", i, PlayerFaces(playerid, FirePos[i][0], FirePos[i][1], FirePos[i][2], 10.0), IsPlayerInRangeOfPoint(playerid, 14.0, FirePos[i][0], FirePos[i][1], FirePos[i][2]));
if(PlayerFaces(playerid, FirePos[i][0], FirePos[i][1], FirePos[i][2], 10.0) && IsPlayerInRangeOfPoint(playerid, 14.0, FirePos[i][0], FirePos[i][1], FirePos[i][2]))Möglicherweise reicht es, die Distanz anzupassen.
-
Ok, poste bitte die PlayerFaces Funktion.
-
Textdraw oder GameText?
Kannst du mal so viel vom Code posten, damit ich es testen kann, ob es bei mir auch so ist? Vielleicht mit einem Bild dabei? -
Dann musst du das bei OnGameModeInit raus machen, und die Marker manuell mit https://wiki.sa-mp.com/wiki/SetPlayerMarkerForPlayer entfernen, dann kannst du sie auch wieder anzeigen, wenn der Spieler Aduty ist.
Die Beispiele im Link sind gut erklärt, schau mal ob du damit klar kommst. -
SetPlayerColor setzt die Farbe des Markers der angegebenen playerid für alle Spieler.
-
Kommt drauf an wie du den Marker entfernt hast.
Gegebenenfalls musst du mit http://wiki.sa-mp.com/wiki/SetPlayerMarkerForPlayer arbeiten, wenn SetPlayerColor nicht das gewünschte Ergebnis bringt.