Beiträge von Jadeclon

    Moin Leute,
    ich wollte zcmd includen, da ich die Funktion "OnPlayerCommandPerformed" nutzen möchte,
    bekomme dann aber den Warning:


    \pawno\include\zcmd.inc(118) : warning 201: redefinition of constant/macro (symbol "OnPlayerCommandText")


    Was könnt ich machen? Weiß nur ungefähr wozu zcmd da ist, aber in erster Linie brauch ich`s wegen der "OnPlayerCommandPerformed" Funktion.

    Habs jetzt so & funkt, aber müsste doch noch nen einfacheren Weg geben oder?


    Code
    if(GetPlayerVehicleID(playerid) == BusVehs[0]) { Update3DTextLabelText(BusLabels[0], 0xFFFFFFFF, "Linie 1"); }
    				    else if(GetPlayerVehicleID(playerid) == BusVehs[1]) { Update3DTextLabelText(BusLabels[1], 0xFFFFFFFF, "Linie 1"); }

    Ja hab ich mir auch schon gedacht, aber wie setzt ich die vehicleid wo ich den 3DTextLabel erstelle?


    vehicleid = Create3DTextLabel("...");


    Wo krieg ich die vehicleid her?

    Moin, hab paar Busse so erstellt:

    Code
    new BusVehs[11];


    Und Text Labels dran gehangen:

    Code
    BusVehs[0]=AddStaticVehicleEx(431,1054.9749,-2737.3422,17.5842,270.0051,92,72,200);
    	BusVehs[1]=AddStaticVehicleEx(431,1054.9749,-2737.3422,17.5842,270.0051,92,72,200);
    	//
    	BusLabels[0] = Create3DTextLabel("Linienbus0",0xFFFFFFFF,1054.9749,-2737.3422,17.5842,20.0,0);
    	BusLabels[1] = Create3DTextLabel("Linienbus1",0xFFFFFFFF,1054.9749,-2737.3422,17.5842,20.0,0);
    	//
    	Attach3DTextLabelToVehicle(BusLabels[0],BusVehs[0], 0.0, 0.0, 2.0);
    	Attach3DTextLabelToVehicle(BusLabels[1],BusVehs[1], 0.0, 0.0, 2.0);

    Und wenn man einen command eingibt sollte sich eigentlich das TextLabel ändern:


    Code
    for(new x=0; x<sizeof(BusVehs); x++)
    				{
    				    new string[128];
    				    format(string,sizeof(string),"Bus: %d",x);
    				    SendClientMessage(playerid,F_Gray,string);
    	      			    Update3DTextLabelText(BusLabels[x], 0xFFFFFFFF, "Reisebus");
    	                            return 1;
    				}

    Aber x gibt ja nur 0 aus.. vielleicht geh ich das auch ganz falsch an? Also er ändert den LabelText zwar, aber egal in welchem Bus ich sitze, er ändert den Text bei Bus0...

    Wieso bekomm ich "tag mismatch" ?



    Gang oben:

    Code
    new deathLabel[MAX_PLAYERS];
    new Float:deathPos_X[MAX_PLAYERS];
    new Float:deathPos_Y[MAX_PLAYERS];
    new Float:deathPos_Z[MAX_PLAYERS];

    Hier:

    Code
    deathLabel[playerid] = Create3DTextLabel(string,0xFFFFFFFF,deathPos_X[playerid],deathPos_Y[playerid],deathPos_Z[playerid],10.0,0);


    Und hier ebenfalls, unter nem Timer tag mismatch:

    Code
    Delete3DTextLabel(deathLabel[i]);

    Ich hab keine ahnung wieso, aber Fraktions Fahrzeuge verlieren 4x so schnell tank wie private Fahrzeuge... Kann sich das jemand irgendwie erklären?


    //Edit: Fehler gefunden, hab den Code jetz so & scheint so funktionieren:



    @Jeffry funktioniert weder noch...
    Hier mal die ganze Funktion: http://pastebin.com/VU4DdPuW
    das steht unter Timer2 der jede Sekunde ausgeführt wird.
    Seit dem ich in Zeile 90 das else und alles darunter hinzugefügt habe ist das so,
    denn die Fraktionsfahrzeuge hatten bis dato keine Fuel Anzeige.
    Komischerweise krieg ich bei den Privat Fahrzeugen auch die Nachricht:
    "1 Vehid: %d | Carid: %d | Fuel: %d" wenn ich den Motor starte.

    @Alf21 Hab das statt den "Woran scheiterts" hinzugefügt:


    Code
    format(string, sizeof(string), "1 Vehid: %d | Carid: %d | Fuel: %d",FactionCars[fc][fVehid],FactionCars[fc][fCarid],FactionCars[fc][fFuel]);
    						    SendClientMessage(i,F_Gray,string);


    Aber mir wird bei allen dreien 0 ausgegeben.. Bei dem Befehl zum Fraktionsfahrzeuge erstellen, funktionierts aber...


    Keine chance, das limit schießt über 11k+ hinaus.. Muss daran liegen:



    Nicht wundern, die "Woran scheiterts?" Nachrichten füg ich immer hinzu um einen Fehler zu suchen und im moment komm ich maximal bis "Woran scheiterts 4".

    Die Function wird jede Sekunde ausgeführt, bekomme dabei zich ackslimit abfragen, seitdem ich den teil unter else hinzugefügt habe.. Könnte das Problem durch rumprobieren bestimmt auch alleine lösen, aber mich interessieren so performance fragen.
    Jemand nh Idee woran´s liegen könnte? Und was sind eigentlich ackslimits?

    Es muss doch eine andere möglichkeit geben als alle möglichkeiten einzeln abzufragen..? Dtc_PlayerHaveCar prüft immer ob auf dem Carkey ein Fahrzeug ist, momentan gibt es 4 Carkeys und somit sehr sehr viele möglichkeiten wie der Dialog aussehen könnte...

    Warum wird 1999 ausgegeben? :P

    Code
    if (strcmp("/test", cmdtext, true, 10) == 0)
    	{
    	    new veh = GetClosestVehicle(playerid,5);
    	    new string211[30];
    	    format(string211, sizeof(string211), "VEH: %d",veh);
    	    SendClientMessage(playerid,F_Gray,string211);
            }

    @Jeffry
    Hab den Stock jetzt so hinzugefügt (Plate ist sozusagen der Owner)


    Und diesen Befehl mal als Test gemacht, gibt aber nie was zurück. Müsste doch so ungefähr funktionieren oder?