Beiträge von Kaliber

    if(!IsPlayerInRangeOfPoint(playerid, 20.0, X, Y, Z))//20.0 = Radius von dem Gebiet | X,Y,Z durch koordinaten von dem Gebiet ersetzen
    {
    PlayAudioStreamForPlayer(playerid, "http://somafm.com/tags.pls", X, Y, Z,40.0, 1);//1 leiser oder gangz weg/aus
    return 1;
    }


    Wenn, dann mich auch bitte richtig verbessern:


    if(IsPlayerInRangeOfPoint(playerid, 40.0, X, Y, Z))//20.0 = Radius von dem Gebiet | X,Y,Z durch koordinaten von dem Gebiet ersetzen
    {
    PlayAudioStreamForPlayer(playerid, "http://somafm.com/tags.pls", X, Y, Z, 40.0, 1);//1 leiser oder gangz weg/aus
    return 1;
    }


    mfg. :thumbup:

    Leute, lest doch die seite in der wiki durch.....ihr brauch IsPlayerInRangeOfPoint gar nicht...


    Wenn mich nicht alles täuscht braucht man es doch, da die Musik zwar wenn man mehr Parameter in die Funktion baut an dieser bestimmten Stelle/Zone anfängt aber nicht wieder von alleine aufhört ;)


    mfg. :thumbup:

    Ups...ja mein Fehler, schreibe es so:


    if(dialogid==DIALOG_PINBEANTRAGEN)
    {
    if(!response) return SendClientMessage(playerid,Hellblau,"Dein Konto wurde nicht erstellt, da du den Vorgang abgebrochen hast.");
    if(response)
    {
    if(strlen(inputtext) != 4 || !IsNumeric(inputtext)) //Error Zeile
    {
    SendClientMessage(playerid,Gelb,"Bitte gebe eine PIN Nummer ein.");
    ShowPlayerDialog(playerid,DIALOG_PINBEANTRAGEN,DIALOG_STYLE_INPUT,"Volksbank Konto beantragen","Willkommen bei der Volksbank Los Santos.\nIhre Daten sind im System nicht gespeichert, also wollen Sie sich ein Konto beantragen.\nBitte geben Sie hierzu einfach ihren gewünschten PIN in das Fenster unten ein.\nSollten Sie ihren PIN verlieren, schauen Sie unter /stats nach.","Fortsetzen","Abbrechen");
    }
    else
    {
    SetPVarInt(playerid,"BankPIN",strval(inputtext));
    }
    }
    }

    Das könnte man zum Beispiel so machen:


    //Oben im Script
    new bool:InZone[MAX_PLAYERS];


    //Bei OnPlayerConnect
    SetTimerEx("Audio_Timer", 1000, 1, "i", playerid);


    //Der Callback
    forward Audio_Timer(playerid);
    public Audio_Timer(playerid)
    {
    if(!IsPlayerInRangeOfPoint(playerid, 20.0, X, Y, Z))//20.0 = Radius von dem Gebiet | X,Y,Z durch koordinaten von dem Gebiet ersetzen
    {
    if(InZone[playerid] == false) return 1;
    InZone[playerid] = false;
    StopAudioStreamForPlayer(playerid);
    return 1;
    }
    if(InZone[playerid] == true) return 1;
    PlayAudioStreamForPlayer(playerid, "http://XXX.de/fetteBeats.mp3");
    InZone[playerid] = true;
    return 1;
    }


    mfg. :thumbup:

    Mhm, okay, dann mache die if-Abfrage mal so:


    if(strlen(inputtext) != 4)


    Wenn man halt Buchstaben eingibt, wird das auch in eine Zahl umgewandelt, aber man ist dann selber dran Schuld :whistling:


    mfg. :thumbup:

    Hmmm Irgendwelche Errors Oder Klappt es einfach nicht ? Ich kenn jemand der das bestimmt gleich weis Kaliber: Hast du zufällig ne idee ?


    Sehr lustig :whistling:


    Schreibe den Code einfach mal so:


    if(dialogid==DIALOG_PINBEANTRAGEN)
    {
    if(!response) return SendClientMessage(playerid,Hellblau,"Dein Konto wurde nicht erstellt, da du den Vorgang abgebrochen hast.");
    if(response)
    {
    if(strlen(inputtext) != 4 || !IsNumeric(inputtext))
    {
    SendClientMessage(playerid,Gelb,"Bitte gebe eine PIN Nummer ein.");
    ShowPlayerDialog(playerid,DIALOG_PINBEANTRAGEN,DIALOG_STYLE_INPUT,"Volksbank Konto beantragen","Willkommen bei der Volksbank Los Santos.\nIhre Daten sind im System nicht gespeichert, also wollen Sie sich ein Konto beantragen.\nBitte geben Sie hierzu einfach ihren gewünschten PIN in das Fenster unten ein.\nSollten Sie ihren PIN verlieren, schauen Sie unter /stats nach.","Fortsetzen","Abbrechen");
    }
    else
    {
    SetPVarInt(playerid,"BankPIN",strval(inputtext));
    }
    }
    }


    Falls du einen Error bekommen solltest der so aussieht:


    Code
    undefined symbol 'IsNumeric'


    Packe das in dein Script:


    stock IsNumeric(const string[])
    {
    for (new i = 0, j = strlen(string); i < j; i++)
    {
    if (string[i] > '9' || string[i] < '0') return -1;
    }
    return 0;
    }


    mfg. :thumbup:

    Schreibe das alles mal so:


    public ServerMinute(playerid)
    {
    for(new i; i<MAX_PLAYERS; i++)
    {
    if(!IsPlayerConnected(i)) continue;
    if(GetPVarInt(i,"Mutet") != 1) continue;
    new time[128];
    GetPVarString(i,"MuteTime", time, 128);
    new zt = strval(time)-1;
    format(time, sizeof time, "%d", zt);
    SetPVarString(i,"MuteTime", time);
    if(zt == 0)
    {
    SetPVarInt(i,"Mutet",0);
    SendClientMessage(playerid, COLOR_GREEN, "Du bist nun nicht mehr gemutet.");
    }
    }
    return 1;
    }


    Warum du oben den Parameter playerid übergibst und trotzdem eine for-Schleife nutzt, die alle Spieler durchläuft macht zwar überhaupt keinen Sinn und ist total nutzlos+Ressourcen verschwendend, aber ich habe mal deinen Code verbessert ;)


    mfg. :thumbup:

    Ich finde das Script nicht gut, weil...


    • Man weiß nicht wie man den Motor startet...
    • Hydra, Panzer und ein Infernus stehen fast am Noob spawn und man kann sie fahren :huh:
    • Kein Anti-Cheat
    • Eine Hälfte von einer Brücke Fehlt und viele Cars stehen wild ums SFPD 8|
    • Der Tacho funktioniert nicht...
    • Allgemein die TextDraws sind zu fett...
    • Man macht irgentwie alles auf dem Server mit "Z" :huh:
    • Am Anfang leggt es extrem und manchmal wird man einfach gespwant...


    Nicht sehr viel...


    mfg. :thumbdown:

    Idee is schon gut
    nur das mit PVars ist für manchen wirklich ein Problem
    bau das doch für enums mal denn a is enum schneller als pvar und b nurzen die meisten enums


    Im Prinzip kann man ja ein enum nutzen, hier mal ein Beispiel:


    SetPVarInt(playerid, "Alter", PlayerInfo[playerid][pAge]);


    Aber ein PVar muss leider immer dabei sein, weil ich momentan den Wert der Variable noch nicht anders an den Include übergeben kann :S
    (Bin aber noch am Verbessern und vielleicht bekomme ich das mit dem amx-Scripting hin :D)


    mfg. :thumbup:


    //Edit:
    SSL

    Zitat

    Und damit es dann PHP-Like ist würde man für enums
    ScmEx(playerid,farbe,"Dein Name ist $PlayerInfo[Name] und du bist $PlayerInfo[Zahl] Jahre alt !");
    machen


    Das würde so nicht funktionieren, da ich nicht prüfen kann ob jetzt z.B. PlayerInfo[Name] ein String, ein Integer oder ein Float ist :S

    So kann man das machen:


    new Float: X, Float: Y, Float: Z;
    for(new v; v<MAX_VEHICLES; v++)
    {
    GetVehiclePos(v, X, Y, Z);
    if(!IsPlayerInRangeOfPoint(playerid, 5.0, X, Y, Z)) continue;
    //So wenn die Schleife bis hier hin kommt, dann ist v deine vehicleid ;)
    PutPlayerInVehicle(pID, v, 0);
    break;
    }


    mfg. :thumbup:

    Hat seine Gründe .. :D
    also ich weis das man das mit befehl machen kann wenn der connectet das black screen ist und dann da in der shoutbox steht tippe /join beispielsweise und dann connectet der auf denn anderen server..
    Aber ich wollte das mal fragen ob man es machen kann das er auch so auto weitergeleitet weden kann


    Poste mal bitte diesen Befehl ;)


    mfg. :thumbup: