[SAMMELTHREAD] Kleine Scripting Fragen

Dein Problem konnte durch einen User gelöst werden? Bedank dich bei ihm indem du seinen Beitrag als Hilfreich markierst sowie einen Daumen oben dalässt
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
  • Function OnGameModeInit()
    {
    Textdraw0 = TextDrawCreate(-3.000000, 437.000000, " Forum:");
    TextDrawBackgroundColor(Textdraw0, 255);
    TextDrawFont(Textdraw0, 1);
    TextDrawLetterSize(Textdraw0, 0.500000, 1.000000);
    TextDrawColor(Textdraw0, 65535);
    TextDrawSetOutline(Textdraw0, 0);
    TextDrawSetProportional(Textdraw0, 1);
    TextDrawSetShadow(Textdraw0, 1);
    TextDrawUseBox(Textdraw0, 1);
    TextDrawBoxColor(Textdraw0, 255);
    TextDrawTextSize(Textdraw0, 640.000000, 70.000000);
    TextDrawSetSelectable(Textdraw0, 0);
    TextDrawShowForAll(Textdraw0);


    Textdraw1 = TextDrawCreate(65.000000, 437.000000, "www.kommtnoch.de");
    TextDrawBackgroundColor(Textdraw1, 255);
    TextDrawFont(Textdraw1, 1);
    TextDrawLetterSize(Textdraw1, 0.500000, 1.000000);
    TextDrawColor(Textdraw1, -1);
    TextDrawSetOutline(Textdraw1, 0);
    TextDrawSetProportional(Textdraw1, 1);
    TextDrawSetShadow(Textdraw1, 1);
    TextDrawSetSelectable(Textdraw1, 0);
    TextDrawShowForAll(Textdraw1);


    Textdraw2 = TextDrawCreate(295.000000, 437.000000, "Teamspeak:");
    TextDrawBackgroundColor(Textdraw2, 255);
    TextDrawFont(Textdraw2, 1);
    TextDrawLetterSize(Textdraw2, 0.500000, 1.000000);
    TextDrawColor(Textdraw2, 65535);
    TextDrawSetOutline(Textdraw2, 0);
    TextDrawSetProportional(Textdraw2, 1);
    TextDrawSetShadow(Textdraw2, 1);
    TextDrawSetSelectable(Textdraw2, 0);
    TextDrawShowForAll(Textdraw2);


    Textdraw3 = TextDrawCreate(394.000000, 437.000000, "kommtnoch.teamspeak.me");
    TextDrawBackgroundColor(Textdraw3, 255);
    TextDrawFont(Textdraw3, 1);
    TextDrawLetterSize(Textdraw3, 0.500000, 1.000000);
    TextDrawColor(Textdraw3, -1);
    TextDrawSetOutline(Textdraw3, 0);
    TextDrawSetProportional(Textdraw3, 1);
    TextDrawSetShadow(Textdraw3, 1);
    TextDrawSetSelectable(Textdraw3, 0);
    TextDrawShowForAll(Textdraw3);


    Nutze TextDrawShowForAll.

  • Das TextDrawShowForAll bringt bei OnGameModeInit nichts, da ist ja noch kein Spieler online.
    Du musst bei OnPlayerConnect, oder OnPlayerSpawn, oder OnPlayerRequestClass (je nach dem wo du das Textdraw anzeigen lassen willst), das Textdraw dem Spieler anzeigen.


    TextDrawShowForPlayer(playerid, Textdraw0);


    Gleich für 1,2,3.

  • Das TextDrawShowForAll bringt bei OnGameModeInit nichts, da ist ja noch kein Spieler online.
    Du musst bei OnPlayerConnect, oder OnPlayerSpawn, oder OnPlayerRequestClass (je nach dem wo du das Textdraw anzeigen lassen willst), das Textdraw dem Spieler anzeigen.


    TextDrawShowForPlayer(playerid, Textdraw0);


    Gleich für 1,2,3.

    Wow, hat geklappt danke !


    ist geklärt

  • Wo liegt mein Fehler?


  • Hallo.


    Ich wollte meinen /opark System entbuggen. Weil wenn ein Oamt einen Fahrzeug abschleppt und zu Base geht und /opark macht steht da "Du kannst dieses Fahrzeug nicht hier parken"
    Ich würde gerne fragen ob man wenigstens die Abfrage weg machen kann wo es sagt das man das Fahrzeug hier nicht parken kann.


    System:


    if (strcmp("/opark", cmd, true, 10) == 0)
    {
    if(IsPlayerInAnyVehicle(playerid) && GetVehicleModel(GetPlayerVehicleID(playerid)) == 525 && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
    {
    if(PlayerInfo[playerid][pMember] == 24||PlayerInfo[playerid][pLeader] == 24)
    {
    if(!IsTrailerAttachedToVehicle(GetPlayerVehicleID(playerid)))
    {
    SendClientMessage(playerid, COLOR_GREY, " An deinem Abschleppwagen ist kein Auto angehängt!");
    return 1;
    }
    new trailercar = GetVehicleTrailer(GetPlayerVehicleID(playerid));
    if(!IsADtCar(trailercar))
    {
    SendClientMessage(playerid, COLOR_GREY, " Dieses Auto kann hier nicht geparkt werden!!");
    return 1;
    }
    new Float:X,Float:Y,Float:Z;
    new Float:z_rot;
    GetVehiclePos(trailercar, X,Y,Z);
    GetVehicleZAngle(trailercar, z_rot);
    new carowner = GetDtCarOwner(trailercar);
    new slot = GetDtCarOwnerSlot(carowner,trailercar);
    PlayerCar[carowner][slot][CarPos_x] = X;
    PlayerCar[carowner][slot][CarPos_y] = Y;
    PlayerCar[carowner][slot][CarPos_z] = Z;
    PlayerCar[carowner][slot][CarRotate] = z_rot;
    if(carowner != 555)
    {
    OnPlayerCarUpdate(carowner,false);
    SendClientMessage(carowner, COLOR_WHITE, "[ORDNUNGSAMT] Ihr Fahrzeug wurde abgeschleppt, es steht im Hof des Ordnungsamtes!");
    }
    DetachTrailerFromVehicle(GetPlayerVehicleID(playerid));
    SendClientMessage(playerid, COLOR_YELLOW, " Du hast das Fahrzeug erfolgreich abgeschleppt!");
    return 1;
    } else {
    SendClientMessage(playerid, COLOR_GREY, " Du bist kein Mitglied des Ordnungsamtes!");
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, " Du musst einen Abschleppwagen fahren!");
    return 1;
    }


    • if (strcmp("/opark", cmd, true, 10) == 0)
    • {
    • if(IsPlayerInAnyVehicle(playerid) && GetVehicleModel(GetPlayerVehicleID(playerid)) == 525 && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
    • {
    • if(PlayerInfo[playerid][pMember] == 24||PlayerInfo[playerid][pLeader] == 24)
    • {
    • if(!IsTrailerAttachedToVehicle(GetPlayerVehicleID(playerid)))
    • {
    • SendClientMessage(playerid, COLOR_GREY, " An deinem Abschleppwagen ist kein Auto angehängt!");
    • return 1;
    • }
    • new trailercar = GetVehicleTrailer(GetPlayerVehicleID(playerid));
    • if(!IsADtCar(trailercar))
    • {
      if(!IsPlayerInRangeOfPoint(playerid, 4, 2117.5835,-1153.0809,24.2201))
    • SendClientMessage(playerid, COLOR_GREY, " Dieses Auto kann hier nicht geparkt werden!!");
    • return 1;
    • }
    • new Float:X,Float:Y,Float:Z;
    • new Float:z_rot;
    • GetVehiclePos(trailercar, X,Y,Z);
    • GetVehicleZAngle(trailercar, z_rot);
    • new carowner = GetDtCarOwner(trailercar);
    • new slot = GetDtCarOwnerSlot(carowner,trailercar);
    • PlayerCar[carowner][slot][CarPos_x] = X;
    • PlayerCar[carowner][slot][CarPos_y] = Y;
    • PlayerCar[carowner][slot][CarPos_z] = Z;
    • PlayerCar[carowner][slot][CarRotate] = z_rot;
    • if(carowner != 555)
    • {
    • OnPlayerCarUpdate(carowner,false);
    • SendClientMessage(carowner, COLOR_WHITE, "[ORDNUNGSAMT] Ihr Fahrzeug wurde abgeschleppt, es steht im Hof des Ordnungsamtes!");
    • }
    • DetachTrailerFromVehicle(GetPlayerVehicleID(playerid));
    • SendClientMessage(playerid, COLOR_YELLOW, " Du hast das Fahrzeug erfolgreich abgeschleppt!");
    • return 1;
    • } else {
    • SendClientMessage(playerid, COLOR_GREY, " Du bist kein Mitglied des Ordnungsamtes!");
    • return 1;
    • }
    • }
    • else
    • {
    • SendClientMessage(playerid, COLOR_GREY, " Du musst einen Abschleppwagen fahren!");
    • return 1;
    • }


    • Sollte so gehen
      Bei IsPlayerInRangeOfPoint musst du die Koordinaten ändern

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Warum explodiert das Fahrzeug schon bei 22%?


    so zeig ich es an


    forward UpdateZustand(playerid);
    public UpdateZustand(playerid)
    {
    new Float:health, stringzs[32];
    new cID = GetPlayerVehicleID(playerid);
    GetVehicleHealth(cID, health);
    format(stringzs, sizeof(stringzs), "Zustand: %.0f %%", (health / 10));
    TextDrawSetString(Tacho10, stringzs);
    return 1;
    }

  • Es sieht jetzt so aus:


    forward UpdateZustand(playerid);
    public UpdateZustand(playerid)
    {
    new stringzs[32];
    new cID = GetPlayerVehicleID(playerid);
    new Float:health = ((health - 250.0) / 750.0) * 100.0;
    GetVehicleHealth(cID, health);
    if(health < 0) health = 0.0;
    format(stringzs, sizeof(stringzs), "Zustand: %.0f %%", health);
    TextDrawSetString(Tacho10, stringzs);
    return 1;
    }

  • Du solltest GetVehicleHealth und die Berechnung schon tauschen, damit "health" überhaupt ein Wert hat. :D

  • C
    if(Spieler[playerid][pLastLogin] < (gettime()-86400))
    			{
    				if(Spieler[playerid][pLastLogin] > 0)
    				{
    					SendClientMessage(playerid, COLOR_YELLOW, "Dir wurde "COLOR_HEX_DARKORANGE"1 Respektpunkt"COLOR_HEX_YELLOW" gutgeschrieben da du mindestens 1 Tag nicht online warst.");
    					Spieler[playerid][pExp]++;
    				}
    			}

    Mir wird dauerhaft angezeigt, dass Ich 1 Tag nicht online war sobald ich mich einlogge.
    Beim Speichern vom Spieler wird in die DB "gettime()" eingetragen, und beim Laden wird es ganz normal von der DB bezogen.


    Nur die Abfrage spinnt irgendwie..


    @Jeffry @Kaliber