Beiträge von Dudalus

    Hallo


    Das mit der if-Abfrage und dann dem Code habe ich bei strcmp vorallem gesehen. Jedoch frage ich mich, ob es viel bringt, alle CMds so umzubauen ? Wie viel Ressourcen braucht eine else if Schleife im Verhältnis zu einer if-Abfrage (Also ist es sinnvoll oder gibt es Punkte mit mehr Potenzial ?).


    dUDA


    //Edit
    Ja das mit der Primzahl hab ich auch gelesen, werde es dann mal machen nachher

    Hallo


    Evt. tönt jetzt der Titel etwas generell, jedoch habe ich bis auf ein Tutorial über Optimierung (for-Schleifen, New`s ) nicht wirklich vieles gefunden, was mir hilft. Nun frage ich einfach mal so in die Runde hinein:


    1.Frage
    Wo gibt es grosses Potenzial, um während dem Leerlauf (Spieler tut ausser Schreiben im Chat nichts) Ressourcen einzusparen ?


    2.Frage
    Wie verhält sich ein Enum mit sagen wir 60 Einträgen ? (PlayerInfo). Ist sowas sinnvoll ?


    3.Frage
    Wie scripte ich am Besten Schleifen ? Nimmt man am Besten immer if-Schleifen und vermeidet else if oder ist ein if+else genauso ressourcenfressend wie ein else if ? Gibt es da ein paar gute Tipps, wie man da sam besten macht ?


    4.Frage
    Gibt es eine gute Möglichkeit, Timer sinnvoll auszuführen. Ich habe momentan so etwas :
    OnGameModeInit:
    SetTimer("TimerLoader250",250,1);
    SetTimer("TimerLoader1000",1000,1);
    SetTimer("TimerLoader60000",60000,1);
    SetTimer("TimerLoader1800000",1800000,1);


    public TimerLoader250()
    {
    NagelBand_Timer();
    Blitzer_Timer();
    return 1;
    }


    public TimerLoader1000()
    {
    BloodAlcoholLevel();
    TorSystem();
    bankcountdown();
    return 1;
    }


    public TimerLoader60000()
    {
    Updating();
    return 1;
    }


    public TimerLoader1800000()
    {
    Lottotime();
    return 1;
    }


    Wäre um ein paar Tipps sehr froh, da mein Server im Leerlauf sehr laggt ;)
    MfG dUDA

    Hallo


    Also, das Problem ist ja, das gar kein Auto erstellt wird, sondern erst nach einem Restart. Zudem sind die Autoeigenschaften nach einem Restart völlig durcheinander. Wie meinst du da smit dem Spieler ? Es geht ja auf diese Art nur beim Carerstellen, aber ich sitze ja in keinem Auto ;)


    dUDA

    Hallo


    Ich habe 2 Fragen:


    1.Frage
    Wird bei
    FDaten[_cache_fahrzeug][fCarID] = CreateVehicle(FDaten[_cache_fahrzeug][fModelID],FDaten[_cache_fahrzeug][fX],FDaten[_cache_fahrzeug][fY],FDaten[_cache_fahrzeug][fZ],FDaten[_cache_fahrzeug][fA],FDaten[_cache_fahrzeug][fFarbe1],FDaten[_cache_fahrzeug][fFarbe2],-1);



    nicht ein Wert zu fCarID zugewiesen und überhaupt kein Auto erstellt ?


    2.Frage
    Kann es sein, dass das Problem darin liegt, das _cache_fahrzeug erst nach dem einlesen der 1.Zeile erhöht wird, die vehicleid aber bei 1 anfängt.


    Ich wär eum eure Hilfe sehr erleichtert ;)
    MfG dUDA
    Schönes Wochenende an alle !

    Hallo


    Ich bin nochmals etwas durchs Script "gegangen" und habe etwas geändert. Es geht jedoch schon besser, leider nochnicht ganz 100%.


    new line[255],File:carx = fopen(CAR_DATEI,io_read), car_index;
    if(carx)
    {
    while(fread(carx,line))
    {
    strmid(FDaten[_cache_fahrzeug][fBesitzer],strtok(line,car_index,','),0,MAX_PLAYER_NAME,MAX_PLAYER_NAME);
    FDaten[_cache_fahrzeug][fPreis] = strval(strtok(line,car_index,','));
    FDaten[_cache_fahrzeug][fLocked] = strval(strtok(line,car_index,','));
    FDaten[_cache_fahrzeug][fTunbar] = strval(strtok(line,car_index,','));
    FDaten[_cache_fahrzeug][fVerwahrt] = strval(strtok(line,car_index,','));
    FDaten[_cache_fahrzeug][fVerkauft] = strval(strtok(line,car_index,','));
    FDaten[_cache_fahrzeug][fModelID] = strval(strtok(line,car_index,','));
    FDaten[_cache_fahrzeug][fX] = floatstr(strtok(line,car_index,','));
    FDaten[_cache_fahrzeug][fY] = floatstr(strtok(line,car_index,','));
    FDaten[_cache_fahrzeug][fZ] = floatstr(strtok(line,car_index,','));
    FDaten[_cache_fahrzeug][fA] = floatstr(strtok(line,car_index,','));
    FDaten[_cache_fahrzeug][vX] = floatstr(strtok(line,car_index,','));
    FDaten[_cache_fahrzeug][vY] = floatstr(strtok(line,car_index,','));
    FDaten[_cache_fahrzeug][vZ] = floatstr(strtok(line,car_index,','));
    FDaten[_cache_fahrzeug][vA] = floatstr(strtok(line,car_index,','));
    FDaten[_cache_fahrzeug][fFarbe1] = strval(strtok(line,car_index,','));
    FDaten[_cache_fahrzeug][fFarbe2] = strval(strtok(line,car_index,','));
    FDaten[_cache_fahrzeug][fJob] = strval(strtok(line,car_index,','));
    FDaten[_cache_fahrzeug][fFraktion] = strval(strtok(line,car_index,','));
    FDaten[_cache_fahrzeug][fPaintjob] = strval(strtok(line,car_index,','));
    FDaten[_cache_fahrzeug][fTuningteil0] = strval(strtok(line,car_index,','));
    FDaten[_cache_fahrzeug][fTuningteil1] = strval(strtok(line,car_index,','));
    FDaten[_cache_fahrzeug][fTuningteil2] = strval(strtok(line,car_index,','));
    FDaten[_cache_fahrzeug][fTuningteil3] = strval(strtok(line,car_index,','));
    FDaten[_cache_fahrzeug][fTuningteil4] = strval(strtok(line,car_index,','));
    FDaten[_cache_fahrzeug][fTuningteil5] = strval(strtok(line,car_index,','));
    FDaten[_cache_fahrzeug][fTuningteil6] = strval(strtok(line,car_index,','));
    FDaten[_cache_fahrzeug][fTuningteil7] = strval(strtok(line,car_index,','));
    FDaten[_cache_fahrzeug][fTuningteil8] = strval(strtok(line,car_index,','));
    FDaten[_cache_fahrzeug][fTuningteil9] = strval(strtok(line,car_index,','));
    FDaten[_cache_fahrzeug][fTuningteil10] = strval(strtok(line,car_index,','));
    FDaten[_cache_fahrzeug][fTuningteil11] = strval(strtok(line,car_index,','));
    FDaten[_cache_fahrzeug][fTuningteil12] = strval(strtok(line,car_index,','));
    FDaten[_cache_fahrzeug][fTuningteil13] = strval(strtok(line,car_index,','));
    if(FDaten[_cache_fahrzeug][fVerwahrt] == 0)
    {
    FDaten[_cache_fahrzeug][fCarID] = CreateVehicle(FDaten[_cache_fahrzeug][fModelID],FDaten[_cache_fahrzeug][fX],FDaten[_cache_fahrzeug][fY],FDaten[_cache_fahrzeug][fZ],FDaten[_cache_fahrzeug][fA],FDaten[_cache_fahrzeug][fFarbe1],FDaten[_cache_fahrzeug][fFarbe2], -1);
    SetTimerEx("PrivatCarTuneUp",1000,0,"d",_cache_fahrzeug);
    }
    else
    {
    FDaten[_cache_fahrzeug][fCarID] = CreateVehicle(FDaten[_cache_fahrzeug][fModelID],FDaten[_cache_fahrzeug][vX],FDaten[_cache_fahrzeug][vY],FDaten[_cache_fahrzeug][vZ],FDaten[_cache_fahrzeug][vA],FDaten[_cache_fahrzeug][fFarbe1],FDaten[_cache_fahrzeug][fFarbe2], -1);
    SetTimerEx("PrivatCarTuneUp",1000,0,"d",_cache_fahrzeug);
    }
    car_index = 0;
    _cache_fahrzeug++;
    }
    fclose(carx);
    }


    dcmd_admcreate(playerid,params[])
    {
    new cmodelid, cfarbe1, cfarbe2, cpreis, ctunbar, cjob, cfraktion;
    if(sscanf(params, "ddddddd", cmodelid,cfarbe1,cfarbe2,cpreis,ctunbar,cjob,cfraktion)) return SendClientMessage(playerid, COLOR_WHITE, "Verwendung: /admcreate ModelID Farbe1 Farbe2 Preis Tunbar Job Fraktion");
    if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid,COLOR_GREY,"Du bist kein RCON Admin");
    new Float:JPos[4];
    GetPlayerPos(playerid,JPos[0],JPos[1],JPos[2]);
    GetPlayerFacingAngle(playerid,JPos[3]);
    _cache_fahrzeug++;
    strmid(FDaten[_cache_fahrzeug][fBesitzer],"Keiner",0,MAX_PLAYER_NAME,MAX_PLAYER_NAME);
    FDaten[_cache_fahrzeug][fPreis] = cpreis;
    FDaten[_cache_fahrzeug][fVerkauft] = 0;
    FDaten[_cache_fahrzeug][fLocked] = 0;
    FDaten[_cache_fahrzeug][fTunbar] = ctunbar;
    FDaten[_cache_fahrzeug][fVerwahrt] = 0;
    FDaten[_cache_fahrzeug][fModelID] = cmodelid;
    FDaten[_cache_fahrzeug][fX] = JPos[0];
    FDaten[_cache_fahrzeug][fY] = JPos[1];
    FDaten[_cache_fahrzeug][fZ] = JPos[2];
    FDaten[_cache_fahrzeug][fA] = JPos[3];
    FDaten[_cache_fahrzeug][vX] = (0.0);
    FDaten[_cache_fahrzeug][vY] = (0.0);
    FDaten[_cache_fahrzeug][vZ] = (0.0);
    FDaten[_cache_fahrzeug][vA] = (0.0);
    FDaten[_cache_fahrzeug][fFarbe1] = cfarbe1;
    FDaten[_cache_fahrzeug][fFarbe2] = cfarbe2;
    FDaten[_cache_fahrzeug][fJob] = cjob;
    FDaten[_cache_fahrzeug][fFraktion] = cfraktion;
    FDaten[_cache_fahrzeug][fPaintjob] = 0;
    FDaten[_cache_fahrzeug][fCarID] = CreateVehicle(FDaten[_cache_fahrzeug][fModelID],FDaten[_cache_fahrzeug][fX],FDaten[_cache_fahrzeug][fY],FDaten[_cache_fahrzeug][fZ],FDaten[_cache_fahrzeug][fA],FDaten[_cache_fahrzeug][fFarbe1],FDaten[_cache_fahrzeug][fFarbe2],-1);
    SaveCache();
    return 1;
    }


    public SaveCache()
    {
    new fm[255],File:carx = fopen(CAR_DATEI,io_write);
    for(new i = 0;i<_cache_fahrzeug;i++)
    {
    if(FDaten[i][fModelID] != 0)
    {
    format(fm,sizeof fm,"%s,%d,%d,%d,%d,%d,%d,%f,%f,%f,%f,%f,%f,%f,%f,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d\r\n",
    FDaten[i][fBesitzer],
    FDaten[i][fPreis],
    FDaten[i][fVerkauft],
    FDaten[i][fLocked],
    FDaten[i][fTunbar],
    FDaten[i][fVerwahrt],
    FDaten[i][fModelID],
    FDaten[i][fX],
    FDaten[i][fY],
    FDaten[i][fZ],
    FDaten[i][fA],
    FDaten[i][vX],
    FDaten[i][vY],
    FDaten[i][vZ],
    FDaten[i][vA],
    FDaten[i][fFarbe1],
    FDaten[i][fFarbe2],
    FDaten[i][fJob],
    FDaten[i][fFraktion],
    FDaten[i][fPaintjob],
    FDaten[i][fTuningteil0],
    FDaten[i][fTuningteil1],
    FDaten[i][fTuningteil2],
    FDaten[i][fTuningteil3],
    FDaten[i][fTuningteil4],
    FDaten[i][fTuningteil5],
    FDaten[i][fTuningteil6],
    FDaten[i][fTuningteil7],
    FDaten[i][fTuningteil8],
    FDaten[i][fTuningteil9],
    FDaten[i][fTuningteil10],
    FDaten[i][fTuningteil11],
    FDaten[i][fTuningteil12],
    FDaten[i][fTuningteil13]);
    fwrite(carx,fm);
    }
    }
    fclose(carx);
    return 1;
    }


    MfG dUDA

    Hallo


    Habe selber das World of Red Apple und chatte ab und zu mit dem Ersteller. Meines Wissens nach hat er ein neues, eigenes Script angefangen.


    Timer
    Ja, das ist ein Thema für sich. Ich habe ein Public erstellt, welches die Funktionen besitzt, welche eigentlich ursprünglicherweise mit den Timern ausgeführt werden sollte. Ich habe einfach verschiedene Timer, welche verschiedene (4 Public) mit 4 Timern ausführen. Zudem muss man zuerst eh einiges an diesem GM umbauen ;)


    dUDA

    Hallo


    Ladet euch Notepad++ runter, stellt in eurem FTP-Client ein, das .cer mit Notepadd++ geöffnet werden, schreibt bei Admin 1337 rein, dann Ctrl+S und dann Alt+F4. Zudme noch Servbestätigung bestätigen.
    MfG dUDA

    Hallo


    Habe es ohne else und else-if versucht, es geht nicht, es liegt höchstwahrscheinlich am initSlot, jedoch ging es bisher immer ;)


    public initSlot()
    {
    new foundx = -1;
    for(new i = 0;i<_cache_fahrzeug;i++)
    {
    if(FDaten[i][fBesitzer] == '\0'){foundx = i;break;}
    }
    return foundx;
    }

    Hallo


    Entschuldige, aber das tönt jetzt für mich völlig unlogisch, da ich ja "Player-ist-nicht-RCON" ausschliessen will. Wenn nichts zutrifft, wird doch else ausgeführt ? Zudem erscheint keine Du bist kein RCON-Meldung, die Casr werden beim nächsten Restart erstellt.


    MfG dUDA

    Hallo


    Ich habe langsam das Gefühl, das wird mein Lebenswerk, aber egal, ich schaffs ;)


    Ich habe jetzt das Problem, dass wenn ich als RCON eingelogt bin und den Command /admcreate (Erstellt ein Auto) korrekt benutze, nichts passiert. Erst nnach einem Restart sind die Cars dort, jedoch völlig komisch, man kann sie zB nicht kaufen, obwohl e sgehen sollte. Ich poste hier mal den Load-Code und den Save-Code, den Admcreatecode.


    new line[255],File:carx = fopen(CAR_DATEI,io_read),
    car_index;
    if(carx)
    {
    while(fread(carx,line))
    {
    if(line[strlen(line)-2] == '\r')line[strlen(line)-2] = '\0';
    if(line[strlen(line)-1] == '\n')line[strlen(line)-1] = '\0';
    strmid(FDaten[_cache_fahrzeug][fBesitzer],strtok(line,car_index,','),0,MAX_PLAYER_NAME,MAX_PLAYER_NAME);
    FDaten[_cache_fahrzeug][fPreis] = strval(strtok(line,car_index,','));
    FDaten[_cache_fahrzeug][fLocked] = strval(strtok(line,car_index,','));
    FDaten[_cache_fahrzeug][fTunbar] = strval(strtok(line,car_index,','));
    FDaten[_cache_fahrzeug][fVerwahrt] = strval(strtok(line,car_index,','));
    FDaten[_cache_fahrzeug][fVerkauft] = strval(strtok(line,car_index,','));
    FDaten[_cache_fahrzeug][fModelID] = strval(strtok(line,car_index,','));
    FDaten[_cache_fahrzeug][fX] = floatstr(strtok(line,car_index,','));
    FDaten[_cache_fahrzeug][fY] = floatstr(strtok(line,car_index,','));
    FDaten[_cache_fahrzeug][fZ] = floatstr(strtok(line,car_index,','));
    FDaten[_cache_fahrzeug][fA] = floatstr(strtok(line,car_index,','));
    FDaten[_cache_fahrzeug][vX] = floatstr(strtok(line,car_index,','));
    FDaten[_cache_fahrzeug][vY] = floatstr(strtok(line,car_index,','));
    FDaten[_cache_fahrzeug][vZ] = floatstr(strtok(line,car_index,','));
    FDaten[_cache_fahrzeug][vA] = floatstr(strtok(line,car_index,','));
    FDaten[_cache_fahrzeug][fFarbe1] = strval(strtok(line,car_index,','));
    FDaten[_cache_fahrzeug][fFarbe2] = strval(strtok(line,car_index,','));
    FDaten[_cache_fahrzeug][fJob] = strval(strtok(line,car_index,','));
    FDaten[_cache_fahrzeug][fFraktion] = strval(strtok(line,car_index,','));
    FDaten[_cache_fahrzeug][fPaintjob] = strval(strtok(line,car_index,','));
    FDaten[_cache_fahrzeug][fTuningteil0] = strval(strtok(line,car_index,','));
    FDaten[_cache_fahrzeug][fTuningteil1] = strval(strtok(line,car_index,','));
    FDaten[_cache_fahrzeug][fTuningteil2] = strval(strtok(line,car_index,','));
    FDaten[_cache_fahrzeug][fTuningteil3] = strval(strtok(line,car_index,','));
    FDaten[_cache_fahrzeug][fTuningteil4] = strval(strtok(line,car_index,','));
    FDaten[_cache_fahrzeug][fTuningteil5] = strval(strtok(line,car_index,','));
    FDaten[_cache_fahrzeug][fTuningteil6] = strval(strtok(line,car_index,','));
    FDaten[_cache_fahrzeug][fTuningteil7] = strval(strtok(line,car_index,','));
    FDaten[_cache_fahrzeug][fTuningteil8] = strval(strtok(line,car_index,','));
    FDaten[_cache_fahrzeug][fTuningteil9] = strval(strtok(line,car_index,','));
    FDaten[_cache_fahrzeug][fTuningteil10] = strval(strtok(line,car_index,','));
    FDaten[_cache_fahrzeug][fTuningteil11] = strval(strtok(line,car_index,','));
    FDaten[_cache_fahrzeug][fTuningteil12] = strval(strtok(line,car_index,','));
    FDaten[_cache_fahrzeug][fTuningteil13] = strval(strtok(line,car_index,','));
    if(FDaten[_cache_fahrzeug][fVerwahrt] == 0)
    {
    FDaten[_cache_fahrzeug][fCarID] = CreateVehicle(FDaten[_cache_fahrzeug][fModelID],FDaten[_cache_fahrzeug][fX],FDaten[_cache_fahrzeug][fY],FDaten[_cache_fahrzeug][fZ],FDaten[_cache_fahrzeug][fA],FDaten[_cache_fahrzeug][fFarbe1],FDaten[_cache_fahrzeug][fFarbe2], -1);
    SetTimerEx("PrivatCarTuneUp",1000,0,"d",_cache_fahrzeug);
    }
    else
    {
    FDaten[_cache_fahrzeug][fCarID] = CreateVehicle(FDaten[_cache_fahrzeug][fModelID],FDaten[_cache_fahrzeug][vX],FDaten[_cache_fahrzeug][vY],FDaten[_cache_fahrzeug][vZ],FDaten[_cache_fahrzeug][vA],FDaten[_cache_fahrzeug][fFarbe1],FDaten[_cache_fahrzeug][fFarbe2], -1);
    SetTimerEx("PrivatCarTuneUp",1000,0,"d",_cache_fahrzeug);
    }
    car_index = 0;
    _cache_fahrzeug++;
    }
    fclose(carx);
    }


    public SaveCache()
    {
    new fm[255],File:carx = fopen(CAR_DATEI,io_write);
    for(new i = 0;i<_cache_fahrzeug;i++)
    {
    if(FDaten[i][fModelID] != 0)
    {
    format(fm,sizeof fm,"%s,%d,%d,%d,%d,%d,%d,%f,%f,%f,%f,%f,%f,%f,%f,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d\r\n",
    FDaten[i][fBesitzer],
    FDaten[i][fPreis],
    FDaten[i][fVerkauft],
    FDaten[i][fLocked],
    FDaten[i][fTunbar],
    FDaten[i][fVerwahrt],
    FDaten[i][fModelID],
    FDaten[i][fX],
    FDaten[i][fY],
    FDaten[i][fZ],
    FDaten[i][fA],
    FDaten[i][vX],
    FDaten[i][vY],
    FDaten[i][vZ],
    FDaten[i][vA],
    FDaten[i][fFarbe1],
    FDaten[i][fFarbe2],
    FDaten[i][fJob],
    FDaten[i][fFraktion],
    FDaten[i][fPaintjob],
    FDaten[i][fTuningteil0],
    FDaten[i][fTuningteil1],
    FDaten[i][fTuningteil2],
    FDaten[i][fTuningteil3],
    FDaten[i][fTuningteil4],
    FDaten[i][fTuningteil5],
    FDaten[i][fTuningteil6],
    FDaten[i][fTuningteil7],
    FDaten[i][fTuningteil8],
    FDaten[i][fTuningteil9],
    FDaten[i][fTuningteil10],
    FDaten[i][fTuningteil11],
    FDaten[i][fTuningteil12],
    FDaten[i][fTuningteil13]);
    fwrite(carx,fm);
    }
    }
    fclose(carx);
    return 1;
    }


    dcmd_admcreate(playerid,params[])
    {
    new cmodelid, cfarbe1, cfarbe2, cpreis, ctunbar, cjob, cfraktion;
    if(sscanf(params, "ddddddd", cmodelid,cfarbe1,cfarbe2,cpreis,ctunbar,cjob,cfraktion)) return SendClientMessage(playerid, COLOR_WHITE, "Verwendung: /admcreate ModelID Farbe1 Farbe2 Preis Tunbar Job Fraktion");
    else if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid,COLOR_GREY,"Du bist kein RCON Admin");
    else
    {
    new Float:JPos[4];
    new slotid = initSlot();
    new fullid = (slotid==-1) ? (_cache_fahrzeug) : (slotid);
    GetPlayerPos(playerid,JPos[0],JPos[1],JPos[2]);
    GetPlayerFacingAngle(playerid,JPos[3]);
    strmid(FDaten[fullid][fBesitzer],"Keiner",0,MAX_PLAYER_NAME,MAX_PLAYER_NAME);
    FDaten[fullid][fPreis] = cpreis;
    FDaten[fullid][fVerkauft] = 0;
    FDaten[fullid][fLocked] = 0;
    FDaten[fullid][fTunbar] = ctunbar;
    FDaten[fullid][fVerwahrt] = 0;
    FDaten[fullid][fModelID] = cmodelid;
    FDaten[fullid][fX] = JPos[0];
    FDaten[fullid][fY] = JPos[1];
    FDaten[fullid][fZ] = JPos[2];
    FDaten[fullid][fA] = JPos[3];
    FDaten[fullid][vX] = (0.0);
    FDaten[fullid][vY] = (0.0);
    FDaten[fullid][vZ] = (0.0);
    FDaten[fullid][vA] = (0.0);
    FDaten[fullid][fFarbe1] = cfarbe1;
    FDaten[fullid][fFarbe2] = cfarbe2;
    FDaten[fullid][fJob] = cjob;
    FDaten[fullid][fFraktion] = cfraktion;
    FDaten[fullid][fPaintjob] = 0;
    FDaten[fullid][fCarID] = CreateVehicle(cmodelid,JPos[0],JPos[1],JPos[2],JPos[3],cfarbe1,cfarbe2, -1);
    if(slotid==-1)_cache_fahrzeug++;
    SaveCache();
    }
    return 1;
    }


    MfG dUDA

    Hallo


    Du willst also jedesmal wenn ein Spieler spawnt, ihm einen gewissen Geldbetrag geben ? (Kein Ding, war/bin auch Anfänger).


    Also Info, Du musst bei OnPlayerSpawn keine IstPlayerEingeloggt Abfrage einbauen, da ja sonst der Spieler nicht spawnen kann. Wenn du jmd Geld abziehen willst, musst du


    SpielerInfo[playerid][Geld] -= 200; (MinusGleich Abstand Betrag) Zieht 200 Dollar ab
    SpielerInfo[playerid][Geld] += 200; (PlusGleich Abstand Betrag) Addiert 200 Dollar ab
    SpielerInfo[playerid][Geld] --; (PlusPuls) Nimmt 1 Dollar weg
    SpielerInfo[playerid][Geld] ++; (PlusPuls) Addiert 1 Dollar


    Ich komme nicht ganz draus, was du möchtest, beschreib es etwas genauer ;)
    dUDA






    So kannst du sein Geld, sofern

    Halllo


    Jein


    Das Fahrzeug soll mithilfe von Daten erstellt werden, die aus einer Datei ausgelesen werden.Grundidee:


    Ich lösche nur das Auto und erstelle ein neues Auto, jedoch ändert sich ja dann die VehicleID und der Wer "i", der ja sozusagen die fCarID ist, ist ein anderer, ich brauch die Daten des alten "i" aber, um das Auto wieder zu erstellen. Ich muss das so machen, da SetVehiclePos nur mit einem Player richtig funktioniert.


    MfG dUDA

    Hallo


    Ich weis nicht, wie in madAd der Name für das Geld heisst, jedoch such nach einem Enum wo Cash oder Geld oä vorkommt. Du musst dann, wenn du dem Spieler den Betrag änderst, diesen Wert dementsrechend ändern.


    dUDA


    Edit: So: SpielerInfo[playerid][Geld]

    Hallo


    Ich habe ein kleines Problem, wo ich nicht wiess, wie ich das beheben kann. Ich will, dass ein Auto beim Tod gelöscht wird und ein neues dafür spawnt. Das ganze wird jedoch mit einer For-Schleife gemacht, da es auch abgespeichert werden soll. Nun habe ich das Problem, dass wenn die alte VehicleID nicht mehr gleich die neue VehicleID beim Spawnen sein wird, ein Problem entsteht.


    FDaten[i][fCarID] = CreateVehicle(FDaten[i][fModelID],FDaten[i][fX],FDaten[i][fY],FDaten[i][fZ],FDaten[i][fA],FDaten[i][fFarbe1],FDaten[i][fFarbe2], -1);


    Wenn ich bei OnVehicleDeath das Auto zerstören lasse, muss ich ja den Wert "i" irgendwie auf die neue VehicleID umändern, da es sonst zu Problemen kommt. fCarID wird ja durch die VehicleID bestimmt, wie muss ich sowas machen. Hab einmal einen groben Aufbau zur Hilfe gemacht:


    for(new i = 0;i<_cache_fahrzeug;i++)
    {
    //1.Teil: Zerstören und Resetten
    if(FDaten[i][fCarID] != vehicleid) continue;
    FDaten[i][fCarId] = -1;
    DestroyVehicle(vehicleid);
    //2.Teil: Erschaffen mit neuer FCarID und Tuning
    Wenn Neue FCarID Verwahrt == 0
    {
    SpawnNeuesFahrzeuge
    Tuning
    }
    Else
    {
    SpawnNeuesFahrzeuge
    Tuning
    }
    }


    Ich hoffe, Ihr versteht grob was ich meine, wäre um Hilfe sehr sehr froh.
    MfG dUDA