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.

    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

    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:


    PHP
    native IsValidVehicle(vehicleid);


    verwende die neue funktion in deiner schleife:


    PHP
    for(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.


    PHP
    stock 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.

    PHP
    #undef MAX_VEHICLES
    #define MAX_VEHICLES


    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.

    hier aus meinem script. der klappt auch


    Externer Inhalt www.youtube.com
    Inhalte 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