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

Position: Grand Theft Auto: San Andreas » Multiplayer » Problem mit meiner DM arena » Druckansicht
Robdeflop1, 28.10.2009, 22:18
Hi
Ich hab ein problem
Ich hab gescriptet, dass wenn man stirbt, dass man dann jenachdem in welchem team man is, wieder am
punkt spawnt, wo das team halt spawnt.
Aber das klappt iwie nit, ich hab dann wieder meinen alten skin und spawne am punkt wo man auch
spawt wenn man ausserhalb der DM arena is.
Das is das script:

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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
public OnPlayerDeath(playerid, killerid, reason)
{
    if (PlayerInfo[playerid][DMmode] == 1)
    {
      if (PlayerInfo[playerid][Team1] == 1)
      {
         SetPlayerPos(playerid, -3144.5801,1741.7068,10.7973);
          SetPlayerSkin(playerid, PlayerInfo[playerid][Skin1]);
          SetPlayerArmour(playerid, 100);
         SetPlayerHealth(playerid, 100);
         GivePlayerWeapon(playerid, 3, 1);
         GivePlayerWeapon(playerid, 16, 2);
         GivePlayerWeapon(playerid, 23, 100);
         GivePlayerWeapon(playerid, 32, 300);
         GivePlayerWeapon(playerid, 31, 500);
      }
      else
      {
         SetPlayerArmour(playerid, 100);
         SetPlayerHealth(playerid, 100);
         GivePlayerWeapon(playerid, 4, 1);
         GivePlayerWeapon(playerid, 16, 2);
         GivePlayerWeapon(playerid, 22, 100);
         GivePlayerWeapon(playerid, 28, 300);
         GivePlayerWeapon(playerid, 30, 500);
           SetPlayerPos(playerid, -3373.8662,1720.5365,10.7912);
           SetPlayerSkin(playerid, PlayerInfo[playerid][Skin1]);
      }
      
         if(PlayerInfo[killerid][Team1] == PlayerInfo[playerid][Team1])
         {
            SendClientMessage(killerid, COLOR_RED, "Teamkiller!");
            PlayerInfo[killerid][pCash] += -1000;
         }
         else
         {
             PlayerInfo[playerid][pDeaths] += 1;
             PlayerInfo[playerid][pCash] += -500;
             PlayerInfo[killerid][pCash] += 500;
             PlayerInfo[killerid][pKills] = PlayerInfo[killerid][pKills] + 1;
          }
    }
    else
   {
      new kills = PlayerInfo[playerid][pKills];
       SetPlayerScore(playerid, kills);
      new Float:health = 0.0;
      if(GetPlayerHealth(playerid, health))
       {
          PlayerInfo[playerid][pDeaths] += 1;
          PlayerInfo[playerid][pCash] += -1000;
       }
         PlayerInfo[killerid][pKills] = PlayerInfo[killerid][pKills] + 1;
   }
   return 1;
}


wenn DMmode 1 is, dann is man im DM modi.
Team1 is das team, indem man in der DM arena is, der rest müsste sich eigendlich von selbst
erklären ;)

Pls help,
MFG, RoB
Sh3LteR, 28.10.2009, 22:28
Öhm... zeig mal den command her ;)
Denn es muss was bei OnPlayerSpawn rein, irgendwas mit check, und du brauchst nen cmd dass man im
dm ist, und dass man dann wieder normal spawnt, in errinerung hab ich, dass es was mit check war
... , komm nd drauf wie das genau geheißn hat^^

//Den GTA Nightlife script bekommt man ja free, da isne dm arena gescriptet, gugg dir das dann, und
korregiere deinen script ;)
Robdeflop1, 28.10.2009, 22:34
Hi

Bei OnPlayerSpawn hab ich nur das xD:

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
public OnPlayerSpawn(playerid)
{
    //GivePlayerMoney(playerid, PocketMoney);
   SetPlayerInterior(playerid,0);
   //SetPlayerPos(playerid, 1619.7996,-2327.7471,13.5469);
   TogglePlayerClock(playerid,0);
   TogglePlayerControllable(playerid, 1);
   SetPlayerSkin(playerid,PlayerInfo[playerid][pSkin]);
   
   for(new V = 0; V < MAX_VEHICLES; V++)
   {
       new pname[MAX_PLAYER_NAME];
       new string[120];
       GetPlayerName(playerid, pname, sizeof(pname));
       format(string, sizeof(string), "/CarSchlüssel/%s.%d.cer", pname , V);
       if(strcmp(CarInfo[V][CarOwner], pname, true) == 0 || fexist(string))
      {
          SetVehicleParamsForPlayer(V, playerid, 0, 0);
      }
      else
      {
         SetVehicleParamsForPlayer(V, playerid, 0, 1);
      }
   }
   return 1;
}


von check steht da glaub ich nix xD
Thx schonma im vorraus

MFG, RoB

*EDIT:
Was is GTA Nightlife? ich will aber außerdem alles alone machen *yes* ^^
Halt nur mitn bissl hilfe von euch xD
Sh3LteR, 28.10.2009, 22:37
ja deshalb mein ich ja
es war iwie so, beim dm cmd dass man halt rein kommt

IF(...
{
[check]dm=1
{
bla bla
return 1;

natürlich muss man dass auch defenieren

oder so, ich hab kA mehr über scripting^^
Robdeflop1, 28.10.2009, 22:42
asoooo xD
Jetzt verstehe ich^^
wenn man check sowieso definieren muss, dann kann mans auch anders nennen, un nit grad scheck :D
Hmm, ka ob ich das hinbekomme, oda ehergesagt, ich hab noch keinen anfang^^
Muss mal überlegen, Ihr könntet mir aber auch dabei helfen xD

Bei if
Muss ja dann eig das stehen oda?:
if(playerid, health == 0.0)
{
check...
}

oda? xD

MFG, RoB
Sh3LteR, 28.10.2009, 22:49
nein ebend nd, du musst iwas defenieren, dass es geht, sorry, muss dir wer anderer weiterhelfen^^
Robdeflop1, 28.10.2009, 22:50
HI

jo xD

Code:
1
2
3
4
5
new Float:Health;
   GetPlayerHealth(playerid, Health);
   if(GetPlayerHealth(playerid, Health) == 0.0)
   {
   }


Soweit bin ich bis jez gekommen, un das mit dem check muss dann in die geschweiften klammern rein
oda? :D
Sh3LteR, 28.10.2009, 22:54
nein, du hast ja nd cmd dass du in die dm arena kommst

If(strc"/dm oder kP
{
check[playerid] dm =1
}
rest des scriptes
{
return 1;
}

so in etwa, jedoch stimmt das nd was ich da schreibe, weil ich wirklich nichtmehr weiß wie das geht^^
Robdeflop1, 28.10.2009, 22:56
Hi

Jo ich hab nen CMD^^
Dann öffnet sichn menu, da kann man die DM arena aussuchen. Wenn man eine ausgesucht hat, dann wird
DMmode auf 1 gestellt, un wenn man z.B. in meiner TDM-Forest arena is, wird DM1 auch auf 1
gestellt. Un wenn man stirbt, wird das ja sowieso abgefragt, also sollte eig^^

Naja, bin schlafen, cu^^

MFG, RoB
Robdeflop1, 29.10.2009, 15:59
Hi

So, nochwas^^
Dann müsste bei teleport ja auch eig das selbe passieren oda? der wird bei onplayerspawn ja auch
nit abgefragt :D

Pls help,
MFG, RoB
Sh3LteR, 29.10.2009, 16:04
also das mit den checks haste e :D

SO, dann geht es um volgendes, es giebt sone public OnPlayerSpawn oder so, such das mal im script
Da gehört das check rein, dass es halt aktiv ist, und dass man in den dm spawnpionts spawnt^^
Robdeflop1, 29.10.2009, 16:28
Hi

Aso xD
Aber why funzt des net mit OnPlayerDeath? Dafür is das doch normalerweise da :D
Bei OnPlayerDeath hab ich ja auch das mit dem geld drinne, un das funzt auch ;D
Naja, ich werds ma testen, danke :-)

MFG, RoB

*EDIT: Aber dass mit dem if(GetPlayerHealth(playerid, Health..) 0.0.... muss drinne bleiben oda?

MFG, RoB^^
Sh3LteR, 29.10.2009, 16:32
ZitatRobdeflop1 hat folgendes geschrieben:
Hi

Aso xD
Aber why funzt des net mit OnPlayerDeath? Dafür is das doch normalerweise da :D
Bei OnPlayerDeath hab ich ja auch das mit dem geld drinne, un das funzt auch ;D
Naja, ich werds ma testen, danke :-)

MFG, RoB

*EDIT: Aber dass mit dem if(GetPlayerHealth(playerid, Health..) 0.0.... muss drinne bleiben oda?

MFG, RoB^^


Denk schon dass es drinnen sein sollte^^

Dar beo onplayerdeath, er ja nicht direkt wieder spawnen kann, deshalb is onplayerspawn da, wenn er
tot ist, kann er nd gleichzeitig wo anders wiederbelebt werden^^ xD^^
Robdeflop1, 29.10.2009, 16:42
stimmt :D

So
Ich habs eben getestet, funzt aber auch net :*(
Ka worans liegt xD
So siehts zu aus:

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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
public OnPlayerSpawn(playerid)
{
   new killerid;
   new Float:Health;
   GetPlayerHealth(playerid, Health);
   if(GetPlayerHealth(playerid, Health) == 0.0)
   {
   if (PlayerInfo[playerid][DM1] == 1)
    {
      if (PlayerInfo[playerid][Team1] == 1)
      {
         SetPlayerPos(playerid, -3144.5801,1741.7068,10.7973);
          SetPlayerSkin(playerid, PlayerInfo[playerid][Skin1]);
          SetPlayerArmour(playerid, 100);
         SetPlayerHealth(playerid, 100);
         GivePlayerWeapon(playerid, 3, 1);
         GivePlayerWeapon(playerid, 16, 2);
         GivePlayerWeapon(playerid, 23, 100);
         GivePlayerWeapon(playerid, 32, 300);
         GivePlayerWeapon(playerid, 31, 500);
      }
      else
      {
         SetPlayerArmour(playerid, 100);
         SetPlayerHealth(playerid, 100);
         GivePlayerWeapon(playerid, 4, 1);
         GivePlayerWeapon(playerid, 16, 2);
         GivePlayerWeapon(playerid, 22, 100);
         GivePlayerWeapon(playerid, 28, 300);
         GivePlayerWeapon(playerid, 30, 500);
           SetPlayerPos(playerid, -3373.8662,1720.5365,10.7912);
           SetPlayerSkin(playerid, PlayerInfo[playerid][Skin1]);
      }

         if(PlayerInfo[killerid][Team1] == PlayerInfo[playerid][Team1])
         {
            SendClientMessage(killerid, COLOR_RED, "Teamkiller!");
            PlayerInfo[killerid][pCash] += -1000;
         }
         else
         {
             PlayerInfo[playerid][pDeaths] += 1;
             PlayerInfo[playerid][pCash] += -500;
             PlayerInfo[killerid][pCash] += 500;
             PlayerInfo[killerid][pKills] = PlayerInfo[killerid][pKills] + 1;
          }
    }
    else
   {
      new kills = PlayerInfo[playerid][pKills];
       SetPlayerScore(playerid, kills);
      new Float:health = 0.0;
      if(GetPlayerHealth(playerid, health))
       {
          PlayerInfo[playerid][pDeaths] += 1;
          PlayerInfo[playerid][pCash] += -1000;
       }
         PlayerInfo[killerid][pKills] = PlayerInfo[killerid][pKills] + 1;
   }
   
   }

   //GivePlayerMoney(playerid, PocketMoney);
   SetPlayerInterior(playerid,0);
   //SetPlayerPos(playerid, 1619.7996,-2327.7471,13.5469);
   TogglePlayerClock(playerid,0);
   TogglePlayerControllable(playerid, 1);
   //SetPlayerSkin(playerid,PlayerInfo[playerid][pSkin]);
   
   for(new V = 0; V < MAX_VEHICLES; V++)
   {
       new pname[MAX_PLAYER_NAME];
       new string[120];
       GetPlayerName(playerid, pname, sizeof(pname));
       format(string, sizeof(string), "/CarSchlüssel/%s.%d.cer", pname , V);
       if(strcmp(CarInfo[V][CarOwner], pname, true) == 0 || fexist(string))
      {
          SetVehicleParamsForPlayer(V, playerid, 0, 0);
      }
      else
      {
         SetVehicleParamsForPlayer(V, playerid, 0, 1);
      }
   }
   return 1;
}


Oda hab ich was falsch gemacht?
Un bei onplayerdeath is nix drinne, hab ich einfach leer gelassen^^
Kann es sein dass ich vielleicht iwo return 1 vergessen hab oda so? oda liegt das net daran?

MFG, RoB
Robdeflop1, 29.10.2009, 16:53
Hi nochmal :D

Habs geschafft^^ das mit dem playerhealth bei onplayerspawn musste raus xD

Noch ne kleine frage, is das mit dem teamkiller richtig? Ich nehm ma an dass ich dat mit dem
teamkiller bei onplayerdeath machen muss^^

Trotzdem schonma vielen vielen dank Dominik ;)
Sh3LteR, 29.10.2009, 17:16
Wenn ich mir dass so ansehe, müssts stimmen, mit dem teamkill^^
Aber am besten ist, man versucht es mit ihrgendwem^^
Robdeflop1, 29.10.2009, 17:18
Jo, nur hab das script noch nit hochgeladen, un bevor ichn update hochlade, mach ich die sachen die
ich machen muss zu ende^^ weil das script bis jetzt schon 4200 zeilen hat, und ich ein extrem lames
inet habe. Deswegen dauert dass dann imma :D

Thx für deine hilfe *bye*

MFG, RoB
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