Float Kommastellen Berechnung/Geld beim Connect??

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
  • Hey Leute ich hab bei meinem kleinen DM Script 2 kleine Fehler die ich nicht beheben kann^^


    Das 1. Problem ist das wohl einfachere
    Ich möchte wenn man /stats tipp die K/D(Kill/Death Quote) des Spielers ausrechen aber obwohl ich es als Float angegeben habe rundet es immer auf .0
    ocmd:stats(playerid,params[])
    {
    #pragma unused params
    new zeile1[128],zeile2[128],zeile3[128],zeile4[128],Float:kd;
    kd = pInfo[playerid][Kills]/pInfo[playerid][Tode];
    format(zeile1,sizeof(zeile1),"**************************************Statistik**************************************");
    format(zeile2,sizeof(zeile2),"[Name: %s] [Geld: %i] [Level: %i] [Adminlevel: %i]",Spielername(playerid),GetPlayerCash(playerid),GetPlayerScore(playerid),pInfo[playerid][Adminlevel]);
    format(zeile3,sizeof(zeile3),"[Kills: %i] [Tode: %i] [K/D: %f] [Wanteds: %i]",pInfo[playerid][Kills],pInfo[playerid][Tode],kd,pInfo[playerid][Wanteds]);
    format(zeile4,sizeof(zeile4),"*************************************************************************************");
    SCM(playerid,weiß,zeile1);
    SCM(playerid,weiß,zeile2);
    SCM(playerid,weiß,zeile3);
    SCM(playerid,weiß,zeile4);
    return 1;
    }
    Wenn ich zum Beispiel 28Kills und 17Tode habe würde im Spiel dastehen 1.0000000 Ich möchte aber dass 1.647 oder 1.68 oder ähnliches angezeigt wird


    Das 2. Problem ist schon merkwürdiger Jedesmal wenn man sich einloggt bekommt man 115€ gutgeschrieben o_O Obwohl nichts dergleichen im Script geschrieben wurde weder beim Login noch bei OnPlayerConnect noch sonst wo
    Aber hier trotzdem mal die Callbacks
    public OnPlayerConnect(playerid)
    {
    if(fexist(getINI(playerid)))
    {
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","Dein Account wurde gefunden. Bitte gib dein Passwort ein.","Login","Abbrechen");
    }
    else
    {
    ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Registration","Dieser Account existiert nicht. Bitte gib dein gewünschtes Passwort ein","Registrieren","Abbrechen");
    }
    ResetPlayerCash(playerid);

    //WantedZahl
    TextDrawShowForPlayer(playerid,Stern);

    WtdZahl[playerid] = CreatePlayerTextDraw(playerid, 528 ,98 ,"0");
    PlayerTextDrawFont(playerid,WtdZahl[playerid] , 2);
    PlayerTextDrawLetterSize(playerid,WtdZahl[playerid] , 0.5, 2.8);
    PlayerTextDrawColor(playerid,WtdZahl[playerid] , 0xFEFEFEFF);
    PlayerTextDrawSetOutline(playerid, WtdZahl[playerid] , true);
    PlayerTextDrawSetProportional(playerid,WtdZahl[playerid] , true);
    PlayerTextDrawSetShadow(playerid,WtdZahl[playerid] , 1);

    return 1;
    }
    public OnPlayerSpawn(playerid)
    {
    new WtdAnzahl[10];
    format(WtdAnzahl,sizeof(WtdAnzahl),"%i",pInfo[playerid][Wanteds]);
    PlayerTextDrawShow(playerid,WtdZahl[playerid]);
    PlayerTextDrawSetString(playerid,WtdZahl[playerid],WtdAnzahl);
    PlayerTextDrawShow(playerid,WtdZahl[playerid]);
    return 1;
    }
    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    switch(dialogid)
    {
    case DIALOG_REGISTER:
    {
    if(!response)return Kick(playerid);
    if(response)
    {
    if(!strlen(inputtext))
    {
    ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Registration","Dieser Account existiert nicht. Bitte gib dein gewünschtes Passwort ein","Registrieren","Abbrechen");
    }
    if(INI_Open(getINI(playerid)))
    {
    INI_WriteString("Passwort",inputtext);
    INI_WriteInt("Level",1);
    INI_WriteInt("Geld",2000);
    INI_WriteInt("Adminlevel",0);
    INI_WriteInt("Kills",0);
    INI_WriteInt("Tode",0);
    INI_WriteInt("Wanteds",0);
    INI_WriteInt("Warns",0);
    INI_WriteInt("Banned",0);

    INI_Save();
    INI_Close();
    SCM(playerid,grün,"Du hast dich erfolgreich registriert. Nun logge dich mit deinem Passwort ein.");
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","Dein Account wurde gefunden. Bitte gib dein Passwort ein.","Login","Abbrechen");
    }
    }
    }
    case DIALOG_LOGIN:
    {
    if(!response)return Kick(playerid);
    if(response)
    {
    if(!strlen(inputtext))
    {
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","Dein Account wurde gefunden. Bitte gib dein Passwort ein.","Login","Abbrechen");
    }
    if(INI_Open(getINI(playerid)))
    {
    INI_ReadString(pInfo[playerid][Passwort],"Passwort",20);
    if(strcmp(inputtext,pInfo[playerid][Passwort],false))
    {
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","Dein Account wurde gefunden. Bitte gib dein Passwort ein.","Login","Abbrechen");
    SCM(playerid,rot,"Falsches Passwort");
    }
    else
    {
    new Nachricht[128];
    format(Nachricht,sizeof(Nachricht),"%s hat den Server betreten",Spielername(playerid));
    SCMTA(gelb,Nachricht);


    SetPlayerScore( playerid, INI_ReadInt("Level" ) );
    ResetPlayerMoney( playerid );
    GivePlayerCash( playerid, INI_ReadInt( "Geld" ) );
    pInfo[playerid][Adminlevel] = INI_ReadInt("Adminlevel");
    pInfo[playerid][Kills] = INI_ReadInt("Kills");
    pInfo[playerid][Tode] = INI_ReadInt("Tode");
    pInfo[playerid][Wanteds] = INI_ReadInt("Wanteds");
    pInfo[playerid][Warns] = INI_ReadInt("Warns");
    pInfo[playerid][Banned] = INI_ReadInt("Banned");
    INI_Close();
    SCM(playerid,grün,"Erfolgreich eingeloggt");
    }
    }
    }
    }
    }
    return 1;
    }


    Ich hoffe jemand kann mir helfen


    MfG
    MrMonkey

  • Oh Stimmt ich hab GivePlayerCash etc. vergessen
    das hab ich aus einem Tutorial aus dem englischen Forum und noch bisschen angepasst


    //SERVERSIDE MONEY
    stock GivePlayerCash(playerid, money)
    {
    pInfo[playerid][Geld] += money;
    ResetMoneyBar(playerid);
    UpdateMoneyBar(playerid,pInfo[playerid][Geld]);
    return pInfo[playerid][Geld];
    }
    stock SetPlayerCash(playerid, money)
    {
    pInfo[playerid][Geld] = money;
    ResetMoneyBar(playerid);
    UpdateMoneyBar(playerid,pInfo[playerid][Geld]);
    return pInfo[playerid][Geld];
    }
    stock ResetPlayerCash(playerid)
    {
    pInfo[playerid][Geld] = 0;
    ResetMoneyBar(playerid);
    UpdateMoneyBar(playerid,pInfo[playerid][Geld]);
    return pInfo[playerid][Geld];
    }
    stock GetPlayerCash(playerid)
    {
    return pInfo[playerid][Geld];
    }


    Ich teste mal kurz eure Vorschläge wegen dem Float^^


    /edit:
    Kaliber: das verändert ja nur die Anzahl an Kommastellen aber ich meinte hauptsächlich, dass die Kommastellen zu sehr gerundet wurden aber egal habs trotzdem drin gelassen :thumbup:
    Haxler: DANKE hat funktioniert jetzt wird es genau angezeigt

    Einmal editiert, zuletzt von MrMonkey ()