[SAMMELTHREAD] Kleine Scripting Fragen
- Rafelder
- Unerledigt
-
-
doch da ich es im script angebe..
-
Ich habe mal eine frage unswa ist das bei LoG so das alles erst nach Connectet to Life of German - Die Zeitfabrik
meine frage ist davor kommt ja Connectet. Joining the Game wo muss ich das eingeben was zwischen
Connectet. Joining the Game
und
Connectet to.....sprich das erst der Login Textdraw nach Connectet to kommt und nicht direkt bei Connectet Joining the Game
-
Kann mir vielleicht jemand sagen, warum der Skin des Spielers partu nicht gesetzt wird ?
Die Variable mit der SkinID ist aufjedenfall befüllt, das hab ich bereits mehrmals überprüft, aber wenn der Spieler spawnt, bzw. die Kamera hinter dem Spieler ist, hab ich die SkinID 0.
Hier könnt ihr das Script einsehen.
https://github.com/Reclusior/Open-Pawn
Evtl. hat es mit dem Skip der Classselection zu tun.
Finden kann man das hier
https://github.com/Reclusior/O…include/Systems/Login.incIhr könnt gerne ein pullrequest senden oder den Fehler evtl. so aufzeigen
-
Habe mal selbst die Health Textdraws erstellt und ohne Funktion habe ich keine Probleme. Benötige denke ich nur ein anderen Weg um die Funktion einzubauen, kannst mir da helfen?
Spoiler anzeigen
#include <a_samp>Spoiler anzeigen new Text:Textdraw0;
new Text:Textdraw1;Spoiler anzeigen public OnFilterScriptInit()
{
// Create the textdraws:
Textdraw0 = TextDrawCreate(569.000000, 44.000000, "100");
TextDrawBackgroundColor(Textdraw0, 255);
TextDrawFont(Textdraw0, 2);
TextDrawLetterSize(Textdraw0, 0.220000, 0.899999);
TextDrawColor(Textdraw0, -65281);
TextDrawSetOutline(Textdraw0, 0);
TextDrawSetProportional(Textdraw0, 1);
TextDrawSetShadow(Textdraw0, 1);
TextDrawSetSelectable(Textdraw0, 0);Spoiler anzeigen Textdraw1 = TextDrawCreate(569.000000, 66.000000, "100");
TextDrawBackgroundColor(Textdraw1, 255);
TextDrawFont(Textdraw1, 2);
TextDrawLetterSize(Textdraw1, 0.220000, 0.899999);
TextDrawColor(Textdraw1, -65281);
TextDrawSetOutline(Textdraw1, 0);
TextDrawSetProportional(Textdraw1, 1);
TextDrawSetShadow(Textdraw1, 1);
TextDrawSetSelectable(Textdraw1, 0);Spoiler anzeigen for(new i; i < MAX_PLAYERS; i ++)
{
if(IsPlayerConnected(i))
{
TextDrawShowForPlayer(i, Textdraw0);
TextDrawShowForPlayer(i, Textdraw1);
}
}
return 1;
}Spoiler anzeigen public OnFilterScriptExit()
{
TextDrawHideForAll(Textdraw0);
TextDrawDestroy(Textdraw0);
TextDrawHideForAll(Textdraw1);
TextDrawDestroy(Textdraw1);
return 1;
}Spoiler anzeigen public OnPlayerConnect(playerid)
{
TextDrawShowForPlayer(playerid, Textdraw0);
TextDrawShowForPlayer(playerid, Textdraw1);
return 1;
} -
So wie du es jetzt hast wird es nur funktionieren, wenn du einen Spieler online hast.
Nutze die Variante mit den PlayerTextdraws, wie ich es dir gesagt habe.- Erstelle das Textdraw bei OnPlayerConnect (CreatePlayerTextDraw + Einstellungen).
- Zeige dem Spieler das Textdraw bei OnPlayerSpawn.
- Lösche das Textdraw bei OnPlayerDisconnect. -
Ich glaube ich habe ein Problem die zu definieren, sieht zurzeit so aus:
Spoiler anzeigen
#include <a_samp>Spoiler anzeigen new Text:Textdraw0;
new Text:Textdraw1;Spoiler anzeigen //new PlayerText:Textdraw0[MAX_PLAYERS];
//new PlayerText:Textdraw1[MAX_PLAYERS];Spoiler anzeigen public OnPlayerConnect(playerid)
{Spoiler anzeigen // Create the textdraws:
Textdraw0[playerid] = CreatePlayerTextDraw(playerid,569.0, 44.0, "100");
TextDrawBackgroundColor(Textdraw0, 255);
TextDrawFont(Textdraw0, 2);
TextDrawLetterSize(Textdraw0, 0.220000, 0.899999);
TextDrawColor(Textdraw0, -65281);
TextDrawSetOutline(Textdraw0, 0);
TextDrawSetProportional(Textdraw0, 1);
TextDrawSetShadow(Textdraw0, 1);
TextDrawSetSelectable(Textdraw0, 0);Spoiler anzeigen Textdraw1[playerid] = CreatePlayerTextDraw(playerid,569.0, 66.0, "100");
TextDrawBackgroundColor(Textdraw1, 255);
TextDrawFont(Textdraw1, 2);
TextDrawLetterSize(Textdraw1, 0.220000, 0.899999);
TextDrawColor(Textdraw1, -65281);
TextDrawSetOutline(Textdraw1, 0);
TextDrawSetProportional(Textdraw1, 1);
TextDrawSetShadow(Textdraw1, 1);
TextDrawSetSelectable(Textdraw1, 0);
return 1;Spoiler anzeigen public OnPlayerDisconnect(playerid)
{
TextDrawHideForAll(Textdraw0);
TextDrawDestroy(Textdraw0);
TextDrawHideForAll(Textdraw1);
TextDrawDestroy(Textdraw1);
return 1;
}Spoiler anzeigen public OnPlayerSpawn(playerid)
{
TextDrawShowForPlayer(i, Textdraw0);
TextDrawShowForPlayer(i, Textdraw1);
return 1;Errors:
C:\Users\Dave\Desktop\HealthBar.pwn(13) : error 028: invalid subscript (not an array or too many subscripts): "Textdraw0"
C:\Users\Dave\Desktop\HealthBar.pwn(13) : warning 215: expression has no effect
C:\Users\Dave\Desktop\HealthBar.pwn(13) : error 001: expected token: ";", but found "]"
C:\Users\Dave\Desktop\HealthBar.pwn(13) : error 029: invalid expression, assumed zero
C:\Users\Dave\Desktop\HealthBar.pwn(13) : fatal error 107: too many error messages on one lineCompilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
4 Errors.
-
Nutze die auskommmentierte Deklaration.
Außerdem musst du für die Einstellungen (Farbe, Größe,...) ebenfalls die PlayerTextDraw Funktionen nutzen. Sonst geht es nicht.
-
-
new PlayerText:Textdraw0[MAX_PLAYERS];
new PlayerText:Textdraw1[MAX_PLAYERS];Die Einstellungsfunktionen findest du alle hier:
https://wiki.sa-mp.com/wiki/CreatePlayerTextDraw -
-
Jeffry: Das kommt dabei raus, habe alles von deinem Link entnommen und es so übernommen bzw. angepasst.
Spoiler anzeigen
#include <a_samp>Spoiler anzeigen new PlayerText:Textdraw0[MAX_PLAYERS];
new PlayerText:Textdraw1[MAX_PLAYERS];Spoiler anzeigen public OnPlayerConnect(playerid)
{Spoiler anzeigen // Create the textdraws:
Textdraw0[playerid] = CreatePlayerTextDraw(playerid,569.0, 44.0, "100");
TextDrawBackgroundColor(Textdraw0, 255);
TextDrawFont(Textdraw0, 2);
TextDrawLetterSize(Textdraw0, 0.220000, 0.899999);
TextDrawColor(Textdraw0, -65281);
TextDrawSetOutline(Textdraw0, 0);
TextDrawSetProportional(Textdraw0, 1);
TextDrawSetShadow(Textdraw0, 1);
TextDrawSetSelectable(Textdraw0, 0);Spoiler anzeigen Textdraw1[playerid] = CreatePlayerTextDraw(playerid,569.0, 66.0, "100");
TextDrawBackgroundColor(Textdraw1, 255);
TextDrawFont(Textdraw1, 2);
TextDrawLetterSize(Textdraw1, 0.220000, 0.899999);
TextDrawColor(Textdraw1, -65281);
TextDrawSetOutline(Textdraw1, 0);
TextDrawSetProportional(Textdraw1, 1);
TextDrawSetShadow(Textdraw1, 1);
TextDrawSetSelectable(Textdraw1, 0);
return 1;Spoiler anzeigen public OnPlayerDisconnect(playerid)
{
TextDrawHideForAll(Textdraw0);
TextDrawDestroy(Textdraw0);
TextDrawHideForAll(Textdraw1);
TextDrawDestroy(Textdraw1);
return 1;
}Spoiler anzeigen public OnPlayerSpawn(playerid)
{
PlayerTextDrawShow(playerid, Textdraw0[playerid]);
PlayerTextDrawShow(playerid, Textdraw1[playerid]);
return 1;C:\Users\Dave\Desktop\HealthBar.pwn(12) : error 035: argument type mismatch (argument 1)
C:\Users\Dave\Desktop\HealthBar.pwn(13) : error 035: argument type mismatch (argument 1)
C:\Users\Dave\Desktop\HealthBar.pwn(14) : error 035: argument type mismatch (argument 1)
C:\Users\Dave\Desktop\HealthBar.pwn(15) : error 035: argument type mismatch (argument 1)
C:\Users\Dave\Desktop\HealthBar.pwn(16) : error 035: argument type mismatch (argument 1)
C:\Users\Dave\Desktop\HealthBar.pwn(17) : error 035: argument type mismatch (argument 1)
C:\Users\Dave\Desktop\HealthBar.pwn(18) : error 035: argument type mismatch (argument 1)
C:\Users\Dave\Desktop\HealthBar.pwn(19) : error 035: argument type mismatch (argument 1)
C:\Users\Dave\Desktop\HealthBar.pwn(22) : error 035: argument type mismatch (argument 1)
C:\Users\Dave\Desktop\HealthBar.pwn(23) : error 035: argument type mismatch (argument 1)
C:\Users\Dave\Desktop\HealthBar.pwn(24) : error 035: argument type mismatch (argument 1)
C:\Users\Dave\Desktop\HealthBar.pwn(25) : error 035: argument type mismatch (argument 1)
C:\Users\Dave\Desktop\HealthBar.pwn(26) : error 035: argument type mismatch (argument 1)
C:\Users\Dave\Desktop\HealthBar.pwn(27) : error 035: argument type mismatch (argument 1)
C:\Users\Dave\Desktop\HealthBar.pwn(28) : error 035: argument type mismatch (argument 1)
C:\Users\Dave\Desktop\HealthBar.pwn(29) : error 035: argument type mismatch (argument 1)
C:\Users\Dave\Desktop\HealthBar.pwn(38) : error 035: argument type mismatch (argument 1)
C:\Users\Dave\Desktop\HealthBar.pwn(39) : error 035: argument type mismatch (argument 1)
C:\Users\Dave\Desktop\HealthBar.pwn(40) : error 035: argument type mismatch (argument 1)
C:\Users\Dave\Desktop\HealthBar.pwn(41) : error 035: argument type mismatch (argument 1)
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase20 Errors.
-
Das ist noch genau so wie davor.
Zum Beispiel:
TextDrawBackgroundColor
Das wird für Textdraws verwendet, die mit TextDrawCreate erstellt worden sind. Findest du das in dem Link? Nein.
Du musst also PlayerTextDrawBackgroundColor verwenden, das findest du in dem Link (ganz unten stehen alle Funktionen).Das natürlich bei allen Funktionen.
Außerdem musst du anstatt Textdraw0 folgendes schreiben: Textdraw0[playerid]
EDIT: @[LnD]JustMe.77:
Hier, bitteschön:
Spoiler anzeigen #include <a_samp>Spoiler anzeigen new PlayerText:Textdraw0[MAX_PLAYERS];
new PlayerText:Textdraw1[MAX_PLAYERS];Spoiler anzeigen public OnPlayerConnect(playerid)
{
// Create the textdraws:
Textdraw0[playerid] = CreatePlayerTextDraw(playerid,569.0, 44.0, "100");
PlayerTextDrawBackgroundColor(playerid, Textdraw0[playerid], 255);
PlayerTextDrawFont(playerid, Textdraw0[playerid], 2);
PlayerTextDrawLetterSize(playerid, Textdraw0[playerid], 0.220000, 0.899999);
PlayerTextDrawColor(playerid, Textdraw0[playerid], -65281);
PlayerTextDrawSetOutline(playerid, Textdraw0[playerid], 0);
PlayerTextDrawSetProportional(playerid, Textdraw0[playerid], 1);
PlayerTextDrawSetShadow(playerid, Textdraw0[playerid], 1);
PlayerTextDrawSetSelectable(playerid, Textdraw0[playerid], 0);Spoiler anzeigen Textdraw1[playerid] = CreatePlayerTextDraw(playerid,569.0, 66.0, "100");
PlayerTextDrawBackgroundColor(playerid, Textdraw1[playerid], 255);
PlayerTextDrawFont(playerid, Textdraw1[playerid], 2);
PlayerTextDrawLetterSize(playerid, Textdraw1[playerid], 0.220000, 0.899999);
PlayerTextDrawColor(playerid, Textdraw1[playerid], -65281);
PlayerTextDrawSetOutline(playerid, Textdraw1[playerid], 0);
PlayerTextDrawSetProportional(playerid, Textdraw1[playerid], 1);
PlayerTextDrawSetShadow(playerid, Textdraw1[playerid], 1);
PlayerTextDrawSetSelectable(playerid, Textdraw1[playerid], 0);Spoiler anzeigen return 1;
}Spoiler anzeigen public OnPlayerDisconnect(playerid)
{
PlayerTextDrawDestroy(playerid, Textdraw0[playerid]);
PlayerTextDrawDestroy(playerid, Textdraw1[playerid]);
return 1;
}Spoiler anzeigen public OnPlayerSpawn(playerid)
{
PlayerTextDrawShow(playerid, Textdraw0[playerid]);
PlayerTextDrawShow(playerid, Textdraw1[playerid]);
return 1;
} -
Ich habe mal eine frage unswa ist das bei LoG so das alles erst nach Connectet to Life of German - Die Zeitfabrik
meine frage ist davor kommt ja Connectet. Joining the Game wo muss ich das eingeben was zwischen
Connectet. Joining the Game
und
Connectet to.....sprich das erst der Login Textdraw nach Connectet to kommt und nicht direkt bei Connectet Joining the Game
Jeffry:
weiß das wer ?
weil bei mir wird alles angezeigt sobald das Connectet. Joining the Game kommt aber erst wenn
Connectet to Test Server kommt kann ich was auswählen und so -
Bevor ich dein Beispiel austeste, kannst du mir sagen was ich falsch mache damit ich das in Zukunft besser mache?
Erhalte 0 Erros, nur Ingame werden die Textdraws nicht angezeigt.
Spoiler anzeigen
#include <a_samp>Spoiler anzeigen new PlayerText:Textdraw0;
new PlayerText:Textdraw1;Spoiler anzeigen public OnPlayerConnect(playerid)
{
Textdraw0 = CreatePlayerTextDraw(playerid,568.000000, 43.000000, "100");
PlayerTextDrawBackgroundColor(playerid,Textdraw0, 255);
PlayerTextDrawFont(playerid,Textdraw0, 2);
PlayerTextDrawLetterSize(playerid,Textdraw0, 0.240000, 1.000000);
PlayerTextDrawColor(playerid,Textdraw0, 16711935);
PlayerTextDrawSetOutline(playerid,Textdraw0, 0);
PlayerTextDrawSetProportional(playerid,Textdraw0, 1);
PlayerTextDrawSetShadow(playerid,Textdraw0, 1);
PlayerTextDrawSetSelectable(playerid,Textdraw0, 0);Spoiler anzeigen Textdraw1 = CreatePlayerTextDraw(playerid,568.000000, 65.000000, "100");
PlayerTextDrawBackgroundColor(playerid,Textdraw1, 255);
PlayerTextDrawFont(playerid,Textdraw1, 2);
PlayerTextDrawLetterSize(playerid,Textdraw1, 0.240000, 1.000000);
PlayerTextDrawColor(playerid,Textdraw1, 16711935);
PlayerTextDrawSetOutline(playerid,Textdraw1, 0);
PlayerTextDrawSetProportional(playerid,Textdraw1, 1);
PlayerTextDrawSetShadow(playerid,Textdraw1, 1);
PlayerTextDrawSetSelectable(playerid,Textdraw1, 0);
Spoiler anzeigen public OnPlayerDisconnect(playerid, reason)
{
PlayerTextDrawDestroy(playerid, PlayerText:Textdraw0);
PlayerTextDrawDestroy(playerid, PlayerText:Textdraw1);
PlayerTextDrawHide(playerid, PlayerText:Textdraw0);
PlayerTextDrawHide(playerid, PlayerText:Textdraw1);
return 1;
}Spoiler anzeigen public OnPlayerSpawn(playerid)
{
PlayerTextDrawShow(playerid, PlayerText:Textdraw0);
PlayerTextDrawShow(playerid, PlayerText:Textdraw1);
return 1;
}
-
Da es ein Textdraw ist, das spielerspezifisch erstellt wird, musst du das playerid Array hinzufügen, überall.
Textdraw0
Zu
Textdraw0[playerid]Ebenso für Textdraw1.
Die richtige Deklaration hatte ich dir ja bereits gegeben.
@xCurry:
Setze einen Timer, oder nimm OnPlayerRequestClass. -
-
Hast du den Filterscript in der server.cfg eingetragen?
Wenn ja, setze mal bei dem OnPlayerSpawn einen Print hin, wird der aufgerufen? -
Hi, hab oben die Include <m_zones> eingetragen und auch in den Ordner getan. Aber bekomme 2 Errors obwohl ich mit der Include noch nichts gemacht hab. Benutze die neuste version die ich gefunden hab.
C:\Users\Eddy\Desktop\GTA\GTA - Selfmade\pawno\include\m_zones.inc(113) : error 004: function "M_OnPlayerEnterZone" is not implemented
C:\Users\Eddy\Desktop\GTA\GTA - Selfmade\pawno\include\m_zones.inc(122) : error 004: function "M_OnPlayerLeaveZone" is not implemented
C:\Users\Eddy\Desktop\GTA\GTA - Selfmade\gamemodes\NLG.pwn(1226) : warning 203: symbol is never used: "M_Connect"
C:\Users\Eddy\Desktop\GTA\GTA - Selfmade\gamemodes\NLG.pwn(1226) : warning 203: symbol is never used: "M_Init"
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase2 Errors.
-
Hallo,
wenn ich unter OnGameModeInit folgendes habe:ShowNameTags(0);
Und dem Spieler per SetPlayerColor eine Farbe gebe, wird er trotzdem auf der Karte Farbig makiert?
-
@0x0040FB80: Ja.
Grapefruit:
Zu den beiden Errors fehlt jeweils das public zum forward.
Die beiden Warnungen sagen, dass diese Funktionen nie verwendet werden. Die solltest du wahrscheinlich verwenden, sonst funktioniert das System nicht. -