[SAMMELTHREAD] Kleine Scripting Fragen

Dein Problem konnte durch einen User gelöst werden? Bedank dich bei ihm indem du seinen Beitrag als Hilfreich markierst sowie einen Daumen oben dalässt
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
  • Du musst die pID aber ja auch von irgendwo hernehmen, sonst hat sie den Wert 0


    Ich kann die Antwort leider etwas weniger verfolgen. :P
    Erklär es mir mal per // Hinter den einzelnen Befehlen, das mit den Sonst hat sie den Wert 0 versteh ich auch nicht, ich hab sie doch deklariert?


    lg :thumbup:

    RTL - Das N steht für Niveau!
    MfG,
    StreetS


    Jegliche Freundesanfragen, die für mich keinen Sinn ergeben, werden professionell Ignoriert. (Gleiche mit Skype!)
    Wer es nicht kapiert wird in Breadfish & Skype blockiert.


    - Stolzer PAWN Scripter der Klasse Beherrscht

  • Nabend...
    ich möchte gern das wenn man Admin 1 ist, nur ein paar bestimmte Zeilen bei /ahelp angezeigt werden. Es können dann auch mehrere if's sein.


    if(strcmp(cmdtext, "/ahelp", true) == 0)
    {
    if(IstSpielerEinAdmin(playerid,1))
    {
    SendClientMessage(playerid,ROT,"----------------------------------------------------------------------------------------------------------------");
    SendClientMessage(playerid,ROT,"• Alle gängigen Adminbefehle sind hier aufgelistet!");
    SendClientMessage(playerid,GREY,"STUFE 1: /kick /spawn");
    SendClientMessage(playerid,GREY,"Goto: /goto");
    SendClientMessage(playerid,GREY,"STUFE 2: /o (/ooc)");
    SendClientMessage(playerid,GREY,"STUFE 3: /gotop /sethp /setarmour");
    SendClientMessage(playerid,GREY,"STUFE 4: /ban /makeleader /setskin");
    SendClientMessage(playerid,GREY,"STUFE 5: /gmx /clear");
    SendClientMessage(playerid,ROT,"----------------------------------------------------------------------------------------------------------------");
    }
    if(IstSpielerEinAdmin(playerid,5))
    {
    SCM(playerid,ROT,"BLABLA");
    }
    return 1;
    }
    So sieht es momentan aus, aber wenn man Admin5 sein soll, soll nur das von Admin 5 zugewiesene angezeigt werden, jedoch wird auch das von Admin 1 angezeigt. Das ist nur ein Beispiel. :I
    Help me. :love:

    [tabmenu][tab=Signatur,'http://bit.ly/1i4RY3v']

    Wie poste ich richtig?
    Nachdem du Google, die FAQ und die Suchfunktion erfolgreich ignoriert hast, erstellst du 2 bis 5 neue Themen in den falschen Unterforen mit lustigem Titel,
    zu vielen Ausrufezeichen und undeutlichem Text, unter dem sich jeder etwas anders vorstellen kann.



    Mr.Dubstep | GFX | Scripting | Hackerplace
    If Mr.DubStep don't have it, you don't need it.

    [tab=Spieler bei,'http://bit.ly/1db2jaf'][subtab=Hackerplace,'http://bit.ly/1bswN2T']


    Welch wunderschöner Hack ist heute vollzogen worden, könntest Du mir es denn sagen? Ein wunderschönes Browsergame, auch für Kleinigkeiten unterwegs. Erschaffe deinen eigenen Computer, nutze ihn um anderen das Geld zu rauben, schließe dich einem Clan an oder gründe selbst einen. Bleibe allein oder mit vielen Freunden.


  • Ja, du hast sie deklariert, also hat sie standardmäßig den Wert 0,
    So würde das Ganze nur bei ID 0 klappen, weil du den Wert ja nirgendwo verändert.
    Alternativ könntest du eine Schleife durchlaufen lassen, die überprüft ob sich der Spieler in der nähe befindet und falls ja soll er in das Haus teleportiert werden.
    Hier ein kleines Beispiel, damit du es besser verstehst:



    cmd:enter(playerid,params[])
    {
    for(new haus=1;haus<MAX_HAUS;haus++)
    {
    if(IsPlayerInRangeOfPoint(playerid,5,HausInfo[haus][haus_x],HausInfo[haus][haus_y],HausInfo[haus][haus_z]))
    {
    new name[MAX_PLAYER_NAME], Float:x,Float:y,Float:z;
    GetPlayerName(playerid,name,sizeof name);
    GetPlayerPos(playerid,x,y,z);

    if(strcmp(HausInfo[haus][haus_besitzer],name,false) == 0)
    . {


    for(new i = 0; i < GetMaxPlayers(); i++)
    {
    if(IsPlayerConnected(i))
    {
    if(IsPlayerInRangeOfPoint(i, 5.0, x, y, z)) // wenn der Spieler in der nähe von dem Besitzer ist
    {
    // Spieler in das Haus mitteleporteren
    }
    }
    }


    //REST



    Sry das es so schlecht eingerückt ist, aber hab es nicht anders über das Forum hinbekommen.

  • Kurze frage
    wie kann ich bei einen format sprich so:

    format(blabla,"Hi %s hi %s",xxx,xxx);

    ein \n machen?
    sprich das alles untereinander steht?
    Ich komm da gerade nicht wirklich drauf


  • Einfach:
    format(blabla,"Hi %s\nhi %s",xxx,xxx);

    [tabmenu][tab=Signatur,'http://bit.ly/1i4RY3v']

    Wie poste ich richtig?
    Nachdem du Google, die FAQ und die Suchfunktion erfolgreich ignoriert hast, erstellst du 2 bis 5 neue Themen in den falschen Unterforen mit lustigem Titel,
    zu vielen Ausrufezeichen und undeutlichem Text, unter dem sich jeder etwas anders vorstellen kann.



    Mr.Dubstep | GFX | Scripting | Hackerplace
    If Mr.DubStep don't have it, you don't need it.

    [tab=Spieler bei,'http://bit.ly/1db2jaf'][subtab=Hackerplace,'http://bit.ly/1bswN2T']


    Welch wunderschöner Hack ist heute vollzogen worden, könntest Du mir es denn sagen? Ein wunderschönes Browsergame, auch für Kleinigkeiten unterwegs. Erschaffe deinen eigenen Computer, nutze ihn um anderen das Geld zu rauben, schließe dich einem Clan an oder gründe selbst einen. Bleibe allein oder mit vielen Freunden.

  • Hi,
    Wie kann ich die farbe in einem TextDraw ändern
    also Blau..TEXT..Weiß..TEXT
    so geht es nicht
    TS3Anzeige = TextDrawCreate(10.000000,431.000000,"{#0005FF}Teamspeak:{#FFFFFF} folgt");

    ↓Das ist der Youtube Channel von mir und meinen Kollegen↓



    Sa-Mp Server [Im Aufbau/Beta]
    128.65.216.200:7777

  • Einfach:
    format(blabla,"Hi %s\nhi %s",xxx,xxx);


    hab ich schon dann trägt er mit das genau so ein wie es da steht es soll ja so sein


    Hallo XXXX
    Hallo YYYY

  • Echt?
    Mit \n macht er eigentlich einen Zeilenumbruch. :o

    [tabmenu][tab=Signatur,'http://bit.ly/1i4RY3v']

    Wie poste ich richtig?
    Nachdem du Google, die FAQ und die Suchfunktion erfolgreich ignoriert hast, erstellst du 2 bis 5 neue Themen in den falschen Unterforen mit lustigem Titel,
    zu vielen Ausrufezeichen und undeutlichem Text, unter dem sich jeder etwas anders vorstellen kann.



    Mr.Dubstep | GFX | Scripting | Hackerplace
    If Mr.DubStep don't have it, you don't need it.

    [tab=Spieler bei,'http://bit.ly/1db2jaf'][subtab=Hackerplace,'http://bit.ly/1bswN2T']


    Welch wunderschöner Hack ist heute vollzogen worden, könntest Du mir es denn sagen? Ein wunderschönes Browsergame, auch für Kleinigkeiten unterwegs. Erschaffe deinen eigenen Computer, nutze ihn um anderen das Geld zu rauben, schließe dich einem Clan an oder gründe selbst einen. Bleibe allein oder mit vielen Freunden.


  • Diesen Spruch hättest du dir sowas von Sparen können
    Lesen auch mal ne seite zurück

  • Nein ich will nen Zeilenumbruch in einer datei geben
    \n ist da nutzlos

  • Mostey
    Du kannst im OnPlayerEnterVehicle Calllback kein RemovePlayerFromVehicle bzw IsPlayerInVehicle verwenden, weil der Spieler ja noch nicht im Fahrzeug drinnen ist wenn das Callback aufgerufen wird.
    Setzt das unter OnPlayerStateChange rein und überprüfe ob newstate == PLAYER_STATE_DRIVER ist, dann sollte das klappen.


    Danke, funktioniert nun!


    Nun habe ich mal einen Minijob erstellt bei dem Checkpoints abgefahren werden müssen. Immer wenn er in einen Checkpoint reinfährt soll er für 2 Sekunden gefreezed werden und einen Zufallsbetrag zwischen 40-80$ bekommen.


    Das ganze funktioniert mit Timer wunderbar bei mir, die anderen (Tester) werden aber nur gefreezed und danach nicht mehr entfreezed. Hab keine Ahnung wie ich das beheben soll.
    public vom Timer
    public lieferantbeladen(playerid)
    {
    TogglePlayerControllable(playerid,1);
    return 1;
    }


    public OnPlayerEnterCheckpoint
    if(Checkpoint[playerid] == 1) //get punkt arrive und danach cp1
    {
    if(GetPlayerVehicleID(playerid) < 6)
    {
    SendClientMessage(playerid,gelb,"Paketdienst HQ: Dein Lieferwagen wird nun mit Paketen beladen!");
    TogglePlayerControllable(playerid,0);
    SetTimer("lieferantbeladen",5000,true);
    DisablePlayerCheckpoint(playerid);
    SetPlayerCheckpoint(playerid,-2047.5917,-97.9564,35.1641,4);
    GameTextForPlayer(playerid,"~y~Fahrschule",3000,6);
    Checkpoint[playerid] = 2;
    }
    else
    {
    SendClientMessage(playerid,rot,"Du brauchst einen Lieferwagen!");
    }
    }


    für den Zufallsbetrag habe ich jetzt eine Variable erstellt:

    new lohn = random(80);


    Dann bekommt er aber einen Zufallsbetrag zwischen 0 und 80$ was ich eigentlich nicht möchte. Wie gebe ich denn eine bestimmte "Spanne" in einer Variable an?

  • Hi


    Du willst von 40 bis 80 ? Dann mach es besser so :



    new value = random(40);
    value += 40;


    Alternativ auch mit einer do while Schleife zu lösen, ist aber etwas übertrieben. Für 2 Sekunden Freezen brauchste:


    http://wiki.sa-mp.com/wiki/SetTimerEx


    Die Parameter kannste dann einfach umstellen auf id oder playerid, sollte aber klar sein. Für zum Freezen wie bereits verwendet:


    http://wiki.sa-mp.com/wiki/Function:TogglePlayerControllable


    Gruss Simon

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen