Beiträge von manumeyer

    [align=center][b][align=center]Liebe Community,


    heute möchte ich euch ein einfaches Torsystem beibringen.
    Ich benutze in diesem Tutorial das LSPD Tor, es geht jedoch mit jedem Tor. Ihr müsst nur die
    Koordinaten ändern!


    ________________________________________________________________


    Ihr benötigt:


    - die Geschlossene Position des Tores (z.B. mit MTA gemappt)


    - die Geöffnete Position des Tores


    ________________________________________________________________


    Schritt 1:
    ________________________________________________________


    Ganz nach oben zu den new's forward's und define's erstellen wir eine neue Variable und einen forward.


    new LSPDTor = 0;
    forward LSPDClose();


    Mit new wird eine neue Variable festgelegt,
    mit forward erstellen wir einen neuen puclic.


    ________________________________________________________________


    Schritt 2:
    ________________________________________________________




    nun müssen wir die Koordinaten des Tores in unser Script einfügen, so das das Tor erstellt wird!


    !WICHTIG!
    nur die Koordinaten des Geschlossenen Tor!

    ---


    Ein neues Objeckt erstellt man mit der Funktion:


    CreateObject


    Folgende Daten verden für CreateObject benötigt:


    modelid = Die model-ID die das Objeckt besitzt (nicht die objecktid im script)
    Float:X = Die Position auf der X - Achse
    Float:Y = Die Position auf der Y - Achse
    Float:Z = Die Position auf der Z - Achse
    Float:rX = Die Rotation auf der X - Achse
    Float:rY = Die Rotation auf der Y - Achse
    Float:rZ = Die Rotation auf der Z - Achse
    ___________________________________________________________________________
    hier gillt es zu wissen:
    Es gibt verschiedene Arten von Variablen. 3 Der wichtigsten:
    -Strings: Strings sind Variablen, die einen Text Speichern
    -Integer(Int): Ganzzahlen, sie können keine kommastellen speichern
    -Float: Floats sind wie Integer, nur das sie Zahlen mit kommastellen speichern können!


    ___________________________________________________________________________


    Fertig sähe dies so aus (für das LSPD Tor):


    CreateObject(972, 1584, -1642, 9.5, 0, 0, 90); //CreateObject(Float:X, Float:Y, Float:Z, Float:rX, Float:rY, Float:rZ);


    Das wird einfach unter dem public OnGameModeInit eingefügt!


    ________________________________________________________________


    Schritt 3:
    ________________________________________________________




    jetzt dem Objeckt eine "neue ID" im Script zuweisen, damit wir ihn besser "steuern" können. Täten wir dies nicht,
    müssten wir immer wenn wir ein Objeckt erstellen, nachzählen, an welcher stelle es in das Spiel erstellt wird,
    da dies dann die Objeckt ID ist!


    Dies machen wir ganz leicht, indem wir unsere Variable LSPDTor vor das CreateObjeckt schreiben.


    LSPDTor = CreateObject(972, 1584, -1642, 9.5, 0, 0, 90);



    ________________________________________________________________


    Schritt 4:
    ________________________________________________________



    Nun müssen wir den public:
    OnPlayerKeyStateChange


    finden!
    Wer diesen public nicht in seinem Script drinne hat, der füngt einfach außerhalb eines pulics folgendes ein:



    public OnPlayerKeyStateChange(playerid, newkeys, oldkeys){ return 1;}


    Dort wird abgefragt, welche Taste der Spieler grade drückt.


    hier fügen wir folgendes ein:


    if(newkeys == 2)
    {


    }


    damit fragen wir ab, ob der Spieler die Taste mit der ID 2 drückt.
    Die ID's der Tasten findet ihr hier.


    _____________


    Nun fragen wir ab, ob der Spieler in der nähe des Tores ist, das wir erstellt haben.
    Dies fragen wir wieder mit einem if-Befehl ab.:


    if(IsPlayerInRangeOfPoint(playerid,20,1584, -1642, 9.5)
    Erklärung:
    Die playerid steht dafür, dass er es nur für den spieler abfragt, der die Taste gedrückt hat.
    Die 20 stehen für den Radius um die Koordinaten in dem sich der Spieler befinden muss.
    Die 1584 ist die X-Koordinate des Tores
    Die -1642 ist die Y-Koordinate des Tores


    Die 9.5 ist die Z-Koordinate des Tores

    Liebe Community,


    heute möchte ich euch mein neustes problem vorstellen ^^


    ich bastle ein /report system:


    wenn ich jedoch ingame eingebe: /report dieter hackt!
    wir ausgegeben: manumeyer meldet: dieter


    gibt es eine möglichkeit dies zu beheben?



    if(strcmp(cmd, "/Report", true) == 0)
    {
    new tmp[256];
    tmp = strtok(cmdtext,idx);
    if(strlen(tmp))
    {
    if(IsPlayerConnected(playerid))
    {
    new File:ftw=fopen("Bugs.txt", io_append);
    new pName[60],string[256];
    GetPlayerName(playerid,pName,sizeof(pName));
    format(string,sizeof(string),"%s meldet: %s",pName,tmp);
    fwrite(ftw,string);
    fclose(ftw);
    format(string,sizeof(string),"Folgendes wurde gemeldet: %s",tmp);
    SendClientMessage(playerid,0xAA3333AA,string);
    }
    else
    {
    SendClientMessage(playerid,0xAA3333AA,"Fehler: Du musst eingeloggt sein!");
    }
    }
    else
    {
    SendClientMessage(playerid,0xAA3333AA,"Nutze: /report [Text]");
    }
    return 1;
    }


    Hey ho...


    habe ein kleines problem mit der abfrage ob das car dem spieler gehöhrt oder nich...


    wenn man sich einloggt wird das Fahrzeug vom spieler geladen... alles ganz ok!
    wenn ich mich in mein auto setze, passiert nichts... auch ok!
    wenn ich mich in ein auto, was ich bei ongamemodeinit hinzugefügt habe setze, werde ich rausgeschmissen... das ist das problem..


    Der Timer:
    public Carchecktimer()
    {
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(IsPlayerInAnyVehicle(i))
    {
    if(GetPlayerVehicleID(i) != car[i])
    {
    for(new v=0; v<sizeof(SpawnedCar); v++)
    {
    if(GetPlayerVehicleID(i) != SpawnedCar[v])
    {
    RemovePlayerFromVehicle(i);
    SendClientMessage(i,0xAA3333AA,"Das ist nicht dein Fahrzeug!");
    }
    }
    }
    }
    }
    return 1;
    }


    Die Scriptcars (unter OnGameModeInit):

    SpawnedCar[0] = AddStaticVehicle(403,3915.8657226563,-1998.6021728516,12.290036201477,0,-1,-1);
    SpawnedCar[1] = AddStaticVehicle(403,3921.2583007813,-1998.5010986328,12.290036201477,0,-1,-1);


    edit: fehler

    Ungetestet!


    forward GMXTimer(); // ganz oben
    new Count;


    if (strcmp("/GMX", cmdtext, true, 10) == 0) // unter OnPlayerCommandText
    {
    Count = 10;
    GameTextForPlayer(playerid,"Restart in:10",1000,3);
    SetTimer("GMXTimer",1000,0);
    return 1;
    }


    public GMXTimer()//außerhalb eines Publics
    {
    new string[256];
    if(Count != 0)
    {
    format(string, sizeof(string), "Restart in: %d",Count);
    SetTimer("GMXTimer",1000,0);
    Count -= 1;
    }
    else
    {
    format(string, sizeof(string), "Restart!",Count);
    SendRconCommand("GMX");
    }
    GameTextForPlayer(playerid,string,1000,3);
    return 1;
    }


    //edit: Fehler!

    Liebe Community,


    ich habe eine textdatei mit dem text:


    Zitat

    AddStaticVehicle(411,870.289184,-1658.009033,13.430334,2.201703,0,0);


    die textdatei befindet sich in: \scriptfiles\Firmen


    jetzt wollte ich fragen, ob jemand mir zeigen kann, wie ich das Fahrzeug aus der Datei spawnen lassen kann ;)


    thx im voraus

    ich bins mal wieder :D


    habe ebend einen befehl mit einem String geschrieben:


    oben:

    new BusBusVerkauft = 0;
    new BusOwner[256];


    Der Befehl:
    if (strcmp("/SellBus", cmdtext, true, 10) == 0)
    {
    new string[256];
    if(BusBusVerkauft == 0)
    {
    new pname[256];
    GetPlayerName(playerid,"pname",sizeof(pname));
    BusBusVerkauft = 1;
    BusOwner = pname;
    format(string,sizeof(string),"%s hat ein Business gekauft!", pname);
    SendClientMessageToAll(0xFFFFFFFF,string);
    }
    else if(BusBusVerkauft == 1)
    {
    BusBusVerkauft = 0;
    }
    return 1;
    }


    wenn ich mich mit meinem Nickname: manumeyer einlogge und den befehl eingebe, steht anstatt:

    Zitat

    manumeyerhat ein Business gekauft!


    nur

    Zitat

    yer


    ... woran kann dass liegen?


    /edit:
    Rechtschreibfehler ;)

    @Firefan


    ... kannst du mir verzeihen?


    deine schleife geht doch xD
    habe nur ausversehen das return 1; von Megabyte übernommen ... :S


    (Das kommt wenn man nich richtig hinschaut)


    MFG.


    manu

    Hi leute...
    ich wollte gerne unter OnGameModeInit eine Fahrzeuggruppe machen die Arbeit heißt.


    wenn ich jetzt z.B. folgendes unter OnGameModeInit schreibe:



    Arbeit = AddStaticVehicle(515,1278,-1807.5,14.4053,180,1,1), // LKW1
    AddStaticVehicle(515,1273,-1807.5,14.4053,180,1,1); // LKW2


    und in einem Timer bei OnGameModeInit erstelle:


    SetTimerEx("labelTimer",50000,true,"i");


    und dann folgendes erstelle:


    public labelTimer()
    {
    DestroyVehicle(Arbeit);
    return 1;
    }


    Löscht er nur den 1. LKW...


    Meine Frage:


    wie kann ich es machen dass er beide löscht

    Hey ho leute...


    Ich bins ma wieder und nerve euch mit irgentwelchen sachen.


    Mein Problem heute: Wenn ich farben im Script (für Texte) erstelle, kommen andere Farben raus.



    in diesem Beispiel kommt bei farbe


    0xFFFFFF


    eine Hellblaue Farbe raus...


    z.B. bei:
    (rot)
    0xFF0000


    bekomme ich Grün Raus...



    woran kann das liegen?

    habe es jeztz mal auf ne umständlige variante versucht...


    Schritt 1:


    zufallszahl 1-3


    Schritt 2:


    es wird vergichen
    if (Zahl == 1)
    {
    (Checkpoint erstellen)
    (Text ausgeben)
    }
    else if (Zahl == 2)
    {
    (Checkpoint erstellen)
    (Text ausgeben)
    }
    ....


    Wer genauere Daten haben will, kann mir ne PM mail schreiben ;)


    Mfg,


    Manumeyer