Hallo
Danke, wieviel (Ich sage jetzt mal Prozent) würde man da sparen ? Es geht mir nicht um genaue Grössen, mehr um die Grössenordnung.
Hallo
Danke, wieviel (Ich sage jetzt mal Prozent) würde man da sparen ? Es geht mir nicht um genaue Grössen, mehr um die Grössenordnung.
Hallo
Ja, den Thread hab ich gesehen. Jedoch frage ich mich, ob es noch andere grundlegende Sachen zum optimieren gäbe
Aber ich schau das bisher geschriebene mal durch und schaffe mich mal durch Goldis Sachen durch, soweit ich kann. Danke.
MfG dUDA
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
So mal als Frage:
Wie wird AddHouse aufgerufen ? Ich blicke es nicht ganz, da es zB kein Public oä ist. Wird das bei OnGameModeInit geladen oder wo ?
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
Das ist es eben, das mich zum Standartsystem gebracht hat. Zudem speichere ich alles in einer Datei
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
So als Tipp:
Benutze fread, fwrite etc.
[ SCRIPTING ] Standard Dateisystem
Das ist ein sehr guter Artikel von BFX
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
Templer
Wie meinst du das genau mit dem neuen Zuweisen. Mir ist eben nicht ganz klar, wie sich das mit dem alten Wert verhält.
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