hab mich auch heute mit diesem tor beschäftigt und würde es auch sehr gerne erfahren.
Beiträge von Tround
-
-
ja das ist es... aber das ist nunmal was mr monat den leuten beibringt
ich würde dir auch empfehlen nur zu speichern wenn der spieler den server verlässt. -
forward sellcarsekundenabfrage();
public sellcarsekundenabfrage()
{
for(new i=0;i<MAX_PLAYERS;i++)
{
if(!IsPlayerConnected(i))continue;
SetPVarInt(i,"Dropcartime",GetPVarInt(i,"Dropcartime")-1);
SpielerSpeichern(i);
if(GetPVarInt(i,"Dropcartime")<=0)
{
SetPVarInt(i,"Dropcarstopp",0);
SendClientMessage(i,COLOR_GREY,"Du kannst jetzt wieder Fahrzeuge verkaufen.");
SpielerSpeichern(i);
}
}
return 1;
}ich behaupte nicht das der code so funktioniert denn ich werd daraus nicht wirklich schlau.
doch das prinzip hoffe ich verstehst du. -
das macht er doch schon hier:
SetPVarInt(playerid,"Dropcartime",GetPVarInt(playerid,"Dropcartime")-1);
SpielerSpeichern(playerid);
das problem ist mal wieder der timer. du kannst nicht einfach in den public (playerid) reinschreiben und hoffen das es funktioniert.
du hast playerid zwar erstellt in deinem public aber es wird nirgendwo ausgelesen was playerid eigentlich sein soll. daher ist playerid immer bei 0. -
naja entweder den server aktualisieren auf 0.3e mit den aktuellen includes.
oder die clientversion downgraden auf 0.3d oder womit der server auch immer läuft -
vermutlich liegt es hier dran : AdminNachricht(ROT,string);
alles andere ist ok -
The Server didn't respond
ich vermute mal dass die server version eine andere ist als deine client. -
in der zeit wo du auf eine anwtort wartest hättest es schon lange selber hinbekommen. und warum soll jemand anders für dich die arbeit machen ? so schwer is das nun wirklich nicht...omg
-
wie haste es gelöst? würde mich interessieren.
hätte es jetzt so gemacht da ich es nicht besser wüsste:
public OnPlayerText(playerid, text[])
{
if(AFK[playerid] == 1) // Abfrage ob er AFK ist wenn er schreiben möchte!
{
SendClientMessage(playerid, COLOR_RED, "Du kannst nicht schreiben, schreibe /back um zu schreiben!"); // Falls er AFK ist , ist er gemutet und kann erst schreiben wenn er /back macht!
return 0;
}
new stunde1,minute1,sekunde1;
gettime(stunde1,minute1,sekunde1);
new timestamp1[5],timestamp2[5],timestamp3[5];
if(stunde1<10)
{
format(timestamp1,5,"0%i",stunde1);
}
else
{
format(timestamp1,5,"%i",stunde1);
}
if(minute1<10)
{
format(timestamp2,5,"0%i",stunde1);
}
else
{
format(timestamp2,5,"%i",stunde1);
}
if(sekunde1<10)
{
format(timestamp3,5,"0%i",stunde1);
}
else
{
format(timestamp3,5,"%i",stunde1);
}
new string[128],name[24];
GetPlayerName(playerid, name, 24);
format(string, 128,"[%i:%i:%i | ID: %d] %s %s : {FFFFFF}%s",timestamp1,timestamp2,timestamp3,playerid,Admintextname(playerid),name,text);
SendClientMessageToAll(GetPlayerColor(playerid), string);
return 0;
}edit:
achso das klappt auch so?%02d:%02d:%02d
-
kannst es ja mal hiermit versuchen
http://wiki.sa-mp.com/wiki/Gettime
dann liest er die serverzeit aus und nicht die uhrzeit für den spieler auf dem server. -
ach freestyler du warst das
2 leute gleicher gedanke
-
das hab ich heute bei einem aufm profil gesehen und fands richtig lustig
du darfst nicht herstellen benutzen weil samp nur englisch kann
-
Alle Auto's verbuggt?
das reicht dir wohl nicht -
du solltest versuchen deine schleifen so gut wie möglich zu optimieren um ressourcen zu sparen..
zum ersten:
schreibe diese zeile in deinen gamemode oder eine include:verwende die neue funktion in deiner schleife:
PHPfor(new i=0;i<MAX_VEHICLES;i++) { if(!IsValidVehicle(i))continue; if(!IsVehicleUnused(i))continue; SetVehicleToRespawn(i); }
zum zweiten:
verwende IsPlayerConnected in deiner schleife die durch alle spieler geht.PHPstock IsVehicleUnused(vehicleid) { for(new i=0;i<MAX_PLAYERS;i++) { if(!IsPlayerConnected(i))continue; if(IsPlayerInVehicle(i, vehicleid)) return 0; } return 1; }
ich denke das wird schon einen riesen unterschied machen.
edit:
wenn du noch mehr resourcen sparen willste definiere MAX_PLAYERS und/oder MAX_VEHICLES neu.
denn es macht keinen sinn eine schleife 2000 x durchlaufen zu lassen obwohl der server nur 2-300 fahrzeuge hat.
genau das gleiche bei MAX_PLAYERS. -
wie sieht denn die if(IsVehicleUnused(i)) funktion aus. vlcht liegts auch daran?
ich könnte mir forstellen das dort für jedes auto eine schleife für alle spieler durchläuft.
zudem wenn du MAX_VEHICLES nicht neu definiert hast steht das standartmäßig auf 2000. wenn man jetzt noch die schleife mit MAX_PLAYERS macht bedeutet dass schon 2000x500. -
naja bei einem continue wird ein schritt in der schleife übersprungen und zur nächsten zahl geschickt.
bei einem return in einer schleife wird die schleife komplett abgebrochen. -
hier aus meinem script. der klappt auch
PHP
Alles anzeigennew besetzt[MAX_VEHICLES]; ocmd:aafrespawn(playerid,params[]) { if(admin(playerid,5))return keinadmin(playerid); for(new s=0;s<MAX_PLAYERS;s++) { if(IsPlayerConnected(s)&&IsPlayerInAnyVehicle(s)) { besetzt[GetPlayerVehicleID(s)]=1; } } for(new v=0;v<MAX_VEHICLES;v++) { if(besetzt[v]==1)continue; SetVehicleToRespawn(v); } format(stringbert,sizeof(stringbert),"%s hat alle Fahrzeuge respawnt!",sname(playerid));adminmsgtoall(stringbert); return 1; }
-
die schleife scheint falsch zu sein. schau noch mal genau hin.
for(new i=0; i>MAX_PLAYERS; i++) -
Externer Inhalt www.youtube.comInhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.
bitteschön
-
einfach unter ongamemodeint das hier schreiben:
LimitGlobalChatRadius(50.0);
erklärung