[SAMMELTHREAD] Kleine Scripting Fragen

Dein Problem konnte durch einen User gelöst werden? Bedank dich bei ihm indem du seinen Beitrag als Hilfreich markierst sowie einen Daumen oben dalässt
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Hab 2 Fragen:


    1: Hab mit dem SAMP Map Editor 2 Personen erstellt und eingefügt ins Script, normal als Objecte.
    Sie werden nicht angezeigt aber da wo die normalerweiße stehen kann man auch nicht langgehen. Also in gewisser Weiße sind sie da. Die stehen in einem Selbstgemappten Interior.


    2: Wie kann ich wenn jmd. Adminduty gegangen ist, und seine Farbe orange gesetzt wurde + er auf der Map markiert wurde ihn wieder von der Map verschwinden lassen ohne das alle Onduty Admins gelöscht werden.


    Danke schonmal


    - Tomsen

  • carlos1710: Ich denke, dass du eine Wochentagsberechnung vor hast. Diesen Algorithmus gibt es in Pawn schon:

    // Aus dem englischem Forum
    stock GetDayName(day=0, month=0, year=0)
    {
    new weekday_str[12],j,e;
    if (month <= 2)
    {
    month += 12;
    --year;
    }


    j = year % 100;
    e = year / 100;


    switch ((day + (month+1)*26/10 + j + j/4 + e/4 - 2*e) % 7)
    {
    case 0: weekday_str = "Samstag";
    case 1: weekday_str = "Sonntag";
    case 2: weekday_str = "Montag";
    case 3: weekday_str = "Dienstag";
    case 4: weekday_str = "Mittwoch";
    case 5: weekday_str = "Donnerstag";
    case 6: weekday_str = "Freitag";
    }
    return weekday_str;
    }

    PAWNit gratis nutzen?
    Geschenkcode: 2017VQXPKB8V3KA

    Hier könnte Ihre Werbung stehen.

  • Ich habe mir nun mein eigenen Algorithmus gemacht, villeicht geht es besser aber mein eigenen hab ICH verstanden und durch Wikipedia sogar was gelernt.


    GetWeekDay(Tag,Monat,Jahr)
    {
    new Schaltjahr, Wochentag, Jahrhundert;
    if ( ( (Jahr%4==0) && (Jahr%100!=0) ) || (Jahr%400==0) )
    {
    Schaltjahr = 1;
    }
    Jahrhundert = (Jahr - (Jahr % 100)) / 100;
    Jahr %= 100;
    Wochentag = ((Tag % 7) + MonatsZahlen[Monat - 1] + ((Jahr + ((Jahr - (Jahr % 4)) / 4)) % 7) + ((3 - (Jahrhundert % 4))*2) - Schaltjahr) % 7;
    return Wochentag;
    }


    Hier meiner, funktioniert ebenfalls IMMER.
    //EDIT: Vorrausgesetzt man besitzt das Monatszahlen Arry:


    new MonatsZahlen[12] = {
    0,//Jan 1.
    3,//Feb 2.
    3,//Mär 3.
    6,//Apr 4.
    1,//Mai 5.
    4,//Jun 6.
    6,//Jul 7.
    2,//Aug 8.
    5,//Sep 9.
    0,//Oct 10.
    3,//Nov 11.
    5 //Dez 12.
    };

  • Warum führt er das nicht aus?..


    Hab nen Forward gemacht.


    public Waiting()
    {
    TextDrawHideForAll(BlackscreenTD);//Der führt das nicht aus
    //TextDrawHideForAll(NextMapLoadTD);//Der führt das nicht aus
    TextDrawHideForAll(LoadStreifenTD);//Der führt das nicht aus
    TextDrawHideForAll(LoadPfeilUntenTD);//Der führt das nicht aus
    print("Waiting2");//Der führt das nicht aus
    SetTimer("Eins",1000,0);
    return 1;
    }


    gestartet wird er so


    SetTimer("Waiting",5000,0);

  • Wieso bekomm ich hier nen Error?


    new pID,string[128],string2[128];
    GetPVarString(playerid,"PlayerToPay",pID,128);


    Code
    error 035: argument type mismatch (argument 3)


    Blitz 100


    Mach mal ganz unten im Public nen SendClientMessage rein und schau ingame obs aufgerufen wird.
    Wahrscheinlich aber nicht, wo wird der Timer gestartet?


    - Tomsen


  • Du nimmst GetPVarString bei pID - pID ist aber ein Integer. Also entweder GetPVarInt oder pid[128] nehmen. :)

    Ich bin Dittis Signatur.

  • JEtzt bekomm ich die Errors:


    error 033: array must be indexed (variable "zID")
    error 035: argument type mismatch (argument 1)


    new zID[128],string[128],string2[128];
    GetPVarString(playerid,"PlayerToPay",zID,128);
    SpielerInfo[playerid][pGeldBank] -= strval(inputtext);
    SpielerInfo[zID][pGeldBank] = SpielerInfo[zID][pGeldBank] + strval(inputtext);
    format(string,sizeof(string),"Du hast dem Spieler %s %d € überwiesen!",strval(inputtext));
    format(string2,sizeof(string2),"Der Spieler %s hat dir %d € überwiesen!",SpielerName(playerid),strval(inputtext));
    SendClientMessage(playerid,gruen,string);
    SendClientMessage(zID,gruen,string2);


    Hab pID mal zu zID umbenannt


    - Tomsen



    Einmal editiert, zuletzt von Tomsen ()

  • zID ist ja ein String, der inputtext den ich speichern möchte.


    Ließ mal den Text oben drüber!


    //Edit: Wie kann ich jedem Spieler eine andere 4 stellige Handynummer geben die noch nicht vergeben ist?


    - Tomsen



    Einmal editiert, zuletzt von Tomsen ()

  • Hallöschen,
    mal ne frage...


    Mein public sieht derzeit so aus:
    public Abladen(playerid,Biz)
    und das ist mein dazugehöriger Timer:
    SetTimer("Abladen",6000,false);


    Wie sicher schon auffällt benutzt das public "Biz"
    wie kann ich "Biz" im Timer mit benutzen?


  • Du musst, so wie du es verwenden möchtest, SetPVarInt und GetPVarInt verwenden, da zID sonst keine Integer-Zahl ist und du bei z.B. SendClientMessage einen Integer als playerid brauchst. Genau das gleiche gilt für SpielerInfo[zID][pGeldBank] - auch hier muss zID ein Integer sein, um in einem Array als "Nenner" zu fungieren.

    Ich bin Dittis Signatur.

  • Hi,


    Ich habe das Problem, dass ich die Commands ( /lights und /engine) immer doppelt eingeben muss..
    Das heisst, Auto aus: /engine -> Auto an. erneut /engine "starts engine" -> auto immernoch an (anstatt das es wieder ausgeht :( nochmals engine: Auto aus. erneut engine: "turns off the engine" obwohl er schon aus ist!






    Das Problem besteht, seit ich meien scriptvorlage vom freeze prizip bei/engine auf wirkliches engine an/aus umgestellt habe :(

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen