Beiträge von Goldkiller

    Ist auch noch nicht aufgefallen,dass ihr mal adminduty und mal ADuty verwendet :-O? Sowieso, den Fehler habt ihr bisher alle übersehen.


    Wie soll das auch funktionieren.
    Du deklarierst die Variable NICHT Global, da liegt der Fehler.


    ocmd:aduty(playerid,params[]) //Admin Duty
    {
    new Text3D:ADuty[MAX_PLAYER_NAME],adminduty[128],string[128]; // <-- adminduty hier ist TOTAL falsch ( Du verwendest es sowieso mehrfach für unterschiedliche Zwecke,komisch ).ADuty übrigens auch

    Du musst adminduty als Globale Variable für jeden Spieler erstellen.
    new adminduty[MAX_PLAYERS];
    Dann kannst es im Befehl so wie du es möchtest verwenden.


    ocmd:aduty(playerid,params[]) //Admin Duty
    {
    if(adminduty[playerid] == 0 ) {
    // Geht OnDuty
    adminduty[playerid] = 1;
    }
    else {
    // OffDuty
    adminduty[playerid] = 0;
    }
    return 1;
    }

    Zitat

    ich ahbe auch in Include ordner nachgeguck, doch da ist noch das Include "w_baum"


    Definitiv nicht,sonst würde die Fehlermeldung nicht kommen.
    Sicher,dass du auch die PAWNO.exe aufrufst wo sich im Unterordner "w_baum" befindet? Kann doch gut sein,dass du mehrmals das Server-Paket installiert hast und die PAWNO.EXE aus einem falschen Ordner ausführst.


    Am einfachsten überprüfst du das,indem du die PAWNO.exe dort ausführst, wo sich "/include/w_baum" befindet.Dann über die "OPEN" Funktion von PAWNO das Script öffnest und es nochmal probierst.

    Nimm GetTickCount().


    new tickStart;
    new tickSchluss;
    // Beim Beginn
    tickStart = GetTickCount();


    // Beim Schluss
    tickSchluss = GetTickCount();


    new msZeit;
    msZeit = tickSchluss - tickStart;
    Jetzt hättest in <msZeit> die verstrichene Anzahl an ms seit Beginn. Von ms in Sek sollte jetzt nicht das Problem sein ;).

    Zitat

    Und warum wird mein CHat zugespammt mit der 1 Nachricht:


    public MotorStart()
    {
    for(new playerid=0; playerid<GetMaxPlayers(); playerid++)
    {
    new string[128];
    format(string, sizeof(string),"{BC00FF}Der Motor springt an!");
    SendMeChat(string,playerid);
    new car = GetPlayerVehicleID(playerid);
    GetVehicleParamsEx(car,engine,lights,alarm,doors,bonnet,boot,objective);
    Motor[car] = true; SetVehicleParamsEx(car,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective);
    }
    return 1;
    }
    Weil du dort eine Schleife hast. Ist klar,dass die Nachricht an jeden Spieler gesendet wird und bei jedem Spieler der in einem Fahrzeug sitzt der Motor eingeschaltet wird.
    Wenn es nur bei einem bestimmten Spieler sein sollte, solltest du es wohl via extra Paramter für MotorStart machen.


    Zitat

    Undzwar zeigt es mir beim Textdraw auch wenn ich 1-6 Wanteds habe immer 0 an.
    Was ist da falsch ?


    public Wantedanzeige()
    {
    for(new playerid=0; playerid<MAX_PLAYERS; playerid++)
    {
    if(IsPlayerConnected(playerid))
    {
    TextDrawHideForPlayer(playerid,Anzahl4[playerid]);
    new w = GetPVarInt(playerid,"Wanted"), str[50];
    format(str, sizeof str, "%d",w);
    TextDrawSetString(Anzahl4[playerid], str);
    TextDrawShowForPlayer(playerid,Anzahl4[playerid]);
    }
    }
    return 1;
    }
    Da ist nichts falsch,es kompiliert ja ( nehm ich mal an ). Wenn dort immer 0 ausgeben wird bzw angezeigt wird,dann schreibst du wohl nie etwas in die PVar "Wanted" hinnein. Wieso du überhaupt PVars benutzt und nicht GetPlayerWantedLevel bzw Set ist sowieso komisch :p.

    Tja wie wohl ? Im Script nach einer Variable suchen die wahrscheinlich die größe von MAX_VEHICLES hat und im Namen irgendwas mit Benzin zu tun hat.


    Ich kenn das Script übrigens nicht,brauch ich aber auch nicht. Eine Variable finden ist schließlich keine große Kunst.

    Stell dich nicht so doof an,es wurde schon mehrfach erwähnt.
    So schwer ist es sowieso nicht, du stellst dich nur sehr sehr ungeschickt an.


    new sekunden;
    new tCountdown; // Wir brauchen eine Variable für den Timer, damit wir ihn später zerstören können!
    forward timer();
    sekunden = 60; // Bevor du SetTimer Aufrufst, die Sekunden setzen!
    tCountdown = SetTimer("timer",1000,true); // Unserer Timer-Variable die Timerid zuweisen


    public timer()
    {
    TextDrawShowForAll(TextdrawWarn0);
    TextDrawShowForAll(TextdrawWarn1);
    TextDrawShowForAll(TextdrawWarn2);
    sekunden--;
    new string[50];
    format(string, sizeof(string), "%i",sekunden);
    TextDrawSetString(TextdrawWarn1,string);
    if(sekunden==0)
    {
    SendClientMessageToAll(ROT,"Test");
    KillTimer(tCountdown); // Bei 0 zerstören wir den Timer, da Zeit abgelaufen
    }
    }


    Und ja,das funktioniert.Wenn nicht,machst du es wieder falsch.

    Kann gehen,erzielt nur Sicherlich nicht den gewünschten Effekt.
    Ich verweise nochmal auf meinen Post.
    http://forum.sa-mp.de/san-andr…%B6tige-hilfe/#post968231


    Du kannst nicht einen 3DText an viele Fahrzeuge / Spieler attachen. Du musst mehrere 3DTexte erstellen ( Auch wenn die den gleichen Text haben,völlig egal ) und diese dann an das Fahrzeuge / Spieler attachen . Auch verstehe ich nicht wieso du dort eine Schleife hast aber vor der Schleife einen Abfrage , die auf die classid ( wahrscheinlich meinst du skinid ) bezieht. Das macht doch gar keinen Sinn :-O!

    Woran scheitert es denn bei dir ?
    Attach3DTextLabelToVehicle
    Die Funktion ist doch eindeutig. In deinem Beispiel wäre es:


    Attach3DTextLabelToVehicle ( anti3dtext , Antiterror[0] , 0.0 , 0.0 , 0.0 );
    Allerdings muss man erwähnen.Du musst pro Fahrzeug einen EIGENEN 3DText erstellen.Du kannst den nicht an mehrere Fahrzeuge attachen.
    Heisst,du müsstest es quasi als Array machen:
    anti3dtext[0] = Create3DTextLabel( ... )
    anti3dtext[1] = Create3DTextLabel( ... )
    anti3dtext[2] = Create3DTextLabel( ... )

    Das ist schon mal ganz und gar nicht "dynamisch".
    So wie du es gerade hast, eine Checkpoint-Serie zu erstellen, ist sehr unvorteilhaft.
    Mach es lieber so wie hier:
    [TUT] Checkpoints - Der richtige Weg (Race)Checkpoints zu scripten.


    Wie auch immer.Wieso markierst du nicht die Zeilen,in denen der Fehler auftritt ? Ohne die passenden Zeilen kann man nicht sofort helfen.Ich denke aber es sind die IsPlayerInCheckpoint - Zeilen.


    (IsPlayerInCheckpoint(playerid, 3.0, 1094.5555,-1778.5530,13.5524))
    Ist total falsch.
    Schau dir nochmal die Funktion an:
    IsPlayerInCheckpoint
    Es gibt nur 1 Parameter, nicht 5.

    Geht nicht über SA:MP Scripting. Was du möchtest fällt unter die Kategorie Modding.
    Du musst dazu das *.DFF Modell abändern. Außerdem müsste dann jeder die neue *.DFF installieren.


    Viel Aufwand, ist aber theoretisch möglich.

    Neue <Variable> die aktuelle Sekundenzahl festhält.
    Textdraw erstellen


    Timer der Funktion jede Sekunde aufruft.


    In der Funktion <Variable> - 1 rechnen
    Textdraw Text ändern durch aktuellen Wert von <Variable>
    Falls <Variable> = 0 ist,Server neustartet


    Wenn du nicht weiter kommst, erklär wo es hapert.

    case 4,5:
    {
    Schlechte Lösung. Mal daran gedacht, die classid über AddPlayerClass zu beziehen und dann diesen Wert für OnPlayerRequestClass zu benutzen ? Das würde nämlich nicht funktionieren, ohne das ich "meine" Klassen verschieben oder dein Script anpasse.

    Seh ich gar nicht ein, mir selber rauszusuchen in welchen Zeilen die Fehler kommen. Hoffentlich tun das die meisten Anderen User auch. Zusätzlich benutz das PWN-Tag um deinen PAWN Code darzustellen.

    Code
    [PWN]dein code[/PWN]

    Du kannst den Code einfach in deiner MySQL Umgebung ausführen lassen und es wird autom. erstellt.
    Dafür ist ja der SQL Befehle "CREATE" auch gedacht. Das interessiert dich aber wahrscheinlich nicht,du möchtest ja einfach nur die SQL Datei.
    Siehe Anhang. Den Quelltext der sql Datei solltest dir mal anschauen.


    Ich hoffe du weisst damit etwas anzufangen.

    !strcmp(type, "caravanspawn") == false )
    Das ist doch doppelt.
    Entweder du machst ! davor oder == false,Beides zusammen ist irgendwie falsch. Glaube kaum,dass es damit richtig funktioniert.
    Also:
    if(!strcmp(type, "sportautohaus"))
    oder
    if( strcmp(type, "sportautohaus") == 0 )