Beiträge von Equ

    Nun schreib das so:


    Bei den SpielerSpeichern stock:


    dini_IntSet(Spielerdatei,"Geld",GetPlayerMoney(playerid));


    Bei den LoadSpieler stock:


    GivePlayerMoney(playerid,dini_Int(Spielerdatei,"Geld"));





    Bei OnPlayerDisconnect noch:



    SpielerSpeichern(playerid);


    und fertig..




    Grüße

    Ich selbst würde aber niemals wagen zu sagen was nach dem Tod kommt, ich hatte selbst eine Nahtod Erfahrung, dieses Gefühl ist unbeschreiblich
    dies mag nun für Leute die sich nicht damit befassten krank erscheinen.

    Falls ich dich nun falsch verstanden so schreib es mir ^^


    Nun ich selber hatte damals auch eine art nahtod erfahrung, ich war damals 7 Jahre alt und bin damals von der Treppe gerutscht waren 7 Treppen stufen bin ich mit dem Kopf schwer aufgekommen und habe auch direkt ein loch im kopf gehabt und musste auch alles genäht werden ich war zu den zeit punkt schon bewusst los habe da auch viel Blut verloren gehabt und Ja es war halt komisch ich kann es nicht irgendwie in worte fassen aber es war ein sehr schäusliches gefühl als ob ich irgendwie im freien Fall währe aber zugleich war ich noch am stehen es war sehr komisch das Gefühl an diesem Zeitpunkt als ich bewusstlos war konnte mir zu diesem Zeitpunkt irgendwie nichts mehr angst machen ich habe mich wirklich richtig leer gefühlt gehabt.. also es war halt sehr komisch wie gesagt man kann es nicht richtig beschreiben.. :S






    Naja der eine oder andere der das gleiche gehabt hat wird verstehen was ich meine, aber bestimmt denken jetzt welche der ist doch nicht mehr normal oder so.. ich weiß was ich gefühlt hatte und es war nicht schön -.-






    Grüße

    oh mein Gott, ich hab mir gerad dein Text durchgelesen und er ist wirklich schön einfach nur traumhaft ;(
    Ich möchte mal etwas hierzu schreiben das aber nicht zu harr genau zum Thema passt aber zum teil.. ^^




    Ich selber glaube nicht an Gott, ich glaube aber das wir unsere Technologie die wir Heute besitzen, das dort eine Höhere Intelligenz als der Mensch
    im Spiel war und uns dazu verholfen hat, ich meine man muss mal genau überlegen vor noch nicht arg so langer zeit 2-3 Jahre ritten die meisten menschen
    noch mit einem Pferd/Kutsche rum und heute fahren wir Moderne Fahrzeugen, gewinnen unseren Elektrizität durch Solaranlagen oder sogar Atomkraftwerken.
    es wurde sogar vor nicht arg so langer zeit glaub 10-15 Jahren herausgefunden ( weiß nicht wie die wüste/alte Stadt heißt) das an einem Ort mitten in der Wüsste, Radioaktivität festgestellt wurde
    laut der Berechnung die man an Hand Skeletten machen konnte, wurden diese dann analysiert hatten und herausgefunden hatten das diese Stadt fast 10 tausend Jahre alt ist, also.
    ist es etwas komisch da an diesem Ort genau da wo die Skeletten lagen auch Radioaktivität gefunden wurde.. naja, sie ist nicht mehr arg Tödlich aber man sollte es jedoch meiden sich mehrere Tage dort aufzuhalten um keine gesunden Zellen zu beschädigen.


    Wissenschaftler glaubten das dort damals eine art Atombombe oder ähnlich explodiert sein musste, da auch an den Skeletten Atomare Partikel gefunden wurden, also ich finde es echt komisch ich hab dies mal in einer Dokumentation gesehen falls ich diese mal wieder Finden sollte Poste ich sie mal direkt hier rein



    Liebe grüße

    Inhalt:

    • Jobs erstellen
    • Ab fahrbare Checkpoint


    Um was geht es in diesem Tutorial ?


    Hallo,



    ich erkläre euch heute in diesem Tutorial mal kurz,
    wie ihr ganz einfach einen Job und für diesen dann einen ab fahrbaren Checkpoint erstellen könnt,
    nun dann fangen wir mal an.



    Was wird benötigt ?

    • Dini ( Zum Speichern/Laden des Spielers )
    • OCMD ( Für die Befehle )


    Die Checkpoint Erklärung


    - Nun ich gehe jetzt davon aus das ihr euch oben die angeforderten Includes heruntergeladen habt.




    So als aller erstes müssen wir uns eine Variable erstellen die wir später für unsere ab fahrbare Checkpoints benötigen.
    Ihr schreibt also ganz oben unter euren includes:



    new JobCheckpoint[MAX_PLAYERS]; // Die Variable


    So und nun erstellen wir uns, unserem Befehl mit Hilfe des OCMD - Includes:



    ocmd:jobstart(playerid)
    {
    SetPlayerCheckpoint(playerid,1805.1013,-1902.0204,13.1284,10.0);
    JobCheckpoint[playerid] = 1;
    return 1;
    }





    public OnPlayerEnterCheckpoint(playerid)
    {
    if(JobCheckpoint[playerid] == 1) // Wie ich oben schon Sagte springt er nun hier hin, jetzt müssen wir noch einbauen was passieren soll wenn er durch den Ersten Checkpoint fährt.
    {
    // Ich sage er sollte, Geld und eine Nachricht bekommen.
    DisablePlayerCheckpoint(playerid); // Hier wird der Checkpoint den wir mit "/jobstart" aufgerufen haben, gelöscht.
    GivePlayerMoney(playerid, 50); // Hier bekommt er nun 50$ auf die Hand gezahlt.
    SendClientMessage(playerid,0xC3FF00FF,"Du bist durch den 1ten Checkpoint gefahren"); // Hier bekommt er nun die nachricht weil er durch den Ersten Checkpoint gefahren ist!
    SetPlayerCheckpoint(playerid, 1804.8215,-1925.0430,13.1172, 10.0);
    JobCheckpoint[playerid] = 2; // Hier springt er wieder zum 2ten Checkpoint
    }
    else if(JobCheckpoint[playerid] == 2) // Falls er durch den Zweiten Checkpoint gefahren ist soll was passieren ?
    {
    DisablePlayerCheckpoint(playerid); // Hier wird der Checkpoint 1 gelöscht.
    GivePlayerMoney(playerid, 50); // Hier bekommt er wieder 50$ auf die Hand gezahlt.
    SendClientMessage(playerid,0xC3FF00FF,"Du bist durch den 2ten CP gefahren"); // Hier bekommt er nun die nachricht
    SetPlayerCheckpoint(playerid, 1804.3311,-1925.8723,13.9501, 10.0); // Hier setzen wir den nächsten Checkpoint
    JobCheckpoint[playerid] = 3; // Hier springt er zum 3ten Checkpoint
    }
    else if(JobCheckpoint[playerid] == 3) // Falls er durch den 3ten Checkpoint gefahren ist soll was passieren ?
    {
    DisablePlayerCheckpoint(playerid); // Hier wird der Checkpoint 1 gelöscht);
    SendClientMessage(playerid,0xC3FF00FF,"Du hast den Job erfolgreich beendet");
    }
    return 1;
    }



    So das war nun die Erstellung mit den Checkpoints,
    aber es fehlt ja noch etwas, zum Beispiel:


    • Nur Spieler die den Job auch haben sollten diesen nur ausführen können.
    • Mann sollte /jobstart nur in einen Fahrzeug eingeben können und auch zugleich der Fahrer sein
    • Und falls man schon 1x /jobstart eingegeben hat, sollte eine Fehler meldung kommen das er schon im Job aktiv ist


    Dies zeige ich euch nun jetzt.

    Die Job Erklärung und deren Funktionen

    Wir haben hier unseren "/jobstart" befehl den wir nun weiter ausbauen möchten, mit den Funktionen die ich oben genannt habe.



    ocmd:jobstart(playerid)
    {
    if(GetPVarInt(playerid,"Job") == 0)return SendClientMessage(playerid,0xFFD200FF,"* Du hast nicht den Job"); // Hier wird überprüft ob er den Job hat.
    if(GetPlayerVehicleSeat(playerid) != 0)return SendClientMessage(playerid,0xFFD200FF,"Du musst der Fahrer sein!"); // Ob er auf den Fahrer sitzt ist.
    if(GetPVarInt(playerid,"Jobaktiv") !=1) // Hier wird überprüft ob der Spieler in seinem Job bereits aktiv ist also, schon einmal /jobstart eingegeben hat.
    if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 408) // Unser Fahrzeug das benötigt wird um die routen ab zu fahren ( 408 = der Müll wagen )
    {
    SetPVarInt(playerid,"Jobaktiv",1);
    SetPlayerCheckpoint(playerid,1805.1013,-1902.0204,13.1284,10.0);
    JobCheckpoint[playerid] = 1;
    }
    else
    {
    SendClientMessage(playerid,0xFFD200FF,"* Du bist nicht in dem Job Fahrzeug!"); // Hier wird die nachricht ausgegeben falls er schon /jobstart gemacht hat
    }
    else
    {
    SendClientMessage(playerid,0xFFD200FF,"* Du bist bereits im Job aktiv!"); // Falls er nicht in einer der Müllfahrzeuge ist
    }
    return 1;
    }



    - Ist ja alles schön und gut aber wo kriegt man nun den Job her ?


    wir erstellen uns nun einen neuen Befehl mit den wir den Job erhalten können:


    Ganz oben unter euren Includes erstmal:


    #define DIALOG_JOBS 1


    Achtung!!: Falls ihr die Dialog nummer "1" schon belegt habt dann nehmt einfach eine die noch Frei ist!


    ocmd:jobs(playerid)
    {
    ShowPlayerDialog(playerid,DIALOG_JOBS,DIALOG_STYLE_LIST,"Jobs","Job 1","Auswählen","Abbrechen"); // Hier zeigen wir nun unseren Job - Dialog wo er sich den Job auswählen kann.
    return 1;
    }


    Dann müssen wir für unseren "Job Dialog" nun auch noch Funktionen zu weisen, da er ja wissen muss was nun passieren soll, also:


    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    if(dialogid==DIALOG_JOBS && response==1)
    {
    if(listitem == 0) // ihr fangt immer mit listitem 0 an, andere fangen nämlich immer mit 1 an und wundern sich später warum es nicht funktioniert da es ja falsch ist, also immer mit listitem 0 anfangen
    {
    {
    SendClientMessage(playerid,0xFFD200FF,"=> Job Info <=");
    SendClientMessage(playerid,0xFFD200FF,"Es wurde auf der Map eine Makierung gesetzt");
    SendClientMessage(playerid,0xFFD200FF,"Fahre nun dort hin und steige anschließen in einer der Fahrzeuge ein");
    SetPVarInt(playerid,"Job",1);
    // Hier eure Speicher Funktion noch rein, damit der Job auch noch nach einen Server Restart vorhanden ist
    // Also SpielerSpeichern mit der ihr halt euren User Speichern tut ^^
    }
    }
    }
    return 1;
    }



    //So wir wollen es aber nun auch so machen das nur die User in den Fahrzeugen einsteigen können die auch den Job haben.
    //ihr macht also ganz oben unter den Includes
    new JobFahrzeug[1]; // 1 = Die anzahl der Fahrzeugen die erstellt werden sollen.



    Dann erstellt ihr noch unter OnGameModeInit() das Fahrzeug mit dem ihr später die Checkpoints abfahren tut.


    public OnGameModeInit()
    {
    JobFahrzeug[0] = CreateVehicle(408,1805.2057000,-1885.3551000,14.0338000,89.9334000,1,1,15); // Unser Fahrzeug
    return 1;
    }





    So erstellt hätten wir nun unser Fahrzeug, aber nun müssen wir es so machen das nur die User es nutzen können die den Job auch angenommen haben.


    Wir gehen dazu unter public OnPlayerStateChange(playerid, newstate, oldstate)



    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    new newcar = GetPlayerVehicleID(playerid);
    if(GetPVarInt(playerid,"Job")!=1)
    {
    for(new i=0; i<sizeof(JobFahrzeug); i++)
    {
    if(newcar == JobFahrzeug[i])
    {
    RemovePlayerFromVehicle(playerid);
    SendClientMessage(playerid,0xFFBE00FF,"Du hast nicht den Job angenommen");
    }
    }
    }
    return 1;
    }



    So und nun können nur Spieler in den Fahrzeugen einsteigen die auch den Job haben ^^



    für diejenigen die das Dini include nutzen, schreibe ich hier mal die Speicher & Lade variante hin ^^



    Für das Speichern des Jobs:



    stock SpielerSpeichern(playerid)
    {
    new Spielerdatei[128];
    dini_IntSet(Spielerdatei,"Job",GetPVarInt(playerid,"Job"));
    return 1;
    }


    Für das Laden des Jobs:



    stock AccountLaden(playerid)
    {
    new Spielerdatei[128];
    SetPVarInt(playerid,"Job",dini_Int(Spielerdatei,"Job"));
    return 1;
    }




    Bitte seit mit der Kritik nicht arg so streng da dies mein erstes Tutorial hier im breadfisch forum ist ist ^^
    Werde es später auch noch natürlich überarbeiten ^^




    Stand: 11.08.2013

    • Checkpoint Fehler behoben, Der Checkpoint 2 wurde nicht angezeigt.
    • Fehler im Befehl /jobstart behoben.


    Dürfte nun alles richtig funktionieren 8)


    Grüße :D

    Ich finde es persönlich sehr unfreundlich NUR BlackAce zu danken, obwohl doch John_Hunter den entscheidenen Tipp zu erst gegeben hat.^^
    Nichts gegen dich Black.

    Wem ich danke ist mir doch überlassen, der John hat mir zwar auch geholfen aber BlackAce Tippfand ich besser..



    Aber damit du dich nicht beleidigt fühlst, Danke dir John_Hunter ^^




    Liebe Grüße

    Moin




    Ich habe mal eine Frage zu der Funktion: PlayAudioStreamForPlayer.




    Ich war mal auf so einen Server der einen Song abspielte wenn man auf den Server Connecten tut,
    jetzt ist meine Frage, ist es möglich einen Song in den Server Ordner zu packen und dann abspielen zulassen, wenn ja.


    Wie geht das ?








    Grüße

    Also mein Kollege hat Windows 8 und es ist nicht besonders empfehlenswert für Spiele, warum?



    Den einige Spieler werden nicht von Windows 8 unterstützt, wie z.B:


    - Terraria
    - Dead Island
    - und sonst welche Spieler noch..


    Also zum Arbeiten ist er finde ich ihn Gut aber zum Spielen nicht so dolle ^^




    Grüße

    Ist doch ganz klar warum. Hat der Spieler 19 Wanteds, und du gibst ihm 2, ist die Abfrage Wanted >= 20 bevor man die Wanteds gibt ja immer noch positiv.


    Probiers doch mit
    if(GetPVarInt(pID,"Wanteds") + wanteds >= 20)
    {
    SetPVarInt(pID, "Wanteds", 20); SendClientMessage(playerid, 0x0000FFFF, "Die wanteds des Spielers wurden auf 20 erhöht!");
    }

    uff danke, habe diese abfrage vergessen da ich vorher nicht + gezählt hatte aber im nachhinein es geändert hatte.. nunja danke dir ^^





    Edit: Habs raus, danke euch ^^




    Grüße

    Moin



    Ich habe ein Problem mit meinem /su Befehl, und zwar kann der Polizist über das Limit gehen, also über 20 Wanteds kann der Spieler haben, wieso?


    edit: wenn man ihn direkt 20 Wanteds gibt kann man ihn ab da an keine wanteds mehr geben da er das Limit erreicht hat..



    Hier meine Abfrage


    if(GetPVarInt(pID,"Wanteds") == 20)return SendClientMessage(playerid,GRUN,"Der Spieler hat das maximale Wantedlimited erreicht, 20 Wanteds!");




    Grüße

    Probiere mal so:



    ocmd:kick(playerid,params[])
    {
    new pID,Grund[64],str[128];
    if(!isPlayerAnAdmin(playerid,1)) return SendClientMessage(playerid,Bege,"Du bist kein Admin!");
    if(sscanf(params,"us",pID,Grund)) return SendClientMessage(playerid,Bege,"Benutze: /kick [Name/ID] [Grund]");
    if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,Bege,"Spieler ist nicht online!");
    format(str,sizeof(str),"AdminCmd: Der Spieler %s wurde vom Admin %s gekickt, Grund: %s",SpielerName[pID],SpielerName(playerid),Grund);
    SendClientMessageToAll(Bege,str);
    SetTimerEx("KickTimer",1000,1,"i",pID);
    return 1;
    }



    forward KickTimer(pID);
    public KickTimer(pID)
    {
    Kick(pID);
    return 1;
    }




    Grüße

    Ich kann dir da zwar nicht weiter helfen, aber es gibt auch einen SAMP Bug, kann sein das der schon längst gefixt wurde jedenfalls
    war es bei mir so Ich bin von den Grove Street interior (CJ Haus) war das meine ich raus gekommen in der Grove Street gespawnt und alle fahrzeuge waren halt irgendwie auch so verstreut oder lagen auf einander drauf was eigentlich nicht sien dürfte.. Also an mir kann es nicht gelegen haben da als ich einen anderen interior genutzt hatte und wieder in der Grove Street gespawnt bin war alles normal Fahrzeuge spawnen richtig lagen also nicht mehr auf einander drauf unso.. also sehr komisch gewesen ^^.. kann sein das es bei dir genauso ist aber ist nur ne Vermutung ^^




    Grüße

    Warum machst du es dir nicht Einfacher und Übersichtlicher ?



    Beispiel: wenn er Checkpoint 1, 2, 3 usw.. Abfährt bei jeden Checkpoint den abfährt


    Checkpoint 1:


    SetPVarInt(playerid,"PayDayGehalt",GetPVarInt(playerid,"PayDayGehalt")+150);



    Checkpoint 2:


    SetPVarInt(playerid,"PayDayGehalt",GetPVarInt(playerid,"PayDayGehalt")+150);


    usw..


    Dann bei deinem PayDay:



    new Gehalt = GetPVarInt(playerid,"PayDayGehalt");
    GivePlayerMoney(playerid,Gehalt);





    Grüße

    Etwas genauer kannst du schon werden.
    Ich sehe dort nur eine große Holz hüte ?


    erklär mal wo dein Problem liegt ^^


    Grüße

    ja in der console gmx eingegeben

    1.) Den Befehl anpassen wie ich es dir oben geschrieben hab
    2.) F5 Drücken ( Compiler )
    3.) Server Starten, wenn du ihn schon gestartet hast dann ( gmx ) rein schreiben und guck ambesten mal nach vielleicht hast du die server.exe 2x offen dadaurch kann das Problem auch kommen ^^




    Grüße

    Mach so:



    ocmd:invite(playerid,params[])
    {
    new pID;
    if(sscanf(params,"u",pID))return SendClientMessage(playerid,Grün,"Benutze: /invite [ID]");
    SetPlayerColor(pID,Rot);
    SetPlayerPos(pID,1546.3073,-1675.5354,13.5621,89.4451);
    return 1;
    }



    Grüße