So springt das Script von Funktion zu Funktion und gut ist.
Was von Funktion zu Funktion.
...dauert:
[15:51:03] 1x - 3ms
[15:51:03] 20x - 30ms
So springt das Script von Funktion zu Funktion und gut ist.
Was von Funktion zu Funktion.
...dauert:
[15:51:03] 1x - 3ms
[15:51:03] 20x - 30ms
dann haste schon wieder viel mehr Platz.
Der Platz in der .pwn ist nebensache.
Es ist schneller Code direkt auszuführen als über schleifen...in diesem Fall sollte er es so lassen, da das schneller ist ![]()
mfg. ![]()
Du solltest Fehler bzw Warnings einbauen, wo es mehrere Möglichkeiten gibt diese zu lösen und dann schauen, wie effizient man diese dann auch gelöst hast ![]()
Ich meine...wenn man z.B. sowas hat:
for(new i; i<GetMaxPlayers(); O++)
{
SendClientMessage(i,-1,"Opfer");
}
Dann wird da ein Fehler kommen und zwar ist ja O nicht deklariert.
Wenn man es jetzt so macht:
new i;
SendClientMessage(i,-1,"Opfer");
Dann ist ja kein Fehler mehr da...aber das ist nicht das...was wirklich gefordert war und auch wenn man es so löst:
for(new i; i<GetMaxPlayers(); i++)
{
SendClientMessage(i,-1,"Opfer");
}
Ist es nicht sehr effizient.
Es gibt jetzt hier mehrere Möglichkeiten das gut zu lösen, wenn man unbedingt diese Funktion nutzen will und es am effizientesten machen will und mal die Reihenfolge außer acht lässt, da sie hier trivial ist:
for(new i=GetMaxPlayers(); i!=-1; i--)
{
SendClientMessage(i,-1,"Opfer");
}
Das wäre hier definitiv die beste Lösung.
Alternativen wären auch noch folgende, die aber langsamer sind, da man immer auf eine Variable zugreifen muss:
for(new i,l=GetMaxPlayers()+1; i<l; i++)
Wichtig ist hier das +1...wenn man das z.B. vergessen hätte...würde man den letzten index nicht beachten und hätte somit ja einen Fehler.
Da kann man einige anspruchsvolle Aufgaben stellen, die nicht so pille palle sind wie mal eben kurz paar Errors fixxen ![]()
mfg. ![]()
Was steht bei dir unter OnPlayerRequestClass ? ![]()
Das kommt auf das Objekt an, aber eigentlich sollte es gehen, mit dem letzten parameter einfach auf center setzen: https://wiki.sa-mp.com/wiki/SetObjectMaterialText
Hmm dein System wird so gar nicht funktionieren...diese Zeile ist sehr falsch:
new pID = listitem;
Das stimmt nicht.
//Edit: Sorry keine Zeit mehr dafür...
Aber schau dir evtl paar Beispiele an: Ticket System
http://forum.sa-mp.com/showthread.php?t=158674
Wie kann ich das mit dem /sup (Nach dem der Report geöffnet wurde) dass Supporter und Spieler zusammen kommunizieren können am besten scripten?
Einfach unter OnPlayerText schauen ob der Spieler ein Ticket hat...und ob der Admin online ist...dann dem senden und umgekehrt ![]()
und ist auch nicht gedacht um damit herum zu Fahren
Achsoo ![]()
Dann kannst du das so lösen ![]()
Auch das kann man gut verwalten in dem man sich ein Controller schreibt und die hocking methode mit state nutzt
Das ist egal.
Ich rede von der Ausführungszeit wenn es große Funktionen sind.
Dann wirst du es nie schaffen, ohne Zeitversetzung die Funktionen (bzw Callbacks) aufzurufen...und das Problem ist einfach je mehr du das machst desto später werden sie logischerweise aufgerufen...
Bei 30x...und jeder Callback muss 20ms verarbeitet werden hast du schon beim letzten mehr als 600ms delay... ![]()
wie kann ich das Object dann Bewegen ?
oder wieder Unattachten ? aber halt an dieser Stelle lassen ?
Nun...gar nicht attachen.
Erstelle das Objekte und dann musst du in dein MoveObject die Position vom Auto + Geschwindigkeit halt berücksichtigen...damit sich das immer updatet ![]()
Also...das ist alles andere als einfach, das gut hinzubekommen ![]()
Aber versuchs mal so (ungtestet aus dem Kopf geschrieben):
new obj;
ocmd:test(playerid)
{
new Float:x,Float:y,Float:z,v=GetPlayerVehicleID(playerid);
GetVehiclePos(v,x,y,z);
obj = CreateObject(1430,x,y,z+0.75,0,0,0);
MoveObject(obj,x,x-0.225,y-0.5,z+0.75,10.0,-121.499946);
}
und dann theoretisch unter OnObjectMoved...prüfen ob sich das auto bewegt und dann permanent die Achsen anpassen ![]()
Aber...das ist ziemlich bescheuert..und kompliziert..denk dir lieber was anderes aus ![]()
Nun, das geht nicht, da du attachte Objekte nicht mit MoveObject bewegen kannst ![]()
ich hatte es erstellt und ans Fahrzeug geheftet und dann ein Befehl gemacht aber es ging nicht ?
Wie sieht denn dein Befehl aus? ![]()
Ich wollte eine Tür so umschreiben das sie automatisch beim Gegenlaufen sich bewegt.
Nun, es gibt viele Türen die das automatisch machen, wie z.B. 1491
Wenn du es manuell machen willst musst du prüfen ob der Spieler ganz nah an der Tür ist mit einem Timer...und dann MoveObject nutzen ![]()
mfg. ![]()
format(string,sizeof(string),"Tüv: Ja");
Schreibs einfach so:
format(string,sizeof string,"T\172v: Ja");
und eine frage wie kann ich ein Object was ich am Fahrzeug Attachted habe bewegen ?
Indem du logischerweise die Koordinaten änderst... ![]()
in 10-20 Includes hooken
Das geht...aber irgendwann geht es logischerweise enorm auf die Performanz ![]()
Die Computer-IP und die Internet-IP sind vom Saat festgelegt und können nicht geändert werden alle 24stunden aber auch egal
So ein Quatsch...
//Edit: Achso habe gerade mal deinen Post gelesen.
Mach einfach, dass man erst ab level 3 Geld anderen Spielern geben kann.
Und check regelmäßig die User auf Multiaccount...dann kann es nicht so zu problemen kommen ![]()
So habe es nun auf Pastebin hochgeladen.
Also ja das sieht soweit alles richtig aus:
plaŸé¿o_^>ÊzÔRwEIuø·7ËÇ‚AH)4‡p°×yAfó½”É<.+¤
89.y€wÌRf²·Ÿ¾â1µã.þ'i8°v¶„›v]¯qÖÏi‡´èF*¥ƒQíЕí÷|0Ùq4"f_vÄI×ךbQê„ÄåæÒ`³”xqÝu{xKÏVC8íZiLÙØóÐ5;Mبe_€TW,³£H°fGu¬0†SNå=N1®†‚å5Yþá
Ich wüsste nicht wo da ein Fehler sein könnte ![]()
Ein Actor ist ja auch kein Spieler....
Du kannst nur statisch das Label an der Position des Actors erstellen ![]()
Die ID 19198 kommt am nächsten da ran.
Die pickup Hm wie soll ich das beschreiben
Es ist halt ne Pickup die an ihrem platz bleibt aber die von oben nach unten Heller oder Dlunkler wird
Seit 0.3.7 gibt es den originalen Marker aus gta der sich bewegt: 19902
mfg. ![]()
wäre das so richtig ?
Genau...nur als Beispiel..kannst das ja alles anpassen ![]()
stock ist ja klar aber was hat das const und das char zu bedeuten ?
Das const bedeutet, dass es konstante werte sind und das char packed das quasi...das ist egal, du sparst dadurch Speicher ![]()