Jump to content

Het Scripting Problemen Topic


Azer

Recommended Posts

Ik heb ff paar kleine vraagjes:

- Hoe zit het met de voertuigenlimiet als je gebruik maakt van Virtual Worlds?

stel ik heb in World 1 500 voertuigen staan, kan ik er dan in World 2 ook weer 500 neerzetten?

- Ik heb ooit in een of andere server eens een stunt of racebaan ofzo gezien (gebouwd uit objecten) waar je naar toe kon teleporten met een commando, vervolgens werd je freezed en kreeg je de melding dat je moest wachten op het laden van de objecten. Daarna weer unfreezed en ga je gang maar.

Wat ik me afvraag, hoe is zoiets gedaan? is er iets waarmee je kunt kijken of een object geladen is? of zou het gewoon een soort "boerenbedrog" zijn, dus simpelweg er een timer erop die zorgt dat je na een bepaalde tijd weer unfreezed bent.

Link to comment
Delen op andere websites

  • Reacties 838
  • Created
  • Laatste reactie

Top Posters In This Topic

  • Sandra

    115

  • opacool6

    79

  • Big Boss

    57

  • Remi-X

    55

Top Posters In This Topic

Posted Images

Ik heb ff paar kleine vraagjes:

- Hoe zit het met de voertuigenlimiet als je gebruik maakt van Virtual Worlds?

stel ik heb in World 1 500 voertuigen staan, kan ik er dan in World 2 ook weer 500 neerzetten?

Volgens mij niet.

- Ik heb ooit in een of andere server eens een stunt of racebaan ofzo gezien (gebouwd uit objecten) waar je naar toe kon teleporten met een commando, vervolgens werd je freezed en kreeg je de melding dat je moest wachten op het laden van de objecten. Daarna weer unfreezed en ga je gang maar.

Wat ik me afvraag, hoe is zoiets gedaan? is er iets waarmee je kunt kijken of een object geladen is? of zou het gewoon een soort "boerenbedrog" zijn, dus simpelweg er een timer erop die zorgt dat je na een bepaalde tijd weer unfreezed bent.

Dit word meestal gedaan omdat objecten (gemaakt met CreateObject) soms niet direct spawnen en je bijvoorbeeld door de vloer kunt vallen. Daarom word je gefreezed zodat de objecten tijd hebben om te spawnen.

Link to comment
Delen op andere websites

Hoe maak ik een uitvoering als deze:

Als getal A met 1 groter of kleiner is dan getal B, dat er iets gebeurt.

Ik ben namelijk bezig met een script die 2 posities van 2 spelers ophaalt, als de ene X met 1 groter of kleiner is dan de andere X, en hetzelfde met Y, dat het leven minder is.

Iemand een idee?

Link to comment
Delen op andere websites

Hoe maak ik een uitvoering als deze:

Als getal A met 1 groter of kleiner is dan getal B, dat er iets gebeurt.

Ik ben namelijk bezig met een script die 2 posities van 2 spelers ophaalt, als de ene X met 1 groter of kleiner is dan de andere X, en hetzelfde met Y, dat het leven minder is.

Iemand een idee?

Dat is toch gewoon dan A != 1, of lees ik je vraag nu verkeerd?

Link to comment
Delen op andere websites

Volgens mij lees je de vraag dan verkeerd, want A != 1 betekent toch als A geen 1 is? En het moet met B vergelijken :puh:

Als A met 1 groter of kleiner is dan B, moet er een uitvoering kunnen komen.

Voorbeeld:

Als ox met 1 groter of kleiner is dan yx:

for(new i = 0; i <= MAX_PLAYERS; i++) // playerid
{
	GetPlayerPos(i, yx, yy, yz);
}
for(new j = 0; j <= MAX_PLAYERS; j++) // otherplayer
{
	GetPlayerPos(j, ox, oy, yz);
}
if(yx == 1 ox || yx == -1 ox) //ofzo, zou het echt niet weten :S
{
GivePlayerMoney(playerid, 500); // zoiets dus, of een wapen, of animatie, weet ik veel
}

Link to comment
Delen op andere websites

Volgens mij lees je de vraag dan verkeerd, want A != 1 betekent toch als A geen 1 is? En het moet met B vergelijken :puh:

Als A met 1 groter of kleiner is dan B, moet er een uitvoering kunnen komen.

Voorbeeld:

Als ox met 1 groter of kleiner is dan yx:

for(new i = 0; i <= MAX_PLAYERS; i++) // playerid
{
	GetPlayerPos(i, yx, yy, yz);
}
for(new j = 0; j <= MAX_PLAYERS; j++) // otherplayer
{
	GetPlayerPos(j, ox, oy, yz);
}
if(yx == 1 ox || yx == -1 ox) //ofzo, zou het echt niet weten :S
{
GivePlayerMoney(playerid, 500); // zoiets dus, of een wapen, of animatie, weet ik veel
}

Ok ff een check :puh:: jij zegt dus A heeft bijv. getal 1, en als B groter of kleiner is dan A dat er dan iets moet gebeuren?

Maar wat wil je nou precies doen, waar heb je het voor nodig zeg maar.

Ik zou trouwens in plaats van i <= MAX_PLAYERS, i < MAX_PLAYERS gebruiken (zelfde als bij j)

Link to comment
Delen op andere websites

T word een scriptje dat als jij in de buurt van iemand anders komt, en jij hebt een knife, dat de andermans leven drastisch word gereduceert zodat je een one hit KO kan maken met die knife. En doe je niks en ga je gewoon weer weg, krijgt de speler zijn oude leven weer terug.

Ik weet dus alles wel te maken, behalve dat als A met 1 groter of kleiner is dan B, dat er wat gebeurt.

Link to comment
Delen op andere websites

Dan kan je misschien beter dit gebruiken:

Plaats dit onder de forwards:

forward Float:GetDistanceBetweenPlayers(p1,p2);

Dit ergens onder je CreateObjects (of AddStaticVehicles)

public Float:GetDistanceBetweenPlayers(p1,p2)
{
  new Float:x1,Float:y1,Float:z1,Float:x2,Float:y2,Float:z2;
  if (!IsPlayerConnected(p1) || !IsPlayerConnected(p2))
  {
		return -1.00;
  }
  GetPlayerPos(p1,x1,y1,z1);
  GetPlayerPos(p2,x2,y2,z2);
  return floatsqroot(floatpower(floatabs(floatsub(x2,x1)),2)+floatpower(floatabs(floatsub(y2,y1)),2)+floatpower(floatabs(floatsub(z2,z1)),2));
}

Dan plaats je waar je het wil gebruiken het volgende:

if(GetDistanceBetweenPlayers(playerid,killerid) > 200) //Ik heb hier dan als voorbeeld killerid gebruikt, maar kan ook anders, de 200 staat voor de afstand natuurlijk

Link to comment
Delen op andere websites

Edit:

Gaat dit werken dan?

#include <a_samp>

new Float:oldhealth;
new Float:yx, Float:yy, Float:yz;
new Float:ox, Float:oy, Float:oz;
new playerweapon;
new slot;
new ammo;
new knife = 4;

forward public IsPlayerByAnotherPlayer(playerid);

public OnFilterScriptInit()
{
print("\n--------------------------------------");
print(" Melee Weapons 1 Hit KO, for DM servers.");
print("--------------------------------------\n");
SetTimer("IsPlayerByAnotherPlayer", 500, true);
return 1;
}
public IsPlayerByAnotherPlayer(playerid)
{
for(new i = 0; i <= MAX_PLAYERS; i++)
{
	GetPlayerPos(i, yx, yy, yz);
	for(new j = 0; j <= MAX_PLAYERS; j++)
		{
			GetPlayerPos(j, ox, oy, oz);
			if(yx + 1 <= ox || yx - 1 >=ox)
				{
				if(yy + 1 <= oy || yy -1 >= oy)
					{
					GetPlayerWeaponData(i, slot, playerweapon, ammo);
					if(playerweapon == knife)
						  {
						GetPlayerHealth(j,oldhealth);
						SetPlayerHealth(j, 1);
						}
					}
				}
				else
				{
					SetPlayerHealth(j,oldhealth);
				}
		}
}
}

Bewerkt: door Remi-X
Link to comment
Delen op andere websites

Kijkt u eens: klik. Deze link staat gewoon in de PAWN tutorial list ;).

Ty ikweet niet waarom ik hem over het hoofd heb gezien ik zat meer te zoeken naar random spawn plaatsen denk ik

Link to comment
Delen op andere websites

Gast
Dit onderwerp is gesloten.
  • Recent actief   0 leden

    • Er zijn hier geen geregistreerde gebruikers aanwezig.

×
×
  • Create New...