string wird falsch übergeben

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
  • Guten zusammen


    Ich habe ein Kleines problem
    bei den Code hier wird der stringwert nicht übergeben sprich wenn ich es auslese kommt sowas Wie OU oder YO nur raus
    stock W_CreateVehicle(model,Float:vX,Float:vY,Float:vZ,Float:vA,c1,c2,respawn,owner[]="Unbekannt",nummer[]="XYZR 000")
    {
    new car = WS_CreateVehicle(model,vX,vY,vZ,vA,c1,c2,respawn);
    format(CarInfo[car][vBesitzer],MAX_PLAYER_NAME,owner);
    format(CarInfo[car][vKennzeichen],32,nummer);
    SetVehicleNumberPlate(car,nummer);
    return car;
    }
    Ich kann mir nicht erklären wiso das so ist
    das Auslesen tu ich so:
    stock GetCarOwner(vehicleid)return CarInfo[vehicleid][vBesitzer];
    Ich habe immer gedacht das es an der vehicleid liegt, das aber nicht der fall ist
    Das ist mein Testcommand
    if(strcmp("/test", cmdtext, true, 10) == 0)
    {
    if(!IsPlayerInAnyVehicle(playerid))return 1;
    new vid = GetPlayerVehicleID(playerid);
    format(string, 128, "Vehicleid: %d | Owner: %s | Kennzeichen: %s", vid, GetCarOwner(vid), GetCarNumber(vid));
    SendClientMessage(playerid,-1,string);
    return 1;
    }
    Heraus kommt das
    Vehicleid: 41 | Owner: S | Kennzeichen: OS
    Die vehicleid stimmt der Owner sollte Ordnungsamt heißen und das Kennzeichen OAmt 7
    Auch wenn ich nichts eintrage als owner/kennzeichen kommt sowas bei raus


    Ich hoffe, das einer von euch weiß woran das liegen könnte

    All in all it's just another brick in the wall

  • Moin,


    ich bin mir jetzt nicht zu 100% sicher ob es klappen kann, aber versuch es mal so:



    stock GetCarOwner(vehicleid)
    {
    new str[32];
    strmid(str,CarInfo[vehicleid][vBesitzer],0,32);
    return str;
    }


    Wie gesagt, keine Ahnung ob das funktioniert.. Wenn sich das überhaupt Fehlerfrei compilern lässt. :D



    Liebe Grüße



    //Edit:
    256 in 32 geändert.. :D

  • ich hatte den string schonmal zum test anders ausgeben wollen aber es kommt das selbe bei raus
    Der setzt den string nicht in den enum


    //e
    hab das mal debuggen lassen
    bei einen Auto in der Include habe ich es mal so gemacht:
    wenn es erstellt wird:
    [06:30:26] Vehicleid: 44 | Nummer: OAmt 10 | Owner: San Fierro Ordnungsamt
    bei den code für vehicleid 44
    printf("Vehicleid: 44 | Nummer: %s | Owner: %s",GetCarNumber(44),GetCarOwner(44));
    ergebnis
    [06:30:26] Vehicleid: 44 | Nummer: Ohwarzmarkt | Owner: SOhwarzmarkt
    Mysteriöse sache
    Ich finde den fehler nicht

    All in all it's just another brick in the wall

    Einmal editiert, zuletzt von [DT]Beavis ()

  • Hast Du es so schonmal probiert?



    stock W_CreateVehicle(model,Float:vX,Float:vY,Float:vZ,Float:vA,c1,c2,respawn,owner[]="Unbekannt",nummer[]="XYZR 000")
    {
    new car = WS_CreateVehicle(model,vX,vY,vZ,vA,c1,c2,respawn);
    strmid(CarInfo[car][vBesitzer],owner,0,32);
    format(CarInfo[car][vKennzeichen],32,nummer);
    SetVehicleNumberPlate(car,nummer);
    return car;
    }


    "owner" wird nun durch strmid in CarInfo[car][vBesitzer] gesetzt.
    Also, sollte es zumindest tun.

  • Da kommt das selbe bei raus
    Ich weiß nicht wiso der sich so weigert das richtig zu setzen in der Funktion wo ich das car erstelle ist alles richtig da wird es richtig gestezt
    das hat der Debug erwiesen
    stock W_CreateVehicle(model,Float:vX,Float:vY,Float:vZ,Float:vA,c1,c2,respawn,owner[]="Unbekannt",nummer[]="XYZR 000")
    {
    new car = WS_CreateVehicle(model,vX,vY,vZ,vA,c1,c2,respawn);
    format(CarInfo[car][vBesitzer],MAX_PLAYER_NAME,owner);
    format(CarInfo[car][vKennzeichen],32,nummer);
    SetVehicleNumberPlate(car,nummer);
    printf("Vehicleid: %d | Nummer: %s | Owner: %s",car,CarInfo[car][vKennzeichen],CarInfo[car][vBesitzer]);
    return car;
    }
    Das auslesen ist der Fail und ich weiß nicht wiso er da probleme macht
    das ist der enum dazu
    enum CarEnum
    {
    vBesitzer[MAX_PLAYER_NAME],
    vKennzeichen[32]
    };
    new CarInfo[MAX_VEHICLES][CarEnum];

    All in all it's just another brick in the wall

  • Vielleicht bricht Dir ja das das Genick?!



    stock W_CreateVehicle(model,Float:vX,Float:vY,Float:vZ,Float:vA,c1,c2,respawn,owner[]="Unbekannt",nummer[]="XYZR 000")


    Zumindest wenn Du es genau so im Script hast..


    Ist vielleicht nicht ganz logisch, aber vielleicht klappt es wenn Du es mal so probierst?



    stock W_CreateVehicle(model,Float:vX,Float:vY,Float:vZ,Float:vA,c1,c2,respawn,owner[],nummer[])

  • Hmm, ist schon ziemlich merkwürdig... :/
    Sorry, aber mehr kann ich auch nicht helfen..


    Ich sehe keinen Fehler..
    Aber naja, Du bist ja nicht der einzigste der solche Probleme hat, ich habe auch momentan Probleme mit dem Kram...

  • Da bin ich echt überfragt scheint alles richtig und logisch zu sein..


    Sicher das beim erstellen alles richtig ist?


    Versuche mal mehrere Prints einzufügen immer zwischen dem Code und immer sämtliche Werte wiedergeben lassen und schau an welcher stelle genau ein falscher Wert herauskommt.

  • Wie wäre es, wenn du die Strings mal richtig zurückgibst, anstatt auf die falsche Art und Weise?

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • Wie wäre es, wenn du die Strings mal richtig zurückgibst, anstatt auf die falsche Art und Weise?


    Anstatt mal so eine dumme Antwort zu geben, könntest du, wenn du wirklich helfen willst ihm sagen, wie er den String richtig zurückgeben soll.
    Deine These hier bringt ihn auch nicht viel weiter.


    LG

    Main: CPU: Intel Core i5-4440 @ 3,10 GHz | CPU-Cooling: Matterhorn -PURE- | RAM: 16GB Crucial Ballistix Sport DDR3-1600 DIMM CL9-9-9-24 |
    Motherboard: ASRock B85M Pro4 | GPU: Sapphire Radeon R9 390X Nitro 8GB GDDR5 |

    SSD: Samsung SSD 840 Evo 500GB | Power Supply: 550 Watt Corsair CS Series Modular 80+ Gold | Case: beQuiet! Silent Base 800


    As I walk through the valley of the shadow of death
    I take a look at my life and realize there's nothin' left.

  • Anstatt mal so eine dumme Antwort zu geben


    Das gleiche sag ich jetzt mal dir :P


    Soll ich ihm jetzt nen Copy Paste Version geben?
    Nene, er soll sein Hirn anstrengen und nicht irgendwas kopieren, wie andere es tun :thumbup:

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski


  • Das gleiche sag ich jetzt mal dir :P


    Soll ich ihm jetzt nen Copy Paste Version geben?
    Nene, er soll sein Hirn anstrengen und nicht irgendwas kopieren, wie andere es tun :thumbup:


    Ich habe nie was von C & Paste gesagt. Ich habe gesagt, dass du ihm einen Tipp geben sollst (z.B was er falsch macht) :pinch:

    Main: CPU: Intel Core i5-4440 @ 3,10 GHz | CPU-Cooling: Matterhorn -PURE- | RAM: 16GB Crucial Ballistix Sport DDR3-1600 DIMM CL9-9-9-24 |
    Motherboard: ASRock B85M Pro4 | GPU: Sapphire Radeon R9 390X Nitro 8GB GDDR5 |

    SSD: Samsung SSD 840 Evo 500GB | Power Supply: 550 Watt Corsair CS Series Modular 80+ Gold | Case: beQuiet! Silent Base 800


    As I walk through the valley of the shadow of death
    I take a look at my life and realize there's nothin' left.