Jump to content
  • 0

pomoc Checkpointy


TuronCZ

Dotaz

Ahoj, no chtěl bych se zeptat jak rozeznám co nejvíce CP. Které jsou které mám třeba první, ten se samozřejmě pozná sám, ale když do ňo vjede hráč tak aby mu ho disablo a setnulo nový. Děkuji když mi sem napíšete v codě jak se to rozpozná prosím... děkuji

Link to comment
Share on other sites

11 odpovědí na tuto otázku

Recommended Posts

  • 0

Ty jsi mě asi nepochopil, já vím ty funkce.... a máš tam chybu v SetPlayerCechPoint (...) má být SetPlayerCheckpoint (...), já se ptám jak je rozeznat...

Link to comment
Share on other sites

  • 0
public OnPlayerEnterCheckpoint(playerid)
{
    switch(racecp[playerid])
    {
        case 1:
        {
        DisablePlayerCheckpoint(playerid);
        racecp[playerid]++;
        SetPlayerCheckpoint(playerid, 1903.5356,1472.9135,10.8203, 15.0);
        }
        case 2:
        {
        DisablePlayerCheckpoint(playerid);
        racecp[playerid]++;
        SetPlayerCheckpoint(playerid, 1907.0653,1575.9379,10.8203, 15.0);
        }
        case 3:
        {
        DisablePlayerCheckpoint(playerid);
        racecp[playerid]++;
        SetPlayerCheckpoint(playerid, 1826.8276,1598.2134,6.8283, 15.0);
        }
        case 4:
        {
        DisablePlayerCheckpoint(playerid);
        racecp[playerid]++;
        SetPlayerCheckpoint(playerid, 1882.0297,1714.0782,10.9436, 15.0);
        }
        case 5:
        {
        place++;
        DisablePlayerCheckpoint(playerid);
        racecp[playerid] = 0;
        PlayerPlaySound(playerid, 1056, 1098.2716,1704.0417,10.8203);
        new name[MAX_PLAYER_NAME], string[100];
        GetPlayerName(playerid, name, sizeof(name));
        format(string, sizeof(string), "Dojel jsi na %d. místě", name, place1);
        SendClientMessageToAll(zelena, string);
        DisablePlayerCheckpoint(playerid);
        new currentveh;
        currentveh = GetPlayerVehicleID(playerid);
        DestroyVehicle(currentveh);
        }
    }
return 1;
}

Uděláš si proměnou a pak ji zvěčuješ ;) u mě je to racecp[playerid] nazačátku je na 0 a pak příkazem třeba /racejoin se nastaví na 1 a pak pomoví tohohle switch(racecp1[playerid]) jede po case ;) takže když je racecp[playerid] na 1 tak jede case 1 a jak dojede to case 1 tak se o jedno racecp[playerid] zvýší (++) a jede case 2 chápeš? :d

EDIT: place to je umíštění když někdo projede posledním CP tak se Place o jedno vždy zvýší a tím se bude dělat pořádí (př.: projede zavodík 1. a place se zvýší o 1 a je to 1 jako první pak když projede druhý tak se zase o 1 zvýší a je to už jako druhý :d

Link to comment
Share on other sites

  • 0

Mno, nějak mi to nejde... určitě mám někde chybu... :d

tady jak to mam ve spoileru .-->

 

new Utek1[MAX_PLAYERS];
new utek1cp[MAX_PLAYERS];


public OnPlayerEnterCheckpoint(playerid)
{
switch(utek1cp[playerid])
{
case 1:
{
DisablePlayerCheckpoint(playerid);
utek1cp[playerid]++;
SetPlayerCheckpoint(playerid,-162.3151,1223.1326,19.7422, 2);
SCM (playerid, CYAN, "Dobrá, vem si motorku a zajeď k řece!");
}
case 2:
{
DisablePlayerCheckpoint(playerid);
utek1cp[playerid]++;
SetPlayerCheckpoint(playerid,1238.4990,663.4877,5.5177,2);
SCM (playerid, CYAN, "Výborně, vem si loď a dojeď do posledního CP! Dávej si bacha na policejní stráž!");
}
case 3:
{
DisablePlayerCheckpoint(playerid);
utek1cp[playerid] = 0;
PlayerPlaySound(playerid, 1056, 1098.2716,1704.0417,10.8203);
DisablePlayerCheckpoint(playerid);
SCM (playerid, CYAN, "Úspěšně jsi dokončil útěk 1! + 50 bodů!");
SetPlayerScore(playerid,GetPlayerScore(playerid)+50);
Utek1[playerid] = 0;
}
}
return 1;
}


public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if(PRESSED(KEY_SECONDARY_ATTACK))
{
if(IsPlayerInRangeOfPoint(playerid, 1.0, 169.5413, 1790.0491, 17.6968))
{
if(Sila[playerid] < 5) return SCM(playerid, C_RED, "[ ! ] {55FFAA}Nemáš dostatek síly! {0044FF}Potřeba 5 síly!");
else if(Utek1[playerid] == 1) return SCM(playerid, FIALOVA, "O další pokus o útěk se můžeš pokusit až za 30 sekund!");
Utek1[playerid] = 1;
SetTimerEx("Utek1cas",30000,false,"i",playerid);
{
new nahoda = random(7); // toto že náhody či to rozbije či nie ...
switch (nahoda)
{
case 0:
{
SCM(playerid, C_RED, "[ ! ] {FFFF00}Bohužel, ale nepodařilo se ti utéct. "); //scm
}
case 1:
{
SCM(playerid, C_RED, "[ ! ] {FFFF00}Bohužel, ale nepodařilo se ti utéct. "); //scm
}
case 2:
{
SCM(playerid, C_RED, "[ ! ] {FFFF00}Bohužel, ale nepodařilo se ti utéct. "); //scm
}
case 3:
{
Utek1[playerid] = 1;
SCM(playerid, C_GREEN, "[ ! ] {FFFF00}Blahopřeji, podařilo se ti utéct!");
SCM(playerid, C_GREEN, "[ ! ] {FFFF00}Dojeď do checkpointu označený na radaru!");
SetPlayerPos(playerid,-295.5724,1783.6786,42.8166); // portne ho na pozici
SetPlayerCheckpoint(playerid,-162.3151,1223.1326,19.7422, 2);
}
case 4:
{
SCM(playerid, C_RED, "[ ! ] {FFFF00}Bohužel, ale nepodařilo se ti utéct. "); //scm
}
case 5:
{
SCM(playerid, C_RED, "[ ! ] {FFFF00}Bohužel, ale nepodařilo se ti utéct. "); //scm
}
case 6:
{
SCM(playerid, C_RED, "[ ! ] {FFFF00}Bohužel, ale nepodařilo se ti utéct. "); //scm
}
}
}
}
}
return 1;
}

 

 

no... snad chápeš, našel bys chybu ?

a nefunguje mi to, že když vstoupím do 1. checkpointu, tak se nic nestane

Link to comment
Share on other sites

  • 0

To od tebe Atomasi se mi zdá dobré, ale pro mě zatím jak si napsal složité :d udělal bych to radši jak tu psal danda, ale mám tam očividně v tom mém kódu chybu.

Link to comment
Share on other sites

  • 0
new Utek1[MAX_PLAYERS];
new utek1cp[MAX_PLAYERS];


public OnPlayerEnterCheckpoint(playerid)
{
switch(utek1cp[playerid])
{
case 1:
{
DisablePlayerCheckpoint(playerid);
utek1cp[playerid]++;
SetPlayerCheckpoint(playerid,-162.3151,1223.1326,19.7422, 2);
SCM (playerid, CYAN, "Dobrá, vem si motorku a zajeď k řece!");
}
case 2:
{
DisablePlayerCheckpoint(playerid);
utek1cp[playerid]++;
SetPlayerCheckpoint(playerid,1238.4990,663.4877,5.5177,2);
SCM (playerid, CYAN, "Výborně, vem si loď a dojeď do posledního CP! Dávej si bacha na policejní stráž!");
}
case 3:
{
DisablePlayerCheckpoint(playerid);
utek1cp[playerid] = 0;
PlayerPlaySound(playerid, 1056, 1238.4990,663.4877,5.5177);
SCM (playerid, CYAN, "Úspěšně jsi dokončil útěk 1! + 50 bodů!");
SetPlayerScore(playerid,GetPlayerScore(playerid)+50);
Utek1[playerid] = 0;
}
}
return 1;
}


public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if(PRESSED(KEY_SECONDARY_ATTACK))
{
if(IsPlayerInRangeOfPoint(playerid, 1.0, 169.5413, 1790.0491, 17.6968))
{
if(Sila[playerid] < 5) return SCM(playerid, C_RED, "[ ! ] {55FFAA}Nemáš dostatek síly! {0044FF}Potřeba 5 síly!");
else if(Utek1[playerid] == 1) return SCM(playerid, FIALOVA, "O další pokus o útěk se můžeš pokusit až za 30 sekund!");
Utek1[playerid] = 1;
SetTimerEx("Utek1cas",30000,false,"i",playerid);
{
new nahoda = random(7); // toto že náhody či to rozbije či nie ...
switch (nahoda)
{
case 0:
{
SCM(playerid, C_RED, "[ ! ] {FFFF00}Bohužel, ale nepodařilo se ti utéct. "); //scm
}
case 1:
{
SCM(playerid, C_RED, "[ ! ] {FFFF00}Bohužel, ale nepodařilo se ti utéct. "); //scm
}
case 2:
{
SCM(playerid, C_RED, "[ ! ] {FFFF00}Bohužel, ale nepodařilo se ti utéct. "); //scm
}
case 3:
{
Utek1[playerid] = 1;
SCM(playerid, C_GREEN, "[ ! ] {FFFF00}Blahopřeji, podařilo se ti utéct!");
SCM(playerid, C_GREEN, "[ ! ] {FFFF00}Dojeď do checkpointu označený na radaru!");
SetPlayerPos(playerid,-295.5724,1783.6786,42.8166); // portne ho na pozici
utek1cp[playerid] = 1;
}
case 4:
{
SCM(playerid, C_RED, "[ ! ] {FFFF00}Bohužel, ale nepodařilo se ti utéct. "); //scm
}
case 5:
{
SCM(playerid, C_RED, "[ ! ] {FFFF00}Bohužel, ale nepodařilo se ti utéct. "); //scm
}
case 6:
{
SCM(playerid, C_RED, "[ ! ] {FFFF00}Bohužel, ale nepodařilo se ti utéct. "); //scm
}
}
}
}
}
return 1;
}

Snad to pujde :d  Nejsem si jist :d ATomasi díky o tom TuTu jsem nevěděl :d

Link to comment
Share on other sites

  • 0
new Utek1[MAX_PLAYERS];
new utek1cp[MAX_PLAYERS];


public OnPlayerEnterCheckpoint(playerid)
{
switch(utek1cp[playerid])
{
case 0:
{
DisablePlayerCheckpoint(playerid);
utek1cp[playerid]++;
SetPlayerCheckpoint(playerid,-162.3151,1223.1326,19.7422, 2);
SCM (playerid, CYAN, "Dobrá, vem si motorku a zajeď k řece!");
}
case 1:
{
DisablePlayerCheckpoint(playerid);
utek1cp[playerid]++;
SetPlayerCheckpoint(playerid,1238.4990,663.4877,5.5177,2);
SCM (playerid, CYAN, "Výborně, vem si loď a dojeď do posledního CP! Dávej si bacha na policejní stráž!");
}
case 2:
{
DisablePlayerCheckpoint(playerid);
utek1cp[playerid] = 0;
PlayerPlaySound(playerid, 1056, 1238.4990,663.4877,5.5177);
SCM (playerid, CYAN, "Úspěšně jsi dokončil útěk 1! + 50 bodů!");
SetPlayerScore(playerid,GetPlayerScore(playerid)+50);
Utek1[playerid] = 0;
}
}
return 1;
}


public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if(PRESSED(KEY_SECONDARY_ATTACK))
{
if(IsPlayerInRangeOfPoint(playerid, 1.0, 169.5413, 1790.0491, 17.6968))
{
if(Sila[playerid] < 5) return SCM(playerid, C_RED, "[ ! ] {55FFAA}Nemáš dostatek síly! {0044FF}Potřeba 5 síly!");
else if(Utek1[playerid] == 1) return SCM(playerid, FIALOVA, "O další pokus o útěk se můžeš pokusit až za 30 sekund!");
Utek1[playerid] = 1;
SetTimerEx("Utek1cas",30000,false,"i",playerid);
{
new nahoda = random(7); // toto že náhody či to rozbije či nie ...
switch (nahoda)
{
case 0:
{
SCM(playerid, C_RED, "[ ! ] {FFFF00}Bohužel, ale nepodařilo se ti utéct. "); //scm
}
case 1:
{
SCM(playerid, C_RED, "[ ! ] {FFFF00}Bohužel, ale nepodařilo se ti utéct. "); //scm
}
case 2:
{
SCM(playerid, C_RED, "[ ! ] {FFFF00}Bohužel, ale nepodařilo se ti utéct. "); //scm
}
case 3:
{
Utek1[playerid] = 1;
SCM(playerid, C_GREEN, "[ ! ] {FFFF00}Blahopřeji, podařilo se ti utéct!");
SCM(playerid, C_GREEN, "[ ! ] {FFFF00}Dojeď do checkpointu označený na radaru!");
SetPlayerPos(playerid,-295.5724,1783.6786,42.8166); // portne ho na pozici
SetPlayerCheckpoint(playerid,-295.5724,1783.6786,42.8166, 2);
utek1cp[playerid] = 0;
}
case 4:
{
SCM(playerid, C_RED, "[ ! ] {FFFF00}Bohužel, ale nepodařilo se ti utéct. "); //scm
}
case 5:
{
SCM(playerid, C_RED, "[ ! ] {FFFF00}Bohužel, ale nepodařilo se ti utéct. "); //scm
}
case 6:
{
SCM(playerid, C_RED, "[ ! ] {FFFF00}Bohužel, ale nepodařilo se ti utéct. "); //scm
}
}
}
}
}
return 1;
}

Nevím zase jestli to pujde :d Ale snad jo :d

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...