erledigt
[SAMMELTHREAD] Kleine Scripting Fragen
- Rafelder
- Unerledigt
In 10 Minuten startet der nächtliche Backupvorgang! Es kann währenddessen (ca. 10 Minuten) zu Einschränkungen bei der Nutzung des Forums kommen
Weitere Infos findet ihr im Thema Backup des Forums
Dein Problem konnte durch einen User gelöst werden? Bedank dich bei ihm indem du seinen Beitrag als Hilfreich markierst sowie einen Daumen oben dalässt
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!
Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
-
-
Nutz doch einfach GetPlayerScore beim auslesen anstatt SetPlayerScore beim Speichern um den Score auszulesen
[wiki]https://wiki.sa-mp.com/wiki/GetPlayerScore[/wiki]
-
Hey, eigentlich hat sich das schon erledigt.
Aber danke trotzdem
-
Autotext1[playerid] = CreatePlayerTextDraw(playerid, 421.000000, 146.477783, "_");
PlayerTextDrawLetterSize(playerid, Autotext1[playerid], 0.000000, 14.270986);
PlayerTextDrawTextSize(playerid, Autotext1[playerid], 196.500000, 0.000000);
PlayerTextDrawBoxColor(playerid, Autotext1[playerid], 0);
PlayerTextDrawSetPreviewModel(playerid, Autotext1[playerid], 411);
PlayerTextDrawColor(playerid, Autotext1[playerid], 0);
PlayerTextDrawBackgroundColor(playerid, Autotext1[playerid], 0);
PlayerTextDrawUseBox(playerid, Autotext1[playerid], true);
PlayerTextDrawFont(playerid, Autotext1[playerid], TEXT_DRAW_FONT_MODEL_PREVIEW);Kann mir einer sagen wieso der nicht mehr angezeigt wird wenn ich ihn größer machen möchte?
-
nachdem ich unter public onplayercommandtext den register Befehl raus genommen habe (da es eins schon in meinem filterscript existiert jadmin3)
hat der Kompilierer gecrasht.script: http://pastebin.com/ZdREbdn7
Ps: was müsste ich tun um den Login befehl raus zunehmen so das man nicht mehr /login machen müsste aber die sachen die abgerufen werden nach dem /login wie z.B geld usw sollen noch vorhanden bleiben. Wie mache ich das ?
-
-
Autotext1[playerid] = CreatePlayerTextDraw(playerid, 421.000000, 146.477783, "_");
PlayerTextDrawLetterSize(playerid, Autotext1[playerid], 0.000000, 14.270986);
PlayerTextDrawTextSize(playerid, Autotext1[playerid], 196.500000, 0.000000);
PlayerTextDrawBoxColor(playerid, Autotext1[playerid], 0);
PlayerTextDrawSetPreviewModel(playerid, Autotext1[playerid], 411);
PlayerTextDrawColor(playerid, Autotext1[playerid], 0);
PlayerTextDrawBackgroundColor(playerid, Autotext1[playerid], 0);
PlayerTextDrawUseBox(playerid, Autotext1[playerid], true);
PlayerTextDrawFont(playerid, Autotext1[playerid], TEXT_DRAW_FONT_MODEL_PREVIEW);Kann mir einer sagen wieso der nicht mehr angezeigt wird wenn ich ihn größer machen möchte?
Das kann auch so nicht funktionieren mit den Daten und den Größen.
Siehe mein Beispiel, so müsste es funktionieren und größer sein. Die größe änderst du bei TextSize womit vergrößert sich das Model inkl. BoxAutotext1[playerid] = CreatePlayerTextDraw(playerid, 421.000000, 146.477783, "_");
PlayerTextDrawTextSize(playerid, Autotext1[playerid], 90.0, 90.0);
PlayerTextDrawFont(playerid, Autotext1[playerid], TEXT_DRAW_FONT_MODEL_PREVIEW);
PlayerTextDrawBoxColor(playerid, Autotext1[playerid], 0);
PlayerTextDrawUseBox(playerid, Autotext1[playerid], true);PlayerTextDrawSetPreviewModel(playerid, Autotext1[playerid], 411);
-
Habe ich auch im Script. (Bist zwar im Urlaub aber ich kann auf die Antwort warten) :
Das ist jetzt schon eine ganze Weile her, ich denke es wäre am besten, wenn du einen neuen Thread erstellst und das Problem dort nochmal mit allen dazugehörigen Codes erklärst.
-
Hallo,
wenn ein Spieler etwas in den Chat schreibt, was aber zulang ist, wie mache ich dann einen "Zeilenumbruch", dass das geschriebene in der nächste Zeile noch ist ?
-
Der normale Chat (T) wird automatisch umgebrochen.
Wenn es ein eigens programmierter Chat ist (zum Beispiel via Befehl), dann kannst du abfragen, ob die Länge der Eingabe größer als X ist, und wenn ja, dann splittest du den String entsprechend (strmid/strcat/strdel, je nach dem was dir gefällt) und sendest zwei Nachrichten. -
-
Hast du zufällig nen Beispiel zur Hand ? Steh grad auf'm Schlauch
-
Hast du zufällig nen Beispiel zur Hand ?
Hier wäre ein Beispiel:
C
Alles anzeigenstock SCMex(playerid, color, const string[]) { const max_size = 128; new l = strlen(string),size=l,buffer[max_size+1],tmp; while(l > 0) { strmid(buffer,string,tmp,(tmp+max_size > size)?(size):(tmp+max_size),sizeof(buffer)); switch(buffer[0]) { case ' ': strdel(buffer,0,1); } SendClientMessage(playerid,color,buffer); l -= max_size,tmp += max_size; } return 1; }
Das splittet automatisch den Text in 128 Zeichen Blöcke auf, kannst max_size beliebig verändern (logischerweise sollte es > 0 sein xD)
-
-
Hey, Leute irgendwie Speichert mein Register/Loginsystem kein Level und kein Geld, das Passwort aber schon ich bin langsam echt Ratlos kann mir jemand helfen?
enum SpielerDaten
{
Adminlevel,
Level,
Fraktion,
Geld,
sLogin
};new sSpieler[MAX_PLAYERS][SpielerDaten];
public OnPlayerConnect(playerid)
{
new Spieler[64];
new Sname[MAX_PLAYER_NAME];
GetPlayerName(playerid,Sname,sizeof(Sname));
format(Spieler,sizeof(Spieler),"/Spieler/%s.txt",Sname);
if(dini_Exists(Spieler))
{
ShowPlayerDialog(playerid,LOGIN,DIALOG_STYLE_PASSWORD,"Login Vorgang","Dein Account wurde gefunden, bitte gebe nun dein Passwort ein und logge dich somit ein!","Einloggen","Abbrechen");
}
else
{
ShowPlayerDialog(playerid,REGISTER,DIALOG_STYLE_PASSWORD,"Anmelde Vorgang","Bitte gebe dein gewünschtes Passwort ein um dir einen Account zu erstellen!","Anmelden","Abbrechen");
}
return 1;
new string[128];
format(string,sizeof(string),"%s hat den Server betreten",SpielerName(playerid));
SendClientMessageToAll(0x00A91EFF,string);
return 1;
}public OnPlayerDisconnect(playerid, reason)
{
sSpieler[playerid][sLogin] = 0;
SpielerSpeichern(playerid);
}stock Register(playerid,key[])
{
new Spieler[64];
new Sname[MAX_PLAYER_NAME];
GetPlayerName(playerid,Sname,sizeof(Sname));
format(Spieler,sizeof(Spieler),"/Spieler/%s.txt",Sname);
dini_Create(Spieler);
dini_Set(Spieler,"Passwort",key);
dini_IntSet(Spieler,"Adminlevel",0);
dini_IntSet(Spieler,"Level",0);
dini_IntSet(Spieler,"Fraktion",0);
dini_IntSet(Spieler,"Geld",0);
SendClientMessage(playerid,0xFF0005FF,"Du hast dich erfolgreich auf Ultimate Roleplay registriert!");
SendClientMessage(playerid,0xFF8C00FF,"Herzlich Wilkommen auf Ultimate Roleplay, solltest du Fragen haben benutze /report!");
SpawnPlayer(playerid);
SpielerReset(playerid);
return 1;
}stock Login(playerid,key[])
{
new Spieler[64];
new Sname[MAX_PLAYER_NAME];
GetPlayerName(playerid,Sname,sizeof(Sname));
format(Spieler,sizeof(Spieler),"/Spieler/%s.txt",Sname);
if(!strcmp(key,dini_Get(Spieler,"Passwort"),false))
{
SendClientMessage(playerid,0xFF8C00FF,"Du hast dich erfolgreich eingeloggt!");
SpielerLaden(playerid);
}
else
{
SendClientMessage(playerid,0xFF000FFF,"Du hast ein falsches Passwort eingegeben!");
Kick(playerid);
}
return 1;
}stock SpielerSpeichern(playerid)
{
new Spieler[64];
new Sname[MAX_PLAYER_NAME];
GetPlayerName(playerid,Sname,sizeof(Sname));
format(Spieler,sizeof(Spieler),"/Spieler/%s.txt",Sname);
if(dini_Exists(Spieler))
{
GetPlayerScore(playerid,dini_Int(Spieler,"Level"));
GetPlayerMoney(playerid,dini_Int(Spieler,"Geld"));
dini_IntSet(Spieler,"Adminlevel",sSpieler[playerid][Adminlevel]);
dini_IntSet(Spieler,"Level",GetPlayerScore(playerid));
dini_IntSet(Spieler,"Fraktion",sSpieler[playerid][Fraktion]);
dini_IntSet(Spieler,"Geld",GetPlayerMoney(playerid));
}
return 1;
}stock SpielerLaden(playerid)
{
new Spieler[64];
new Sname[MAX_PLAYER_NAME];
GetPlayerName(playerid,Sname,sizeof(Sname));
format(Spieler,sizeof(Spieler),"/Spieler/%s.txt",Sname);
if(dini_Exists(Spieler))
{
GetPlayerMoney(playerid,dini_Int(Spieler,"Geld"));
GetPlayerScore(playerid,dini_Int(Spieler,"Level"));
sSpieler[playerid][Adminlevel] = dini_Int(Spieler,"Adminlevel");
sSpieler[playerid][Level] = dini_Int(Spieler,"Level");
sSpieler[playerid][Fraktion] = dini_Int(Spieler,"Fraktion");
sSpieler[playerid][Geld] = dini_Int(Spieler,"Geld");SpawnPlayer(playerid);
}
return 1;
}stock SpielerReset(playerid)
{
sSpieler[playerid][Adminlevel] = 0;
sSpieler[playerid][Level] = 0;
sSpieler[playerid][Fraktion] = 0;
sSpieler[playerid][Geld] = 0;
return 1;
} -
Kann mir jemand erklären wie ich diese Funktion benutzen kann, siehe
Die Funktion heißt: http://wiki.sa-mp.com/wiki/EditObject
@Retect
Du solltest normalerweise...Fehler beim compilen bekommen...du nutzt die Funktionen falsch...Beim speichern lösche das:
GetPlayerScore(playerid,dini_Int(Spieler,"Level"));
GetPlayerMoney(playerid,dini_Int(Spieler,"Geld"));und beim laden schreib es so:
SetPlayerScore(playerid,dini_Int(Spieler,"Level"));
ResetPlayerMoney(playerid);
GivePlayerMoney(playerid,dini_Int(Spieler,"Geld"));mfg.
-
Ich versteh dein Problem nicht richtig. Wenn du willst, dass der Befehl aus dem Script kommt, nimmst du ihn einfach raus.
habe ich ja gemacht danach kompiliert und crash entweder ein Klammerfehler irgendwo bei public onplayertextcommand oder irgendetwas anderes nachdem ich register befehl rausgenommen habe hat es angefangen im kompilierer zu crashen
kann mir bitte einer helfen
-
crash entweder ein Klammerfehler irgendwo bei public onplayertextcommand oder irgendetwas anderes
Zeile 209...
Klammer löschen
-
haha wow danke
-
Gibt es eine Funktion ungefähr so: SetPlayerCameraLookAt(playerid, x, y, z, rotx, roty, rotz); ?
-
Danke, Kaliber
Es hat funktioniert
-