/tor problem.. -.-

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
  • Moin,


    Da ich noch nicht mit sowas gearbeitet habe und ich keine passenen Tutorials gefunden habe, frage ich mal nach..


    Also:


    Ich will den befehl "/tor" für ALLE Tore haben.
    Soll halt nur aufgehen wenn man davor ist (IsPlayerInRangeOfPoint)
    und halt wenn er in der richtigen fraktion ist..


    Nur ich habe keine ahnung wie ich das mit allen toren mache..


    Kann mir einer helfen? :(

  • machst du ein Selfmade oder Editierst du ein Script?


    // nur wegen der Fraktion^^


    MFG Daniel

  • public OnPlayerCommandText(playerid, cmdtext[])
    {
    if (strcmp("/tor", cmdtext, true, 10) == 0)
    {
    new Fraktion[256]; //hier drin wird der beruf gespeichert
    new pname[MAX_PLAYERS],Spielerdatei[128];
    GetPlayerName(playerid,pname,sizeof pname);
    format(Spielerdatei,sizeof Spielerdatei,"%s.ini",pname);
    Fraktion = dini_Get(Spielerdatei, "Fraktion");//hier wird der der beruf in beruf gespeichert
    if(strcmp(Fraktion, "deinefraktion", false) == 0)//hier wird abgefragt ob der spieler die fratkion ist
    {
    if(IsPlayerInRangeOfPoint(playerid, 20, deinex,positiony, dertorez)// hier wird abgefragt ob der spieler der fraktion in der nähe ist (20m)
    {
    MoveObject(objectid, x, y, z, speed, rotationx, rotationy);// hier wird dein Tor bewegt
    }
    else
    {
    SendClientMessage(playerid, Farbe, "Du bist nicht in der nähe des Tores");
    }
    }
    else
    {
    SendClientMessage(playerid, Farbe, "Du bist kein Mitglied dieser Fraktion");
    }
    return 1;
    }
    return 0;
    }


    ungetestet auf die schnelle ... mfg hoffe das ist ein grundstein für dich ;)

  • if(strcmp(Fraktion, "deinefraktion", false) == 0)


    Das ist so nicht korrekt, muss so lauten:


    if(strcmp(Fraktion, "deinefraktion", true) == 0)


    mfg. :thumbup:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Ich empfähle dir ocmd zu nutzen ist sehr einfahr zu bedinen ^^.



    ich zeige es dir ma wie es bei mir aus sieht:



    ocmd:tor(playerid,params[])
    {
    if(isPlayerInFrakt(playerid,6)) // Deine Fraktions abfrage
    if(IsPlayerInRangeOfPoint(playerid,6.0,1014.29998779,-1541.30004883,15.30000019)) // wenn er in der nehe des Tores ist soll es nur runter/rauf gehen
    MoveObject(newstor,1014.29998779,-1541.30004883,15.30000019-10,8); // hier wird das Tor Bewegt Rauf
    else
    if(IsPlayerInRangeOfPoint(playerid,6.0,1014.29998779,-1541.30004883,15.30000019)) // auch hier wenn er in der nehe des tores ist..
    MoveObject(newstor,1014.29998779,-1541.30004883,15.30000019-10,8); // und hier gehts runter..
    }

  • if(strcmp(cmdtext,"/tor",true)==0)
    {
    if(SpielerInfo[playerid][Fraktion] == 1 && IsPlayerInRangeOfPoint(playerid,range,x,y,z))
    {
    //...
    //...
    }
    else if(SpielerInfo[playerid][Fraktion] == 2 && IsPlayerInRangeOfPoint(playerid,range,x,y,z))
    {
    //...
    //...
    }
    else SendClientMessage(playerid, FARBE," Du gehörst entweder keiner Fraktion an, oder du bist am falschen Tor! ");
    return 1;
    }


    Prinzip verstanden? ;)

    Let the party begin - turn all the lights on!



  • also bei meinem Befehl für einen beruf ... mit genau der selben abfrage habe ich es mit false .... und es funktioniert 1a o.O.....

  • das ist alles mit 1 tor ^^
    so habe ich das schonmal gemacht nur mit mehreren moveobjects aber dann war alles buggy..
    diese tuts wo man 1 tor öffnen kenne ich nur ich weis nicht wie man mehrere öffnet mit nur 1 befehl


    Beispiel:


    Das LSPD hat 2 Tore, mit 1 befehl (/tor) will ich das 1. öffnen (2. bleibt zu weil IsPlayerInRange und so), ich fahre durch, /tor um wieder zu zumachen, ab zum 2. Tor