Jump to content
Geplaatst:
comment_788535

Mocht je (kleine) problemen hebben met een SA:MP pawnscript, stel je vraag dan hier. Het is hier dus niet de bedoeling dat je om een script gaat vragen. Het gaat alleen om jouw eigen code.

Maar houdt met het volgende wel even rekening zodat het topic overzichtelijk blijft:

  • Toon altijd de volledige code van de functie waarin het probleem zich bevindt.
  • Gebruik om je pawnscript te tonen de BB-tags "code" of zet het even op Pastebin als het script te groot is.
  • Ga niet dubbelposten als er nog niemand op je vraag heeft gereageerd. Heb geduld.
  • En het belangrijkste gebruik eerst altijd de zoekfunctie, wellicht is jouw vraag al gesteld.

  • Reacties 838
  • Bezichtigingen 204.8k
  • Created
  • Laatste reactie

Top Posters In This Topic

Posted Images

Featured Replies

Geplaatst:
comment_1311339
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.

Geplaatst:
comment_1316809

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?

Geplaatst:
comment_1316818
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?

Geplaatst:
comment_1316826

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
}

Geplaatst:
comment_1316832
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)

Geplaatst:
comment_1316841

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.

Geplaatst:
comment_1316854

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

Geplaatst:
comment_1316877

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

Geplaatst:
comment_1320801
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

Gast
Dit onderwerp is gesloten.

Recent actief 0

  • Er zijn hier geen geregistreerde gebruikers aanwezig.