Jump to content
  • 0

pomoc Checkpointy nefungují [HELP]


T.Evil

Dotaz

Ahoj, snažím se spustit checkpointy přes dialog a nějak se mi to nedaří :/

 

new Job1bus[256];
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{


	        if(PlayerInfo[playerid][pJob1] == 1)
	        {
	        ShowPlayerDialog(playerid, DIALOG_BUSDRIVER_START, DIALOG_STYLE_MSGBOX, "Směna", "Chceš začít svou směnu?", "Ano", "Ne");
	        }
            
            
}
//ONPLAYERDIALOGRESPONSE//
//JESTE MAM DALSI DIALOGY PRED TIM//


case DIALOG_BUSDRIVER_START:
    	{
    	if(response)
    	{
    	    if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 437)
    	    {

    	    Job1bus[playerid] = 1;
    	    SetPlayerCheckpoint(playerid,2774.3999000,913.0999800,100.0,10);
    	    SendClientMessage(playerid, 0xFFFFFFFF, "Tvoje směna byla zahájena! Jeď na stanici.");
    	    }
   	}
public OnPlayerEnterCheckpoint(playerid)
{
    if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 437)
   	{

   	if(Job1bus[playerid] == 1)
        {
  		Job1bus[playerid] = 2;
  		SetPlayerCheckpoint(playerid,2597.3999000,695.5999800,20.9000000,10);
  		PlayerInfo[playerid][pJob1ZK]++;
  		GivePlayerMoney(playerid, 500);

  		}
    if(Job1bus[playerid] == 2)
        {
        Job1bus[playerid] = 3;
  		SetPlayerCheckpoint(playerid,2307.0000000,715.5000000,20.9000000,10);
  		PlayerInfo[playerid][pJob1ZK]++;
  		GivePlayerMoney(playerid, 500);

  		}

Probém je že checkpoint se po potvrzení dialogu objeví ale to je tak všechno... Nepomohlo ani DisablePlayerCheckpoint


Pomoc, prosím...

Link to comment
Share on other sites

16 odpovědí na tuto otázku

Recommended Posts

  • 0

Od-debuguj si ten kod tak, ze si tam pridas (docasne) SCM abys zjistil, ktora vetev kodu se kdy provadi, treba takhle:

public OnPlayerEnterCheckpoint(playerid)
{
SCM(playerid, "debug 1");
    if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 437)
   	{
SCM(playerid, "debug 2");
   	if(Job1bus[playerid] == 1)
        {
SCM(playerid, "debug 3");
  		Job1bus[playerid] = 2;
  		SetPlayerCheckpoint(playerid,2597.3999000,695.5999800,20.9000000,10);
  		PlayerInfo[playerid][pJob1ZK]++;
  		GivePlayerMoney(playerid, 500);

  		}
    if(Job1bus[playerid] == 2)
        {
SCM(playerid, "debug 4");
        Job1bus[playerid] = 3;
  		SetPlayerCheckpoint(playerid,2307.0000000,715.5000000,20.9000000,10);
  		PlayerInfo[playerid][pJob1ZK]++;
  		GivePlayerMoney(playerid, 500);

  		}

kdyz se ti vypise debug 1 a debug 2 uz ne, tak vis, ze je chyba nekde mezi tim. tj to bude asi ten if. Tak si skontrolujes jestrli ho mas spravne, atd.

  • Líbí se mi to! (+1) 1
Link to comment
Share on other sites

  • 0

Zdravím,

myslím, že by nám všem výrazně pomohlo, kdyby jsi sem zveřejnil celý kód. Pokud je moc dlouhý, tak ho třeba hoď na ulož. to... Třeba s komenty, co a kde se týká těch check pointů.

 

Z tohohle výcucu těžko poznáme, jestli máš někde něco špatně. Může se jednat klidně o jednoduchou chybu, která v tomhle kusu kódu není vidět, jelikož kód není kompletní. ;)

Edited by GaRGoyLeS
Link to comment
Share on other sites

  • 0

if(Job1bus[playerid] == 1)
{
Job1bus[playerid] = 2;
SetPlayerCheckpoint(playerid,2597.3999000,695.5999800,20.9000000,10);
PlayerInfo[playerid][pJob1ZK]++;
GivePlayerMoney(playerid, 500);

}
else if(Job1bus[playerid] == 2)//tady jsem pripsal pred if else
{
Job1bus[playerid] = 3;
SetPlayerCheckpoint(playerid,2307.0000000,715.5000000,20.9000000,10);
PlayerInfo[playerid][pJob1ZK]++;
GivePlayerMoney(playerid, 500);

}
Link to comment
Share on other sites

  • 0

Zkoušel jsem přidat else a nic se nezměnilo :/ 
 

Myslím že není třeba přidávat celý můj kód. Co se týče checkpointů jako takových tak jsem přidal všechno co jsem udělal


PROBLÉM JE ŽE:

Ať pod "public OnPlayerEnterRaceCheckpoint(playerid)" napíšu cokoliv tak se to nestane, když vlezu do CP


Přepsal jsem ten kód znova podle tohohle tutorialu: http://pawno.cz/topic/31529-checkpointy/

Až na to že jsem to udělal s race cp. Stále stejný problém = Cokoliv napíšu pod OnPlayerEnterRaceCheckpoint se neuskuteční... Compile nehlásí žádnou chybu

 

Link to comment
Share on other sites

  • 0

new jJob1[MAX_PLAYERS];

OnPlayerEnterVehicle

{
if(PlayerInfo[playerid][pJob1] == 1)
	        {
	        
	        ShowPlayerDialog(playerid, DIALOG_BUSDRIVER_START, DIALOG_STYLE_MSGBOX, "Směna", "Chceš začít směnu?", "Ano", "Ne");
	        }
            if(PlayerInfo[playerid][pJob1] > 1)
            {
            SendClientMessage(playerid,0xFFFFFFAA,"Vrať se do práce!");
            }
}

Toto vyvolá checkpoint - resp. if(response)

 

case DIALOG_BUSDRIVER_START:
    	{
    	if(response)
    	    {

    	    SendClientMessage(playerid, 0xFFFFFFFF, "Tvoje směna byla zahájena! Jeď na stanici.");
    	    SetPlayerRaceCheckpoint(playerid, 2,2774.3999000,913.0999800,100.0,0,0,0,5);
            jJob1[playerid] = 0;
    	    
    	    }
    	    else
    	    {
    	    SendClientMessage(playerid, 0xFFFFFFFF, "Tvoje směna nebyla zahájena!");
    	    }
    	    
   		}

OnPlayerEnterRaceCheckpoint

 

{
    if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 437)
    if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 431)
   	{
        switch(jJob1[playerid])
		{
		case 0:
		{
        (DisablePlayerRaceCheckpoint(playerid));
		(jJob1[playerid]++);
  		(SetPlayerRaceCheckpoint(playerid,2,2774.3999000,913.0999800,100.0,0,0,0,10));
  		(SendClientMessage(playerid,0xFFFFFFAA,"TEST1"));


  		}
        case 1:
        {

  		(DisablePlayerRaceCheckpoint(playerid));
  		(jJob1[playerid]++);
  		(SetPlayerRaceCheckpoint(playerid,2,2597.3999000,695.5999800,20.9000000,0,0,0,10));
  		PlayerInfo[playerid][pJob1ZK]++;
  		SendClientMessage(playerid,0xFFFFFFAA,"TEST2");
  		GivePlayerMoney(playerid, 500);

  		}
        case 2:
        {

		(DisablePlayerRaceCheckpoint(playerid));
		(jJob1[playerid]++);
  		SetPlayerRaceCheckpoint(playerid,2,2307.0000000,715.5000000,20.9000000,0,0,0,10);
  		PlayerInfo[playerid][pJob1ZK]++;
  		GivePlayerMoney(playerid, 500);

  		}
		case 3:
        {

		(DisablePlayerRaceCheckpoint(playerid));
		(jJob1[playerid] = 0);
  		GivePlayerMoney(playerid, 500);
			}

  		}

	}
	return 1;
}

Předěkak jsem to v noci na race checkointy.. Kod bez chyby a stále stejnej problém..

Link to comment
Share on other sites

  • 0

if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 437)
if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 431)

 

if (a)

if (d)

{

 

}

 

je to same co if (a && d) { }

 

t.j. se to nikdy provest nemuze...

Edited by Satoshi
Link to comment
Share on other sites

  • 0

Mě to funguje a i když obě ty podmínky smažu furt mám stejný problém..

Chapes ze chyba je v kodu, ktery jsi nam neposlal ?

 

Bud ti neco zastavi kod coz by prozradil CrashDetect, nebo tam mas nekde return. Tak jako tak kdyby jsi ten SCM dal uplne na zacatek toho publicu, tak by se ti vypsal, ale kdyz to das pod neco uz se vypsat nemusi.

Edited by ATomas
  • Líbí se mi to! (+1) 1
Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...