Beiträge von KazutoSensei

    format(text,sizeof(text),"%s\n%s",text, name); //Name anpassen


    Wieso ist das erste %s text, text wird doch dort definiert?
    pName(i) wäre es dann.


    SoR Mirco, okay danke, also könnte ich diese auch verwenden gut zu wissen, muss es aber eine Abfrage sein und nicht im pName?

    format(text,sizeof(text),"%s",pName(SpielerInfo[i][Adminlevel]>0));
    Sollte dann auch gehen, denn auch ohne >0 hat er meinen Namen schonmal angezeigt.
    Nur zeigt er auch 2 oder mehr Admins denn an?


    Adminname = ID
    Adminname2 = ID2 usw.


    Ist das auch möglich?

    ocmd:admins(playerid,params[])
    {
    new text[128];
    for(new i=0; i<GetMaxPlayers(); i++)
    {
    format(text,sizeof(text),"%s",pName(SpielerInfo[i][Adminlevel]));
    ShowPlayerDialog(playerid,DIALOG_SHOWADMINS,DIALOG_STYLE_MSGBOX,"Alle verfügbaren Admins",text,"Fertig","");
    }
    return 1;
    }
    Würde er jeden weiteren Admin dann auch anzeigen?
    Und gibt es ne Möglichkeit es so zu machen?


    Adminname = ID
    Adminname2 = ID2 usw.


    PS: Ich weiß ich melde mich oft und ich probiere auch viel selbst, komme aber nie an Ziel und Copy & Paste ist falsch, ich will ja lernen und selber schreiben.

    Ich möchte bei meinen /buylevel Befehl , dass er nach dem Kauf um 1 Level aufsteigt.
    Das ist mein Code.


    ocmd:buylevel(playerid,params[])
    {
    new string[128];
    format(string,sizeof(string),"Level: %i\nEXP: %i/%i\nGeld: %i$/%i$",SpielerInfo[playerid][sLevel],SpielerInfo[playerid][EXP],LevelEXP(playerid),GetPlayerMoney(playerid),LevelGD(playerid));
    ShowPlayerDialog(playerid,DIALOG_BUYLEVEL,DIALOG_STYLE_MSGBOX,"Mein Level",string,"Kaufen","Abbrechen");
    return 1;
    }
    Und hier habe ich halt das versucht, was aber nicht klappt -> SetPlayerScore(playerid,SpielerInfo[playerid][sLevel]+1);
    if(dialogid==DIALOG_BUYLEVEL)
    {
    if(response)
    {
    if(SpielerInfo[playerid][EXP]>=LevelEXP(playerid))
    {
    if(GetPlayerMoney(playerid)<LevelGD(playerid)) return SendClientMessage(playerid,Grey,"Du hast nicht genügend Geld vorhanden.");
    {
    SetPlayerScore(playerid,SpielerInfo[playerid][sLevel]+1);
    GivePlayerMoney(playerid,-LevelGD(playerid));
    SpielerInfo[playerid][EXP]=0;
    }
    }
    }
    else
    {


    }
    return 1;
    }
    stock LevelGD(playerid)
    {
    new LGD;
    if(GetPlayerScore(playerid) == 1) LGD = 8000;
    if(GetPlayerScore(playerid) == 2) LGD = 12000;
    if(GetPlayerScore(playerid) == 3) LGD = 16000;
    if(GetPlayerScore(playerid) == 4) LGD = 20000;
    if(GetPlayerScore(playerid) == 5) LGD = 24000;
    if(GetPlayerScore(playerid) == 6) LGD = 28000;
    if(GetPlayerScore(playerid) == 7) LGD = 32000;
    if(GetPlayerScore(playerid) == 8) LGD = 36000;
    if(GetPlayerScore(playerid) == 9) LGD = 40000;
    if(GetPlayerScore(playerid) == 10) LGD = 44000;
    if(GetPlayerScore(playerid) == 11) LGD = 60000;
    if(GetPlayerScore(playerid) == 12) LGD = 64000;
    if(GetPlayerScore(playerid) == 13) LGD = 68000;
    if(GetPlayerScore(playerid) == 14) LGD = 72000;
    if(GetPlayerScore(playerid) == 15) LGD = 76000;
    if(GetPlayerScore(playerid) == 16) LGD = 80000;
    if(GetPlayerScore(playerid) == 17) LGD = 84000;
    if(GetPlayerScore(playerid) == 18) LGD = 88000;
    if(GetPlayerScore(playerid) == 19) LGD = 92000;
    if(GetPlayerScore(playerid) == 20) LGD = 96000;
    if(GetPlayerScore(playerid) == 21) LGD = 100000;
    if(GetPlayerScore(playerid) == 22) LGD = 104000;
    if(GetPlayerScore(playerid) == 23) LGD = 108000;
    if(GetPlayerScore(playerid) == 24) LGD = 112000;
    if(GetPlayerScore(playerid) == 25) LGD = 118000;
    if(GetPlayerScore(playerid) == 26) LGD = 122000;
    if(GetPlayerScore(playerid) == 27) LGD = 126000;
    if(GetPlayerScore(playerid) == 28) LGD = 130000;
    if(GetPlayerScore(playerid) == 29) LGD = 134000;
    if(GetPlayerScore(playerid) == 30) LGD = 138000;
    return LGD;
    }


    stock LevelEXP(playerid)
    {
    new LEXP;
    if(GetPlayerScore(playerid) == 1) LEXP = 1000;
    if(GetPlayerScore(playerid) == 2) LEXP = 2000;
    if(GetPlayerScore(playerid) == 3) LEXP = 4000;
    if(GetPlayerScore(playerid) == 4) LEXP = 8000;
    if(GetPlayerScore(playerid) == 5) LEXP = 12000;
    if(GetPlayerScore(playerid) == 6) LEXP = 16000;
    if(GetPlayerScore(playerid) == 7) LEXP = 20000;
    if(GetPlayerScore(playerid) == 8) LEXP = 24000;
    if(GetPlayerScore(playerid) == 9) LEXP = 28000;
    if(GetPlayerScore(playerid) == 10) LEXP = 32000;
    if(GetPlayerScore(playerid) == 11) LEXP = 36000;
    if(GetPlayerScore(playerid) == 12) LEXP = 40000;
    if(GetPlayerScore(playerid) == 13) LEXP = 44000;
    if(GetPlayerScore(playerid) == 14) LEXP = 48000;
    if(GetPlayerScore(playerid) == 15) LEXP = 52000;
    if(GetPlayerScore(playerid) == 16) LEXP = 56000;
    if(GetPlayerScore(playerid) == 17) LEXP = 60000;
    if(GetPlayerScore(playerid) == 18) LEXP = 64000;
    if(GetPlayerScore(playerid) == 19) LEXP = 68000;
    if(GetPlayerScore(playerid) == 20) LEXP = 72000;
    if(GetPlayerScore(playerid) == 21) LEXP = 76000;
    if(GetPlayerScore(playerid) == 22) LEXP = 80000;
    if(GetPlayerScore(playerid) == 23) LEXP = 84000;
    if(GetPlayerScore(playerid) == 24) LEXP = 88000;
    if(GetPlayerScore(playerid) == 25) LEXP = 92000;
    if(GetPlayerScore(playerid) == 26) LEXP = 96000;
    if(GetPlayerScore(playerid) == 27) LEXP = 100000;
    if(GetPlayerScore(playerid) == 28) LEXP = 104000;
    if(GetPlayerScore(playerid) == 29) LEXP = 108000;
    if(GetPlayerScore(playerid) == 30) LEXP = 112000;
    return LEXP;
    }
    MfG Tiger

    Ich möchte nen /freunde Befehl machen, wo man nach der Eingabe sieht,
    welche Freunde Online sind, denn man vorher eine Anfrage geschickt und akzeptiert hat.
    Sollte dies der Fall sein und der Freund ist Online, so soll dort der Name und Online stehen, sollte
    er Offline sein, dann der Name und dann Offline. Man soll maximal 25 eintragen können.


    Das ganze soll mit einen Dialog gemacht sein.
    Meine eigene Überlegung war mit switch & case, was ich aber denke ausschließen kann.
    Dann dachte ich an eine Schleife, doch da wusste ich dann nicht weiter,


    Mein Anfang sieht wie folgt aus...
    ocmd:freunde(playerid,params[])
    {
    new string[256];
    format(string,sizeof(string),"%s: %s\n%s: %s");
    ShowPlayerDialog(playerid,DIALOG_FRIENDSLIST,DIALOG_STYLE_MSGBOX,"|_____Meine Freundesliste_____|",string,"Fertig","");
    return 1;
    }Ich bitte um eure Hilfe.


    Mit freundlichen Grüßen
    Panzerkampfwagen Tiger

    ocmd:pay(playerid,params[])
    {
    new pID, pay, string[128], string2[128];
    if(sscanf(params,"ui",pID,pay)) return SendClientMessage(playerid,Grey,"Nutze: /pay [Spieler/ID][Betrag]");
    if(pay<1||pay>50000) return SendClientMessage(playerid,Grey,"Du kannst nur bis 1 Million $ zahlen!");
    {
    if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,Grey,"Dieser Spieler ist nicht Online.");
    {
    if(GetPlayerMoney(playerid)<pay) return SendClientMessage(playerid,Grey,"Du hast nicht genügend Geld vorhanden.");
    {
    if(pID==playerid) return SendClientMessage(playerid,Grey,"Du kannst dir nicht selber Geld zahlen.");
    {
    GivePlayerMoney(pID,pay);
    GivePlayerMoney(playerid,-pay);
    format(string,sizeof(string),"Spieler %s hat dir %i$ bezahlt.",pName(playerid),pay);
    SendClientMessage(pID,LightYellow,string);
    format(string2,sizeof(string2),"Du hast dem Spieler %s %i$ gezahlt.",pName(pID),pay);
    SendClientMessage(playerid,LightYellow,string2);
    return 1; // hier hin was vorher unten war
    }
    }
    }
    }
    return 1; // <- dieses return nach oben
    }Danach hat es geklappt

    Pinguin Dev, ich sehe kein unterschied, außer das die Klammern weg sind.
    Und was ist mit der Überprüfung dass man nicht an sich selber zahlen kann?

    Asso, also muss ich folgendes ersetzen mit dem alten?
    if(GetPlayerMoney(playerid)>pay) return SendclientMessage(playerid,grey,"Du hast nicht genügend Geld.");
    LG

    Frage ich nicht mit
    if(GetPlayerMoney(playerid)<pay) return SendClientMessage(playerid,Grey,"Du hast nicht genügend Geld vorhanden.");
    Ob er genügend Geld hat?


    LG

    ocmd:pay(playerid,params[])
    {
    new pID, pay, string[128], string2[128];
    if(sscanf(params,"ui",pID,pay)) return SendClientMessage(playerid,Grey,"Nutze: /pay [Spieler/ID][Betrag]");
    if(pay<1||pay>50000) return SendClientMessage(playerid,Grey,"Du kannst nur bis 1 Million $ zahlen!");
    {
    if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,Grey,"Dieser Spieler ist nicht Online.");
    {
    if(GetPlayerMoney(playerid)<pay) return SendClientMessage(playerid,Grey,"Du hast nicht genügend Geld vorhanden.");
    {
    if(pID==playerid) return SendClientMessage(playerid,Grey,"Du kannst dir nicht selber Geld zahlen.");
    {
    GivePlayerMoney(pID,pay);
    GivePlayerMoney(playerid,-pay);
    format(string,sizeof(string),"Spieler %s hat dir %i$ bezahlt.",pName(playerid),pay);
    SendClientMessage(pID,LightYellow,string);
    format(string2,sizeof(string2),"Du hast dem Spieler %s %i$ gezahlt.",pName(pID),pay);
    SendClientMessage(playerid,LightYellow,string2);
    }
    }
    }
    }
    return 1;
    }


    Wo ist der Fehler? Ich kann trotzdem zahlen wenn ich im Minus bin und an mich selbst.


    LG

    Achja, wenn du so das Level speichern willst, würde ich dir empfehlen, es nicht direkt in deine Spielerdaten zu schieben, sondern es davor mit strval in einen Integer zu konvertieren, da dein Level keinen String aufnehmen kann.


    LG


    Das Level, wird in meiner Datenbank als INT abgespeichert, weshalb es doch nicht als string ausgegeben werden dürfte.
    Oder meinen sie, dass ich die Variable als INT speichern soll?


    Gruß - Kazuto


    PS: Meine Scripting Erfahrung ist noch nicht so hoch, deshalb bitte ich hier um Entschuldigung.

    Du oben in deinem Beispielcode musst einfach nur folgendes ändern:
    Dein SpielerINfo..... = setzt du einfach an das 3. Argument von cache_get_field_content, also wo jetzt dein Kommentar steht.


    LG


    Da ich erst später den Test durchführen werde, kann ich noch nichts dazu sagen, außer dass es keine Errors gab.
    Doch bedanke ich mich für Ihre Hilfe und Zeit.
    Damit ist das Thema erledigt und bei Problemen würde ich mich freuen, wenn ich Sie kontaktieren dürfte.


    Gruß - Kazuto

    Nein, einfach deine Variable in Pawn, was denn auch sonst.


    LG


    Es tut mir leid, wenn ich Ihre Zeit beraube oder Ihnen eine schlechte Laune gebe.
    Doch verstehe ich nicht, worauf Sie hinaus wollen.

    SpielerInfo[playerid][sLevel] = cache_get_field_content(4,"level",/*WARTE AUF ANTWORT*/"",mysqlhandle);

    Ich wüsste selbst nach dieser Erklärung nicht, was ich dort eintragen müsste.
    Tut mir leid für mein schlechtes Verständnis, doch manchmal brauche ich eine genauere Erklärung, über die Lösung.


    Gruß - Kazuto