Beiträge von Kaliber

    Mach es doch so:



    mfg. :thumbup:


    Da liegt der Fehler, schreibe es so:



    //Bei OnPlayerCommand
    if(strcmp("/spawnsave",cmdtext,true,10)==0)
    {
    new Float:x,Float:y,Float:z;
    GetPlayerPos(playerid,x,y,z);
    mysql_SetFloat("accounts", "Spawnx",x, "Name", SpielerInfo[playerid][pName]);
    mysql_SetFloat("accounts", "Spawny",y, "Name", SpielerInfo[playerid][pName]);
    mysql_SetFloat("accounts", "Spawnz",z, "Name", SpielerInfo[playerid][pName]);
    SendClientMessage(playerid,hellgruen,"[Server]: Du spawnst absofort immer hier!");
    return 1;
    }


    mfg. :thumbup:

    Dann machen wir mal das mit der Munition


    Nicht ganz korrekt, so ist es richtig:


    if(newkeys == KEY_FIRE)
    {
    new vid = GetPlayerVehicleID(playerid);
    if(GetVehicleModel(vid) == 432 && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
    {
    if(Munition[vid] == 0) return 0;
    Munition[vid] -= 1;
    new str[64];
    format(str, 64,"%d/100 Munition",Munition[vid]);
    TextDrawSetString(PanzerMuntion[playerid],str);
    return 1;
    }
    }


    Konnte man die Taste nicht irgendwie sperren?


    Probiere es doch mal mit return 0; ^^


    Wenn das nicht geht, kannst du dich ja an [GP]Master wenden, der das ja anscheinend in seinem Script hat ^^


    mfg. :thumbup:

    Warum sollte er dafür einen unnötigen Timer laufen, wenn er die Zahl einfach im OnPlayerKeyStateChange erneuern kann, sobald der Panzer geschossen hat/schießt


    Noch besser, daran habe ich gar nicht gedacht ^^


    Wie sieht das nur der, der im Panzer sitzt?


    CreatePlayerTextDraw
    und dann halt einfach mit der Show Funktion sobald man im Panzer sitzt dem Spieler anzeigen lassen ^^


    Dieses Feature ist aufjedenfall möglich.
    Dies habe ich schon in der 0.3c Version auf einem Server entdeckt.


    Cooles Feature!


    MfG


    Wärst du so freundlich uns mal den Abschnitt aus deinem Script zu posten ? :)


    mfg. :thumbup:

    ich denk ma


    aktuelle muni/Maxmuni
    oder so


    Ja, du denkst, vielleicht will er auch die Maximale Anzahl an Panzern auf dem Server anzeigen lassen, man weiß es nicht ^^


    Ich will das man die Munition irgendwie sieht,
    sry war etwas ungenau


    @Saiwn okay, gut gedacht :D


    So:


    new str[64];
    format(str, 64,"%d/100 Munition",munition[playerid]);
    TextDrawSetString(DeinTextDrawName,str);
    Das musst du in einen Callback schreiben, den du mit einem Timer aufrufen lässt :)


    mfg. :thumbup:

    Mhm, ja dann schreibe es mal nur so:


    forward Timer(playerid);
    public Timer(playerid)
    {
    new PlayerText3D:playertextid;
    for(new i; i<100; i++)
    {
    if(GetPlayerWantedLevel(i) == 0) continue;
    DeletePlayer3DTextLabel(playerid, playertextid);
    new Float:X, Float:Y, Float:Z;
    GetPlayerPos(i, X, Y, Z);
    new str[128];
    format(str, 128,"Dieser Spieler hat %d Wanteds !",GetPlayerWantedLevel(i));
    playertextid = CreatePlayer3DTextLabel(playerid,str,0x008080FF,X,Y,Z+2,40.0);
    }
    return 1;
    }


    mfg. :thumbup:

    Könntest mal sowas probieren:


    //oben im Script
    new munition[MAX_PLAYERS];


    //Halt dem Spieler irgentwo munition geben


    //unter OnPlayerKeyStateChange
    if(newkeys == KEY_FIRE)
    {
    if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 432 && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
    {
    if(munition[playerid] == 0) return 0;
    munition[playerid] -= 1;
    return 1;
    }
    }


    Bin mir nur nicht sicher, ob das mit dem return 0; funktioniert, könnte aber klappen ^^
    Wenn nicht, kannste ja auch machen, dass er aus dem Fahrzeug geschmissen wird oder so...


    mfg. :thumbup:

    [if(playertextid >= 0) { DeletePlayer3DTextLabel(playerid, playertextid); }
    GetPlayerPos(i, X, Y, Z+2);


    Oh, ja ups, probiere es mal so:


    forward Timer(playerid);
    public Timer(playerid)
    {
    new PlayerText3D:playertextid;
    for(new i; i<100; i++)
    {
    if(GetPlayerWantedLevel(i) == 0) continue;
    if(strlen(playertextid) > 0) { DeletePlayer3DTextLabel(playerid, playertextid); }
    new Float:X, Float:Y, Float:Z;
    GetPlayerPos(i, X, Y, Z);
    new str[128];
    format(str, 128,"Dieser Spieler hat %d Wanteds !",GetPlayerWantedLevel(i));
    playertextid = CreatePlayer3DTextLabel(playerid,str,0x008080FF,X,Y,Z+2,40.0);
    }
    return 1;
    }


    mfg. :thumbup:

    mach die sendclientmessage doch bei OnPlayerConnect da ist der Fehler behobn


    mfG NExiz


    Wurde doch schon gemacht :whistling:



    OnGameModeInit()
    hat keine Parameter.


    Sehr gut erkannt und gesagt, @Threadersteller deshalb kommt die Fehlermeldung, weil der Parameter "playerid" nicht übergeben wird ;)


    Darfst du nicht unter OnGameModeInit einfügen,
    da dies für Einstellungen des Script dienst, bzw
    für Sachen die nicht für einzehlne Spieler gedacht sind.
    (Weiß nicht wie man es ausdrücken soll)


    OnGameModeInit ist ein Callback der dann ausgeführt wird, sobald man den Server startet unabhängig davon, was man da rein schreibt :D


    FTW = For the Win


    Kann es heißen, es kann aber auch Fuck The World heißen ;)


    mfg. :thumbup:

    Schreibe es so:


    /*932*/if(strcmp(cmdtext, "/tanken", true) == 0)
    /*933*/ {
    /*934*/ if(GetVehicleState(playerid) != PLAYER_STATE_DRIVER) return SendClientMessage(playerid,COLOR_RED,"Du bist in keinem Fahrzeug (oder kein Fahrer).");
    /*935*/ new car = GetPlayerVehicleID(playerid);
    /*936*/ if(TanktGerade[car]) return SendClientMessage(playerid,COLOR_GREY,"Du tankst schon!");
    /*937*/ if(Motor[car] == true) return SendClientMessage(playerid,COLOR_GREY,"Du musst vor dem Tanken den Motor ausschalten.");
    /*938*/ new ZuTanken = 100-Tank[car];
    /*939*/ new preis = ZuTanken * BENZINPREIS;
    /*940*/ if (GetPlayerMoney(playerid)-preis < 0) return SendClientMessage(playerid,COLOR_GREY,"Du hast nicht genug Geld!");
    /*941*/ GivePlayerMoney(playerid, -preis);
    /*942*/ SendClientMessage(playerid, COLOR_GREEN, "Tanken wird gestartet.");
    /*943*/ SetCameraBehindPlayer(playerid);
    /*944*/ TogglePlayerControllable(playerid,0);
    /*945*/ TanktGerade[car] = true;
    /*946*/ tanktimer[playerid] = SetTimerEx("Auftanken",500,true,"i",playerid);
    /*947*/ return 1;
    /*948*/ }


    mfg. :thumbup:

    Was habt ihr immer fürn Problem? wieso schreibt ihr "Schreib dir ein selber" -.-* wenn ich ein Suche dan suche ich es, und ich ffrage net ob ich es selber schreiben soll :thumbdown:


    Dann wäre es aber genau auf deine Wünsche/Vorstellungen angepasst, was ihr immer damit für ein Problem habt :whistling:


    Und es gibt viele Möglichkeiten sowas zu suchen:
    Paintballsysteme oder Suche


    mfg. :thumbup:

    Wieso schreibst du dir das nicht schnell selber, das dauert keine 5 Minuten so ein FS :D


    PS: Nein, ich werde es dir nicht schreiben...


    mfg. :huh:

    So:


    //bei OnPlayerLogin
    if(IsACop(playerid))
    {
    SetTimerEx("Timer", 1000, 1, "i", playerid);
    }


    //der Callback
    forward Timer(playerid);
    public Timer(playerid)
    {
    new PlayerText3D:playertextid;
    for(new i; i<100; i++)
    {
    if(GetPlayerWantedLevel(i) == 0) continue;
    if(playertextid > 0) { DeletePlayer3DTextLabel(playerid, playertextid); }
    new Float:X, Float:Y, Float:Z;
    GetPlayerPos(i, X, Y, Z+2);
    new str[128];
    format(str, 128,"Dieser Spieler hat %d Wanteds !",GetPlayerWantedLevel(i));
    playertextid = CreatePlayer3DTextLabel(playerid,str,0x008080FF,X,Y,Z,40.0);
    }
    return 1;
    }


    Ist aus dem Kopf geschrieben, könnte aber gehen :D


    mfg. :thumbup: