Schreibe es in mehrere Zeilen.
Einen Zeilenumbruch machst du mit \n
Dann kannst du Absätze erstellen und so den Text sinnvoll gliedern.
Schreibe es in mehrere Zeilen.
Einen Zeilenumbruch machst du mit \n
Dann kannst du Absätze erstellen und so den Text sinnvoll gliedern.
new string[300];
strcat(string,"Das ist die erste Zeile\n");
strcat(string,"Das ist die zweite Zeile\n");
strcat(string,"Das ist die dritte Zeile\n");
So kannst du Zeilenumbrüche einfügen, falls die Zeile in Pawno mal zu lang werden sollte.
Das heißt, du fügst mit strcat immer die Zeile an dem "string" wieder an.
Das "\n" sorgt hier ebenfalls für einen Zeilenumbruch. So würde das dann im Dialog aussehen:
Das ist die erste Zeile
Das ist die zweite Zeile
Das ist die dritte Zeile
Wie kann ich die Fahrzeugpreise abspeichern, dass ich mit der Model ID auf diese komme? Ich habe z.B das für die Fahrzeugnamen:
new VehicleName[212][] = {
"Landstalker", "Bravura", "Buffalo", "Linerunner", "Perrenial", "Sentinel", "Dumper", "Firetruck", "Trashmaster", "Stretch", "Manana",
"Infernus", "Voodoo", "Pony", "Mule", "Cheetah", "Ambulance", "Leviathan", "Moonbeam", "Esperanto", "Taxi", "Washington", "Bobcat",
"Whoopee", "BF Injection", "Hunter", "Premier", "Enforcer", "Securicar", "Banshee", "Predator", "Bus", "Rhino", "Barracks", "Hotknife",
"Trailer 1", "Previon", "Coach", "Cabbie", "Stallion", "Rumpo", "RC Bandit", "Romero", "Packer", "Monster", "Admiral", "Squalo",
"Seasparrow", "Pizzaboy", "Tram", "Trailer 2", "Turismo", "Speeder", "Reefer", "Tropic", "Flatbed", "Yankee", "Caddy", "Solair",
"Berkley's RC Van", "Skimmer", "PCJ-600", "Faggio", "Freeway", "RC Baron", "RC Raider", "Glendale", "Oceanic", "Sanchez", "Sparrow",
"Patriot", "Quad", "Coastguard", "Dinghy", "Hermes", "Sabre", "Rustler", "ZR-350", "Walton", "Regina", "Comet", "BMX", "Burrito",
"Camper", "Marquis", "Baggage", "Dozer", "Maverick", "News Chopper", "Rancher", "FBI Rancher", "Virgo", "Greenwood", "Jetmax", "Hotring",
"Sandking", "Blista Compact", "Police Maverick", "Boxvillde", "Benson", "Mesa", "RC Goblin", "Hotring Racer A", "Hotring Racer B",
"Bloodring Banger", "Rancher", "Super GT", "Elegant", "Journey", "Bike", "Mountain Bike", "Beagle", "Cropduster","Stunt", "Tanker",
"Roadtrain", "Nebula", "Majestic", "Buccaneer", "Shamal", "Hydra", "FCR-900", "NRG-500", "HPV1000", "Cement Truck", "Tow Truck", "Fortune",
"Cadrona", "FBI Truck", "Willard", "Forklift", "Tractor", "Combine", "Feltzer", "Remington", "Slamvan", "Blade", "Freight", "Streak",
"Vortex", "Vincent", "Bullet", "Clover", "Sadler", "Firetruck LA", "Hustler", "Intruder", "Primo", "Cargobob", "Tampa", "Sunrise", "Merit",
"Utility", "Nevada", "Yosemite", "Windsor", "Monster A", "Monster B", "Uranus", "Jester", "Sultan", "Stratum", "Elegy", "Raindance",
"RC Tiger", "Flash", "Tahoma", "Savanna", "Bandito", "Freight Flat", "Streak Carriage", "Kart", "Mower", "Dune", "Sweeper", "Broadway",
"Tornado", "AT-400", "DFT-30", "Huntley", "Stafford", "BF-400", "News Van", "Tug", "Trailer 3", "Emperor", "Wayfarer", "Euros", "Hotdog",
"Club", "Freight Carriage", "Trailer 4", "Andromada", "Dodo", "RC Cam", "Launch", "Police Car (LSPD)", "Police Car (SFPD)",
"Police Car (LVPD)", "Police Ranger", "Picador", "S.W.A.T", "Alpha", "Phoenix", "Glendale", "Sadler", "Luggage Trailer A",
"Luggage Trailer B", "Stairs", "Boxville", "Tiller", "Utility Trailer" };
Alles anzeigen
Jedoch würde ich ungerne nochmal eine so lange Liste + Preise abspeichern, vor allem weil ich ja nicht alle Fahrzeuge anbiete. Kann ich das irgendwie einfacher Lösen?
Welchen Textdraweditor verwendet ihr, wenn ihr einen verwendet ? ich wollte den von iPLEOMAX installieren, jedoch kommt immer ingame, dass der Befehl /itd nicht existiert, obwohl ich alles exakt so gemacht habe wie es gehört, das Filterscript und das Plugin werden auch erfolgreich geladen.
Hast du auch das komplett-Package von iPleomax genommen und über den beigelegten Server gestartet?
Die Fahrzeuge der Spieler werden nach dem Disconnect nicht gespeichert.
Es wird nur Step 1 & 2 geprintet.
Falls die Frage kommt: VehicleInfo[i][v_XID] = CreateVehicle(...
OnPlayerDisconnect
print("Step 1");
for(new i=0; i < sizeof(VehicleInfo); i++)
{
print("Step 2");
if(VehicleInfo[i][v_XID] == 0)continue;
print("Step 3");
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);
DestroyVehicle(VehicleInfo[i][v_XID]);
VehicleInfo[i][v_XID] = 0;
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);
print("Step 6");
printf("[USERVEH] Fahrzeug (ID: %i) vom Spieler (ID: %d) wurde entfernt.", VehicleInfo[i][v_XID], PlayerInfo[playerid][p_ID]);
}
Alles anzeigen
Wenn ich die beiden Abfragen ausklammere, wird die Speicherung ausgeführt. -> Ergo: Es muss irgendetwas an den Abfragen falsch sein?
Dabei taucht natürlich aber das Problem auf das, dass selbe Fahrzeug mehrmals entfernt wird, was nicht gewollt ist.
Und es wird auch nur das erste Spieler-Fahrzeug gespeichert.
Nochmal:
Dieser Thread ist für kleine Scripting Fragen gedacht und nicht zum debuggen von Code, das ist einfach zu unübersichtlich, wenn dazwischen fünf Leute andere Dinge posten, wie du siehst ist dein erster Post zu dem Problem bereits untergegangen.
Mache bitte einen neuen Thread auf.
Warum wird der Part von Marvin nicht angezeigt? Ich mach's komplett falsch oder?
CMD:ecmds(playerid,params[])
{
ShowPlayerDialog(playerid, DIALOG_EVENT, DIALOG_STYLE_MSGBOX, "Event Commands", "/ecountdown - Start a global Countdown\n/eteleport - Teleport you to the Event Map", "Oki", "");
new string[300];
strcat(string,"Das ist die erste Zeile\n");
strcat(string,"Das ist die zweite Zeile\n");
strcat(string,"Das ist die dritte Zeile\n");
return 1;
}
Alles anzeigen
new string[300];
strcat(string,"Das ist die erste Zeile\n");
strcat(string,"Das ist die zweite Zeile\n");
strcat(string,"Das ist die dritte Zeile\n");
ShowPlayerDialog(playerid, DIALOG_EVENT, DIALOG_STYLE_MSGBOX, "Event Commands", string, "Oki", "");
Natürlich musst du den String auch ausgeben. Sonst formatierst du ihn ja, ohne ihn danach zu verwenden.
Funktioniert gut nur kleines Problem, warum wird nicht alles in meinem Dialog gezeigt? Bin mir ziemlich sicher das ich auf vielen Servern gesehen habe das die viel größer waren als meine.
Zeigt alles an bis zum der Line /enextround, danach kommt nix mehr.
CMD:ecmds(playerid,params[])
{
new string[300];
//Player Commands
strcat(string,"Player Commands:\n\n");
strcat(string,"/ejoin - Join an event.\n");
strcat(string,"/eleave - Leave an event.\n");
strcat(string,"/elist - View player who are in the event.\n\n");
//Admin Commands
strcat(string,"Admin Commands:\n\n");
strcat(string,"/eteleport - Teleport to the Event Map.\n");
strcat(string,"/ecountdown - Start a global countdown.\n");
strcat(string,"/estopcountdown - Stop the countdown.\n");
strcat(string,"/enextround - Open the doors and start the next round.\n");
strcat(string,"/erem - Remove player with the Wrong Answer.\n");
strcat(string,"/elock - Locks and unlock the doors manually.\n");
//Special thanks to
strcat(string,"Credits:\n\n");
strcat(string,"JustMe.77 - Mapping & Scripting.\n");
strcat(string,"Jeffry - Great support in Scripting.\n");
strcat(string,"Nominal - Code optimization.\n");
ShowPlayerDialog(playerid, DIALOG_EVENT, DIALOG_STYLE_MSGBOX, "Event Commands", string, "Okay", "");
}
Alles anzeigen
Ah ja, stimmt.
Was ist denn die größte Zahl die ich da eingeben kann, und ist das vom Nachteil wenn ich eine höhere Zahl habe aber weniger benutze, und wenn ja welche?
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.
Yo danke, gut erklärt.
Als nächstes möchte ich mehrere Spawnpunkte am Event machen damit nicht alle auf der selben Stelle spawnen. Ist das irgendwie Möglich die Koordinaten von Objekten zu entnehmen die ich auf der Map platziere damit ich auch sehe wo genau schon ein Spawn ist und wo nicht?
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