Jump to content

onplayerdeath


Recommended Posts

Geplaatst:

ik heb geprobeerd een soort ziekenhuis iets te creëren, dat als je dood gaat, en je hebt meer dan 400$, dat je 100% health krijg, en als je minder dan 400$ heb, dat je geld naar 0 gaat, en je maar 10% health krijg. dat was bijna gelukt, maar in het spel werkt ie niet goed, maar hij is zonder errors.

dit is het script:

public OnPlayerDeath(playerid, killerid, reason)
{

if(GetPlayerMoney(playerid)<=399)
return ResetPlayerMoney(playerid);
SetPlayerHealth(playerid, 10);
SendClientMessage(playerid, COLOR_RED, "You don't have enough money to pay the hospital, so they only kept you alive.");

if(GetPlayerMoney(playerid)>=400)
GivePlayerMoney(playerid,-400);
SetPlayerHealth(playerid, 100);
SendClientMessage(playerid, COLOR_RED, "You have paid $400 for the hospital.");
return 1;
}

kan iemand hier de fout in vinden?

Geplaatst:

Probeer 'm zo eens:

public OnPlayerDeath(playerid, killerid, reason)
{
if(GetPlayerMoney(playerid)<=399)
{
	ResetPlayerMoney(playerid);
		SetPlayerHealth(playerid, 10);
		SendClientMessage(playerid, COLOR_RED, "You don't have enough money to pay the hospital, so they only kept you alive.");
}
else
{
		GivePlayerMoney(playerid,-400);
		SetPlayerHealth(playerid, 100);
		SendClientMessage(playerid, COLOR_RED, "You have paid $400 for the hospital.");
}
return 1;
}

Geplaatst:

bedankt!!! maar als ik weer spawn gaat er nog 100$ af, maar dat zit in in een script van mij, is dat uit te zetten?

Geplaatst: (bewerkt)

hmm, hij zet als ik niet genoeg geld heb, mn health niet naar 10....hoe kan dat?

Bewerkt: door thuron
Geplaatst:
Volgens mij gaat dat automatisch, dat je 100$ verliest als je dood gaat.

Kan best... ik heb het script even opnieuw gemaakt, zo werkt hij wel:

new doodmetgeld[MAX_PLAYERS];
new doodzondergeld[MAX_PLAYERS];
new doodgegaan[MAX_PLAYERS];


public OnPlayerConnect(playerid)
{
doodgegaan[playerid] = 0;
doodmetgeld[playerid] = 0;
doodzondergeld[playerid] = 0;
return 1;
}

public OnPlayerSpawn(playerid)
{
if(doodgegaan[playerid] == 1)
{
    if(doodzondergeld[playerid] == 1)
    {
	    ResetPlayerMoney(playerid);
 		SetPlayerHealth(playerid, 10);
 		SendClientMessage(playerid, 0xFFFFFFAA, "You don't have enough money to pay the hospital, so they only kept you alive.");
 		doodzondergeld[playerid] = 0;
	}
	if(doodmetgeld[playerid] == 1)
	{
	    new PlayerMoney = GetPlayerMoney(playerid);
	    ResetPlayerMoney(playerid);
	    GivePlayerMoney(playerid,PlayerMoney-400);
 		SetPlayerHealth(playerid, 100);
 		SendClientMessage(playerid, 0xFFFFFFAA, "You have paid $400 for the hospital.");
 		doodmetgeld[playerid] = 0;
	}
}
doodgegaan[playerid] = 0;
return 1;
}

public OnPlayerDeath(playerid, killerid, reason)
{
doodgegaan[playerid] = 1;
new PlayerMoney;
PlayerMoney = GetPlayerMoney(playerid);
if(PlayerMoney<=399)
{
    doodzondergeld[playerid] = 1;
}
else
{
		doodmetgeld[playerid] = 1;
}
return 1;
}

Er zitten de nodige variabelen in. Dat hij niet op 10% bleef als je niet genoeg geld had, kwam omdat SA-MP de speler bij het spawnen automatisch 100% health geeft. Daarom moet je dit voorkomen bij het spawnen, en niet bij het doodgaan.

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