Random Spawn

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
  • Da ja doch viele Leute Probleme mit dem random Spawn haben zeige ich jetzt mal wie leicht es eig ist :D


    (Es ist aus dem LVDM Script . Einige schaffen es aber net es daraus zu kopieren deswegen schreibe ich das Tut :D)


    Dies kommt ganz nach oben unter die Includes


    new Spawn[MAX_PLAYERS];
    forward SetPlayerRandomSpawn(playerid);


    So das kommt auch ganz nach oben zu den anderen zwei Sachen nur hier tragt ihr die Random Spawns ein:


    new Float:gRandomPlayerSpawns[23][3] = {
    {1958.3783,1343.1572,15.3746},
    {2199.6531,1393.3678,10.8203},
    {2483.5977,1222.0825,10.8203},
    {2637.2712,1129.2743,11.1797},
    {2000.0106,1521.1111,17.0625},
    {2024.8190,1917.9425,12.3386},
    {2261.9048,2035.9547,10.8203},
    {2262.0986,2398.6572,10.8203},
    {2244.2566,2523.7280,10.8203},
    {2335.3228,2786.4478,10.8203},
    {2150.0186,2734.2297,11.1763},
    {2158.0811,2797.5488,10.8203},
    {1969.8301,2722.8564,10.8203},
    {1652.0555,2709.4072,10.8265},
    {1564.0052,2756.9463,10.8203},
    {1271.5452,2554.0227,10.8203},
    {1441.5894,2567.9099,10.8203},
    {1480.6473,2213.5718,11.0234},
    {1400.5906,2225.6960,11.0234},
    {1598.8419,2221.5676,11.0625},
    {1318.7759,1251.3580,10.8203},
    {1558.0731,1007.8292,10.8125},
    {1705.2347,1025.6808,10.8203}
    };


    So man beachte aber das bei der letzten Coords Zeile kein Komma ist und oben wo die 23 steht muss man z.b wenn eine neue Coords Zeile hinzu kommt 24 hinschreiben


    Die 3 konnt ich selber noch net herausfinden..


    So bei OnPlayerconnect fügt ihr folgende Zeile ein


    SetPlayerRandomSpawn(playerid);


    So und i-wo im Script platziert ihr dieses hier


    public SetPlayerRandomSpawn(playerid)
    {
    if (Spawn[playerid] == 0)
    {
    new rand = random(sizeof(gRandomPlayerSpawns));
    SetPlayerPos(playerid, gRandomPlayerSpawns[rand][0], gRandomPlayerSpawns[rand][1], gRandomPlayerSpawns[rand][2]);
    }
    return 1;
    }


    Soo das wars auch schon :D hoffe ich konnte euch helfen ^^

  • Also ich fand es recht hilfreich mein Spawn steht nur nich ganz so wie ich es mir vorgestellt habe^^....Alle Player haben nen Rnd spawn und sie spawnen nicht da wo ich es festgelegt habe^^ sie spawnen unter der welt

    Dieser Beitrag wurde bereits 1337 mal editiert, zuletzt von »Syn0x« (Jetzt, 13:37)

  • Übersetz doch mal. Zufallsspawn. Ein zufälliger Ort, bzw. ein Ort mit einer dieser 23 Koordinaten an dem man spawnt. Zufällig vom Script ausgewählt.

    Help dcmd & sscanf to their way to Pawn domination. Read the tutorial below, and use it.
    dcmd & sscanf

  • also ich habs so gemacht


    new Float:gRandomChangeColors[3][1] = {
    {COLOR_GREEN},
    {COLOR_RED},
    {COLOR_BLUE}
    };



    forward ChangeColors(playerid);


    public OnPlayerConnect(playerid)
    {
    ChangeColors(playerid);
    return 1;
    }


    public ChangeColors(playerid)
    {
    new rand = random(sizeof(gRandomChangeColors));
    SetPlayerColor(playerid, gRandomChangeColors[rand][0], gRandomChangeColors[rand][1], gRandomChangeColors[rand][2]);
    return 1;
    }


    C:\DOKUME~1\Manuel\Desktop\alles\server\GAMEMO~1\ALLSER~1.PWN(61) : warning 213: tag mismatch
    C:\DOKUME~1\Manuel\Desktop\alles\server\GAMEMO~1\ALLSER~1.PWN(62) : warning 213: tag mismatch
    C:\DOKUME~1\Manuel\Desktop\alles\server\GAMEMO~1\ALLSER~1.PWN(63) : warning 213: tag mismatch
    C:\DOKUME~1\Manuel\Desktop\alles\server\GAMEMO~1\ALLSER~1.PWN(287) : warning 213: tag mismatch
    C:\DOKUME~1\Manuel\Desktop\alles\server\GAMEMO~1\ALLSER~1.PWN(287) : error 032: array index out of bounds (variable "gRandomChangeColors")


    {COLOR_GREEN},
    {COLOR_RED},
    {COLOR_BLUE}


    das sind die ersten 3 ( tag mismatch)
    SetPlayerColor(playerid, gRandomChangeColors[rand][0], gRandomChangeColors[rand][1], gRandomChangeColors[rand][2]); = tag mismatch 4


    SetPlayerColor(playerid, gRandomChangeColors[rand][0], gRandomChangeColors[rand][1], gRandomChangeColors[rand][2]); = array...

  • wenn du das bei OnPlayerConnect machst hat das 0 sinn, da du dann in der skin selection bist und die dir einen spawn ort zuweist


    würde das entweder bei OnPlayerSpawn, oder besser noch, bei OnPlayerStateChange rein machen


    wenn dein server/pc bischen laggt, oder dein gta grad ne hacke hat, funzt es bei OnPlayerSpawn meist nicht, bei StateChange eig immer


    sieht dann so aus:


    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    switch(newstate)
    {
    case PLAYER_STATE_SPAWNED: SetPlayerRandomSpawn(playerid);
    }
    return 1;
    }

  • habe folgenes problem


    new Float:gRandomPlayerSpawns[11][3] = {
    {2288.6621,2425.4321,10.3888},
    {1541.6932,-1675.5548,13.1169},
    {-1574.6930,662.0535,6.7584},
    {2027.0287,1007.5736,10.3841},
    {1699.8757,1450.5980,10.3624},
    {2618.3169,1717.6899,10.3983},
    {432.5358,2517.9717,16.5825},
    {-2086.7419,-84.7992,34.7291},
    {-1787.1644,1202.8785,24.6961},
    {-2642.8486,1373.9923,6.7255},
    {1971.4067,-1177.3578,19.5821},
    {837.2213,-1828.8716,11.7732}
    };


    forward SetPlayerRandomSpawn(playerid);


    public OnPlayerRequestSpawn(playerid)
    {
    SetPlayerRandomSpawn(playerid);
    return 1;
    }


    public SetPlayerRandomSpawn(playerid)
    {
    SetPlayerPos(playerid, gRandomPlayerSpawns[random][0], gRandomPlayerSpawns[random][1], gRandomPlayerSpawns[random][2]);
    return 1;
    }


    C:\DOKUME~1\Manuel\Desktop\alles\server\GAMEMO~1\ALLSER~1.PWN(74) : error 018: initialization data exceeds declared size
    C:\DOKUME~1\Manuel\Desktop\alles\server\GAMEMO~1\ALLSER~1.PWN(76) : error 010: invalid function or declaration
    C:\DOKUME~1\Manuel\Desktop\alles\server\GAMEMO~1\ALLSER~1.PWN(402) : error 076: syntax error in the expression, or invalid function call


    erster error is die zeile wo das letze komma kommt also die vorletzten coords {1971.4067,-1177.3578,19.5821},


    is die letzte zeile das }; (76) : error 010: invalid function or declaration


    und die zeile: SetPlayerPos(playerid, gRandomPlayerSpawns[random][0], gRandomPlayerSpawns[random][1], gRandomPlayerSpawns[random][2]); (402) : error 076: syntax error in the expression, or invalid function call

  • ops dann bleibt nur noch das prob:
    SetPlayerPos(playerid, gRandomPlayerSpawns[random][0], gRandomPlayerSpawns[random][1], gRandomPlayerSpawns[random][2]);


    mit dem error:
    PWN(402) : error 076: syntax error in the expression, or invalid function call

  • wozu poste ich eig?


    die Funktion sollte unter OnPlayerSpawn(playerid) oder OnPlayerStateChange(playerid, newstate, oldstate) stehen, weil OnPlayerRequestSpawn wird in dem Moment gerufen, wo du einen Skin auswählst, also SHIFT drückst. bringt also wieder nix


    zum andern:


    new rand = random(sizeof(gRandomPlayerSpawns));


    SetPlayerPos(playerid, gRandomPlayerSpawns[rand][0], gRandomPlayerSpawns[rand][1], gRandomPlayerSpawns[rand][2]);


    und wozu immer nen forward? brauchst du die funktion in anderen Scripts?


    mach doch:


    stock SetPlayerRandomSpawn(playerid)

    Einmal editiert, zuletzt von Monoxid ()