Tazer, Fraktion Cars, Telefon & /sup

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
  • Boah langsam komm ich mir echt blöd vor das forum hier mit meinen fragen "zuzuspammen" :P


    Naja aber wenn ich was wissen mus....



    Also ganz einfach 4 Fragen:


    1. Tazer.
    Es gab doch mal in der 0.3a damals schon einen ganz einfachen script befehl um zu messen wie weit ziel person weg ist. sowas wie If(RangePlayerToPlayer) oder so was.... den bräuchte ich für den tazer um die entfernung zu messen^^
    (logisch gehts auch mit is player in range of point und getplayerpos aber ich bin sicher es gab da nen ganz unkomplizierten befehl...)


    2. Fraktions Autos.
    Ich brauche ein System damit nicht leute von z.B. der Grove in Police Autos einsteigen können. Und dafür brauchts doch IsPassenger oder? also damit nicht z.b. verbrecher in autos der polizei einfach rausgeschmissen werden wenn sie auf den beifahrersitz gezogen werden... meine frage: Ist IsPassenger wirklich erforderlich oder wird das automatisch so geregelt Der Code Sollte nämlich so sein:


    if(IsPassenger kp ...)
    RemovePlayerFromVehicle(playerid);


    natürlich auch noch später mit if fraktion zeug blabla... also frage 2:
    Ist IsPassenger für ein fraktions car system erforderlich und wenn ja wie setzt man es ein?


    3. Telefon System.
    Das wollte ich auch einführen problem hierbei: Wie schaffe ich es wenn der Spieler in einem Telefon Status ist (z.b. telefon[playerid] > 0 oder so das schaff ich ja noch) jedes mal wenn er redet das 1. in dem text für spieler in seiner nähe (Telefon):Text kommt und 2. der andere spieler das empfängt.


    4. Das wichtigste kommt zum schluss... der /sup befehl. problem:
    wenn ich es über dcmd "s" string
    mache, dann kann man nur 1 wort schicken sonst geht es nicht. das ist auch mein problem beim tel. system aber ich will es ohne gui machen... wie also schaffe ich es das der string auch leerzeichen enthalten kann?


    wow ist das lang geworden :wacko: bitte trotzdem um schnelle antwort

  • Ich mach mal den Anfang:


    Zum ersten: Du willst also wissen, ob 2 Personen eine gewisse Distanz voneinander entfernt sind oder weiter weg? Dann ist GetPlayerPos in Verbindung mit IsPlayerInRangeOfPoint wirklich das einfachste und schnellste, du musst ja nur die Position des Ziels auslesen und die SpielerID des anderen Spielers kennen.


    Zum dritten: OnPlayerText ist hier dein Stichwort. Wenn der Spieler in diesem Telefonstatus ist, werden alle Nachrichten von ihm nur an Leute in 10m Entfernung versendet



    new Float:fx;
    new Float:fy;
    new Float:fz;
    GetPlayerPos(playerid,fx,fy,fz


    for (new i;i!=MAX_PLAYERS;i++)
    (
    if(IsPlayerInRangeOfPoint(i,10,fx,fy,fz)
    //Nachricht versenden...format etc
    }


    Danach musst du es noch an die Person, mit der er telefoniert versenden. Ich würd das so machen, dass du die telefon[playerid] Variable (erstmal in ne PVar umwandelst) so behandelst, dass die Variable gleich angibt, mit wem der Spieler telefoniert (mit welcher SpielerID). Dann hast du 2 Fliegen mit einer Klappe geschlagen. Wenn er mit niemandem telefoniert schreib ber -1 in die Variable und nicht 0. ;)

  • edit// nur mal so.... error bekomm ich jez nämlich



    Zitat

    E:\gtasaxD\gamemodes\newbsr.pwn(315) : error 036: empty statement


    in zeile


    if(IsPlayerInRangeOfPoint(i,10,fx,fy,fz));

    Einmal editiert, zuletzt von xeroxxx ()

  • ups X(



    //edit: also script is jez folgendes:


    if(tel[playerid] > -1)
    {
    new xyz[128], name[128], zyx, telchat[128];
    new Float:fy;
    new Float:fz;
    new Float:fx;
    telchat = text[128];
    GetPlayerPos(playerid,fx,fy,fz);
    GetPlayerName(playerid, name, sizeof(name));
    format(xyz, sizeof(xyz), "%s sagt(Telefon): %s", name, telchat[128]);
    zyx = tel[playerid];


    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if (IsPlayerConnected(i))
    {
    if(IsPlayerInRangeOfPoint(i,10,fx,fy,fz))
    {
    SendClientMessage(i, grau, xyz);
    }
    }
    }
    SendClientMessage(zyx, gelb, xyz);
    }


    unter on player text, cmds sind auch drin, gibt auch kein error aber beim anderen kommt nur an xxx sagt:


    ohne nachricht... help pls

    Einmal editiert, zuletzt von xeroxxx ()