Beiträge von Kaliber

    Also das ab 16 Spieler die Hälfte "Random" wird


    Ja...das ändert das ganze Prinzip meinste nicht :wacko:


    Dann kannst du das nicht so machen, mit einer Funktion wo ich dir Werte zurück gebe...das wäre dann irgendwann bei 200 Spielern lächerlich :D


    Sprich, du musst das in der Schleife selbst deinen Code verarbeiten.


    Die Frage ist jetzt nur, was genau willst du denn machen, wenn du eine random Spielerid hast...zeig mal deinen Code...und kommentier den mal bitte!


    mfg. :thumbup:

    Naja, bei deinem Code versteh ich beim ersten hingucken nur Bahnhof o.o


    Schau dir einfach nur an, wo Role in dem Code steht...


    Dann siehst du ja, wie ich playerid nutze..bzw was du dafür einsetzen musst...


    Das kannst du jetzt für dich einsetzen...


    oder willst du lieber so eine Funktion:



    //Nutzung:
    new a,b;
    GetRandomPlayer(a,b);
    //in a und b steht dann die playerid von einem random Spieler!
    //Wenn 2 Leute online sind, gibt es nur ein Ergebnis und das steht in a
    //Sobald du aber 2 Ergebnisse haben willst, steht es in a und b
    //Wenn nur 1 Ergebnis da ist, ist b = 0



    stock GetRandomPlayer(&first, &sec) {
    for(new i,list[MAX_PLAYERS],idx; i<MAX_PLAYERS; i++) {
    if(IsPlayerConnected(i)) list[idx] = i,idx++;
    if(i == MAX_PLAYERS-1) {
    if(idx < 2) break;
    else if(idx == 2) return first = list[random(idx)],0;
    else {
    first = list[random(idx)];
    for(;;) {
    sec = list[random(idx)];
    if(first != sec) return 0;
    }
    }
    }
    }
    return 0;
    }


    Vielleicht hilft dir das ja ^^


    mfg. :thumbup:

    vielleicht kann ja wer da irgendwas verbessern


    Abgesehen von der AudioStream Funktion, stimmt die Grundlage für diese if-Abfrage nicht :wacko:


    Lern doch mal die Basics, dass man bei Pawn (normalerweise) Semikolons setzt..und bei if-Abfragen für mehrere Zeilen geschweifte Klammern nutzt :rolleyes:


    if((x > -992.5172 && x < 4000.0000) && (y < 528.0000 && y > -4000.0000)) {
    PlayAudioStreamForPlayer(payerid,"http://somafm.com/tags.pls");
    SendClientMessageToAll(HELLROT,"Es wurde ein Feuer in Los Santos gemeldet!");
    SendClientMessageToAll(-1,"{2980b9}=========={d04133}Feueralarm in Los Santos{2980b9}==========");
    }


    mfg. :rolleyes:

    Sollten allerdings 6 Spieler online sein, soll auch 2 dieser 6 eine Variable zugewiesen werden.


    Schau dir meine Funktion doch an...das ist schon impliziert.


    Kannst du vielleicht auch was zu deinem Code schreiben...ich weiß nicht so recht, was du jetzt von mir willst, was ich mit deinem Code soll?!


    mfg. :rolleyes:

    Hier eine Möglichkeit:


    //Oben im Script:
    new Role[MAX_PLAYERS];


    //Und dann diese Funktion:
    for(new i,list[MAX_PLAYERS],idx; i<MAX_PLAYERS; i++) {
    if(IsPlayerConnected(i)) list[idx] = i,idx++;
    if(i == MAX_PLAYERS-1) {
    if(idx < 2) break;
    else if(idx == 2) Role[random(idx)] = 1;
    else {
    new tmp = random(idx),tmp2;
    Role[tmp] = 1;
    for(;;) {
    tmp2 = random(idx);
    if(tmp != tmp2) break;
    }
    Role[tmp2] = 1;
    }
    }
    }


    Dann hast du Role genauso wie du es wolltest ;)


    mfg. :thumbup:

    Ich gebe dir mal ein Beispiel:


    //Unter OnPlayerCommandText
    new string[64],oldvalue;
    //oldvalue erstmal halt mit nem SELECT Statement herausfinden von dem Befehl (auch hier filter(cmdtext) nutzen
    format(string,sizeof string,"UPDATE table_name SET counter=%d WHERE cmd='%s';",oldvalue,filter(cmdtext)); //Halt hier ein update statement


    //Und die filter Funktion (returnt nur den Befehl-Namen mit)
    stock filter(const cmd[]) {
    new buffer[32];
    return strmid(buffer,cmd,1,strfind(cmd," "),sizeof buffer),buffer; //Mach aus der 1 eine 0 wenn du einen / davor haben willst
    }


    Hoffe das meintest du...ist nicht sehr gut formuliert was du eigentlich willst, aber ich hoffe ich konnte helfen ^^


    mfg. :thumbup:

    zu:


    Quatsch :wacko:


    Weißt du eigentlich was das macht, das sorgt nur dafür, dass da z.B. 02:xx steht..also eine null vor der Zahl..bei dir jetzt eben nicht mehr :pinch:
    Zudem kannst du nicht einfach die %s stehen lassen...wenn du alles andere weg gemacht hast! :wacko:


    Wenn du es elegant lösen willst, mach es so:


    getdate(year, month, day),gettime(hour, minute, second);
    format(string, sizeof string, "%02d/%02d/%d", day, month, year);
    TextDrawSetString(Date, string);
    format(string, sizeof string, "%02d:%02d:%02d", hour, minute, second);
    TextDrawSetString(Time, string);


    mfg. :rolleyes:

    Die Autos haben immer noch die "XY746373" Nummernschilder.


    Mach es mal so:


    for(new i; i<sizeof lvpd; i++) SetVehicleNumberPlate(lvpd[i], "LVPD");
    for(new i; i<sizeof lspd; i++) SetVehicleNumberPlate(lspd[i], "LSPD");
    for(new i; i<sizeof sfpd; i++) SetVehicleNumberPlate(sfpd[i], "SFPD");
    for(new i; i<sizeof medics; i++) SetVehicleNumberPlate(medics[i], "Sanitäter");


    mfg. :thumbup: