Beiträge von PStar

    Syno:
    Schaut jetzt so aus:
    Oben:
    new PlayerText:Speed[MAX_PLAYERS];

    OnPlayerConennect:
    Speed[playerid] = PlayerTextDrawCreate(playerid,548.000000, 422.000000, "KM/H:");
    TextDrawBackgroundColor(Speed[playerid], 255);
    TextDrawFont(Speed[playerid], 1);
    TextDrawLetterSize(Speed[playerid], 0.500000, 1.000000);
    TextDrawColor(Speed[playerid], -1);
    TextDrawSetOutline(Speed[playerid], 0);
    TextDrawSetProportional(Speed[playerid], 1);
    TextDrawSetShadow(Speed[playerid], 1);
    TextDrawUseBox(Speed[playerid], 1);
    TextDrawBoxColor(Speed[playerid], 0x00000044);
    TextDrawTextSize(Speed[playerid], 639.000000, 0.000000);


    OnPlayerStateChange:
    TextDrawShowForPlayer(playerid,Speed[playerid]);


    foward:
    forward TachoUpdaten();
    public TachoUpdaten()
    {
    for(new i = 0; i<MAX_PLAYERS; i++)
    {
    if(IsPlayerInAnyVehicle(i))
    {
    new string[24];


    format(string,sizeof(string),"KM/H: %d",Geschwindigkeit(i,true));
    TextDrawSetString(Speed[i], string);
    }
    }
    return 1;
    }


    Habe ich etwas falsch gemacht?

    Das Problem ist:


    format(string, sizeof(string),"Du hast %s eine %s gegeben mit %i Muni",getPlayerName(pID), weapon, ammunation);
    SendClientMessage(playerid, ROT, string);


    format(string, sizeof(string),"Du hast von %s eine %s bekommen mit %i Muni",getPlayerName(playerid), weapon, ammunation);
    SendClientMessage(pID, ROT, string);


    Wenn du das so machst und dann bei pID nach getPlayerName(playerid) fragst, dann frägst du ja praktisch nach seinem eigenen Namen.
    Du brauchst also eine globale Variable, habe gerade das selbe Problem noch nie gemacht :P

    Ok danke.
    Also einfach:
    TextDrawCreate(548.000000, 422.000000, "KmH:"); --> CreatePlayerTextDraw((548.000000, 422.000000, "KmH:");


    Und seit wann muss man nach einem TextDrawSetString den TD nicht neu anzeigen lassen? Oder tust du das irgendwo anders?
    Meinst du damit das es sich Updatet? Hab einen Timer eingebaut....funktioniert alles...! Wenn du das gemeint hast?

    Du musst außerdem noch machen das es PlayerTextDraws sind, denn sonst wird jedem das gleiche angezeigt ;)


    Und seit wann muss man nach einem TextDrawSetString den TD nicht neu anzeigen lassen? Oder tust du das irgendwo anders?


    Verstehe ich jetzt nicht so ganz?
    PlayerTextDraws ;D Wo soll ich das machen?


    Es wird alles angezeigt und funktioniert auch?
    Das mit dem ersten verstehe ich nicht ganz.


    Kannst du mir das etwas genauer erklären bitte.
    new id = playerid; <------ID ist jetzt die globaele Variable dadurch kann ich denn Absender des Tickets herausfinden oder?


    new Name[MAX_PLAYER_NAME];<-------------------Schleife dir durch alle Namen durch geht?
    GetPlayerName(id,Name,sizeof(Name));<----------------------Die den Namen aufsaugt.


    Aber leider kommt bei mir undefined Symbol playerid.
    Was mache ich falsch.


    new id = playerid; <- Muss ganz hoch richtig?

    Hab immer ein kleines Problem mit Vriablen:
    playerid macht ein Ticket--->
    Das Ticket soll einem Admin angezeigt werden.
    Wie soll ich denn Spielername rausfinden, weil mit playerid finde ich meinen heruas pID geht in dem Fall nicht mehr.
    Habe immer so Probleme mit lokalen und globalen Variablen.

    Der Dialog ist fehlerfrei.
    ShowPlayerDialog(playerid,DIALOG_REGHELP,DIALOG_STYLE_MSGBOX,"Hilfe und Befehle","Willkommen auf Deathmatch-Reloaded!\nUm dir den Start und die Registration etwas zu erleichtern\nsind hier erstmal Befehle aufgelistet die dir zunächst bestimmt weiterhelfen.\n\n/skin - Zum ändern des Skin's\n/arenen - Für eine Liste der Arenen auf Deathmatch-Reloaded\n\n{FF0000}Für eine Liste aller Befehle tippe /commands bzw. /cmds oder /help.\n\n{00FF78}Viel Spaß weiterhin auf Deathmatch-Reloaded!","Danke!","");

    forward TachoUpdaten();
    public TachoUpdaten()
    {
    for(new i = 0; i<MAX_PLAYERS; i++)
    {
    if(IsPlayerInAnyVehicle(i))
    {
    new string[24],string1[24],string2[24],Float:hp;
    format(string,sizeof(string),"KM/H: %d",Geschwindigkeit(i,true));
    TextDrawSetString(Speed, string);


    GetVehicleHealth(GetPlayerVehicleID(i),hp);
    hp = (hp-250.0) / 7.5;
    format(string1,sizeof(string1),"HP: %d%%",floatround(hp));
    TextDrawSetString(Zustand,string1);


    format(string2,sizeof(string2),"%s",FahrzeugName[GetVehicleModel(GetPlayerVehicleID(i))-400]);
    TextDrawSetString(Name,string2);
    }
    }
    return 1;
    }


    Wie könnte man es machen das der Zustand nicht tiefer als 0 geht?
    Weil der Wert beim Zustand in - Bereicht geht.

    forward TachoUpdaten();
    public TachoUpdaten()
    {
    for(new i = 0; i<MAX_PLAYERS; i++)
    {
    if(IsPlayerInAnyVehicle(i))
    {
    new string[24],string1[24],string2[24],Float:hp;
    format(string,sizeof(string),"KmH: %d",Geschwindigkeit(i,true));
    TextDrawSetString(Speed, string);


    format(string1,sizeof(string1),"HP: %s%",GetVehicleHealth(i,hp));
    TextDrawSetString(Zustand,string1);


    format(string2,sizeof(string2),"%s",FahrzeugName[GetVehicleModel(GetPlayerVehicleID(i))-400]);
    TextDrawSetString(Name,string2);
    }
    }
    return 1;
    }


    Hab das ganze so gemacht doch leider wir die HP Anzeige nicht dargestellt bzw. 100%.
    Ich möchte das Anfangs 100% da steht und dann runter geht.

    public OnGameModeInit()
    {
    Tacho = TextDrawCreate(548.000000, 422.000000, "KmH:");
    TextDrawBackgroundColor(Tacho, 255);
    TextDrawFont(Tacho, 1);
    TextDrawLetterSize(Tacho, 0.500000, 1.000000);
    TextDrawColor(Tacho, -1);
    TextDrawSetOutline(Tacho, 0);
    TextDrawSetProportional(Tacho, 1);
    TextDrawSetShadow(Tacho, 1);
    TextDrawUseBox(Tacho, 1);
    TextDrawBoxColor(Tacho, 0x00000044);
    TextDrawTextSize(Tacho, 639.000000, 0.000000);
    return 1;
    }


    public OnPlayerUpdate(playerid)
    {
    if(IsPlayerInAnyVehicle(playerid))
    {
    new speedtext[24];
    format(speedtext,sizeof(speedtext),"KmH: %d",Geschwindigkeit(playerid,true));
    TextDrawSetString(Tacho, speedtext);
    }
    return 1;
    }


    public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
    {
    return 1;
    }


    public OnPlayerExitVehicle(playerid, vehicleid)
    {
    TextDrawHideForPlayer(playerid,Tacho);
    return 1;
    }


    Es buggt noch alles wenn man z.b. von der NRG fällt.
    Gibt es eine Möglichkeit das ganze ohne OnPlayerUpdate zu regeln?

    public OnPlayerDisconnect(playerid, reason)
    {
    new string[128];
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    new interior = GetPlayerInterior(interior);
    new vworld = GetPlayerVirtualWorld(vworld);
    dini_IntSet(Spielerdatei,"Interior", interior); print("Das Teil wird aufgerufen!1");
    dini_IntSet(Spielerdatei,"VWorld", vworld); print("Das Teil wird aufgerufen!2");
    return 1;
    }

    Hab es so gemacht habe es dann geprintet.
    Es wird nicht aufgerufen.
    Print schaut folgendermaßen aus:
    dini_IntSet(Spielerdatei,"Interior", interior); print("Das Teil wird aufgerufen!1");
    dini_IntSet(Spielerdatei,"VWorld", vworld); print("Das Teil wird aufgerufen!2");



    Jap bin ich, geht nicht.
    Vielleicht wird die Speicherung durch SpielerSpeichern oder LoadAccount beeinträchtigt?
    stock LoadAcoount(playerid)
    {
    new Spielerdatei[64],name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    SetPVarInt(playerid,"Interior",dini_Int(Spielerdatei,"Interior"));
    SetPVarInt(playerid,"VWorld",dini_Int(Spielerdatei,"VWorld"));
    return 1;
    }


    stock SpielerSpeichern(playerid)
    {
    new name[MAX_PLAYER_NAME];
    new Spielerdatei[64], datum[20], string[100];
    new jahr, monat, tag, stunde, minute, sekunde;
    GetPlayerName(playerid,name,sizeof(name));
    if(GetPVarInt(playerid, "loggedin") == 1)
    {
    dini_IntSet(Spielerdatei,"Interior",GetPVarInt(playerid,"Interior"));
    dini_IntSet(Spielerdatei,"VWorld",GetPVarInt(playerid,"VWorld"));
    return 1;
    }
    }