Ja, auch dies habe ich bereits getan.
Im Server selbst kommen ja keine Fehler oder Erros, alles wird Korrekt gestartet. Nur im Spiel kann ich halt auf nichts Klicken.
[SAMMELTHREAD] Kleine Scripting Fragen
- Rafelder
- Unerledigt
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
-
-
Geht es denn auf einem Blank script?
// @Dj-BoMa
Hast du die Variable blankTD definiert?
Würde dir eine weitere Änderung vorschlage, da es ja anscheinend für einen bestimmten Spieler sein soll, kannst du das ganze als PlayerTextDraw gestalten.
Oben im Script:
new PlayerText:blackTD[MAX_PLAYERS];
Theoretisch könntest du das ganze denn auch unter OnPlayerConnect laden lassen und es nur Updaten und anzeigen lassen.
ocmd:schwarz(playerid)
{
blackTD[playerid] = CreatePlayerTextDraw(playerid, -20.000000,2.000000,"|");
PlayerTextDrawUseBox(playerid, blackTD[playerid] ,1);
PlayerTextDrawBoxColor(playerid, blackTD[playerid] ,0x000000ff);
PlayerTextDrawTextSize(playerid, blackTD[playerid] ,660.000000,22.000000);
PlayerTextDrawAlignment(playerid, blackTD[playerid] ,0);
PlayerTextDrawBackgroundColor(playerid, blackTD[playerid] ,0x000000ff);
PlayerTextDrawFont(playerid, blackTD[playerid] ,3);
PlayerTextDrawLetterSize(playerid, blackTD[playerid] ,1.000000,52.200000);
PlayerTextDrawColor(playerid, blackTD[playerid], 0x000000ff);
PlayerTextDrawSetOutline(playerid, blackTD[playerid], 1);
PlayerTextDrawSetProportional(playerid, blackTD[playerid], 1);
PlayerTextDrawSetShadow(playerid, blackTD[playerid], 1);
PlayerTextDrawShow(playerid, blankTD[playerid], 1);
return 1;
} -
Es ist das Bare Script in der server.cfg eingetragen.
Ich kann wie gesagt die Reiter unten am Bildschirm nicht Anklicken.
-
Ich hatte das Problem auch mal, habe es aber einfach so behoben, dass ich ein neues Script erstellt habe und es dort erstelle und kopiere
Sonst einfach mal nochmal alles neu machen und auch die Datei im GTA Ordner an die richtige stelle einfügen -
Ich habe auch Windows 10 und benutze das TDE von iPleomax problemlos.
-
-
@malE Kannst du mir dein Ordner mit dem Editor per Private Nachricht zukommen lassen? So wie es bei dir Funktionert. (Am besten mit der TXD Datei noch mal)
Privatnachricht versendet.
-
Privatnachricht versendet.
Also bei mir war es so, dass wenn GTA als Admin gestartet wird (SAMP auch) dann hat es nicht funktioniert sonst schon.
-
Meine Text- TextDraws werden von der TextDraw Box überlappt, hat jemand eine Lösung dafür?
... Alle bis auf "TUEREN". -
Du musst erst die Box anzeigen dann den rest
-
-
Wie kann ich eine bestimmte Zahl an Zeichen zu einem String hinzufügen?
Beispiel:
Codenew zeichen = strlen(PlayerInfo[playerid][p_Name]), str[145], format[56]; format(format, sizeof(format), "--------------------------------", ); // In dem format soll z.B. 7x '-' eingesetzt werden. // strins(str, format, 0); // Wird wahrscheinlich sogar nicht benötigt. SendClientMessage(playerid, -1, format);
Ich hoffe Ihr konnten mich verstehen.
Mit freundlichen Grüßen
malE -
was willst du genau machen ?
-
Ich möchte das die Striche die selbe Länge wie folgender String haben: 'Folgende Statistiken liegen PlayerName(%s) vor'.
Man muss aber beachten das der PlayerName immer unterschiedlich lang ist. Deswegen will ich so viele Striche dazu addieren, wie der PlayerName lang ist. -
Du machst es dann z.b so
Codeswitch(strlen(GetPlayerName(playerid)) { Case 1: hier ist der Name 1 zeichen lang Case 2:hier ist der Name 2 zeichen lang Case 3: hier ist der Name 3 zeichen lang }
so kannst machst du es und da wo steht
hier ist der Name 1 zeichen lang
Formatierst du es mit 1 bei 2 mit 2 und immer so weiter -
So wär ich auch in der Lage es zu machen. Aber es geht bestimmt simpler.
-
@malE
Du kannst das eigentlich ziemlich einfach erreichen:Codenew langerText[] = "ICH BIN DER STRING"; new striche[256]; printf("%s",langerText); for(new i = 0; i < strlen(langerText); i++) { strcat(striche, "-"); //Strich Hinzufügen } printf("%s",striche);
Habs probiert sollte passen. Musst es nurnoch auf deine Variablen anpassen.
-
Gibt es sowas wie
select from_unixtime für die Mysql R39-3 Version ? -
Hi, kann mir jemand mein Befehl korrigieren? Habe zuvor noch nie mit der Funktion gearbeitet und die scheint mir kompliziert zu sein obwohl ich mir ziemlich sicher bin das es simple ist.
Habe vor per Befehl alle Spieler IDs durchzugehen und möchte auflisten wer alles eine Sniper besitzt.
CMD:sniper(playerid,params[])
{
new weapons[34][2];
new string[128];
for (new i = 0; i <= 25; i++)
{
GetPlayerWeaponData(i, 6, weapons[i][0], weapons[i][1]);
format(string, sizeof(string), "%s hat eine Sniper", weapons); //Was soll ich statt weapons einfügen :D?
SendClientMessage(playerid, -1, string);
}
return 1;
} -
Hi, kann mir jemand mein Befehl korrigieren? Habe zuvor noch nie mit der Funktion gearbeitet und die scheint mir kompliziert zu sein obwohl ich mir ziemlich sicher bin das es simple ist.
Habe vor per Befehl alle Spieler IDs durchzugehen und möchte auflisten wer alles eine Sniper besitzt.
CMD:sniper(playerid,params[]){ new weapons[34][2]; new string[128]; for (new i = 0; i <= 25; i++) { GetPlayerWeaponData(i, 6, weapons[i][0], weapons[i][1]); format(string, sizeof(string), "%s hat eine Sniper", weapons); //Was soll ich statt weapons einfügen :D? SendClientMessage(playerid, -1, string); } return 1;}
CMD:sniper(playerid,params[])
{
new weapons[34][2];
new string[128];
for (new i = 0; i < MAX_PLAYERS; i++)
{
GetPlayerWeaponData(i, 6, weapons[i][0], weapons[i][1]);if(weapons[i][0] == 34)
{
format(string, sizeof(string), "%s hat eine Sniper", SpielerName(i));
SendClientMessage(playerid, -1, string);
}
}
return 1;
}stock SpielerName(playerid)
{
new getspName[MAX_PLAYER_NAME];
GetPlayerName(playerid, getspName, sizeof(getspName));
return getspName;
}//ungetestet
-
Funktioniert schon um einiges besser aber noch nicht perfekt. Mir wird nur von einem Spieler angezeigt das er eine Sniper besitzt vom zweiten nicht.
Außerdem habe ich das bisschen erweitert und es soll nur angezeigt werden wenn man eine Sniper UND eine Shotgun besitzt, doch das scheint auch nicht zu funktionieren, was ist falsch?CMD:sniper(playerid,params[])
{
new weapons[34][2];
new string[128];
if(!CheckAdminName(playerid)) return 0;
for (new i = 0; i < MAX_PLAYERS; i++)
{
GetPlayerWeaponData(i, 6, weapons[i][0], weapons[i][1]);
if(weapons[i][0] == 34 && 25)
{
format(string, sizeof(string), "{%06x}%s {00FF00}hat eine Sniper und eine Shotgun.", GetPlayerColor(i) >>> 8, SpielerName(i));
SendClientMessage(playerid, -1, string);
return 1;
}
else
{
SendClientMessage(playerid,-1,"{00FF00}Niemand besitzt eine Sniper und eine Shotgun.");
return 1;
}}
return 1;
} -