zB mit einer Kette
Ich sag mal so, das wäre schon machbar, aber wofür der Aufwand?
Wer nutzt schon einen ' in einem Dialogtext? Da kann man auch auf die Alternative mit " zurückgreifen ![]()
zB mit einer Kette
Ich sag mal so, das wäre schon machbar, aber wofür der Aufwand?
Wer nutzt schon einen ' in einem Dialogtext? Da kann man auch auf die Alternative mit " zurückgreifen ![]()
Ja...
Ding ist nur, dass ich das in einer Datenbank speichere und halt keinen Speicherplatz verschwende...
Zudem kann man meine Dialoge auch updaten, wenn man einfach einen mit der selben dialogid nochmal anzeigen lässt aber anders.
Also im Endeffekt kann man mit beiden Methoden das selbe machen...nur das man bei meinem nicht sein ganzes Skript umschreiben muss xD
Wäre es nicht sinniger, die Dialoge, die man häufiger benötigt, einfach komplett in einen Array zu schmeißen ?
1. Man hätte den Überblick über alle wiederholenden Dialoge
2. Man spart es sich, das in Funktionen "auszugliedern"
3. Man kann schnell Sachen ändern und auch hinzufügen.
...kann man machen, aber dann ist die Include für was völlig anderes...
Ich hatte lediglich das Ziel für einfache abfragen, einen simplen Dialog wiederholen zu lassen.
Natürlich kann man direkt daraus einen riesen "Dialog-Prozessor" schreiben, wie y_dialog...aber darum ging es mir nicht...
PS: Ich weiß nicht genau wie du dir das vorstellst mach mal ein Beispiel..
Ich hab EasyDialog dafür erstellt, dass man zb. ein Dynamisches Fraktionssystem verwalten kann ohne dass man ShowPlayerDialog jedesmal schreiben muss.
und deine Include ist mehr für Scripter, die ein Statisches Script haben.
So haben beide Systeme Vor und Nachteile.
Was redest du da? ![]()
Unsere "Systeme" haben gar nichts miteinander zu tun...
Du kapselst den kompletten Inhalt von OnDialogResponse in eine Funktion...und ich sage einfach, dass man einen Dialog anhand seiner ID aufrufen kann.
Und wenn ein Dialog "dynamisch" generiert wird und öfters brauch, packt man das eh in eine Funktion...
Ich nutze ocmd.
Diesen Callback den du aufrufen willst, gibt es nur in zcmd.
In ocmd kannst du das einfach so machen:
public OnPlayerCommandText(playerid,cmdtext[])
{
new string[128];
format(string,sizeof(string),"[BFG]: Der befehl %s existiert auf unseren Server nicht, nutze /help für die Hilfe!",cmdtext);
return SendClientMessage(playerid,0xFF0000FF,string);
}
Da bei ocmd der Callback nur aufgerufen wird, wenn keine Command-Funktion gefunden wurde ![]()
mfg. ![]()
Welchen Command-Prozessor nutzt du denn? ![]()
die keine Dynamischen Inhalte in Dialogen brauchen.
Inhalte die du "dynamisch" generierst können logischerweise nicht "konstant" gespeichert werden.
Somit muss der Algorithmus immer wieder aufgerufen werden um den Inhalt zu generieren.
Das ist nun mal so, da kann ich nichts dran ändern und das hat auch eigentlich nichts mit der Funktionalität meiner Include zu tun.
mfg. ![]()
War nur eine Anmerkung, da ich selber es deutlich besser finde, wenn die Auswertung von Dialogen in einer Include geschied.
Dann kannst du das ja trotzdem machen...und wer nicht will, muss es nicht machen...
Also was ich meine ist halt, wenn man Dynamische Inhalte in ein Dialog anzeigen möchte.
Dein Code macht so keinen Sinn...
Da dem Spieler hier nur das letzte Ergebnis wo der Dialog angezeigt wird gezeigt wird.
Aber ja mit meiner Funktion kannst du ihm nur das letzte Ergebnis von dem ShowPlayerDialog anzeigen.
Mehr soll meine Funktion ja auch nicht machen ![]()
Er möchte gerne seine Maps Zeigen/Presentieren/Anschauen.
Das ist mir schon klar...
Trotzdem brauch er da ein Skript ![]()
und ob er jetzt seinen Lokalen PC als Server verwendet oder sich irgendwo anders einen "TestServer" holt...macht ja jetzt nicht so den Unterschied, da er das Skript so oder so braucht ![]()
ich kann zwar mappen aber leider nicht scripten oder sonstiges
Was bringt dir dann ein Server? ![]()
Du musst ja so oder so ein Skript auf den Server laden.
Im Endeffekt musst du das einfach nur so machen:
#include <a_samp>
main() { }
public OnGameModeInit()
{
AddPlayerClass(299, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0); //Damit ihr Spawnt
CreateVehicle(560,5,0,3,0,2,2,-1); //Damit ihr ein Auto habt
//Hier deine Maps rein
return 1;
}
mfg. ![]()
new veh = GetPlayerVehicleID(playerid), PAngle = GetPlayerFacingAngle(playerid);
Das musst du so schreiben:
new veh = GetPlayerVehicleID(playerid),Float:PAngle;
GetPlayerFacingAngle(playerid,PAngle);
mfg. ![]()
Wie sieht es denn mit dem Speedtest aus?
Das anzeigen verzögert sich um max 18ms...und die Funktion ReShow zeigt den Dialog in ~1ms an.
Außerdem hat man die Verarbeitung von Dialogen immernoch im public "OnDialogResponse".
und? Darum geht es ja nicht, nur um den erneuten Funktionsaufruf.
man hat mit deinem nur das Problem bei Dynamischen Sachen.
Was meinst du damit? ![]()
Ich glaube er will sie mit seinem "Team" anschauen
Dann gibt es sowas wie "Hamachi" oder Portfreigabe ![]()
Wie wäre es mit localhost? ![]()
MAX_PLAYERS = 500
GetPlayerPoolSize () = Die höchste ID auf dem Server
TextDrawSetString(himessage, newtext);
TextDrawSetString(textdrawid, str); //Die id musst du halt von deinem textdraw da einfügen...
TextDrawShowForPlayer(playerid, textdrawid);
Aber irgendwie lädt er die nicht hinein, hab ich das Gefühl.
Okay, dann schreibe es mal so:
Meistens ist es das hier: https://www.microsoft.com/de-d…oad/details.aspx?id=30679
Downloade dir mal die 32-Bit Version davon ![]()
Wie hast du gate deklariert? ![]()