GTAvision.com - Forum - Grand Theft Auto News, Downloads, Community and more...

Position: Grand Theft Auto: San Andreas » Multiplayer » [SA-MP v2] Nach dem Tot » Druckansicht
HustleR, 26.06.2007, 09:50
Hallo Leute,

der Titel hört sich zwar nicht gerade schön an, aber ich muss euch was fragen^^ :D
Gute Antworten wie sie Recycler macht find ich super! THX

Folgendes: Ich möchte, wenn der Spieler stirbt, ein script basteln, das dem Spieler im Game
nach dem Tot, wieder 20 Lebenspunkte gegeben werden und im Chat steht: Du hast mit 20 Leben
überlebt, rufe einen Arzt oder gehe zum Krankenhaus! Wenn er das nicht schafft, mit dem krankenhaus
oder mit dem Arzt, muss er natürlich sterben, denn seine Lebenspunkte gehen nach ca. 1 Minute auf
Null. Das soll auch oben bei der Lebensanzeige sichtbar sein, wie sie immer weniger wird. Und
sobald er es nicht geschafft hat, ist er tot und soll wieder da spawnen wo er wohnt.


Ich hab schon sehr viele Versuche unternommen nur ich kriege das einfach nie gebacken!

MFG

HustleR

Danke für eure Hilfe :-)
Tjong, 26.06.2007, 11:38
Also die OnPlayerDeath Public hat nich umsonst ihren Namen...
Wenn der Spieler tot ist ist er tot, und woweit ich weiß kann man da auch mit nachträglichen
hinzufügen von Energie wenig machen
HustleR, 26.06.2007, 12:36
:-)Soweit ich weis schon. Auf dem Live:samp server hat unser lieber cypog so etwas schon
gescriptet. Das funzt perfekt! hab das auch schon etliche mal mit dem OnPlayerDeath probiert, das
klappt aber nie. das is doch verhunztteufelt schwer zu scripten. Wenn du das kannst, dann scripte
doch mal das was ich brauche. THX für die Antwort. :-)
Rafioso, 26.06.2007, 13:22
Ich würde für den ersten abschnit kein OnPlayerDeath verwenden ;)
Erst für den 2.

Beim ersten einfach so machen, dass wenn die Energie unter oder gleich null ist, dann auf 10
erhöhen, oder wies halt haben willst. Um im 2. Abschnitt kommt dann erst OnPlayerDeath.

=) =) :D :D =) =)
HustleR, 26.06.2007, 13:28
jop so stell ich mir das vor. hab das auch so wie rafioso das gemacht hat schon öfter probiert nur
leider ohne gewünschten erfolg. Trotzdem danke für deine Hilfe Rafioso. Trotzdem bräuchte ich
weiter hilfe, wie ich das gebacken bekomm!


THX
Recycler, 26.06.2007, 14:41
Kann nicht genau sagen, wie man das machen soll...am Besten mit einem sehr schnellen Timer (0.050s)
überprüfen, ob der Spieler gleich oder weniger als 0 Lebenspunkte hat und dann schnell auf 20
umstellen. Und dann folgendes machen (in etwa, wobei du noch ein "new Float:H[MAX_PLAYERS];" über
main() brauchst):

Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
public DeathTimer()
{
for (new i; i < MAX_PLAYERS; i++)
{
if (IsPlayerConnected(i))
{
GetPlayerHealth(i, H[i]);
if (H[i] <= 0.0 && reallydeath[i] == 0)
{
SetPlayerHealth(i, 20.0);
while (H[i] <= 20.0 && H[i] > 0.0)
{
Wait(3000);
SetPlayerHealth(i, H[i] - 1);
GetPlayerHealth(i, H[i]);
}
if (H[i] <= 0) reallydeath[i] = 1;
}
}
}
}

stock Wait(time)
{
    new stamp = tickcount();
    while (tickcount() - stamp < time)
    { }
    return 1;
}


Das ist nur ein kleiner Gedankenanstoß, ich weiß nicht ob überhaupt mehrere Schleifen parallel
laufen können.
Natürlich musst du "reallydeath" in OnPlayerSpawn wieder auf 0 setzen.

MfG
Recycler
HustleR, 26.06.2007, 15:08
Hallo Leute :(


hab grad gesehen, das die sache hier in meinem Script doch net funzt.


Immer wenn ich joine, und spawne hab ich nur noch 20 leben und sterbe nach ner minute. Wenn ich
dann /kill eingebe, sterbe ich und respawne an meinem spawn mit 100 leben. Nur ein problem, sobald
ich wieder sterbe respawne ich dann wieder an meinem platz ohne das ich dann nur noch 20 leben
habe. Was ist da los?


MFG
HustleR, 26.06.2007, 18:12
sieh post über dem post :D

sry für doppelpost, habe ich zwangsweise von nem kumpel machen müssen!


MFG


Dann sag deinem Kumpel dass es so nicht geht!
Wenn er es möchte, soll ers selber hinschreiben.

Aber dir haben wir schonmal gesagt, dass das nichts hilft!
Im Gegenteil, es wird schlimmer => verwarnt
Bedank dich bei ihm.

MfG
Rafioso



EDIT:

Na super, dieser vollidiot -.- tschulligung für die Ausdrücke...

oh mann na ganz klar
Recycler, 26.06.2007, 20:09
Natürlich musst du alle Variablen in OnPlayerDisconnect auf 0 setzen, sonst haben die neuen Spieler
die alten Werte. Es kann natürlich sein, das der Callback OnPlayerDeath schneller eintritt als der
Timer. Dann weiß ich jetzt auch nicht weiter, musste eben ein bisschen knobeln.

MfG
Recycler
HustleR, 26.06.2007, 20:18
THX für die antwort.

könntest du mir das vll. in einen gamemode von sa-mp einbauen, der schon bei den serverdaten dabei
war. Damit ich mir das mal ansehen kann, wie genau ich das einbauen muss, und vorallem was?

mfg

thx


// Edit:

blöde antwort ich weis, aber du weist schon was ich meine. Danke für das einbauen
GTAvision.com :: Forumregeln :: FAQ :: Impressum :: Kontakt :: RDRvision.com :: LANOIREvision.com :: MaxPayneVision.com
NetVisionWork.NET
.: © 2006-2014 by GTAvision.com :.

Rockstar GamesTake-Two Interactive Deutschland

Free Grand Theft Auto Downloads