Hey,
hab da derzeit ein Problem. Undzwar benutze ich die normale SAMP Class Selection beim spawnen, aber leider werden gemappte&gestreamte Objekte nicht erstellt bevor ich "Spawn" geklickt habe. Klar eine Möglichkeit wäre es die Objekte ganz normal per CreateObject zu erstellen, aber da das in meinem Fall etwas ungünstig wäre suche ich eine Option um die Objekte trotzdem per Streamer anzeigen zu lassen.
Eine Sache habe ich schon probiert:
stock SetPlayerPosOnObject(playerid, Float:objx, Float:objy, Float:objz)
{
Streamer_UpdateEx(playerid,Float:objx,Float:objy,Float:objz);
SetPlayerPos(playerid,objx,objy,objz+0.5);
TogglePlayerControllable(playerid,0);
return SetTimerEx("SetPlayerPosPublic",1000,0,"ifff",playerid,objx,objy,objz);
}
forward SetPlayerPosPublic(playerid,Float:objx,Float:objy,Float:objz);
public SetPlayerPosPublic(playerid,Float:objx,Float:objy,Float:objz)
{
TogglePlayerControllable(playerid,1);
return 1;
}
Hat leider nicht funktioniert. Hätte nochjemand eine Idee ?
Gemappte Objekte in der Class Selection
- Oskaar1994
- Geschlossen
- Erledigt
-
-
Die Objekte werden erst angezeigt wenn du deinen Spieler minimal bewegst.
Du könntest ja für die Class Selection einen zweiten Streamer nutzen, zum Beispiel einen von hier: http://forum.sa-mp.com/showthread.php?t=256447Dann würden die Objekte von dem Streamer nur angezeigt, wenn du auch dort bist, würde ja auch seinen Zweck erfüllen, außer dort ist es genau so, dass man sich bewegen muss.
-
Ich werde morgen mal das mit dem Bewegen probieren. Trotzdem sollte es eigentlich funktionieren, denn ich habe etwas in der Dokumentation von Incognito's Streamer gefunden:
Use Streamer_UpdateEx to preload items before setting a player's position or to stream items under OnPlayerRequestClass.
*edit* Ich habe einen kleinen Fehler gefunden glaube ich. Ich habe wenn ich die Funktion Streamer_UpdateEx aufrufe, vergessen die Float Tags zu entfernen.
Könnte das, das Problem sein ? -
Mit der Funktion habe ich noch nicht gearbeitet, da kann ich dir nicht sagen ob die, vor allem in der Class Selection, funktioniert.
An den Float Tags kann es eigentlich nicht liegen, das macht nichts aus. Aber kannst sie auch weg lassen, das ist relativ egal. -
Hab jetzt mal das mit dem Bewegen probiert, hat leider nicht funktioniert.
-
Nutzt du die Standard-Class-Selection, oder hast du eine eigene gemacht?
Bist du möglicherweise in einer anderen Virtuellen Welt, oder in einem Interior? -
Ich benutze die standart SAMP Class Selection. Ich habe auch schon mein Interior und virtuelle Welt überprüft.
Ist beides auf 0 und die Objekte erscheinen in allen Welten/Interiors. -
Poste mal die Objekte und die Koordinaten der Class Selection, dann teste ich es mal bei mir, ob es eine Möglichkeit gibt, die Objekte erscheinen zu lassen.
Hast dabei mit einem der anderen Streamer ausprobiert?
-
Poste mal die Objekte und die Koordinaten der Class Selection, dann teste ich es mal bei mir, ob es eine Möglichkeit gibt, die Objekte erscheinen zu lassen.
Hast dabei mit einem der anderen Streamer ausprobiert?
Ich habe es bisher nur mit Incognito's Streamer probiert, da ich meine, dass man das sicher irgendwie hinbekommt.
Also ich geb dir mal ein Beispiel Objekt welches in der Class Selection gut sichtbar sein sollte:CodeCreateDynamicObject(11008, 2107.68848, -2348.51685, 19.49200, 0.00000, 0.00000, -90.00000,-1,-1,-1,300.0,300.0);
Die Koordinaten + AddPlayerClass:
-
Also bei mir geht es, wenn ich bei OnPlayerRequestClass das hier hinschreibe:
Streamer_UpdateEx(playerid,2107.68848, -2348.51685, 19.49200);Ohne das geht es nicht.
-
Also ich weiß wirklich nicht was ich falsch mache. Wenn ich Streamer_UpdateEx benutze klappt es trotzdem nicht. Das Objekt erscheint für ca. eine halbe Sekunde und dann ist es wieder weg.
Ich schaue jetzt mal ob ich die neuste Version vom Streamer habe.
*edit* Habe den Streamer geupdatet, aber immer noch das gleiche Problem. -
Teste es mal auf einem leeren Server, ich habe es einfach so getestet:
Spoiler anzeigen #include <a_samp>
#include <streamer>Spoiler anzeigen main()
{
print("\n----------------------------------");
print(" Blank Gamemode by your name here");
print("----------------------------------\n");
}Spoiler anzeigen public OnGameModeInit()
{
// Don't use these lines if it's a filterscript
SetGameModeText("Blank Script");
AddPlayerClass(61,2094.7571,-2360.3594,13.8497,172.5058,0,0,0,0,0,0);
CreateDynamicObject(11008, 2107.68848, -2348.51685, 19.49200, 0.00000, 0.00000, -90.00000,-1,-1,-1,300.0);
return 1;
}Spoiler anzeigen public OnPlayerRequestClass(playerid, classid)
{
SetPlayerPos(playerid, 2094.7571,-2360.3594,13.8497);
SetPlayerFacingAngle(playerid, 172.5058);
SetPlayerCameraPos(playerid, 2093.974609, -2366.308105, 13.8497);
SetPlayerCameraLookAt(playerid, 2094.7571,-2360.3594,13.8497);
Streamer_UpdateEx(playerid,2107.68848, -2348.51685, 19.49200);
return 1;
}
Da ging es einwandfrei.Möglicherweise hast du zu viele Objekte bereits geladen, schau mal bei F5 nach.
-
Also auf einem leeren Server funktioniert es bei mir auch.
Also ich glaube an der Anzahl von Objekten sollte es nicht liegen. In der Class Selection sind laut F5 8 Objekte geladen und wenn ich gespawned bin sind es 27.
Ich finde es halt auch sehr komisch, dass die Objekte für ca. eine halbe Sekunde angezeigt werden und dann wieder verschwinden*edit* Manchmal erscheinen die Objekte jetzt sogar, aber leider nur manchmal. Es scheint kein offensichtliches Muster zu geben, nachdem die Objekte spawnen oder nicht.
-
*edit* Manchmal erscheinen die Objekte jetzt sogar, aber leider nur manchmal. Es scheint kein offensichtliches Muster zu geben, nachdem die Objekte spawnen oder nicht.
Das sieht mir dann aber nicht nach einem Problem am Code direkt aus, sondern eher ein allgemeines Problem oder einen Fehler an einer anderen Stelle.Hast du mal versucht, die Objekte in einem Filterscript zu laden, den du als ersten Filterscript lädst? Geht es dann?
-
breadfish.de
Hat das Thema geschlossen.