Beiträge von YaBroo

    //Sry, ich habe vergessen dir noch ne Abfrage einzubauen.


    if(TodPickup[i][TodErstellt] == 0) continue;


    zu
    if(TodPickup[i][TodErstellt] == 0 || TodPickup[i][TodCop] == 0) continue;



    Somit werden nur die TodCop Pickups gewertet.


    lg

    Und wo genau hackt es nun nachdem du den CMD angepasst hast?



    if(strcmp("/takedienstmarke", cmd, true) == 0)
    {
    if(PlayerInfo[playerid][pLeader] != 21 && PlayerInfo[playerid][pMember] != 21) return SendClientMessage(playerid,COLOR_ERRORTEXT,"Du bist kein Mitglied der Freiheitskämpfer und kannst diesen Befehl nicht nutzen.");
    if(PlayerInfo[playerid][pDienstmarke] != 0) return SendClientMessage(playerid,-1,"Du trägst bereits eine Dienstmarke")
    for(new i = 0; i < sizeof(TodPickup); i++)
    {
    if(TodPickup[i][TodErstellt] == 0) continue;
    if(!IsPlayerInRangeOfPoint(playerid,3.0,TodPickup[i][TodPickupX],TodPickup[i][TodPickupY],TodPickup[i][TodPickupZ])) continue;
    SendClientMessage(playerid,COLOR_YELLOW,"Du hast die Dienstmarke eines Officers erfolgreich aufgehoben");
    PlayerInfo[playerid][pDienstmarke] = 1;
    return 1;
    }
    return 1;
    }

    Beim erstellen des Pickups fragst du dann die Fraktion ab ob der tote ein cop ist und erstellst danach dein pickup.
    Die Float Koordinaten speicherst du unter OnPlayerDeath in deine Variable mit am besten der größe MAX_PLAYERS.


    Beim CMD gehst du wieder mit einer Schleife alle TodPickups durch und fragst dann mit deiner IsPlayerInRangeOfPoint ab ob er in der Nähe ist.


    Code
    for(new i = 0; i < sizeof(TodPickup); i++)
    	{
    	    if(TodPickup[i][TodErstellt] == 0) continue;
    	    if(!IsPlayerInRangeOfPoint(playerid,3.0,TodPickup[i][TodPickupX],TodPickup[i][TodPickupY],TodPickup[i][TodPickupZ])) continue;
    	    //Was passiert wenn er in der rechtweite von einem der Pickups ist
    	    return 1;
    	}

    Ich weiss ja nicht, was du mit 0 Punkt meinst, aber laut Wiki muss erst minX, minY danach maxX, maxY gesetzt werden. -1775 ist kleiner als -1710 laut Mathematik. Und ja, das Problem mit dem vertauschen hatte ich damals bei GTA United (U1-MP bzw. SA-MP 0.3b war das) einmal, daher weiss ich das. Probiers mal aus und berichte, wie sich das auswirkt. Ich teste das jetzt selber nochmal mit einem leerem GameMode. Ergebnis folgt gleich...


    Ich habs nun selber ausprobiert, beides wird normal angezeigt.

    ja, weil es -1710 ist und nicht 1710 (plus) ;)


    Und ja, es spielt eine Rolle, da es sonst zu Fehlern kommt bei der Anzeige der Zone ^^

    1. Es sind beides - Werte
    2. Wenn du in einem Rechteck die überliegenden Seiten vertauschst, kommt es zu Fehlern?


    So ein Unsinn

    Mhh, das kann dann eig. nur noch daran liegen das deine Farbe evt. nicht packt.


    GangZoneShowForPlayer(playerid, groovezone, 0xFFFF0096);


    Die GZone müsste an der Nähe des Friseurs im SinglePlayer nähe GS Base sein. (Schau mal auf deine Karte wenn du die Änderung vorgenommen hast)

    Hä. Sry ich komme da nicht wirklich hinterher.


    Beim regulären Reallife-Scripts übergibst du den Fraktionswert beim invite. Somit hat der Spieler ab dem Moment eine Fraktionsvariable die != 0 ist.
    Bei allen Fraktionsbezogenen Befehlen/Aktionen kann man dann später diese Variable Abfragen.


    Wenn du Sie in MySQL speichern willst brauchst du nur den Wert der Variable ausgeben und beim laden wieder aus der Datenbank in die Variable setzen.

    Das ist relativ simpel.


    Fraktion[MAX_PLAYERS];


    Das wars schon.


    Jetzt kannst du dir selber aussuchen wie viele Teams es gibt.
    Teams setzt du dann so


    Fraktion[playerid] = 1; //Setzt den Spieler in Team 1
    Abfrage
    if(Fraktion[playerid] == 1) // Ist Spieler im Team 1


    Musst dir nur selber ausdenken welches Team was ist.
    Über eine Variable entscheidest & orientierst du dich letztendlich wer was ist.

    Das gute bei dem Programm als Gangzonecreater ist ja, dass man auf der Map haargenau abstimmen kann wie und wo man das will :P


    Wenn die Koordinaten ingame und beim Programm das Selbe sind hab ich es wahrscheinlich einfach immer falsch eingebaut

    Es kann sein, das manchmal die Werte fürs Script nicht richtig sortiert gespeichert werden, vermutlich war das dann immer dein Fehler das du sie nicht korrigiert hast.
    Einfach merken, die kleinen Zahlen nach links, großen nach rechts.
    minX,minY,maxX,maxY. Habs dir oben im Pastebin rein editiert.