Beiträge von Silverdark

    Ich würde es so machen (für andere die ähnliche Probleme haben)



    Da du ja nach Marke sortierst werden niemals unterschiedliche Markennamen hintereinander kommen...
    Ich meine das so: Es wird niemals z. B. als Markennamen Tauris, Malaguti, Tauris kommen sondern alle von Tauris hintereinander


    Mit freundlichen Grüßen

    Hallo,


    ich habe das also richtig gelesen, ihr sucht einen Scripter der am besten schon ein Script hat. Dafür habt ihr schon ein 8 Slot Teamspeak³ Server (Habe mal Google benutzt, 1. Treffer 15 Slots für 4,49€).
    Habt ihr überhaupt einen San Andreas Multiplayer Server? Der Scripter soll ja vielleicht auch noch eine Lizenz für ein Forum haben (Nehmen wir mal Woltlab Burning Board (49,99€), dann kommen mir die Kosten irgendwie komisch vor...).


    Ihr:
    5,00€ (Teamspeak³ Server)
    5,00€ (San Andreas Multiplayer Server)


    Scripter:
    50,00€ (Woltlab Burning Board)
    unbezahlbar (Script)


    (Preise sind aufgerundet)


    Jetzt frage ich mich, was es einem Scripter bringt, mit euch einen Server aufzumachen... davon müsst ihr einen erstmal überzeugen... vielleicht mit einer besonderen Idee, denn

    Zitat

    Wir wollen einen guten Reallife-Roleplay Server erstellen, wo man so gesagt sein 2tes Leben leben kann.


    gibt es wie Sand am Meer in diesem Bereich.


    Wünsch euch trotzdem weiterhin viel Glück bei der Suche,
    Mit freundlichen Grüßen

    mach das mal so



    stock ResetVariablen(playerid)
    {
    SpielerInfo[playerid][Adminlevel]=0;
    SpielerInfo[playerid][Fraktion]=0;
    SpielerInfo[playerid][Banned]=0;
    SpielerInfo[playerid][Rang]=0;
    SpielerInfo[playerid][Leader]=0;
    return 1;
    }


    // Edit: Erklärung: beim stock am Ende das Semikolon ( ; ) weg
    // Edit2: Bitte nicht soviele Leerstellen sonst zerstörst du noch mein Scrollrad :D

    sollte gehen:



    Function OnPlayerBuyCar(playerid,Model,Preis,Autohaus)//CARSYS
    {
    if(IsPlayerConnected(playerid) && !Dtc_PlayerHaveCar[playerid][Dtc_PlayerKey[playerid]])
    {
    CallRemoteFunction("M_GivePlayerMoney","id",playerid,-Preis);
    if(Autohaus == 0)
    {
    AddToBizzTill(0,Preis/2);
    }
    else if(Autohaus == 2)
    {
    AddToBizzTill(0,Preis);
    }
    else if(Autohaus == 3)
    {
    AddToBizzTill(0,Preis/2);
    }
    else if(Autohaus == 4)
    {
    AddToBizzTill(0,Preis/10);
    }
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "*Du hast dir ein Auto gekauft.");
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "*Gehe zu einem Beamten und hole dir eine Erlaubnis für einen Kennzeichen.");
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "*Danach musst du in die Stadthalle, um ein Kennzeichen für 5000$ zu kaufen.");
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "*Außerdem musst du zum Meldeamt! Das findest du Nordwestlich(BSN), wurde auf der Karte markiert!");
    SetPlayerCheckpoint(playerid,547.6107,-1266.5222,17.2422,8.0);
    PlayerPlaySound(playerid, 1058, 0.0, 0.0, 0.0);
    SetParkPlatz(playerid,Autohaus);
    new name[MAX_PLAYER_NAME], str[128], plate[5];
    GetPlayerName(playerid, name, sizeof name);
    if(strlen(name) > 5) {
    strmid(plate, name, 0, 5);
    } else {
    format(plate, sizeof(plate), "%s", name);
    }
    format(str, sizeof str, "/Autos/%s%d.dtcar", name,Dtc_PlayerKey[playerid]);
    new File: hFile = fopen(str, io_write);
    if (hFile)
    {
    new var[32];
    format(var, 32, "CarId=0\n");fwrite(hFile, var);
    format(var, 32, "CarModel=%d\n",Model);fwrite(hFile, var);
    format(var, 32, "CarPos_x=%.3f\n",PlayerCar[playerid][Dtc_PlayerKey[playerid]][CarPos_x]);fwrite(hFile, var);
    format(var, 32, "CarPos_y=%.3f\n",PlayerCar[playerid][Dtc_PlayerKey[playerid]][CarPos_y]);fwrite(hFile, var);
    format(var, 32, "CarPos_z=%.3f\n",PlayerCar[playerid][Dtc_PlayerKey[playerid]][CarPos_z]);fwrite(hFile, var);
    format(var, 32, "CarRotate=%.3f\n",PlayerCar[playerid][Dtc_PlayerKey[playerid]][CarRotate]);fwrite(hFile, var);
    format(var, 32, "CarNitro=0\n");fwrite(hFile, var);
    format(var, 32, "CarHyd=0\n");fwrite(hFile, var);
    format(var, 32, "CarWheel=0\n");fwrite(hFile, var);
    format(var, 32, "CarAusp=0\n");fwrite(hFile, var);
    format(var, 32, "CarSideL=0\n");fwrite(hFile, var);
    format(var, 32, "CarSideR=0\n");fwrite(hFile, var);
    format(var, 32, "CarFB=0\n");fwrite(hFile, var);
    format(var, 32, "CarRB=0\n");fwrite(hFile, var);
    format(var, 32, "CarSpoiler=0\n");fwrite(hFile, var);
    format(var, 32, "CarRoof=0\n");fwrite(hFile, var);
    format(var, 32, "CarHood=0\n");fwrite(hFile, var);
    format(var, 32, "CarVents=0\n");fwrite(hFile, var);
    format(var, 32, "CarLamps=0\n");fwrite(hFile, var);
    format(var, 32, "CarPJ=-1\n");fwrite(hFile, var);
    format(var, 32, "CarC1=-1\n");fwrite(hFile, var);
    format(var, 32, "CarC2=-1\n");fwrite(hFile, var);
    format(var, 32, "Preis=%d\n",Preis);fwrite(hFile, var);
    format(var, 32, "Plate=%s\n", plate);fwrite(hFile, var);
    fclose(hFile);
    }
    OnPlayerCarLogin(playerid);
    }
    }

    Oder erstellst jedes mal einen neuen Eintrag in einer extra Tabelle:



    new ip[16], query[128], name[MAX_PLAYER_NAME];
    GetPlayerIp(playerid, ip, sizeof(ip));
    GetPlayerName(playerid, name, sizeof(name));
    format(query, sizeof(query), "INSERT INTO log VALUES('%s', '%s')", name, ip);
    mysql_query(query);

    Probier das mal:



    stock Float:mysql_GetFloat(Table[], Field[], Where[], Is[])
    {
    new query[128], Float:Get, tmp[12];
    mysql_real_escape_string(Table, Table);
    mysql_real_escape_string(Field, Field);
    mysql_real_escape_string(Where, Where);
    mysql_real_escape_string(Is, Is);
    format(query, 128, "SELECT `%s` FROM `%s` WHERE `%s` = '%s'", Field, Table, Where, Is);
    mysql_query(query);
    mysql_store_result();
    mysql_fetch_row(tmp);
    Get = floatstr(tmp);
    mysql_free_result();
    return Get;
    }

    Sollte das Kennzeichen dann nicht erst in der Stadthalle festgelegt werden?



    if(GetPlayerMoney(playerid) >= 5000) {
    new vehicleid = 0; // Die Vehicleid von dem Fahrzeug rausbekommen, kann ich aus dem Script nicht erschließen
    new plname[MAX_PLAYER_NAME];
    GetPlayerName(playerid, plname, sizeof(plname));
    GivePlayerMoney(playerid, -5000);

    if(strlen(plname) > 5) {
    strmid(plname, plname, 5, strlen(plname));
    }
    SetVehicleNumberPlate(vehicleid, plname);
    // Fahrzeug mit neuem Kennzeichen noch speichern
    }


    Edit: Nicht getestet!

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


    CreateObject(modelid, Float:X, Float:Y, Float:Z, Float:rX, Float:rY, Float:rZ, Float:DrawDistance);



    new Bombe[MAX_PLAYERS];


    if(strcmp(cmdtext,"/plantbomb",true)==0) {
    if(bomb[playerid]==1) {
    if(isPlayerInFrakt(playerid,5)) {
    if(plantedbomb[playerid]==0) {
    GetPlayerPos(playerid, BombeX[playerid], BombeY[playerid], BombeZ[playerid] );
    Bombe[playerid] = CreateObject(1654, BombeX[playerid], BombeY[playerid], BombeZ[playerid], 0, 0, 0, 200.0);
    SendClientMessage(playerid,COLOR_GREEN,"Du hast die Bombe gelegt.");
    bomb[playerid]=0; plantedbomb[playerid]=1;
    return 1;
    } else {
    SendClientMessage(playerid,COLOR_RED,"Du hast bereits eine Bombe gelegt");
    return 1;
    }
    } else {
    SendClientMessage(playerid,COLOR_RED,"Du bist nicht in der richtigen Fraktion.");
    return 1;
    }
    } else {
    SendClientMessage(playerid,COLOR_RED,"Du hast keine Bombe gekauft.");
    return 1;
    }
    }


    Bei der Explosion dann nurnoch...



    DestroyObject(Bombe[playerid]);


    (Alles nicht getestet und ohne Garantie)


    MfG


    // @19:50 edited

    @Andi2504:


    Direkt zu sagen "kann ich nicht" ist auch nicht die Lösung für ein Selfmade Script.
    Überlege dir doch erstmal wie das System laufen soll.


    • Befehl "/prison"

      • Überprüfen ob Spieler nicht schon im Gefängnis ist

        • Falls ja, nichts tun
        • Falls nein, siehe hier drunter


      • Bei der Ausführung soll passieren

        • Spieler in das Gefängnis teleportieren
        • evtl. Interior ändern
        • Eine Variable für den Spieler auf z.b. 60 setzen
        • evtl. World Boundaries hinzufügen


      • Timer

        • z.b. jede Minute dem Spieler in seiner Variable den Wert um 1 verringern
        • sobald die Variable auf 0 ist, den Spieler wieder rausporten, das Interior ggf. wieer ändern und die World Boundaries auflösen



    • Befehl "/unprison"

      • Überprüfen ob Spieler im Gefängnis ist

        • Falls ja, das gleiche wie oben "den Spieler wieder rausporten, das Interior ggf. wieer ändern und die World Boundaries auflösen"
        • Falls nein, nichts tun



    • Speichern

      • Gedanken darüber machen, die Variable zu speichern



    Wenn man jetzt dieses Konzept sieht, und sich ein bisschen hier durchs Forum und durchs Wiki liest, ist es nichtmehr schwer.


    MfG