Der letzte Parameter bestimmt die virtuelle Welt, korrekt. Warum hast du dort -1 gewählt?
Beiträge von Campbell
-
-
Ja, du musst dich eben irgendwie dort hinteleportieren. Wie du das machst, das bleibt dir überlassen.
-
Enumeratoren sind nichts anderes als Aliase mit Gültigkeitsbereich. Das ist gerade der Vorteil von Enumeratoren, denn so kann man Struktur schaffen. Wie du die Struktur aufbaust und was für Aliaslisten du baust, das bleibt dir überlassen. Das kann im Anwendungsfall dann entweder gut oder schlecht sein. Vielleicht hilft dir das weiter: http://home.fhtw-berlin.de/~junghans/cref/SYNTAX/enum.html
-
Da hast du doch auch CreateObject() und X, Y und Z Koordinaten. Was ist das Problem?
-
Erkläre mir, wieso du -1 als letzen Parameter verwendet hast. Dann beantwortest du dir deine eigenen Frage.
-
Und wie mache ich das?
Was? Gebe dir doch etwas Mühe mit deiner Problembeschreibung... Wo klempts, was hast du bisher, was hast du dir angeschaut, ...?Schaue dir die Parameter an: http://wiki.sa-mp.com/wiki/CreatePickup
-
Du musst dir die GTA:Karte wie einen Kasten vorstellen. Unten ist die Karte die man so kennt, Pershing Square, Idlewood, Market, ...
Oben im Himmel versteckt sind die Interiors. D.h. wenn man in einen Interior geht, dann springt man irgendwo in den Himmel. Wenn man nun einen Interior mappt ist das nicht anders. Der ist irgendwo im Himmel. Nehmen wir an das ist ein Objekt des Interiors:
CreateObject(2587, 2001.195679, 1547.113892, 14.283400, 0.0, 0.0, 96.0);
So, nun springst du eben zu diesen Koordinaten:
SetPlayerPos(playerid, 2001.195679, 1547.113892, 14.2834009);
Einen genauen Spawnpunkt kannst du ja später In-Game per /save festlegen. Oder du haust erst den Interior in ein Mapping Programm /save'st dort und nimmst direkt diese Koordinaten. -
PDO und MySQLi sind keine Fremdwörter für Google!
-
Schau dir die Parameter von CreateObject() an. Dort steht die X, Y und Z Koordinate und u. U. der Interior und die Virtual World. Meist sind aber die meisten Interiors in allen Interiors und alles Virtual Worlds vorhanden, dann sind SetPlayerInterior() und SetPlayerVirtualWorld() schnuppe. Man kann aber alles anpassen. Musst dir eben dir Parameter anschauen.
-
Man ersetzt nichts, man teleportiert einfach per SetPlayerPos(), SetPlayerInterior() und SetPlayerVirtualWorld() dort hin.
-
Du kannst in CreatePickup() einer virtuelle Welt setzen. Damit kannst du es im einen Interior ausblenden. Oder du verwendest am besten direkt einen Streamer wie z.B. Incognitos Streamer.
-
-
Das ist so nicht ganz korrekt.
- Ein String wird NULL-terminiert. D.h. ein String endet mit einer 0 oder '\0'.
- Derzeit können bei SA:MP nur Leute mit Namen von einer Länge zwischen 3 und 20 Zeichen verbinden. Folglich kann man MAX_PLAYER_NAME, was derzeit auf 24 gesetzt ist auf 21 setzen.
// NULL-Terminator:
string[4] = 0;
// oder:
string[4] = '\0';
// Beispiel:
new string[9];
string[0] = 83;
string[1] = 65;
string[2] = 77;
string[3] = 80;
string[4] = 124;
string[5] = 83;
string[6] = 65;
string[7] = 77;
string[8] = 80;
print(string); // Gibt aus: "SAMP|SAMP"
new string2[10];
string2[0] = 83;
string2[1] = 65;
string2[2] = 77;
string2[3] = 80;
string2[4] = '\0';
string2[5] = 124;
string2[6] = 83;
string2[7] = 65;
string2[8] = 77;
string2[9] = 80;
print(string2); // Gibt aus: "SAMP" - String wurde bei string[4] terminiert!// Redefine:
#if defined MAX_PLAYER_NAME
#undef MAX_PLAYER_NAME
#define MAX_PLAYER_NAME (21)
#endif -
Dann solltest du damit anfangen. Das sind Basics. Spiele etwas mit Arrays und for-Schleifen in der main()-Funktion rum, sodass du ein Gefühl dafür bekommst. Dinge, die du in der main()-Funktion machst, werden direkt im cmd-Fenster beim Verwenden der samp-server.exe ausgeführt und wenn du print/printf verwendest auch ausgegeben.
-
Was hälst du von einer Problembeschreibung, sodass man dir auch helfen kann?
-
- Erstelle einen TextDraw - nur die Schrift! - dort, wo du den ersten Eintrag haben möchtest.
- Füge diesen TextDraw unter OnGameModeInit() ein.
- Verpasse dem TextDraw eine for-Schleife und erstelle in einer Schleife soviele TextDraws, wie du Zeilen haben möchtest. D.h. du wirst einen Array für die TextDrawIDs benötigen. Auch wirst du auf der y-Koordinate die TextDraws verschieben müssen. Du musst also zum Beispiel schreiben: Y-Koordinate + i * 10. Musst eben schauen, wann es vom Design her passt.
- Wenn nun eine Supportnachricht empfangen wird, verpasst du dieser Supportnachricht eine ID. Diese ID repräsentiert die Zeile, in der die Nachricht angezeigt wird bzw. auch die Nummer, in der Schlange von Supportanfragen.
- Dann verwendest du TextDrawSetString() und TextDrawShowForPlayer() - TextDrawShowForPlayer() natürlich nur für diejenigen, die es auch sehen sollen und in TextDrawSetString() kannst du nun die TextDrawID dieses TextDraws verwenden, dessen Index im Array = die ID der Supportnachricht ist.
- Beim löschen der Supportnachricht musst du nun folglich die IDs und TextDraw-Strings updaten.
Schritt für Schritt Anleitung ist gegeben. Wenn du Fragen hast, bitte Ansatz posten mit expliziter Frage zum Schritt mit Problembeschreibung. -
Ob nun Glück dahintersteckt oder evt. eine Systemlücke oder eine gezielte Manipulation, das werden wir wahrscheinlich nicht herausfinden. Zum Thema Zufallszahlenbestimmung in der Informatik, meist werden sog. Pseudozufallszahlengeneratoren verwendet (http://users.minet.uni-jena.de/~hinze/fv-hinze.pdf, vgl. Seite 6ff.).
-
Man kann es auch mit diesem Kick/Ban Fix von Beavis machen.
[ INCLUDE ] Kick/Ban Fix
Ist doch das genau gleiche Prinzip. Zum Quellcode von Mentalist. Warum verwendest du zwei Strings von der Größe von 128? Das macht keinen Sinn. Vor allem auch wenn du den einen String in den anderen einsetzen möchtest. Auch kann man niemals 128 Zeichen als Grund eingeben! -
Schaue dir die Parameter der Funktion CreatePickup() an. Ich denke kaum, dass dort irgendwo ein Float:A-Parameter existiert. Warum 4 Floats? Du benötigst doch nur X, Y und Z!
-
Alles läuft ja perfekt, nur das die Namen nicht angezeigt werden
Das beantwortet nicht die Fragen. Stellst du dir die oben genannten Fragen, dann kommst du auch auf dein Problem.