[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
  • habe ich doch das kommt immer noch


    C:\Users\Media Markt\Desktop\Virtual Roleplay Selfmade\Projekt\gamemodes\gr.pwn(13079) : warning 217: loose indentation
    C:\Users\Media Markt\Desktop\Virtual Roleplay Selfmade\Projekt\gamemodes\gr.pwn(13080) : error 029: invalid expression, assumed zero
    C:\Users\Media Markt\Desktop\Virtual Roleplay Selfmade\Projekt\gamemodes\gr.pwn(13080) : error 017: undefined symbol "string"
    C:\Users\Media Markt\Desktop\Virtual Roleplay Selfmade\Projekt\gamemodes\gr.pwn(13080) : warning 215: expression has no effect
    C:\Users\Media Markt\Desktop\Virtual Roleplay Selfmade\Projekt\gamemodes\gr.pwn(13080) : error 001: expected token: ";", but found "]"
    C:\Users\Media Markt\Desktop\Virtual Roleplay Selfmade\Projekt\gamemodes\gr.pwn(13080) : fatal error 107: too many error messages on one line


    Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    4 Errors.

  • Wahrscheinlich musst du die Klammer einfach einrücken, falls über dem format noch Code ist, wie z.B. irgendwelche Befehle.

    }
    new string[144];
    format(string, sizeof(string), "[FEHLER]Der Befehl %s existiert nicht.", cmdtext);
    return SCM(playerid,TESTFARBE, string);
    }


    warning 217: loose indentation
    Der Warning bedeutet nämlich, das etwas nicht richtig eingerückt ist.

  • if(strcmp(cmdtext, "/stop", true) == 0)
    {
    if(GetPVarInt(playerid,"Tazerd") == 1 || GetPVarInt(playerid,"Verletzt") == 1) return SendClientMessage(playerid,ROT,"Du kannst diese Animation jetzt nicht stoppen!");
    {
    ClearAnimations(playerid);
    StopLoopingAnim(playerid);
    SetPlayerSpecialAction(playerid,0);
    return 1;
    }
    }
    new string[144];
    format(string, sizeof(string), "[FEHLER]"#WEIß" Der Befehl %s existiert nicht.",cmdtext);
    return SCM(playerid,TESTFARBE, string);
    }


  • if(strcmp(cmdtext, "/stop", true) == 0)
    {
    if(GetPVarInt(playerid,"Tazerd") == 1 || GetPVarInt(playerid,"Verletzt") == 1) return SendClientMessage(playerid,ROT,"Du kannst diese Animation jetzt nicht stoppen!");
    {
    ClearAnimations(playerid);
    StopLoopingAnim(playerid);
    SetPlayerSpecialAction(playerid,0);
    return 1;
    }
    }
    new string[144];
    format(string, sizeof(string), "[FEHLER]"#WEIß" Der Befehl %s existiert nicht.",cmdtext);
    return SCM(playerid,TESTFARBE, string);
    }

  • Halli Hallo!


    Mich würde mal interessieren wie man das Speichern von Spielerdaten mit MySQL am besten regelt.
    Momentan wird bei mir noch nur beim Disconnect gespeichert, dies reicht natürlich nicht. Macht man das jetzt mit nem Timer der in regelmäßigen Zeitabständen speichert?
    Falls ja interessiert mich was da ein guter Zeitraum zwischen den Speicherungen wäre (man will ja den Server nicht überlasten), falls nicht bin ich für alle Vorschläge offen.


    MfG

    Je mehr Käse, desto mehr Löcher.
    Je mehr Löscher, desto weniger Käse.
    Ergo: Je mehr Käse, desto weniger Käse.


  • Vielen Dank, so werde ich es machen :)


    Zu einem anderen Problem:
    Ich will erreichen, dass man ATMs aktivieren kann sobald man in deren nähe ist. Leider wird die Abfrage bei vielen ATMs sehr lang, gibt es da eine effizientere Weise dies abzufragen?


    if (IsPlayerInRangeOfPoint(playerid, 0.5, 1014.1, -928.70001, 41.9) || IsPlayerInRangeOfPoint(playerid, 0.5, 2561.6873,1962.0399,-5.4011) || IsPlayerInRangeOfPoint(playerid, 0.5, 2561.6875,1960.7579,-5.4011) || IsPlayerInRangeOfPoint(playerid, 0.5, 2561.6873,1959.3591,-5.4011) || IsPlayerInRangeOfPoint(playerid, 0.5, 2561.6868,1958.0519,-5.4011) || IsPlayerInRangeOfPoint(playerid, 0.5, 2561.6860,1956.4935,-5.4011))

    Je mehr Käse, desto mehr Löcher.
    Je mehr Löscher, desto weniger Käse.
    Ergo: Je mehr Käse, desto weniger Käse.


  • Nutze ein Array mit den Daten:
    new Float:ATMPos[][] =
    {
    {1014.1, -928.70001, 41.9},
    {2561.6873,1962.0399,-5.4011} //Das letzte Item darf kein Komma haben
    };


    Und dann eine Schleife:
    for(new i=0; i<sizeof(ATMPos); i++)
    {
    if(IsPlayerInRangeOfPoint(playerid, 0.5, ATMPos[i][0], ATMPos[i][1], ATMPos[i][2]))
    {
    //In der Nähe
    return 1;
    }
    }
    //Nicht in der Nähe



    EDIT:
    Merlin13: Öh ja, natürlich mit dem i-Index. Gut, dass du es hinbekommen hast! :thumbup:

    3HZXdYd.png

    Einmal editiert, zuletzt von Jeffry ()

  • Vielen Dank!
    Ich hab' deinen Code noch leicht verändert damit er auch funktioniert:


    for(new i=0; i<sizeof(ATMPos); i++)
    {
    if(IsPlayerInRangeOfPoint(playerid, 0.5, ATMPos[i][0], ATMPos[i][1], ATMPos[i][2]))
    {
    //In der Nähe
    return 1;
    }
    }
    (keine Ahnung warum die ersten {} automatisch eingeschoben werden)


    Jetzt läuft alles einwandfrei, danke!


    Jeffry: Neue Frage ^^


    Das implementieren des Bank-Interiors hat einwandfrei funktioniert, um die Übersicht zu behalten habe ich mir dann ein Filterscript für alles gemappte erstellt. Leider existiert das Interior nun nicht mehr. Kannst du mir da evtl. meinen Fehler aufzeigen?


    #include <a_samp>


    #if defined FILTERSCRIPT


    public OnFilterScriptInit()
    {
    //Hier das, was sonst bei "OnGameModeInit()" im gamemode stand (also das Mapping).
    return 1;
    }


    public OnFilterScriptExit()
    {
    return 1;
    }
    #else
    #endif

    Je mehr Käse, desto mehr Löcher.
    Je mehr Löscher, desto weniger Käse.
    Ergo: Je mehr Käse, desto weniger Käse.


    Einmal editiert, zuletzt von Merlin13 ()

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