[SAMMELTHREAD] Kleine Scripting Fragen
- Rafelder
- Unerledigt
-
-
@SaschaLois Ich danke, aber leider gibt es dort noch Probleme mit dem Texturen.
Er soll vor den Texturen auch die Veriable. Was dann Fehlerhaft ist und ich diese dann auch weider Entfernen muss.
Wäre möglich das du diese vielleicht rausfischen kann, also das dort nichts Vorgesetzt wäre? Dann wäre es Perfekt!
Mit freundlichen Grüßen,
-
-
So sieht es derzeit aus.
Alle Zeilen fangen bei mir so an.
SAPDInt = CreateDynamicObject(19448,1622.052,1596.649,9.750,0.000,90.000,0.000,-1,-1,-1,300.000,300.000);
SetDynamicObjectMaterial(SAPDInt, 0, 7555, "bballcpark1", "ws_carparknew2", 0x00000000);Er müsste ja nur die "SetDynamicObjectMaterial" Filtern, das dort keine Veriable vor gesetzt wird.
Mit freundlichen Grüßen,
-
Alles klar ich richte das eben so ein
Soll diese "SAPDInt = " auch weg? Weil ja dort dann das Array hin kommt? -
Ja, bitte, das wäre am besten.

MfG.
-
Ja, bitte, das wäre am besten.

MfG.
Sollte jetzt funktionieren. Den Variablennamen sollte es für SetDynamicObjectMaterial übernehmen, wenns noch probleme gibt meld dich einfach

-
Schönen guten Abend lieber Breadfishler

Ich habe da ein kleines Problem mit meinem /mv befehl der zwar zurzeit nur für admins ist (Testphase)
aufjedenfall kriege ich diese errors:
C:\Users\User\Desktop\ddd\gamemodes\GSM1.pwn(508) : error 029: invalid expression, assumed zero
C:\Users\User\Desktop\ddd\gamemodes\GSM1.pwn(508) : error 029: invalid expression, assumed zero
C:\Users\User\Desktop\ddd\gamemodes\GSM1.pwn(508) : error 029: invalid expression, assumed zero
C:\Users\User\Desktop\ddd\gamemodes\GSM1.pwn(508) : fatal error 107: too many error messages on one lineCode:
Code
Alles anzeigenif (strcmp("/mv", cmdtext, true, 10) == 0) { if(sSpieler[playerid][Adminlevel] >=1) { SendClientMessage(playerid,GRÜN,"Das Tor hat sich geöffnet es schließt in 5 Sekunden!"); MoveObject(lspd100,1543.28027, -1629.51318, 04.04756,2.0); SetTimer(100lspd,5000,false); //508 return 1; } else { SendClientMessage(playerid,ROT,"Du bist kein Admin!"); return 1; } return 0; }und hier die forward sachen
forward 100lspd();
public 100lspd();
{
MoveObject(100lspd,1543.28027, -1629.51318, 14.04756);
}ganz oben im script habe ich auch new lspd100
-
SetTimer(100lspd,5000,false);
Zu
SetTimer("100lspd",5000,false); -
@Jeffry zwar Danke für die Antwort aber ich habe nun das Script von Neu angefangen da keiner Geantwortet hat und ich dachte das keiner eine Lösung hat :DD egal bin fast wieder dort das einzige was zurzeit in meinem Script fehlt (jetziger stand) natürlich kommt noch mehr
fehlen tut:
SpielerLaden
SpielerSpeichern
SpielerReset
Login&Register System
-
Habe da eine Frage, die ich mir nie beantworten konnte, und höchstwahrscheinlich auch nur von fortgeschrittenen Scriptern beantwortet werden kann:
Ist es sinnvoll, im Script irgendwo ganz oben zB einen String zu erstellen (bspw. new DialogString[2048];), wodurch ich dann einen großteil aller Dialoge mit formatiere?
Oder sollte man ambesten damit es nicht zu Fehlern kommt jeden String für zB Dialoge in Funktionen neu erstellen?In meinem releasten Happy-Ages Script ist das nämlich ebenso.
Oben steht irgendwo "new DialogString[(..)];"
Und in sogut wie allen Funktionen, sprich beim Login, Registrieren, bei anderen Systemen etc. wird dieser String benutzt.
Wenn jetzt zB 5 Spieler sich einloggen, kann es da zu Fehlern kommen, wird der Server dadurch mehr belastet wenn man einen globalen statt zB einen "localen (nur für die eine Funktion gedacht) benutzt?Was wäre die beste Möglichkeit?
-
Du solltest das nicht global nutzen!
Da kann es zu Fehlern kommen...zwar meint man immer, Pawn ist in der VM Single-Threaded was auch so ist, allerdings können Callbacks sogut wie zeitgleich für Spieler ausgeführt werden.
Besser wäre zu versuchen, Strings zu packen oder einen großen statischen Speicherbereich im Callback zu allozieren.//Ganz oben im OnDialogResponse
static DialogString[2048 char]; //Mit char wäre es am schönsten ^^ geht aber auch ohne xD -
Alles anzeigen
Du solltest das nicht global nutzen!
Da kann es zu Fehlern kommen...zwar meint man immer, Pawn ist in der VM Single-Threaded was auch so ist, allerdings können Callbacks sogut wie zeitgleich für Spieler ausgeführt werden.
Besser wäre zu versuchen, Strings zu packen oder einen großen statischen Speicherbereich im Callback zu allozieren.//Ganz oben im OnDialogResponsestatic DialogString[2048 char]; //Mit char wäre es am schönsten ^^ geht aber auch ohne xD
Dementsprechend kann ich es aber nicht formatieren, wie du im anderen Thread bereits sagtest, oder?
Brauche ja die beste Möglichkeit zum formatieren. -
Wie gesagt, kannst das char weglassen, dann geht das klar

-
Also im statischen Speicher funktioniert alles, bzgl. Dialogen ohne dass es da zu Fehlern kommt?
Habe unter OnDialogResponse ganz oben:
static DialogString[2048];Und den verwende ich dann jetzt, richtig?
-
Und den verwende ich dann jetzt, richtig?
Einfach als ganz normalen String...
format(DialogString,sizeof(DialogString),"Haaaaaaaaaaaaaaalo\nHaaaaalo %s", GetName(playerid));
ShowPlayerDialog(playerid,0,0,"Caption", DialogString, "ok", ""); -
static oder new?
-
static oder new?
static, dadurch werden nicht permanent 2048 Cells (8192 Bytes = 8 KiloByte) pro Aufruf angefordert, sondern reserviert.
Das spart eine Menge Zeit

Wobei du eigentlich versuchen solltest alles zu packen.
Du musst doch nicht unbedingt format verwenden?

Verstehe nicht so genau...wieso du darauf zurückgreifen musst

Denn wenn du z.B. einen Namen adden willst geht das auch so:
new packed_name[MAX_PLAYER_NAME char];
strpack(packed_name, GetName(playerid));
//DialogString = !""; //Wichtig das dient als reset (aber da wir darunter schon was setzen, brauchen wir das nicht)
DialogString = !"Willkommen ";
strcat(DiaogString, packed_name);
strcat(DialogString, !" :)\nSchön, dass sie zu uns gefunden haben!");Ist zwar ein bisschen umständlicher...aber du büßt nur minimale Performanz ein..und sparst dir 6 KiloByte von 8

-
zwei Fragen:
1. Heißt das, dass man immer static statt new nehmen soll?
2. Wie kann Ich eine Abfrage machen, indem überprüft wird, ob im Inputtext (Dialog) Zeichen und Zahlen enthalten sind? Bitte beides differenziert schreiben, da Ich zwei verschiedene Systeme habe.
-
1. Heißt das, dass man immer static statt new nehmen soll?
Nein...da du ja nicht immer Speicherplatz reservieren willst...
Sondern nur dann, wenn es entweder um große Strings geht..die du oft nutzt...oder kleine Strings die du sehr oft nutzt...

