hey leute,
ich hab angefangen mein eigenes gamemode zu erstellen. Jetzt hab ich ein Problem ich weiß nicht ob das ein Logik- oder ein Syntax-Fehler ist oder was auch immer.
Ich ein einfaches gate erstellt das ich mit /opengate öffne und sich durch ein timer wieder schliest und das ganze muss halt in einem Radius von 20m eingegeben werden, ansonst öffnet das tor nicht.
Ich möchte jetzt folgendes:
Wenn ein Spieler in die range von meinem gate kommt, das er ein Textdraw sieht welches heisst: "Benutze hier /opengate". // hab ich geschafft.
Wenn der Spieler aus der range entfernt das Textdraw wieder verschwindet bzw. löscht. // k.A bräuchte da hilfe
Ich hab mir gedacht, ich mach das ganze nochmal mit einem timer der mir nach x-millisecs das Textdraw löscht. Und das ganze pack ich dann
in das OnPlayerUpdate Callback.
MyTextDraw()
{
mytext = TextDrawCreate(150.0,360.0,"Das Tor mit /opengate benutzen."); // Create the textdraw
TextDrawColor(mytext,GRUEN2); // Set the color of the text
TextDrawSetOutline(mytext,1); // Set the outline (stroke) of the text
TextDrawSetShadow(mytext,0); // Set the shadow of the text
TextDrawFont(mytext,3); // Set the Font
TextDrawLetterSize(mytext,0.7,1.2); // Set the letter size
TextDrawShowForAll(mytext); // Show the textdraw to a certain player
}
forward removeOpengate();
public removeOpengate()
{
TextDrawHideForAll(mytext); // Hide the textdraw
TextDrawDestroy(mytext); // Destroy the textdraw
}
public OnPlayerUpdate(playerid)
{
if(IsPlayerInRangeOfPoint(playerid,20.0,1101.59997559, -1755.90002441, 12.39999962))
{
MyTextDraw();
SetTimer("removeOpengate",200,false);
}
return 1;
}
Wie gesagt, wenn ich in die Nähe komme taucht das TextDraw auf. Wenn ich mich aber wieder davon entferne, verschwindet es nicht.
kann mir jemand helfen, was mach ich falsch?? ;D
neuer versuch klappt auch nicht
mit dcallbacks.inc
forward OnPlayerEnterArea(playerid,areaid);
public OnPlayerEnterArea(playerid,areaid)
{
if(areaid == spawnarea)
{
MyTextDraw();
}
return 1;
}
forward OnPlayerLeaveArea(playerid,areaid);
public OnPlayerLeaveArea(playerid,areaid)
{
if(areaid == spawnarea)
{
SetTimer("removeOpengate",20,false);
}
return 1;
}
spawnarea = CreateArea3(1101.59997559, -1755.90002441, 12.39999962,0); // bestimmt setzen der koord. falsch ;D
Erscheint nichteinmal das Textdraw...
danke