Nach tot in Arena wieder drinne Spawnen bis man Verlässt

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
  • Mach einfach das eine Variable beim joinen für den Spieler gesetzt wird. Und das ganze fragst du dann bei on PlayerSpawn ab. (Vom handy)

    Zitat von Elon Musk

    If you're trying to create a company, it's like baking a cake. You have to have all the ingredients in the right proportion.

  • Erstell eine Globale Spieler Variable.
    Setze diese beim Connect auf 0.
    Beim Betreten einer Arena auf einen höheren Wert, bspw. auf 1 für die erste Arena, und auf 2 für die zweite, usw...
    Bei OnPlayerSpawn fragst du dann ab, ob diese Variable auf 1 oder höher ist, und setzt den Spieler in die Arena.


    Wenn er dann verlassen möchte, erstellst du einen Befehl, und setzt die Variable dort auf 0, und respawnst ihn anschließend.

  • Kannst du mir nicht einfach einen Code senden da ich sowas nochnciht verstehe und so


    Bitte oder Erklär mir wies geht.


    Mit Freundlichen grüßen


    Warum direkt einen Code!?
    Kannst du nicht mal vorher dein Gehirn einschalten?
    Ich habe ebend 2 Threads von dir gesehen ( glaube letzten beiden von dir ) und bei beiden Threads: "Kannst du mir vlt den Code schreiben?"
    willst du es nicht mal selber schreiben? Ist ein tolles Gefühl! :pinch:

  • new Arena[MAX_PLAYERS]; //global


    OnPlayerConnect:
    Arena[playerid] = 0;


    Bei z.b /arena1:
    Arena[playerid] = 1; //arenen id 1


    Bei z.b /exitarena:
    Arena[playerid] = 0; //ist in keiner arena mehr


    Unter OnPlayerSpawn:
    if(Arena[playerid] == 1) { //wenn arenaid vom spieler gleich 1
    SetPlayerPos(playerid, x, y, z); //setzspielerposition
    }



    Mit handy geschrieben, nächste mal bitte ein selbstversuch starten und posten :)

  • Guten Tag,
    wie gesagt habe ich es probiert und habe diesen Code erstellt.
    public OnPlayerSpawn(playerid)
    {
    if(IsPlayerAdmin(playerid))
    {
    new pID, msg[144];
    format(msg, sizeof(msg),"Willkommen %s, du hast dich als Admin Rank %i eingeloggt.",SpielerName(playerid),GetPVarInt(pID,"Adminlevel"));
    SendClientMessage(playerid,BLAU,msg);
    return 1;
    }
    if(Arena[playerid] == 1) { //wenn arenaid vom spieler gleich 1
    SetPlayerPos(playerid,-971.8334,1089.9342,1344.9961); SetPlayerInterior(playerid,10); //setzspielerposition
    SetPlayerHealth(playerid,100);
    GivePlayerWeapon(playerid,24,900);
    }
    return 1;
    if(Arena[playerid] == 2) { //wenn arenaid vom spieler gleich 1
    SetPlayerPos(playerid,367.3092,158.1934,1014.1875);SetPlayerInterior(playerid,3);}
    SetPlayerHealth(playerid,100);
    GivePlayerWeapon(playerid,34,900);
    }
    return 1;
    if(Arena[playerid] == 3) { //wenn arenaid vom spieler gleich 1
    SetPlayerPos(playerid,367.3092,158.1934,1014.1875);SetPlayerInterior(playerid,1)
    SetPlayerHealth(playerid,100);
    GivePlayerWeapon(playerid,24,900);
    }
    return 1;
    if(Arena[playerid] == 4) { //wenn arenaid vom spieler gleich 1
    SetPlayerPos(playerid,2223.5076,-1148.6694,1025.7969);SetPlayerInterior(playerid,15);}
    SetPlayerHealth(playerid,100);
    GivePlayerWeapon(playerid,24,900);
    GivePlayerWeapon(playerid,30,900);
    return 1;
    }


    da der Fehler Code:





    C:\Users\Patrick\Desktop\Server\gamemodes\IRP-City.pwn(218) : warning 225: unreachable code
    C:\Users\Patrick\Desktop\Server\gamemodes\IRP-City.pwn(222) : warning 209: function "OnPlayerSpawn" should return a value
    C:\Users\Patrick\Desktop\Server\gamemodes\IRP-City.pwn(223) : error 010: invalid function or declaration
    C:\Users\Patrick\Desktop\Server\gamemodes\IRP-City.pwn(224) : error 010: invalid function or declaration
    C:\Users\Patrick\Desktop\Server\gamemodes\IRP-City.pwn(229) : error 010: invalid function or declaration
    C:\Users\Patrick\Desktop\Server\gamemodes\IRP-City.pwn(230) : error 010: invalid function or declaration
    C:\Users\Patrick\Desktop\Server\gamemodes\IRP-City.pwn(235) : error 010: invalid function or declaration
    C:\Users\Patrick\Desktop\Server\gamemodes\IRP-City.pwn(457) : warning 202: number of arguments does not match definition
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    5 Errors.


    Danke für die Hilfe


    Mit Freundlichen Grüßen

  • public OnPlayerSpawn(playerid)
    {
    if(IsPlayerAdmin(playerid))
    {
    new pID, msg[144];
    format(msg, sizeof(msg),"Willkommen %s, du hast dich als Admin Rank %i eingeloggt.",SpielerName(playerid),GetPVarInt(pID,"Adminlevel"));
    SendClientMessage(playerid,BLAU,msg);
    return 1;
    }
    if(Arena[playerid] == 1) {
    SetPlayerPos(playerid,-971.8334,1089.9342,1344.9961);
    SetPlayerInterior(playerid,10);
    SetPlayerHealth(playerid,100);
    GivePlayerWeapon(playerid,24,900);
    return 1;
    }
    else if(Arena[playerid] == 2) {
    SetPlayerPos(playerid,367.3092,158.1934,1014.1875);
    SetPlayerInterior(playerid,3);
    SetPlayerHealth(playerid,100);
    GivePlayerWeapon(playerid,34,900);
    return 1;
    }
    else if(Arena[playerid] == 3) {
    SetPlayerPos(playerid,367.3092,158.1934,1014.1875);
    SetPlayerInterior(playerid,1)
    SetPlayerHealth(playerid,100);
    GivePlayerWeapon(playerid,24,900);
    return 1;
    }
    else if(Arena[playerid] == 4) {
    SetPlayerPos(playerid,2223.5076,-1148.6694,1025.7969);
    SetPlayerInterior(playerid,15);
    SetPlayerHealth(playerid,100);
    GivePlayerWeapon(playerid,24,900);
    GivePlayerWeapon(playerid,30,900);
    return 1;
    }
    }

    Kann sein das du das noch richtig einrücken musst, da mit handy gemacht, daher auch ungetestet. Wenn error/warnings kommen einfach posten

    3 Mal editiert, zuletzt von varrez ()

  • Hat funtkioniert aber kann ich die Random Spawns auch einfügen?
    Also so ungefair.
    else if(Arena[playerid] == 4)
    {
    switch(random(6))
    {
    case 0: { SetPlayerPos(playerid,2223.5076,-1148.6694,1025.7969);SetPlayerInterior(playerid,15);}
    case 1: { SetPlayerPos(playerid,2238.9226,-1154.9788,1029.7969);SetPlayerInterior(playerid,15);}
    case 2: { SetPlayerPos(playerid,2250.5847,-1165.3674,1029.7969);SetPlayerInterior(playerid,15);}
    case 3: { SetPlayerPos(playerid,2238.7441,-1165.2533,1029.7969);SetPlayerInterior(playerid,15);}
    case 4: { SetPlayerPos(playerid,2227.2576,-1182.9080,1029.8043);SetPlayerInterior(playerid,15);}
    case 5: { SetPlayerPos(playerid,2199.0776,-1193.0017,1029.7969);SetPlayerInterior(playerid,15);}
    case 6: { SetPlayerPos(playerid,2193.6851,-1146.5016,1029.7969);SetPlayerInterior(playerid,15);}
    }
    SetPlayerHealth(playerid,100);
    GivePlayerWeapon(playerid,24,900);
    GivePlayerWeapon(playerid,30,900);
    return 1;
    }
    return 1;

  • Oben iwo im Script:


    new Float:Arena4Spawns[][3] = {
    {X, y, z},
    {X, y, z} //xyz durch richtige koords ersetzten
    };


    Unter OnPlayerSpawn:
    else if (Arena[playerid] == 4) {
    new rand = random(sizeof (Arena4Spawns));
    SetPlayerPos(playerid, Arena4Spawns[rand][0], Arena4Spawns[rand][1], Arena4Spawns[rand][2]);
    SetPlayerHealth(playerid, 100);
    GivePlayerWeapon(playerid, 24, 900);
    GivePlayerWeapon(playerid, 30, 900);
    return 1;
    }


    Vom handy gepostet/untested