Beiträge von Splash

    @ulbi1990:
    Unnötig.


    Das gilt zwar für den Namens-String den du setzen kannst, jedoch kannst du eh nur mit einem String von 20 Charactern auf einen Server connecten. Sprich eigentlich würde in diesem Fall ein Array von 21 Cells völlig reichen ;)


    Sorry das ich erst jetzt nen Reply schreibe, aber ich wollte dich nur einmal daran erinnern das es noch eine Funktion gibt welche sich SetPlayerName nennt und diese ist NICHT auf die 20 Character gebunden und es gibt hierbei genug Leute die bestimmt wenn jemand /afk geht oder was auch immer noch nen Tag ran geben, so sollte er nun schon 20 Character als Namen haben kommen diese hinzu und dein Code wird nicht mehr ohne Bugs laufen.

    Sorry aber das weiss ich selber nicht, da es wirklich nicht benötigt wird für PlayerTextDraws, da wie der Name es schon sagt für den Spieler (Player) erstellt wird.

    Syntax von GetVehicleVelocity beachten!


    GetVehicleVelocity(vehicleid, &Float:x, &Float:y, &Float:z)


    Wird zudem so niemals einen richtigen Wert ausgeben, da es noch berechnet werden muss. Suche am besten nach GetVehicleSpeed via Google, dort sind mehrere Lösungen der Berechnung aufgelistet. Auch im englischem Forum schauen.


    DasNeo


    Das:


    Zitat

    Zudem muss man bei den PlayerTextDraws immer [MAX_PLAYERS] benutzen.

    ist Müll den du erzählst da PlayerTextDraws schon einer bestimmten playerid zugewissen werden!


    EDIT:


    Zitat

    Creates a textdraw for a single player. This can be used as a way around the global text-draw limit.


    Quelle: http://wiki.sa-mp.com/wiki/CreatePlayerTextDraw


    EDIT:


    Kannst dies einmal probieren DasNeo


    new PlayerText:Background;


    public OnPlayerConnect(playerid)
    {
    Background = CreatePlayerTextDraw(playerid,644.000000, 0.000000, "_");
    PlayerTextDrawBackgroundColor(playerid,Background, 255);
    PlayerTextDrawFont(playerid,Background, 1);
    PlayerTextDrawLetterSize(playerid,Background, 0.500000, 49.699974);
    PlayerTextDrawColor(playerid,Background, -1);
    PlayerTextDrawSetOutline(playerid,Background, 0);
    PlayerTextDrawSetProportional(playerid,Background, 1);
    PlayerTextDrawSetShadow(playerid,Background, 1);
    PlayerTextDrawUseBox(playerid,Background, 1);
    PlayerTextDrawBoxColor(playerid,Background, 255);
    PlayerTextDrawTextSize(playerid,Background, 460.000000, 1.000000);
    return 1;
    }


    OnPlayerSpawn(playerid)
    {
    ShowPlayerTextDraw(playerid,Background);
    return 1;
    }


    Du wirst sehen, dass es für jeden Spieler extra erstellt wird.

    Soll sie Serverseitig oder Playerseitig sein?


    Naja egge:


    Serverseitig:


    new Text:Box; //oben im Script


    public OnGameModeInit()
    {
    Box = CreateTextDraw(650.000000, 429.000000, "_");
    TextDrawBackgroundColor(Box, 255);
    TextDrawFont(Box, 1);
    TextDrawLetterSize(Box, 0.549999, 1.900000);
    TextDrawColor(Box, -1);
    TextDrawSetOutline(Box, 0);
    TextDrawSetProportional(Box, 1);
    TextDrawSetShadow(Box, 1);
    TextDrawUseBox(Box, 1);
    TextDrawBoxColor(Box, 255);
    TextDrawTextSize(Box, -2.000000, 0.000000);
    return 1;
    }


    public OnPlayerConnect(playerid)
    {
    TextDrawShowForPlayer(playerid,Box);
    return 1;
    }


    Playerseitig:


    new PlayerText:Box; //oben im Script


    public OnPlayerConnect(playerid)
    {
    Box = CreatePlayerTextDraw(playerid,650.000000, 429.000000, "_");
    PlayerTextDrawBackgroundColor(playerid,Box, 255);
    PlayerTextDrawFont(playerid,Box, 1);
    PlayerTextDrawLetterSize(playerid,Box, 0.549999, 1.900000);
    PlayerTextDrawColor(playerid,Box, -1);
    PlayerTextDrawSetOutline(playerid,Box, 0);
    PlayerTextDrawSetProportional(playerid,Box, 1);
    PlayerTextDrawSetShadow(playerid,Box, 1);
    PlayerTextDrawUseBox(playerid,Box, 1);
    PlayerTextDrawBoxColor(playerid,Box, 255);
    PlayerTextDrawTextSize(playerid,Box, -2.000000, 0.000000);
    PlayerTextDrawShow(playerid,Box);
    return 1;
    }


    Have fun with it.

    das hier alles:


    new VoteYes;
    new VoteNo;
    new KickID;
    new bool:VoteAktiv;
    new KickReason[128];
    new bool:Votet[MAX_PLAYERS];
    new Text:VBox;
    new Text:VHeader;
    new Text:VPlayer;
    new Text:VLine1;
    new Text:VLine2;
    new Text:VReasonTD;
    new Text:VLine3;
    new Text:VYesTD;
    new Text:VNoTD;
    new Text:VYesVoteTD;
    new Text:VNoVoteTD;kann in eine Zeile.


    new VoteYes,VoteNo,KickID,bool:VoteAktiv,KickReason[128],bool:Votet[MAX_PLAYERS],Text:VBox,Text:VHeader,Text:VPlayer,//usw keine Lust jetzt alles hier in eine Zeile neu zu schreiben


    warum fragst du hier:

    public OnPlayerDisconnect(playerid, reason)
    {
    if(VoteAktiv == true)
    {
    if(playerid == KickID && VoteAktiv == true)


    Zweimal ab ob der VoteKick aktiv ist? oO


    Eine Abfrage würde es auch tun.


    Wenn er nicht connected ist kann der Spieler dies auch keine Befehle ausführen da er wie die Funktion schaon sagt zurückgibt ob er connected ist:
    if(!IsPlayerConnected(playerid)) return 1;bringt sozusagen nichts ausser eine sinnlosse Abfrage.


    Das soll jetzt nicht böse rüberkommen, sondern mehr als Tipp.

    Hey ich wollte nun auch einmal ein Programm von mir präsentieren und hab mich für meinen Program Launcher entschieden.


    Man kann bis zu 22 Programme/Datein über die Buttons einfügen, kann ganz einfach die Buttons einzeln löschen oder alles mit einmal.


    Viel gibt es nicht zu sagen da ich auch ein Video habe was ich damals erstellt hatte.


    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.


    Have fun und Kritik welche Konstruktiv ist ist erwünscht. das Programm hatte damals noch einen kleinen Bug wo ich es aufnahm was mir aber erst später auffiel. Habe ich aber in meiner Finallen Version gefixt.

    Haargenau so.


    format(string1,sizeof(string1),"~w~Getötet von ~r~%s",SpielerName(killerid));


    Du formatierst NUR das was du in dem GameText ausgeben willst. D.h. es ist als würdest du es in der Funktion selber nutzen.


    Quelle: SA:MP Wiki deutscher Teil

    Haste auch das Filterscript in deinem Filterscripts Ordner? Ist der Ordner für die Records vorhanden? Ist das gamemode genau gleich im gamemodes Ordner vorhanden? Sind alle Scriptfiles Unterordner vorhanden fals du diese nutzt?

    Finde es soweit ganz gut, jedoch habe ich einwas zu beanstanden.


    Zitat

    new dName[MAX_PLAYER_NAME];//String für den Namen


    Ändere dies bitte zu:


    new dName[MAX_PLAYER_NAME+1];//String für den Namen


    Da es den abschliesenden Null Character noch gibt.


    Quelle: SA:MP Wiki GetPlayerName


    Zitat

    Note: A player's name can be up to 24 characters long (as of 0.3d R2).


    This is defined in a_samp as MAX_PLAYER_NAME.
    Strings to store names in should be made this size, plus one extra cell for the null terminating character.
    i.e. new pName[MAX_PLAYER_NAME+1];

    Du hast es nicht ganz verstanden wie ich es mit variablen meine, kann das sein?


    Ich meine es so:


    if ((newkeys & KEY_SUBMISSION) && !(oldkeys & KEY_SUBMISSION)) //Taste wird gedrückt
    {
    SetTimerEx("MotorStarten",3000,0,"i",playerid);
    }


    if ((oldkeys & KEY_SUBMISSION) && !(newkeys & KEY_SUBMISSION))
    {
    if(startmotor[playerid] = 0)
    {
    KillTimer(MotorStarten(playerid));
    //Nachricht das er die Taste nicht 3 Sekunden hielt
    }
    }[pwn]


    Dein Timer:


    [pwn]forward MotorStarten(playerid);
    public MotorStarten(playerid)
    {
    if(startmotor[playerid] == 0)
    {
    ocmd_motor(playerid);
    startmotor[playerid]=1;
    }
    return 1;
    }


    Tipp: Sollte er das Fahrzeug verlassen und/oder Server verlassen setze die Variable wieder auf 0, ansonsten kann er jedesmal nur 1 Fahrzeug anmachen und dannach keins mehr.


    Würde wie folgt aussehen:


    public OnPlayerDisconnect(playerid, reason)
    {
    startmotor[playerid]=0;
    return 1;
    }


    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    if(oldstate == PLAYER_STATE_DRIVER && newstate == PLAYER_STATE_ONFOOT)
    {
    startmotor[playerid]=0;
    }
    return 1;
    }

    Mag es soweit ich es beurteilen kann.


    Verbesserungsvorschläge:


    Textdraws:
    -Team Rot (Schriftfarbe in rot)
    -Team Blau (Schriftfarbe in blau)
    -Was über den beiden Teams steht, also "Teams:" vlt in einem etwas dunkeren grün.

    Nur um es dir als Beispiel zu machen:



    new str[1024];
    format(str,sizeof(str),"UPDATE `samp_handys` SET`handyInhaber`='%s'",/*deine Variable*/);
    strcat(str,"`handyNummer`='%d'",/*neue variable*/);
    mysql_query(str);
    //usw


    Sorry das es str ist nutze dies immer, da ich es einmal Global mit einer länge von 2000 erstelle bei mir. :P