Beiträge von Nikolas-Mrak

    Nabend,
    hab in meinem LoH-Script sowas für das Interiorsystem:


    enum CPInfo
    {
    Float:EnterX,
    Float:EnterY,
    Float:EnterZ,
    Float:EnterA,
    EnterInt,
    ExitingText[32],
    Float:ExitX,
    Float:ExitY,
    Float:ExitZ,
    Float:ExitA,
    ExitInt,
    EnteringText[100],
    EnteringPrice,
    }
    new Float:CPs[][CPInfo] = {
    {2244.4800,-1664.0601,15.4766,0.0,0,"Los Santos",207.6447,-110.5639,1005.1328,0.0,15,"Binco",0},
    {2166.2642,-1671.6808,15.0740,0.0,0,"Los Santos",318.6689,1114.9237,1083.8828,0.0,5,"Crackhoehle",0}
    };


    Wie kann ich da eine Schleife erstellen, mit der ich für jeden CPs-Eintrag bei den angegebenen Koordinaten einen 3DText anzeigen lasse mit dem Text von EnteringText?

    //EDIT:

    Habs rausgefunden:
    for(new c = 0; c < sizeof(CPs); c++)
    {
    Create3DTextLabel(CPs[code=c][EnteringText],COLOR_WHITE,CPs[code=c][EnterX],CPs[code=c][EnterY],CPs[code=c][EnterZ],40.0,0);
    }

    Na gut ich dachte das wäre nicht so schwer es umzuschreiben... Ich habs lieber wenn die Autos alle online sind, und nen leistungsstarken Server sollte man sowieso haben. Das sehe ich nicht so wirklich als Problem.


    Sorry für den Tripple Post, aber sonst hätt ja nie einer geantwortet da der Thread schon etwas her ist. ;)

    Ich verstehs einfach nicht.. Die Load/Buyprods/Sellprods-Befehle sind 100% richtig.. Hab sie aus dem LosAngeles-GM kopiert, und da funktioniert der Trucker!
    Das einzige was anders ist ist das hier bei OnGameModeInit:


    //Aus dem LosAngeles-GM:
    PlayerHaul[426][pCapasity] = 500;
    PlayerHaul[424][pCapasity] = 500;
    PlayerHaul[423][pCapasity] = 500;
    PlayerHaul[420][pCapasity] = 500;
    PlayerHaul[418][pCapasity] = 500;


    426, 423, etc.. sind ja die Veh-IDs, wenn ich mich nicht irre.. Wenn ich dann also ein neues Vehicle hinzufüge, würde sich das doch verschieben, oder nicht? Also ist das doch eigentlich viel sinnvoller (und so ists auch im Standard-LoH):


    new TruckerVehs[3];
    TruckerVehs[0] = CreateVehicle(514,-77.5039,-1108.1729,1.6683,161.8915,-1,-1,-1); // truck
    TruckerVehs[1] = CreateVehicle(514,-72.3507,-1109.7822,1.6670,161.7769,-1,-1,-1); // truck
    TruckerVehs[2] = CreateVehicle(514,-67.0126,-1111.7156,1.6688,160.4800,-1,-1,-1); // truck
    PlayerHaul[TruckerVehs[0]][pCapasity] = 500;
    PlayerHaul[TruckerVehs[1]][pCapasity] = 500;
    PlayerHaul[TruckerVehs[2]][pCapasity] = 500;


    Doch warum funktioniert das so nicht?? :cursing:
    Immer wird mir angezeigt dass ich 0/0. Produkte habe...


    ?(

    So hab mal geschaut, aber wie soll ich das aus deinem Script einbauen wenn da kein Downloadlink ist? :P Ist ja ne Server-vorstellung, keine Gamemode Vorstellung.. Oder hab ich was falsch verstanden?^^


    Vielleicht kann jemand die 2 Posts zusammenführen, hab edit vergessen...

    Irgendwie funktioniert das Trucker-System nicht richtig (Loh-Gamemode)
    Wenn ich bei den Docks /load oder /buyprods mache steht da immer:
    Produkte: 0/0.
    Hab auch schon in der SuFu geschaut aber nichts richtiges gefunden was ich auch verstanden habe.. ^^

    Tach,
    ich benutze das LoH Script. Und zwar ists so dass für die Hauseingänge (Interior-Eingänge) Checkpoints verwendet werden (die Roten runden Kreise)..


    enum CPInfo
    {
    Float:EnterX,
    Float:EnterY,
    Float:EnterZ,
    Float:EnterA,
    EnterInt,
    ExitingText[32],
    Float:ExitX,
    Float:ExitY,
    Float:ExitZ,
    Float:ExitA,
    ExitInt,
    EnteringText[100],
    EnteringPrice,
    }
    new Float:CPs[][CPInfo] = {
    {2397.8496,-1898.0288,13.5469,0.0,0,"Los Santos",365.3238,-11.3925,1001.8516,350.3676,9,CLUCKIN_BELL_TEXT,5},
    {2244.4800,-1664.0601,15.4766,0.0,0,"Los Santos",207.6447,-110.5639,1005.1328,0.0,15,"Binco",0},
    // etc...
    {2166.2642,-1671.6808,15.0740,0.0,0,"Los Santos",318.6689,1114.9237,1083.8828,0.0,5,"Crackhoehle",0}
    };
    public OnPlayerEnterCheckpoint(playerid)
    {
    if(CheckPointing[playerid] == 0)
    {
    return 1;
    }
    new cpid;
    if(GetDistanceToClosestInside(playerid) < 1.0) // Man geht wo raus
    {
    if(MultipleEnter[playerid] != -1)
    {
    cpid = MultipleEnter[playerid];
    }
    else
    {
    cpid = GetClosestInsideID(playerid);
    }
    SetPlayerPos(playerid,CPs[cpid][EnterX],CPs[cpid][EnterY],CPs[cpid][EnterZ]);
    if(CPs[cpid][EnterA] != 0.0) SetPlayerFacingAngle(playerid,CPs[cpid][EnterA]);
    SetPlayerInterior(playerid,CPs[cpid][EnterInt]);
    GameTextForPlayer(playerid,CPs[cpid][ExitingText],5000,3);


    PlayerInfo[playerid][pInt] = CPs[cpid][EnterInt];
    MultipleEnter[playerid] = -1;
    CheckPointing[playerid] = 0;
    SetTimerEx("EnableCheckpointingAgain",5000,0,"i",playerid);
    }
    else if(GetDistanceToClosestOutside(playerid) < 1.0) // Man geht wo rein
    {
    cpid = GetClosestOutsideID(playerid);
    SetPlayerPos(playerid,CPs[cpid][ExitX],CPs[cpid][ExitY],CPs[cpid][ExitZ]);
    if(CPs[cpid][ExitA] != 0.0) SetPlayerFacingAngle(playerid,CPs[cpid][ExitA]);
    SetPlayerInterior(playerid,CPs[cpid][ExitInt]);
    PlayerInfo[playerid][pInt] = CPs[cpid][ExitInt];
    GameTextForPlayer(playerid,CPs[cpid][EnteringText],5000,3);
    GivePlayerMoney(playerid,-CPs[cpid][EnteringPrice]);


    if( !strcmp(CPs[cpid][EnteringText],CLUCKIN_BELL_TEXT) ||
    !strcmp(CPs[cpid][EnteringText],PIZZA_TEXT) ||
    !strcmp(CPs[cpid][EnteringText],BURGER_SHOT_TEXT) ||
    !strcmp(CPs[cpid][EnteringText],"24/7"))
    {
    MultipleEnter[playerid] = cpid;
    }
    CheckPointing[playerid] = 0;
    SetTimerEx("EnableCheckpointingAgain",5000,0,"i",playerid);
    }
    }
    public EnableCheckpointingAgain(playerid)
    {
    CheckPointing[playerid] = 1;
    }
    public StreamCheckpoints()
    {
    for(new i; i<GetMaxPlayers(); i++)
    {
    if(IsPlayerConnected(i))
    {
    if(CheckPointShown[i] == 1)
    {
    DisablePlayerCheckpoint(i);
    CheckPointShown[i] = 0;
    }


    if(DisplayForPlayer(i))
    {
    if(GetDistanceToClosestInside(i) < GetDistanceToClosestOutside(i) && GetDistanceToClosestInside(i) < 15.0)
    {
    new cpid = GetClosestInsideID(i);
    SetPlayerCheckpoint(i,CPs[cpid][ExitX],CPs[cpid][ExitY],CPs[cpid][ExitZ],1.5);
    CheckPointShown[i] = 1;
    }
    if(GetDistanceToClosestOutside(i) < GetDistanceToClosestInside(i) && GetDistanceToClosestOutside(i) < 15.0)
    {
    new cpid = GetClosestOutsideID(i);
    SetPlayerCheckpoint(i,CPs[cpid][EnterX],CPs[cpid][EnterY],CPs[cpid][EnterZ],1.5);
    CheckPointShown[i] = 1;
    }
    }
    }
    }
    return 1;
    }
    public Float:GetDistanceToClosestInside(playerid)
    {
    new Float:SmallestDistance = 99999.9, Float:OldDistance;
    for(new cpid; cpid<sizeof(CPs); cpid++)
    {
    OldDistance = GetDistanceToInsideCheckpoint(playerid,cpid);
    if(OldDistance < SmallestDistance)
    {
    SmallestDistance = OldDistance;
    }
    }
    return SmallestDistance;
    }
    public Float:GetDistanceToClosestOutside(playerid)
    {
    new Float:SmallestDistance = 99999.9, Float:OldDistance;
    for(new cpid; cpid<sizeof(CPs); cpid++)
    {
    OldDistance = GetDistanceToOutsideCheckpoint(playerid,cpid);
    if(OldDistance < SmallestDistance)
    {
    SmallestDistance = OldDistance;
    }
    }
    return SmallestDistance;
    }
    stock GetClosestInsideID(playerid)
    {
    new Float:SmallestDistance = 99999.9, Float:OldDistance, returnid;
    for(new cpid; cpid<sizeof(CPs); cpid++)
    {
    OldDistance = GetDistanceToInsideCheckpoint(playerid,cpid);
    if(OldDistance < SmallestDistance)
    {
    SmallestDistance = OldDistance;
    returnid = cpid;
    }
    }
    return returnid;
    }
    stock GetClosestOutsideID(playerid)
    {
    new Float:SmallestDistance = 99999.9, Float:OldDistance, returnid;
    for(new cpid; cpid<sizeof(CPs); cpid++)
    {
    OldDistance = GetDistanceToOutsideCheckpoint(playerid,cpid);
    if(OldDistance < SmallestDistance)
    {
    SmallestDistance = OldDistance;
    returnid = cpid;
    }
    }
    return returnid;
    }
    public Float:GetDistanceToInsideCheckpoint(playerid,checkpointid)
    {
    new Float:cpx1,Float:cpy1,Float:cpz1,Float:cpx2,Float:cpy2,Float:cpz2;
    GetPlayerPos(playerid,cpx1,cpy1,cpz1);
    cpx2 = CPs[checkpointid][ExitX];
    cpy2 = CPs[checkpointid][ExitY];
    cpz2 = CPs[checkpointid][ExitZ];
    return floatsqroot(floatpower(floatabs(floatsub(cpx2,cpx1)),2)+floatpower(floatabs(floatsub(cpy2,cpy1)),2)+floatpower(floatabs(floatsub(cpz2,cpz1)),2));
    }
    public Float:GetDistanceToOutsideCheckpoint(playerid,checkpointid)
    {
    new Float:cpx1,Float:cpy1,Float:cpz1,Float:cpx2,Float:cpy2,Float:cpz2;
    GetPlayerPos(playerid,cpx1,cpy1,cpz1);
    cpx2 = CPs[checkpointid][EnterX];
    cpy2 = CPs[checkpointid][EnterY];
    cpz2 = CPs[checkpointid][EnterZ];
    return floatsqroot(floatpower(floatabs(floatsub(cpx2,cpx1)),2)+floatpower(floatabs(floatsub(cpy2,cpy1)),2)+floatpower(floatabs(floatsub(cpz2,cpz1)),2));
    }


    Das Problem ist dass man die Dinger nur sieht wenn man zu Fuss ist und in der Nähe ist, steigt man aber in ein Fahrzeug, verschwinden sie sofort.. Wie krieg ich die auch in nem Fahrzeug sichtbar?


    Mfg und Danke schonmal^^

    Tach,
    habe das LoH Script indem das Autohaus DT_Car verwendet wird. Im Moment ist es so, dass die Autos erst gespawnt werden wenn sich der User einloggt, und auch wieder verschwinden wenn er sich ausloggt. Ich weiss, es ist dafür da weil es sonst zu viele Autos geben würde etc... ^^
    Aber ich möchte trotzdem dass immer alle Autos von allen Usern da sind, egal ob er eingeloggt ist oder nicht..
    Wie schaff ich es jetzt dass die Autos bei OnGameModeInit geladen werden?
    Vielleicht hats ja schonmal jemand gemacht.


    Und ab wievielen Fahrzeugen ist eigentlich ein VehicleStreamer empfehlenswert?


    MfG und Danke

    Ich suche auch eine Möglichkeit as Fahrzeug auf den LKW oben drauf zu machen... Ich habs mit AttachTrailerToVehicle nur hingekriegt, dass das Auto als "Anhänger" hinten mitfährt.. Wie krieg ich den Wagen aber oben drauf?

    Nabend,
    ich benutze das LoH 0.4 Script, hier die new's von den Fahrzeugen:



    new BallasVehs[8];
    new GrooveVehs[8];
    new LCNVehs[16];
    new YakuzaVehs[13];
    new VagosVehs[8];
    new AztecasVehs[8];
    new HitmanVehs[8];
    new BikerVehs[8];
    new FaFVehs[8];
    new WCCVehs[8];
    new TerrorVehs[9];
    new TaxiVehs[8];
    new NewbRoller[22];
    new PraesiVehs[14];
    new RMVehs[12];
    new PolizeiVehs[46];
    new FBIVehs[22];
    new ArmyVehs[30];
    new PTruck[4];
    new MedicVehs[11];
    new oAmtVehs[7];
    new NewsVehs[7];
    new FeuerwehrVehs[10];
    new Flugzeuge[15];
    new BMXEN[15];
    new FahrschulVehs[15];
    new RifaVehs[7];
    new BusVehs[5];
    new DromeVehs[7];


    Bei OnPlayerEnterVehicle habe ich dann:

    if (IsACopCar(vehicleid) && !ispassenger)
    {
    if(IsACop(playerid) || IsPlayerInFrac(playerid,23)) {}
    else
    {
    SendClientMessage(playerid,COLOR_RED,"Du hast keine Schlüssel");
    TogglePlayerControllable(playerid,false);
    TogglePlayerControllable(playerid,true);
    }
    }



    public IsACopCar(carid)
    {
    for(new i = 0; i < sizeof(PolizeiVehs); i++)
    {
    if(carid == PolizeiVehs[i])
    {
    return 1;
    }
    }
    return 0;
    }


    So wird das für jede Fraktion gemacht. Kann es bei dieser Methode zu einer ID-Verschiebung führen? Sodass wenn ich auf in einen Polizeiwagen einsteige ich plötzlich "Du bist kein Sanitäter" angezeigt bekomme?
    Was muss ich beachten wenn ich Fahrzeuge hinzufüge / entferne?
    Als Beispiel die Taxis:


    new TaxiVehs[8];


    TaxiVehs[1] = AddStaticVehicleEx(420,1015.3229,-1345.2506,13.0761,91.1855,107,107,800); // Taxi
    TaxiVehs[2] = AddStaticVehicleEx(420,1014.4434,-1350.4154,13.0725,89.4238,107,107,800); // Taxi
    TaxiVehs[3] = AddStaticVehicleEx(420,1013.9243,-1355.1116,13.0699,89.5307,107,107,800); // Taxi
    TaxiVehs[4] = AddStaticVehicleEx(420,1013.9869,-1359.6709,13.0698,92.2121,107,107,800); // Taxi
    TaxiVehs[5] = AddStaticVehicleEx(420,1014.0130,-1365.7423,13.0701,88.9479,107,107,800); // Taxi
    TaxiVehs[6] = AddStaticVehicleEx(420,1005.8541,-1367.4635,13.0216,358.1408,107,107,800); // Taxi
    TaxiVehs[7] = AddStaticVehicleEx(420,1000.0255,-1367.8412,12.9799,359.6275,107,107,800); // Taxi


    Wie man sieht habe ich beim New eine 8 stehen, jedoch nur 7 Fahrzeuge, und die fangen auch noch nichtmal bei der 0 an (sollte es ja normalerweise oder?).. Kommt es hier zu eienr ID Verschiebung?


    MfG und danke

    Tach,
    ich weiss ich könnte das selber machen aber vielleicht hat jemand schon sowas und ist so nett es zur Verfügung zu stellen.


    Also ich brauche Innenräume für ein Krankenhaus und Arbeitsamt. (Ich könnt ja die Stadthalle nehmen aber ich würd mal gerne was anderes haben ;)).


    Vielleicht hat ja noch jemand so etwas.. Auch andere Innenräume von anderen Sachen könntet ihr mal posten. :P


    MfG