Server schaltet sich ab

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
  • Beitrag von Shayden ()

    Dieser Beitrag wurde vom Autor aus folgendem Grund gelöscht: Gelöst ().
  • Also als erstes solltest du noch prüfen ob pID überhaupt connected ist...wenn das nichts hilft, nutze mal crashdetect und schau, was die Fehlermeldung so sagt :)

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • SendClientMessage(pID,COLOR_GREY,"Der Spieler %s möchte dir eine Reparatur anbieten.");


    Zu
    new str[145];
    GetPlayerName(playerid, name, MAX_PLAYER_NAME);
    format(str, sizeof(str), "Der Spieler %s möchte dir eine Reparatur anbieten.", str);
    SendClientMessage(pID,COLOR_GREY,str);


    Gleiches Prinzip für diese Nachricht:
    SendClientMessage(playerid,COLOR_GREY,"Du hast %s eine Reparatur anfrage gesendet!");

  • Beitrag von Shayden ()

    Dieser Beitrag wurde vom Autor aus folgendem Grund gelöscht: Fail ().
  • Also ich habe anscheinend GetPlayerName vergessen..


    Allerdings crasht es jetzt wenn ich /accept eingebe


    Code:
    ocmd:accept(playerid, params[])
    {
    new item[64];
    if(sscanf(params,"s[64]",item))return SendClientMessage(playerid, COLOR_RED, "INFO: /accept [reparatur]");
    if(!strcmp(item, "reparatur", false))
    {
    if(GetPVarInt(playerid, "repid") == 0)return SendClientMessage(playerid, COLOR_GREY, "Dir wurde keine Reparatur anfrage gesendet!");
    sSpieler[playerid][pRepaf] = 0;
    SetPVarInt(playerid, "repid", 0);
    if(IsPlayerInAnyVehicle(playerid))
    {
    new vID;
    RepairVehicle(vID);
    }
    return 1;
    }
    return 1;
    }




    ocmd:repairv(playerid, params[])
    {
    new pID;
    if(sscanf(params,"u",pID))
    {
    return SendClientMessage(playerid,COLOR_GREY,"Verwendung : {EB0000} /repairv [ID]");
    }
    if(IsPlayerConnected(pID))
    {
    if(IsPlayerInRangeOfPoint(playerid,8.0,204.2520,-229.7880,1.7790))
    {
    if(IsPlayerInRangeOfPoint(pID,8.0,204.2520,-229.7880,1.7790))
    {
    if(IsPlayerInAnyVehicle(pID))
    {
    if(sSpieler[pID][pGeld] >= 5000)
    {
    if(sSpieler[playerid][pFraktion] == 5)
    {
    new str[145];
    new name[64];
    GetPlayerName(playerid, name, MAX_PLAYER_NAME);
    format(str, sizeof(str), "Der Spieler %s möchte dir eine Reparatur anbieten.", name);
    SendClientMessage(pID,COLOR_GREY,str);
    SendClientMessage(pID,COLOR_GREY,"Tippe einfach /accept reparatur ein um diese zu akzeptieren!");
    sSpieler[playerid][pRepaf] = 1;
    SendClientMessage(playerid,COLOR_GREY,"Du hast %s eine Reparatur anfrage gesendet!");
    SetPVarInt(pID, "repid", 1);
    printf("Spieler ID %i ist Connectet!", pID);
    }
    else
    {
    SendClientMessage(playerid,COLOR_GREY,"Du bist kein {EB0000}Mechanikerr.");
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid,COLOR_GREY,"Der Spieler hat keine {EB0000}5000$");
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid,COLOR_GREY,"Der Spieler ist in keinem {EB0000}Fahrzeug!");
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid,COLOR_GREY,"Dieser Spieler ist nicht am {EB0000}Repairpoint");
    return 1;
    }
    }
    }
    else
    {
    SendClientMessage(playerid,COLOR_GREY,"Du bist nicht am {EB0000}Repairpoint");
    return 1;
    }
    return 1;
    }

  • Also ich habe anscheinend GetPlayerName vergessen..

    Unter anderem. Vor allem aber hat das format gefehlt, daher der Absturz, da Platzhalter (%s, %d, ...) nicht in SendClientMessage möglich sind.


    Hier fehlt nach wie vor das format:
    SendClientMessage(playerid,COLOR_GREY,"Du hast %s eine Reparatur anfrage gesendet!");


    Passe das an zu:
    GetPlayerName(pID, name, MAX_PLAYER_NAME);
    format(str, sizeof(str), "Du hast %s eine Reparatur anfrage gesendet!", name);
    SendClientMessage(playerid,COLOR_GREY,str);