Angepinnt [SAMMELTHREAD] Kleine Scripting Fragen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Richtig, wenn du das Objekt attached dann sind x y und z die Offset Koordinaten.

    Wenn du nach dem Attachen, das ganze nochmal verschieben willst, solltest du entweder den Text neu erstellen oder die Daten ändern via Streamer_SetFloatData Streamer_SetItemOffset

    // Ich mein natürlich nicht SetFloatData sondern SetItemOffset ._.
    Falls du das nutzen solltest, musst du aber das Objekt via Streamer_Update neu streamen lassen
    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."
    Margarete Stokowski
  • Neu

    Gibt es irgendwelche (Cleo-)Mods die den Motor auf einen SA:MP Server anschalten können?
    Ich frage nämlich etwas ab, beim Motor starten und wollte fragen ob man dies umgehen kann mit so einer Modifikation.

    Weil dann findet die Abfrage nicht statt und der Motor kann so gestartet werden.

    Ich weiß, dass ich weiß, dass ich nichts weiß.
  • Neu

    BrightLeaN schrieb:

    Ich frage nämlich etwas ab, beim Motor starten und wollte fragen ob man dies umgehen kann mit so einer Modifikation.

    Weil dann findet die Abfrage nicht statt und der Motor kann so gestartet werden.
    Das ist moeglich. Man kann Clientseitig den Motor anschalten ohne dass der Server das mitbekommt. Als Konsequenz davon ist aber dann, dass der Server nicht darueber bescheid weiss wenn Du Schuesse z.B. ueber einen Seasparrow abgibst. Diese werden lediglich bei Dir lokal angezeigt, haben aber keinen Effekt bei irgendwem. Den Motor hoerst auch nur Du dann. Bei den anderen bewegt sich das Fahrzeug zwar, aber ohne Geraeusch.
    samp-models.net - SA:MP Model Hoster
  • Neu

    Das heißt um das zu umgehen ist es richtig, dass für den Server der Motor aus ist.


    Will das bei dem starten eines Motors abfragen, geht so nicht.
    Ich kann den GetLKWIndex so nicht abfragen, kann ich irgendwie anders abfragen, ob derjenige in einem der TransportLKW sitzt und dann halt ob der index von dem auf 1 ist?

    i ist der stock GetLKWIndex.

    C-Quellcode

    1. if(vehicleid == TransportLKW[i])
    2. {
    3. if(LKWIndex1[i] == 1) return SCM(playerid,-1,"Stell den Index auf 0 bevor du den Motor an machst");
    4. }

    C-Quellcode

    1. stock GetLKWIndex(playerid)
    2. {
    3. for(new i; i<sizeof(TransportLKW); i++) if(IsPlayerInVehicle(playerid,TransportLKW[i])) return i;
    4. return -1;
    5. }

    Ich weiß, dass ich weiß, dass ich nichts weiß.
  • Neu

    Ich weiss nicht, was Du machen willst. Aber um Dir kurz ein Beispiel zu erlaeutern was moeglich ist:

    Angenommen ich habe den Motor-Hack aktiviert und setze mich in ein Auto. Fuer mich ist der Motor an aber nur fuer mich und das clientseitig. Der Server bekommt erstmal davon nichts mit. Ich kann das Auto fahren und alles machen was ich will (auch fliegen). Ich kann auch schiessen (sofern das Auto das zulaesst) es wird aber nur bei mir angezeigt und Damage bekommt erstmal keiner. Das heisst, wenn Du eine Abfrage hast, wo zwingend der Motor an sein muss, dann wird der Server dir sagen "Fuer mich ist der Motor aus" auch wenn fuer den einzelnen Spieler der Motor an ist.

    Das sollte Dir ggf. schon alles beantworten. Ansonsten bitte das Problem genauer beschreiben.
    samp-models.net - SA:MP Model Hoster
  • Neu

    Wenn du das, was du möchtest, in einem nicht so sehr abstrakten Satz mit vielen Variablen verstrickst, dann kann man dir bestimmt ziemlich einfach helfen.
    Aber ohne weitere Informationen und dem nötigen Wissen was genau du umsetzen möchtest, ist es kaum möglich dir eine vernünftige und befriedigende Antwort zu geben. ^^
  • Neu

    @Andosius die Informationen reichen doch aus?
    Ich erkläre es mal, da Code nicht so leicht zu verstehen ist ohne eine genaue Erklärung.

    C-Quellcode

    1. stock GetLKWIndex(playerid)
    2. {
    3. for(new i; i<sizeof(TransportLKW); i++) if(IsPlayerInVehicle(playerid,TransportLKW[i])) return i;
    4. return -1;
    5. }

    Hiermit hole ich mir ein Index damit ich jedem Fahrzeug eine Variable aus dem Array zuordnen kann. LkwIndex["GetLKWIndex"]


    Jetzt will ich aber, dass wenn ich den Motor einschalte ich hier eine kleine Abfrage zu meinem Index mache. Ich kann es nicht machen, da ich den Stock nicht anwenden kann und ich jetzt nicht weiß,
    wie ich sonst den Index herausfinden kann.
    Ich kann ihn nicht anwenden, da gefragt wird ob ich in einen der Transport Fahrzeuge sitze.

    C-Quellcode

    1. if(vehicleid == TransportLKW[i])
    2. {
    3. if(LKWIndex1[i] == 1) return SCM(playerid,-1,"Stell den Index auf 0 bevor du den Motor an machst");
    4. }
    Und wenn man genau hinschaut sieht man, dass ich im stock nachfrage ob der Spieler in einem der Transport Fahrzeuge sitzt. Heißt es geht nicht.

    i steht für den stock im ersten Quellcode

    Ich weiß, dass ich weiß, dass ich nichts weiß.
  • Neu

    C-Quellcode

    1. MoveDynamicObjectRot(ZollMaut[i], 0.0, -90.0+90, 155.199981, true);
    dies funktioniert nicht.


    Dies funktioniert nicht, nichts passiert.

    C-Quellcode

    1. MoveDynamicObjectRot(ZollMaut[i], 0.0, 90.0-90, 8.800008, true);


    Alle Objekte mit dem - bewegen sich. die mit dem + nicht.
    Kann man kein + benutzen?

    Ich weiß, dass ich weiß, dass ich nichts weiß.

  • Neu

    Ja, aber das eine Objekt will sich nicht bewegen, habe es mit verschiedenen Testen versucht.

    Das Objekt kann ich bewegen.

    Quellcode

    1. ZollMaut[7] = CreateDynamicObject(968, X,Y, Z, 0.000000, -90.000000, 155.199981, -1, -1, -1, 300.00, 300.00);

    Dieses aber nicht.

    Quellcode

    1. ZollMaut[8] = CreateDynamicObject(968, X, Y, Z, 0.000000, 90.000000, -11.400006, -1, -1, -1, 300.00, 300.00);
    Das kann doch nicht sein?
    Wenn ich das Objekt ...[7] bewege, geht es. Bewege ich ...[8] geht es nicht? Ich habe sogar komplett andere Koordinaten angegeben.



    C-Quellcode

    1. ocmd:ttt(playerid,params[])
    2. {
    3. MoveDynamicObjectRot(ZollMaut[8], 0.0, 100, -24.800008, true);
    4. return 1;
    5. }

    Ich weiß, dass ich weiß, dass ich nichts weiß.
  • Neu

    Bist du dir 100%ig sicher, dass das Objekt, was du bewegen willst auch das Objekt ist, was du via Script ansteuerst ?

    Vergleich mal die ObjektIDs der Objekte.
    Lass dir die ID mal ausgeben. Einmal wenn du es erstellst und einmal wenn du es bewegen willst.
    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."
    Margarete Stokowski
  • Neu

    Also wie gesagt. Die gehen z.B

    Quellcode

    1. ZollMaut[4] = CreateDynamicObject(968, X,Y,Z, 0.000000, 90.0, 489.600006, -1, -1, -1, 300.00, 300.00);
    2. ZollMaut[5] = CreateDynamicObject(968,X,Y,Z, 0.000000, 90.0, 669.599975, -1, -1, -1, 300.00, 300.00);

    die aber nicht

    Quellcode

    1. ZollMaut[8] = CreateDynamicObject(968, X,Y,Z, 0.000000, 90.000000, -11.400006, -1, -1, -1, 300.00, 300.00);
    2. ZollMaut[9] = CreateDynamicObject(968, X,Y,Z, 0.000000, 88.000000, 168.599990, -1, -1, -1, 300.00, 300.00);

    Und so bewege ich sie, ich habe sogar getestet z.b case 8: haut noch mal einen print raus, dass er es überhaupt durchführt.

    Quellcode

    1. case 4: MoveDynamicObjectRot(ZollMaut[i], 0.0, 90.0-90, 489.600006, true);
    2. case 5: MoveDynamicObjectRot(ZollMaut[i], 0.0, 90.0-90, 669.599975, true);
    3. case 8: MoveDynamicObjectRot(ZollMaut[i], 0.0, 90.0-90, -11.400006, true);
    4. case 9: MoveDynamicObjectRot(ZollMaut[i], 0.0, 88.0-90, 168.599990, true);


    Ich vermute, dass die Rotation sehr sehr langsam verläuft, bei den Testversuchen habe ich mich mal rausgetabt und später als ich drin war waren diese verschoben.
    Ich entfern die letzen beiden einfach, dann können die mir auch keine Kopfschmerzen machen. Scheint zu komisch zu sein.

    Ich weiß, dass ich weiß, dass ich nichts weiß.
  • Neu

    BrightLeaN schrieb:

    Ich vermute, dass die Rotation sehr sehr langsam verläuft, bei den Testversuchen habe ich mich mal rausgetabt und später als ich drin war waren diese verschoben.
    Ja Teste das mal bitte also tab mal nicht raus währe gut es zu wissen
    //edit ich habe gerade nochmal getestet ich habe mit 10 Schranken kein Problem.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von iTsRooT ()

  • Neu

    Yip, wie ich es geahnt habe.
    Neue Schranken gesetzt, mal ausprobiert geht wieder nicht, dein Beitrag gesehen. Wieder reingetabbt sie sind auf.
    Heißt es kann nur daran liegen, dass sie sich richtig langsam öffnen, anders kann ich mir das nicht erklären?

    Komisch ist, dass ich es nicht beobachten kann, es bewegt sich gar nicht. Habe es mal versucht zu beobachten, scheint so zu sein, dass es 20 Sekunden dauert, dass sich das teil 15 Grad bewegt.
    Die 15 Grad (geschätzt) werden sofort bewegt und in keiner smoothen Animation.

    Tab ich mich rein und raus scheint es halb zu gehen, woran liegt das?

    Ich weiß, dass ich weiß, dass ich nichts weiß.