Hey Leute ich bräuchte eure Hilfe, ich möchte es so machen das wenn man ein Dialog abschließt ein Marker kommt und wenn man in den Marker läuft das man teleportiert wird. Ich habe aber mehrere Marker und möchte deswegen das nur der eine einen Teleportiert wenn man reinläuft und nicht alle wie geht das?
Abfrage ob der Checkpoint in den man geht ein bestimmer ist?
- Jason27993
- Geschlossen
- Erledigt
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
-
-
-
So meine ich das nicht Ich meine es so: Wenn man bei einen Dialog auf "ok" klickt soll ein Marker/Checkpoint kommen und wenn man in diesen Reinläuft soll man Teleportiert werden. Allerdings habe ich noch andere Marker/Checkpoints und wenn man in die Reinläuft soll man eben nicht Teleportiert werden. So wie du es da hast wird man egal welcher Checkpoint es ist Teleportiert, ich möchte es aber nur bei einem bestimmten anstatt bei allen.
-
Dann wirst du wohl irgendeine Art Checkpoint Streamer nutzen müssen ( Da kriegst nämlich in der Regel eine "interne" ID für jeden Checkpoint ) oder manuell per Variable festlegen,welchen Checkpoint du dem Spieler angezeigt hast. Denn nur so kannst du zurückführen, welcher Checkpoint betreten wurden.
Wie du sicherlich weisst,kann nämlich immer nur ein Checkpoint erstellt werden ( Zumindest die Richtigen , Ich rede nicht von MapMarker ). Du musst also bestimmten, welcher Checkpoint dieser eine ist. -
Dann wirst du wohl irgendeine Art Checkpoint Streamer nutzen müssen ( Da kriegst nämlich in der Regel eine "interne" ID für jeden Checkpoint ) oder manuell per Variable festlegen,welchen Checkpoint du dem Spieler angezeigt hast. Denn nur so kannst du zurückführen, welcher Checkpoint betreten wurden.
Wie du sicherlich weisst,kann nämlich immer nur ein Checkpoint erstellt werden ( Zumindest die Richtigen , Ich rede nicht von MapMarker ). Du musst also bestimmten, welcher Checkpoint dieser eine ist.
Wie geht das genau mit New marker = SetPlayerCheckpoint(...); oder?und dann soll ich bei onplayerentercheckpoint wie ne abfrage machen habe lange nicht mehr gescriptet. -
Nein, du musst das manuell verwalten.
Du legst eine Variable für Jeden Spieler an. Dann bestimmt du zu jedem "unterschiedlichem" Checkpoint einen Wert, mit dem du später identifizieren willst um welchen Checkpoint es sich handelt.
Bei der Nutzung von SetPlayerCheckpoint setzt du jetzt noch zusätzlich den Wert der Variable des Spielers auf den Wert für den Checkpoint,denn du vorher bestimmt hast.
Zum Beispiel#define CHECKPOINT_BANK 24
#define CHECKPOINT_TELEPORT_LS 356
Der Spielervariable setzt du dann den entsprechenden Wert:
Var von Player = CHECKPOINT_BANK;
SetPlayerCheckpoint( )
Jetzt prüfst bei OnPlayerEnterCheckpoint, welcher Wert hinter der Spielervariable steckt und weißt, welchen Checkpoint er betreten hat.
if Var von Player == CHECKPOINT_BANK
// Tu Irgendwas -
Nein, du musst das manuell verwalten.
Du legst eine Variable für Jeden Spieler an. Dann bestimmt du zu jedem "unterschiedlichem" Checkpoint einen Wert, mit dem du später identifizieren willst um welchen Checkpoint es sich handelt.
Bei der Nutzung von SetPlayerCheckpoint setzt du jetzt noch zusätzlich den Wert der Variable des Spielers auf den Wert für den Checkpoint,denn du vorher bestimmt hast.
Zum Beispiel#define CHECKPOINT_BANK 24
#define CHECKPOINT_TELEPORT_LS 356
Der Spielervariable setzt du dann den entsprechenden Wert:
Var von Player = CHECKPOINT_BANK;
SetPlayerCheckpoint( )
Jetzt prüfst bei OnPlayerEnterCheckpoint, welcher Wert hinter der Spielervariable steckt und weißt, welchen Checkpoint er betreten hat.
if Var von Player == CHECKPOINT_BANK
// Tu IrgendwasAlso ich hab das jetzt so gemacht: #define CHECKPOINT_NPC 1
dann unter onDialogREsponse: if(dialogid==DIALOG_NPC)
{
if(response==0)
{
new NPC = CHECKPOINT_NPC;
SetPlayerCheckpoint(playerid, 653.9525,-2765.0823,1.9989, 3.0);
return 1;
}
if(response==1)
{
new NPC = CHECKPOINT_NPC;
SetPlayerCheckpoint(playerid, 653.9525,-2765.0823,1.9989, 3.0);
return 1;
}
}
und dann unter onplayerentercheckpoint: public OnPlayerEnterCheckpoint(playerid)
{
if NPC == CHECKPOINT_NPC
{
SendClientMessage(playerid,WEISS,"hat Geklappt!");
return 1;
}
DisablePlayerCheckpoint(playerid);
return 1;
}
allerdings bekomme ich folgende Fehler:
C:\Users\Julien\Desktop\SAMPPAWN\gamemodes\Untitled.pwn(403) : error 017: undefined symbol "NPC"
C:\Users\Julien\Desktop\SAMPPAWN\gamemodes\Untitled.pwn(531) : warning 204: symbol is assigned a value that is never used: "NPC"
C:\Users\Julien\Desktop\SAMPPAWN\gamemodes\Untitled.pwn(537) : warning 204: symbol is assigned a value that is never used: "NPC"
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase1 Error.
Edit: Sry das ich mich schwer tue^^
-
Du solltest dir mal anschauen was ein Array ist und wie man dieses Global anlegt.
Du kannst nicht irgendwo in einer Funktionen eine Variable anlegen und hoffen,dass sie überall aufrufbar ist. Zusätzlich weisst du bei deiner jetztigen Lösung auch nicht, für welchen Spieler der Checkpoint gesetzt wurde. Die if-Anweisung solltest du auch nochmal überarbeiten . Das war nicht mehr als nur n lahmer Pseudocode von mir. -
Hi ich glaube das gehört nicht hier aberich hab so ein error error 033: array must be indexed (variable "FSpru")
-
Hi ich glaube das gehört nicht hier aberich hab so ein error error 033: array must be indexed (variable "FSpru")
Nein Gehört Nicht hierher,und zu dem eignt. problem,
mach am besten so:
eine Variable erstellen:
new testch[20];[/pwn]
dann da wo der checkpoint aufgerufen wird also der erste:
testch[playerid] = 1;
SetPlayerCheckpoint(playerid,x,y,z,grösse);
so jetzt bei onplayerentercheckpoint:
if(testch[playerid] = 1)
{
//Jetzet hier was passsieren soll wenn er im checkpoint war :)
}[/pwn] -
hab das gemacht
public OnPlayerEnterCheckpoint(playerid)
{
//Zeile 1250 if(FSpru[playerid] = 0)
{
SetPlayerCheckpoint(playerid,1532.4430,-1445.5831,13.2577);
}
return 1;
}aber kriege diese Warnings:
[pwn]
C:\Users\Izeir\Desktop\Programme\TestServer\gamemodes\youtubetutorial.pwn(1250) : warning 211: possibly unintended assignment -
public OnPlayerEnterCheckpoint(playerid)
{
if(FSpru[playerid] == 0)
{
SetPlayerCheckpoint(playerid,1532.4430,-1445.5831,13.2577, 5.0);
}
return 1;
} -
breadfish.de
Hat das Thema geschlossen.