Und der Aufruf der Funktion verbraucht wieder Zeit die vllt eingespart wird.
Naja, nach einem Speedtest, verbraucht diese Funktion 0 Millisekunden ![]()
und es ist besser nur 5x so eine Schleife ausführen zu lassen als 50x ![]()
mfg. ![]()
Und der Aufruf der Funktion verbraucht wieder Zeit die vllt eingespart wird.
Naja, nach einem Speedtest, verbraucht diese Funktion 0 Millisekunden ![]()
und es ist besser nur 5x so eine Schleife ausführen zu lassen als 50x ![]()
mfg. ![]()
Sowas nennt man Object Streamer
You dont say ![]()
Damit war eher gemeint, omg was für einen Objekt Streamer nutzt du denn ![]()
Wenn du schon einen verwendest, dann den von Incognito am besten: http://forum.sa-mp.com/showthread.php?t=102865
selbst mit CreateObject funktioniert es nicht
Mhm, sicher das du dich zu den Richtigen Koordinaten telportierst ?
PS: und lass dir mal die modelid printen ![]()
mfg. ![]()
Hier der beste Streamer den es gibt: http://forum.sa-mp.com/showthread.php?t=102865
wie installiere ich es richtig..?
Man installiert sowas nicht ![]()
Einfach Plugin einfügen, Include includieren und CreateObject zu CreateDynamicObject verändern ![]()
mfg. ![]()
//Meine Funktion nutzt man so:
for(new i; i<GetID(); i++) //Geht die Spieler bist zur höchsten ID durch...
-.-
ganz nett
aber ich denke ich bleib doch lieber bei der Standard Schleife da man da doch mehr Möglichkeiten hat diese zu modifizieren.
Ehm...du weißt aber, dass das immer noch die Standard Schleife ist, nur das man anstatt dem Makro eine Funktion verwendet ![]()
mfg. ![]()
SetVehicleVelocity(veh, Q[4],Q[5],Q[6]);
noch zu
SetVehicleVelocity(car, Q[4],Q[5],Q[6]);
Wollen ja das neue Fahrzeug beschleunigen
Schau dir genauer meinen Code an ![]()
!TheO ,
dein Code ist falsch und unübersichtlich, schreibe hin so:
stock ChangeCar(playerid, modelid) {
if(!IsPlayerInAnyVehicle(playerid)) return 0;
new veh = GetPlayerVehicleID(playerid);
if(GetVehicleModel(veh) == modelid) return 0;
new Float:Q[7];
GetVehiclePos(veh,Q[0],Q[1],Q[2]);
GetVehicleZAngle(veh,Q[3]);
GetVehicleVelocity(veh,Q[4],Q[5],Q[6]);
DestroyVehicle(veh);
veh = CreateVehicle(modelid,Q[0],Q[1],Q[2],Q[3],-1,-1,-1);
PutPlayerInVehicle(playerid,veh, 0);
SetVehicleVelocity(veh, Q[4],Q[5],Q[6]);
return 1;
}
mfg. ![]()
Und wie änder ich des? im Script ?
Such nach diesem Wort und dann einfach SendRconCommand("loadfs bla"); das dann einfach löschen ![]()
mfg. ![]()
[14:21:02] Unable to load
Schon allein das bedeutet, dass der Server dieses Filterscript nicht laden kann, weil es vermutlich nicht mehr existiert ![]()
Da du die Filterscripts aus der .cfg entfernt hast, könnte es sein, dass das Script versucht diese zu laden mit SendRconCommand ![]()
mfg. ![]()
Achso, jetzt habe ich dein Problem verstanden ![]()
Mache es ganz easy so:
ocmd:fraktionswahl(playerid, params[])
{
new string[256];
format(string,sizeof string,"%i Spieler = Cali Kartell\n%i Spieler = Yakuza\n%i Spieler = Ballas\n%i Spieler = Triaden\n%i Spieler = Vagos\n%i Spieler = Aztecas\n%i Spieler = Grove Street\n%i Spieler = Red Solderis\n%i Spieler = Zivilist",GetFraktion(1),GetFraktion(2),GetFraktion(3),GetFraktion(4),GetFraktion(5),GetFraktion(6),GetFraktion(7),GetFraktion(8),GetFraktion(0));
ShowPlayerDialog(playerid, DIALOG_FRAKTIONSWAHL, DIALOG_STYLE_LIST, "Gangfight - Fraktionswahl",string,"Wählen","Schließen");
return 1;
}
stock GetFraktion(id) {
new count;
for(new i; i<MAX_PLAYERS; i++) {
if(IsPlayerConnected(i) && Spieler[i][Member] == id) count++;
}
return count;
}
if(dialogid == DIALOG_FRAKTIONSWAHL)
{
if(!response) return 1;
if(listitem != 8) Spieler[playerid][Member] = listitem+1;
else Spieler[playerid][Member] = 0;
SpawnPlayer(playerid);
}
mfg. ![]()
Einfach mal so abfragen:
if(dialogid == DIALOG_FRAKTIONSWAHL)
{
if(!response) return 1;
if(listitem != 8) Spieler[playerid][Member] = listitem+1;
else Spieler[playerid][Member] = 0;
switch(listitem) {
case 0: cali++;
case 1: yak++;
case 2: ballas++;
case 3: triaden++;
case 4: vagos++;
case 5: aztecas++;
case 6: grove++;
case 7: red++;
case 8: zivi++;
}
SpawnPlayer(playerid);
}
Das fasst deinen ganzen Code zusammen ![]()
mfg. ![]()
//Edit: gar nicht die unterschiedlichen Namen gesehen ![]()
Ich schätze mal, dass es so nicht funktionieren wird. die Methode von [DT]Sniper wird wohl eher funktionieren. Allerdings zweifel ich bei der Variante an, dass es durch die neue Schleife überhaupt noch sinnvoll ist.
Kaliber:
Wenn 1 Bot und 5 Spieler bei deiner Methode verbinden, so hat der letzte die ID 5. Verlassen nun Spieler 2 und 3 den Server, zählt deine Variante runter und ID 5 wird ausgelassen.
Omg, habe da gerade einen großen Fehler gesehen ![]()
Schau jetzt nochmal, jetzt sollte das alles funktionieren ![]()
@Rest Dankeschön ![]()
mfg. ![]()
BTW: das musst du in allen anderen Includes von dir auch einbauen
Mit wem redest du jetzt ![]()
ist foreach zu langsam ? oder wofuer redundante spieler schleifen ?
Naja, viele Leute benutzen kein foreach, für die wäre das hier eine gute Funktion, für Leute die foreach nutzen, ist das hier egal ![]()
mfg. ![]()
probier mal folgendes:
Schau ob _OnPlayerConnect schon definiert worden ist wenn ja undfine. ansosten habe ich letztens nen tu gesehen der das vermeidet
Ehm...das geht nicht, da man das forward ja auch umändern muss ![]()
mfg. ![]()
Schreib das mal bitte anders
forward _OnPlayerConnect(playerid);
wenn einer jetzt die und dein Fraktionstool nutzt, dann wird eines von beiden nicht richtig funktionieren
Ja...das sollte auch nochmal in einem Tutorial erklärt werden wie man sowas dann ändert ![]()
Ich glaube ich schreibe mal eins ![]()
mfg. ![]()
Ich hatte erher in die richtung gedacht:
http://pastebin.com/ArajrrZY
Ehm...achso...das kann man auch machen, aber meins ist ja irgendwie besser ![]()
mfg. ![]()
mit MAX_PLAYERS wurde ja imemr die anzahl der möglichen user angegeben, oder?
Richtig...man kann es zwar um definieren macht aber glaube ich fast keiner ![]()
danke.
Bitte ![]()
stock GetItem(playerid,slot, name[],len)
Ja, darüber habe ich nicht nachgedacht ![]()
Gut, danke das du mir sowas sagst, verbessere es gleich ![]()
Item[playerid][s] = "";
Ein ganz schlimmer Fehler, der dir das "beigebracht" hat - gehört verprügelt.
Du sorgst hier nur für memory leaks.
Auch hier danke für den Tipp ![]()
(Du kannst das uralte GF mal verprügeln :D)
Unglaubliche 32 Zeilen Effektivcode und trotzdem noch so viel Mist.
Dann gebe doch mal konstruktive Kritik und sag mal was hier Mist ist ![]()
@Rest, danke für die ganzen Kommentare ![]()
mfg. ![]()
//Edit: Rechtschreibung
Sorry das ich mich grade Dumm anstelle aber versteh ich grade nicht also das ist ein Inventar System wo halt Sachen gespeichert sind aber wie speicher ich etwas wird es automatisch oder wie ähhh?. SORRY!
Mit freundlichen Grüßen
Nein, die Sachen werden nicht automatisch gespeichert, aber du kannst das ganz simpel speichern...
Halt mit deinem Speicherungssystem und GetItem(playerid, slot); Das sähe dann so aus (Beispiel mit dini):
dini_Set(Spielerdatei,"Item1",GetItem(playerid,0));
dini_Set(Spielerdatei,"Item2",GetItem(playerid,1));
//usw bis MAX_SLOTS erreicht ist
Coole Sache,würdest du mir sowas als Kofferraumsystem machen gg Taschengeld?
Was genau meinst du...erkläre das mal genauer ![]()
mfg. ![]()