Kein Hitsound?

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,


    aus unerklärlichen Gründen will einfach mein Hitsound nicht...



    public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid, bodypart)
    {
    if(issuerid != INVALID_PLAYER_ID)
    {
    Angeschossen[playerid] = 1;
    SetTimerEx("angeschossen",1000*10,0,"i",playerid);


    PlayerPlaySound(issuerid,17802,0.0,0.0,0.0);
    PlayerPlaySound(playerid,17802,0.0,0.0,0.0);
    }
    return 1;
    }


    Der Hitsound wird einfach nicht abgespielt, ich weiß nicht wieso. Das Angeschossen Ding, funktioniert lediglich..


    Ich habe probiert den Hitsound über ein ein Test-Befehl zu machen, dort funktioniert er natürlich.
    Alle anderen Sounds funktionieren auch, zb wenn ich bei mir im Gamemode den Skin wechsle, kommt auch ein Sound.



    Hätte jemand eine Idee?


    Habe es auch schon mit "OnPlayerWeaponShot" probiert, leider ging dort auch nichts.
    Bin langsam schon am verzweifeln, denn sowas einfaches funktioniert einfach nicht.


    Habe auch schon probiert das "if(issuerid != INVALID_PLAYER_ID)" wegzumachen, leider klappts dann auch nicht...



    Gruß Kevin

    Mit freundlichen Grüßen,


    Keslo

  • Code
    public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid){
    	if(issuerid == INVALID_PLAYER_ID || playerid == INVALID_PLAYER_ID) return 1;
    	PlayerPlaySound(issuerid,17802,0.0,0.0,0.0);
    	return 1;
    }
    
    
    ^ meins.
  • Hey,


    klappt beides nicht..


    Ich hab noch bei mir drin, dass er den Wantedgrund in ein String setzen soll, den ich in einem enum mit "WantedGrund[128]" erstelle, dieser wird auch nicht gesetzt und es werden ebenfalls keine Wanteds vergeben...
    einer auch dabei eine idee?



    public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid, bodypart)
    {
    if(IsPlayerConnected(issuerid))
    {
    AngeschossenShop[playerid] = 1;
    SetTimerEx("angeschossenshop",1000*15,0,"i",playerid);

    Angeschossen[playerid] = 1;
    SetTimerEx("angeschossen",1000*10,0,"i",playerid);


    new string[128];
    new da, mont, yea, hou, minut;
    gettime(hou, minut);
    getdate(da, mont, yea);
    format(string,sizeof(string),"%s hat %s angegriffen. Schaden: %f, Waffe: %s(ID: %d) || Date: %d.%d.%d Time: %02d:%02d",SpielerName(issuerid),SpielerName(playerid),amount,aWeaponNames[weaponid-400],weaponid,da, mont, yea, hou, minut);
    DamageLog(string);

    PlayerPlaySound(issuerid,17802,0.0,0.0,0.0);
    PlayerPlaySound(playerid,17802,0.0,0.0,0.0);


    if(Spieler[playerid][Fraktion] != 1)
    {
    if(Spieler[issuerid][Fraktion] != 1)
    {
    new AngriffaufBeamten[128] = "Angriff auf einen Beamten";
    Spieler[playerid][Wanteds] += 1;
    Spieler[playerid][WantedGrund] = AngriffaufBeamten;
    }
    }
    else
    {
    return 1;
    }

    }
    return 1;
    }


    Gruß Kevin

    Mit freundlichen Grüßen,


    Keslo

  • Nach genauerem Betrachten deines Codes könnte es auch an folgender Stelle liegen:
    if(Spieler[playerid][Fraktion] != 1)
    {
    if(Spieler[issuerid][Fraktion] != 1)
    {
    Das Wanted wird nämlich nur dann vergeben, wenn weder Angreifer, noch Opfer Polizeibeamte sind.
    Du müsstest es ggf. darauf abändern, dass, wenn das Opfer (playerid) Polizeibeamter ist, das Wanted vergeben wird.


    Wenn das nicht funktioniert, komme ich gerne auf den anderen Lösungsansatz zurück.

  • @FineTime


    Habs jetzt so:



    public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid, bodypart)
    {
    if(IsPlayerConnected(playerid))
    {
    AngeschossenShop[playerid] = 1;
    SetTimerEx("angeschossenshop",1000*15,0,"i",playerid);

    Angeschossen[playerid] = 1;
    SetTimerEx("angeschossen",1000*10,0,"i",playerid);


    new string[128];
    new da, mont, yea, hou, minut;
    gettime(hou, minut);
    getdate(da, mont, yea);
    format(string,sizeof(string),"%s hat %s angegriffen. Schaden: %f, Waffe: %s(ID: %d) || Date: %d.%d.%d Time: %02d:%02d",SpielerName(issuerid),SpielerName(playerid),amount,aWeaponNames[weaponid-400],weaponid,da, mont, yea, hou, minut);
    MakeDamageLog(string);

    PlayerPlaySound(issuerid,17802,0.0,0.0,0.0);
    PlayerPlaySound(playerid,17802,0.0,0.0,0.0);

    if(Spieler[playerid][Fraktion] == 1 || Spieler[playerid][Fraktion] == 2 && Spieler[issuerid][Fraktion] != 1)
    {
    new AngriffaufBeamten[128] = "Angriff auf einen Beamten";
    Spieler[issuerid][Wanteds] += 1;
    Spieler[issuerid][WantedGrund] = AngriffaufBeamten;
    }
    }
    return 1;
    }


    Hättest du auch eine idee bei dem Hitsound?



    So geht es immer noch nicht btw...

    Mit freundlichen Grüßen,


    Keslo

  • Wird nur der Wantedgrund nicht richtig gespeichert, oder funktioniert das Wanted überhaupt nicht?

    Also, über mein Befehl "/suspect" wird der wantedgrund gesetzt und es funktioniert auch..

    ocmd@2:su,suspect(playerid,params[])
    {
    new pID,wanted,verbrechen[128],string[128];
    if(Spieler[playerid][Fraktion] != 1)return SendClientMessage(playerid, COLOR_GRAD2, "* Du bist kein Polizist.");
    if(sscanf(params, "uis", pID, wanted,verbrechen))return SendClientMessage(playerid,COLOR_GRAD2,"** FEHLER: /(su)spect [SpielerID/Name] [Wanteds] [Verbrechen/Grund]");
    if(!IsPlayerConnected(pID))return SendClientMessage(playerid, COLOR_TÜRKIS, "* Spieler ist nicht Online.");
    //if(pID==playerid)return SendClientMessage(playerid,COLOR_GRAD2,"* Du kannst dir selber keine Wanteds geben.");
    //if(Spieler[pID][Fraktion] == 1)return SendClientMessage(playerid,COLOR_GRAD2,"* Du kannst Beamten keine Wanteds geben.");
    Spieler[pID][Verbrechen] +=wanted;
    Spieler[pID][Wanteds] += wanted;
    Spieler[pID][WantedGrund] = verbrechen;
    if(Spieler[pID][Wanteds] >= 999)return Spieler[pID][Wanteds] = 999;
    format(string, sizeof(string), "Du hast ein Verbrechen begangen ( %s ). Zeuge: %s.", verbrechen, SpielerName(playerid));
    SendClientMessage(pID, COLOR_LIGHTRED, string);
    format(string, sizeof(string), "HQ: Alle Einheiten: Reporter: %s", SpielerName(playerid));
    SendFamilyMessage(1, TEAM_BLUE_COLOR, string);
    format(string, sizeof(string), "HQ: Verbrechen: %s, Gesuchter: %s", verbrechen, SpielerName(pID));
    SendFamilyMessage(1, TEAM_BLUE_COLOR, string);
    format(string, sizeof(string), "* Aktuelles Wanted Level: %d", Spieler[pID][Wanteds]);
    SendClientMessage(pID, COLOR_YELLOW, string);
    return 1;
    }



    Hitsound funktioniert nun als ich das nach oben verschoben hab.. wieso auch immer, danke dafür :)

    Mit freundlichen Grüßen,


    Keslo

  • hey check mal soaus evt ;D
    hab mal nocha bfrage mit ==0 gemacht wenn nicht nötig amch es wieder raus



    public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid, bodypart)
    {
    if(issuerid != INVALID_PLAYER_ID)
    {


    PlayerPlaySound(issuerid,17802,0.0,0.0,0.0);
    PlayerPlaySound(playerid,17802,0.0,0.0,0.0);

    if(AngeschossenShop[playerid]==0)
    {
    AngeschossenShop[playerid] = 1;
    SetTimerEx("angeschossenshop",1000*15,0,"i",playerid);
    }

    if(Angeschossen[playerid]==0)
    {
    Angeschossen[playerid] = 1;
    SetTimerEx("angeschossen",1000*10,0,"i",playerid);
    }


    new string[300];
    new da, mont, yea, hou, minut;
    gettime(hou, minut);
    getdate(da, mont, yea);
    format(string,sizeof(string),"%s hat %s angegriffen. Schaden: %f, Waffe: %s(ID: %d) || Date: %d.%d.%d Time: %02d:%02d",SpielerName(issuerid),SpielerName(playerid),amount,aWeaponNames[weaponid-400],weaponid,da, mont, yea, hou, minut);
    MakeDamageLog(string);

    if(Spieler[playerid][Fraktion] == 1 || Spieler[playerid][Fraktion] == 2)
    {
    if(Spieler[issuerid][Fraktion] != 1 && Spieler[issuerid][Fraktion] != 2)
    {
    new AngriffaufBeamten[128] = "Angriff auf einen Beamten";
    Spieler[issuerid][Wanteds] += 1;
    Spieler[issuerid][WantedGrund] = AngriffaufBeamten;
    }
    }
    }
    return 1;
    }

  • Funktioniert denn dein Damagelog wie gewünscht?

    Nein, der funktioniert auch nicht -.- alle anderen Logs gehen:



    forward MakeGiveGunLog(string[]);
    public MakeGiveGunLog(string[])
    {
    new entry[256];
    format(entry, sizeof(entry), "%s\n", string);
    new File:hFile;
    hFile = fopen("Logs/GiveGunLog.log", io_append);
    fwrite(hFile, entry);
    fclose(hFile);
    }


    forward MakeDamageLog(string[]);
    public MakeDamageLog(string[])
    {
    new entry[256];
    format(entry, sizeof(entry), "%s\n", string);
    new File:hFile;
    hFile = fopen("Logs/DamageLog.log", io_append);
    fwrite(hFile, entry);
    fclose(hFile);
    }




    givegunlog funktioniert einwandfrei...



    //edit.. ich glaub ich hab es gefunden, hab nur grad keinen zum testen..



    aWeaponNames[weaponid-400]


    Ich denke daran liegt es, hatte den selben fehler irgendwo anders auch im script, ich muss es nur anders machen. hab mal die damagelog komplett ausgeklammert,
    will jetzt nur testen obs klappt, muss ich warten bis sich eine testperson findet :D

    Mit freundlichen Grüßen,


    Keslo