Beiträge von Wolve

    hi alle zusammen.
    ich würde gerne die cords von den checkpoints oben reinschreiben und bei SetPlayerCheckpoint macht er mir dann von delber die einzelnen x, y, z coords


    nun damit es einfacher klingt ^^
    ich will die checkpoints als ganzer oben decklarieren und beim erzeugen der checkpoints macht er alles von selber...(damit man eben nicht den fehler bekommt das steht number of arguments does not match definition " oder so " )



    new Float: checkpoints[][1] =
    {
    {1792.3506,-2023.7286,13.4896}
    //{1792.3816,-2025.6490,13.4857}
    };

    new isebenso = sizeof(checkpoints);
    SetPlayerCheckpoint(playerid, checkpoints[isebenso][0],checkpoints[isebenso][1],checkpoints[isebenso][2], 5);

    leider nein, das probierte ich dann auch :(


    EDIT:
    habs nun so und es geht nicht :(




    new Float:checkpoints[][4] =
    {
    {1795.4104,-2023.9004,13.4986},
    {1795.7045,-2039.3018,13.5299},
    {1796.1096,-2052.5649,13.5727},
    {1810.8434,-2046.7496,13.5547}
    };
    new rand = random(sizeof(checkpoints));
    SetPlayerCheckpoint(playerid, checkpoints[rand][0], checkpoints[rand][1], checkpoints[rand][2],5);


    if(PlayerToPoint(10, playerid, checkpoints[rand][0], checkpoints[rand][1], checkpoints[rand][2])) // oder if(IsPlayerInCheckpoint(playerid) ----> geht auch nicht ;(
    {
    //tu etwas
    }


    ich will dass er bei einem zufällig ausgewähltem checkpoint ein playertopoint setzt.
    Habe ihm mit der Variable check gesagt das das der check ist und von den cords aus soll er dann ein playertopoint machen... geht aber nicht :(

    new check = SetPlayerCheckpoint(playerid, checkpoints[rand][0], checkpoints[rand][1], checkpoints[rand][2],5);


    if(PlayerToPoint(3, playerid, check)) //number of arguments does not match definition
    {
    /tu etwas
    }


    der fehler ist logisch, aber kann ich das dann nicht irgendwie anders sagen?

    danke erstmal, fehler bekomme ich keine mehr.

    am server selber geht es nicht, bekomme keine checkpoints, (habe das script gerade onplayercommandtext) "ist zwar nicht der richtige ort dafür dachte mir aber das das egal sei, ist es anscheinent nicht, wohin mit dieser funktion? "



    und wie mache ich das nun, das ich zb 10 oder 15, 20 checkpoints da drinnen hab? vielleicht mit SetPlayerRaceCheckpoint ?


    Legende:
    grün = geschafft
    rot = noch nicht geschafft

    sry hatte ich vergessen ausbessern auf 3 ^^


    so die fehler auch noch



    new checkpoints[][3] =
    {
    {1795.4104,-2023.9004,13.4986}, //warning 213: tag mismatch
    {1795.7045,-2039.3018,13.5299}, //warning 213: tag mismatch
    {1796.1096,-2052.5649,13.5727} //warning 213: tag mismatch
    //{1810.8434,-2046.7496,13.5547}
    };


    if (GetVehicleModel(GetPlayerVehicleID(playerid)) == 574)
    {
    new rand = random(sizeof(checkpoints));
    SetPlayerCheckpoint(playerid, checkpoints[rand][0], checkpoints[rand][1], checkpoints[rand][2],5);
    }

    SUFU benutzt nur bekam ich da nicht dehr hilfreiches.


    Ich will es so machen das wenn er in dem Car ist einen von den CHeckpoints vorgeschrieben bekommt, wo er dann halt hinfahren muss....

    new checkpoints[][4] =
    {
    {1795.4104,-2023.9004,13.4986},
    {1795.7045,-2039.3018,13.5299},
    {1796.1096,-2052.5649,13.5727}
    //{1810.8434,-2046.7496,13.5547}
    };


    if (GetVehicleModel(GetPlayerVehicleID(playerid)) == 570)
    {
    new rand = random(sizeof(checkpoints));
    SetPlayerCheckpoint(playerid, checkpoints[rand][0], checkpoints[rand][1], checkpoints[rand][2],5);
    }


    so wie es gerade ist bekomme ich die wenigsten fehler

    willst du das eig für GameMode oder Filterscript?


    EDIT:


    Hier machte mal eines, deine cords passen nicht ganz.
    Ich nahm jetzt mal irgendwelche cords (beim sf pd halt ) und irgendein "Tor" ( was ich nahm ist eine Leitblanke ^^)



    new SFPDTor1;
    new SFPDTor2;


    SFPDTor1=CreateObject(973, -1635.8541,687.8629,7.1875, 0.0000, 0.0000, 180.0000);
    SFPDTor2=CreateObject(973, -1627.9131,687.7195,7.1875, 0.0000, 0.0000, 180.0000);


    forward TorTimer();


    if(strcmp(cmdtext, "/Tor", true) == 0)
    {
    if(PlayerToPoint(20,playerid,-1630.590942, 688.466675, 10.236670))
    {
    if(PlayerInfo[playerid][pTeam] == 1) //Polizei
    {
    MoveObject(SFPDTor1,-1630.590942, 688.466675, 15.136660,2);
    MoveObject(SFPDTor2,-1630.590942, 688.466675, 15.136660,2);
    SetTimer("TorTimer",5000,0);
    }
    return 1; //wenn nicht geht dann lösche das return 1;
    }
    return 1;
    }




    public TorTimer()
    {
    MoveObject(SFPDTor1,-1635.8541,687.8629,7.1875,2);
    MoveObject(SFPDTor2,-1627.9131,687.7195,7.1875,2);
    return 1;
    }


    ja, genau, wie im GM halt, das man das zB abrufen kann. if(PLayerInfo[playerid][pMember] == 1.......................


    [EDIT]


    habe nun schon, nur bei mir passiert nichts wenn ich das hier habe.

    public IsACop(playerid)
    {
    if(PlayerInfo[playerid][pMember] == 1 && PlayerInfo[playerid][pLeader] == 1)
    {
    return true;
    }
    else
    {
    return false;
    }
    }


    vorher war das IsACop mit den skins definiert, nur brauche ich jetzt das mit der Playerinfo. wenn ich jetzt den befehl schreiv´be der vorher ging, passiert einfach nichts, sprich das script kann nicht feststellen ob derjenige in der frak ist oder nicht.

    habe ein wenig in der SUFU geschaut aber da kommt nichts nützliches. jetzt wollte ich fragen wie kann man in einem FS das PlayerInfo erstellen, damit er das kennt? :huh:


    public reifenschrottkeys(playerid)
    {
    if(reifenheil[GetPlayerVehicleID(playerid)] == 0 && IsPlayerInAnyVehicle(playerid))
    {
    new keys, updown, leftright;
    GetPlayerKeys(playerid,keys,updown,leftright);
    if((keys == 8 || keys == 32 || keys == 264 || keys == 288 || keys == 72 || keys == 96 || keys == 328 || keys == 352) && blocked[playerid] == 0) // 8 = vorwärts fahren, 32 = rückwarts, editiert: seiten- & rückblick
    {
    if(IsPlayerConnected(playerid))
    {
    blocked[playerid] = 1; //ohne das bleib er nicht stehen wenn man drüberfährt
    TogglePlayerControllable(playerid,0); //ohne das bleib er nicht stehen wenn man drüberfährt
    SetTimer("ruckelTimer", 500, 0);
    }
    }
    SetTimerEx("reifenschrottkeys",ruckelms * 2,0,"i",playerid); // multiplikator 2, damit es nicht sofort blockiert ;) ist ja schließlich noch luft innen reifen
    }


    return 1;
    }



    public ruckelTimer(playerid)
    {
    if(IsPlayerConnected(playerid))
    {
    blocked[playerid] = 0;
    TogglePlayerControllable(playerid,1);
    }
    return 1;
    }


    mit der ID 0 geht es perfekt, doch hat einer zb die ID 1 dann setzt er das TogglePlayerControllable(playerid,0); und dann lauft der Timer nicht ab, dass er die gewisse zeit weiterfahren kann.

    hi


    ich verstehe das nicht ganz, ich habe 2 föllig unterschiedliche scripts, das eine ist ein FS mit nagelbänder und das andere ist ein normales mit dem /fill das man beim tanken gefreezed ist. Beide funktionieren nur bei der ID 0, wieso weshalb? Pawno hat keine Warnings oder Errors, hatte das auch schonmal einer und konnte es beheben? ?( :huh:

    ne, das format passt schon so, du darfst nicht das while in die klammern tun, dann heißt das ja so: tu das was in der klammer steht, nur das while steht nun auch da und das hat dann keine funktion ^^


    Fußgesteuerte

    do
    {
    x++;
    }
    while (x<100);


    Kopfgesteuerte

    new x=1;
    do while(x==1)
    {
    sendclientmessage...
    }


    heißt dann: tu das solange wie x 1 ist (also wenn x dann null ist dann macht er das eben nicht ^^)


    war jetzt mal nur ein beispeil, da man hinundwieder auch kopfgesteurte braucht ^^ aber eher selten :D

    ja genau, in dem Fall hört das bei 99 auf, da ja <100 99 bedeutet und <=100 100 bedeutet


    aber es hört dann einfach auf, da hast du recht.

    do
    {


    }
    while(x < 100)


    Tu es weil x kleiner als 100 ist


    entschuldigung das ich dich nun ausbessere, aber korrekt heißt es


    Tu es solange bis x kleiner 100 ist ^^


    sry BlackFoX_UD_ wollte dich nicht angreifen oder so.



    EDIT:

    for( i = 0; i <= 100; i++)
    {
    Gebe aus: i
    }



    i ist die variable
    er startet mit der zahl 0
    endet bei 100
    und geht immer um eine zahl weiter rauf


    auf deutsch, er soll das solange machen bis er die gewünschte zahl erreicht hat


    schaut dann ca so aus
    1
    2
    3
    4
    ...
    ...
    100

    ich hätte da mal ne frage an Trooper.
    Geht dein Script bei dir eig wenn du die ID 1 hast?
    bei mir nämlich nicht. Er lässt mich zwar die Reifen zerstören und so alles, nur wenn ich dann einmal angehalten habe dann ist er für immer gefreezed. :(

    Ich habe ein script was nur mit der id NULL geht, woher kann das kommen?


    hier ist ein teil von dem ganzen script. (daier Teil ist aber dafür verantwortlich das es passiert, was laut script passieren soll) :huh:

    if(blocked[playerid] == 1 && !IsPlayerInAnyVehicle(playerid))
    {
    if(IsPlayerConnected(playerid) && playerid <= MAX_PLAYERS)
    {
    blocked[playerid] = 0;
    TogglePlayerControllable(playerid,1);
    }
    }