Beiträge von carlos1710

    Hallo,
    ich versage schon seit tagen dabei, in einer Arry einen String zu speichern.
    So sieht die Arry aus:
    enum langeArrys
    {
    nummer[32]
    }


    new Schild[MAX_PLAYERS][2000][langeArrys];
    und so sollte der String gespeichert werden:
    for(new i=1;i<=2000,i++;)
    {
    format(datei,50,"car%d",i);
    format(Schild[playerid][i][nummer],32,dini_Get(accFormat,datei));
    time=i*0.05;
    format(datei,50,"%.2f Prozent Fertig",Float:time);
    printf("Schild: %s",Schild[playerid][i][nummer]);
    SendClientMessage(playerid,0xFFFFFFFF,datei);
    }
    Aber beim Laden wird immer eine 0 geprintet.
    Was mach ich falsch und wie definier ich die Arry ohne enum?

    Ja ambesten wenns wieder passirt filmst du das und zeigst es einem der sich auskennt.
    Dann Fehler analyse und beten.
    Manchmal geht mein Bildschirm einfach aus und wieder an(nicht sehr gut wenn man Armagetron Advanced zockt)
    Ich würde vorschlagen:
    -Pc mal absaugen und putzen(wenn staub in der steckdose ist kann das den Kontakt auch unterbrechen.)
    -Pc Formatiren.
    -Das ganze im richtigen Moment filmen und ein Fachmann fragen.
    -Pc mal ständig kühlen.

    Ich weis das der Befehl kürzer geht aber in langer form ist halt mein Programmierstil, ich habs so gelernt und finde es übersichtlicher.
    wiso U für user mit d gehts auch is ja beides ein intger oder?

    Probir mal so:
    if(strcmp(cmdtext, "/nagelband", true) == 0 || strcmp(cmdtext, "/nb", true) == 0)
    {
    if(!IsACop(playerid)){ return SendClientMessage(playerid, COLOR_GRAD1, "Du bist kein Cop!");}//Ich nahm an, dass das immer aufgerufen wird, da die abfrage in keiner Klammer war(Kann acuh völlifer quatsch sein was ich erzähl)
    if(PlayerInfo[playerid][pRank] < 3)
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Du musst mindestens Rang 3 haben, um diesen Befehl nutzen zu können!");
    return 1;
    }
    if(NagelBandErstellt[playerid] == 1)
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Du hast bereits ein Nagelband aufgestellt, bau sie erst wieder ab (/nbw)");
    return 1;
    }
    AddNagelBand(playerid);
    NagelBandErstellt[playerid] = 1;
    SendClientMessage(playerid, COLOR_LIGHTGREEN, "Nagelband aufgestellt (Abbauen mit /nbw).");
    return 1;
    }
    if(strcmp(cmdtext, "/nagelbandweg", true) == 0 || strcmp(cmdtext, "/nbw", true) == 0)
    {
    if(!IsACop(playerid)) {return SendClientMessage(playerid, COLOR_GRAD1, "Du bist kein Cop!");}//Selbe hier, wenns immernoch nicht geht, wars n versuch wert
    if(NagelBandErstellt[playerid] == 0)
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Du hast kein Nagelband aufgestellt!");
    return 1;
    }
    RemoveNagelBand(playerid);
    return 1;
    }
    if(strcmp(cmdtext, "/nagelbandwegall", true) == 0 || strcmp(cmdtext, "/nbwa", true) == 0)
    {
    if(!IsACop(playerid)) return SendClientMessage(playerid, COLOR_GRAD1, "Du bist kein Cop!");
    if(PlayerInfo[playerid][pRank] < 3)
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Du musst mindestens Rang 3 haben, um diesen Befehl nutzen zu können!");
    return 1;
    }
    SendClientMessage(playerid, COLOR_LIGHTGREEN, "Alle Nagelbänder abgebaut.");
    RemoveAllNagelBand();
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(NagelBandErstellt == 1)
    {
    NagelBandErstellt[i] = 0;
    SendClientMessage(playerid, COLOR_LIGHTGREEN, "Alle Nagelbänder wurden abgebaut!");
    }
    }
    return 1;
    }

    Ein dcmd um einem Spieler Geld zu geben.
    public OnPlayerCommandText(playerid, cmdtext[])
    {
    dcmd(gibgeld,7,cmdtext);//definirt den dcmd [gibgeld]ist der befehl[7] wie viele buchstaben der befehl hat
    }
    dcmd_gibgeld(playerid , params[])
    {
    new pID, Betrag;//pID=die id des spielers
    if(sscanf(params, "dd", pID, Betrag))
    {
    return SendClientMessage(playerid,COLOR_RED, "Nutze: /gibgeld [SpielerID] [Betrag]");//hast du alles richtig eingegeben?
    }
    else
    {
    GivePlayerMoney(playerid,-Betrag);//zieht dir das geld von betrag ab
    GivePlayerMoney(pID,Betrag);//gibt den spieler den betrag
    }
    return 1;
    }

    Ich habe nun fast mein Autosystem fertig nur die langen for schleifen machen dem server zu schaffen. Ich fang mal mit dem Dcmd an mit dem man einem Spieler ein Schlüssel gibt
    dcmd_gibschluessel(playerid , params[])//dcmd wurde richtig definirt
    {
    new pname[MAX_PLAYERS],accFormat[128];//name des spielers mit dem Schlüssel
    new pnameee[MAX_PLAYERS],accFormattt[128];//name des spielers, der den Schlüssel bekommen soll
    new pID,nummernschild[32];// pID=Spielerid , dessen spielers der den schlüssel bekommt;nummernschild=Der string ( die schlüssel werden anhand des nummernschilds geprüft , ob der schlüssel ins auto passt.
    if(sscanf(params, "ds", pID, nummernschild))
    {
    return SendClientMessage(playerid,COLOR_RED, "Nutze: /gibschluessel [SpielerID] [FahrzeugNummernschild]");//Selbsterklärend
    }
    else
    {
    if(!IsPlayerConnected(pID))
    {
    SendClientMessage(playerid,COLOR_RED,"Dieser Spieler ist nicht online!");
    }
    else
    {
    GetPlayerName(playerid,pname,sizeof pname);
    format(accFormat,sizeof accFormat,"Spieler/%s.datei",pname);
    GetPlayerName(pID,pnameee,sizeof pnameee);
    format(accFormattt,sizeof accFormattt,"Spieler/%s.datei",pnameee);
    new datei[50],str[256],strr[256];
    for(new i=1;i<2000;i++)//Die erste lange forschleife, sie soll prüfen ob der spieler der den schlüssel vergibt ihn überhauopt hat
    {
    format(datei,50,"car%d",i);
    if(strcmp(nummernschild,dini_Get(accFormat,datei)) == 0){return 1;}Erste Lange schleife, es soll geprüft werden ob die eingabe vom spieler mit einem der 2000 schilder in der datei übereinstimmt.
    //wenn es übereinstimmt, soll der code weiter gehen. wenn nicht soll er aufhören. WIE kann ich in der if-abfrage abfragen ob nummernschild und der string in der datei NICHT überienstimmen
    }
    for(i=1;i<2000;i++)//noch ne lange schleife


    {
    format(datei,50,"car%d",i);
    if(strcmp("0",dini_Get(accFormat,datei)) == 0)//wenn in der dini des spielers noch kein nummernschild(schlüssel)steht dann
    {
    dini_Set(accFormat,datei,"0");//wird das nummernschild des anderen spielers gelöscht(er hat keine schlüssel mehr) dini_Set(accFormattt,datei,nummernschild);// und hier an den anderen übertragen(dieser hat nun die schlüssel)
    format(str,256,"Du hast %s die schlüssel für das Auto mit dem Kennzeichen %s gegeben.",pnameee,nummernschild);
    format(strr,256,"Du hast von %s die schlüssel für das Auto mit dem Kennzeichen %s bekommen.",pname,nummernschild);
    SendClientMessage(playerid,COLOR_GREEN,str);
    SendClientMessage(pID,COLOR_GREEN,strr);
    return 1;
    }
    }
    }
    }
    return 1;
    }
    Sorry für das schlechte einrücken das passirte automatisch.
    Weis einer was ich meine so das das ganze nicht zu server auslatend wird

    dazu musst du schon bein parr codes aus dem selfmade zeigen,
    so ein befehl kann bei jedem anderst aussehen.
    und wie speicherst du dein spiel/MySql oder Dini)
    mit Dini kann ich helfen

    Hallo Brotfische,
    Ich habe ein Problem mit SetVehicleParamsEx.
    Meine Türen werden nicht verschlossen.
    Wenn sie offen sind sollten sie zu gemacht werden und wenn sie zu sind au gemacht werden.
    Die texte werden richtig ausgegeben, aber ich kann immer einsteigen
    for(new i=1;i<nextcarID;i++)
    {
    new Autodatei[50];
    format(Autodatei,50,"/Autos/%d.txt",i);
    if(strcmp(nummernschild,dini_Get(Autodatei,"Nummernschild")) == 0)
    {
    switch(auswahl)
    {
    case 1:
    {
    switch(Vehicle[i][doors])
    {
    case 1:
    {
    Vehicle[i][doors] = 0;
    dini_IntSet(Autodatei,"doors",0);
    SendClientMessage(playerid,COLOR_RED, "Auto abgeschlossen");
    SetVehicleParamsEx(nextcarID, Vehicle[i][engiene], Vehicle[i][lights], Vehicle[i][alarm], Vehicle[i][doors], Vehicle[i][bonnet], Vehicle[i][boot], 0);
    }
    case 0:
    {
    Vehicle[i][doors] = 1;
    printf("Vehicle[i][doors] %d",Vehicle[i][doors]);
    dini_IntSet(Autodatei,"doors",1);
    SendClientMessage(playerid,COLOR_GREEN, "Auto aufgeschlossen");
    SetVehicleParamsEx(nextcarID, Vehicle[i][engiene], Vehicle[i][lights], Vehicle[i][alarm], Vehicle[i][doors], Vehicle[i][bonnet], Vehicle[i][boot], 0);
    }
    }
    }
    }
    }
    else continue;
    /EDIT: Die lichter und die alarmanlage gehen auch nur wenn das auto geladen wird dannach nichtmehr
    //EDIT:Habs gelöst
    Nun hab ich eine lange CPU auslastende forschleife
    gibt es eine möglichkeit diese zu unterbrechen wenn eine bedingung erfüllt ist? z.B. break oder sowas?

    Hallo Community,
    Wie kann ich Töne für Spieler im Umkreis abspielen lassen,
    jeweiter man von der Musik weg ist, umso leiser wird sie.
    z.B.Eingeschaltetes Radio oder Alarmanlage.
    Ähnlich wie der Proxdetector.
    Wie geht das?