Beiträge von Keslo

    Hey,


    ich möchte gerne ein Automatisches Wantedvergaben-System einführen.


    Wenn ich Cop bin, und der andere Spieler nicht, bekommt er Wanteds, wenn er mich anschießt.
    Er bekommt aber garnichts, wenn ich im Auto sitze.




    unter onplayertakedamage:


    if(Spieler[playerid][Fraktion] == 1)
    {
    if(Spieler[issuerid][Fraktion] != 1)
    {
    if(copangeschossen[issuerid] == 0)
    {
    new AngriffaufBeamten[128] = "Angriff auf einen Beamten";
    Spieler[issuerid][Wanteds] += 1;
    Spieler[issuerid][WantedGrund] = AngriffaufBeamten;
    SetTimerEx("copangeschossentimer",1000*60*2,0,"i",issuerid);
    copangeschossen[issuerid] = 1;
    format(string,sizeof(string),"Verbrecher %s hat 1 Wanted erhalten, Verbrechen: Angriff auf einen Beamten",SpielerName(issuerid));
    SCM(issuerid,STEALTH_ORANGE,"Du hast ein 1 Wanted erhalten, Verbrechen: Angriff auf einen Beamten");
    SendFamilyMessage(1, STEALTH_ORANGE, string);
    }
    else { return 1; }
    }
    }



    Unter onplayerweaponshot:
    if(copangeschossen[playerid] == 0)
    {
    if(hittype == BULLET_HIT_TYPE_VEHICLE)
    {
    for(new a = 0; a < sizeof(lspdcar); a++)
    {
    for(new b = 0; b < sizeof(sfpdcars); b++)
    {
    for(new i; i < MAX_PLAYERS; i++)
    {
    new vehicle = GetPlayerVehicleID(hitid);
    if(vehicle == lspdcar[a] || vehicle == sfpdcars[b])
    {
    new string[128];
    new AngriffaufBeamtenFahrzeug[128] = "Angriff auf ein Beamtenfahrzeug";
    Spieler[playerid][Wanteds] += 1;
    Spieler[playerid][WantedGrund] = AngriffaufBeamtenFahrzeug;
    SetTimerEx("copangeschossentimer",1000*60*2,0,"i",playerid);
    copangeschossen[playerid] = 1;
    format(string,sizeof(string),"Verbrecher %s hat 1 Wanted erhalten, Verbrechen: Angriff auf ein Beamtenfahrzeug",SpielerName(playerid));
    SCM(playerid,STEALTH_ORANGE,"Du hast ein 1 Wanted erhalten, Verbrechen: Angriff auf einen Beamtenfahrzeug");
    SendFamilyMessage(1, STEALTH_ORANGE, string);
    }
    }
    }
    }
    }
    }


    jemand eine idee?

    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

    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 :)

    @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...

    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

    Danke dir werde nun eine geschätzte halbe stunde umschreiben müssen xD

    Es gibt in PAWN die Möglichkeit Texte zu ersetzen, findest du eins links neben dem Compiler Icon oben.
    Dann gibts du oben einfach "CreateObject" ein und in die 2. Zeile "CreateDynamicObject"...
    Anschließend auf "OK" und "Replace All".. müsste funktionieren :)

    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

    hey,


    hab mal wieder eine frage.


    Ich möchte gerne, dass man mit dem Befehl /wanted ein dialog angezeigt bekommt, welcher spieler, sich wo findet, und wie viele wanteds er hat. Bis dato weiß ich alles.


    Aber wie bekomm ich die spieler so sortiert, dass die mit den meisten wanteds ganz oben sind? Die mit den wenigsten sollen selbstverständlich dann unten eingeordnet werden...


    Gruß kevin

    Benutz mal das hier:



    stock GetClosestVehicle(playerid, Float:range)
    {
    new Float:p_X;
    new Float:p_Y;
    new Float:p_Z;


    new Float:Distance;
    new Float:PretendentDistance = range +1;
    new Pretendent;


    GetPlayerPos(playerid, p_X, p_Y, p_Z);


    for(new vehicleid=1; vehicleid < MAX_VEHICLES; vehicleid++)
    {
    Distance = GetVehicleDistanceFromPoint(vehicleid, p_X, p_Y, p_Z);


    if(Distance <= range && Distance <= PretendentDistance)
    {
    Pretendent = vehicleid;
    PretendentDistance = Distance;
    }
    }


    return Pretendent;
    }

    Hey, danke erstmal für die Antwort.



    Ich habe schon probiert diesen Befehl in MySQL einzugeben, aber er sagt mir, dass ich keine Rechte dafür besitze. Steht auch so oben.


    Bin gespannt WANN und OB sich der Support dazu meldet, wenn nicht, ist mein Server down :thumbup:


    Fehler suchen bin ich als dabei, leider gibt es nicht in der SAMP Szene dergleichen. Hab bis jetzt nichts gefunden.
    Und alles was ich machen kann, ist in den MySQL Einstellungen zu suchen. Den Rest habe ich schon erledigt...





    //Push


    Gruß
    Kevin