[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
-
-
-
Beitrag von AirM4X ()
Dieser Beitrag wurde vom Autor aus folgendem Grund gelöscht: gerade voll durcheinander, nimm Tusk sein Code, der stimmt. ;) (). -
-
Habe den Code
Code
Alles anzeigenenum autohausEnum { id_x, Float:i_x, Float:i_y, Float:i_z, Float:s_x, Float:s_y, Float:s_z, Float:s_r, Name[35] } new ahInfo[1][autohausEnum] = { {0,1283.2334,-1336.0128,13.3811,1279.3846,-1341.7429,13.0983,92.2082,"Oldtimer-Autohaus"}, //id: 0 1. autohaus };
Gleicher Fehler, Gleiche Zeile
-
{0,1283.2334,-1336.0128,13.3811,1279.3846,-1341.7429,13.0983,92.2082,"Oldtimer-Autohaus"}, //id: 0 1. autohaus
Du musst das Komma am Ende wegnehmen.
Also so:C{0,1283.2334,-1336.0128,13.3811,1279.3846,-1341.7429,13.0983,92.2082,"Oldtimer-Autohaus"} //id: 0 1. autohaus
Ob dass das Problem löst, das weiß ich nicht, aber das gehört da nicht hin. Nur, wenn danach noch was folgt, aber tut es ja nicht.
-
-
Das war bloß ein Fail von mir, das Komma ist weg, und der Fehler bleibt der gleiche.
Ich glaube einfach die Zeile ist zu lange, nehme ich die ersten 3 Koordinaten (+natürlich den zugehörigen Feldern im Enum) weg, geht es. Weiß jemand wie ich das machen kann ?
-
Einfach eine Schleife laufen lassen.
Hier mal ein Beispiel:C
Alles anzeigenenum struct_Clan { Float:KD } new Clans[10][struct_Clan] = { {0.88}, {0.71}, {1.12}, {2.07}, {0.99}, {2.20}, {1.97}, {0.46}, {1.51}, {0.77} }; public OnGameModeInit() { new Float:HighestValue = 0.0, Index = 0; for(new i=0; i<sizeof(Clans); i++) { if(Clans[i][KD] > HighestValue) { HighestValue = Clans[i][KD]; Index = i; } } printf("Die beste K/D-Rate hat der Clan %i mit %.2f",Index,HighestValue); //output: [15:34:46] Die beste K/D-Rate hat der Clan 5 mit 2.20 }
-
Beitrag von Apokrate ()
Dieser Beitrag wurde vom Autor aus folgendem Grund gelöscht: c&p meister ;) (). -
Eine Frage habe ich noch:
Ich habe jetzt mein enum oben fertig und möchte jetzt, einen Befehl erstellen (/autokauf) habe den auch soweit nur weiß ich nicht wie ich die strings so formatieren kann, dass mir alle Autos die in diesem Autohaus verfügbar sind im Dialog anzeigen lassen kann.
Der Code vom Befehl:
Code
Alles anzeigenocmd:autokauf(playerid,params[]) { if(IsPlayerInRangeOfPoint(playerid,5,1283.2334,-1336.0128,13.3811)) { new str[250]; for(new i=0;i<sizeof(ahCars);i++) { if(ahCars[i][ah_id] !=0)continue; } ShowPlayerDialog(playerid,D_AH_OLDTIMER,DIALOG_STYLE_LIST,"Oldtimer Autohaus",str,"Annehmen","Abbrechen"); return 1; } SCM(playerid,frot,"[FEHLER]:{FFFFFF} Du befindest dich an keinem Autohaus"); return 1; }
Das ist der Code von meinem enum:Code
Alles anzeigenenum autohauscarEnum { Name[35], c_model, c_preis, ah_id } new ahCars[2][autohauscarEnum] = { {"Esperanto",419,5,0}, //Oldtimer - Esperanto {"Broadway",575,5,0}, //Oldtimer - Broadway {"Oceanic",467,5,0} //Oldtimer - Oceanic };
Hoffe ihr könnt mir helfen.
-
Bei dem enum oben fehlt die Model ID. Hast du die mittlerweile eingebaut, oder was willst du angezeigt bekommen, im Dialog?
-
Hab zu dem code oben noch das enum hinzugefügt.
Ich möchte im Dialog den Namen und den Preis ausgeben, ich bin mir eben überhaupt nicht sicher wie ich das genau angehen soll.
Ich habe bisher ein Autohaus, das in einem Enum und meine Autos für die Autohäuser habe ich in einem anderen Enum, welches auch die Autohaus ID enthält.
Jetzt gehe ich mit der schleife mein Enum für die Autos durch und suche jedes, dass zu diesem Autohaus (in diesem Falle mit der ID 0) gehört.Nun will ich diese, derzeit, 3 Autos in einem Dialog ausgeben in welchem der Spieler dann das Auto kaufen kann..
Ich bin mir nicht sicher ob das ganze so überhaupt funktioniert mit dem enum, oder muss ich, aufgrund der dialoge, das ganze Hardcoden ?
-
C
Alles anzeigenocmd:autokauf(playerid,params[]) { if(IsPlayerInRangeOfPoint(playerid,5,1283.2334,-1336.0128,13.3811)) { new str[250]; for(new i=0;i<sizeof(ahCars);i++) { if(ahCars[i][ah_id] !=0)continue; format(str, sizeof(str), "%s%s\n", str, ahCars[i][Name]); } ShowPlayerDialog(playerid,D_AH_OLDTIMER,DIALOG_STYLE_LIST,"Oldtimer Autohaus",str,"Annehmen","Abbrechen"); return 1; } SCM(playerid,frot,"[FEHLER]:{FFFFFF} Du befindest dich an keinem Autohaus"); return 1; }
Bei "new ahCars" musst du die 2 noch zu einer 3 ändern, oder einfach ganz entfernen, das geht auch, einfach nur [].
-
Danke, Danke, Danke.
Muss ich den Dialog jetzt Hardcoden, oder geht es, dass ich das nur mit den enum daten machen kann ? (Hoffe man versteht was ich meine..)
-
(Hoffe man versteht was ich meine..)
Nein, sorry. Was meinst du?
-
Ich lasse das ganze ja in meinen Dialog ausgeben.
Muss ich den dialog jetzt normal schreiben, das erste Auto wird als listitem 0, das zweite als listitem 1 usw. ausgegeben und es danach normal coden oder gibt es eine möglichkeit das dynamisch daran anzupassen wie viele listitems generiert werden.
z.B wenn ich oben in mein enum ein 4 auto eintrage, dann kommen auch 4 Listitems raus, normal müsste ich dann den Dialog umschreiben.
Es ist nicht sonderlich wichtig, es interessiert mich nur ob es theoretisch möglich wäre. -
-
Beitrag von AirM4X ()
Dieser Beitrag wurde vom Autor aus folgendem Grund gelöscht: Habe das nun anders gelöst (). -
Kurze Frage zwischendurch:
Kann man nach einem "if/else if/else" wieder mit "if/else if/else" anfangen und das direkt in einer Funktion untereinander oder gibt es da Punkte weswegen man das nicht machen solle?
Beispiel: