Oben im Skript habe ich bereits new loop = 0; deklariert. Das dürfte eigentlich nicht der Fehler sein (+ in anderen for-schleifen geht es).
[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
-
-
Wenn du die Schleife einmal ausführst, dann behält "loop" den Wert "sizeof(cInfo)", sprich es wird nie mehr kleiner als "sizeof(cInfo)" sein.
Du musst die Variable entweder lokal im Schleifenkopf deklarieren, oder in im Schleifenkopf auf 0 setzen. -
Jeffry, schon einmal dran gedacht skripten zu lehren? Damn...
Funktioniert, danke dir.//Edit:
Bräuchte hier noch einen Denkanstoß:
ocmd:sellkeys(playerid)
{
new string[128],anzahl=0;
for(loop=0;loop<sizeof(cInfo);loop++)
{
if(!cInfo[loop][id_x])continue;
if(cInfo[loop][besitzer]!=pInfo[playerid][ID])continue;
format(string,sizeof(string),"Anzahl\tAutoname\tAuto ID\n{FFFFFF}%i\t{FF0000}%s\t{FFFFFF}%i\n",anzahl++,GetVehicleName(cInfo[loop][model]),cInfo[loop][model]);
ShowPlayerDialog(playerid,DIALOG_SELLKEYS,DIALOG_STYLE_TABLIST_HEADERS,"Auto Verwaltung - Verkaufen",string,"Okay","Abbrechen");
SetPVarInt(playerid,"sellCarID",)
}
return 1;
}Bei SetPVarInt möchte ich die db_id des jeweiligen Autos speichern. Jetzt ist aber das Problem: bei jedem neuen Auto das ich habe, wird ja eine neue "Liste" erstellt. Wie lese ich die Zeile aus, wenn er z.B. 3 Autos hat und er das 2te verkaufen möchte? Bei einem normalen DIALOG_STYLE_LIST mit z.B. 5 festgesetzten Plätzen wäre das für mich kein Problem, hier siehts allerdings anders aus (+ was muss ich dann bei OnDialogResponse bei listitem angeben)...
-
Jeffry, schon einmal dran gedacht skripten zu lehren? Damn...
Mach ich doch hier seit Jahren schon
Wie lese ich die Zeile aus, wenn er z.B. 3 Autos hat und er das 2te verkaufen möchte?
if(dialogid == DIALOG_SELLKEYS)
{
if(!response) return 1;
new count = -1;
for(loop=0;loop<sizeof(cInfo);loop++)
{
if(!cInfo[loop][id_x])continue;
if(cInfo[loop][besitzer]!=pInfo[playerid][ID])continue;
count++;
if(count == listitem)
{
printf("Ausgewähltes Fahrzeug: %s", GetVehicleName(cInfo[loop][model]));
return 1;
}
}
return 1;
} -
Suche eine Animation für Medics zum wiederbeleben / reanimieren.
-
Wie kann ich nem selbst geschriebenem Befehl sagen, dass man am Ende (genauso wie bei format) "unendlich" viele Arguments jedes Tags machen kann?
-
Suche eine Animation für Medics zum wiederbeleben / reanimieren.
"MEDIC","CPR"
Wie kann ich nem selbst geschriebenem Befehl sagen, dass man am Ende (genauso wie bei format) "unendlich" viele Arguments jedes Tags machen kann?
Hier ein Tutorial dazu:
http://forum.sa-mp.com/showthread.php?t=77000 -
Suche eine Animation für Medics zum wiederbeleben / reanimieren.
https://wiki.sa-mp.com/wiki/Animations
Drücke STRG und die Teste "F" dann gibst du ein Medic da ist nur eine Animation -
Moment mal, ich versuche mich jetzt seit einer Stunde dadran, aber irgendwie verstehe ich das nicht.
SendFormatMessage(playerid, color, text[], {Float,Menu,Text,...,}:...)
{
new string[128];
format(string,strlen(string),text,{mixed});
SendClientMessage(playerid,color,text);
return 1;
}
Ich wollte mir eigentlich sowas basteln. Wie realisiere ich das jetzt mithilfe des Tutorials? Das müsste mir jemand nochmal genauer erklären. -
Hmm, jemand ne Idee warum ich ein Warning erhalte?
if(pData[playerid][P_GlobalChat] == true)
{
SendClientMessage(playerid, COLOR_RED, "Your global chat is disabled!");
return 0;
}: warning 213: tag mismatch
-
Hast du die Variable P_GlobalChat als boolean deklariert, also so bool:P_GlobalChat?
-
Jemand eine Idee wie ich am besten Umlaute wie Ä ä Ö ö Ü ü benutzen kann, Ohne das Script groß umzuschreiben?
-
Hast du die Variable P_GlobalChat als boolean deklariert, also so bool:P_GlobalChat?
Nein, ist nicht als boolean deklariert
Jetzt wo du es ansprichst, muss ich true einfach mit 1 ersetzen, richtig? -
Ja oder du deklarierst die Variable halt als Boolean.
-
Okay, jetzt funktioniert's. Habe eine Funktion erstellt womit der Spieler den Global Chat für sich an / ausschalten kann, nur fehlt mir folgende Funktion.
(Das man nichts mehr schreiben kann habe ich hinbekommen)
Wie mache ich das man keine Nachrichten von den anderen Spielern mehr sieht?
In OnPlayerText
if(pData[playerid][P_GlobalChat] == 1)
{
SendClientMessage(playerid, COLOR_RED, "Your global chat is disabled!");
return 0;
} -
Wie mache ich das man keine Nachrichten von den anderen Spielern mehr sieht?
Das hast du doch schon mit return 0; gemacht.
Oder meinst du das anders? -
-
Achja, stimmt, schon spät..
Wenn du einen eigenen Chat besitzt (also nicht diesen standard chat), dann musst du den Spieler überspringen (weil du da wahrscheinlich mit einer Schleife arbeitest). Bei dem normalen Chat kann man das glaube ich nicht überspringen.
-
Doch das geht.
Dann folgender Code:Code
Alles anzeigenpublic OnPlayerText(playerid, text[]) { if(!pData[playerid][P_GlobalChat])return SendClientMessage(playerid, COLOR_RED, "Your global chat is disabled!"); // 'playerid' kann den global chat selbst nicht benutzen wenn er den deaktiviert hat new str[145], Float:x, Float:y, Float:z; GetPlayerPos(playerid, x, y, z); format(str, sizeof(str), "%s sagt: %s", /*GetName(playerid) musst du dann ändern*/, text); for(new i=0; i < MAX_PLAYERS; i++){ if(!IsPlayerConnected(i) || IsPlayerNPC(i))continue; if(!pData[i][P_GlobalChat])continue; if(IsPlayerInRangeOfPoint(i, 30.0, x, y, z)) SendClientMessage(i, 0xFFFFFFFF, str); } return 0; }
Müsste so klappen
-
Meine Frage:
Wie kann ich eine "geschätzte Zeit bis zur Ernte" Funktion erstellen?
Ich weiß nicht was man braucht zum erstellen dieser Funktion, aber ich denke diese Bedingungen sind notwendig.
Timer wird alle zwei Minuten aufgerufen, indem der Variable per Zufall einen Wert von 1 bis 3 dazu addiert wird.
Es soll berechnet werden wie lange es dauert in Minuten bis die bestimmte Variable den Wert 115 erreicht. -
Jemand eine Idee wie ich am besten Umlaute wie Ä ä Ö ö Ü ü benutzen kann, Ohne das Script groß umzuschreiben?