Jump to content

Functies die niet functioneren


Recommended Posts

Geplaatst: (bewerkt)

	if (strcmp("/enter", cmdtext, true, 10) == 0)/*comment*/
{
	if(!PlayerToPoint(2.0, playerid, 639.06549072266, 1683.3039550781, 6.1875))
	{
		SetPlayerPos(playerid, 635.95239257813, 1680.7424316406, -14.787504196167);
		return 1;
	}
	return 0;
}

Dit is mijn code. Het probleem is alleen, hij doet het niet. Hij geeft geen error aan en als ik het intyp zegt hij ook niet ERROR: Unknown command. Ik heb nu uitgevonden dat het aan de returns ligt. Dus mijn vraag:

Hoe moet je returns bij commando's met meerdere if's instellen?

Bijv.

if (command blabla
{
   if blablabla = true
       {
           if bliebla = true
           {
               actie
           }
       }
}

Waar moeten dan de returns staan?

Bewerkt: door TEH_GTA_COLLECTOR
Geplaatst:

Over het algemeen:

OnPlayerCommandText...
{
   Command...
   {
       if....
       {
           if....
           {
                ....
                return 1;
           }
           return 1;
       }
       return 1;
   }
   return 0;
}

Kan soms een beetje verschillen. return 0; kan niet verschillen.

Geplaatst:

oké bedankt. maar nu heb ik iets raars:

	if (strcmp("/enter", cmdtext, true, 10) == 0)/*comment*/
{
	if(!PlayerToPoint(1.0, playerid, 639.06549072266, 1683.3039550781, 6.1875))
	{
		SetPlayerPos(playerid, 635.95239257813, 1680.7424316406, -14.587504196167);
		return 1;
	}
	return 0;
}

if (strcmp("/exit", cmdtext, true, 10) == 0) /* same as above */
{
	if(!PlayerToPoint(1.0, playerid, 635.95239257813, 1680.7424316406, -14.787504196167))
	{
    	SetPlayerPos(playerid, 639.06549072266, 1683.3039550781, 6.1875);
    	return 1;
	}
	return 0;
}

/enter wekrt, maar bij /eit zegt ie unknown command. Is hier iets mis mee? o.O

Geplaatst: (bewerkt)

Ik zie dat je PlayerToPoint gebruikt, liever gebruik in IsPlayerInRangeOfPoint maar dat vind iedereen anders. Heb je IsPlayerToPoint wel gedefineerd onderaan je script? Dit moet, in tegenstelling tot IsPlayerInRangeOfPoint, dat in SAMP gebouwd zit.

>> De functie <<

EDIT: Volgens mij kan je niet twee keer return 0; gebruiken, omdat deze de functie afkapt, haal die eens weg ;)

Bewerkt: door sean5874
Geplaatst: (bewerkt)

Ik wordt er helemaal gek van e.e

Als iemand in deze code de returns zou kunnen fixen, zou dat echt geweldig zijn.

if (strcmp("/enter", cmdtext, true, 10) == 0)/* comment */
{
	if(!PlayerToPoint(1.0, playerid, 639.1069, 1683.3924, 7.1875))
	{
		SetPlayerPos(playerid, 636.0318, 1680.7535, -13.7503);
		return 1;
	}

}

if (strcmp("/exit", cmdtext, true, 10) == 0) /* same as above */
{
	if(!PlayerToPoint(1.0, playerid, 636.0318, 1680.7535, -13.7503))
	{
    	SetPlayerPos(playerid, 639.1069, 1683.3924, 7.1875);
    	return 1;
	}

}

if (strcmp("/search", cmdtext, true, 10) == 0)
{	 //Same like /search in ammu nation, 5 minutes cooldown.
       if(!PlayerToPoint(2.0, playerid, 635.95239257813, 1680.7424316406, -14.787504196167))
 		{
		if (manuel[playerid] == 0)
		{
    		SendClientMessage(playerid,0xFFFF33AA,"You found a operation manuel! Type /manuel for instructions.");
    		manuel[playerid]=1; // comfirms player did find the manuel
    		return 1;
		}
		return 1;
	}
	else if (manuel[playerid] == 1)
	{
    	SendClientMessage(playerid,0xFFFF33AA,"You already have a manuel! [/manuel]"); //I.C. Player already found a manuel.
		return 1;
	}
	return 0;
}

if (strcmp("/launch", cmdtext, true, 10) == 0) //0x75EA00FF
{
	if (manuel[playerid] == 1)
	{
		if(!PlayerToPoint(3.0, playerid, 634.8529, 1672.9498, -13.7577))
		{
			if(fuel[playerid] == 0)
			{
    			SendClientMessage(playerid,0x75EA00FF,"Executing programme X13b.. Please stand by.");
       			SetTimerEx("ExecuteProgrammeFailure", 10000, false, "i", playerid);
       			isvalveopen[playerid]=1;
       			return 1;
			}
			return 0;
		}
		return 0;
	}
	return 0;
}

if (strcmp("/valve", cmdtext, true, 10) == 0)
{
	if(!PlayerToPoint(2.0, playerid, 632.2607, 1678.2612, 6.9921))
	{
		if (isvalveopen[playerid] == 1)
		{
			if(fuel[playerid] == 0)
			{
    			blowstation[playerid]=0;
    			return 0;
			}
			return 0;
		}
		return 0;
	}
	return 0;
}

Bewerkt: door TEH_GTA_COLLECTOR
Geplaatst: (bewerkt)

if (strcmp("/enter", cmdtext, true, 10) == 0)/* comment */
{
	if(PlayerToPoint(1.0, playerid, 639.1069, 1683.3924, 7.1875))
	{
		SetPlayerPos(playerid, 636.0318, 1680.7535, -13.7503);
	}
	return 1;
}

if (strcmp("/exit", cmdtext, true, 10) == 0) /* same as above */
       {
	if(PlayerToPoint(1.0, playerid, 636.0318, 1680.7535, -13.7503))
	{
		SetPlayerPos(playerid, 639.1069, 1683.3924, 7.1875);
	}
	return 1;
       }

if (strcmp("/search", cmdtext, true, 10) == 0) //Same like /search in ammu nation, 5 minutes cooldown.
{
	if(PlayerToPoint(2.0, playerid, 635.95239257813, 1680.7424316406, -14.787504196167))
	{
		if (manuel[playerid] == 0)
		{
			SendClientMessage(playerid,0xFFFF33AA,"You found a operation manuel! Type /manuel for instructions.");
			manuel[playerid]=1; // comfirms player did find the manuel
		}
		else if (manuel[playerid] == 1)
		{
			SendClientMessage(playerid,0xFFFF33AA,"You already have a manuel! [/manuel]"); //I.C. Player already found a manuel.
			return 1;
		}
	}
	return 1;
}

if (strcmp("/launch", cmdtext, true, 10) == 0) //0x75EA00FF
       {
	if (manuel[playerid] == 1)
	{
		if(PlayerToPoint(3.0, playerid, 634.8529, 1672.9498, -13.7577))
		{
			if(fuel[playerid] == 0)
			{
				SendClientMessage(playerid,0x75EA00FF,"Executing programme X13b.. Please stand by.");
				SetTimerEx("ExecuteProgrammeFailure", 10000, false, "i", playerid);
				isvalveopen[playerid]=1;
                               }
                       }
               }
               return 1;
}

if (strcmp("/valve", cmdtext, true, 10) == 0)
       {
	if(PlayerToPoint(2.0, playerid, 632.2607, 1678.2612, 6.9921))
	{
		if (isvalveopen[playerid] == 1)
		{
			if(fuel[playerid] == 0)
			{
				blowstation[playerid]=0;
			}
		}
	}
	return 1;
}

return 0; gebruik je als de functie niet is uitgevoerd, dan krijg je dus ERROR: Unknown Command. Gebruik je return 1;, dat betekend dat de functie wel is uitgevoerd, en krijg je dus geen ERROR: Unknown Command.

Ook moet je goed opletten bij de PlayerToPoint functie. Jij had er een uitroepteken voor staan, dat betekend, als de speler niet op die positie is, voert hij die code uit.

Veel succes verder

MVG,

Wanted

Bewerkt: door Wanted

Een reactie plaatsen

Je kan nu een reactie plaatsen en pas achteraf registreren. Als je al lid bent, log eerst in om met je eigen account een reactie te plaatsen.

Gast
Op dit onderwerp reageren...

×   Je hebt text geplaatst met opmaak.   Opmaak verwijderen

  Only 75 emoji are allowed.

×   Je link is automatisch ingevoegd.   In plaats daarvan weergeven als link

×   Je vorige bewerkingen zijn hersteld.   Alles verwijderen

×   You cannot paste images directly. Upload or insert images from URL.

  • Recent actief   0 leden

    • Er zijn hier geen geregistreerde gebruikers aanwezig.
×
×
  • Create New...