Beiträge von IPrototypeI


    wenn es mehrere daten sind benutz dazu doch gleich mysql_fetch_row und splitte das ergebniss mit sscanf dein problem ist es das er nicht automatisch zur nächsten reihe springt und zum query es muss wen schon so aussehen `%s.Premiumautos` oder %s.Premiumautos datenbank.tabelle weil man muss hier die backtricks nicht doppelt verwenden

    sofern du nicht Daten ausließt wie die position sondern alles in Variabeln temporär speicherst sollte das ganze gehen da bei einem restart OnPlayerDisconnect aufgerufen
    wird für dne spieler. Du kannst natürlich auch alle spieler daten speichern in dem du die funktion aufrufst oder eine funktion machst welche aufgerufen wird wnen die daten für den spieler gespeichert werden sollen via for schleife. und den restart erst verzögert ausführst. Das kannst du auch machen.


    1. Via AttachTrailerToVehicle
    http://wiki.sa-mp.com/wiki/AttachTrailerToVehicle


    2. Nein einfach normal wie im single player auch ran fahren


    3. Ja ab einer bestimmten höhe sind die nicht mehr sichtbar

    Du hast hier mehrere fehler enthalten
    if(sscanf(params,"ud[128]",pID,grund))return SendClientMessage(playerid,Orange,"Server: /kick [ID/Name] [Grund]");
    d oder i sind integer s steht für string also ist der specifer für strings


    format(string,sizeof(string),"Server: Spieler %s wurde gekickt von %s | Grund: %s",SpielerName(pID),SpielerName(playerid),grund);


    erhöhe den string "string " auf 144 zeichen das ist die maximale wiedergabe von zeichen im chat.
    128 + 24+24 kommt man zwar drüber aber wer nutz schon 24 Zeichen im Namen.
    dazu benutz da konstante werte sind daher ausch schneller als das auslesen der werte via sizeof.


    SendClientMessageToAll(Kick,string);
    sollte Kick eine definition für ein Farbcode sein ist es richtig RGBA das format.

    Hier bitte



    dcmd_showpda(playerid,params[])
    {
    #pragma unused params
    switch(PlayerInfo[playerid][PDA]){
    case 0: return SendClientMessage(playerid, Rot, "Du besitzt kein PDA!");
    case 1: return PlayerTextDrawShow(playerid, StatsDraw[0]),PlayerInfo[playerid][PDA]=2,PlayerTextDrawShow(playerid, StatsDraw[1]),PlayerTextDrawShow(playerid, StatsDraw[2]),PlayerTextDrawShow(playerid, StatsDraw[3]),PlayerTextDrawShow(playerid, StatsDraw[4]),SendClientMessage(playerid,-1,"PDA {C20000}an");
    case 2: return PlayerTextDrawHide(playerid, StatsDraw[0]),PlayerInfo[playerid][PDA]=1,PlayerTextDrawHide(playerid, StatsDraw[1]),PlayerTextDrawHide(playerid, StatsDraw[2]),PlayerTextDrawHide(playerid, StatsDraw[3]),PlayerTextDrawHide(playerid, StatsDraw[4]),SendClientMessage(playerid,-1,"PDA {33AA33}aus");
    }
    return 1;
    }
    musst halt das ganze sollte das auch vorhanden sein speichern als 1 falls du nicht willst das der Spieler sollte er damit offline gegangen ist
    das der pda an war in nochmal ausschalten muss und anschalten

    Hallo Leute!


    Gibt es einen Dialog, wo man nur einen Button und Text hat?
    Bzw. wie mache ich nur einen Button?


    Das es einen Button nur gibt das geht leider nicht da müsstest du das ganze via textdraw machen.
    aber um zurück zu kommen auf den Dialog mit nur text und einem button dazu veränderst du bei ShowPlayerDialog den style in deinem Fall ist es DIALOG_STYLE_MSGBOX
    http://wiki.sa-mp.com/wiki/ShowPlayerDialog hier findest du auch die beispiele kannst ja alles mal ins skript einfügen und dir anschauen


    Das ganze ist grotten falsch es sind hier 8 parameter die funktion hat nur 7

    AddStaticVehicle(modelid, Float:spawn_x, Float:spawn_y, Float:spawn_z, Float:angle, color1, color2)


    auch wenn man die doppelnutzung von 437 was eine fahrzeugid wäre entfernt wäre Coach eine #define für eine Float und wäre die rotation
    zu muss man bei den zahlen keine 00 davor setzen es reicht 0 und 1 kannst es auch in hexdezimale angeben 0x1 aber naja schwam drüber :D

    Hier bitte du kannst die geröße selbst anpassen
    SetPlayerAttachedObject(playerid, 3 , 2914, 1 , -0.079000, -0.085999, -0.184999, 12.000000, 58.400062, 170.299911,1.0, 1.0, 1.0);
    da man über SetPlayerAttachedObject die Objectegröße verändern kann jedoch nicht damit die kollisonen

    Also mir persönlich gefallen alle 3 nicht jedoch ist eine steigerung zu erkennen zwischen dem 3 und dem ersten es wird besser.
    Was ich gut finde besser gesagt gewagt das du verschiedene aufbauten verwendest .

    Du solltest dir die Frage stellen ob es überhaupt vorteilhaft ist das zu verwenden eine 3d array und ab 3d array solltest du aufpassen das der kompiler
    jetzt ohne ein enum als index zu verwenden die dimensionen 2 und 3 zusammenlegt
    Gerichte[2][3][4]
    wird zu
    Gerichte[2][3 *4] als kleiner Tipp am rande.
    Zu dem musst du deinen einträgen konstante werte zuweißen sonst geht das nicht du kannst nur die anzahl der letzen dimension per sizeof abrufen, soweit ich weiß


    Was willst eigentlich genau noch wissen oder wo besteht das problem schreib mal konkrete sätze wo du auf den Punkt kommst.
    Beispiel:
    Ich möchte ... machen.
    Das Problem dabei ist ... .
    Ich habe ... und ... um ... und ... abzufragen.


    weil ich lese mir deinen geschrieben text durch und schau auf den code und kann keine aussage darüber treffen mit was du eigentlich was abprüfen willst
    ob PlayerInfo[playerid][PDA] dafür verwendet wird um abzuprüfen ob ein pda vorhanden ist oder ob es der status ist ob an oder aus oder alles in sich vereint.
    weil sonst brauchst du dich auch nicht wundern warum es nicht geht.

    Ich frag mich generel warum du überhaupt für sowas einen Thread schreibst beziehungsweise warum mann sich darüber überhaupt aufregt.
    Was stört dich daran überhaupt das er mehr beiträge hat ist dies so aussschlagsgebend oder was oder bezieht sich das auf den inhalt.


    Ich finde es persönlich unnötid dafür eine extra funktion zu schreiben die noch aufgerufen wird mach das doch via #define
    #define ARGB(%0,%1,%2,%3) (%3 + (%2 * 0x1000000) + (%1 * 0x10000) + (%0 * 0x100))


    mann sollte ein 2d array verwenden aufgrund dessen da das ganze wie ein stream funktioniert und dieids nicht wirklich konstant bleiben daher ist es auch moeglich das limit der textdraws zu ueberschreiten dennoch sind beide funktionen nicht unabhaengig.also soll das ganze id verschiebungen vorbeugen.

    Was ist daran nun so schwer ? Faulheit oder einfach nur die unwissenheit.
    new PlayerText:StatsDraw[MAX_PLAYERS][5];
    public OnPlayerConnect(playerid)
    {
    StatsDraw[playerid][0] = CreatePlayerTextDraw(playerid,525.000000, 125.000000, "Level:");
    PlayerTextDrawBackgroundColor(playerid,StatsDraw[playerid][0], 255);
    PlayerTextDrawFont(playerid,StatsDraw[playerid][0], 1);
    PlayerTextDrawLetterSize(playerid,StatsDraw[playerid][0], 0.400000, 0.949999);
    PlayerTextDrawColor(playerid,StatsDraw[playerid][0], 8913151);
    PlayerTextDrawSetOutline(playerid,StatsDraw[playerid][0], 0);
    PlayerTextDrawSetProportional(playerid,StatsDraw[playerid][0], 1);
    PlayerTextDrawSetShadow(playerid,StatsDraw[playerid][0], 1);
    PlayerTextDrawUseBox(playerid,StatsDraw[playerid][0], 1);
    PlayerTextDrawBoxColor(playerid,StatsDraw[playerid][0], 101);
    PlayerTextDrawTextSize(playerid,StatsDraw[playerid][0], 644.000000, 0.000000);


    StatsDraw[playerid][1] = CreatePlayerTextDraw(playerid,525.000000, 136.000000, "Bank:");
    PlayerTextDrawBackgroundColor(playerid,StatsDraw[playerid][1], 255);
    PlayerTextDrawFont(playerid,StatsDraw[playerid][1], 1);
    PlayerTextDrawLetterSize(playerid,StatsDraw[playerid][1], 0.400000, 0.949999);
    PlayerTextDrawColor(playerid,StatsDraw[playerid][1], 8913151);
    PlayerTextDrawSetOutline(playerid,StatsDraw[playerid][1], 0);
    PlayerTextDrawSetProportional(playerid,StatsDraw[playerid][1], 1);
    PlayerTextDrawSetShadow(playerid,StatsDraw[playerid][1], 1);
    PlayerTextDrawUseBox(playerid,StatsDraw[playerid][1], 1);
    PlayerTextDrawBoxColor(playerid,StatsDraw[playerid][1], 101);
    PlayerTextDrawTextSize(playerid,StatsDraw[playerid][1], 642.000000, 0.000000);


    StatsDraw[playerid][2] = CreatePlayerTextDraw(playerid,525.000000, 147.000000, "Handynr.:");
    PlayerTextDrawBackgroundColor(playerid,StatsDraw[playerid][2], 255);
    PlayerTextDrawFont(playerid,StatsDraw[playerid][2], 1);
    PlayerTextDrawLetterSize(playerid,StatsDraw[playerid][2], 0.400000, 0.949999);
    PlayerTextDrawColor(playerid,StatsDraw[playerid][2], 8913151);
    PlayerTextDrawSetOutline(playerid,StatsDraw[playerid][2], 0);
    PlayerTextDrawSetProportional(playerid,StatsDraw[playerid][2], 1);
    PlayerTextDrawSetShadow(playerid,StatsDraw[playerid][2], 1);
    PlayerTextDrawUseBox(playerid,StatsDraw[playerid][2], 1);
    PlayerTextDrawBoxColor(playerid,StatsDraw[playerid][2], 101);
    PlayerTextDrawTextSize(playerid,StatsDraw[playerid][2], 640.000000, 0.000000);


    StatsDraw[playerid][3] = CreatePlayerTextDraw(playerid,525.000000, 158.000000, "Payday:");
    PlayerTextDrawBackgroundColor(playerid,StatsDraw[playerid][3], 255);
    PlayerTextDrawFont(playerid,StatsDraw[playerid][3], 1);
    PlayerTextDrawLetterSize(playerid,StatsDraw[playerid][3], 0.400000, 0.949999);
    PlayerTextDrawColor(playerid,StatsDraw[playerid][3], 8913151);
    PlayerTextDrawSetOutline(playerid,StatsDraw[playerid][3], 0);
    PlayerTextDrawSetProportional(playerid,StatsDraw[playerid][3], 1);
    PlayerTextDrawSetShadow(playerid,StatsDraw[playerid][3], 1);
    PlayerTextDrawUseBox(playerid,StatsDraw[playerid][3], 1);
    PlayerTextDrawBoxColor(playerid,StatsDraw[playerid][3], 101);
    PlayerTextDrawTextSize(playerid,StatsDraw[playerid][3], 640.000000, 0.000000);


    StatsDraw[playerid][4]= CreatePlayerTextDraw(playerid,525.000000, 169.000000, "Mit /showstats an oder aus schalten");
    PlayerTextDrawBackgroundColor(playerid,StatsDraw[playerid][4], 255);
    PlayerTextDrawFont(playerid,StatsDraw[playerid][4], 1);
    PlayerTextDrawLetterSize(playerid,StatsDraw[playerid][4], 0.160000, 1.200000);
    PlayerTextDrawColor(playerid,StatsDraw[playerid][4], 8913151);
    PlayerTextDrawSetOutline(playerid,StatsDraw[playerid][4], 0);
    PlayerTextDrawSetProportional(playerid,StatsDraw[playerid][4], 1);
    PlayerTextDrawSetShadow(playerid,StatsDraw[playerid][4], 1);
    PlayerTextDrawUseBox(playerid,StatsDraw[playerid][4], 1);
    PlayerTextDrawBoxColor(playerid,StatsDraw[playerid][4], 101);
    PlayerTextDrawTextSize(playerid,StatsDraw[playerid][4], 640.000000, 0.000000);
    return 1;
    }

    Beinhaltet pName auch den Namen des jeweiligen Spielers.


    und als Tipp


    new Float:x;
    new Float:y;
    new Float:z;
    GetPlayerPos(playerid,x,y,z);
    PlayerInfo[playerid][pPosX] = x;
    PlayerInfo[playerid][pPosY] = y;
    PlayerInfo[playerid][pPosZ] = z;


    kannst du vereinfachen
    GetPlayerPos(playerid,PlayerInfo[playerid][pPosX],PlayerInfo[playerid][pPosY],PlayerInfo[playerid][pPosZ]);
    aufgrund das die jeweiligen Werte an die deklarierte Float zurück gegeben wird.