Hilfe bei Script

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
  • Hey,
    ich sehe auf vielen Servern, dass man dort z.B. "/dm" eingeben kann und man dann in einer Deathmatch Arena ist, und wollte nun fragen wie das Script dazu aussehen müsse.
    Ich würde nämlich gerne das wenn man "/<Text>" eingibt, dass man dann bei einen der folgenden Koordinaten zufällig spawnt:
    AddPlayerClass(0,1532.7548,-1518.8129,67.2072,178.5088,0,0,0,0,0,0);
    AddPlayerClass(0,1532.7070,-1534.2567,67.2109,343.9503,0,0,0,0,0,0);
    AddPlayerClass(0,1532.1960,-1567.3811,67.2109,289.4298,0,0,0,0,0,0);


    Falls man es auch noch hinkriegen könnte, dass wenn man erst wieder "/exit" eingibt, zurück zu den alten Spawnpunkten kommt, wäre es perfekt :P
    Hoffe ich habe mich nicht zu undeutlich ausgedrückt und das mir jemand helfen kann.


    Edit: Wie man sich jetzt zu einem Punkt hinportet weiß ich, aber nicht wie man bei einem der 3 Punkte random spawnt..und wenn man stirbt sollte man am besten wieder bei einem der 3 oberen Punkte spawnen. Erst wenn man "/Text" eingibt soll man wieder zu den letzten Spawnpunkten kommen.
    Hoffe mir kann jemand helfen.

    Einmal editiert, zuletzt von Flay683 ()

  • Ok ich schreibb das einfach mal kurz hier!


    zu den "forwards"
    forward SetPlayerDmSpawn(playerid);


    bei "new" (einfach deine Coords eingeben)

    new Float:gRandomMinigunSpawns[11][3] = {
    {758.1880,375.2377,23.1933},// minigun 1
    {736.0798,383.0280,23.1658},// minigun 2
    {749.1251,350.4127,20.4268},// minigun 3
    {723.7081,268.4617,22.4531},// minigun 4
    {748.1498,257.7168,27.0859},// minigun 5
    {747.5540,279.0977,27.2400},// minigun 6
    {698.6391,300.0674,20.2747},// minigun 7
    {772.1561,347.9639,20.1527},// minigun 8
    {796.4085,350.2693,19.6548},// minigun 9
    {807.0848,371.8990,19.4260},// minigun 10
    {786.8870,392.2495,21.7477} // minigun 11

    new dmon[MAX_PLAYERS];
    new spawn[MAY_PLAYERS];


    Dann noch den "Public" dazu (unten ins Script):
    public SetPlayerDmSpawn(playerid)
    {
    if (spawn[playerid] == 0)
    {
    new rand = random(sizeof(gRandomDmSpawns));
    SetPlayerPos(playerid, gRandomDmSpawns[rand][0], gRandomDmSpawns[rand][1], gRandomDmSpawns[rand][2]);
    }
    return 1;
    }


    Dann natürlich noch den "Befehl":

    if (strcmp("/text", cmdtext) == 0)
    {
    if(dmon[playerid] == 0)
    {
    SetPlayerDmSpawn(playerid);
    SendClientMessage(playerid, COLOR_YELLOW, "Du hast dich zum Text geportet!");
    dmon[playerid] = 1;
    }
    else
    {
    SendClientMessage(playerid, COLOR_WHITE, "Du bist schon beim Text!");
    }
    return 1;
    }


    Und damit man dort spawnt wenn man stirbt das bei "OnPlayerSpawn"

    public OnPlayerSpawn(playerid)
    {
    if(dmon[playerid] == 1)
    {
    SetPlayerDmSpawn(playerid);
    }
    else
    {
    SpawnPlayer(playerid);
    }
    return 1;
    }


    So sollte es eigentlich funktionieren ist ungetestet weil ich das jetz kurz geschrieben hab!


    //Edit: /exit befehl vergessen:

    if (strcmp("/exit", cmdtext) == 0)
    {
    if(dmon[playerid] == 1)
    {
    dmon[playerid] = 0;
    SendClientMessage(playerid, COLOR_YELLOW, "Du spawnst nun wieder normal");
    SpawnPlayer(playerid);
    }
    else
    {
    SendClientMessage(playerid, COLOR_WHITE, "Du spawnst schjon normal!");
    }
    return 1;
    }


    LG
    Shadow

    Einmal editiert, zuletzt von [GRR]Shadow ()

  • Hey ,
    habe alles eingefügt aber er hat diesen Fehler:


    C:\Users\Florian\Desktop\Server\gamemodes\lvdm.pwn(306) : warning 225: unreachable code
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    1 Warning.


    Hier ist die Reihe 306 und die folgenden:


    Edit: Achja habe auch noch dort bei "grandomminigun..." das "minigun" in "Dm" geändert weil er sonst 8 errors hatte^^


    if(dmon[playerid] == 1) <-- 306
    {
    SetPlayerDmSpawn(playerid);
    }
    else
    {
    SpawnPlayer(playerid);
    }
    return 1;

    Einmal editiert, zuletzt von Flay683 ()

  • es kommt wieder die gleich Warnung. Hier ist nochmal was dort komplett steht:


    public OnPlayerSpawn(playerid)
    {
    GivePlayerWeapon(playerid,WEAPON_MP5,999);


    GivePlayerWeapon(playerid,WEAPON_SNIPER,100);


    GivePlayerMoney(playerid, PocketMoney);
    SetPlayerInterior(playerid,0);
    SetPlayerRandomSpawn(playerid);
    TogglePlayerClock(playerid,1);
    return 1;


    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(dmon == 1)
    {
    SetPlayerDmSpawn;
    }
    else
    {
    SpawnPlayer;
    }
    }
    return 1;



    }



  • So:



    [pwn]
    public OnPlayerSpawn(playerid)
    {
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(dmon[i] == 1)
    {
    SetPlayerDmSpawn[i];
    }
    else
    {
    GivePlayerWeapon(playerid,WEAPON_MP5,999);
    GivePlayerWeapon(playerid,WEAPON_SNIPER,100);
    GivePlayerMoney(playerid, PocketMoney);
    SetPlayerInterior(playerid,0);
    SetPlayerRandomSpawn(playerid);
    TogglePlayerClock(playerid,1);
    }
    }
    return 1;
    }

  • habe nun 4 neue errors


    C:\Users\Florian\Desktop\Server\gamemodes\lvdm.pwn(300) : error 028: invalid subscript (not an array or too many subscripts): "SetPlayerDmSpawn"
    C:\Users\Florian\Desktop\Server\gamemodes\lvdm.pwn(300) : warning 215: expression has no effect
    C:\Users\Florian\Desktop\Server\gamemodes\lvdm.pwn(300) : error 001: expected token: ";", but found "]"
    C:\Users\Florian\Desktop\Server\gamemodes\lvdm.pwn(300) : error 029: invalid expression, assumed zero
    C:\Users\Florian\Desktop\Server\gamemodes\lvdm.pwn(300) : fatal error 107: too many error messages on one line


    Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    4 Errors.



    Die Zeile 300 ist die mit "SetPlayerDmSpawn;"


    Weiß jemand wodran die Fehler liegen?

    Einmal editiert, zuletzt von Flay683 ()