Sry4pwn:
Meinst du Ressourcensparender oder schneller? Denn Ressourcensparender wäre deine erste Variante, nicht die von Kaliber...
Nein, da er 500 Spieler durchläuft
und wenn, dann wäre es seine 2. Variante
Sry4pwn:
Meinst du Ressourcensparender oder schneller? Denn Ressourcensparender wäre deine erste Variante, nicht die von Kaliber...
Nein, da er 500 Spieler durchläuft
und wenn, dann wäre es seine 2. Variante
Doch wenn ich nun spawne, dann ist die Kamera irgendwo im nichts....
genau da SetCameraBehindPlayer(playerid); einfügen
Welche von beiden Varianten ist ressourcensparender... ?
Meine:
cmd (...)
{
new found = 0;
for(new i =0; i<100; i++) {
if(!IsPlayerConnected(i)) continue;
if(!IsACop(i)) continue;
found++;
if(found>=2) break;
}
if(found>=2) {...}
}
mfg.
danke dir Dog.
Du weißt aber, dass das Goldkiller war, der dir den Code gepostet hat
1.
Kick(playerid); //playerid = playerid vom Bot/NPC
2.
SetCameraBehindPlayer(playerid); //am ende einfügen
mfg.
Dieser Code ist sehr schlecht Reloadet und das nicht nur weil er 2 Timer benötigt, obwohl man das in einen schreiben kann
Du hast ja auch die Variable money noch nicht becshrieben
Schreibe es so:
if(dialogid == DIALOG_EINZAHLEN)
{
if(response == 0) return 1;
if(response == 1)
{
new money, string[128];
money = strval(inputtext);
if(GetPlayerMoney(playerid) < money)return SCM(playerid,msg,"Du hast nicht genug Geld.");
if(money<1||money>5000000)return SCM(playerid,ROT,"Falscher Wert (min. 1$ | max. 5000000$)");
GivePlayerMoney(playerid,-money);
SetPVarInt(playerid,"Konto",GetPVarInt(playerid,"Konto")+money);
format(string,sizeof(string),"Du hast erfolgreich %i$ auf dein Konto gezahlt.",money);
SendClientMessage(playerid,grün,string);
}
}
mfg.
Nein, es gibt keine andere Möglichkeit als einen Timer, aber du benötigst ja nur 1nen, bzw wenn du schon einen hast, kannst du alles auf 1nen Timer reduzieren
mfg.
Du kannst auch mit SetTimerEx arbeiten, dann ist eine Schleife nicht nötig !
Bsp:
//Bei OnPlayerConnect
SetTimerEx("Up", 1000, 1, "i", playerid);
//Callback
forward Up(playerid);
public Up(playerid)
{
if(IsPlayerInRangeOfPoint(playerid, X, Y, Z)) //Natürlich ersetzen
{
MoveObject(...);
}
return 1;
}
mfg.
for(new i; i<100; i++)
{
if(!IsPlayerConnected(i)) continue;
if(!IsPlayerInAnyVehicle(i)) continue;
if(GetPlayerVehicleID(i) == GetPlayerVehicleID(playerid))
{
PlayAudioStreamForPlayer(i, "http....");
}
}
mfg.
Wie wäre es mit einem random System:
new skin = random(299);
SetPlayerSkin(playerid, skin);
oder irgentwie sowas evtl:
new skin = (playerid+70);
SetPlayerSkin(playerid, skin);
Alles möglich
mfg.
if(!IsPlayerInFrakt(playerid))return SendClientMessage(playerid,ROT,"Du bist kein Cop!");
Du hast das ! da vergessen
mfg.
Schreibe es so:
forward Audio_OnSetPack(audiopack[]);
public Audio_OnSetPack(audiopack[])
Du hast den forward vergessen
mfg.
So ein Abschlepp System ist ganz simpel, hier schreib doch kurz eins selber: AttachTrailerToVehicle
mfg.
Es ist schneller als DCMD und ZCMD keine Ahnung.
Jedoch ist es NICHT das langsamste und OCMD ist auch sehr übersichtlich
Du weißt aber, dass kleinerOpa (der schreiber von OCMD) so ziemlich viel bei ZCMD abgeschaut hat und nur das "COMMAND" zu "ocmd" geändert hat
und ich finde ZCMD besser, da es zwei nützliche Callbacks anstelle von OnPlayerCommandText hat und man so nicht auf Gross-/Kleinschreibung achten muss !
mfg.
strcmp ist eine Standart Funktion die erstmal garnichts mit Befehlen zu tun hat, sie vergleicht nur 2 Strings miteinander und prüft ob diese gleich sind.
Aber was ocmd, zcmd, dcmd angeht, dann muss ich dir recht geben das das definitiv zu viele xcmds sind
Dennoch hat jedes seine Vorteile, bis auf ocmd, was definitiv das langsamste ist
dcmd = Ressourcen sparend
zcmd = schnell
und die anderen cmd Arten haben auch ihre Vorteile
mfg.
Warum sollte das bei so einer Abfrage von Nöten sein?
Naja, ganz einfach, weil es eine for-Schleife ist, und diese fängt bei 0 an und endet bei MAX_PLAYERS und wenn ein Spieler nicht "connected" ist, springt er direkt auf den nächsten Spieler
Das ist ressourcen freundlicher
mfg.
So sollte es eigentlich funktionieren, "FARBE" durch deine Farbe ersetzen und gut ist.
Nein, das ist falsch !
Mache es so:
ocmd:a(playerid,params[])
{
new inhalt[140];
if(sscanf(params,"s",inhalt)) return SCM(playerid,FARBE,"Nutze: /a [TEXT]");
format(inhalt,140,"[%s %s: %s]",AdminRankName(playerid),SpielerName(playerid),inhalt);
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(!IsPlayerConnected(i)) continue;
if(!IstSpielerAdmin(i,1))return SCM(i,FARBE,"Du bist kein Admin.");
SendClientMessage(i,FARBE,inhalt);
}
return 1;
}
mfg.