Shopsystem 3 Fehler

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
  • Guten Tag,


    ich habe ein Shopsystem geschrieben doch es buggt ein bisschen.


    ClanSystem
    Es speichert nicht das Kaufdatum.
    und ich weiß nicht wie ich das mache das wenn es einen Clan mit diesem Namen gibt das er einen Anderen nehmen muss.
    und das wenn er schon einen hat das er keinen Weiteren Kaufen kann.
    Code:
    if(dialogid==DIALOG_SHOP)
    {
    if(response == 0)
    {
    SendClientMessage(playerid,-1,"Laden verlassen. Besuchen sie uns Bald wieder.");
    }
    if(response==1)
    {
    if(listitem==0)
    {
    ShowPlayerDialog(playerid,DIALOG_CLAN,DIALOG_STYLE_INPUT,"Clan - erstellen","Bitte gebe den Namen für den Clan ein\nAnstößige Clan-Namen können von der Administration gelöscht oder geändert werden.","Erstellen","Abbrechen");
    return 1;
    }
    }
    return 1;
    }
    if(dialogid==DIALOG_CLAN)
    {
    if(response == 0)
    {
    return 1;
    }
    if(response == 1)
    {
    if(GetPlayerMoney(playerid) >= 400001)
    {
    new string[128],zstring[150],pfad[150],name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,MAX_PLAYER_NAME);
    gettime(stunde,minuten,sekunde);
    getdate(jahr,monat,tag);
    format(string,sizeof(string),"%02d/%02d/%04d-%02d:%02d:%02d",tag,monat,jahr,stunde,minuten,sekunde);
    format(string,sizeof(string),"%s hat einen Clan gekauft. Clan-Name: %s",Name(playerid),inputtext);
    SendAdminMessage(ROT,string);
    SendClientMessage(playerid,GELB,"sie haben den Clan erfolgreich gekauft.");
    GivePlayerMoney(playerid,-400000);
    format(pfad,sizeof(pfad),"/Clans/%s.txt",inputtext);
    dini_Create(pfad);
    dini_Set(pfad,"Käufer", name);
    dini_Set(pfad,"Kauf-Datum",zstring);
    }
    else
    {
    SendClientMessage(playerid,-1,"Du hast nicht genug Geld dabei");
    }
    return 1;
    }
    return 1;
    }


    Namechange system
    if(dialogid == DIALOG_NAMECHANGE)
    {
    if(response == 0)
    {
    return 1;


    }
    if(response == 1)
    {
    if(GetPVarInt(playerid,"Namechange")==1)
    {
    SendClientMessage(playerid,-1,"Du hattest schon einmal Namechange");
    }
    else
    {
    if(GetPlayerMoney(playerid) >= 1000000)
    {
    new string[128],pfad[150],name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,MAX_PLAYER_NAME);
    gettime(stunde,minuten,sekunde);
    getdate(jahr,monat,tag);
    format(string,sizeof(string),"%02d/%02d/%04d-%02d:%02d:%02d",tag,monat,jahr,stunde,minuten,sekunde);
    SendClientMessage(playerid,GELB,"Sie haben sich einen neuen Namen gekauft.");
    GivePlayerMoney(playerid,-1000000);
    format(pfad,sizeof(pfad),"Namechange.txt");
    dini_Create(pfad);
    dini_Set(pfad,"Alter Name",Name(playerid));
    dini_Set(pfad,"Neuer Name",inputtext);
    SetPVarInt(playerid,"Namechange",1);
    SpielerSpeichern(playerid);
    }
    else
    {
    SendClientMessage(playerid,-1,"Du hast nicht genug Geld dabei");
    }
    }
    }
    }


    Wie ändere ich den Namen bzw. wie mache ich das das er sich nicht so wie ein anderer nennen kann.


    Ich hab keine Errors oder Fehler



    ICy.:
    Jeffry:
    Kaliber:

    2 Mal editiert, zuletzt von The Sensei () aus folgendem Grund: Veralgemeinert

  • Dein Problem mit dem Kaufdatum:


    format(zstring,sizeof(zstring),"d/d/d-d:d:d",tag,monat,jahr,stunde,minuten,sekunde);


    Du hast anstatt "zstring" string benutzt.
    Aber das Kauf datum tust du mit zstring speichern.
    Sollte so klappen =)


    //EDIT:


    Clan kaufen (falls es den Name gibt anderen wählen):


    new pfad[150];
    format(pfad,sizeof(pfad),"/Clans/%s.txt",inputtext);
    if(!dini_Exists(inputtext))
    {
    // Wenn es den Clan nicht gibt, hier erstellen
    }
    else
    {
    //Wenn es den Clan gibt:
    SendClientMessage(playerid,-1,"Dieser Clan ist bereits vorhande!");
    }


    Zum 3 Problem, mach eine neue Variable in dein pInfo enum etc....
    Und füg dort ein pClanLeader // Kannst auch anders bennen


    Dann fragst du dort ab wo du den Dialog erstellst folgendes ab:


    if(pInfo[playerid][pClanLeader] >0)return SendClientMessage(playerid,-1,"Du hast bereits ein Clan.");


    Es ist ungetestet.
    Fallst du noch Probleme hast, meld dich =)

    Einmal editiert, zuletzt von Pascal. ()

  • Pascal.:
    Kannst du mir auch bei meinem Namechange System helfen?
    Code ist unten
    if(dialogid == DIALOG_NAMECHANGE)
    {
    if(response == 0)
    {
    return 1;


    }
    if(response == 1)
    {
    if(GetPVarInt(playerid,"Namechange")==1)
    {
    SendClientMessage(playerid,-1,"Du hattest schon einmal Namechange");
    }
    else
    {
    if(GetPlayerMoney(playerid) >= 1000000)
    {
    new string[128],zstring[128],pfad[150],name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,MAX_PLAYER_NAME);
    gettime(stunde,minuten,sekunde);
    getdate(jahr,monat,tag);
    format(zstring,sizeof(zstring),"d/d/d-d:d:d",tag,monat,jahr,stunde,minuten,sekunde);
    SendClientMessage(playerid,GELB,"Sie haben sich einen neuen Namen gekauft.");
    GivePlayerMoney(playerid,-1000000);
    format(pfad,sizeof(pfad),"Namechange.txt");
    dini_Create(pfad);
    dini_Set(pfad,"Alter Name",Name(playerid));
    dini_Set(pfad,"Neuer Name",inputtext);
    SetPVarInt(playerid,"Namechange",1);
    SetPlayerName(playerid,"%s",inputtext);
    SpielerSpeichern(playerid);
    }
    else
    {
    SendClientMessage(playerid,-1,"Du hast nicht genug Geld dabei");
    }
    }
    }
    }

  • Also wie gesagt ist wieder ungetestet.
    Aber ich gebe dir mal ein paar tipps:


    Du kannst auch anstatt
    if(response == 1)
    {


    }
    ....
    das hier machen:
    if(response)
    {
    //Hier der code der ausgeführt werden soll...
    }
    else
    {
    //hier zb wenn er auf abbrechen klickt
    }


    Und ja zum namechange frag dort lieber nochmal ab ob es den Spieler gibt.
    Wenn du weitere Probleme hast schick code und sag mir was es für Probleme gibt =)


    //EDIT:
    Andere Code war fail hier nochmal:
    if(dialogid == DIALOG_NAMECHANGE)
    {
    if(response)
    {
    if(GetPVarInt(playerid,"Namechange") == 1)return SendClientMessage(playerid,-1,"Du hattest bereits ein Namechange.");
    if(GetPlayerMoney(playerid) < 1000000)return SendClientMessage(playerid,-1,"Du hast nicht genügend Geld.");
    new string[128],zstring[128],pfad[150],name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,MAX_PLAYER_NAME);
    gettime(stunde,minuten,sekunde);
    getdate(jahr,monat,tag);
    format(zstring,sizeof(zstring),"%02d:%02d:%02d\n%02d:%02d:%02d:",tag,monat,jahr,stunde,minuten,sekunde);
    format(string,128,"Du hast dein Name erfolgreich Umbenannt. Neuer Name: %s",inputtext);
    SendClientMessage(playerid,-1,string);
    GivePlayerMoney(playerid,-1000000);
    format(pfad,sizeof(pfad),"Namechange.txt");
    dini_Create(pfad);
    dini_Set(pfad,"Alter Name",Name(playerid));
    dini_Set(pfad,"Neuer Name",inputtext);
    SetPVarInt(playerid,"Namechange",1);
    format(string,"%s",inputtext);
    SetPlayerName(playerid,string);
    SpielerSpeichern(playerid);
    }
    else
    {

    }
    return 1;
    }

  • Beitrag von AirM4X ()

    Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.
  • Beitrag von AirM4X ()

    Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.
  • Aso dann habe ich das falsch verstanden.
    Ich dachte er speichert den Name nicht.
    Gut ich amch dir mal ein kleines Beispiel:


    new Spielerdaten[128],name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdaten,sizeof(Spielerdaten),"/Accounts/%s.ini",name);
    if(!dini_Exists(inputtext))
    {
    //Code, wenn der Spieler nicht Vorhanden ist
    }
    else
    {
    SendClientMessage(playerid,-1,"Dieser Spieler ist bereits Vorhanden!");
    }


    Sollte so ähnlich klappen, einfach bissl rum probieren =)

  • Nun hab ich ein Neues Problem.
    Es speichert nicht ab das ich einen Clan habe (SetPVarInt)
    Es wird eig. Richtig sein müssen da es auch geprintet wird.
    ICy.:
    Jeffry:
    Pascal.:


    if(dialogid==DIALOG_CLAN)
    {
    if(response == 0)
    {
    return 1;
    }
    if(response == 1)
    {
    if(GetPVarInt(playerid,"Clan")==1)
    {
    SendClientMessage(playerid,-1,"Du hast schon einen Clan");
    }
    else
    {
    if(GetPlayerMoney(playerid) >= 400000)
    {
    new string[128],zstring[150],pfad[150],name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,MAX_PLAYER_NAME);
    gettime(stunde,minuten,sekunde);
    getdate(jahr,monat,tag);
    format(zstring,sizeof(zstring),"d/d/d-d:d:d",tag,monat,jahr,stunde,minuten,sekunde);
    format(string,sizeof(string),"[SHOP-SYSTEM]Es wurde ein Clan gekauft. Clan-Name: %s",inputtext);
    SendAdminMessage(ROT,string);
    SendClientMessage(playerid,GELB,"Sie haben sich einen Clan gekauft.");
    GivePlayerMoney(playerid,-400000);
    format(pfad,sizeof(pfad),"/Clans/%s.txt",inputtext);
    dini_Create(pfad);
    dini_Set(pfad,"Käufer", name);
    printf("dini_Set");
    SetPVarInt(playerid,"Clan",1);
    printf("SetPVarInt(playerid,Clan,1");
    }
    else
    {
    SendClientMessage(playerid,-1,"Du hast nicht genug Geld dabei");
    }
    return 1;
    }
    }
    return 1;
    }
    Keine Errors etc. pp

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen