Jump to content
Geplaatst:
comment_1303981

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?

Featured Replies

Geplaatst:
comment_1303983

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

Recent actief 0

  • Er zijn hier geen geregistreerde gebruikers aanwezig.