Beiträge von Ap0llinaris

    Er zeigt mir ingame immer 0 an:

    public UpdateSpeed()
    {
    new Float:x, Float:y, Float:z;
    new string[256], string2[256], string3[256], namestring[256];
    for(new i = 0; i<SLOTS; i++)
    {
    if(IsPlayerConnected(i) && IsPlayerInAnyVehicle(i))
    {
    new const vehicleid = GetPlayerVehicleID(i);
    new vehiclee = GetPlayerVehicleID(i);
    new Float:speed = GetVehicleSpeed_P(i);
    new Float:memory[3]={0.00,0.00,0.00 };
    GetVehicleVelocity(vehicleid,memory[0],memory[1],memory[2]);
    LastSpeed[i] = speed;
    new Float:damage;
    damage = GetVehicleHealth(i, damage);
    //damage = damage / 10;
    if(!IsAFahrrad(vehiclee))
    {
    format(string, sizeof(string), "%d", floatround(speed));
    TextDrawSetString(Speedo11[i], string);
    format(string2, sizeof(string2), "%d",Gas[GetPlayerVehicleID(i)]);
    TextDrawSetString(Speedo12[i], string2);
    format(string3, sizeof(string3), "%d", damage);
    TextDrawSetString(Speedo13[i], string3);
    format(namestring, sizeof(namestring), "%s", FahrzeugName[GetVehicleModel(GetPlayerVehicleID(i))-400]);
    TextDrawSetString(Speedo1[i], namestring);
    }
    }
    SavePlayerPos[i][LastX] = x;
    SavePlayerPos[i][LastY] = y;
    SavePlayerPos[i][LastZ] = z;
    }
    }


    HAb schon mit floatround versucht, mit dem / 10 machen.
    Nichts funktioniert. Immer nur Schaden: 0


    damage = GetVehicleHealth(i, damage)\10;

    So hab ichs jetzt.
    Fehler:



    Wie teilt man denn die Variable (damage) durch 10?

    So hab mal versucht es einzufügen aber kriege immer Probleme:



    public UpdateSpeed()
    {
    new Float:x, Float:y, Float:z;
    new string[256], string2[256], string3[256], namestring[256];
    for(new i = 0; i<SLOTS; i++)
    {
    if(IsPlayerConnected(i) && IsPlayerInAnyVehicle(i))
    {
    new const vehicleid = GetPlayerVehicleID(i);
    new vehiclee = GetPlayerVehicleID(i);
    new Float:speed = GetVehicleSpeed_P(i);
    new Float:memory[3]={0.00,0.00,0.00 };
    GetVehicleVelocity(vehicleid,memory[0],memory[1],memory[2]);
    LastSpeed[i] = speed;
    new Float:damage;
    damage = GetVehicleHealth(i)\10;
    if(!IsAFahrrad(vehiclee))
    {
    format(string, sizeof(string), "%d", floatround(speed));
    TextDrawSetString(Speedo11[i], string);
    format(string2, sizeof(string2), "%d",Gas[GetPlayerVehicleID(i)]);
    TextDrawSetString(Speedo12[i], string2);
    format(string3, sizeof(string3), "%d%", damage);
    TextDrawSetString(Speedo13[i], string3);
    format(namestring, sizeof(namestring), "%s", FahrzeugName[GetVehicleModel(GetPlayerVehicleID(i))-400]);
    TextDrawSetString(Speedo1[i], namestring);
    }
    }
    SavePlayerPos[i][LastX] = x;
    SavePlayerPos[i][LastY] = y;
    SavePlayerPos[i][LastZ] = z;
    }
    }


    Hier meine Fehler & Warnungen:


    Irgendwie fühl ich mich von Rockstar verarscht.
    Ich steh auf, denk Juchu, neuer Trailer.
    Guck auf Rockstargames.com


    8 Stunden.. -.-


    Jetzt noch bis 17 Uhr warten?
    Die halten uns doch für Blöd!

    Hallo Breadfish,


    Ich habe derzeit ein kleines Problem.


    Ich brauche eine Berechnung für den Schaden der durch GetVehicleHealth abgefragt wird.


    Als ich letztens einen neuen Float erstellt habe, und dort den Schaden abgespeichert habe, wollte ich ihn durch einen TextDraw ausgeben für einen Tacho.
    Im Godfather habe ich bis jetzt keine Schadensberechnung gefunden, und das Internet bin ich auch schon seit mehreren Tagen am durchforsten nach Sachen wie


    "Schadens Berechnung" / "Vehicle Damage SAMP" oder ähnliches.


    Finde leider nichts.
    Ich hoffe ihr könnt mir helfen, damit ich endlich nichtmehr im Tacho "Schaden: In Arbeit" stehen habe.
    Ich wollte es auch noch in % umwandeln. Das heißt 1000 Schaden = 100%, 750 Schaden = 75% usw.


    Kann mir da jemand helfen?
    Nach den Sommerferien kamen bei uns die 3 Praktikumswochen + Herbstferien, wo ich sehr sehr viel verlernt habe.
    Vor den Sommerferien stand ich noch 2 auf dem Zeugnis in Mathe, und jetzt hab ich echt sehr sehr viel verlernt. ( Da wird mein Mathe Lehrer staunen da ich sonst nie was vergesse. :pinch: )


    Vielen Dank im Vorraus! :)

    Ich würde dir zu OCMD + SSCANF raten.
    Ist einfach einzufügen.
    OCMD Include suchen. ( Klick )
    SSCANF Code suchen. ( Klick )


    Dann einfach so ca.:

    ocmd:heal(playerid, params[])
    {
    new money, pID;
    if(sscanf(params,"ii", pID, money))return SendClientMessage(playerid, farbe, "Benutze: /heal ID Preis");
    if(GetPlayerSkin(playerid) != 124 || GetPlayerSkin(playerid) != 274)return SendClientMessage(playerid, farbe, "Du brauchst den Medic-Skin.");
    if(money < 0 || money > 1000)return SendClientMessage(playerid, farbe, "Preis nicht unter 0 oder über 1000!");
    if(GetPlayerMoney(pID) < money)return SendClientMessage(playerid, farbe, "Der Spieler hat nicht genug Geld.");
    new sendername[MAX_PLAYER_NAME];
    new giveplayer[MAX_PLAYER_NAME];
    GetPlayerName(playerid, giveplayer, sizeof(giveplayer));
    GetPlayerName(pID, sendername ,sizeof(sendername));
    format(string, sizeof(string), "Du wurdest von Medic %s geheilt für $%d.", giveplayer, money);
    SendClientMessage(pID, farbe, string);
    format(string ,sizeof(string), "Du hast %s für $%d geheilt.", sendername, money);
    SendClientMessage(playerid, farbe, string);
    SetPlayerHealth(pID, 100);
    return 1;
    }


    Sollte so gehn. :)


    //edit


    Pwn-code vergessen. :rolleyes:

    "Hiermit ernenne ich dich, Goldkiller, zum Wunderknaben." :)


    Hat an der zweiten Abfrage gelegen.
    Aber jetzt hab ich noch 1 Problem.


    Ich habe ein Tank-System im Script drin.
    Wenn man bei tEntranceX, tEntranceY, tEntranceZ ist soll man /fill machen können.
    Nur das geht nicht, ich bekomme immer angezeigt bei einer Tankstelle "Du bist an keiner Tankstelle."


    Keine Ahnung was das ist. -.-

    Habe mal



    //GivePlayerMoney(playerid, -HouseInfo[key][hRent]);
    print("Debug 3.8.4");
    //HouseInfo[key][hTakings] = HouseInfo[key][hTakings]+HouseInfo[key][hRent];
    print("Debug 3.8.5");


    Ausgeklammert.
    Nun geht alles.
    Aber ich will trotzdem noch die beiden Sachen drin haben, sonst gibts ja garkeine Miete und so. :(

    Der Debug kommt nur bis Debug 3 und weiter nicht:



    print("Debug3");
    format(string, sizeof(string), " Kontostand: $%d", PlayerInfo[playerid][pAccount]);
    SendClientMessage(playerid, COLOR_WHITE, string);
    format(string, sizeof(string), " Zinssrate: 0.%d Prozent",tmpintrate);
    SendClientMessage(playerid, COLOR_WHITE, string);
    format(string, sizeof(string), " Zinsen erhalten: $%d", interest);
    SendClientMessage(playerid, COLOR_WHITE, string);
    PlayerInfo[playerid][pAccount] += interest;
    if(PlayerInfo[playerid][pPhousekey] != 255 || PlayerInfo[playerid][pPbiskey] != 255)
    {
    format(string, sizeof(string), " Miete: -$%d", rent);
    SendClientMessage(playerid, COLOR_WHITE, string);
    GivePlayerMoney(playerid, -HouseInfo[key][hRent]);
    HouseInfo[key][hTakings] = HouseInfo[key][hTakings]+HouseInfo[key][hRent];
    }
    print("Debug4");


    hmm ,ich verstehs nicht. :S

    Man kanns auch kürzer machen und Zeilen sparen:



    if(!IsPlayerInRangeOfPoint(playerid, RADI, X,Y,Z)return SendClientMessage(playerid, COLOR_WHITE, "Nicht am AD Punkt");
    else if(!IsPlayerInRangeOfPoint(playerid, RADI, X,Y,Z)return SendClientMessage(playerid, COLOR_WHITE, "Nicht am AD Punkt");


    ;)


    //Edit


    Kein " gemacht am ende vom ersten SendClientMessage


    //Edit


    Beim zweiten SendClientMessage ebenso.. :pinch:

    Die Timer werden ab folgenden Stellen entfernt und hinzugefügt:



    OnPlayerDisconnect
    KillTimer(paydaycount[playerid]);
    SetPlayerSpawn
    if(PlayerInfo[playerid][pJailed] == 2)// PRISON INTERRIOR NACH EINLOGGEN
    {
    SetPlayerInterior(playerid,1);
    SetPlayerPos(playerid,2144.3718,1617.5007,993.6882);
    KillTimer(paydaycount[playerid]);
    return 1;
    }
    /prison Befehl
    KillTimer(paydaycount[giveplayerid]);


    Das mit Debug probier ich jetzt aus. ;)


    //Edit


    Debug-Ergebnisse:



    Hier noch PayDay public. ;)



    public PayDay(playerid)
    {
    new string[128];
    new interest;
    new playername2[MAX_PLAYER_NAME];
    new key = PlayerInfo[playerid][pPhousekey];


    if(IsPlayerConnected(playerid))
    {
    PlayerInfo[playerid][pAccount] -= TaxValue;
    if(PlayerInfo[playerid][pDonateRank] > 0)
    {
    new bonus = PlayerInfo[playerid][pPayCheck] / 2;
    PlayerInfo[playerid][pPayCheck] += bonus;
    }


    new checks = PlayerInfo[playerid][pPayCheck];
    new ebill = (PlayerInfo[playerid][pAccount]/1000000)*(PlayerInfo[playerid][pLevel]);
    new rent = (PlayerInfo[playerid][pAccount]/1000000) *(PlayerInfo[playerid][pLevel]);
    ConsumingMoney[playerid] = 1;
    PlayerMoney[playerid] = PlayerMoney[playerid] += checks;
    if(PlayerInfo[playerid][pAccount] > 0)
    {
    PlayerInfo[playerid][pAccount] -= ebill;
    SBizzInfo[4][sbTill] += ebill;
    ExtortionSBiz(4, ebill);
    }
    else
    {
    ebill = 0;
    rent = 0;
    }
    new tmpintrate;
    if (key != 255 && strcmp(playername2, HouseInfo[key][hOwner], true) == 0)
    {
    if(PlayerInfo[playerid][pDonateRank] > 0) { tmpintrate = intrate+4; }
    else { tmpintrate = intrate+1; }//HouseInfo[key][hLevel]
    }
    else
    {
    if(PlayerInfo[playerid][pDonateRank] > 0) { tmpintrate = 3; }
    else { tmpintrate = 1; }
    }
    interest = (PlayerInfo[playerid][pAccount]/1000)*(tmpintrate);
    PlayerInfo[playerid][pExp]++;
    PlayerPlayMusic(playerid);
    GivePlayerMoney(playerid, 15000);
    SendClientMessage(playerid, COLOR_GREEN, "|___ PAYDAY/ZAHLTAG ___|");
    format(string, sizeof(string), " Gehalt: $15000 Steuern: -$%d", Tax);
    SendClientMessage(playerid, COLOR_WHITE, string);
    if(PlayerInfo[playerid][pPhousekey] != 255 || PlayerInfo[playerid][pPbiskey] != 255)
    {
    format(string, sizeof(string), " Stromkosten: -$%d", ebill);
    SendClientMessage(playerid, COLOR_WHITE, string);
    }
    format(string, sizeof(string), " Kontostand: $%d", PlayerInfo[playerid][pAccount]);
    SendClientMessage(playerid, COLOR_WHITE, string);
    format(string, sizeof(string), " Zinssrate: 0.%d Prozent",tmpintrate);
    SendClientMessage(playerid, COLOR_WHITE, string);
    format(string, sizeof(string), " Zinsen erhalten: $%d", interest);
    SendClientMessage(playerid, COLOR_WHITE, string);
    PlayerInfo[playerid][pAccount] += interest;
    if(PlayerInfo[playerid][pPhousekey] != 255 || PlayerInfo[playerid][pPbiskey] != 255)
    {
    format(string, sizeof(string), " Miete: -$%d", rent);
    SendClientMessage(playerid, COLOR_WHITE, string);
    GivePlayerMoney(playerid, -HouseInfo[key][hRent]);
    HouseInfo[key][hTakings] = HouseInfo[key][hTakings]+HouseInfo[key][hRent];
    }
    if(PlayerInfo[playerid][pDonateRank] >= 2)
    {
    SendClientMessage(playerid,COLOR_GOLD," Respektpunkte erhalten: 2");
    PlayerInfo[playerid][pExp] += 2;


    }
    else
    {
    SendClientMessage(playerid,COLOR_WHITE," Respektpunkte erhalten: 1");
    PlayerInfo[playerid][pExp] ++;
    }
    SendClientMessage(playerid, COLOR_WHITE, "|--------------------------------------|");
    format(string, sizeof(string), " Neuer Kontostand: $%d", PlayerInfo[playerid][pAccount]);
    SendClientMessage(playerid, COLOR_WHITE, string);
    if(PlayerInfo[playerid][pZollPass] == 1)
    {
    PlayerInfo[playerid][pZollPassTime] += 1;
    format(string, sizeof(string), "* Du nutzt deinen Zollpass nun schon seit %d PayDays.", PlayerInfo[playerid][pZollPassTime]);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
    }
    if(PlayerInfo[playerid][pZollPassTime] >= 25)
    {
    PlayerInfo[playerid][pZollPass] = 0;
    PlayerInfo[playerid][pZollPassTime] = 0;
    format(string, sizeof(string), "* Dein Zollpass ist nun nicht mehr gültig und vom Staat als ungültig anerkannt.");
    SendClientMessage(playerid, COLOR_LIGHTRED, string);
    }
    if(PlayerInfo[playerid][pKrankenkasse] == 1)
    {
    PlayerInfo[playerid][pKrankenkasseTime] += 1;
    format(string, sizeof(string), "* Du besitzt nun schon seit %d PayDays eine Krankenversicherung.", PlayerInfo[playerid][pKrankenkasse]);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
    }
    if(PlayerInfo[playerid][pKrankenkasseTime] >= 20)
    {
    PlayerInfo[playerid][pKrankenkasse] = 0;
    PlayerInfo[playerid][pKrankenkasseTime] = 0;
    format(string, sizeof(string), "* Deine Krankenversicherung ist abgelaufen. Du kannst dir am Krankenhaus jederzeit eine neue besorgen.");
    SendClientMessage(playerid, COLOR_LIGHTRED, string);
    }
    if(PlayerInfo[playerid][pWarns] >= 1)
    {
    PlayerInfo[playerid][pWarnTime] += 1;
    }
    if(PlayerInfo[playerid][pWarnTime] == 150)
    {
    PlayerInfo[playerid][pWarns] = -1;
    }
    if(PlayerInfo[playerid][pPunkte] >= 10)
    {
    SendClientMessage(playerid,COLOR_WHITE,"");
    SendClientMessage(playerid,RED,":::::::::::: STRAFE ::::::::::::");
    SendClientMessage(playerid,COLOR_WHITE,"");
    SendClientMessage(playerid,RED,"Du hast 10 Strafpunkte, somit wurde dir dein Führerschein + Bikeschein entzogen!");
    SendClientMessage(playerid,RED,"Nun musst du als Strafe eine Geldsumme von 50.000$ bezahlen!");
    PlayerInfo[playerid][pPunkte] = 0;
    PlayerInfo[playerid][pMotoLic] = 0; // Bikeschein
    PlayerInfo[playerid][pCarLic] = 0; // Autoschein
    GivePlayerMoney(playerid,-50000);
    }

    format(string, sizeof(string), "~y~Zahltag");
    GameTextForPlayer(playerid, string, 5000, 1);
    PlayerInfo[playerid][pJobzeit] += 1;
    // rent = 0;
    PlayerInfo[playerid][pPayCheck] = 0;
    PlayerInfo[playerid][pConnectTime] += 1;
    if(PlayerInfo[playerid][pDonateRank] > 0)
    {
    PlayerInfo[playerid][pPayDayHad] += 1;
    if(PlayerInfo[playerid][pPayDayHad] >= 2)
    {
    //PlayerInfo[playerid][pExp]++;
    PlayerInfo[playerid][pPayDayHad] = 0;
    }
    }
    new nxtlevel = PlayerInfo[playerid][pLevel]+1;
    new expamount = nxtlevel*levelexp;
    if(PlayerInfo[playerid][pExp] == expamount)
    {
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "* Du kannst dir nun dein nächstes Level erkaufen, /buylevel.");
    }
    // PlayerUpdate(playerid);
    }
    return 1;
    }

    Wäre nett wenn du, oder irgendwer hier mir hilft. :)

    Hallo Leute.


    Ich habe ein Problem.
    Wenn ein Spieler 60 Minuten voll hat, dann kommt es manchmal vor, dass die Paydayzeit nicht auf 0 zurück gesetzt wird, und die Zeit über 60 geht und der Spieler jede Minute 1 Payday kriegt.


    Hier mal der Code



    forward PayDayCount(playerid);
    public PayDayCount(playerid)
    {
    PlayerInfo[playerid][pPayDayTime] ++;
    PlayerInfo[playerid][pConnectTimeM] ++;
    if(PlayerInfo[playerid][pPayDayTime] > 60)
    {
    PayDay(playerid);
    PlayerInfo[playerid][pPayDayTime] = 0;
    }
    }


    //OnPlayerLogin
    paydaycount[playerid] = SetTimerEx("PayDayCount", 60000, true, "i", playerid);


    Kann jemand helfen? :S


    //Edit


    Da war noch ein /pwn .. :S