Beiträge von Jeffry

    ocmd:beitreten(playerid)
    {
    for(new i=0;i<sizeof(JobPickup);i++)
    {
    if(IsPlayerInRangeOfPoint(playerid, 1.5, JobPickup[i][JPX], JobPickup[i][JPY], JobPickup[i][JPZ]))
    {
    SetPVarInt(playerid, "Job", JobPickup[i][JPJob]);
    new string[1024];
    format(string, sizeof(string), "Du bist dabei, dich für den Job %s\nzu entscheiden, aber ob das der richtige\nJob für dich ist, musst du selber entscheiden", JobPickup[i][JPName]);
    ShowPlayerDialog(playerid, DIALOG_JOB, DIALOG_STYLE_MSGBOX, "Jobinformation",string,"Annehmen","Doch nicht");
    return 1;
    }
    }
    return SendClientMessage(playerid, COLOR_RED, "Du bist an keinem Jobpunkt!");;
    }


    "return" lässt den command beenden, auch in Schleifen.

    Das hier immer so Diskussionen entstehen müssen...Leute.
    niklasbollmer: Ganz einfach: Was du vorgeschlagen hast macht keinen Sinn in Bezug auf was NicoWiss haben möchte. Punkt.


    Er möchte bei AddApplicaton beliebig viele Parameter hinzufügen, und diese beliebig vielen Parameter auch in CallLocalFunction weitergeben.
    Die Frage ist ob das geht und wenn ja wie.


    Secres: Daran hatte ich auch schon gedacht, ist aber ziemlich undynamisch.


    @NicoWiss: Wie viele Parameter brauchst du maximal?


    Kann man das auch so machen das man beliebig viele parameter da zufügen kann so ist die anzahl aj bestimmt


    Hab ich probiert, weiß ich aber leider nicht wie das geht, und ob es überhaupt geht. Also wenn das geht, würde mich es ebenso interessieren wie es geht.

    stock AddApplicaton(publicname[], playerid)
    {
    CallLocalFunction(publicname, "d", playerid);
    return 1;
    }


    Das wäre dann:
    public Wecker(playerid)
    {
    return 1;
    }


    Und der Aufruf:
    AddApplicaton("Wecker", playerid);


    Ich war mal so frei und hab das "name[]" aus AddApplication entfernt.

    Du speicherst ja hier dein Geld:
    format(var, 32, "Money=%d\n",PlayerInfo[playerid][pCash]);fwrite(hFile, var);


    Wenn du in einem Pay'n'SPray bist, und dir die 100$ abgezogen werden, dann geht das zwar von deinem Geld weg, aber die pCash variable weiß davon nix.
    Wenn, dann müsstest du es mit GetPlayerMoney machen, oder über den Fix der bei OnVehicleRespray im wiki steht:
    http://wiki.sa-mp.com/wiki/OnVehicleRespray


    Oder du machst einen Timer, der GetPlayerMoney mit pCash vergleicht, und bei kleinen Abweichungen die pCash variable = GetPlayerMoney setzt. Das wäre das Einfachste.

    /* SA-MP threaded HTTP/1.0 client for pawn
    *
    * (c) Copyright 2010, SA-MP Team
    *
    */


    // HTTP requests
    #define HTTP_GET 1
    #define HTTP_POST 2
    #define HTTP_HEAD 3


    // HTTP error response codes
    // These codes compliment ordinary HTTP response codes returned in 'response_code'
    // (10x) (20x OK) (30x Moved) (40x Unauthorised) (50x Server Error)
    #define HTTP_ERROR_BAD_HOST 1
    #define HTTP_ERROR_NO_SOCKET 2
    #define HTTP_ERROR_CANT_CONNECT 3
    #define HTTP_ERROR_CANT_WRITE 4
    #define HTTP_ERROR_CONTENT_TOO_BIG 5
    #define HTTP_ERROR_MALFORMED_RESPONSE 6


    native HTTP(index, type, url[], data[], callback[]);


    // example HTTP callback: public MyHttpResponse(index, response_code, data[]) { ... }


    Die ist aber eigentlich im download mit dabei.

    Du fragst überall nach einem Code, das fällt ziemlich auf! Sorry, aber ich muss das mal schreiben! Entweder du lernst es, oder du kannst es in die Tonne treten. Copy & Paste gibts hier wohl nicht.


    Recht hat er! :thumbup:


    Justinn:
    Du musst schon was selber machen, es ist ja DEIN server, das heißt DU machst es.
    Mit Parameter 6-8 ist gemeint, das du Parameter 6,7,8 ändern musst, eben so modifizieren, dass es passt. Ein Parameter sind die Zahlen/Texte/... zwischen den Kommas: Funktion(Param1, Param2, Param3);

    Nur jetzt wird zwar alles angezeigt nur das problem ist die schrieft ist nicht mittig sondern beim koffern raum an der rechte hinteren beifahrer tuer wie kann ich das object weiter vorsetzen?


    Bei AttachObjectToVehicle die Parameter 3 - 5 verändern (XYZ offset).


    Wie kann ich die schrift auf die Motorhaube machen und die schrift so in die schräge versetzen?


    Bei AttachObjectToVehicle die Parameter 6 - 8 verändern (XYZ-Angle offset).


    Wie kann ich die Schrift verkleinern?


    Bei SetObjectMaterialText den 6. Parameter (fontsize) verändern.

    Also, da du ja nur ein Bild gemacht hast, kann ich dir den Fehler nur erklären:


    So ist es falsch:
    new test;
    if(test == 0)
    {
    blablabla;
    blablabla;
    Undnochmehr();
    }


    So ist es richtig:
    new test;
    if(test == 0)
    {
    blablabla;
    blablabla;
    Undnochmehr();
    }


    Einfach pro { einen TAB mehr, und prop } einen TAB weniger.


    Wenn du
    #pragma tabsize 0
    verwendest, werden wie Warnungen zwar ignoriert, dein Script sieht aber noch immer "unschön" aus.

    TankBox1 = TextDrawCreate(529.33,408.43,"_");
    TextDrawLetterSize(TankBox1,100.0,100.2);
    TextDrawColor(TankBox1,-1);
    TextDrawUseBox(TankBox1,1); TextDrawTextSize(TankBox1,650.0,500.0);
    Jetzt solltest du die Box sehen. Warum benutzt du keinen Textdraw Editor? Das ist hilfreich.

    Du musst das
    new Skina[MAX_PLAYERS];
    aus dem command nehmen. Setz es am besten unter deine includes.


    Oder:
    'new' zu 'static' ändern. Das geht auch.

    new Vari[MAX_VEHICLES][10];
    new id = CreateVehicle...
    Vari[id][0] = ...
    Vari[id][1] = ...


    In der Art? Wenn nicht, kannst du es anhand eines Beispiels erklären?

    switch(dini_Get(Spielerdatei,"Spielerrang"))
    zu:
    switch(strval(dini_Get(Spielerdatei,"Spielerrang")))



    EDIT: Sorry, hatte nicht gesehen, dass er es schon hinbekommen hat. Naja, so weiß *GHOSTRIDER* wenigstens was es war.
    Ich muss besser lesen. :pinch:

    stock Spielerrang(playerid)
    {
    new Spielerdatei[64];
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.ini",SpielerName(playerid));
    new rang[54];
    switch(strval(dini_Get(Spielerdatei,"Spielerrang",rang)))
    {
    case 0:{rang="Neuling";}
    case 1:{rang="Einwanderer";}
    default:{rang="Error";}
    }
    return rang;
    }


    Ich kann dir aber nur dringends raten, variablen zu benutzen. Normalerweise sage ich ja nichts zur Code-Geschwindigkeit, aber stats nur über files zu verarbeiten, ist EXTREM langsam. ^^

    Ja, leider verstehe ich leider nicht wirklich wie ich das machen kann, also auch kein Lerneffekt


    Wie du was machen kannst? Das ganze System? Wenn das der Fall sein sollte, dann kann ich dir nur dringend raten: Lernen bis du es kannst.
    Aus eigener Erfahrung nach über 3.5 Jahren kann ich dir sagen, dass es keinen Sinn hat, etwas zu versuchen, dass man nicht versteht. Sobald du es verstehst, kannst du es auch machen. Man fängt klein an und arbeitet sich hoch. Wenn Fragen auftauchen, kann man die ruhig fragen, aber wenn man keinen Schimmer hat, ohne das böse zu meinen, sollte man es bleiben lassen. Und ja, genau so hab ich es immer gemacht.


    Glaub mir, wenn du dran bleibst, wirst du mich in 1-2 Jahren verstehen und das selbe sagen. ;)

    Ich suche eine Funktion, mit der man eine zufällige Position zwischen 2 festgelegten Position bekommt.


    stock GetRandomPos(Float:x, Float:X, Float:y, Float:Y, &Float:newX, &Float:newY) //©Jeffry
    {
    new iX = floatround(floatabs(X - x));
    new iY = floatround(floatabs(Y - y));
    newX = random(iX) + x;
    newY = random(iY) + y;
    return 1;
    }


    So anwenden:
    new Float:newX, Float:newY;
    GetRandomPos(10.0, 20.0, -50.0, 10.0, newX, newY);
    printf("%f, %f", newX, newY);