[SAMMELTHREAD] Kleine Scripting Fragen

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
  • Dann solltest du vielleicht mal Stunden und Minuten deklarieren.

    Nicht 100%-ig



    Werde mich demnächst besser ausdrücken. Danke euch ;)

  • Und schon folgt die nächste Frage:


    Habe 2 Filterscripts erstellt, Paketbote und Zeitungsjunge.
    Beide nach gleichem System mit dem Abfahren von Checkpoints und bei Erreichen der Parkposition wird der Spieler aus dem Fahrzeug entfernt.


    Mein Problem liegt jetzt darin, dass ich den Job als Zeitungsjunge einwandfrei abfahren kann, aber bei dem Paketboten schmeißt er mich, bei Erreichen des ersten Checkpoints, sofort aus dem Auto und zeigt die Nachricht an, die am Ende vom Zeitungsjungenjob eintritt.


    Gibts da irgendein globales Problem, dass er die Checkpoints der beiden Fliterscripts verwechselt oder braucht ihr unbedingt die beiden, fehlerfreien Scripts ums euch anzusehen?

  • new waffe = GetPlayerWeapon(playerid);
    if(waffe == 1 || waffe == 2 || waffe == 3 || waffe == 4 || waffe == 5| waffe == 6 || waffe == 7 || waffe == 8 || waffe == 9 || waffe == 10
    || waffe == 11 || waffe == 12 || waffe == 13 || waffe == 14 || waffe == 15 || waffe == 16 || waffe == 17 || waffe == 18 || waffe == 19 || waffe == 20
    || waffe == 21 || waffe == 22 || waffe == 23 || waffe == 24 || waffe == 25 || waffe == 26 || waffe == 27 || waffe == 28 || waffe == 29 || waffe == 30
    || waffe == 31 || waffe == 32 || waffe == 33 || waffe == 34 || waffe == 35 || waffe == 36 || waffe == 37 || waffe == 38 || waffe == 39 || waffe == 40
    || waffe == 41 || waffe == 42 || waffe == 43 || waffe == 43 || waffe == 46)
    {
    errors:

    Zeile (2) : warning 212: possibly unintended bitwise operation
    Zeile (2) : Variable wurde falsch definiert (Float,Integer[...])

  • Ich fahre auf den CP zu, werd rausgeschmissen und das Auto rollt weiter, nach gewisser Zeit respawnt es dann wieder an der angedachten Position.


    Hier der letzte Checkpoint vom Paketboten:



    public OnPlayerEnterCheckpoint(playerid)
    {
    new Lohn = random(500)+500;
    new string[256];



    (... hier sind die vorigen Checkpoints! )

    else if(Checkpointp[playerid] == 10)
    {
    DisablePlayerCheckpoint(playerid); //FCP10
    SendClientMessage(playerid,gruen,"|--Du hast den Job als Paketbote erfolgreich beendet!");
    GivePlayerMoney(playerid,Lohn);
    format(string, sizeof(string), "|--Dir wurden %d$ gutgeschrieben.",Lohn);
    SendClientMessage(playerid,geldgruen,string);
    Pmission[playerid] = 0;
    RemovePlayerFromVehicle(playerid);
    }
    return 1;
    }

  • Tommyx3 warum so umständlich?
    if(waffe <= 1 && waffe <= 43 || waffe == 46)


    Zitat

    Ich fahre auf den CP zu, werd rausgeschmissen und das Auto rollt weiter, nach gewisser Zeit respawnt es dann wieder an der angedachten Position.


    Du müsstest schon dazu sagen was daran nicht richtig ist^^


    //E: arr danfai war schneller ^^

    The fact is, I am right. And if you think I'm wrong, you are wrong.

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • danfai:
    Ich weiß, das ist auch so gedacht, dass der Spieler bei Erreichen der Parkposition das Auto automatisch verlässt... Mein Problem ist aber, dass der Server mir erlaubt den Paketbotenjob anzunehmen, mir den ERSTEN CP anzeigt, ich hinfahre und der Server dann quasi das gesamte Ende vom Zeitungsjungenjob anwendet, also mich aus dem Auto rausschmeißen, mir Gehalt überweisen und die Nachricht des erfolgreichen Beendens, schickt.


    maddin: Ein paar Posts weiter oben(bzw auch hier in diesem) findest du eine detaillierte Beschreibung.

  • Kann es vielleicht sein, dass der CheckPoint mit der ID 10 der erste CheckPoint ist, der dem Paketenjob angehört?
    Eine Empfehlung um meiner Vermutung vorzubeugen:
    Benutze anstatt von genauen Werten (zB 10) eine Variable oder ein Array (zB CP10 oder CP[10])


    Ansonsten benötige ich mehr Code, vor allem die Erstellung der CheckPoints.



    /EDIT: Rechtschreibung

  • stock BanPlayer(playerid, Reason[], AdminID)
    {
    //Anfang


    format(MySQL_Query,sizeof(MySQL_Query),"INSERT INTO `bans` (Banname, Banreason, Admin) VALUES ('%s','%s','%s')",BanName,Reason,AdminName);
    mysql_query(MySQL_Query);


    //Rest
    return 1;
    }


    Kann mir jmd sagen, warum das nicht funktioniert? :(
    //Edit: also wenn ich dann aus der tabelle etwas auslesen möchte, wird angezeigt, dass die leer ist

  • Hier die wichtigen Ausschnitte aus dem Script:



    new CheckpointZj[MAX_PLAYERS];
    new Zjmission[MAX_PLAYERS];


    forward Zjmissionfail(playerid);
    forward RemovePlayerZj(playerid);



    AddStaticVehicle(481,2148.2803,-1761.2505,13.0660,315.7883,46,46); // Zjbike 1



    public OnPlayerCommandText(playerid, cmdtext[])
    {
    new vehicleid = GetPlayerVehicleID(playerid);
    new model = GetVehicleModel(vehicleid);


    if (strcmp("/Zeitungsjunge", cmdtext, true, 10) == 0)
    if(IsPlayerInRangeOfPoint(playerid,10.0,2146.4231,-1759.4010,13.5488))
    {
    if(model == 481)
    {
    SendClientMessage(playerid, gruen, "|--Du bist nun Zeitungsjunge in Ganton.");
    SendClientMessage(playerid, gruen, "|--Fahr entlang der angezeigten Route");
    SendClientMessage(playerid, gruen, "|--und liefer dort deine Zeitungen ab.");
    SetPlayerCheckpoint(playerid,2154.3518,-1789.3604,13.0862,5.0);
    CheckpointZj[playerid] = 11;
    Zjmission[playerid] = 1;
    return 1;
    }
    else
    {
    SendClientMessage(playerid, 0xCC7733FF, "**Du sitzt auf keinem Fahrrad für Zeitungsjungen!");
    }
    }
    else if(model == 481)
    {
    SendClientMessage(playerid, 0xCC7733FF, "**Du befindest dich nicht an der Startposition.");
    }
    return 1;
    }



    public OnPlayerEnterCheckpoint(playerid)
    {
    new randomtrinkgeld = random(2)-1;
    new Trinkgeld = random(15);
    new string[256];



    if(CheckpointZj[playerid] == 11)
    {
    DisablePlayerCheckpoint(playerid);
    SetPlayerCheckpoint(playerid,2153.5623,-1807.8582,13.1118,5.0); //CP1
    CheckpointZj[playerid] = 12;


    if(randomtrinkgeld != 0)
    {
    }
    else if(randomtrinkgeld != 1)
    {
    GivePlayerMoney(playerid,Trinkgeld);
    format(string, sizeof(string), "|--Du hast %d$ Trinkgeld erhalten.",Trinkgeld);
    SendClientMessage(playerid,geldgruen,string);
    }
    }

    else if(CheckpointZj[playerid] == 12)
    {
    DisablePlayerCheckpoint(playerid);
    SetPlayerCheckpoint(playerid,2142.9766,-1761.1207,13.5508,5.0); //CP1
    CheckpointZj[playerid] = 13;


    if(randomtrinkgeld != 0)
    {
    }
    else if(randomtrinkgeld != 1)
    {
    GivePlayerMoney(playerid,Trinkgeld);
    format(string, sizeof(string), "|--Du hast %d$ Trinkgeld erhalten.",Trinkgeld);
    SendClientMessage(playerid,geldgruen,string);
    }
    SendClientMessage(playerid, gruen, "Fahr´ zurück und stell dein Fahrrad in der Markierung ab.");
    }

    else if(CheckpointZj[playerid] == 13)
    {
    DisablePlayerCheckpoint(playerid); //CP10
    SendClientMessage(playerid,gruen,"|--Du hast deine Arbeit als Zeitungsjunge erfolgreich beendet!");
    GivePlayerMoney(playerid,500);
    SendClientMessage(playerid,geldgruen, "|--Dir wurden 500$ Gehalt gutgeschrieben.");
    Zjmission[playerid] = 0;
    RemovePlayerFromVehicle(playerid);
    }
    return 1;
    }



    public Zjmissionfail(playerid)
    {
    new vehicleid = GetPlayerVehicleID(playerid);
    new model = GetVehicleModel(vehicleid);


    if(model == 481)
    {
    }
    else
    {
    SendClientMessage(playerid,rot,"**Job als Zeitungsjunge gescheitert!");
    DisablePlayerCheckpoint(playerid);
    Zjmission[playerid] = 0;
    }
    return 1;
    }


    public RemovePlayerZj(playerid)
    {
    new vehicleid = GetPlayerVehicleID(playerid);
    new model = GetVehicleModel(vehicleid);


    if(model == 481)
    if(Zjmission[playerid] == 0)
    {
    RemovePlayerFromVehicle(playerid);
    SendClientMessage(playerid,rot,"**Du hast keinen Job als Zeitungsjungen gestartet!");
    }
    return 1;
    }




    EDIT: Der Paketboten-Script ist genau so aufgebaut wie dieser hier, nur ohne die Trinkgeldfunktion.

  • danfai:
    Die beiden Scripts an sich sind auch fehlerfrei und machen keine Probleme beim compilen. Mein Problem besteht weiterhin dadrin, dass der Server die 2 Filterscripts verwechselt. Der Zeitungsjungenjob geht einwandfrei, aber starte ich den Paketbotenjob, geht erst alles richtig, also Nachrichten,etc. und wenn ich den 1.CP erreiche dann kommt quasi das Ende vom Paketbotenjob, sprich er schmeißt mich aus dem Fahrzeug, gibt mir Geld und sagt, ich hätte den Job des Zeitungsjungen erfolgreich beendet.

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen