[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
  • Also wäre

    Code
    sizeof(fscp_streacke1[]) //Strecke 1
    sizeof(fscp_streacke1[][])//Strecke 2



    Ist das so richtig ?
    Wäre es nicht möglich es iwie so auslesen zu können ?

    Code
    Sizeof(fscp_strecke[route])

    Nein Dimensionen sind was anderes.

    Ich bin mir nicht sicher ob du das so angeben kannst:
    Musst du mal probieren, hab länger nicht mehr mit PAWN gearbeitet.


    Code
    sizeof(fscp_strecke[][0]) //Erste Strecke
    sizeof(fscp_strecke[][1]) //Zweite Strecke

    seekrass approved
    4x vom Discord geflogen


    shoxinat0r 4
    dennismitzwein 2
    Trooper[Y] 2
    maddin 1
    Unbekannter Discord Kick 2
  • Von wo holst du diesen MYSQL_Handler her?
    Du gehts nämlich durch die Rows dieses Handlers durch.

    Die hole ich mir her. :)


    stock MySQL_SetupConnection(ttl = 3){print("|-> Die MySQL Verbindung wird Getestet! <-|");MySQL_Handle = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_DATA, MYSQL_PASS);if(mysql_errno(MySQL_Handle) != 0){if(ttl > 1){printf("|-> Die Verbindung zur MySQL Datenbank (%s) konnte nicht hergestellt werden! <-|", MYSQL_DATA);printf("|-> Es wird ein neuer Verbindungsversuch gestartet! (TTL: %d) <-|", ttl-1);return MySQL_SetupConnection(ttl-1);}else{printf("|-> Die Verbindung zur MySQL Datenbank (%s) konnte nicht hergestellt werden! <-|", MYSQL_DATA);print("|-> Bitte prüfe die Verbindungsdaten, und versuche es erneuert! <-|");print("|-> Der Server wird nun Geschlossen! <-|");return SendRconCommand("exit");}}printf("|-> Die Verbindung zur MySQL Datenbank (%s) wurde erfolgreich hergestellt! <-|", MYSQL_DATA);printf("|-> Die MySQL Handle: %d <-|", MySQL_Handle);return 1;}


    Sobald ich ein Port erstelle kann ich ihn auch aufrufen, nach dem ich aber ein Server Restart gemacht habe, nicht mehr!

    Mit freundlichen Grüßen, BlvckAir :thumbup:

  • Du kannst in sizeof die Dimensionen mit angeben (glaub ich zumindest).Quasi:

    Code
    sizeof(fscp_streacke1) //Gesamt
    sizeof(fscp_streacke1[]) //Erste Dimension
    sizeof(fscp_streacke1[][]) //Zweite Dimension
    sizeof(fscp_streacke1[][][]) //Dritte Dimension

    @The Sensei
    Was genau geht denn nicht / nur ab und zu?

    Also ich hab hier meine Deklaration :
    static const f_rang[][] = {
    {"Trainee","Police Officer","Detective","Sergeant","Lieutenant","Captain","Commander","Deputy Chief of Police","Assistant Chief of Police","Chief of Police"}, //SAPD
    {"Trainee","Police Officer I","Police Officer II","Sergeant","Lieutenant","Captain","Deputy Chief","Assistant Sheriff","Undersheriff","Sheriff"}}; //LVPD


    und hier meinen Code wie ich dies benutzen will.
    if(PlayerInfo[playerid][pFraction] > 0){
    format(string,sizeof(string),""#info_farbe"Du bist derzeitig beim %s als %s tätig.", f_name[PlayerInfo[playerid][pFraction]], f_rang[PlayerInfo[playerid][pFraction]][PlayerInfo[playerid][pFrank]]);
    SendClientMessage(playerid,-1,string);
    }


    Eigentlich ist doch alles richtig...

  • Ich hab keine Warnings/Errors

    Supi :)


    Bedenke, dass die Arrays bei 0 Anfangen, also machst du entweder einen Platzhalter für den Rang...oder ziehst -1 beim Rang ab.



    sizeof(fscp_streacke1) //Gesamt
    sizeof(fscp_streacke1[]) //Erste Dimension
    sizeof(fscp_streacke1[][]) //Zweite Dimension
    sizeof(fscp_streacke1[][][]) //Dritte Dimension

    Das ist so nicht ganz richtig...


    sizeof(x) gibt die 1. Dimension zurück
    sizeof(x[]) die 2.
    sizeof(x[][]) die 3.

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • @Kaliber
    Danke für die Info. Länger nicht mehr mit PAWN gearbeitet.


    @The Sensei


    Wie Kaliber schon erwähnte noch das -1 machen da arrays bei 0 anfangen.

    seekrass approved
    4x vom Discord geflogen


    shoxinat0r 4
    dennismitzwein 2
    Trooper[Y] 2
    maddin 1
    Unbekannter Discord Kick 2
  • Er zeigt mir an das die SetPlayerSkin zeile Falsch sein soll. Warscheinlich ein Klammerfehler doch ich finde keinen.
    ocmd:makeleader(playerid,params[])
    {
    if(!isPlayerAnAdmin(playerid,4) || !IsPlayerAdmin(playerid))return SendClientMessage(playerid,-1,""#error_farbe"Keine Berechtigung");
    new pID, fraction, string[128];
    if(sscanf(params,"ui",pID,fraction))return SendClientMessage(playerid,-1,"Tippe: /makeleader [spieler] [fraktion]");
    if(fraction<0||fraction>14)return SendClientMessage(playerid,-1,""#error_farbe"Bitte gültigen Fraktion angeben.");
    PlayerInfo[pID][pFraction] = fraction;
    PlayerInfo[pID][pFrank] = 10;
    SetPlayerSkin(pID, f_skins[[pID][pFraction]-1][[pID][pFrank]-1]);
    SaveUserStats(pID);
    format(string, sizeof(string),""#info_farbe"%s hat dich zum Leader der Fraktion %s gemacht.",PlayerInfo[playerid][pName],f_name[PlayerInfo[pID][pFraction]]);
    SendClientMessage(pID,-1,string);
    format(string, sizeof(string),""#success_farbe"Du hast erfolgreich %s zum Leader der Fraktion %s gemacht.",PlayerInfo[pID][pName],f_name[PlayerInfo[pID][pFraction]]);
    SendClientMessage(playerid,-1,string);
    format(string, sizeof(string) ,"%s hat %s zum Leader der Fraktion %s gemacht.",PlayerInfo[playerid][pName],PlayerInfo[pID][pName],f_name[PlayerInfo[pID][pFraction]]);
    Log("AdminLog",string);
    return 1;
    }

  • Aber da nehme ich auch Route um zu wissen welche Strecke es ist geht das nicht auch iwie bei sizeof?


    @The Sensei:


    Code
    SetPlayerSkin(pID, f_skins[[pID][pFraction-1]][[pID][pFrank-1]]);
  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Aber da nehme ich auch Route um zu wissen welche Strecke es ist geht das nicht auch iwie bei sizeof?

    Denke man kann bei sizeof() nur die Dimensionen auslesen. Vielleicht hat @Kaliber @Jeffry noch eine Idee

    seekrass approved
    4x vom Discord geflogen


    shoxinat0r 4
    dennismitzwein 2
    Trooper[Y] 2
    maddin 1
    Unbekannter Discord Kick 2
  • Aber da nehme ich auch Route um zu wissen welche Strecke es ist geht das nicht auch iwie bei sizeof?


    @The Sensei:


    Code
    SetPlayerSkin(pID, f_skins[[pID][pFraction-1]][[pID][pFrank-1]]);

    funktioniert immer noch nicht die gleichen fehler;
    C:\Users\Patrick\Desktop\San Andreas\gamemodes\Hightech_Reallife.pwn(234) : error 029: invalid expression, assumed zero
    C:\Users\Patrick\Desktop\San Andreas\gamemodes\Hightech_Reallife.pwn(234) : warning 215: expression has no effect
    C:\Users\Patrick\Desktop\San Andreas\gamemodes\Hightech_Reallife.pwn(234) : error 001: expected token: ";", but found "]"
    C:\Users\Patrick\Desktop\San Andreas\gamemodes\Hightech_Reallife.pwn(234) : error 029: invalid expression, assumed zero
    C:\Users\Patrick\Desktop\San Andreas\gamemodes\Hightech_Reallife.pwn(234) : 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.

  • Eher so oder?


    Code
    SetPlayerSkin(pID, f_skins[PlayerInfo[pID][pFraction] - 1][PlayerInfo[pID][pFrank] - 1]);

    seekrass approved
    4x vom Discord geflogen


    shoxinat0r 4
    dennismitzwein 2
    Trooper[Y] 2
    maddin 1
    Unbekannter Discord Kick 2
  • SetPlayerSkin(pID, f_skins[PlayerInfo[pID][pFraction]][PlayerInfo[pID][pFrank]]);

    Diese zeile so schreiben:


    SetPlayerSkin(pID, f_skins[ PlayerInfo[pID][pFraction] ][ PlayerInfo[pID][pFrank]-1 ]);



    Denke man kann bei sizeof() nur die Dimensionen auslesen. Vielleicht hat @Kaliber  Jeffry noch eine Idee

    Man kann nur Arrays gleicher Länge für eine Dimension nutzen.


    Lösung, pack es in 2 Variablen, dann haste auch kein Problem mehr mit sizeof :)

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Kaliber was soll ich in eine Variable packen ?

    Na..teilst das auf, halt in 2 Variablen...für die jeweiligen Routen...


    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S