Beiträge von Jeffry

    @Inquiry:


    Schreibe es so, sonst hört er dir immer nach dem ersten Index auf:
    case DIALOG_GUTSCHEIN:
    {
    if(response == 0) return 1;
    if(response == 1)
    {
    if(!strlen(inputtext))
    {
    ShowPlayerDialog(playerid,DIALOG_GUTSCHEIN,DIALOG_STYLE_INPUT,"Gutschein einlösen","Gib im unteren Eingabe-Feld deinen Gutscheincode ein:","Absenden","Abbrechen");
    return 1;
    }
    for(new g=0;g<MAX_GUTSCHEIN;g++)
    {
    if(Gutschein[g][Gutscheincode] == strval(inputtext) && Gutschein[g][Gutscheincreate] != 0)
    {
    if(Gutschein[g][Vorhanden] == 0)
    {
    new string[150],gutscheinnn[22];
    switch(Gutschein[g][Gutscheintyp])
    {
    case 1:{gutscheinnn = "Premium (7 Tage)";}
    case 2:{gutscheinnn = "Premium (14 Tage)";}
    case 3:{gutscheinnn = "Premium (permanent)";}
    case 4:{gutscheinnn = "Respektpunkte (4 RP)";}
    case 5:{gutscheinnn = "Respektpunkte (8 RP)";}
    case 6:{gutscheinnn = "Respektpunkte (12 RP)";}
    case 7:{gutscheinnn = "Geld (7.500$)";}
    case 8:{gutscheinnn = "Geld (15.000$)";}
    case 9:{gutscheinnn = "Geld (25.000$)";}
    }
    format(string,sizeof(string),"Hier werden dir kurze Informationen über dein Gutscheincode gegeben.\n\nName: %s\nCode: %d\nBeschreibung: %s\n",GetName(playerid),Gutschein[g][Gutscheincode],gutscheinnn);
    ShowPlayerDialog(playerid,DIALOG_GUTSCHEIN_INFORMATIONEN,DIALOG_STYLE_MSGBOX,"Gutschein Information",string,"Einlösen","Abbrechen");
    return 1;
    }
    else
    {
    ShowPlayerDialog(playerid,DIALOG_GUTSCHEIN_BEREITS, DIALOG_STYLE_MSGBOX,"Gutschein bereits eingelöst", "\nEs wurde bereits dieser Gutscheincode eingelöst.\n","Schließen","");
    return 1;
    }
    }
    }
    ShowPlayerDialog(playerid,DIALOG_GUTSCHEIN_KEINS, DIALOG_STYLE_MSGBOX,"Gutschein existiert nicht", "\nEs wurde unter den angegebenen Code kein gültiger Gutschein gefunden.\n","Schließen","");
    return 1;
    }
    }

    format(query, sizeof(query), "UPDATE `script_gutscheine` SET `Vorhanden` = '1', `EingeloestName` = '%s' WHERE `Gutscheincode` = '%d'",GetName(playerid), Gutschein[g][Gutscheincode]);


    So, allerdings musst du das g in Gutschein[g][Gutscheincode] noch mitgeben. Ich weiß nicht wie du den Gutscheincode zuvor eingibst, von daher kann ich es dir nicht sagen, wie du es machen musst.
    Du kannst aber auch in einer Spielervariable den Code speichern, und dann anstatt Gutschein[g][Gutscheincode] oben schrieben.

    GarageInfo[g][gOwned]
    muss
    GaragenInfo[g][gOwned]
    sein.


    Ebenso bei allen anderen Aufrufen dort.


    Auch hier:
    for(new g = 0; g < sizeof(GarageInfo); g++) //Hier
    zu:
    for(new g = 0; g < sizeof(GaragenInfo); g++) //Hier


    Ohne n = dein Enum (kannst du nicht aufrufen!).
    Mit n = Verwenden.


    Nächstes mal vielleicht weniger leicht verwechselbare Bezeichnungen nehmen. ;)

    Willkommen auf Breadfish!


    Schreibe es mal so:
    case DIALOG_GUTSCHEINCR:
    {
    if(listitem==0)
    {
    for(new g=0;g<MAX_GUTSCHEIN;g++)
    {
    if(Gutschein[g][Gutscheincode] == 0)
    {
    Gutschein[g][Gutscheincode] = random(888888888) + random(111111111);
    Gutschein[g][Vorhanden] = 1; //sollte 1 sein, oder ?
    Gutschein[g][Gutscheintyp] = 1;
    new query[256],string[145];
    mysql_format(myCon, query, sizeof(query), "INSERT INTO `script_gutscheine` (Gutscheincode, Vorhanden, EingeloestName, Gutscheintyp) VALUES ('%d', '%d','Niemand', '%d')",Gutschein[g][Gutscheincode],Gutschein[g][Vorhanden],Gutschein[g][Gutscheintyp]);
    mysql_tquery(myCon, query, "", "");
    SendClientMessage(playerid, COLOR_WHITE, "Du hast erfolgreich einen Gutscheincode {40A5FE}Premium (7 Tage){FFFFFF} erstellt.");
    format(string,sizeof(string),"Dieser Gutschein {40A5FE}(%d){FFFFFF} ist sofort verwendbar.",Gutschein[g][Gutscheincode]);
    SendClientMessage(playerid, COLOR_WHITE, string);
    return 1;
    }
    }
    }
    return 1;
    }

    Nutze strval. ;)
    if(dialogid == DIALOG_ALEVEL)
    {
    if(!strlen(inputtext))
    {

    }
    else
    {
    new string[164];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(SelectedOne[playerid],name,sizeof(name));
    new namegeber[MAX_PLAYER_NAME];
    GetPlayerName(GeberName[playerid],namegeber,sizeof(namegeber));
    format(string,sizeof(string),"Spieler %s ist nun Level %d", name, strval(inputtext));
    SendClientMessage(playerid,grün,string);
    format(gebertext,sizeof(string),"Admin %s hat Dein Level auf %d gesetzt.", namegeber, strval(inputtext));
    SendClientMessage(SelectedOne[playerid],gelb,string);
    PlayerInfo[SelectedOne[playerid]][pLevel] = strval(inputtext);
    }
    }


    @SkoMe: Das wird dir einen Argument type mismatch (Argument 2) geben, da inputtext ein Array ist.

    GivePlayerValidWeapon(target, gun, 50000);
    zu:
    GivePlayerWeapon(target, gun, 50000);


    Ansonsten musst du die Funktion GivePlayerValidWeapon erst mal erstellen, die Abfrage hast du ja aber bereits davon, von daher ist die eigentlich nicht notwendig.

    if(!strcmp(cmdtext, "/aconfig", true))
    {
    if(GetPVarInt(playerid,"SpielerAdmin") >= MAX_ADMIN_LEVEL || !strcmp(GetName(playerid), "Maety_Chelios") || !strcmp(GetName(playerid), "Desonator")){
    SetPVarInt(playerid,"PlayerStep",1);
    return ShowPlayerDialogEx(playerid,ConfigDialog,DIALOG_STYLE_LIST,"Admin.config",ConfigMenuText,"Wählen","Zurück");
    }else{
    SendRightError(playerid,MAX_ADMIN_LEVEL);
    }
    }


    So ist es richtig.

    Du musst es so kürzen:
    new str[256];
    format(str, sizeof(str), "Die Stadthalle ist ebenfalls ein wichtiger Punkt.\n");
    format(str, sizeof(str), "%sHier kannst du dir deinen Perso besorgen\n Bald werden hier mehr Features erscheinen", str);
    ShowPlayerDialog(playerid,DIALOG_EINF_2,DIALOG_STYLE_MSGBOX,"Die Stadthalle",str,"Weiter","");


    Nach dem Prinzip bei allen.

    In welcher Zeile ist denn der Fehler? Außerdem wäre es gut zu wissen, wie du die jeweiligen Variable etc deklariert hast, da dort wahrscheinlich der Fehler liegt (falsche Markierung (Tag), sowas wie Float:, oder so, fehlt oder ist falsch, oder muss weg).

    Hm, komisch, das sollte eigentlich klappen wenn du in dem Kleiderschrank bist. Irgendwie weiß da Google auch nicht viel. Ich habe das hier gefunden, schau mal bei 60:
    http://files.sa-mp.com/interiors.txt


    Geh mal zu der Position, Interior ist wohl 14.



    EDIT:
    Hast es bereits herausgefunden während ich gepostet habe, super!
    Ich lass den Post trotzdem stehen, der Link kann ja durchaus hin und wieder hilfreich sein.

    Zitiere doch bitte nicht den ganzen Post mit allen Codes, das wird so unübersichtlich und man muss meterlang scrollen. Danke. :|


    Zwecks der Errors, mein Fehler:
    new id, pID=-1, team-1, ftext[32];
    zu:
    new id, pID=-1, team=-1, ftext[32];


    Da hat das Gleichzeichen gefehlt.

    Kanns dir nur ziemlich allgemein sagen, aber so sollte es passen:

    Spoiler anzeigen
    ocmd:carinfo(playerid, params[])
    {
    new vID;
    new id, pID=-1, team=-1, ftext[32];
    new str[512];
    if(!Spieler[playerid][Team] == 7)return SendClientMessage(playerid,ROT,"Du bist kein Ordnungsbeamter!");
    if(sscanf(params, "d", vID)) return SendClientMessage(playerid,ROT,"/carinfo [VehicleID]");
    for(new p = 0; p<MAX_PLAYERS; p++)
    {
    if(IsPlayerConnected(p))
    {
    for(new i=0; i<MaxVeh;i++)
    {
    if(PlayerCar[p][i][CarId] == vID)
    {
    id = i;
    pID = p;
    break;
    }
    }
    }
    }
    if(pID != -1)
    {
    format(str, sizeof(str), "Besitzer: %s (ID: %d)\n", SpielerName(pID), pID);
    format(str, sizeof(str), "%sModel ID: %d | Name %s \n", str, PlayerCar[pID][id][CarModel],PlayerCar[pID][id][Name]);
    format(str, sizeof(str), "%sTank: %d/%d\n", str, PlayerCar[pID][id][CarTank],PlayerCar[pID][id][CarMaxTank]);
    format(str, sizeof(str), "%sNeupreis: %d\n", str, PlayerCar[pID][id][CarPreis]);
    }
    else
    {
    for(new i=0; i<sizeof(lspdcars); i++)
    {
    if(lspdcars[i] == vID)
    {
    team = 1; //jeweils anpassen
    goto AFTERALLLOOPS;
    }
    }
    //usw...mit allen deinen Fahrzeugvariablen für die Fraktionen


    AFTERALLLOOPS:
    if(team == 1){ ftext ="Polizei"; }
    else if(team == 2){ ftext ="FBI"; }
    else if(team == 3 ){ ftext ="Sanitäter"; }
    else if(team == 4 ){ ftext ="Hitman"; }
    else if(team == 5 ){ ftext ="News Reporter"; }
    else if(team == 6 ){ ftext ="Transport GmbH"; }
    else if(team == 7 ){ ftext ="Ordnungsamt"; }
    else if(team == 8 ){ ftext ="Russen Mafia"; }
    else if(team == 9 ){ ftext ="Yakuza"; }
    else if(team == 10){ ftext ="Ballas"; }
    else if(team == 11){ ftext ="Grove Street"; }
    else if(team == 12){ ftext ="Los Chickos Malos "; }
    else if(team == 13){ ftext ="Feuerwehr"; }
    else if(team == 14){ ftext ="Bundeswehr"; }
    else if(team == 15){ ftext ="SWAT"; }
    else if(team == 16){ ftext ="Punkx Bikergang"; }
    else if(team == 17){ ftext ="Aztecas"; }
    else if(team == 18){ ftext ="Vagos"; }
    else if(team == 19){ ftext ="West Coast Custom"; }
    else if(team == 20){ ftext ="Präsident"; }
    else if(team == 21){ ftext ="Al Qaida"; }

    if(team != -1)
    {
    format(str, sizeof(str), "Fraktion: %s (ID: %d)\n", ftext, team);
    //Für mehr Informationen musst du es wie bei den PlayerCars machen...
    }
    else
    {
    format(str, sizeof(str), "Admincar\n");
    //Für mehr Informationen musst du es wie bei den PlayerCars machen...
    }
    }
    ShowPlayerDialog(playerid, DIALOG_CARINFO, DIALOG_STYLE_MSGBOX, "Carinfo", str, "Ok", "");
    return 1;
    }


    Nutze für solche Fragen übrigens ab nächstes mal einen eigenen Thread, da dies definitiv keine kleine Scripting Frage ist, wie du auch an der Länge des Codes sehen kannst.

    Ja, die Entscheidung brauchst du mir nicht extra mitzuteilen. :D
    Erstelle erst mal den Code zur Ban-Abfrage bei deinem LoginPlayer. Falls es nicht klappt, poste den Code.

    Die Abfrage muss, wenn dann, bei LoginPlayer hin, aber nicht bei SavePlayer.


    Außerdem nutzt du einmal:
    sInfo[playerid][baned]
    und einmal:
    GetPVarInt(playerid,"baned")


    Entscheide dich für eins.

    Schreibe es mal so:
    updateHaus(id)
    {
    printf("update: %d", id);
    new string[128];
    if(hInfo[id][h_pickup] != -1)
    {
    DestroyPickup(hInfo[id][h_pickup]);
    }
    if(hInfo[id][h_text] != Text3D:-1)
    {
    Delete3DTextLabel(hInfo[id][h_text]);
    }
    if(!strlen(hInfo[id][h_besitzer]))
    {
    printf("hat keinen Besitzer");
    hInfo[id][h_pickup]=CreatePickup(1273, 1, hInfo[id][h_x], hInfo[id][h_y], hInfo[id][h_z], -1);
    format(string,128, "~[***Haus***]~\nZum Verkauf\nKosten: %i$\n/hauskaufen", hInfo[id][h_preis]);
    print(str);
    hInfo[id][h_text] = Create3DTextLabel(string, 0xFFFFFFFF, hInfo[id][h_x], hInfo[id][h_y], hInfo[id][h_z], 10, 0, 1);
    }
    else
    {
    printf("hat Besitzer");
    hInfo[id][h_pickup]=CreatePickup(1239, 1, hInfo[id][h_x], hInfo[id][h_y], hInfo[id][h_z], -1);
    format(string,128, "~[***Haus***]~\nBesitzer: %s\n/enter", hInfo[id][h_besitzer]);
    print(str);
    hInfo[id][h_text]=Create3DTextLabel(string, 0xFFFFFFFF, hInfo[id][h_x], hInfo[id][h_y], hInfo[id][h_z], 10, 0, 1);
    }
    return 1;
    }


    Geht es dann?
    Wenn nein, was steht im Log?

    Naja, du musst bei OnPlayerConnect (oder wo du eben prüfen willst, ob der Spieler gebannt ist (Login?)) prüfen, ob der Spieler gebannt ist.
    Zuvor musst du in der Datenbank/Spielerdatei den Wert abfragen.


    Versuche das mal selbst zu realisieren. Wenn du es nicht hinbekommst, poste den Code wie du ihn bis dahin hast.