Beiträge von Douq

    Moin mir ist bewusst das es falsch ist aber könnte mir das jemand erklären? ich will das wenn er die Servergruppe 7 hat das er keine nachricht mehr bekommt


    public TSC_OnClientConnect(clientid, nickname[]){TSC_QueryClientData(clientid,CLIENT_SERVER_GROUPS:7,"test");TSC_SendClientMessage(clientid, "Willkommen auf dem German-Reallife Teamspeak!");TSC_SendClientMessage(clientid, "Um dich freizuschalten schreibe mir bitte deinen Ingame-Name!");return 1;}

    Moin, der zweite Parameter erwartet nicht die GruppenID sondern ein Wert vom Tag TSC_CLIENT_QUERYDATA. Die 7 musst du entfernen. Der dritte und vierte Parameter sind zum einen die Bezeichnung des Callbacks und die Parameter, die du mit übergeben möchtest. Beispiel wäre:



    Code
    TSC_QueryClientData(clientid, CLIENT_SERVER_GROUPS,  "DeinCallback", "d", playerid);
    
    
    forward DeinCallback(playerid);
    public DeinCallback(playerid) {
    new data[128];
    TSC_GetQueriedData(data, 128);
    return 1;
    }

    In data befinden sich dann die GruppenIDs, welcher der client besitzt, getrennt durch Kommata. Um die reinen GruppenIDs zu bekommen, brauchst du entweder eine split-Funktion oder du nutzt sscanf2 / je nach dem was beliebt.

    Moin, die Include liefert die Funktion TSC_QueryClientData() mit:


    Code
    TSC_QueryClientData(clientid, TSC_CLIENT_QUERYDATA:data, const callback[], const format[] = "", {Float, _}:...);

    TSC_CLIENT_QUERYDATA wäre dann CLIENT_SERVER_GROUPS, welche dir einen String mit den GruppenIDs per Funktion TSC_GetQueriedData() zurück gibt. Du musst dann einfach im Skript deklarieren, welche GruppenID zu welcher deiner gewünschten Gruppe gehört.

    Tipps: Scripting-Probleme richtig erklären


    Uns fehlen einige Informationen, um dir vernünftig helfen zu können. Das Accountsystem scheint ja per MySQL abgewickelt zu werden - wie speicherst du die Accounts? Wir brauchen Code, um zu sehen wo der Fehler liegen könnte. Gibt der mysql_log Fehler aus? Starte ggf. den debug Modus wie im Thread oben beschrieben. Wird überhaupt irgendwo der Account gespeichert bzw. wird überhaupt ein Query zur Datensicherung an den Server gesendet?

    Zum einen scheint es so, dass deine Include nicht zu deinem Server-Plugin passt - da er bei CreateDynamicObject() lediglich 11 Parameter erwartet, du ihm aber 14 übergibst. Lösung: streamer PlugIn neurunterladen und die ServerFile als auch die Include ersetzen.


    Zum anderen fehlen dir scheinbar Funktionen. Du musst in deine MySQL Include schauen, welche MySQL Version du benutzt und dementsprechend diese ServerFile / PlugIn verwenden. Es scheint mir, als würdest du das PlugIn von strickenkid benutzen aber die Include von BlueG. Lade dir das mysql Plugin von BlueG runter und ersetze es mit der mysql_static.so

    Am besten du klammerst den Großteil deines Scripts aus und fängst nach und nach an, das auskommentierte wieder einzufügen.
    Wenn es crashen sollte, ist der Fehler direkt vor deinen Augen. :P


    Eine andere Wahl hast du vermutlich nicht. :P

    Wenn ich mal solche Komplikationen hatte und keine Backup Datei, bin ich auch nach dem Verfahren gegangen. Ich habe dann immer die Hälfte auskommentiert und compilt und dann wieder davon die Hälfte auskommentiert. Habe das dann so lange gemacht, bis ich den Fehler auf wenige Zeilen reduzieren konnte. Klappte bis soweit ganz gut

    @JustMe.77
    Danke, das geht, leider bekomme ich jetzt über "CrashDetect" folgende Fehler angezeigt:


    [03:37:47] [debug] Run time error 4: "Array index out of bounds"[03:37:47] [debug] Attempted to read/write array element at index 3 in array of size 3[03:37:47] [debug] AMX backtrace:[03:37:47] [debug] #0 00069be0 in public OnActorStreamIn (0, 0) from BlvckDown-RL.amxpublic OnActorStreamIn(actorid, forplayerid){ for(new i = 0; i < sizeof(AcEnum[]); i++) { ApplyActorAnimation(AcEnum[i][acID], AcEnum[i][acLib], AcEnum[i][acAnim], AcEnum[i][acSpeed], AcEnum[i][acLoop], AcEnum[i][acLockX], AcEnum[i][acLockY], AcEnum[i][acFreeze], AcEnum[i][acTime]); } return 1;}


    Kannst mir dabei vielleicht dabei auch noch Helfen? :D

    Du sprengst deinen Array, weil du die Größe der zweiten Dimension als Schleifenbedingung benutzt, statt die erste Dimension. Die zweite ist nämlich die Anzahl deiner Variablen innerhalb deines Array-Enums. Entferne einfach die eckigen Klammern innerhalb von sizeof(), dann sollte das gehen.

    Danke das klappt nochwas :/

    Code
    C:\Users\ASUS\Desktop\---\gamemodes\GRR.pwn(25494) : warning 213: tag mismatch
    
    
    C:\Users\ASUS\Desktop\---\gamemodes\GRR.pwn(27516) : warning 213: tag mismatch

    PrivateVehicle[playerid][slot][vehDestroyed] = cache_get_field_content_float(0, "vehDestroyed"); //25494Vehicle[vehicleid][vehDestroyed] = 0; //27516

    Also erst einmal möchte deine Variable nur einen boolean zugewiesen bekommen haben und keinen anderen Datentyp. Wenn ich mir deinen Array so anschaue scheint folgendes dein Problem zu lösen:


    Zeile 25494: PrivateVehicle[playerid][slot][vehDestroyed] =!! cache_get_field_content_int(0, "vehDestroyed");
    Zeile 27516: Vehicle[vehicleid][vehDestroyed] = false;


    Wobei ich mir nicht vorstellen kann, dass du den gleichen enum-Bezeichner hast und für deinen Array scheinbar unterschiedliche Namen vergeben hast.

    Also ein Freund von mir ist aufgrund von Rückenproblemen durch den Fitnessteil durchgefallen (könnte bei dir auch zu einem K.O. Kriterium werden)

    Punkte die man bei der BW beachten sollte:

    • Lange bleiben wollen nicht viele
    • In der Zivilwelt hat die BW keinen guten Ruf
    • Du hast, wenn du also nachher wechseln willst, oftmals Probleme, gute Anschlussjobs zu finden

    Quelle: Vater war Offizier


    Wenns dir um Sicherheit und geringe Qualifikationen geht, würd e ich eine normale Beamtenlaufbahn empfehlen.
    Anstatt dort zu studieren nimm ein duales Studium - geht schneller und bringt mehr.

    Duales Studium ist auch bei der Behörde möglich (wollte ich nur erwähnt haben, klang jetzt nicht danach). Die Bundeswehr ist, zu mindestens in Hamburg, oft auf Messen vertreten - vielleicht wäre das ja noch eine Anlaufstelle um dich zu informieren

    Er haut mir beim Fahrzeugkauf 10 Autos raus, trägt diese in die DB obwohl er nur 1 Spawnen soll. Das gleiche würde er auch mit meiner SendClientMessage machen wenn ich sie nicht außerhalb der Schleife abschicke. Wie mache ich das am besten bzw wie umgehe ich das?

    Du musst auch aus der Schleife springen, ansonsten durchläuft sie bis zur Erfüllung deiner Bedingung (i < MAX_AUTOS). In deinem Fall wäre die Verwendung von break sinnvoll. Das kannst du einfach unter Zeile 16 und Zeile 35 (bzw. 36) setzen.


    break spricht die Schleife ab in welcher sie verwendet wird bzw. springt aus dieser raus. Vorteil ist, dass der Code unter der Schleife trotzdem ausgeführt wird, was bei einem return nicht der Fall wäre.


    Dein Code würde bezogen auf einem Beispiel folgendes bewirken:
    Stell dir vor du stehst bei StarBucks, hast 30 Euro und möchtest Kaffee bestellen. Dir würde so lange Kaffee gegeben werden, solange dein Geld was du bei dir trägst, größer oder gleich dem Kaffeepreis von StarBucks ist - das möchtest du ja aber sicherlich nicht. Dafür hast du dein break -> solltest du einmal einen Kaffee erhalten haben, wird dir kein Kaffee mehr zubereitet und du behältst dein Geld.