Beiträge von Mogly1

    Kleine Info vorweg dies ist mein 1 Tutorial.
    Was brauchen wir:
    1. Enum
    2. news
    3. erstellen der Objecte
    4.Timer
    5. Befehl
    6. Dialog



    1.enum
    Als aller erstes erstellen wir ein enum.


    enum muellEnum{


    }


    Nun befüllen wir den/das Enum mit:
    Pfand Dies bewirkt das wir diese Anzahl an Pfandflaschen finden.
    Float:m_x Dies sind die Koordinaten des Objectes und wird für den Befehl verwendet
    Float:m_y Dies sind die Koordinaten des Objectes und wird für den Befehl verwendet
    Float:m_z Dies sind die Koordinaten des Objectes und wird für den Befehl verwendet
    Float:m_rx Dies sind die Rotations Koordinaten des Objectes
    Float:m_ry Dies sind die Rotations Koordinaten des Objectes
    Float:m_rz Dies sind die Rotations Koordinaten des Objectes


    enum muellEnum{
    pfand,
    Float:m_x,
    Float:m_y,
    Float:m_z,
    Float:m_rx,
    Float:m_ry,
    Float:m_rz
    }


    So nun haben wir schon mal das enum aber um es zu benutzen brauchen wir noch ein new.


    2.news

    So das muell steht für das wir es einfach muell genannt haben ihr könnt es auch anders nennen z.b flaschen.
    muellEnum steht dafür das das Script weiß von welchen enum wir das gerade abziehen/benutzen.
    new muell[][muellEnum] = {


    };


    jetzt fehlen natürlich noch die Informationen.
    new muell[][muellEnum] = {
    { 2,-2271.85278, -116.37270, 34.94200, 0.00000, 0.00000, 0.00000},
    { 2,-2278.18530, -116.31293, 34.94200, 0.00000, 0.00000, 0.00000},
    { 2,-2285.54272, -116.49574, 34.94200, 0.00000, 0.00000, 0.00000}
    };
    Die 2 steht für die anfangs Pfandflaschen in der Mülltonne mann kann auch die Mülltonnen mit unterschiedlichen Pfandflaschen spawnen/startenlassen
    Danach kommen die Koordinaten eures Objectes hier habe ich nur 3 neben einander erstellt.
    Am besten erstellt ihr die Mülltonnen mit einen Editor.
    Dies sollte kein Problem sein.


    Nun erstellen wir noch ein new
    new Flaschen[MAX_PLAYERS];
    Dies brauchen wir um unsere Pfandflaschen die wir schon gesammelt haben abzufragen.
    Ihr könnt die Pfandflaschen die ihr schon gesammelt habt abspeichern lassen aber das mache ich nicht in diesem Tutorial mit rein.


    So der Grundbaustein ist schon gesetzt.


    3.Erstellen der Mülltonnen
    Dazu gehen wir unter OnGameModeInit.
    Nun was brauchen wir wir brauchen eine Schleife die die Mülltonnen abfragt die wir oben alle zu stehen haben.
    Das geht so.
    for(new i=0; i<sizeof(muell); i++)
    {


    }

    Dafür steht muell für unser new was wir oben erstellt haben.
    Nun müssen wir das Object noch erstellen lassen.
    Die 1337 steht für die ID des Objectes hier ist es die blaue Mülltonne.
    muell[m_x],muell[m_y],muell[m_z] Stehen für die Koordinaten des Objectes.
    muell[m_rx],muell[m_ry],muell[m_rz] Stehen für die Rotation des Objectes


    CreateDynamicObject(1337,muell[i][m_x],muell[i][m_y],muell[i][m_z],muell[i][m_rx],muell[i][m_ry],muell[i][m_rz]);//man kann auch CreateObject benutzen


    Dann sollte es so aussehen
    for(new i=0; i<sizeof(muell); i++)
    {
    CreateDynamicObject(1337,muell[i][m_x],muell[i][m_y],muell[i][m_z],muell[i][m_rx],muell[i][m_ry],muell[i][m_rz]);//man kann auch CreateObject benutzen
    }


    So nun lassen wir die Objecte schon erstellen.


    4.Timer
    Wir brauchen einen Timer damit die Mülltonne ja Pfandflaschen dazu bekommen.
    Dafür brauchen wir ein forward das wir einfach oben im Script erstellen.
    forward Pfanddazu();
    Den Timer lassen wir am besten auch unter
    OnGameModeInit starten lassen.


    Das Pfanddazu ist einfach der Name des aufgerufenen Publics das wir noch erstellen werden.
    Die 30000 steht dafür das der Timer/Public nach 30 Sekunden abgerufen wird.
    Das False steht dafür das er nur ein mal Läuft.Warum seht ihr noch.Ihr könnt ihn auch Natürlich auf true setzen.
    SetTimer("Pfanddazu", 30000, false);


    So was soll passieren wen der Timer/Public abgerufen wird nun ja wir brauchen wieder eine schleife.
    public Pfanddazu()
    {
    for(new i=0; i<sizeof(muell); i++)
    {


    }
    return 1;
    }
    So was soll dann passieren?
    wir setzen den pfand den wir oben beim enum zu stehen haben +1 oder +eure zahl die ihr wollt das bedeutet das in der Mülltonne nun 1 Pfandflasche dazu kommt.
    public Pfanddazu()
    {
    for(new i=0; i<sizeof(muell); i++)
    {
    muell[i][pfand]+=1;
    }
    return 1;
    }


    Da wir aber oben den timer mit False gestzt haben machen wir nun das Noch.
    Wir setzen den Timer Random damit es nicht immer einheitlich ist wie Pfand dazu kommt.
    Das machen wir so.
    new randomsekunden[]=
    {
    30,
    60,
    90,
    180,
    240,
    300
    };
    Die zahlen stehen für die Sekunden zeit z.b 30 das bedeutet das der Timer/Public in 30 Sekunden abgerufen wird bei 60 in 60 Sekunden.
    Wann Pfandflaschen dazu kommen sollen ist euch überlassen.Einfach nur die zahlen ändern.


    Damit es aber auch gerandomt wird brauchen wir noch das hier.
    new randomtime = random(sizeof(randomsekunden));
    Die randomsekunden stehen für das new was wir gerade gemacht haben mit den random zahlen.


    Schön und Gut was ist aber mit dem Timer??
    Der Timer ist ganz einfach den setzt ihr unter dem random.


    SetTimer("Pfanddazu", 1000*randomsekunden[randomtime], false);
    So das randomsekunden[randomtime] ist einfach eine zahl von allen zahlen die wir eingetragen haben rausgesucht also gerandomt.
    Die 1000* steht dafür dass wir schon 1 Sekunde haben und das mal der random zahl. Da ja der Timer in Millisekunden geht.


    So sollte es dann zum Schluss aussehen.
    public Pfanddazu()
    {
    for(new i=0; i<sizeof(muell); i++)
    {
    muell[i][pfand]+=1;
    }
    new randomsekunden[]=
    {
    30,
    60,
    90,
    180,
    240,
    300
    };
    new randomtime = random(sizeof(randomsekunden));
    SetTimer("Pfanddazu", 1000*randomsekunden[randomtime], false);
    return 1;
    }


    5.Befehl
    Nun zum befehl den befehl erstelle ich mit einem ocmd den nennen wir mal pfandsuchen.
    als erstes brauchen wir wieder eine schleife das Heist.
    ocmd:pfandsuchen(playerid,params[])
    {
    for(new i=0; i<sizeof(muell); i++)
    {


    }
    }


    So nun müssen wir abfragen ob der Spieler in Reichweite ist das geht so.
    if(IsPlayerInRangeOfPoint(playerid,3,muell[i][m_x], muell[i][m_y], muell[i][m_z]))


    Dann müssen wir abfragen ob noch Pfandflaschen in der Mülltonne sind.
    if(muell[i][pfand]>=1)
    Ihr könnt die 1 auch verändern je nach dem mann erst Pfandflaschen finden soll z.b erst nach 5 soll man welche finden.


    Falls Pfandflaschen drinne sin lassen wir unsere Flaschen[] die wir oben definiert haben + die Pfandflaschen die in der mülltonne sind setzen.
    Flaschen[playerid]+=muell[i][pfand];


    Wir können auch noch eine Nachicht schicken lassen das wir welche gefunden haben z.b so
    new string[150];
    format(string,sizeof(string), "~w~Du hast ~g~%i ~w~Pfandflschen gefunden", muell[i][pfand]);
    GameTextForPlayer(playerid, string, 3000, 4);
    Dann Müssen wir die Pfandflaschen der Mülltonne wieder auf 0 setzten das geht so.
    muell[i][pfand]=0;
    Das wärs auch schohn
    Hier seht ihr wie ich es gemacht habe.

    Spoiler anzeigen
    ocmd:pfandsuchen(playerid,params[])
    {
    for(new i=0; i<sizeof(muell); i++)
    {
    if(IsPlayerInRangeOfPoint(playerid,3,muell[i][m_x], muell[i][m_y], muell[i][m_z]))
    {
    if(muell[i][pfand]>=1)//kann man verändern z.b da man erst ab 5 flaschen diese findet
    {
    Flaschen[playerid]+=muell[i][pfand];
    new string[150];
    format(string,sizeof(string), "~w~Du hast ~g~%i ~w~Pfandflschen gefunden", muell[i][pfand]);
    GameTextForPlayer(playerid, string, 3000, 4);
    muell[i][pfand]=0;
    // mann kann noch eine Animation hinzufügen
    return 1;
    }
    else
    {
    SendClientMessage(playerid,rot,"Die Mülltonne ist leer");// müsst ihr selber anpassen
    return 1;
    }
    }
    }
    return SendClientMessage(playerid,rot,"Du bist bei keiner Mülltonne");//falls alle i durch sind kommt dass man an keiner mülltonne ist
    }


    6.Dialog
    Jetzt brauchen wir noch einen Ort wo mann die Pfandflaschen verkaufen kann. Dies kann mann mit befehl oder Dialog machen ich mache es hier mit Dialog.
    Aber dafor müssen wir noch den Dialog definieren.
    #define DIALOG_LADEN 0

    Die Zahl müsst ihr anpassen.


    Nun müsst ihr ihn noch anzeigen lassen wo müsst ihr selber wissen.
    ShowPlayerDialog(playerid,DIALOG_LADEN,DIALOG_STYLE_LIST,"24/7 Laden","Pfandflaschen verkaufen","Auswählen","Abbrechen");
    Nun gehen wir unter OnDialogResponse
    und erstellen ihn.
    was müssen wir alles abfragen wir müssen abfragen welcher dialog??
    if(dialogid==DIALOG_LADEN)


    ob er überhaupt Flaschen dabei hat das machen wir mit
    if(Flaschen[playerid]>=1)


    wenn er welche dabei hat rechnen wir nun seine Flaschen die er dabei hat mal irgend eine zahl die ihr wollt ich nehme mal 5.
    new pfandgeld=Flaschen[playerid]*5;//preis kann angepass werden das *25 steht für mal 25 also anzahl deiner pfanflschen mal 25


    Nun geben wir ihn das geld und setzen seine Flaschen wieder auf 0.Euren System anpasse.
    sInfo[playerid][geld]+=pfandgeld;
    Flaschen[playerid]=0;
    Nun kann man noch eine Message senden lassen das ist euch aber überlassen.


    So sieht es bei mir aus

    Spoiler anzeigen
    if(dialogid==DIALOG_LADEN)
    {
    if(response)
    {
    if(listitem==0)//bei pfand
    {
    if(Flaschen[playerid]>=1)
    {
    new string[180];
    new pfandgeld=Flaschen[playerid]*5;//preis kann angepass werden das *25 steht für mal 25 also anzahl deiner pfanflschen mal 25
    sInfo[playerid][geld]+=pfandgeld;
    format(string, sizeof(string), "-------------Kassenbong---------------");
    SendClientMessage(playerid,weiss,string);
    format(string, sizeof(string), "{FAFAFA}Du hast %d Flaschen für %d{00BB00}$ {FAFAFA}verkauft",Flaschen[playerid],pfandgeld);
    SendClientMessage(playerid,weiss,string);
    Flaschen[playerid]=0;
    }
    else
    {
    SendClientMessage(playerid,rot,"Du hast keine Pfandflaschen");
    }
    }
    else
    {
    SendClientMessage(playerid,weiss,"Beären sie uns bald wieder");
    }
    }
    }


    Ich hoffe ich konnte euch Helfem :thumbup: :thumbup:

    Info:

    Spoiler anzeigen
    Vorweg ich habe die Tür und das 1 Dach endbugt
    Beim der Umkleide habe ich keine guten Objecte gefunden.
    Eigentlich wollte ich noch eine Hebebühne rein machen aber da habe ich auch nicht die richtigen Objecte gefunden.



    Video:

    Spoiler anzeigen
    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.



    mfg. Mogly1 :thumbup: :thumbup:

    da du es als Textdraw anzeigen lääst glaube ich das ~w~ und so nicht geht.


    also so
    format(string, sizeof(string), "~KM/H: %i Zustand: %s Tank: %i/%i Liter", getPlayerSpeed(playerid), zustand, Gas[GetPlayerVehicleID(playerid)],GasMax[GetVehicleModel(GetPlayerVehicleID(playerid))]);

    Info:

    Spoiler anzeigen

    Als aller erstes: Für mich ist es eine Mechaniker Base für andere sicher nicht ist halt mein Geschmack.
    Hier ist ne andere Version von meiner ADAC/Mechaniker Base
    ich habe bloß den Standort geändert und ein paar Sachen verändert.
    Dies ist eine meiner ersten Maps


    Viedeo:

    Spoiler anzeigen
    Externer Inhalt
    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.
    [/size]



    mfg. Mogly1 :thumbup: :thumbup:

    Abend,


    naja ich weiß jetzt nicht ob es einer deiner ersten Map´s ist, sollte dies der Fall sein, ist es dir für den Anfang ganz gut gelungen! Man könnte noch mehr auf Details eingehen, mehr Farbe einbringen etc...Die Anzahl der Kühler auf dem Dach finde ich etwas zu hoch, ich würde einige entfernen.

    Ja das ist einer meiner 1. Maps ich fange gerade erst an eigentlich bin ich eher Scripter :D aber mir fehlt ein Mapper also muss ja wer was machen und da ich gerne feedback haben möchte damit ich mich verbessern kann präsentiere ich diese sachen.
    Vielen dank für dienen Tipp :thumbup: :thumbup:

    Hallo Liebe Leutz.


    Hier würde ich gerne mal eine Mechaniker Base zeigen.
    Wo bei ich sicher mehr gemacht hätte z.b den Parkplatz mit anderen Texturen aber leider habe ich an der Falschen stelle gemapt.
    Mann bekommt immer ein Crash :D.



    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.




    mfh. Mogly1 :thumbup: :thumbup:

    Ja klar du hast recht :D
    bin aber nicht gerade der profi Scripter :D
    kann ich mal versuchen vielen dank für die Idee.

    Von der Idee super aber recht unpraktisch da manche einen Speziellen skin suchen und den so kaum finden weil sie erst alles durchprobieren müssen.
    Wie gesagt Idee Top aber ich würde mich ärgern wenn ich erst nach dem X. Skin meinen gefunden habe.

    Yo.
    Da ist meine Idee dazu das mann noch einen Dialog für z.b nach Kleidung fragen macht und dann die skin id eingibt wenn sie in dem laden vorhanden ist das dan ein Checkpoint gesetzt oder der Name der Kleidung da steht wie sie im Geschäft Heist.
    aber das werde ich nicht rein arbeiten da ich das nicht so gut finde mfg. Mogly1 :D :D

    Ja das tut mir Leid ich habe den Code gestern um 1 aus dem Script gezogen und da kann es sein das ich noch die Sachen die man nicht braucht drinnen gelassen habe.



    Ich werde wenn ich zeit habe alles so machen das es funk.


    Es ist ja aus mein Script gezogen deswegen sind manche defi nicht nötig.

    Hier habe ich für unseren Server mal eine Bank Gemappt aber leider sind die Texturen nicht mehr mit dabei deswegen sieht sie nur halb so gut aus.


    Die Tür sieht bei Nacht nur so komisch aus weiß aber nicht warum.


    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.


    ist mein 1 Interrior bitte um Verständnis wenn nicht alles super ist aber deswegen benutzten wir Texturen aber die sind leider verloren gegangen. :thumbup: :thumbup: :thumbup:

    Hallo ich bin noch recht neu im Forum deswegen wäre es nett nicht gleich sagen scheiße oder deine Vorstellung ist langweilig.
    Ich habe an einem eigenen Script gearbeitet und dieses System für den Skin Laden rein gemacht.
    Dies ist nicht Standard wie bei jedem sondern ein Shopping Erlebnis.
    --Infos--
    - Es gibt kurze kleine Erklärung wieder Skin aussieht
    -Du kannst in den Umkleiden den Skin Anprobieren
    -Dann kannst du neue Sachen holen oder bei der Kasse wieder abgeben


    Version 1.0 evt.


    Spoiler anzeigen

    Video
    Wie ihr in diesem Video sehen könnt ist Bank und Bank Pin nicht eingereit das schlisst darauf hin das ich nicht weiter scripte an diesem Script.
    Wichtige INFO
    Da es die Version 1.0 ist Tragen die Weiblichen Charakter die Sachen nicht richtig.
    Bei den Männlichen ist alles richtig eingestellt die Tragen die Klamotten richtig.

    Spoiler anzeigen
    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.

    Spoiler anzeigen
    Script:
    Hier ist alles was ihr Braucht eig.



    näste Version(ich schreibe lieber keine zahl rein weil ich nicht genau weiß welche Version das jetzt sein könnte :D):



    Spoiler anzeigen

    In dieser Version ist jetzt die Skin Such Funktion Drinne und Die Trage objecte sind angepasst.

    Spoiler anzeigen
    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.

    Spoiler anzeigen
    Script:
    Hier ist alles was ihr Braucht eig.


    Endwort:
    Ihr könnt sagen was ihr wollt aber in der Pastebin ist alles was ihr dafür braucht kluge menschen sollten in Stande sein das zu entziffern :thumbup: :thumbup: :thumbup:
    wenn nicht dann schreibt mich nochmal an.


    Kontakt möglichkeit bei Skype: lolxdmogly1 bitte schreibt dann noch rein wegen samp