Beiträge von Equ

    Guten Morgen,


    Ich habe mal eine kleine Simple frage, und zwar geht es um die Loop funktion.
    will hier kein Roman verfassen, also fass ich mich mal kurz:



    wo für steht eigentlich GetMaxPlayers genau? etwa für die Maximale Slot anzahl auf dem Server?


    for(new i=0; i<GetMaxPlayers(); i++)



    Oder wenn ich diese Funktion so aufbauen würde, wo wäre da der unterschied zwischen MAX_PLAYERS und GetMaxPlayers?

    for(new i=0; i<MAX_PLAYERS; i++)



    Oder was mir auch noch eingefallen ist, man kann die Funktion auch noch so aufbauen:


    for(new i=0; i<100; i++)


    Wo für steht dann da bitte die 100?




    Wo für man eine for schleife braucht weis ich, aber warum gibt es da 3 oder mehrere Verschiedene varianten wenn sie am ende das selbe ergeben, oder irre ich mich da?



    Grüße

    Moin


    Ich habe ein kleines Problem und zwar, habe ich mir einen stock erstellt wo der Rangname ausgelesen wird,
    es Funktioniert ja auch eigentlich alles nur ist das kleine Problem da das der Anfangsbuchstabe des Ranges Fehlt.


    Also kleines Beispiel:


    RICHTIG: Breadfish Spieler Equ sagt guten tag.
    FEHLER: readfish Spieler Equ sagt guten tag.


    Hier der Code:


    stock SpielerFraktionsRangName(playerid)
    {
    new frakr[70], string[70],string2[70],string3[70],string4[70];
    format(string,sizeof(string),"/FraktionRanks/LSPDRang.ini");
    format(string2,sizeof(string2),"/FraktionRanks/NotarztRang.ini");
    format(string3,sizeof(string3),"/FraktionRanks/GroveStreetRang.ini");
    format(string4,sizeof(string4),"/FraktionRanks/YakuzaRang.ini");
    if(GetPVarInt(playerid,"Fraktion") == 1)
    {
    switch(GetPVarInt(playerid,"Rank"))
    {
    case 1:{ format(frakr,sizeof frakr,"%s", dini_Get(string,"Rang1"));}
    case 2:{ format(frakr,sizeof frakr,"%s", dini_Get(string,"Rang2"));}
    case 3:{ format(frakr,sizeof frakr,"%s", dini_Get(string,"Rang3"));}
    case 4:{ format(frakr,sizeof frakr,"%s", dini_Get(string,"Rang4"));}
    case 5:{ format(frakr,sizeof frakr,"%s", dini_Get(string,"Rang5"));}
    case 6:{ format(frakr,sizeof frakr,"%s", dini_Get(string,"Rang6"));}
    case 7:{ format(frakr,sizeof frakr,"%s", dini_Get(string,"Rang7"));}
    case 8:{ format(frakr,sizeof frakr,"%s", dini_Get(string,"Rang8"));}
    }


    }
    return 1;
    }




    Hoffe ihr habt verstanden was ich damit meine, und könnt mir da ein wenig weiter helfen.



    Grüße

    Taste Abfragen (Muss aber möglich sein über Script, kann sein dass "ESC" nicht möglich ist)


    http://wiki.sa-mp.com/wiki/OnPlayerKeyStateChange


    MFG -> Wenn jemand "ESC" drückt, halt über OnPlayerKeyStateChange abfragen, ob "ESC" gedrückt wurde und zerstören lassen bzw. verstecken/hiden.

    Mhm das hätte ich eigentlich ja auch gesagt, aber eigentlich muss es mit der Taste - ESC gehen weil ich es ja auch schon auf andere Server gesehen habe.

    Ich habe mal eine kleine Frage zu OnPlayerClickTextDraw.


    Und zwar ist folgendes, wenn man TextDraws angezeigt bekommt und dann die Taste ESC drückt, sind sie immer noch da dabei sollten sie eigentlich entfernt sein.


    Hoffe ihr könnt mir da mal weiter helfen ..



    Grüße

    Was bringt das mir denn noch?


    Habe doch schon so ein stock erstellt gehabt ^^

    Moin



    Ich habe ein Problem mit dem Chat Radius, und zwar ist es so.
    Man schreibt was im Chat und es wird einmal für die, die sich eigentlich in den nächsten 10 Metern befinden angezeigt.
    Und es wird dann noch einmal Global gesendet also, es sieht so aus:


    Hier mal ein Bild dazu was ich meine KLICK



    Code:


    public OnPlayerText(playerid, text[])
    {
    if(GetPVarInt(playerid,"loggedin") == 0)return 0;
    if(GetPVarInt(playerid,"KrankenhausRespawn") > 1)
    {
    SendClientMessage(playerid,DUNKELROT,"Tote können nicht sprechen.");
    return 0;
    }
    new string[128];
    format(string, sizeof(string),"%s sagt: %s",Spielername(playerid),text);
    SMessage(playerid,WEIS,string,5);
    return 1;
    }


    stock SMessage(playerid,farbe,text[],Float:umkreis)
    {
    new Float:xm, Float:ym, Float:zm,maxplayers=GetMaxPlayers();
    if(GetPlayerPos(playerid,xm,ym,zm))
    {
    for(new i=0;i<maxplayers;i++)
    if(IsPlayerConnected(i) && (i==playerid || IsPlayerInRangeOfPoint(i,umkreis,xm,ym,zm)))
    SendClientMessage(i,farbe,text);
    return 1;
    }
    return 0;
    }

    Das ganze muss so aussehen:



    public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
    {
    if(newkeys=KEY_SECONDARY_ATTACK)
    {
    if(IsPlayerInRangeOfPoint(playerid,3.0,1555.5045,-1675.6730,16.1953))
    {
    SetPlayerPos(playerid,246.783996,63.900199,1003.640625);
    SetPlayerInterior(playerid,6);
    }
    }
    return 1;
    }



    ZU



    public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
    {
    if(newkeys == KEY_SECONDARY_ATTACK)
    {
    if(IsPlayerInRangeOfPoint(playerid,3.0,1555.5045,-1675.6730,16.1953))
    {
    SetPlayerPos(playerid,246.783996,63.900199,1003.640625);
    SetPlayerInterior(playerid,6);
    }
    }
    return 1;
    }


    Habe es jetzt erstmal mit einem Timer gelöst.



    Grüße

    Moin



    Ich habe ein kleines Problem mit meinem Tacho System, denn wenn man aus einem Fahrzeug aussteigt. Wird die Tachoanzeige nicht richtig entfernt.
    Er steigt aus und sie geht dann manchmal Weg oder bleibt manchmal immer noch, das ganze Frage ich unter OnPlayerExitVehicle ab.


    public OnPlayerExitVehicle(playerid, vehicleid)
    {
    TextDrawHideForPlayer(playerid,KMHAnzeige[playerid]);
    TextDrawHideForPlayer(playerid, FahrzeugName[playerid]);
    TextDrawHideForPlayer(playerid, KMHBOX[playerid]);
    TextDrawHideForPlayer(playerid, FahrzeugZustand[playerid]);
    TextDrawHideForPlayer(playerid, FahrzeugMotor[playerid]);
    TextDrawHideForPlayer(playerid, FahrzeugBenzin[playerid]);
    TextDrawHideForPlayer(playerid, TachoText[playerid]);
    return 1;
    }


    Hoffe ihr könnt mir da mal weiter helfen :D

    Erledigt. :D


    Hier die Funktion:



    stock SMessage(playerid,farbe,text[],Float:umkreis)
    {
    new Float:xm, Float:ym, Float:zm,maxplayers=GetMaxPlayers();
    if(GetPlayerPos(playerid,xm,ym,zm))
    {
    for(new i=0;i<maxplayers;i++)
    if(IsPlayerConnected(i) && (i==playerid || IsPlayerInRangeOfPoint(i,umkreis,xm,ym,zm)))
    SendClientMessage(i,farbe,text);
    return 1;
    }
    return 0;
    }