interior sterben und spawnen

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
  • Guten Tag


    In Los Santos ist diese Große Arena, die bestimmt alle kennen. ich möchte nun diese Arena für verschiedenes nutzen, wie beispiel weise dm arenen.
    also habe ich ein pickup erstellt vor der arena. wenn man im pickup steht und /enter macht öffnet sich ein dialog wo man die verscheidenen arena aussuchen kann.
    ich habe bisher eine dm arena (deagle) gemacht. wenn man diese im dialog auswählt, kommt man in ein interior und jeder bekommt eine nachricht das er in die die deagle arena gegangen ist. dort im interior bekommt man dann die entsprechende waffe/muni und es ist ein pickup vorhanden, womit man die arena wieder verlassen kann. das klappt auch alles perfekt. ich würde es gerne nun so machen, das wenn man in diesem interior stirbt, auch wieder dort spawnt. am besten randpom spawns... man stirbt in dieser arena und kommt irgentwo in dieser arena wieder, das ganze spielt sich n einem interior ab...


    hier das ganze nochmal als script:


    new arena;//pickup vor arena
    new deagleraus;//pickup in der deagle arena wieder nach draußen


    #define DIALOG_ARENA1 11
    #define DIALOG_DM 12


    OnGameModeInit()
    {
    arena = CreatePickup(1239,1,2695.4177,-1704.5634,11.8438,-1);//arena
    deagleraus = CreatePickup(1239,1,965.3785,2107.8579,1011.0303,-1);//dm arena raus
    return 1;
    }


    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if (strcmp(cmdtext, "/enter", true)==0)
    {
    if(IsPlayerInRangeOfPoint(playerid,2.0,2695.4177,-1704.5634,11.8438))//nahe des pickups vor der arena
    {
    ShowPlayerDialog(playerid,DIALOG_ARENA1,DIALOG_STYLE_LIST,"Los Santos Arena","Deathmatch","Weiter","Abbrechen");
    }
    }
    if(strcmp(cmdtext, "/exit", true)==0)
    {
    if(IsPlayerInRangeOfPoint(playerid,2.0,965.3785,2107.8579,1011.0303)) //pickup in der deagle map
    {
    SetPlayerPos(playerid,2695.4177,-1704.5634,11.8438);
    SetPlayerInterior(playerid,0);
    ResetPlayerWeapons(playerid);
    GivePlayerWeapon(playerid,24,99999);
    GivePlayerWeapon(playerid,25,99999);
    GivePlayerWeapon(playerid,29,99999);
    }
    }
    return 1;
    }


    public OnPlayerPickUpPickup(playerid, pickupid)
    {
    if(pickupid == deagleraus)
    {
    GameTextForPlayer(playerid,"~w~/exit",2500,6);
    }
    if(pickupid == arena)
    {
    GameTextForPlayer(playerid,"~w~/enter",2000,6);
    }
    return 1;
    }


    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    if(dialogid == 11)
    {
    if(response)
    {
    if(listitem == 0)
    {
    ShowPlayerDialog(playerid,12,DIALOG_STYLE_LIST,"Deathmatch","Deagle\nMp5","Okay","Zurück");
    }
    }
    }
    if(dialogid == 12)
    {
    new name[MAX_PLAYER_NAME];
    if(response)
    {
    if(listitem == 0)
    {
    new string2[50];
    GetPlayerName(playerid,name,sizeof(name));
    format(string2,sizeof(string2),">> %s ist in die Deagle-Arena gegangen!",name);
    SendClientMessageToAll(GREEN,string2);
    ResetPlayerWeapons(playerid);
    GivePlayerWeapon(playerid,24,500);
    SetPlayerInterior(playerid,1);
    SetPlayerPos(playerid,963.418762,2108.292480,1011.030273);
    return 1;
    }
    }
    else
    {
    ShowPlayerDialog(playerid,DIALOG_ARENA1,DIALOG_STYLE_LIST,"Los Santos Arena","Deathmatch","Weiter","Abbrechen");
    return 1;
    }
    }
    return 1;
    }


    also wenn man in der deagle arena ist, und dort stirbt, soll man dort wieder spawnen...

  • meinst du so:


    new dmarena[playerid]


    //wenn er in die arena rein geht
    {
    dmarena[playerid] = 1;
    }
    //wenn er raus geht:
    {
    dmarena[playerid] = 0;
    }
    //wenn er spawnt
    {
    if(dmarena[playerid] = 1;)
    {
    //hier das er da wieder spawnt
    }
    }


    //edit: habs ma ausprobiert, der kann nichts mit playerid anfangen, und ich fürchte selbst wenn keine errors kommen, das alle wieder dort im interior spawnen, egal wo sie gestorben sind...

    Einmal editiert, zuletzt von Simon ()

  • das ist mir klar... aber es haut nicht hin...


    wenn man stirbt, spawnt man...
    also kann ich unter OnPlayerSpawn abfragen ob er in diesem interior war und dann mit SetPlayerPos bzw SetPlayerInterior bestimmen wo er spawnen soll...
    aber es klappt nicht wait ich mache es nochmal und schick ein ausschnitt vom script...

  • bitteschön:


    new dmarena[playerid];//zeile 8


    public OnPlayerSpawn(playerid)
    {
    if(dmarena[playerid] = 1)//zeile 1233
    {
    SendClientMessage(playerid,GREEN,"test");
    }
    return 1;
    }


    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if(strcmp(cmdtext, "/exit", true)==0) // wenn er raus geht
    {
    if(IsPlayerInRangeOfPoint(playerid,2.0,965.3785,2107.8579,1011.0303))
    {
    SetPlayerPos(playerid,2695.4177,-1704.5634,11.8438);
    SetPlayerInterior(playerid,0);
    ResetPlayerWeapons(playerid);
    GivePlayerWeapon(playerid,24,99999);
    GivePlayerWeapon(playerid,25,99999);
    GivePlayerWeapon(playerid,29,99999);
    dmarena[playerid] = 0;//
    }
    }
    return 1;
    }


    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    new string[512];
    if(dialogid == 11)
    {
    if(response)
    {
    if(listitem == 0)
    {
    ShowPlayerDialog(playerid,12,DIALOG_STYLE_LIST,"Deathmatch","Deagle\nMp5","Okay","Zurück");
    }
    }
    }
    if(dialogid == 12)
    {
    new name[MAX_PLAYER_NAME];
    if(response)
    {
    if(listitem == 0)
    {
    new string2[50];
    GetPlayerName(playerid,name,sizeof(name));
    format(string2,sizeof(string2),">> %s ist in die Deagle-Arena gegangen!",name);
    SendClientMessageToAll(GREEN,string2);
    ResetPlayerWeapons(playerid);
    GivePlayerWeapon(playerid,24,500);
    SetPlayerInterior(playerid,1);
    SetPlayerPos(playerid,963.418762,2108.292480,1011.030273);
    dmarena[playerid] = 1;
    return 1;
    }

    }
    else
    {
    ShowPlayerDialog(playerid,DIALOG_ARENA1,DIALOG_STYLE_LIST,"Los Santos Arena","Deathmatch","Weiter","Abbrechen");
    return 1;
    }
    }


    return 1;
    }


    C:\Users\Simon Siggelkow\Desktop\Pawno\gamemodes\Dm.pwn(8) : error 017: undefined symbol "playerid"
    C:\Users\Simon Siggelkow\Desktop\Pawno\gamemodes\Dm.pwn(8) : error 009: invalid array size (negative, zero or out of bounds)
    C:\Users\Simon Siggelkow\Desktop\Pawno\gamemodes\Dm.pwn(1233) : warning 211: possibly unintended assignment
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    2 Errors.

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen