Crash info + log bugt

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
  • Hi ich habe mal in unseren script crashinfo + log erstellt also log funzt gut aber beim crash ist es so das es 100 gespamt wird


    SendClientMessage(i, COLOR_YELLOW, "%s Hat ein crash."); <<<<<< Hir restartet die gm dann immmer beim crash
    format(string, sizeof(string), "%s Hat ein crash", sendername); <<<<<<< Hir wird es 100 mal gespamt


    Findet einer mein Fehler ?
    Pls help


    if(reason == 0)
    {
    PlayerInfo[playerid][pCrashed] = 1;
    for(new slot = 0; slot != 12; slot++)
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    new wep, ammo;
    GetPlayerWeaponData(playerid, slot, wep, ammo);


    new sendername[MAX_PLAYER_NAME];
    new string[128];
    GetPlayerName(playerid, sendername, sizeof(sendername));
    SendClientMessage(i, COLOR_YELLOW, "%s Hat ein crash.");
    // format(string, sizeof(string), "%s Hat ein crash", sendername);
    Craschlog(string);
    BroadCast(COLOR_WHITE,string);
    if(wep != 0 && ammo != 0)
    {
    if(PlayerInfo[playerid][pGun1] == 0) { PlayerInfo[playerid][pGun1] = wep; PlayerInfo[playerid][pAmmo1] = ammo; }
    else if(PlayerInfo[playerid][pGun2] == 0) { PlayerInfo[playerid][pGun2] = wep; PlayerInfo[playerid][pAmmo2] = ammo; }
    else if(PlayerInfo[playerid][pGun3] == 0) { PlayerInfo[playerid][pGun3] = wep; PlayerInfo[playerid][pAmmo3] = ammo; }
    else if(PlayerInfo[playerid][pGun4] == 0) { PlayerInfo[playerid][pGun4] = wep; PlayerInfo[playerid][pAmmo4] = ammo; }
    }
    }
    }
    }

    Lust auf russisch roulette ?
    Okay...
    ... Ich hol mal meine Automatik ;D

  • kein wunder, wenn du für for(new Max Players) machst und dann sendclient message mit i statt playerid,dann sendet der die nachricht nicht an alle spieler 1 mal sonder so oft wie alle spieler da sind also z.B 100 wegen 100 slots oder so :D
    Mach das for(new i = 0; i < MAX_PLAYERS; i++) raus und ändere SendClientMessage(i, COLOR_YELLOW, "%s Hat ein crash.");
    In:  
    format(string, sizeof(string), "%s Hat ein crash", sendername);
    SendClientMessageToAll(COLOR_YELLOW, string);

    //Edit so BraodCast brauchste nicht hast ja MessageToAll

    if(reason == 0)
    {
    PlayerInfo[playerid][pCrashed] = 1;
    for(new slot = 0; slot != 12; slot++)
    {
    new wep, ammo;
    GetPlayerWeaponData(playerid, slot, wep, ammo);
    new sendername[MAX_PLAYER_NAME],string[128];
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string, sizeof(string), "%s Hat ein crash", sendername);
    SendClientMessageToAll(COLOR_YELLOW, string);
    Craschlog(string);
    //BroadCast(COLOR_WHITE,string);
    if(wep != 0 && ammo != 0)
    {
    if(PlayerInfo[playerid][pGun1] == 0) { PlayerInfo[playerid][pGun1] = wep; PlayerInfo[playerid][pAmmo1] = ammo; }
    else if(PlayerInfo[playerid][pGun2] == 0) { PlayerInfo[playerid][pGun2] = wep; PlayerInfo[playerid][pAmmo2] = ammo; }
    else if(PlayerInfo[playerid][pGun3] == 0) { PlayerInfo[playerid][pGun3] = wep; PlayerInfo[playerid][pAmmo3] = ammo; }
    else if(PlayerInfo[playerid][pGun4] == 0) { PlayerInfo[playerid][pGun4] = wep; PlayerInfo[playerid][pAmmo4] = ammo; }
    }
    }
    }

  • Frage, was soll das eigentlich bringen? :D for(new slot = 0; slot != 12; slot++)

    Lösches raus:


    if(reason == 0)
    {
    PlayerInfo[playerid][pCrashed] = 1;
    new wep, ammo;
    GetPlayerWeaponData(playerid, slot, wep, ammo);
    new sendername[MAX_PLAYER_NAME],string[128];
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string, sizeof(string), "%s Hat ein crash", sendername);
    SendClientMessageToAll(COLOR_YELLOW, string);
    Craschlog(string);
    if(wep != 0 && ammo != 0)
    {
    if(PlayerInfo[playerid][pGun1] == 0) { PlayerInfo[playerid][pGun1] = wep; PlayerInfo[playerid][pAmmo1] = ammo; }
    else if(PlayerInfo[playerid][pGun2] == 0) { PlayerInfo[playerid][pGun2] = wep; PlayerInfo[playerid][pAmmo2] = ammo; }
    else if(PlayerInfo[playerid][pGun3] == 0) { PlayerInfo[playerid][pGun3] = wep; PlayerInfo[playerid][pAmmo3] = ammo; }
    else if(PlayerInfo[playerid][pGun4] == 0) { PlayerInfo[playerid][pGun4] = wep; PlayerInfo[playerid][pAmmo4] = ammo; }
    }
    }

  • das für waffenslots


    P.S du kennste ja net den rest was noch kommt dahinter ;)


    so wie du das geschrieben hast habe ich schon so (sender text etc)


    GetPlayerWeaponData(playerid, slot, wep, ammo); <<<< da stehts doch xD


    Lust auf russisch roulette ?
    Okay...
    ... Ich hol mal meine Automatik ;D

  • Ja hallo es ist spät :rolleyes: Probier ma so:
    if(reason == 0)
    {
    PlayerInfo[playerid][pCrashed] = 1;
    new sendername[MAX_PLAYER_NAME],string[128];
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string, sizeof(string), "%s Hat ein crash", sendername);
    SendClientMessageToAll(COLOR_YELLOW, string);
    Craschlog(string);
    for(new slot = 0; slot != 12; slot++)
    {
    new wep, ammo;
    GetPlayerWeaponData(playerid, slot, wep, ammo);
    if(wep != 0 && ammo != 0)
    {
    if(PlayerInfo[playerid][pGun1] == 0) { PlayerInfo[playerid][pGun1] = wep; PlayerInfo[playerid][pAmmo1] = ammo; }
    else if(PlayerInfo[playerid][pGun2] == 0) { PlayerInfo[playerid][pGun2] = wep; PlayerInfo[playerid][pAmmo2] = ammo; }
    else if(PlayerInfo[playerid][pGun3] == 0) { PlayerInfo[playerid][pGun3] = wep; PlayerInfo[playerid][pAmmo3] = ammo; }
    else if(PlayerInfo[playerid][pGun4] == 0) { PlayerInfo[playerid][pGun4] = wep; PlayerInfo[playerid][pAmmo4] = ammo; }
    }
    }
    }