if(pID == INVALID_PLAYER_ID)
zu:
if(pID != INVALID_PLAYER_ID)
Sonst kannst du nur Spielern ein Wanted geben, die eine ungültige ID haben. Das widerspricht sich. ![]()
if(pID == INVALID_PLAYER_ID)
zu:
if(pID != INVALID_PLAYER_ID)
Sonst kannst du nur Spielern ein Wanted geben, die eine ungültige ID haben. Das widerspricht sich. ![]()
Hab noch nie mit dem Objekt gearbeitet. Aber anstatt den unseriösen Vorpostern zu vertrauen, solltest du es lieber selbst ausprobieren.
Das ist eine interessante Methode, wenn du es so sagst. Dein erster Post sah ja zu Anfangs auch nicht so aus, den hast du nach meinem Post noch geändert, sonst hätte die Sache etwas mehr Sinn ergeben, da stand aber nur "CreatePlayerObject" und das wars. ![]()
Wenn man das ganze so macht, dann würde ich noch
PlayerPlaySound(playerid, 1159,x,y,z);
hinzufügen, damit du den Sound hast.
Wobei die Aussage immer noch gilt: Explosionen können nicht für einzelne Spieler angezeigt werden.
Man kann jedoch eine Explosion nachbauen (Thx @ Aki für die Objekt ID).
Nein, da gibt es keine Möglichkeit.
Explosionen werden für alle Spieler in allen virtuellen Welten angezeigt.
Aki: Was sollte das bringen?
Also, das liegt daran, dass die Abfrage nie aufgerufen wird. Du musst folgendes machen:
if(i == sizeof(TicketsUsed)) return SendClientMessage(playerid,COLOR_GRUEN,"Es sind gerade alle Ticket Slots belegt. Bitte versuche es später erneut.");
Aus der schleife entfernen.
freeID=-1;
Vor die schleife setzen.
if(freeID == - 1) return SendClientMessage(playerid,COLOR_GRUEN,"Es sind gerade alle Ticket Slots belegt. Bitte versuche es später erneut.");
Nach der schleife einfügen.
stock SendCNR(color, text)
stock SendFree(color, text)
zu:
stock SendCNR(color, text[])
stock SendFree(color, text[])
text ist jeweils ein String und muss auch als solcher gekennzeichnet werden. ![]()
stock CreateAccount(playerid, pass[])
zu:
stock CreateAccount(playerid, pass[256])
Es muss eine Array Größe angegeben werden, wenn das Array von einer weiteren Funktion (in dem Fall mysql_escape_string) von sizeof aufgerufen wird.
Den Code für dein Problem hab ich dir ja schon gegeben, hoffe du hast das gesehen.
Ein Beispiel:
new playerid = 15;
if(IsPlayerConnected(playerid)) SendClientMessageToAll("ID 15 Connected");
else SendClientMessageToAll("ID 15 Nicht Connected");
Siehe hierzu: http://wiki.sa-mp.com/wiki/Control_Structures
Hei, wenn ich davor "else" mache also vor dem if kommen dann errors...
Ja. Das kannst du dir ganz leicht merken, dass das nicht geht:
Wenn (if) x, dann ({ }) y, ansonsten (else) z.
Den Satz kannst du auch nicht umdrehen, und so ist es mit if und else. Erst if, dann else (falls nötig).
http://wiki.sa-mp.com/wiki/GangZoneCreate
Sollte klar sein.
Beachte, dass z.B. -1500 KLEINER ist als -100.
new Float:DtcSonstiges[AUTOHAUSER][5][4] = { //Zahlen berichtigt.
{//2Räder LS
{1219.4432, -1427.3168, 13.3602, 0.0}, // Info Zeichen etc.
{1219.3173, -1441.6929, 44.7522, 340.2388}, // LiveView Car
{1212.9812, -1443.4077, 45.1510, 0.0}, // LiveView Cam
{1209.7979, -1448.4766, 45.2224, 0.0}, // LiveView Player
{1219.2841, -1421.4926, 13.2727, 178.5745} // LiveView Player Exit
},
{//LS CarSeller
{2794.5720, -1087.7042, 30.7188, 0.0}, // Info Zeichen etc.
{2793.1926, -1074.0157, 93.9885, 301.3163}, // LiveView Car
{2795.6467, -1066.9978, 94.1871, 0.0}, // LiveView Cam
{2803.5083, -1067.1490, 94.1871, 0.0}, // LiveView Player
{2805.2322,-1089.1576,30.7310, 359.2809} // LiveView Player Exit
},
{//LS AIRPORT
{1768.4802,-2433.6174,13.5547,358.4647}, // Info Zeichen etc.
{1765.1451,-2286.7554,26.7960,313.5673}, // LiveView Car
{1765.4340,-2271.0989,31.0900,181.3627}, // LiveView Cam
{1765.4340,-2271.0989,31.0900,181.3627}, // LiveView Player
{1778.3945,-2432.7996,13.5547,171.6871} // LiveView Player Exit
},
//bootautohaus
{
{-206.7942, -1778.8412, 1.8197, 0.0}, //Infozeichen
{1248.7789, -2382.5952, 8.3920, 0.0}, // liveView Car
{1241.7362, -2390.6350, 12.4744, 0.0}, //Campos
{1222.8789, -2415.5544, 10.2585, 0.0},//playapos
{-147.2765, -1789.9833, 1.1003, 0.0} //Exit view
} //HIER HAB ICH DAS SEMIKOLON WEG GEMACHT!
};
Falls die anderen Errors damit nicht behoben sind, dann poste bitte den Teil mit dem Fehler komplett, also von "new" bis zur letzten "}". Mit so Schnipsel wie du bei "Zeilen davor" hast, kann man nichts anfangen.
Ich würde gerne den Unterschied, wissen und was sie bedeuten^^
Sie was?
Die Funktionen? Lese dazu das Wiki, die kann ich dir nicht alle erklären, dazu müsste ich sie erstmal alle selbst ausprobieren.
Eigentlich ist für dich von Relevanz nur:
Das bestätigt auch dieser Thread: 0.3x Object Streamer??
(Etwas runterscrollen.)
Sowie: Streamer Plugin Streamrate
Mehr kann ich dir dazu höchstwahrscheinlich nicht sagen.
Ich glaube worauf er hinaus ist, ist ocmd. Da ich dich ja auch mal wegen sscanf gefragt hatte und du glaube ein schlechtes Bild über sscanf hast.
Meines Wissens nach ist OCMD Ressourcenschonender, eigentlich alle (seriösen) Command Prozessoren sind schonender (wobei wir hier von Bruch-Millisekunden reden).
Ja, stimmt. Ich habe ein schlechtes Bild von sscanf und das zurecht. Das hier aufzuführen würde aber zu lange dauern. Es muss jeder für sich selbst entscheiden es zu benutzen oder nicht. Ich rate davon ab.
Aber kommen wir nicht vom Thema ab.
Was er schlichtweg meinte, war, dass dieses gequetschte Zeugs schonender sei, und das stimmt nicht. Und schon zweimal nicht schonender für den, der den Code liest.
Sigi: Du sagst du magst es nicht. Du bist doch der Herr des Scripts, mach es doch so wie du es magst, und nicht so wie es dir einer sagt, der zudem keine Ahnung hat. ![]()
Muss man das für alle festlegen, also unter OnGamemodeInit?
Das machst du über den Typ (also in dem Fall STREAMER_TYPE_OBJECT). Ja, bei OnGameModeInit.
Siehe hierzu:
http://forum.sa-mp.com/showthread.php?t=102865
Punkte: General Notes & Native Notes
Ich hoffe du bist fit in Englisch ![]()
Ich mags auch nicht so zu scripten Jeffry aber mir wurde gesagt wenn man es so scriptet das es ressourcerschonend ist ;o
Absoluter Müll. Dem Compiler und Server ist es völlig wurscht wie viele Zeilenumbrüche du im Code hast. Du kannst auch 10 zwischen jede Zeile machen, das macht keinen Unterschied.
Der, der dir das erzählt hat, hat dir entweder einen Streich gespielt, oder hat wirklich keine Ahnung. ![]()
Was ich gerne noch wissen wollte ist, ob man das einstellen kann, dass der Client beim betreten des Servers direkt alle lädt.
Dürfte machbar sein, allerdings wirst du das schwer überprüfen können, da GTA ja auch noch eine "Art Streamer" hat, sonst würdest du vom Mt. Chilliad die Casinos in LV sehen.
Sollte dir helfen:
http://wiki.sa-mp.com/wiki/Str…gin#Streamer_CellDistance
Meine Güte. wer programmiert den so. Da erkennt man ja gar nichts mehr.
Ich hab dir das mal ausgebessert. Wenn ich das richtig verstanden habe, was der Code machen sollte, dann waren da paar Dinge an der falschen Stelle, was bei dem Durcheinander auch kein Wunder ist.
Code:
Zwecks ocmd: Es ist völliger Schwachsinn zu sagen, dass man damit übersichtlicher scripten kann. Der Code würde mit ocmd, bis auf die erste Zeile, fast IDENTISCH aussehen!! ![]()
response kann nur 1 oder 0 sein. (1 = Enter/Click 0 = ESC)
Au0erdem stehen die "else" an der falschen Stelle.
Alles klar, der Start des Timers stimmt. Ich bin nochmal alles Schritt für Schritt durchgegangen:
Du musst das 3.
return 1;
von unten weg machen. Das beendet die Schleife nach einer Abfrage, was falsch ist.
Code:
Was ist der unterschied zwischen CreateObject und CreateDynamicObject
CreateObject ist die Standard Funktion von SA-MP um Objekte zu erstellen.
CreateDynamicObject ist die Funktion zur Erstellung von Objekten mit dem Streamer Plugin: http://forum.sa-mp.com/showthread.php?t=102865
=> Streamer ermöglichen dir es, mehr Objekte in deinem Code zu haben. (Jedoch nicht, mehr Objekte darzustellen.)
Es werden dir die Objekte angezeigt, denen du nahe bist.