Es ist unnötig alle 499ms die Datei zu öffnen und wieder zu schließen, fexist reicht völlig für eine Abfrage.
Ich prüfe doch, ob sie existiert oder nicht
Nur wenn sie existiert, lese ich das aus ![]()
mfg. ![]()
Es ist unnötig alle 499ms die Datei zu öffnen und wieder zu schließen, fexist reicht völlig für eine Abfrage.
Ich prüfe doch, ob sie existiert oder nicht
Nur wenn sie existiert, lese ich das aus ![]()
mfg. ![]()
Mein Problem ist das sich mein Filterscript durch den public OnPlayerUpdate an den public OnPlayerConnect bindet.
Meine frage ist jetzt ob es eine andere möglichkeit gibt Textraws ab einem bestimmten Zeitpunkt abzudaten und das ohne OnPlayerUpdate.
Ich dachte mir ich mache aus den Updates einen stock aber wohin dann mit dem stock, das sich der auch regelmäßig Updatet?
Mal ein paar Informationen:
1. Es gibt keinen "stock"..das ist nur ein Wort welches für den pre-Compiler da ist, der dann die Variable oder Funktion ignoriert, mehr dazu hier: [ SCRIPTING ] Der Mythos "stock"
2. Normale Funktionen (ohne public), können nicht per Timer oder CallxxxFunction aufgerufen werden.
3. Du kannst jederzeit einfach einen Timer erstellen, der zu einer x-Zeit wiederholt diese public-Funktion aufruft, somit kannst du auch OnPlayerUpdate ignrieren.
Wie kann ich eine eigenen AudioDatei im Server abspielen lassen?
Schau dir das mal an: PlayAudioStreamForPlayer
mfg. ![]()
anders bekommt man nur errors und wenn man a_samp includiert, dann bekommt man nur noch mehr errors.
Ich hatte es schonmal ausprobiert.
Gab schon öfters diese Fragen...hier eine Möglichkeit: a_npc Include in Gamemode einfügen
mfg. ![]()
und es verändert sich die Sicht usw....
Also muss irgendwo ein Fehler sein bei der Abfrage oder bei der wiedergabe der Variable.
Willst du mir gerade klar machen, dass eine String abfrage die Kamera Position vom Spieler beeinflusst? ![]()
Kommt dir das nicht selbst unmöglich und suspekt vor? ![]()
Wenn die Kamera plötzlich nicht mehr hinter dem Spieler ist, nutzt du auch Funktionen die das beeinflussen...
Also lösche alle diese Funktionen oder als "Notlösung" setz die Kamera Position mit SetCameraBehindPlayer(playerid); wieder hinter ihn ![]()
mfg. ![]()
Ingame wir durch die Variablen wie z.B. NameH die CameraPos verändert.
Was?
Drück dich doch mal aus, was genau willst du tun und was genau funktioniert nicht?
mfg. ![]()
(Kann man das irgendwie umschreiben oder nicht)?
Ja kannst du:
public OnPlayerCommandText(playerid,cmdtext[]) {
//Hier alle deine Befehle
return SendClientMessage(playerid,-1,"SERVER: Der eingegebene Befehl existiert nicht!");
}
mfg. ![]()
Einfach sowas machen:
//Oben im Skript:
new Zustand = 100;
//Unter OnGameModeInit
SetTimer("@z_v",1000*10,1);
//Und dann unten im Skript
@z_v();@z_v() {
if(!Zustand) {
//Was passieren soll, wenn der Zustand 0% hat
}
return Zustand--;
}
//Und den Command schreib mal so:
ocmd:zustand(playerid) {
new string[12];
format(string, sizeof(string),"Leben: %d%", Zustand);
return ShowPlayerDialog(playerid, DIALOG_ZUSTAND, DIALOG_STYLE_MSGBOX, "Zustand", string, "Ok", "");
}
mfg. ![]()
Frage 1: Mich würde mal interessieren was denn alles genau viele Ressourcen zieht, also unnötige Zeilen die man sich sparren kann?
[ SCRIPTING ] Code Optimierung
Frage 2: Wie schauts aus mit ocmd: wenn alle Befehle mit ocmd: und strcmp sind ist das schlecht, oder was ist am besten?
Das macht keinen direkten Unterschied...
Frage 3: Und ist es schlimm wenn man viele publics und stocks benutzt oder sollte man dies lieber vermeiden?
Naja, Funktionsaufrufe dauern natürlich ein wenig länger, als wenn man das direkt schreibt. Allerdings ist es auch manchmal Notwendig Funktionen zu nutzen...
Frage 4: Und wie kann man eigentlich die Ressourcen eines Scripts herausfinden? An der Speicherkapazität eines Scripts?
Mit Ressourcen wird zum einen der Speicher gemeint, zum anderen aber auch wie flüssig das Skript läuft...
Frage 5: Wenn ja wie viele MB's sollte ein komplettes, Ressourcen sparrendes Script betragen?
Das kann man pauschal nicht sagen...oder kannst du mir sagen, wie viel MB eine gute Software hat?
Man sollte halt so gut es geht versuchen Speicher zu sparen ![]()
mfg. ![]()
Es wird alles auser Hour ausgegeben, habe das auch printen lassen
Bist du doof? ![]()
Es ist ja auch 0 Uhr ![]()
Gibt aber immer irgendwie noch Probleme mit TextDrawDestroy.
Dann versuch doch mal Warnings eigenständig zu lösen ![]()
Es muss so heißen, wie der Warning es schon sagt:
TextDrawDestroy(Textdraw0);
TextDrawDestroy(Textdraw1);
TextDrawDestroy(Textdraw2);
mfg. ![]()
Function not registered: 'mysql_query'
Du nutzt das falsche MySQL Plugin + Include ![]()
Downloade dir mal das einheitlich nochmal ![]()
mfg. ![]()
Script[gamemodes/Script1.amx]: Run time error 19: "File or function is not found"
Downloade dir mal das nativechecker Plugin und poste mal, was dann in den Logs steht ![]()
mfg. ![]()
jetzt geht mein login system nicht mehr und es wird auch kein geld o.ä geladen
Tja...das ist natürlich doof, wenn man Includes von Leuten nutzt, die nicht richtig hooken können ![]()
Schreib im Include unter OnPlayerConnect...
CallLocalFunction("FB_OnPlayerConnect","d",playerid);
Dann sollte es gehen ![]()
mfg. ![]()
Ändere folgendes mal in der FoXban.inc:
In der letzten Zeile steht folgendes:
# Define OnPlayerConnect FB_OnPlayerConnect
Lösche die Zeile und schreib folgendes:
#if defined _ALS_OnPlayerConnect
#undef OnPlayerConnect
#else
#define _ALS_OnPlayerConnect
#endif
#define OnPlayerConnect FB_OnPlayerConnect
mfg. ![]()
Die unterbricht komischerweise so komisch...
Mach es mal so:
ApplyAnimation(i, "ON_LOOKERS", "wave_loop", 4.0, 1, 0, 0, 1, 0, 1);
Wie erstelle ich ein Random aus Spieler welche nur eine gewisse Variable haben.
Also Beispiel, Spieler XY und Spieler ZY haben beide die Variable 1 und sollten somit beim random dabei sein.
Es sollte immer einer der ganzen im random ausgewählt werden.
So kann man das lösen:
new list[4],idx;
for(new i; i<MAX_PLAYERS; i++) {
if(!IsPlayerConnected(i) || !var[i]) continue;
list[idx] = i,idx++;
}
//Und hier kannst du das dann so nutzen:
new randomSpielerID = list[random(4)];
Bei dem Beispiel nehme ich an, dass es nur 4 Spieler sind die diese Variable (var[ i ]) auf true bzw nicht gleich 0 haben ![]()
mfg. ![]()
Kann du den Fehler genauer erläutern?
Achso okay habe es nochmal gerade getestet.
Wenn man bei Facebook nicht angemeldet ist und sich einloggt, dann klappt es ![]()
Wenn man allerdings schon angemeldet ist und dann darauf klickt, kommt es zu einem Error und dann ist die Seite für einen Offline ![]()
mfg. ![]()
In diesem Thread sollen bitte nur Verbesserungsvorschläge, Bugs und neue Ideen gepostet werden.
Habe es mir noch nicht genau angeschaut, aber ein Bug ist mir direkt aufgefallen, die API mit Facebook funktioniert nicht ![]()
//Edit: Entweder ist deine Seite offline..oder der Bug hat sie crashen lassen ![]()
mfg. ![]()
Aber die Inkludierung von der samp include brauchst du doch eigendlich nicht, oder täusche ich mich da?
Nun, sicher ist sicher ![]()
#include <a_samp>
#include <KindVehicle>
Das würde ohne Fehler funktionieren, da könnte man auch das Includieren weg lassen, da man es ja im Gamemode schon macht.
Aber folgendes:
#include <KindVehicle>
#include <a_samp>
Das würde zu Fehlern kommen, da auf Funktionen zugegriffen werden, die in der a_samp Include sind ![]()
Aus diesem Grund ist es halt sicherer, dass es auch ja nicht zu Fehlern kommt und durch die Directives in der a_samp Include kann sie auch nicht 2x includiert werden ![]()
Aus diesem Grund ist das besser so, wie er es gemacht hat ![]()
//Edit:
Was er noch machen sollte wäre sowas:
#if defined _KindaVehicle
#endinput
#endif
#define _KinaVehicle
Damit sein Include nicht 2x includiert werden kann ![]()
mfg. ![]()
"UPDATE Spielerautos SET X='%f',Y='%f',Z='%f',ROTATION='%f' WHERE DB_ID='%i'"
Diese Zeile verursacht den Fehler ![]()
Schreibe sie mal so:
format(query,sizeof(query),"UPDATE `Spielerautos` SET `X`='%f',`Y`='%f',`Z`='%f',`ROTATION`='%f' WHERE `DB_ID`='%i'",cInfo[i][carx],cInfo[i][cary],cInfo[i][carz],cInfo[i][carrota],cInfo[i][DB_ID]);
und wenn das nichts hilft, printe dir mal, was daraus kommt...überprüfe deine Werte und schau ob das auch alles wirklich existiert ![]()
mfg. ![]()
Bisschen was falsch kann das sein ?
Ja...mach es so:
new bool:d_response; //Das ist eine globale Variable
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == DIALOG_SPIELAUSWAHL) {
if(!response) return 1;
switch(listitem) {
case 0: //Hier Code, aber kein return!
case 1: //Hier Code, aber kein return!
case 2: //Hier Code, aber kein return!
}
if(!d_response) d_response=true;
else {
d_response=false;
//Hier kannst du dann weiter machen, da beide gewählt haben
}
}
return 0;
}
mfg. ![]()