Jump to content
Geplaatst:
comment_1526782

Goedemorgn Iedereen (;

In mn GM hebk een Float:

//Top of the script
new Float:SpawnLoc[4] = {1.1, 1.1, 1.1, 1};

Nu wil ik een command maken, waarmee ik die float kan wijzigin in bv 2.2, 2.2, 2.2, 2.

Hoe doe ik dit precies?

Thanks (:

Featured Replies

Geplaatst:
comment_1526797

Als het goed is kan je nu op elk gewenst punt het volgende doen:

SpawnLoc[0] = 2.2;
SpawnLoc[1] = 2.2;
SpawnLoc[2] = 2.2;
SpawnLoc[3] = 2;

Het slot [4] word hier niet gebruikt.

Geplaatst:
  • Auteur
comment_1526814

Als het goed is kan je nu op elk gewenst punt het volgende doen:

SpawnLoc[0] = 2.2;
SpawnLoc[1] = 2.2;
SpawnLoc[2] = 2.2;
SpawnLoc[3] = 2;

Het slot [4] word hier niet gebruikt.

Zover was ik ook al, maar die lijkt niet te werken...

Mn code;

//Vanboven in het script
new Float:SpawnLocGrove[4] = {1.1,1.1,1.1,1.1},
   Float:SpawnLocBallas[4] = {1.1,1.1,1.1,1.1};

new Float:WarLocGrove[2][4] =
{
	{217.7683,1856.1923,13.0176,6.0815}, // loc1
	{213.9867,1884.2385,98.3855,1.1} // loc2
},
   Float:WarLocBallas[2][4] =
{
	{358.380859375, 2703.884765625, 308.44915771484, 5.4547119140625}, // loc1
	{213.9867,1884.2385,98.3855,1.1} // loc2
};

//Onder OnGameModeInit
       SetWar(1);
AddPlayerClassEx(TEAM_GROVE, 105, SpawnLocGrove[0], SpawnLocGrove[1], SpawnLocGrove[2], SpawnLocGrove[3], 0, 0, 0, 0, 0, 0);
AddPlayerClassEx(TEAM_GROVE, 106, SpawnLocGrove[0], SpawnLocGrove[1], SpawnLocGrove[2], SpawnLocGrove[3], 0, 0, 0, 0, 0, 0);
AddPlayerClassEx(TEAM_GROVE, 107, SpawnLocGrove[0], SpawnLocGrove[1], SpawnLocGrove[2], SpawnLocGrove[3], 0, 0, 0, 0, 0, 0);
AddPlayerClassEx(TEAM_BALLAS, 102, SpawnLocBallas[0], SpawnLocBallas[1], SpawnLocBallas[2], SpawnLocBallas[3], 0, 0, 0, 0, 0, 0);
AddPlayerClassEx(TEAM_BALLAS, 103, SpawnLocBallas[0], SpawnLocBallas[1], SpawnLocBallas[2], SpawnLocBallas[3], 0, 0, 0, 0, 0, 0);
AddPlayerClassEx(TEAM_BALLAS, 104, SpawnLocBallas[0], SpawnLocBallas[1], SpawnLocBallas[2], SpawnLocBallas[3], 0, 0, 0, 0, 0, 0);


//En ten slotte stock SetWar(i)
stock SetWar(i)
{
switch(i)
{
    case 1:
    {
        SpawnLocGrove[0] = WarLocGrove[0][0];
        SpawnLocGrove[1] = WarLocGrove[0][1];
        SpawnLocGrove[2] = WarLocGrove[0][2];
        SpawnLocGrove[3] = WarLocGrove[0][3];

        SpawnLocBallas[0] = WarLocBallas[0][0];
        SpawnLocBallas[1] = WarLocBallas[0][1];
        SpawnLocBallas[2] = WarLocBallas[0][2];
        SpawnLocBallas[3] = WarLocBallas[0][3];

        	for(new p = 0; p <= MAX_PLAYERS; p++)
       	{
            if(IsPlayerConnected(i) && GetPlayerTeam(p) == Ballas)
            {
                SetPlayerPos(p,WarLocBallas[0][0], WarLocBallas[0][1], WarLocBallas[0][2], WarLocBallas[0][3]);
            }
		}

	    SetTimerEx("SetWar",8000,false,"i",2);
    }
	case 2:
	{
 		SpawnLocGrove[0] = WarLocGrove[1][0];
        SpawnLocGrove[1] = WarLocGrove[1][1];
        SpawnLocGrove[2] = WarLocGrove[1][2];
        SpawnLocGrove[3] = WarLocGrove[1][3];

        SpawnLocBallas[0] = WarLocBallas[1][0];
        SpawnLocBallas[1] = WarLocBallas[1][1];
        SpawnLocBallas[2] = WarLocBallas[1][2];
        SpawnLocBallas[3] = WarLocBallas[1][3];

	    SetTimerEx("SetWar",8000,false,"i",1);
	}
}
return 1;
}

Dus ik verwacht dat de spawn locatie iedere 8 seconden wordt gewijzigd...

Maar dat doet ie dus niet...

Thanks!

Geplaatst:
comment_1526826

De fout zijn de floats niet, de fout is je functie. Een stock functie kan je namelijk onmogelijk timen. Het zal dan gewoon niks doen. Een stock functie is het vereenvoudigen van een stuk code. Wat jij moet doen is een callback gebruiken. Die gebruik je om een stuk code uit te voeren. Dus doe het volgende:

forward SetWar(i); //Bovenaan je script, onder je defines, includes en nieuwe variablen, maar boven main()

//stock SetWar(i) word
public SetWar(i)
{
   ...
}

Daarnaast zou ik

IsPlayerConnected(i)

uit

if(IsPlayerConnected(i) && GetPlayerTeam(p) == Ballas)

nog even veranderen in

IsPlayerConnected(p)

omdat jij een loop maakt met de variable "p" die alle spelers moet doorlopen ;)

Bewerkt: door Remi-X

Geplaatst:
  • Auteur
comment_1526830

De fout zijn de floats niet, de fout is je functie. Een stock functie kan je namelijk onmogelijk timen. Het zal dan gewoon niks doen. Een stock functie is het vereenvoudigen van een stuk code. Wat jij moet doen is een callback gebruiken. Die gebruik je om een stuk code uit te voeren. Dus doe het volgende:

forward SetWar(i); //Bovenaan je script, onder je defines, includes en nieuwe variablen, maar boven main()

//stock SetWar(i) word
public SetWar(i)
{
   ...
}

Daarnaast zou ik

IsPlayerConnected(i)

uit

if(IsPlayerConnected(i) && GetPlayerTeam(p) == Ballas)

nog even veranderen in

IsPlayerConnected(p)

omdat jij een loop maakt met de variable "p" die alle spelers moet doorlopen ;)

Werkt Perfect!!

Thanks!! (:

Remi-X is super :dans:

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...

Recent actief 0

  • Er zijn hier geen geregistreerde gebruikers aanwezig.