Beiträge von [DT]Sniper

    @ Eliot in dem deine Beiträge geliked worden sind, auch wenn du selber das system nicht benutzt.


    @ Tooper werde mal schauen ob ich was hinbekomme denke aber weniger.
    Mir ist eingefallen eig. könntest du auch in die sigi das Avatar nehmen des jewaligen user reinnehmen, aber ne, ich denke, dass sieht nicht aus. ich muss mir erstmal ne strucktur für die sigi überlegen, und wie es gestalltet sein kann... Aber ich denke dass es eh nichts wird xD


    edit:
    da du ja eig. mit hilfe des systems weisst, wer die person, die grade die stats webseite kuckt ist, sofern sie das system benutzt, wäre es doch möglich unten eine Statistick für den user anzulegen oder eine Statistick, wenn man sein eigenes Profil ansieht.

    Da ich das alles selber kann bräuchte ich eigtl nur ein Bild dafür,
    und da hängts bei mir, da ich sowas nicht kann :D


    Da kann ich dir leider auch nicht so gut helfen, auser kleine sachen siehe sigi bekomme ich nichts hin, vorallem da ich nur mit gimp arbeite.


    Aber vl. sollte man auch zwichen verschiedenen Signaturen auswählen können (Hintergrüde und Inhalt?)


    edit:
    Ne Wbb Plugin wollten die meisten eigendlich nicht haben.


    edt: welche größe sollte den deiner meinung nach ne signatur haben, werde mal sehen ob ich was machen kann.

    Hm, zum thema mehr user etc. wie wäre es mit dynamischen signaturen, die anzeigen welcher Post von einem wie oft geliked worden ist (also nur den höchsten)
    Also mein beliebtester Post:
    XXXXX (Y Likes)


    Kann dir ansonsten nur mit webpage etc. helfen (denke aber dass du das sellber auch kannst) nur deginen kann ich nicht.

    if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
    {
    new pname[24];
    new pcar = GetPlayerVehicleID(playerid);
    GetPlayerName(playerid, pname, 24);
    for(new c = 0; c < sizeof(Auto); c++)
    {
    if(pcar == Auto[code=c])
    {
    new check = 0;
    for(new i; i < sizeof(Personen); i++)
    {
    if(!strcmp(pname,Personen[i],false))
    {
    check=1;
    }
    }
    if(check == 0)
    {
    SendClientMessage(playerid, 0xFFFFFFAA, "Dieses Auto ist ein Owner Fahrzeug du solltest lieber ganß Schnell verschwinden!");
    RemovePlayerFromVehicle(playerid);
    return 1;
    }
    }
    }
    }
    Probiers so.

    Blindfishe xD
    if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER) //Prüft ob der Spieler der Fahrer ist
    {
    new pname[24]; //pname definieren
    new pcar = GetPlayerVehicleID(playerid); //Speichert die Auto-ID in die Variable "pcar"
    GetPlayerName(playerid, pname, 24); //Den namen des Spielers in Variable "pname" speichern
    if(pcar == Auto) //Falls das Auto in dem der spieler sitzt, das auto ist, das wir nur für die bestimmten personen freigegeben haben
    {
    for(new x;x<sizeof(Personen);x++) //Das hier ist eine Schleife, erklærung könnt ihr auf www.wiki.sa-mp.de finden
    {
    if(strcmp(pname,Personen[x],false)) //Da wir eine Zahl mit Variable "Personen" gegeben haben, wird diese alle Zahlen bzw. auch alle Namen durchgehen, und gucken ob der Spielername und die Namen der erlaubten Personen zusammenpassen (FALSE = Groß/Kleinschreibung beachtung)
    {
    SendClientMessage(playerid, 0xFFFFFFAA, "Dieses Auto ist ein Owner Fahrzeug du solltest lieber ganß Schnell verschwinden!"); //Falls er das Auto nicht benutzen darf, bekommt er diese Meldung
    RemovePlayerFromVehicle(playerid); //Wirft den Spieler aus dem Wagen.
    return 1; //Alles fertig x)
    }
    }
    }
    }

    Crash detect werde ich morgen mal probieren, doch das leere String Prob kann nicht sein, da das bei anderen Sachen ohne Probleme geht jedoch bei der Zeile in Zeile Funktion (%x....%) bekommt er dass nicht hin...


    edit:
    Crashdetect wirft mir das hier raus:

    Code
    [13:37:51] [debug] Run time error 3: "Stack/heap collision (insufficient stack size)"
    [13:37:51] [debug]   Stack index (STK) is 0x1D908, heap index (HEA) is 0x1DBFC
    [13:37:51] [debug] Backtrace (most recent call first):
    [13:37:51] [debug] #0  0x000027f8()+0x44 from DT_DynamicHouse.amx
    [13:37:51] [debug] #1  0x000011a8()+0xcd0 from DT_DynamicHouse.amx
    [13:37:51] [debug] #2  0x0000102c()+0x98 from DT_DynamicHouse.amx
    [13:37:51] [debug] #3  0x000078f8()+0xe0 from DT_DynamicHouse.amx
    [13:37:51] [debug] #4  public OnPlayerCommandText()+0x7648 from DT_DynamicHouse.amx


    Also hat er iwelche probs beim stapeln (vl. indexieren) der neuen vars?
    Ich werde da nicht viel schlauer..

    lesen:
    new string[1024];
    format(string, sizeof(string), "%s",dini_Get("/bla.cfg", "bla"));


    while(strfind(Data, "%n%") != -1)
    {
    new pos = strfind(string, "%n%");
    new len2 = strlen("%n%");
    strdel(string, pos, (pos+len2));
    strins(string, "\n", pos);
    }


    ShowPlayerDialog(playerid, bla, DIALOG_STYLE_MSGBOX, "bla", string, "bla", "");


    musst dann anstatt \n %n% benutzen, so habe ich es gemacht.

    Hey, ich versuche in meinem langfiles system einzubauen, dass man eine andere zeilde im File direkt einbauen kann.


    Hier der zuständige Code:
    stock GetLangVar(Lang[3],Name[60],const Format[],Str[],length,{Float,_}:...)
    {
    new FileDest[80], key[256], Data[850];
    if(strfind(Name, ":", true) != -1) //Find an FileVar
    {
    new pos = strfind(Name, ":", true);
    new FileVar[15];
    strmid(FileVar,Name,0,pos);
    strdel(Name,0,pos+1);
    format(FileDest, sizeof(FileDest), "DTLangFiles/%s_%s_%s.txt",DT_lf_prefix, FileVar, Lang);
    }
    else
    {
    format(FileDest, sizeof(FileDest), "DTLangFiles/%s_%s.txt",DT_lf_prefix, Lang);
    }
    if(fexist(FileDest))
    {
    new File: LangFile = fopen(FileDest, io_read);
    if(LangFile)
    {
    new checker = 0;
    new str[256];
    while(checker != 2)
    {
    if( !fread(LangFile, str, sizeof(str)) ){checker=2;break;}
    if(checker== 0 && str[0]!='%')
    {
    key = dtlf_ini_GetKey(str);
    if(strfind(str, "\n") != -1) { strdel(str, strlen(str)-1, strlen(str)); }
    if(strcmp(key, Name, true) == 0)
    {
    format(Data, sizeof(Data), "%s", dtlf_ini_GetValue(str));checker=1;
    }
    } else if(checker==1) {
    if(str[0] == '%' && str[1] == 'h' && str[2] == '%')
    {
    if(strfind(str, "\n") != -1) { strdel(str, strlen(str)-1, strlen(str)); }
    if(strfind(str, "%h%") != -1) { strdel(str, strfind(str, "%h%"), strlen("%h%")); }
    format(Data, sizeof(Data), "%s%s", Data,str);
    } else {
    checker=2;break;
    }
    }
    }//END WHILE
    }
    fclose(LangFile);
    } else {format(Str,length,"ERROR: Can't find Lang Files \"%s\"",FileDest); printf("ERROR: Can't find Lang Files \"%s\"",FileDest);return 0;}
    while(strfind(Data, "%n%") != -1)
    {
    new pos = strfind(Data, "%n%");
    new len2 = strlen("%n%");
    strdel(Data, pos, (pos+len2));
    strins(Data, "\n", pos);
    }
    while(strfind(Data, "%x") != -1)
    {
    new pos = strfind(Data, "%x",false);
    new len2 = strfind(Data, "%",false,pos+1);
    new Var[60];
    printf("Data \"%s\"",Data);
    strmid(Var,Data,pos+2,len2);

    printf("Var \"%s\"",Var);
    strdel(Data, pos, len2);
    print("Debug #1");
    new Var2[200];
    print("Debug #2");
    GetLangVarInt(Lang,Var,"",Var2,sizeof(Var2));
    printf("Var2 \"%s\"",Var2);

    strins(Data, Var2, pos);
    printf("Data \"%s\"",Data);
    }
    //Replace %sName% with string
    new NumArgs = numargs()-5;
    if(NumArgs == 0)
    {
    format(Str,length,"%s",Data);
    return 1;
    }
    new count;
    new tmp[25][30];
    new idx;
    new stop = 0;
    while(stop == 0 && count < NumArgs)
    {
    tmp[count] = dtlf_strtok(Format, idx);
    if(strlen(tmp[count]) == 0 && count == 0)
    {
    stop = 1;
    format(Str,length,"%s",Data);
    return 1;
    }
    if(strlen(tmp[count]) == 0) {stop = 1; break;}
    count++;
    }
    if(count == 0)
    {
    format(Str,length,"%s",Data);
    return 1;
    }
    for (new i = 0;i<=count;i++)
    {
    if(i>=NumArgs){break;}
    new pos = strfind(Data, tmp[i], true);
    new len2 = strlen(tmp[i]);
    if(pos != -1)
    {
    strdel(Data, pos, (pos+len2));
    new val[90];
    if(tmp[i][1] == 's')
    {
    new index = 0;
    while(index < sizeof(val))
    {
    new chari = getarg(i+5, index++);
    if (chari == 0) break; // 0 is end of string
    format(val,sizeof(val),"%s%c",val,chari);
    }
    }
    if(tmp[i][1] == 'd')
    {
    new chari = getarg(i+5,0);
    format(val,sizeof(val),"%d",chari);
    }
    if(tmp[i][1] == 'f')
    {
    new Float:chari = Float:getarg(i+5);
    format(val,sizeof(val),"%f",chari);
    }
    strins(Data, val, pos);
    }
    }
    format(Str,length,"%s",Data);
    return 1;
    }


    stock GetLangVarInt(Lang[3],Name[60],const Format[],Str[],length,{Float,_}:...)
    {
    printf("Lang %s Name %s Leng: %d",Lang,Name,length);
    new FileDest2[80], key2[256], Data2[850];
    print("Debug #00");
    if(strfind(Name, ":", true) != -1) //Find an FileVar
    {
    print("Debug #01");
    new pos2 = strfind(Name, ":", true);
    print("Debug #02");
    new FileVar2[15];
    print("Debug #03");
    strmid(FileVar2,Name,0,pos2);
    print("Debug #04");
    strdel(Name,0,pos2+1);
    print("Debug #05");
    format(FileDest2, sizeof(FileDest2), "DTLangFiles/%s_%s_%s.txt",DT_lf_prefix, FileVar2, Lang);
    }
    else
    {
    print("Debug #06");
    format(FileDest2, sizeof(FileDest2), "DTLangFiles/%s_%s.txt",DT_lf_prefix, Lang);
    }
    print("Debug #07");
    printf("File %s",FileDest2);
    if(fexist(FileDest2))
    {
    new File: LangFile2 = fopen(FileDest2, io_read);
    if(LangFile2)
    {
    new checker2 = 0;
    new str2[256];
    while(checker2 != 2)
    {
    if( !fread(LangFile2, str2, sizeof(str2)) ){checker2=2;break;}
    if(checker2== 0 && str2[0]!='%')
    {
    key2 = dtlf_ini_GetKey(str2);
    if(strfind(str2, "\n") != -1) { strdel(str2, strlen(str2)-1, strlen(str2)); }
    if(strcmp(key2, Name, true) == 0)
    {
    format(Data2, sizeof(Data2), "%s", dtlf_ini_GetValue(str2));checker2=1;
    }
    } else if(checker2==1) {
    if(str2[0] == '%' && str2[1] == 'h' && str2[2] == '%')
    {
    if(strfind(str2, "\n") != -1) { strdel(str2, strlen(str2)-1, strlen(str2)); }
    if(strfind(str2, "%h%") != -1) { strdel(str2, strfind(str2, "%h%"), strlen("%h%")); }
    format(Data2, sizeof(Data2), "%s%s", Data2,str2);
    } else {
    checker2=2;break;
    }
    }
    }//END WHILE
    }
    fclose(LangFile2);
    } else {format(Str,length,"ERROR: Can't find Lang Files \"%s\"",FileDest2); printf("ERROR: Can't find Lang Files \"%s\"",FileDest2);return 0;}
    while(strfind(Data2, "%n%") != -1)
    {
    new pos2 = strfind(Data2, "%n%");
    new len22 = strlen("%n%");
    strdel(Data2, pos2, (pos2+len22));
    strins(Data2, "\n", pos2);
    }
    //Replace %sName% with string
    new NumArgs2 = numargs()-5;
    if(NumArgs2 == 0)
    {
    format(Str,length,"%s",Data2);
    return 1;
    }
    new count2;
    new tmp2[25][30];
    new idx2;
    new stop2 = 0;
    while(stop2 == 0 && count2 < NumArgs2)
    {
    tmp2[count2] = dtlf_strtok(Format, idx2);
    if(strlen(tmp2[count2]) == 0 && count2 == 0)
    {
    stop2 = 1;
    format(Str,length,"%s",Data2);
    return 1;
    }
    if(strlen(tmp2[count2]) == 0) {stop2 = 1; break;}
    count2++;
    }
    if(count2 == 0)
    {
    format(Str,length,"%s",Data2);
    return 1;
    }
    for (new i2 = 0;i2<=count2;i2++)
    {
    if(i2>=NumArgs2){break;}
    new pos2 = strfind(Data2, tmp2[i2], true);
    new len22 = strlen(tmp2[i2]);
    if(pos2 != -1)
    {
    strdel(Data2, pos2, (pos2+len22));
    new val2[90];
    if(tmp2[i2][1] == 's')
    {
    new index2 = 0;
    while(index2 < sizeof(val2))
    {
    new chari2 = getarg(i2+5, index2++);
    if (chari2 == 0) break; // 0 is end of string
    format(val2,sizeof(val2),"%s%c",val2,chari2);
    }
    }
    if(tmp2[i2][1] == 'd')
    {
    new chari2 = getarg(i2+5,0);
    format(val2,sizeof(val2),"%d",chari2);
    }
    if(tmp2[i2][1] == 'f')
    {
    new Float:chari2 = Float:getarg(i2+5);
    format(val2,sizeof(val2),"%f",chari2);
    }
    strins(Data2, val2, pos2);
    }
    }
    format(Str,length,"%s",Data2);
    return 1;
    }


    Hier die Txt (DTDH_Dia_DE.txt):

    Code
    ButtonWeit=Weiter
    ButtonAbr=Abbrechen
    ButtonZur=Zurück
    MainDia=%xDia:CapCfg%%n%%xDia:CapHouse%%n%%xDia:CapInterriors%
    CapHouse=Häuser
    CapCfg=Configuration
    CapInterriors=Interriors
    AHouseDia=Editieren%n%Haus löschen%n%Alle Häuser löschen%n%Haus hinzufügen


    Beim ausführendes codes:
    GetLangVar(LangVar,"Dia:MainDia","",string,sizeof(string))


    bekomme ich dies in den serverlog:

    Code
    [21:14:30] Data "%xDia:CapCfg%
    %xDia:CapHouse%
    %xDia:CapInterriors%"
    [21:14:30] Var "Dia:CapCfg"
    [21:14:30] Debug #1
    [21:14:30] Debug #2
    [21:14:30] Lang DE Name Dia:CapCfg Leng: 200


    D.h: der code schafft es nicht im stock neue Variablen zu erstellen??


    Ich verzweifle garde, habe den stock ja schon kopiert und alle variablennamen geändert...