Beiträge von maddin

    ausserdem wird OnRconLoginAttempt erst nach dem einloggen ausgeführt. Das heisst auch wenn du da returnst biste schon angemeldet (vorrausgesetzt das pw is richtig)


    So wie du dir das vorstellst gehts nicht.


    Zitat

    Ich hab das nicht so verstanden toll und dann bekomme ich gleich warning reinggehauen ! X(


    Und dafür hoffentlich noch eine wegen spam

    Sachen wie Integer, string etc. sind das erste womit man beim Scripten kofnrontiert wird. Ein gewisses grundwissen setze ich einfach vorraus, da ich ja auch nicht extra erkläre was ein enum oder ein array ist. Und wenn man ein bisschen grundwissen hat, sollte man auch wissen das ein integer eine zahl ist ;)

    Du hast nur 3 variablen in denen du die ID des 3dTextes speicherst. Du hast aber mehr häuser also werden die 3 variablen immer nur geändert. Versuchs mal so:
    Ganz nach oben:
    new Text3D:HausInfo[ANZAHL_DEINER_HÄUSER];//das einfach in die anzahl deiner Häsuer ändern
    Dann unter OnGameModeInit oder wo auch immer du die 3d texte erstellst:
    for(new h = 0; h < sizeof(HouseInfo); h++)
    {
    if(HouseInfo[h][hOwned] == 1)
    {
    if(HouseInfo[h][hRentabil] == 0)
    {
    format(string, sizeof(string), "Dieses Haus gehört: %s \nLevel: %d",HouseInfo[h][hOwner],HouseInfo[h][hLevel]);
    }
    else
    {
    format(string, sizeof(string), "Dieses Haus gehört: %s \nMiete: $%d Level: %d \nBenutze /rentroom, um ein Zimmer zu mieten",HouseInfo[h][hOwner],HouseInfo[h][hRent],HouseInfo[h][hLevel]);
    }
    }
    else
    {
    format(string, sizeof(string), "Dieses Haus ist zu Verkaufen \nBeschreibung: %s \nPreis: $%d \nLevel: %d \nBenutze /buyhouse um es zu kaufen",HouseInfo[h][hDiscription],HouseInfo[h][hValue],HouseInfo[h][hLevel]);
    }
    HausInfo[h] = Create3DTextLabel(string,COLOR_ORANGE,HouseInfo[h][hEntrancex], HouseInfo[h][hEntrancey], HouseInfo[h][hEntrancez],30.0,0,1);
    Und zum Aktualisieren solltest du Update3DTextLabelText benutzen anstatt zu löschen und neu zu erstellen:
    public Haus3D()
    {
    new string[256];
    for(new h = 0; h < sizeof(HouseInfo); h++)
    {
    if(HouseInfo[h][hOwned] == 1)
    {
    if(HouseInfo[h][hRentabil] == 0)
    {
    format(string, sizeof(string), "Dieses Haus gehört: %s \nLevel: %d",HouseInfo[h][hOwner],HouseInfo[h][hLevel]);
    }
    else
    {
    format(string, sizeof(string), "Dieses Haus gehört: %s \nMiete: $%d Level: %d \nBenutze /rentroom, um ein Zimmer zu mieten",HouseInfo[h][hOwner],HouseInfo[h][hRent],HouseInfo[h][hLevel]);
    }
    }
    else
    {
    format(string, sizeof(string), "Dieses Haus ist zu Verkaufen \nBeschreibung: %s \nPreis: $%d \nLevel: %d \nBenutze /buyhouse um es zu kaufen",HouseInfo[h][hDiscription],HouseInfo[h][hValue],HouseInfo[h][hLevel]);
    }
    Update3DTextLabelText(HausInfo[h], COLOR_ORANGE, string);
    }
    return 1;
    }


    Mfg.

    Sry so ists richtig
    public OnPlayerStreamIn(playerid, forplayerid)
    {
    if(mask[playerid]==0)
    {
    ShowPlayerNameTagForPlayer(forplayerid, playerid, true);
    }
    else if(mask[playerid]==1)
    {
    ShowPlayerNameTagForPlayer(forplayerid, playerid, false);
    }
    return 1;
    }

    Hast du auch
    ShowNameTags(1);
    Unter OnGameModeInit stehen?


    Und füg das mal noch dazu:
    public OnPlayerStreamIn(playerid, forplayerid)
    {
    if(mask[playerid]==0)
    {
    ShowPlayerNameTagForPlayer(forplayerid, playerid, true)
    }
    else if(mask[playerid]==1)
    {
    ShowPlayerNameTagForPlayer(forplayerid, playerid, false)
    }
    return 1;
    }
    Hab noch nie mit ShowPlayerNameTagForPlayer gearbeitet, aber vielleicht muss man das wiederholen wenn der Spieler gestreamt wird.

    Versuchs mal so
    if(newkeys & KEY_SECONDARY_ATTACK)
    {
    if(IsPlayerInRangeOfPoint(playerid,3,-1656.3706,1218.0201,7.2500))
    {
    SetPlayerCameraPos(playerid,-1573.7083,1192.3762,22.0449);
    SetPlayerCameraLookAt(playerid,-1660.8774,1213.9800,6.8222);
    new playername[20],string[128];
    GetPlayerName(playerid,playername,sizeof(playername));
    format(string,sizeof(string),"Willkommen %s.\nHier kannst du deine privaten Fahrzeuge kaufen.\nDrücken sie auf weiter um fortzufahren.",playername);
    TogglePlayerControllable(0,1);
    ShowPlayerDialog(playerid,DIALOG_CARSHOP2_MSG,DIALOG_STYLE_MSGBOX,"Autohaus Los Santos",string,"Weiter","Abbrechen");
    }
    else if(IsPlayerInRangeOfPoint(playerid,3,-1943.2330,276.1430,35.4739))
    {
    SetPlayerCameraPos(playerid,-2005.1416,314.6960,44.7150);
    SetPlayerCameraLookAt(playerid,-1950.6490,275.0168,35.0673);
    new playername[20],string[128];
    GetPlayerName(playerid,playername,sizeof(playername));
    format(string,sizeof(string),"Willkommen %s.\nHier kannst du deine privaten Fahrzeuge kaufen.\nDrücken sie auf weiter um fortzufahren.",playername);
    TogglePlayerControllable(0,1);
    ShowPlayerDialog(playerid,DIALOG_CARSHOP1_MSG,DIALOG_STYLE_MSGBOX,"Autohaus Los Santos",string,"Weiter","Abbrechen");
    }
    else return SendClientMessage(playerid,ROT,"Sie sind nicht an der Position!");
    }

    if (strcmp(cmd, "/mask", true) == 0)
    {
    if(PlayerInfo[playerid][pMember] != 8 && PlayerInfo[playerid][pLeader] != 8) return SendClientMessage(playerid, COLOR_RED,"Du kannst dich nicht tarnen");
    if(mask[playerid]==1)
    {
    for(new i = 0; i < MAX_PLAYERS; i++) ShowPlayerNameTagForPlayer(i, playerid, true);
    SendClientMessage(playerid, COLOR_WHITE, " Du setzt deine Maske ab!");
    mask[playerid] = 0;
    return 1;
    }
    else if(mask[playerid]==0)
    {
    for(new i = 0; i < MAX_PLAYERS; i++) ShowPlayerNameTagForPlayer(i, playerid, false);
    SendClientMessage(playerid, COLOR_WHITE, " Du setzt deine Maske auf!");
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format (string, sizeof(string), "* %s setzt sich eine Maske auf!", sendername);
    ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
    mask[playerid] = 1;
    return 1;
    }
    }

    Wofür genau ist das Feld zum Namen eingeben?
    Und du könntest noch einen Button zum Starten von SAMP machen. Entweder aus der registry auslesen oder einfach per samp url. Und die Idee von Cedii mit CPU und RAM find ich gut. Dann würd ichs auch benutzen^^ So hat es für mich nichts was ich brauchen könnte.

    1. Wenn du schon ein tutorial machen willst mach es auch richtig. Zu Dialogen gehört auch OnDialogResponse und das haste net erklärt.
    2. Warum arbeitest du mit format? macht keinen sinn bei dem was du da tust.
    3. Why Windoes Server?
    4. Wie WAIDI schon sagte muss man nicht zu jeder sache 100 Tutorials erstellen. Zumal deins auch noch schlecht ist.

    es muss
    if (strcmp("/meinbefehl", cmdtext, true, 10) == 0)
    sein und nicht
    if(strcmp("/meinbefehl", cmdtext, true, 10, == 0)
    oder
    if(strcmp("/meinbefehl", cmdtext, true, 10,

    Das ist der sinn eines Streamers^^
    Du kannst aber einfach manuell die stream distanz erhöhen.
    CreateDynamicMapIcon(-1610.230346, 702.045166, 48.937500,30,-1, -1, -1,-1, 100.0)//Die 100.0 am ende soweit erhöhen wie du es anzeigen willst.