Jump to content
  • 0

pomoc CPčka


Twixo

Dotaz

Popis problému:

Prvý krat som skúšal CPčka, tak som chcel spraviť nejakú ľahkú misiu aby som sa s CPčkami naučil. Nom, ak pôjdem do prvého CP, tak mi všetky zobere. Všetko máte v kóde napísane a chcel by som poďakovať rady ohladom CP. A znovu sa ospravedlnujem za otravovanie.

 

Chyby/varování kompilátoru a při běhu:

--

 

Kód:

 

//hore

new bool:naberadrogy[MAX_PLAYERS];
new bool:vylozitdrogy[MAX_PLAYERS];
new bool:schovavasa[MAX_PLAYERS];
new madrogy[MAX_PLAYERS];

//EnterCP

public OnPlayerEnterCheckpoint(playerid)
{
    if(naberadrogy[playerid])
    {
	    madrogy[playerid] = 1;
	    DisablePlayerCheckpoint(playerid);
	    naberadrogy[playerid] = false;
	    SetPlayerCheckpoint(playerid,-1092.3529,-1631.1917,76.3564,3);
	    vylozitdrogy[playerid] = true;
        new nehladaneauto = CreateVehicle(495,-1108.8812,-1620.4327,76.7141,271.6356,95,49,5,0);
        SetVehicleVirtualWorld(nehladaneauto,GetPlayerVirtualWorld(playerid));
    }
    
    if(vylozitdrogy[playerid])
    {
    if(madrogy[playerid] == 0) return SendClientMessage(playerid,0xFF0000FF,"[ ! ] {FFFFFF}Nenaložil si drogy");
    DisablePlayerCheckpoint(playerid);
    vylozitdrogy[playerid] = false;
    madrogy[playerid] = 0;
    SetPlayerDrunkLevel(playerid,2);
    SetPlayerCheckpoint(playerid,-2107.8027,-2401.7397,31.7317,3);
    schovavasa[playerid] = true;
    SendClientMessage(playerid,0xFF0000FF,"[ ! ] {FFFFFF}Zober Sandking a schovaj sa v dedine!");
    }
    
    if(schovavasa[playerid])
    {
    DisablePlayerCheckpoint(playerid);
    schovavasa[playerid] = false;
    SetPlayerDrunkLevel(playerid,0);
    GivePlayerMoney(playerid,75000);
    SendClientMessage(playerid,0xFF0000FF,"[ ! ] {FFFFFF}Uspešne si splnil misiu a dostal si 75 000$");
    }
    return 1;
    }
// Ak som to vždy končil returnom, tak mi to davalo error error 010: invalid function or declaration vždy do riadku kde bolo napr.  if(schovavasa[playerid]) 

/*
 if(naberadrogy[playerid])
    {
	    madrogy[playerid] = 1;
	    DisablePlayerCheckpoint(playerid);
	    naberadrogy[playerid] = false;
	    SetPlayerCheckpoint(playerid,-1092.3529,-1631.1917,76.3564,3);
	    vylozitdrogy[playerid] = true;
        new nehladaneauto = CreateVehicle(495,-1108.8812,-1620.4327,76.7141,271.6356,95,49,5,0);
        SetVehicleVirtualWorld(nehladaneauto,GetPlayerVirtualWorld(playerid));
    }
    return 1;
}
// a ak som v tomto riadku dal {, tak mi dalo error -> error 055: start of function body without function header
    if(vylozitdrogy[playerid])
atd..., tak to mi davalo ten error
*\

//DialogResponse
    if(dialogid == 4)
    {
	 if(response)
	    {
		    SetPlayerVirtualWorld(playerid,random(1000));
		    new jobveh = CreateVehicle(478,1088.9076,-294.1150,73.9832,175.7813,29,57,5,0);
		    SetVehicleVirtualWorld(jobveh,GetPlayerVirtualWorld(playerid));
	        SetPlayerPos(playerid,1094.9294,-304.6245,73.9922);
	        SetPlayerCheckpoint(playerid,1045.6129,-306.6344,73.9931,3.0);
	        naberadrogy[playerid] = true;
        }
        }

 

 

 

Dodatečné poznámky:

--

Link to comment
Share on other sites

2 odpovědí na tuto otázku

Recommended Posts

  • 0
if(naberadrogy[playerid])
{
    ...
    return 1;
}

if(...)
{
    ...
    return 1;
}

nebo použij else if.

 

Pokud se splní první podmínka, nastavíš hodnoty tak, aby se splnila další podmínka. Ta se má ale splnit až při dalším vstupu do checkpointu - musíš zabránit vykonání bloku té následující podmínky.

 

//EDIT: vidím, že moc nerozumíš návratovým hodnotám (return), možná ti pomůže návod (https://pawno.cz/topic/54347-9-funkce/)

Edited by Lukasz
Link to comment
Share on other sites

  • 0

Kámo, máš tam celkem dost proměnných pokud bys takle pokračoval při více hráčů by to byl problém... maximalní hodnota proměnné je 2 147 483 647 tzn že realně můžeš využít tolik políček.. udělej to jednoduše.

 

Přice mě spousta pawneru odsoudí podle toho jaký mám styl ale whatever..

 

enum
{
    DEFAULT_VALUE = -1,
    player_take_drugs,
    player_delireve_drugs,
    player_hiding_with_drugs,
}
new PlayerEventCP[100];
 
public OnPlayerEnterCheckpoint(....)
{
   switch(PlayerEventCP[playerid])
   {
       case player_take_drugs:
       {
            PlayerEventCP[playerid] = player_delireve_drugs;
            SetPlayerCheckpoint(....);
       }
 
       case player_delireve_drugs:
       {
            PlayerEventCP[playerid] = player_hiding_with_drugs;
            SetPlayerCheckpoint(....);
       }
 
       case player_hiding_with_drugs:
       {
            PlayerEventCP[playerid]  = DEFAULT_VALUE;
            GiveMoney(...);
            Destroy či HidePickup nevím co tam má být už 
       }
   }
   return true;
}

 

SkiBičku prosím, nekomentuj to... :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...