Szerző Téma: Foglalt koordináta.  (Megtekintve 1142 alkalommal)

Foglalt koordináta.
« Dátum: 2014. december 06. - 14:07:22 »
0 Show voters
Sziasztok!
Szeretném megoldani,hogy ha valaki beír egy parancsot,akkor az illetőt elteleportálja \"A1 koordinátára,,.
Azonban ha valaki utána beírja szintén ugyan azt a parancsot,akkor őt már az \"A2 koordinátára,, teleportálja el.
Tehát ne egymásra teleportálódjanak,hanem mindig egy másik megadott koordinátára.
 
CMD:dm(playerid,params[])
{
if(IsPlayerInDM[playerid] == false)
{
IsPlayerInDM[playerid] = true;
}
else
{
    SendClientMessage(playerid,-1,\"Már csatlakoztál a DM-be!\");
}
new slot = 0;
switch(slot)
    {
        case 0:
{
               SetPlayerPos(playerid,A1);
               slot ++;
}
case 1:
{
               SetPlayerPos(playerid,A2);
               slot ++;
}
case 2:
{
               SetPlayerPos(playerid,A3);
               slot ++;
}
case 3:
{
               SetPlayerPos(playerid,A4);
               slot ++;
}
case 4:
{
               SendClientMessage(playerid,-1,\"Nincs több hely!\");
}
    }
return 1;
}

 
Így próbáltam megoldani,viszont ha valaki elhagyja a DM-et,akkor az ő helye üres lesz,és oda már nem tudnak akkor belépni.
Kivéve ha kilépésnél levonok egyet a változó értékéből..
Viszont akkor meg az a probléma áll fenn,hogy ha már négyen vannak bent,és a második kilép,akkor a változó értéke így 3-lesz és akkor ha ismét belép valaki,akkor a 3. helyen már ketten lesznek.
Hogy lehetne megoldani,hogy mindig az üres helyre tegye a játékost?
« Utoljára szerkesztve: 2014. december 06. - 14:15:23 írta ƒlaﻛh »

Nem elérhető Tomasz

  • 123
    • Profil megtekintése
Foglalt koordináta.
« Válasz #1 Dátum: 2014. december 07. - 09:07:25 »
+1 Show voters
A slot változót globálisan hozd létre és jó lesz.

Foglalt koordináta.
« Válasz #2 Dátum: 2014. december 07. - 13:55:44 »
0 Show voters
Az hogyan oldaná meg a problémámat?:o

Nem elérhető Dfoglalo

  • 4069
  • Globális Moderátor
    • Profil megtekintése
Foglalt koordináta.
« Válasz #3 Dátum: 2014. december 07. - 13:58:54 »
+1 Show voters
Úgy, hogy akkor nem nulláznád - valójában nem törölnéd és újra létrehoznád 0-s kezdőértékkel - a slot változót... Ilyen alap dolgokat tudnod kéne, ha nem is programozásból, de magyarból, hogy lokális és globális. Ráadásul elég sok ideje foglalkozol már ezzel ahhoz, hogy ezt tudd... Ha ennyire nem érted:
 
new slot = 0;
CMD:dm(playerid,params[])
{
        if(IsPlayerInDM[playerid] == false)
        {
        IsPlayerInDM[playerid] = true;
        }
                else
        {
            SendClientMessage(playerid,-1,\"Már csatlakoztál a DM-be!\");
        }
        switch(slot)
    {
    // ...

 
A kód elrendezésével pedig szerintem kezdj valamit, mert ez szerintem így eléggé össze-vissza van.

Foglalt koordináta.
« Válasz #4 Dátum: 2014. december 07. - 14:10:23 »
0 Show voters
\"Most már értem.,,
Kissé figyelmetlen voltam.><

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal