[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
  • Sorry bin ein bisschen durcheinander:


    Habe das glaub ich komplett falsch:


    Oben im Script


    Spoiler anzeigen

    forward lookup();

    Spoiler anzeigen
    public lookup() {
    for(new i; i < MAX_PLAYERS; i++) {
    if(!IsPlayerConnected(i)) continue;
    if(!IsPlayerInRangeOfPoint(i,30,1795.6313,-2453.5166,173)) continue;
    SetPlayerPos(i,30,1770.1097,-2510.1968,177);
    }
    }


    OnGameModeInit:


    Spoiler anzeigen

    SetTimer("lookup",1000, true);
    IsPlayerInRangeOfPoint(30,1795.6313,-2453.5166,173);
    SetPlayerPos(30,1770.1097,-2510.1968,177);


    Was muss ich entfernen von beiden?


    Mit freundlichen Grüßen
    JustMe.77 8)

  • Alles klar, ich erhalte diese Warnung:


    C:\Users\Dave\Desktop\Hoe's Wonderland\gamemodes\LnD.pwn(22) : warning 202: number of arguments does not match definition
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    1 Warning.


    Die Zeile sieht so aus:
    SetPlayerPos(i,30,1770.1097,-2510.1968,177);


    Ich bin mir ziemlich sicher das liegt an meinen Koordinaten, ich hab vergessen wie man die X Y und die Z Achse entnimmt.



    Von hier habe ich die genommen:


    AddPlayerClass(30,1770.1097,-2510.1968,177.2891,178.9054,0,0,0,0,0,0); // Drinnen


    Mit freundlichen Grüßen
    JustMe.77 8)


  • Ich glaube da fehlt ein
    PlayerSpectatePlayer(playerid, pID);


    Zwar keine Fehlermeldung, jedoch funktioniert es immer noch nicht.
    Jeffry:


    Viele Grüße

    Einmal editiert, zuletzt von Aviero ()

  • ocmd:tv(playerid,params[])
    {
    new pID,string[128];
    if(!isAdmin(playerid,1))return SendClientMessage(playerid,COLOR_GREY,"Du darfst diesen Befehl nicht benutzen.");
    if(sscanf(params,"i",pID))return SendClientMessage(playerid,COLOR_GREY,"Verwendung: /tv [Spieler]");
    if(!IsPlayerConnected(pID))return SendClientMessage(playerid,COLOR_GREY,"Dieser Spieler ist nicht online.");
    if(pID == playerid)return SendClientMessage(playerid,COLOR_GREY,"Du kannst dich nicht selbst beobachten.");
    TogglePlayerSpectating(playerid,1);
    PlayerSpectatePlayer(playerid, pID);
    format(string,sizeof(string),"Du beobachtest nun Spieler: %s.",PlayerName(pID));
    SendClientMessage(playerid,COLOR_BLUE,string);
    return 1;
    }
    Sollte schon so aussehen.


    Nur bedenke, das die Spieler sich in der gleichen Virtuellen Welt und im selben Interior befinden müssen.

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

    Margarete Stokowski

  • Ich kann den Befehl irgendwie nur mit der ID des Spielers ausführen, also statt: /tv Aviero muss ich die ID nehmen, also bspw: /tv 88. Möchte jedoch, dass beides funktioniert.


    und..


    habe mal probiert das in einen Befehl zu packen, hat auch funktioniert, will jedoch, dass die Person die Tvt hat wieder in seine Ausgangsposition (die Position, von wo er angefangen hat zu tvn) gesetzt wird.
    Ich weiß, dass ich die Koordinaten des Spielers in einer Variable speichern muss, weiß jedoch nicht richtig wie ich das umsetzen soll.


    Danke im Voraus :)


    Aktueller Befehl:



    ocmd:tv(playerid,params[])
    {
    if(isAdmin(playerid,1))
    {
    if(GetPVarInt(playerid, "tvmodus") == 0){
    new pID,string[128];
    if(sscanf(params,"i",pID))return SendClientMessage(playerid,COLOR_GREY,"Verwendung: /tv [Spieler]");
    if(!IsPlayerConnected(pID))return SendClientMessage(playerid,COLOR_GREY,"Dieser Spieler ist nicht online.");
    if(pID == playerid)return SendClientMessage(playerid,COLOR_GREY,"Du kannst dich nicht selbst beobachten.");
    TogglePlayerSpectating(playerid,1);
    PlayerSpectatePlayer(playerid, pID);
    format(string,sizeof(string),"Du beobachtest nun Spieler: %s.",PlayerName(pID));
    SendClientMessage(playerid,COLOR_BLUE,string);
    SetPVarInt(playerid,"tvmodus",1);
    }else{
    TogglePlayerSpectating(playerid,0);
    SetCameraBehindPlayer(playerid);
    SendClientMessage(playerid,COLOR_BLUE,"Du hast die Beobachtung beendet.");
    SetPVarInt(playerid,"tvmodus",0);
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid,COLOR_GREY,"Du darfst diesen Befehl nicht benutzen.");
    }
    return 1;
    }

  • Kann man das irgendwie abkürzen?


    if(sInfo[i][pFrak] == 6 || sInfo[i][pFrak] == 7 || sInfo[i][pFrak] == 8 || sInfo[i][pFrak] == 9 || sInfo[i][pFrak] == 10 || sInfo[i][pFrak] == 11 || sInfo[i][pFrak] == 12 || sInfo[i][pFrak] == 13)



    @Aviero
    das "i" in der sscanf abfrage zu einem "u".


    Und die Koordinaten würde ich (könnte man) mit PVarFloat speichern und danach wieder setzen.

    Mit freundlichen Grüßen,
    Derakar

  • Beitrag von Derakar ()

    Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.
  • Hallo,
    kleines Problem:
    Mein Script findet in der Datenbank kein Haus inder Tabelle houses. Abwohl in der Datenbank sich ein haus mit der id 1 befindet.


    public mysql_CheckHaus(id)
    {
    new Query[128], debug4[100];
    format(Query, sizeof(Query), "SELECT * FROM houses WHERE id = '%i'", id);
    mysql_query(Query);

    mysql_store_result();
    format(debug4, sizeof(debug4),"Result von %i: %i", id, mysql_num_rows());
    print(debug4);
    return mysql_num_rows();
    }


    stock HausLaden()
    {
    new debug2[400], temp[200];
    for(new x=0;x<MAX_HAUS;x++)
    {


    if(mysql_CheckHaus(x)) {
    HausInfo[x][hErstellt] = 1;
    /*temp = mysql_GetStr_int("houses", "user", "id", x);
    format(HausInfo[x][hUser], 100, "%s", temp);*/
    format(HausInfo[x][hUser], 64, "%s", mysql_GetStr_int("houses", "user", "id", x));
    format(HausInfo[x][hEnterx], 64, "%f", mysql_GetFloat_int("houses", "enterx", "id", x));
    format(HausInfo[x][hEntery], 64, "%f", mysql_GetFloat_int("houses", "entery", "id", x));
    format(HausInfo[x][hEnterz], 64, "%f", mysql_GetFloat_int("houses", "enterz", "id", x));
    format(HausInfo[x][hIntx], 64, "%f", mysql_GetFloat_int("houses", "intx", "id", x));
    format(HausInfo[x][hInty], 64, "%f", mysql_GetFloat_int("houses", "inty", "id", x));
    format(HausInfo[x][hIntz], 64, "%f", mysql_GetFloat_int("houses", "intz", "id", x));
    HausInfo[x][hInt] = mysql_GetInt_int("houses", "int", "id", x);
    HausInfo[x][hMiete] = mysql_GetInt_int("houses", "miete", "id", x);
    HausInfo[x][hRent] = mysql_GetInt_int("houses", "rent", "id", x);
    HausInfo[x][hGesperrt] = mysql_GetInt_int("houses", "gesperrt", "id", x);
    HausInfo[x][hHauskasse] = mysql_GetInt_int("houses", "hauskasse", "id", x);
    HausInfo[x][hLevel] = mysql_GetInt_int("houses", "level", "id", x);
    HausInfo[x][hMuell] = mysql_GetInt_int("houses", "muell", "id", x);
    HausInfo[x][hHaustuer] = mysql_GetInt_int("houses", "haustuer", "id", x);
    HausInfo[x][hAddtime] = mysql_GetInt_int("houses", "addtime", "id", x);
    HausInfo[x][hVerkauft] = mysql_GetInt_int("houses", "verkauft", "id", x);
    format(HausInfo[x][hBeschreibung], 64, "%s", mysql_GetStr_int("houses", "beschreibung", "id", x));
    }
    if(HausInfo[x][hErstellt]==1)
    {
    format(debug2, sizeof(debug2), "[Haus] x: %f y: %f z: %f user: %s Müll: %i",HausInfo[x][hEnterx], HausInfo[x][hEntery], HausInfo[x][hEnterz], HausInfo[x][hUser], HausInfo[x][hMuell]);
    print(debug2);
    } else {
    format(debug2, sizeof(debug2), "[Haus] %i LEER",x);
    print(debug2);
    }

    }
    print("Häuser geladen!");
    return 1;
    }


    Wo ist da was falsch?



    Jeffry

    Wer PALWAL-Sternchen vergibt, bekommt aus Prinzip ein Like 😏


    @palwal Donald Trump ist einer der besten Präsidenten welche die USA je hatte, meine Meinung.

  • Dieser Thread ist für kleine Scripting Fragen und nicht zum debuggen von MySQL Codes. Das siehst du doch an der Größe deines Code schon, dass das keine kleine Frage ist.
    Erstelle bitte einen Thread und poste dazu den MySQL Log, sowie den Server Log (prints sind ja drin), der kommt, wenn du das Zeug laden lässt.
    Wie du das machst steht hier: Tipps: Scripting-Probleme richtig erklären


    @Aviero: Da du mich zitiert hast: Erstelle bitte ebenfalls einen Thread und poste den aktuellen Code wie er momentan ist und beschreibe dein Problem.

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