Beiträge von Jeffry

    PStar:
    public OnPlayerDisconnect(playerid, reason)
    {
    new string[128];
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    new interior = GetPlayerInterior(interior);
    new vworld = GetPlayerVirtualWorld(vworld);
    dini_IntSet(Spielerdatei,"Interior", interior);
    dini_IntSet(Spielerdatei,"VWorld", vworld);
    return 1;
    }

    Setzt du beim Registrieren das hier auch auf 1?
    AccountInfo[playerid][eingeloggt]


    So wie du das beschrieben hast, klingt es ganz danach als machst du das nicht. Das würde genau zur Fehlerbeschreibung passen.


    PS: Du bist einer der Wenigen der sein Problem wirklich gut beschreibt. Top!

    Woran könnte es liegen, dass die Textdraws bei einem Restart langsam laden oder sich das Spiel aufhängt?
    Kann es auch am Server liegen?


    Da gibt es mehrere Möglichkeiten.


    Extrem schlechter Code der laggt.
    MySQL Verbindung zu einer externen Datenbank die keine Rückmeldung gibt.
    Schlechte CPU am Server (relativ unwahrscheinlich)


    Kann an allem möglichen liegen. Falls du Backups hast (wenn nicht rate ich es dir dringend von nun an mindestens ein mal am Tag zu machen!) prüfe, ob es dort auch ist. Wenn nicht, füge Stück für Stück deine Neuerungen wieder hinzu.

    Passiert das wenn DU es machst, oder einfach zufällig irgendwann?


    Wenn es passiert wenn du es machst, dann nimm die Log Funktion aus der Schleife und setze es unter das format.

    public OnPlayerTakeDamage(playerid, issuerid, Float:amount, weaponid, bodypart)
    {
    if(issuerid != INVALID_PLAYER_ID && weaponid == 25)
    {
    new Float:extra = 20.0;
    new Float:a, Float:h;
    GetPlayerArmour(playerid, a);
    GetPlayerHealth(playerid, h);
    a -= (amount + extra);
    if(a < 0) h += a;
    SetPlayerArmour(playerid, a);
    SetPlayerHealth(playerid, h);
    }
    return 1;
    }


    Sollte klappen. (Außer die Health/Armour wird schon vor dem callback abgezogen, dann muss man das "amount" aus der Rechnung nehmen.)
    extra = Menge der zusätzlich abgezogenen Menge.

    ,Text:Introdraw[5]
    ,Text:InfoSign
    ,Text:Spawnkilldraw; //hier ist der Fehler.
    ,Text:TutorialText1
    ,Text:TutorialText2


    An der markierten Stelle das Semikolon am Ende weg machen.

    Kannst du von dem Teil hier:
    ,Text:TutorialText1 <------ Zeile 4555
    ,Text:TutorialText2
    ,Text:LoadScreen[15]


    die Zeilen die davor und danach noch dazugehören auch posten?
    Weil so macht das wenig Sinn, das Komma gehört eigentlich ans Ende.

    Syno: Dann würde es ja immer die Nachricht ausgeben es seinen zu wenig Spieler vorhanden, außer wenn kein Spieler da ist.



    Wie viele Spieler sollen denn in dem anderen Team überhaupt sein. Ich mach dir mal ein paar Vorschläge.


    Zwei Spieler benötigt.
    if(Mindestens1SpielerAT<=1) return SendClientMessage(playerid,fRS,"Es sind zu wenig Gegner vorhanden.");


    Ein Spieler benötigt.
    if(Mindestens1SpielerAT<1) return SendClientMessage(playerid,fRS,"Es sind zu wenig Gegner vorhanden.");


    Falls du es mit zwei Spielern haben willst, also so wie du es hast, dann solltest du wie ich bereits sagte, etwas mehr Code posten. Falls du einen Spieler im Team haben willst (ein Spieler Team?) dann so wie beschrieben.

    Wie ich bereits im ersten Post sagte:
    ocmd@2:hausverkaufen,sellhaus(playerid,p[])
    {
    new str[128];
    new h_id = NearestHaus(playerid);
    if(h_id == -1)return SendClientMessage(playerid,-1,"Du bist nicht in der Nähe eines Hauses!");
    if(strcmp(Haus[h_id][haus_besitzer],Name(playerid),false))return SendClientMessage(playerid,-1,"Dieses Haus gehört dir nicht!");


    GivePlayerMoney(playerid,Haus[h_id][haus_preis]);
    format(Haus[h_id][haus_besitzer],MAX_PLAYER_NAME,"Niemand");
    Haus[h_id][haus_lock] = 1;
    format(str,128,"Hausnummer: %i\nBesitzer: Niemand\nLevel: %d\nPreis: $%d\n\nStatus: '%s'",Haus[h_id][haus_id],Haus[h_id][haus_level],Haus[h_id][haus_preis],(Haus[h_id][haus_lock] == 1) ? ("geschlossen") : ("geöffnet"));
    DestroyDynamic3DTextLabel(Haus[h_id][haus_label]),DestroyDynamicMapIcon(Haus[h_id][haus_icon]);
    Haus[h_id][haus_icon] = CreateDynamicMapIcon(Haus[h_id][haus_x],Haus[h_id][haus_y],Haus[h_id][haus_z],31,-1,-1,-1,-1,H_DIS);
    Haus[h_id][haus_label] = CreateDynamic3DTextLabel(str,-1,Haus[h_id][haus_x],Haus[h_id][haus_y],Haus[h_id][haus_z],20,INVALID_PLAYER_ID,INVALID_VEHICLE_ID,0,-1,-1,-1,100);
    Haus[h_id][haus_vkt] = 0;
    SaveHauser();
    SetPVarInt(playerid,"Haus",0);
    return SendClientMessage(playerid,-1,"Du hast das Haus erfolgreich verkauft.");
    }


    Du weißt, dass es auch "UpdateDynamic3DTextLabelText" gibt, oder? Du musst es nicht löschen und wieder erstellen, außer das ist so beabsichtigt.