Wieso wird der Anfrager nicht mitgeportet? isn Duellsystem.
Ich werde geportet der es angenommen hat aber nicht der die Anfrage geschickt hat
ocmd:accept(playerid,params[])
{
new str[64],pID;
new Random = random(sizeof(onespawn));
if(duell[playerid] == 1 || duell[pID] == 1)
{
SetPlayerInterior(playerid,6);
SetPlayerInterior(pID,6);
SetPlayerPos(pID,onespawn[Random][0],onespawn[Random][1],onespawn[Random][2]);
SetPlayerPos(playerid,onespawn[Random][0],onespawn[Random][1],onespawn[Random][2]);
GivePlayerWeapon(playerid,24,1337);
GivePlayerWeapon(pID,24,1337);
induell[playerid] =1;
induell[pID] =1;
}else{
SendClientMessage(playerid,GRAU,"Sie haben keine Einladung erhalten!");
}
return 1;
}
Der Sender wird nicht mit geportet
- Weihnachtsmann
- 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
-
-
Vielleicht weil pID erstellt aber nicht definiert wird?
Gruß
-
Vielleicht weil pID erstellt aber nicht definiert wird?
Gruß
Vielleicht weil pID erstellt aber nicht definiert wird?
Gruß
wie definiert?
-
Pablo bitte... lösch das wieder XD
Du erstellt de Variable pID
Die hat somit den Wert "0" (Standard halt)jetzt fragst du die Variablen von ID 0 ab usw.
Du musst die ID einlesen mit sscanf oder so halt
Jedenfalls fragst du so immer id 0 abWenn du ID 0 bist wirst du wegen "playerid" geportet und dann nocheinmal wegen "pID"
Je nachdem wie du das machen willst
Gruß
-
Pablo bitte... lösch das wieder XD
Du erstellt de Variable pID
Die hat somit den Wert "0" (Standard halt)jetzt fragst du die Variablen von ID 0 ab usw.
Du musst die ID einlesen mit sscanf oder so halt
Jedenfalls fragst du so immer id 0 abWenn du ID 0 bist wirst du wegen "playerid" geportet und dann nocheinmal wegen "pID"
Je nachdem wie du das machen willst
Gruß
Mit sscanf? - Blackout sry xd Kannst du mir eine Vorlage geben? -
Zeig mir mal schnell den Code wo man jemanden eine Anfrage sendet
ich schreib dir den Code dann richtig um für accept
Aber dann bitte nicht einfach reinkopieren sondern die Unterschiede anschauen -
Zeig mir mal schnell den Code wo man jemanden eine Anfrage sendet
ich schreib dir den Code dann richtig um für accept
Aber dann bitte nicht einfach reinkopieren sondern die Unterschiede anschauen
Klar ich will auch was lernenoben im script
new induell[MAX_PLAYERS];
new duell[MAX_PLAYERS];OnPlayerDeath
if(duell[playerid] == 1 || duell[killerid] == 1)
{
format(str,128,"{FFBE00}[DUELL]{FEFEFE} Der Spieler %s hat das Duell gegen %s gewonnen!",PlayerName(killerid),PlayerName(playerid));
SendClientMessageToAll(DUNKELGELB,str);
SpawnPlayer(playerid);
SpawnPlayer(killerid);
induell[playerid] = 0;
induell[killerid] = 0;
duell[killerid] = 0;
duell[playerid] = 0;
}ocmd:duell(playerid,params[])
{
new pID,str[128];
if(sscanf(params,"u",pID)) return SendClientMessage(playerid,GRAU,"Benutze: /duell [SpielerName/ID]");
if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,GRAU,"Spieler ist nicht online!");
if(playerid == pID) return SendClientMessage(playerid,GRAU,"[FEHLER] Du kannst dich nicht selbst einladen!");
if(induell[pID] == 1) return SendClientMessage(playerid,GRAU,"Ist im Duell!");
format(str,128,"Spieler %s fordert dich zu einem Duell heraus - /accept duell um anzunehmen!",PlayerName(playerid));
SendClientMessage(pID,TURKIS,str);
format(str,128,"Du hast eine Duell Anfrage an %s gesendet!",PlayerName(pID));
SendClientMessage(playerid,TURKIS,str);
duell[pID]=1;
return 1;
}
ocmd:accept(playerid,params[])
{
new str[64],pID;
new Random = random(sizeof(onespawn));
if(duell[playerid] == 0) return SendClientMessage(playerid,GRAU,"Keine Einladung bekomme");
SetPlayerInterior(playerid,6);
SetPlayerInterior(pID,6);
SetPlayerPos(pID,onespawn[Random][0],onespawn[Random][1],onespawn[Random][2]);
SetPlayerPos(playerid,onespawn[Random][0],onespawn[Random][1],onespawn[Random][2]);
GivePlayerWeapon(playerid,24,1337);
GivePlayerWeapon(pID,24,1337);
induell[playerid] =1;
induell[pID] =1;
return 1;
} -
da bidde ;D
OnPlayerConnect(playerid)
{
duell[playerid] = INVALID_PLAYER_ID;
}ocmd:duell(playerid,params[])
{
new pID,str[128];
if(sscanf(params,"u",pID)) return SendClientMessage(playerid,GRAU,"Benutze: /duell [SpielerName/ID]");
if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,GRAU,"Spieler ist nicht online!");
if(playerid == pID) return SendClientMessage(playerid,GRAU,"[FEHLER] Du kannst dich nicht selbst einladen!");
if(induell[pID] != INVALID_PLAYER_ID) return SendClientMessage(playerid,GRAU,"Ist im Duell!");
format(str,128,"Spieler %s fordert dich zu einem Duell heraus - /accept duell um anzunehmen!",PlayerName(playerid));
SendClientMessage(pID,TURKIS,str);
format(str,128,"Du hast eine Duell Anfrage an %s gesendet!",PlayerName(pID));
SendClientMessage(playerid,TURKIS,str);
duell[pID]=playerid;
return 1;
}
ocmd:accept(playerid,params[])
{
new str[64],pID;
new Random = random(sizeof(onespawn));
if(duell[playerid] == INVALID_PLAYER_ID) return SendClientMessage(playerid,GRAU,"Keine Einladung bekomme");
SetPlayerInterior(playerid,6);
SetPlayerInterior(duell[playerid],6);
SetPlayerPos(duell[playerid],onespawn[Random][0],onespawn[Random][1],onespawn[Random][2]);
SetPlayerPos(playerid,onespawn[Random][0],onespawn[Random][1],onespawn[Random][2]);
GivePlayerWeapon(playerid,24,1337);
GivePlayerWeapon(duell[playerid],24,1337);
induell[playerid] = duell[playerid];
induell[duell[playerid]] =playerid;
return 1;
}Sollte so funktionieren
-
da bidde ;D
OnPlayerConnect(playerid)
{
duell[playerid] = INVALID_PLAYER_ID;
}ocmd:duell(playerid,params[])
{
new pID,str[128];
if(sscanf(params,"u",pID)) return SendClientMessage(playerid,GRAU,"Benutze: /duell [SpielerName/ID]");
if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,GRAU,"Spieler ist nicht online!");
if(playerid == pID) return SendClientMessage(playerid,GRAU,"[FEHLER] Du kannst dich nicht selbst einladen!");
if(induell[pID] != INVALID_PLAYER_ID) return SendClientMessage(playerid,GRAU,"Ist im Duell!");
format(str,128,"Spieler %s fordert dich zu einem Duell heraus - /accept duell um anzunehmen!",PlayerName(playerid));
SendClientMessage(pID,TURKIS,str);
format(str,128,"Du hast eine Duell Anfrage an %s gesendet!",PlayerName(pID));
SendClientMessage(playerid,TURKIS,str);
duell[pID]=playerid;
return 1;
}
ocmd:accept(playerid,params[])
{
new str[64],pID;
new Random = random(sizeof(onespawn));
if(duell[playerid] == INVALID_PLAYER_ID) return SendClientMessage(playerid,GRAU,"Keine Einladung bekomme");
SetPlayerInterior(playerid,6);
SetPlayerInterior(duell[playerid],6);
SetPlayerPos(duell[playerid],onespawn[Random][0],onespawn[Random][1],onespawn[Random][2]);
SetPlayerPos(playerid,onespawn[Random][0],onespawn[Random][1],onespawn[Random][2]);
GivePlayerWeapon(playerid,24,1337);
GivePlayerWeapon(duell[playerid],24,1337);
induell[playerid] = duell[playerid];
induell[duell[playerid]] =playerid;
return 1;
}Sollte so funktionieren
Vielen Dank, aber beim Befehl wird pID nicht benutzt kann ich entfernen ge? -
Jap
-
Jap
Da kommt ist im Duell wenn ich einen Einladen will obwohl er kein Duell hat -
if(induell[pID] != INVALID_PLAYER_ID) return SendClientMessage(playerid,GRAU,"Ist im Duell!");
Was auch das wird, das ist nur die richtige Abfrage, dafür ob der Spieler verbunden ist.
(Normalerweiße)
if(Induell[pID] == 1)return bla bla bla
-
Mach noch unter OnPlayerConnect
"induell[playerid] = INVALID_PLAYER_ID;"
Das sollte gehen
-
Mach noch unter OnPlayerConnect
"induell[playerid] = INVALID_PLAYER_ID;"
Das sollte gehen
Was ist bei OnPlayerDeath fail? manchmal wird der Killer nicht neu gespawnt?if(duell[playerid] == 1 || duell[killerid] == 1)
{
format(str,128,"{FFBE00}[DUELL]{FEFEFE} Der Spieler %s hat das Duell gegen %s gewonnen!",PlayerName(killerid),PlayerName(playerid));
SendClientMessageToAll(DUNKELGELB,str);
SpawnPlayer(playerid);
SpawnPlayer(killerid);
induell[playerid] = 0;
induell[killerid] = 0;
duell[killerid] = 0;
duell[playerid] = 0;
} -
if(duell[playerid] != INVALID_PLAYER_ID || duell[killerid] != INVALID_PLAYER_ID)
{
format(str,128,"{FFBE00}[DUELL]{FEFEFE} Der Spieler %s hat das Duell gegen %s gewonnen!",PlayerName(killerid),PlayerName(playerid));
SendClientMessageToAll(DUNKELGELB,str);
SpawnPlayer(playerid);
SpawnPlayer(killerid);
induell[playerid] = INVALID_PLAYER_ID;
induell[killerid] = INVALID_PLAYER_ID;
duell[killerid] = INVALID_PLAYER_ID;
duell[playerid] = INVALID_PLAYER_ID;
}Gruß
-
breadfish.de
Hat das Thema geschlossen.