Beiträge von Hagi

    Bin mir jetzt nicht ganz sicher ob das funktioniert, da es sich bei \n um ein Steuerzeichen handelt. Aber probieren kann mans ja.
    Schau einfach ob die letzten beiden Zeichen \n sind und nimm sie ggf raus.



    new checkstring[600];
    format(checkstring,600,"%s",maindata);
    new extracted[3];
    strmid(extracted,checkstring,strlen(checkstring)-2,strlen(checkstring),2);
    if(!strcmp(extracted,"\n",true,2))
    {
    format(maindata,sizeof(maindata),"%s",checkstring); // strmid verändert die source variable, gell?
    }


    Probiers mal aus, ka ob das funktioniert.

    Hast du schon den Social Club deinstalliert. Ist ab dem Patch 1.0.6.0 möglich. Das hat mir damals einiges an Rechenleistung bereit gestellt, wodurch GTA IV dann spielbar war.

    Dann bau doch aber bitte noch in die loop folgendes ein:
    if(!IsPlayerConnected(i)) continue;
    Spart dir ein bisschen Laufzeit


    ot: "seines Pings" nicht "seinem Ping"
    Genitiv

    Wie schon gesagt:


    Verschlüssel, lässt sich rückgeängig machen (Bekannteste Verschlüsselung ist z.B. der Cesar Code)
    Hashen erzeugt aus einem Klartext einen Geheimtext, welcher nicht wieder (zumindest nicht ohne Brute Force und Rainbowtables) in einen Klartext "zurückgewandelt" werden kann.


    Ich nutze persönlich für meinen Server einen double Salted Pepperd MD5 Hash für die Passwörter.


    Also


    Für jeden User zwei Salts, welche in einer anderen DB gespeichert werden und einen geheimen Pepper, welche vor dem Hashen mit dem Passwort Klartext verbunden werden.

    Diese Funktion stellt keinen pawn native dar und wird auch nicht im Wiki aufgeführt.
    Hast du das aus dem Script?, wenn ja dann such mal den Funktionscode, dann sehen wir weiter.


    Aber wenn ich raten müsste, dann denke ich, dass du so die Position vor einen Interior (auf der Hauptmap) bekommst (Ist aber nur geraten)

    Also ich würde von einem GF edit weg bleiben. Denn meinstens ist es sehr schwer Code von anderen Menschen nachzuvollziehen, besonders wenn man noch nicht weiß was da überhaupt steht oder wenn der Code über verschiedene Stellen des Scriptes geht (z.B. Timer).


    Ich habe damals mit einem Selfmade DM Script angefangen. Als erstes ein paar StaticVehicle und Klassen hinzugefügt. Dann einen Befehl mit dem man eine festgelegte Anzahl Waffen erhält. Daraus hat sich bis jetzt ein relativ gutes TDM Script mit Einnahmen entwickelt.

    Morgen Breadfisher


    Ist es irgendwie in Pawn möglich einen Parameter einer Funktion als Index für ein Array zu benutzen?


    Gehen wir von einer Funktion aus:



    forward testfunktion(Float:x,Float:y,Float:z,anzahl);
    public testfunktion(Float:x,Float:y,Float:z,anzahl)
    {
    new array[anzahl];
    }

    Dann gibt er logischerweise den Error aus, dass 'anzahl' kein konstanter Wert ist.

    Zitat

    error 008: must be a constant expression; assumed zero


    Ich möchte aber nicht von vorne herein eine Array Größe festlegen, da das den Nutzer einschränkt und einfach unnötig Speicher belegt.


    Ich habe übrigens auch schon folgendes versucht, jedoch mit gleichem Error:

    forward testfunktion(Float:x,Float:y,Float:z,const anzahl);
    public testfunktion(Float:x,Float:y,Float:z,const anzahl)
    {
    new array[anzahl];
    }


    Hat da jemand eine Lösung für parat? Da pawn nicht Objekt Orientiert ist, kann man leider auch nicht so einfach eine verkettete Liste erstellen (damit wärs dann kein Problem mehr)


    edit: Push nach Forenregel III.2:
    Letzter Post: 21.06.2013, 12:27
    Edit am: 23.06.2013, 13:44
    edit2: edit: Push nach Forenregel III.2:
    Letzter Post: 23.06.2013, 13:44
    Edit am: 27.06.2013, 17:33

    Zu dem hier


    if(PlayerInfo[playerid][pAdmin]){
    format(string, sizeof(string), "AdminLogin: Administrator %s hat sich eingeloggt.(Level %d)", RPN(playerid), PlayerInfo[playerid][pAdmin]);
    SendAdminMessage(0xAA3333AA, string);}
    }
    CanTalk[playerid] = 1;
    SetPlayerToTeamColor(playerid);
    }
    }
    return 1;
    }


    Brauchen wir noch ein bisschen mehr Code (z.B. in welchem Callback oder Function das ganze steht)

    Ja die Zeit oben rechts meine ich auch: Da muss es ja einen Quellcode im Script zu geben.


    Zu dem RCON such doch einfach mal (Strg + F) nach "Level 99999" und poste den Code den du da findest. Du kannst auch einfach mal den TV Befehl posten.

    IDs manuell vergeben dürfte schwierig werden.
    Aber Autos kannst du auch so speichern. Du musst nur beim erstellen des Autos eine Referenz zwischen Spieler und VehicleID erstellen:


    z.b. die Vehicleid in einem Array oder im Pawn eigenen Speichersystem des Spielers setzen.

    Ihr seid aber alle echt drauf. Der User hat sich ne Idee gemacht und es umgesetzt. Und jetzt kommen hier fast alle User und behandeln diese Idee als simpel und blöd. Nichts ist von Anfang an perfekt und so schlecht ist der erste Ansatz gar nicht gemacht.
    Klar gefällt es nicht allen und ein paar sind immerhin so reif die Kritikpunkte konstruktiv zu nennen; Aber bei manch anderen Post fehlen mir hier echt die Worte.

    Du brauchst ein Hintergrund Textdraw und ein Anzeigen Textdraw, welches in allen 4 Dimensionen kleiner sein sollte als der Hintergrund.


    Dann musst du eine minimale Größe des Anzeigen TextDraws per x Wert festlegen (y wenn es senkrecht sein soll). Dann brauchst du noch einen maximalen x Wert (y wenn... you know).


    Daraus resultiert dann:


    (maximalx-minimalx )*tank (voll = 1,0)


    Beispiel:


    Du hast das Minimum bei 450 Pixel und das Maximum bei 600 Pixel. Wenn dein Tank 50 % gefüllt ist, muss dein Textdraw 75 Pixel lang sein.


    (600-450)*0,5 = 150*0,5 = 75 Pixel

    Du könntest das ganze so verändern:


    new bool:spawnedcar[MAX_VEHICLES];
    ocmd:v(playerid,params[])
    {
    new Float:vehx,Float:vehy,Float:vehz;
    new vehid,cc1,cc2,string[128];
    if(sscanf(params,"iii",vehid,cc1,cc2))return SendClientMessage(playerid, Rot,"Nutzung: /v [Vehicle ID] [Farbe 1] [Farbe 2]");
    GetPlayerPos(playerid,vehx,vehy,vehz);
    new carid = CreateVehicle(vehid,vehx,vehy,vehz,3,cc1,cc2,0);
    SetVehicleNumberPlate(carid,"~>gg<~");
    PutPlayerInVehicle(playerid, carid, 0);
    format(string,sizeof(string),"FahrzeugID: %d",GetVehicleModel(GetPlayerVehicleID(playerid)));
    SendClientMessage(playerid,Rot,string);
    spawnedcar[carid] = true;
    SetPVarInt(playerid,"latestcar",carid);
    return 1;
    }


    Bei OnPlayerStateChange


    if(newstate == PLAYER_STATE_ONFOOT && oldstate == PLAYER_STATE_DRIVER)
    {
    if(spawnedcar[GetPVarInt(playerid,"latestcar")] == true)
    {
    DestroyVehicle(GetPVarInt(playerid,"latestcar"));
    spawnedcar[GetPVarInt(playerid,"latestcar")] = false;
    }
    }

    Nein mir war klar, dass beim deklarieren der Wert 0 zugewiesen wird. Ich habs selber aber noch nie ohne in einer loop probiert. Auch wenns nicht funktioniert, tuts seinem Script nicht weh. Hauptsächlich war ja die ANweisung noch weiter auszukommentieren.