Beiträge von varrez

    Tag'chen, hab ein Problem, wenn ich Ingame bin und Fraktionswahl eingebe, passiert alles wie es soll, mir wird eine Liste angezeigt mit den verschiedenen auswählbaren Fraktionen, mit der Spieleanzahl davor, jedoch erhöhe ich jedesmal wenn ich in eine Fraktion gehe, die Spielerzahl. Die Spieleranzahl soll aber um 1 sinken, wenn ich das Team verlasse, ansonsten gehe ich bspw. zu Grove Street wo derzeit 0 Leute drin sind, wechsel dann die Fraktion, dann steht da Grove Street : 1 Spieler, und wenn ich zu Balls gewechselt bin, Ballas : 1 Spieler, wobei Grove eigentlich wieder auf null stehen müsste. Das ist mein Code:


    ocmd:fraktionswahl(playerid, params[])
    {
    new string[256];
    format(string,sizeof string,"%i Spieler = Cali Kartell\n%i Spieler = Yakuza\n%i Spieler = Ballas\n%i Spieler = Triaden\n%i Spieler = Vagos\n%i Spieler = Aztecas\n%i Spieler = Grove Street\n%i Spieler = Red Solderis\n%i Spieler = Zivilist",cali,yak,ballas,triaden,vagos,aztecas,grove,red,zivi);
    ShowPlayerDialog(playerid, DIALOG_FRAKTIONSWAHL, DIALOG_STYLE_LIST, "Gangfight - Fraktionswahl",string,"Wählen","Schließen");
    return 1;
    }


    if(dialogid == DIALOG_FRAKTIONSWAHL)
    {
    if(response == 0)
    {
    return 1;
    }
    if(response == 1)
    {
    if(listitem == 0)
    {
    Spieler[playerid][Member] = 1;
    SpawnPlayer(playerid);
    cali++;
    }
    if(listitem == 1)
    {
    Spieler[playerid][Member] = 2;
    SpawnPlayer(playerid);
    yak++;
    }
    if(listitem == 2)
    {
    Spieler[playerid][Member] = 3;
    SpawnPlayer(playerid);
    ballas++;
    }
    if(listitem == 3)
    {
    Spieler[playerid][Member] = 4;
    SpawnPlayer(playerid);
    triaden++;
    }
    if(listitem == 4)
    {
    Spieler[playerid][Member] = 5;
    SpawnPlayer(playerid);
    vagos++;
    }
    if(listitem == 5)
    {
    Spieler[playerid][Member] = 6;
    SpawnPlayer(playerid);
    aztecas++;
    }
    if(listitem == 6)
    {
    Spieler[playerid][Member] = 7;
    SpawnPlayer(playerid);
    grove++;
    }
    if(listitem == 7)
    {
    Spieler[playerid][Member] = 8;
    SpawnPlayer(playerid);
    red++;
    }
    if(listitem == 8)
    {
    Spieler[playerid][Member] = 0;
    SpawnPlayer(playerid);
    zivi++;
    }
    }
    }



    Mit welchem Code stell ich es am besten an, damit die Spielerzahl um eins sinkt, wenn ich das Team verlassen? Würde mich über hilfe freuen :)


    LG

    Was passiert denn Ingame? Kommt da die Nachricht das du die Komplikationen lösen konntest, oder das du es nicht konntest? Vielleicht bist du Ingame einfach nicht im Radius. Stell mal von 5.0 auf 10.0 oder 15.0 und guck mal

    Mach einen Stock wo du alles auf 0 Setzt


    stock ReturnStats(playerid)
    {
    Spieler[playerid][Admin] = 0;
    Spieler[playerid][Leader] = 0; //etc.
    return 1;
    }


    dann mach bei OnPlayerConnect


    ReturnStats(playerid);


    und lass die Spieler normal nach dem Login laden und Speichern


    //Kenne das Script nicht und würde es so lösen

    Gehts vllt so?


    public StatsSystem(playerid)
    {
    new frakname[28];
    new var = pInfo[playerid][team];
    switch(var)
    {
    case 0:{frakname = "Obdachlos";}
    case 1:{frakname = "Los Santos Police Department";}
    }
    new String[128], Name[MAX_PLAYER_NAME], Geld = GetPlayerMoney(playerid), Score = GetPlayerScore(playerid);
    GetPlayerName(playerid,Name,sizeof Name);
    format(String, sizeof(String), "Spielername:\t\t\t%s\nBargeld:\t\t\t%d\nLevel:\t\t\t\t%d\nTeam:\t\t\t\t%s\nLeader:\t\t\t\t%d\nRang:\t\t\t\t%d\nSpielzeit:\t\t\t(%dmin)(%dh)(%dTage)", Name, Geld, Score, frakname,pInfo[playerid][leader],pInfo[playerid][rang],pInfo[playerid][spielzeitminuten],pInfo[playerid][spielzeitstunden],pInfo[playerid][spielzeittage]);
    ShowPlayerDialog(playerid, DIALOG_STATS, DIALOG_STYLE_MSGBOX, "Statistiken", String, "OK", "");
    return 1;
    }

    Wir wissen das Henner gerne Foren aufbauen möchte, was es ist, oder auf was es bezogen ist, ist ja scheiss egal, aber er hat neben seiner Arbeit und seiner Famile ein Hobby und das steht wohl jedem Menschen zu. Es könnte wirklich sein 1000. Forum sein, naund? auch wenn seine Foren nicht geglückt sind, kann man trotzdem mit anderen Ideen weiter machen, das ein oder andere wird sogar vielleicht etwas und wenn nicht, wieder drauf geschissen. Free Design? drauf geschissen, noch nicht fertig? drauf geschissen, euch gefällts nicht? scheißt drauf, klar könnt ihr kritisieren, aber ihr wollt ihn ja teilweiße schon fertig machen.

    Wenn du einen SpielerName Stock erstellst, ersparst du dir die Abfragen der Namen (bei diesem Befehl schon mal 2 Zeilen und 2 Vari.). Außerdem kannst du "copmsg" weglassen und stattdessen den bereits vorhandenen String nutzen (erst ein einmal den string formatieren, dann senden, dann nochmal formatieren und wieder senden, nur an playerid und pID (playerid des 2. users)) Dann könnte das ganze schonmal so aussehen (müsste so glaub auch funzen):


    ocmd:handschellen(playerid,params[]){
    new string[128], pID;
    if(sscanf(params,"u", pID))return SendClientMessage(playerid,Gelb,"Nutzung: /handschellen [ID]!");
    if(!IstSpielerInFraktion(playerid,4)) return SendClientMessage(playerid,Rot,"Du bist kein Cop!");
    if(!IsPlayerInAnyVehicle(pID)) return SendClientMessage(playerid,Rot,"Diese Person ist nicht in deinem Fahrzeug!");
    if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,Rot,"Du bist in keinem Fahrzeug!");
    format(string,sizeof(string),"%s hat dir Handschellen angelegt!", SpielerName(playerid));
    SendClientMessage(pID,Hellblau,string);
    format(string,sizeof(string),"Du hast %s Handschellen angelegt!", SpielerName(pID));
    SendClientMessage(playerid,Hellblau,string);
    TogglePlayerControllable(pID,0);
    return 1;
    }


    und hier den SpielerName Stock: (einfach iwo ins Script (ganz unten vllt))
    stock SpielerName(playerid){
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    return name;
    }


    Gruß

    Vllt mit einem Befehl? /nachricht [id] [text] ? so vielleicht?


    ocmd:nachricht(playerid, params[]){
    new pID, nachricht[128], string[128];
    if(sscanf(params, "us[64]")) return SendClientMessage(playerid, FARBE, "Benutze: /nachricht [id/spieler] [Nachricht]");
    format(string, sizeof(string), "%s schreibt: %s", SpielerName(playerid), nachricht);
    SendClientMessage(pID, FARBE, string);
    format(string, sizeof(string), "%s schreibt: %s", SpielerName(pID), nachricht);
    SendClientMessage(pllayerid, FARBE, string);
    return 1;
    }


    ungetestet, hier im Quellcode geschrieben

    Guten Morgen, mein Spiel Crasht als und ich weiß nicht, woran das liegen kann/sollte. Habe GTA Neuinstalliert + SA-MP. Ich connecte und direkt wird der Chat mit Errors voll gespamt und ich bekomme eine exe/Spiel beendet sich. Crash Meldung:


    Du musst nicht persönlich mit ihr reden, Liebesbriefe kommen mit Sicherheit nicht "Stalker"-mäßig rüber und nicht drauf stehen, wird sie auch nicht. Haben alle keine romantische Ader und keine Ahnung hier. Wichtig ist nur das du deinen Gefühlen freien lauf lässt und diese versucht in Worte zu fassen.