Der Sender wird nicht mit geportet

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
  • Wieso wird der Anfrager nicht mitgeportet? isn Duellsystem.
    Ich werde geportet der es angenommen hat aber nicht der die Anfrage geschickt hat :S

    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;
    }

  • 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 ab


    Wenn du ID 0 bist wirst du wegen "playerid" geportet und dann nocheinmal wegen "pID"


    Je nachdem wie du das machen willst


    Gruß

    ik bin der vito c:


  • Mit sscanf? - Blackout sry xd Kannst du mir eine Vorlage geben? 8|

  • 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 ^^

    ik bin der vito c:

  • 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 lernen ^^


    oben 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

    ik bin der vito c:


  • Vielen Dank, aber beim Befehl wird pID nicht benutzt kann ich entfernen ge? ^^

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • 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


    Engelsflügel am Astonkühler, als Schutz vor dem Teufel!

  • Mach noch unter OnPlayerConnect


    "induell[playerid] = INVALID_PLAYER_ID;"


    Das sollte gehen ;)


    Was ist bei OnPlayerDeath fail? manchmal wird der Killer nicht neu gespawnt? :S


    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ß

    ik bin der vito c: