Hey Leute,
ich habe eine Frage.
Wie kann ich das so einstellen das wenn man /service macht das eine Liste kommt welche Services es gibt (die liste habe ich schon), und wenn man auf Pannen Dienst draufklickt das alle Pannen Dienst leute Gerufen werden und man es "/Pannenruf Akzeptieren" muss dann wird ein Red Marker auf ihn gesetzt wie mach ich sowas ? Danke im Vorraus
PannenDienst rufen wie?
- WhiteWay
- 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
-
-
Anstupser: For schleife die durch alle aktiven Spieler geht und abfragt wer davon zum Pannendienst gehört.
//edit:
Denen dann die playerid des Anrufer via ShowPlayerMarker zeigen. -
Anstupser: For schleife die durch alle aktiven Spieler geht und abfragt wer davon zum Pannendienst gehört.
//edit:
Denen dann die playerid des Anrufer via ShowPlayerMarker zeigen.
O.o Ich blick net durch bin kein Profi Sry ;P
kannst du des pls bissl besser erklärn? -
Was du dafür benötigst:
• ShowPlayerDialog und das dazugehörige Callback OnDialogResponse zum erstellen und abfragen von Dialogen.
• Dann eine for-Schleife zum Überprüfen, welche Spieler diesen Rang / Job besitzen.
• SendClientMessage und evntl. Format zum Ausgeben der Nachrichten.Bei weiteren Fragen kannste dich gerne bei mir auf dem Teamspeak 3 Server melden. (Direkter Link in Signatur)
Aber eigentlich ist alles in Samp Wiki erklärt. -
Was du dafür benötigst:
• ShowPlayerDialog und das dazugehörige Callback OnDialogResponse zum erstellen und abfragen von Dialogen.
• Dann eine for-Schleife zum Überprüfen, welche Spieler diesen Rang / Job besitzen.
• SendClientMessage und evntl. Format zum Ausgeben der Nachrichten.Bei weiteren Fragen kannste dich gerne bei mir auf dem Teamspeak 3 Server melden. (Direkter Link in Signatur)
Aber eigentlich ist alles in Samp Wiki erklärt.
Ok ich habs Geschafft das die Nachricht kommt aber nun Wie machen das es mit dem '/Pannenruf Akzeptieren' Geht`? -
Eine variable setzen, falls diese auf 1, ist, annehmen, und vari auf 0 setzen.
-
Eine variable setzen, falls diese auf 1, ist, annehmen, und vari auf 0 setzen.
Ähhh... Erklären Pls ? -
Also, du machst den service, also anrufen oder kp^^
Falls er angerufen hat, setzt du eine variable auf 1.
Beim annehmen befehl, fragst du ab ob die vari auf 1 ist, falls ja, ist ein anruf reingekommen.
Dann kommt das, was bei der annahme noch kommen soll. -
Also, du machst den service, also anrufen oder kp^^
Falls er angerufen hat, setzt du eine variable auf 1.
Beim annehmen befehl, fragst du ab ob die vari auf 1 ist, falls ja, ist ein anruf reingekommen.
Dann kommt das, was bei der annahme noch kommen soll.
Ja ok und aber wie setze ich dann ein Red Marker auf ihn? -
Ja ok und aber wie setze ich dann ein Red Marker auf ihn? -
Und damit der marker kommt, einen checkpoint
http://wiki.sa-mp.com/wiki/Function:SetPlayerCheckpoint -
lol jetz Stürzt einfach so mein Pawno ab wenn ich Compile??
// Edit Geht wieder
-
lol jetz Stürzt einfach so mein Pawno ab wenn ich Compile??
Code ? .. -
Und damit der marker kommt, einen checkpoint
http://wiki.sa-mp.com/wiki/Function:SetPlayerCheckpoint
Mhmmm das mit dem Marker check ich net ganz -
was genau ?
-
Also wie erstens der Befehl PannenRuf Akzept gebaut sein soll und dann noch ein Marker kommen soll?
// EDIT ocmd:pannenruf_akzept(playerid,params[])
{
if(phvar == 1)
{
//Was Soll hier rein?
}
} -
setz noch ne variable mit der playerid.
new anrufer;//beim befehl anrufen
anrufer=playerid;//beim accept.
new Float:Pos[2];
GetPlayerPos(anrufer,Pos[0],Pos[1],Pos[2]);
SetPlayerCheckpoint(playerid, Pos[0],Pos[1],Pos[2], 3.0); -
new anrufer;
Äh Öh Üh
C:\Users\ZENSIERT\Desktop\ZENSIERT\ZENSIERT\gamemodes\ZENSIERT.pwn(11115) : error 032: array index out of bounds (variable "Pos")
C:\Users\ZENSIERT\Desktop\ZENSIERT\ZENSIERT\gamemodes\ZENSIERT.pwn(11116) : error 032: array index out of bounds (variable "Pos")
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase2 Errors.
-
Bsp:
new PCall[MAX_PLAYERS];
new AcceptP[MAX_PLAYERS];
ocmd:pannenruf_akzept(playerid,params[])
{
new pID
if(sscanf(params,"u",pID)) return SendClientMessage(playerid, color, "/pannenruf_akzept [ID / Name]");
if(PCall[pID] != 1) return SendClientMessage(playerid, color, "Der Spieler hat niemanden gerufen!");
if(AcceptP[playerid] != 999) return SendClientMessage(playerid, color, "Du hast bereits einen Auftrag");
PCall[pID] = 2;
AcceptP[playerid] = pID;
return 1;
}Ich würde 2 Arrays machen, welche den jeweiligen Zustand mit den einzelnen Werten abfragt.
Wobei hier, PCall für den Spieler, der vorher gerufen hat steht, welches man zum Spam schutz,
und beim Logout verwenden kann (Damit der Mechaniker oder was weiß ich auch eine Nachricht kriegt, dass sein Kunde weg ist).
AcceptP übernimmt die pID, das heißt die ID von dem Kunden, welcher Hilfe braucht.
Dann setzten wir PCall für den Kunden auf 2, damit er sieht, dass ein Spieler unterwegs ist.
-> Nicht vergessen: Beim Login sollte AcceptP immer auf 999 gemacht werden! (Nicht auf 0, da es die playerid ja auch gibt).L.G.
heyho//edit:
new Float:Pos[3];
GetPlayerPos(anrufer,Pos[0],Pos[1],Pos[2]);
SetPlayerCheckpoint(playerid, Pos[0],Pos[1],Pos[2], 3.0);Index größe von 2 auf 3 ändern
-
Äh Öh Üh
C:\Users\ZENSIERT\Desktop\ZENSIERT\ZENSIERT\gamemodes\ZENSIERT.pwn(11115) : error 032: array index out of bounds (variable "Pos")
C:\Users\ZENSIERT\Desktop\ZENSIERT\ZENSIERT\gamemodes\ZENSIERT.pwn(11116) : error 032: array index out of bounds (variable "Pos")
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase2 Errors.
Das liegt nicht an dem anrufer sondern an dem Array "Pos" .. dieser ist womöglich zu großCode ?