Wie wäre es, wenn du die Strings mal richtig zurückgibst, anstatt auf die falsche Art und Weise?
Beiträge von Akino Kiritani
-
-
Macht er doch?
-
-
Wieso nutzt er es dann

Er nutzt es hauptsächlich zur umkonvertierung und schnellen hooksBeispiel:
public _Class_OtherRequestClass(playerid, classid)
{
if (YSI_g_sHookC)
{
#emit PUSH.S classid
#emit PUSH.S playerid
#emit PUSH.C 8
#emit LCTRL 6
#emit ADD.C 28
#emit PUSH.pri
#emit LOAD.pri YSI_g_sHookC
#emit SCTRL 6
#emit RETN
}
} -
Wenn du meinst, aber wenn du sowas zeigst warum nicht memcpy ?
Welchen Sinn hätte das? -
Hmm ich hab gestern zu hören bekommen, dass es wohl irgendwann in einer 0.3er Version neue Strassen eingefügt worden sind. Kann mir da einer genaueres sagen? Ich hab bisher noch nix gefunden.
Ich weiß nur was von 0.3chttp://k-dst.de/kategorien.php…Sections&ver=SA:MP%200.3c
http://k-dst.de/kategorien.php…Sections&ver=SA:MP%200.3c -
erhöht man ja den Heapspace...

Das sollte man aber erst dann tun, wenn es soweit ist und nicht dann wenn es einem passt.Kaum ein Programmierer kann sagen, "Ah jetzt, wird der Heap doch etwas knapp, wenn er das ausführt".
Sowas kann man eher vermuten und man sollte vorher auf die Reaktion des Programms warten,
denn PAWN wurde nicht konstruiert um dynamisch RAM/Speicher "abzugreifen"Manniac:
Einfach dort lassen.
Es entstehen keine Fehler.Wenn es dich wirklich stört, achte mal darauf ob du nicht mit dem -d3 Parameter compilierst und ob du nicht vielleicht etwas zu große Arrays hast
-
Weil du den Heap nicht überlasten kannst.
Der Heap kann wenn nur während der Laufzeit "überlastet" werden.
Das ist schon relativ schwer und funktioniert nur, wenn man viel auf Arrays zugreifen muss.Das Problem hatte [DT]Sniper schon einmal.
Der Heap legt sich in dem moment fest, in dem kompiliert wird.
Die "dynamic" Angabe ist dabei eher ein Richtwert.Allgemein sollte man #pragma nicht verwenden.
siehe unused und tabsize#pragma sollte von keinem Anfänger/Fortgeschrittenen verwendet werden,
denn man kann nie genau sagen, wie die Auswirkungen sind/sein werden. -
Dein Heapspace ist überlastet, schreibe folgendes in dein Script:#pragma dynamic 16480
mfg.

Warum willst du denn da den heap vergrößern?Das ist einfach unnötig.
Er hat keinen Fehler.Das ist nur eine kleine Übersicht, die auch auftaucht, wenn man mit -d3 compiliert oder viele Arrays benutzt.
Es ist sogehen maximal eine Warnung.Den Heap sollte man dann erst erhöhen, wenn sich der SA:MP Server meldet.
Der meldet sich schon rechtzeitig
Zitatdass er zu hohe und zu viele Arrays benutzt und deshalb der HeapSpace überlastet ist

Ja ne..
Ist klar
-
Ist das nicht bissl viel Resourcenfressend

Kommt drauf an wie du das schreibst
-
Du könntest das ganze aufnehmen und dann abspielen lassen.
Also NPC Funktionen nutzen.
Ich wünsch dir viel Spaß
-
Kann es passieren das ein Server laggt, wenn zuviele TDs gleichzeitig angezeigt werden?
TextDraws sind Clientseitig, daher nein -
Also wenn du mich damit meinst ja habe ich
und ich hab damit auch nicht gespart kannst ja selbst mal probieren.^^
Hab mir euren Code gerade noch mal angeschaut und mich etwas um die heapspace Funktion schlau gemacht.
Diese Funktion gibt lediglich den Wert zurück, der vom gesammten Script gebraucht wird.
Daher ist es nicht möglich über heapspace den momentan genutzten Speicher heraus zu finden.Das würde nur über ein Plugin gehen, welches direkt an die Schnittstelle im SA:MP Server gekoppelt ist.
Das heißt, ein bisschen memoryhacking wäre da nötig um dies herauszufinden
-
Hast du denn das ganze auch mal mit, strings probiert die global sind und nicht mit welchen die später wieder befreit werden?
-
string = "";
Davon hab ich nie gesprochen, du hast dort nur das Problem, dass PAWN an einigen Stellen mehr speicher benötigt,
deswegen ist es unsinnig so strings zuzuweisen.Das mit dem returnen von Strings ist nunmal so, da du Speicher verlangst, diesen aber nicht wieder freigibst, bzw freigeben kannst.
Da dieser eigentlich nicht vorhanden ist
-
-
Es geht ja dabei nur legendlich um den aufruf einer Funktion an die die demenstsprechenden wert übermittelt werden, wie schon oben genannt.
Wenn ich keinen Wert übergebe ist dieser in der Funktion logischerweise leer, ok in PAWN 0(NULL) aber seis drum
-
Ich glaube so etwas is bei mta möglich soweit ich weis vllt probierstes ma da

MTA nutzt ein anderes Prinzip.
MTA "ersetzt" die Modelle.SA:MP fügt welche hinzu

-
Naja , dies geht daher das jeder command der per ocmd erstellt wird wie auch bei den anderen Commandprozessoren
als public erstellt werden daher wird auch mit CallLocalFunction oder CallRemoteFunction gearbeitet
Wir sind doch schon viel weiter
@Schwabbel:
Entweder wird es ein Memoryleak werden, wo von ich eher wenig ausgehe, da wenn ein string gepusht wird, auch wieder released wird
oder er wird wohl einfach verpuffen. -
Das brauchst du gar nicht.
SA:MP liefert eine Custom.img + Custom.ide mit
Wenn du diese editierst und dort deine Objekte rein tust, muss sich der Spieler diese nur runterladen.
Anders wird das auch nicht mit deinem "ZusatzClient" funktionieren