Beiträge von Monte

    Wenn du bei uns mithilfst mit den Ideen, kannst du von mir aus(und meine Meinung zählt, bin der Projektleiter)
    ein Chef einer Firma werden. Wenn Nichts(2.Projektleiter und Cop Chef) einverstanden ist, kannst du auch Cop sein ;)
    Aber über eine klitzekleine Bewerbung dann kommst du nicht drüber weg ;)

    Oben:
    new bool:InDerby[MAX_PLAYERS];
    new DervyCar[MAX_PLAYERS];


    Commands:
    if(strcmp(cmdtext,"/derby",true) == 0) // der Command ist für Joinen und Leaven zuständig
    {
    if(InDerby == false)
    {
    SetPlayerPos(playerid,x,y,z); // Derby Koords
    DerbyCar[playerid] = CreateVehicle(...); // das Auto erstellen
    InDerby[playerid] = true;
    }
    else
    {
    SetPlayerPos(playerid,x,y,z); // Standard Koords
    DestroyCar(DerbyCar[playerid]); // das Auto zerstören
    InDerby[playerid] = false;
    }
    return 1;
    }


    OnPlayerSpawn:
    if(InDerby[playerid] == true)
    {
    SetPlayerPos(playerid,x,y,z); // Derby Koords
    SendClientMessage(playerid,0xFF0000FF,"Du bist noch beim Derby! Um Derby zu verlassen: /derby");
    }
    Wie immer ungetestet ;)
    ~ Monte

    Was du brauchst? ;)
    Auf der Startseite dürfte auch soetwas sein wie Functions o.ä. klick darauf, und die meisten Funktionen sind erklärt.
    Auch wissenswert sind die Callbacks, ich kann jetzt fast alle Callbacks ohne im Wiki oder woanders zu gucken so schreiben.
    Am Anfang fiel es mir nicht leicht, arbeite dich leicht ein, wie gesagt ;)

    Was soll der damit denn anfangen?
    Das Auto wird automatisch gespawnt, außerdem funktioniert CreateVehicle nicht ohne Parameter ;)
    Wenn man keine Ahnung hat einfach mal das Mundwerk zu behalten :P
    Kaiza, sag Bescheid, wenn ich erklären soll.

    Dann bau eine Sache ein, das er wenn er zum Derby geht, automatisch beim Spawnen dahinteleportiert wird.
    Ordne das automatisch gespawnte Vehikel einer Variable zu wie DerbyCar[playerid] und am Ende, zerstöre es wenn er den Command z.B. /leavederby benutzt.
    Wenn du nicht weißt wie das geht, erläutere ich noch ;)

    Oh mein Gott, nein.
    BCL sind die größten "zensiert" der Welt.
    Unser alter Server hatte eine Fusion mit denen und dann haben die sich ein paar unser Player geschanppt und sind wieder abgehauen.
    Und der alte Monti hat mein schönen Namen geklaut -.-


    Naja B2T:
    Schau dich mal im SA-MP Forum um, da sind ein paar nette Scripte.
    Falls du mit denen dann nicht klarkommst, versuch dich an Godfather.
    Doch meine größte Empfehlung ist:
    Scripte dir ein Freeroam,Stunt,DM Script. Ganz alleine, festige die Grundlagen.
    Wenn dann das alles sitzt, wende dich dem "mit Dateien arbeiten" zu. Ich empfehle "Dini" für Anfänger ;)
    Und schreibe dein Register&Login System, wenn du das hinbekommst, dann versuch dich noch einmal an einem Reallife Script.
    Mein Wissen stammt aus 1 Deathmatch Script, 1 Counterstrike Script, 2 Stuntscript, einige dutzend Filterscripts und vielem mehr.


    Nicht immer gleich nach den Sternen greifen, denn oft sind sie noch zu hoch ;)

    Und komplizierter. Wenn du auf der GTA San Andreas Karte(soweit du es legal erworben hast), mit dem Zirkel den Umkreis konstruiert hast, dann kannst du dir ungefähr ahnen wieviel Radius du eisntellen musst.
    Andernfalls schreib ein Command mit GetDistanceBetweenPlayers, der dir sagt wieviel Distance zwischen dir und jemand anderem ist.
    Stell jemanden ungefähr in die Mitte und überprüf was am besten geeignet ist ;)

    Bitte nochmal direkt auf meine Frage antworten, ist schwer rauszudeuten, wenn kein klares "Ja!" oder "Nein!" drin vorkommt ;)
    Bei Godfather gibt es hier ein Tutorial im Forum.
    Andernfalls werde ich mich dem Thema abwenden, denn für mich ist es zu schwer zu erklären ;)

    1.Frage:
    AddStaticVehicle(Ex) wird in OnGameModeInit benutzt.
    Der Unterschied zwischen AddStaticVehicle und ~Ex ist, dass bei ~Ex die Respawn Zeit eingestellt werden kann.
    Wobei bei AddStaticVehicle respawnt wird, wenn das Auto zerstört wird ;)


    CreateVehicle kann man widerum überall benutzen, auch hier kann die Respawn Zeit eingestellt werden.


    ~ Monte

    Da sich einige ein eigenen Chat erstellen, der natürlich aus Textdraws besteht, ist es bei denen möglich.
    Es gab im SA-MP Forum, glaube ich mal solche Erklärunge, wie man ein eigenen Chat produziert ;)
    Am besten du legst ihn einfach über den normalen, die Message Funktion für den Textdraw musst du natürlich selber noch hinzufügen.


    ~ Monte

    SetTimerEx wäre auch sinnvoll.
    Oben:

    new GMStatus[MAX_PLAYERS];
    new GMTimer[MAX_PLAYERS];
    forward Unbesiegbar(playerid);


    OnPlayerStateChange:
    public OnPlayerStateChange(playerid,newstate,oldstate)
    {
    if(newstate == PLAYER_STATE_DRIVER)
    {
    if(GetPlayerVehicleID(playerid) == 522)
    {
    GMTimer[playerid] = SetTimerEx("Unbesiegbar",1000,1,"i",playerid);
    GMStatus[playerid] = 1;
    }
    }
    if(newstate == PLAYER_STATE_ONFOOT)
    {
    if(GMStatus == 1)
    {
    KillTimer(GMTimer[playerid]);
    GMStatus = 0;
    }
    }
    }


    Ausserhalb jeden Callbacks:
    public Unbesiegbar(playerid)
    {
    SetPlayerHealth(playerid,999);
    }


    Ungetestet, dürfte aber funktionieren ;)

    TogglePlayerControllable(playerid,bool:toggle);
    Statt dem Boolean Wert "false"/"true" gehen auch 0/1 ;)


    //EDIT: Motorscript: Ungetestet!

    Ich benutze zum Beispiel für meinen /register Command strtok.
    Nun möchte ich mich aber mit strtok ein bisschen mehr einüben ;)
    Wenn ich nun ein Command wie /setheal [playerid] [amount] haben will.
    Wie mache ich das?
    cmd = strtok(cmdtext,idx);
    Das nimmt alles hinterm CMD, richtig?
    Muss ich bei idx, dann was anderes eintragen oder wie?


    // Sorry, ich benutze strtok jetzt zum ersten Mal mit 2 Parametern beim Command.
    // Benutze sonst nur dcmd oder strget ;)


    ~ Monte