Beiträge von Shine

    BlackAce ist mal wieder schneller wie der Wind..
    Ums nochmal auszuschreiben, weil ichs nicht umsonst getippt haben will...

    timerbombe = SetTimer("bombe",40000, false);
    SendClientMessage(playerid,GREEN,"Du hast die Bombe gelegt!{03BCA0}(+1500$)");
    GivePlayerMoney(playerid,1500);
    SendClientMessageToAll(YELLOW,sprintf("%s hat die Bombe gelegt!",GetName(playerid)));
    for(new s = 0; s < MAX_PLAYERS; s++)
    {
    SetPVarInt(s,"Bombegelegt",1);
    }

    Zitat

    Wieso bekomme ich soviele Messages ?

    Vielleicht, weil du dir in der Schleife eine Message ausgibst? o_O

    for(new s = 0; s < MAX_PLAYERS; s++)
    {
    timerbombe = SetTimer("bombe",40000, false);
    SendClientMessage(playerid,GREEN,"Du hast die Bombe gelegt!{03BCA0}(+1500$)");
    GivePlayerMoney(playerid,1500);
    SendClientMessageToAll(YELLOW,sprintf("%s hat die Bombe gelegt!",GetName(playerid)));
    SetPVarInt(s,"Bombegelegt",1);


    Ich weiß gerade nicht einmal, warum du da eine Schleife drin hast. Klär mich auf.

    Bei mir war es en bisle anders xD Kein Mr.Monat oder so..
    Habe damals ganz normal auf nem Server gespielt, bis der Serverowner kein Bock mehr hatte. Das Script llief eig., keine argen Bugs bekannt.
    Er gab mir dann seine Zugangsdaten fürn FTP und so, und bat mich das weiter zu machen für die wenigen Leute die da gespielt haben xD


    Dann nach kurzer Weile wurde ein Bug entdeckt...weiß gar nicht mehr welcher...
    Den musste ich, ohne Ahnung vom Scripten, fixen xD Zum Glück konnte ich auf C programmieren (zum Glück wegen der Syntax, Logik usw...ist ja nun wirklich gleich...)
    und da fiel es mir wirklich leicht. Brauchte eig. immer nur die Parameter von den Funktionen, dann konnte ich die meisten kleinen Sachen schon...
    Und dann hab ich mich immer weiter durch dieses Forum hier weiter gebildet, aber nie fragen müssen <3
    Das meiste wurde irgendwo schon erklärt, und dann konnte ich es auch...
    Und so gehts auch heute noch weiter. Ich lerne durch das Forum hier immer wieder ein bisschen dazu.


    Tja, vom Kackboon zum fortgeschrittenen Anfänger. xD

    Doch es geht mit MoveObject.
    Die Parameter sind:
    (objectid, Float:X, Float:Y, Float:Z, Float: Speed, Float:RotX, Float:RotY, Float:RotZ)


    D.h. bei Speed setzt du die Geschwindigkeit rein. X,Y,Z lässt du, hinten die Rotation je nachdem welche du brauchst auf 90 (für den Winkel)

    Okay.
    Da du das mit der Schleife nun verstanden hast, einen Schritt weiter.
    Warum möchtest du die Schleife für jeden Spieler durchlaufen lassen, wenn du die Spieler nacher sowieso filterst?
    Viel schneller geht es, wenn du die Schleife möglichst selten durchlaufen lässt, eben nur dann wenn es nötig ist.


    Das heißt, du kannst es anders drehen:

    if(newstate==PLAYER_STATE_DRIVER)
    {
    if(pInfo[playerid][Fraktion] != 1)
    {
    for(new i=0; i<sizeof(SFPD_CARS); i++)
    {
    if(GetPlayerVehicleID(playerid)==SFPD_CARS[i])
    {
    RemovePlayerFromVehicle(playerid);
    SendClientMessage(playerid,COLOR_RED,"Du bist nicht beim SFPD!");
    return 1;
    }
    }
    }
    }
    Jetzt wird die schleife nämlich nur für alle durchlaufen, die nicht in der Fraktion 1 sind.
    Ist ja dann weniger, als wenn die Schleife auch für die Leute in Fraktion 1 durchläuft, obwohl es auf diese eh keinen Effekt haben soll. ;)
    Immer ein bisschen überlegen: Macht es sinn, einen Code für bestimmte Spieler mit aufzurufen? Wenn nein, vorher filtern.


    LG,
    Shine

    Hinter eine Schleife kommt kein Semikolon.
    for(new i=0; i<sizeof(SFPD_CARS); i++)
    Da hinter kommen geschweifte Klammern! { } <-- Diese.
    Und in diese Klammern kommt das, was du in der Schleife machen möchtest.


    Und auf der 1. Seite dieses Threads, der letzte Beitrag. da habe ich es richtig hinein geschrieben. Aber okay, nochmal für dich:


    if(newstate==PLAYER_STATE_DRIVER)
    {
    for(new i=0; i<sizeof(SFPD_CARS); i++)
    {
    if(GetPlayerVehicleID(playerid)==SFPD_CARS[i])
    {
    if(pInfo[playerid][Fraktion] != 1)
    {
    RemovePlayerFromVehicle(playerid);
    SendClientMessage(playerid,COLOR_RED,"Du bist nicht beim SFPD!");
    return 1;
    }
    }
    }
    }
    Und lass das Semikolon da weg!

    Vorhin war nach der Schleife noch ein Semikolon. Den hatte ich kurz danach rauseditiert.
    Ich glaube, du hast es noch mit dem Semikolon. Kopiere als bitte nochmal das, was ich in meinem letzten Beitrag geschrieben habe.


    if(newstate==PLAYER_STATE_DRIVER)
    {
    for(new i=0; i<sizeof(SFPD_CARS); i++)
    {
    if(GetPlayerVehicleID(playerid)==SFPD_CARS[i])
    {
    if(pInfo[playerid][Fraktion] != 1)
    {
    RemovePlayerFromVehicle(playerid);
    SendClientMessage(playerid,COLOR_RED,"Du bist nicht beim SFPD!");
    return 1;
    }
    }
    }
    }

    Dome331? Nett dass du helfen willst, wirklich, aber wenn du es selber nicht kannst (merkt man nunmal nach 3 falschen ''Lösungs''ansätzen), lass es doch lieber...


    Die For-Schleife hat einen bestimmten ''Aufbau'', um es dir zu erklären. Dieser Aufbau geht so:
    for ( Initialisierung; Bedingung; Schrittweite )


    Wenn du das Semikolon nach ''sizeof(SFPD_CARS)'' entfernst, hast du keine Schritte mehr.


    Der Aufbau der Schleife war von Anfang an richtig.
    for(new i=0; i<sizeof(SFPD_CARS); i++) Der Fehler liegt definitiv nicht am Aufbau der Schleife!


    //edit: pwn-Tag fail xD

    Bei dem ersten hast du in dem ''else''-Zweig ein ''return 1;'' drin. Ich nehme an, bei dem ''if'' da drüber auch.
    D.h. er kann die nächsten Zeilen nicht erreichen.
    Mach es so:

    }
    else
    {
    gPlayerAccount[playerid] = 0;
    SendClientMessage(playerid, COLOR_WHITE,"Wie ich sehe bist du neu auf unserem Server.");
    SendClientMessage(playerid, COLOR_WHITE,"Drücke 'T' und tippe /register [Dein Passwort] ein.");
    SendClientMessage(playerid, COLOR_WHITE,"Bitte behalte dein Passwort nur für dich!");
    SendClientMessage(playerid, COLOR_WHITE,"Die Admin´s werden dich nie danach fragen!");
    }
    pBombStatus[playerid] = 0;
    pPlacedBomb[playerid] = 0;
    PlaceBombFunc[playerid] = 0;
    return 1;
    }Und nimm bei dem ''if'' da drüber ebenfalls das ''return 1;'' weg!


    Zweiter Kasten: richtig einrücken. Ob der Fehler dort liegt weiß ich nicht, wir sehen ja nicht welche Zeilen deine Codes haben. Fakt ist, bei dir war es 'komisch' eingerückt.

    {
    if(IsPlayerConnected(GettingCK[playerid]))
    {
    SendClientMessage(GettingCK[playerid], taxi, "Dein Kunde hat dem Server verelassen, versuche es später erneut!");
    OnCK[GettingCK[playerid]] = 999;
    }
    }
    if(TransportCost[playerid] > 0 && TransportDriver[playerid] < 999)
    {
    if(IsPlayerConnected(TransportDriver[playerid]))
    {
    new string[64];
    TransportMoney[TransportDriver[playerid]] += TransportCost[playerid];
    TransportTime[TransportDriver[playerid]] = 0;
    TransportCost[TransportDriver[playerid]] = 0;
    format(string, sizeof(string), "~w~Passenger left~n~~g~Earned %d$",TransportCost[playerid]);
    GameTextForPlayer(TransportDriver[playerid], string, 5000, 1);
    }
    }


    Ändere dir beiden mal und schreibe als Antwort:
    - Die restlichen Warnings
    - Den dazugehörigen Code
    - Kennzeichne die Zeilen wo die Warnings kommen!! Einfach hinter die Zeile//Zeile xy

    Zitat

    Also als letzen Test, lasse ich den PC offen auf den Boden stehen.

    Würde ich von abraten.
    Dein Gehäuse sorgt (meistens..) für einen ''Weg'', um warme Luft hinaus zu befördern und mit kalter Luft zu versorgen.
    Wenn du deinen Rechner immer offen lässt, gibt es keinen Weg mehr.
    Würde eher das Gegenteil von dem bewirken, als das was du mit dem ''offen lassen'' bewirken möchtest.
    Mehr als eine neue Wärmeleitpaste kann ich so auch nicht empfehlen...
    Und schön vorsichtig machen :>

    zum thema tauchen. wenn man drunter her taucht kann es gut möglich sein, dass der boden durchsichtig ist. aber warum sollte sich jemand die mühe machen dahin zu schwimmen, bzw. tauchen???

    Du weißt ja gar nicht, auf was für Ideen manche User kommen denen langweilig ist....
    Es kommt mir extrem auf Sauberkeit an. Daher darf es auch von unten nicht durchsichtig sein ;)


    Und die Zäune damit keiner rein kommt? Helikopter ftw. :D

    Och nö, dann kommt wieder sowas wie 'Bergziegen Reallife' ...


    Euch muss der Name gefallen. Er muss den Server in irgendeiner Weise repräsentieren.
    Schließlich ist das erste, was man von eurem Server erfährt der Name.
    Er sollte leicht zu merken sein und etwas mit euch zu tun haben..

    Mein Fahrlehrer hat immer ein bisschen gemeckert, aber grundsätzlich ist es denen egal.
    Du hast keine Pflicht jede Woche dort zu sein.


    Du hast, soweit ich weiß, nur eine Zeit in der du den Schein (bzw. erst mal die Theorieprüfung) bestanden haben musst, und die beträgt über ein Jahr..


    Ich war, weil ich einfach nur faul war & kein Bock auf die öden Theoriestunden hatte, ca. 4 Monate nicht dort...
    Mach dir also keinen Kopf xD


    //edit: Es gab für mich übrigens noch ein ''Jaaa er lebt noch''-Gesang als ich wieder aufgetaucht bin.
    Dann hab ich ein paar Fragebögen bei dem gemacht, die Prüfung bestanden und die Praxis danach auch durchgezogen....dann hatte ich den Schein.


    Als Tipp kann ich dir nur geben, ab und zu so ein Fragebogen zu machen und ein bisschen zu üben (ich weiß, ist immer doof, fand ich auch xD Muss aber sein).

    Gefällt mir auch sehr gut.
    Wo ich einen klitze kleinen Kritikpunkt äußern möchte, sind die Zäune außen rum.
    Die passen zu einer ''Schicki micki Insel'' nicht wirklich.


    Zudem würde ich gerne wissen, wie das aus anderen Winkeln aussieht (die Map vom Wasser direkt aus betrachtet, oder wenn man taucht).
    Nicht, dass der Boden von unten durchsichtig ist oder so.. ^^

    Wenn du es nicht immer, sondern nur bei bestimmten Programmen haben möchtest, reicht auch
    Rechtsklick auf das Programm -> Eigenschaften -> Kompatibilität (glaube ich..) -> Programm immer als Administrator ausführen. (oder so ähnlich, da musst du ein Häkchen rein machen)


    So mach ich es zumindest immer...dann kommt bei mir auch kein Fenster mehr und ich muss nicht in allgemeinen Einstellungen herum pfuschen.


    //edit: ''Kompatibilität'' vergessen...