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

Position: Grand Theft Auto: San Andreas » Multiplayer » SetPlayerTeam » Druckansicht
Jermuk, 26.10.2008, 20:06
Hallo an alle,

bei mir funzt irgendwie mein Team-Script nicht.

Ganz oben:
Code:
1
2
3
4
5
// Team Script
new gClass[MAX_PLAYERS];
#define TEAM_POLIZEI 0
#define TEAM_ARMY 1
#define TEAM_MAFIA 2


Hier bei OnPlayerRequestClass:
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
public OnPlayerRequestClass(playerid, classid)
{
   gClass[playerid] = classid;
   if (classid >= 0 && classid <= 9)
   {
      GameTextForPlayer(playerid, "~g~Polizei", 1000, 3);
      SetPlayerTeam(playerid, TEAM_POLIZEI);
       //gTeam[playerid] = TEAM_POLIZEI;
   }
   else if (classid == 10)
   {
      GameTextForPlayer(playerid, "~g~Militär", 1000, 3);
      SetPlayerTeam(playerid, TEAM_ARMY);
        //gTeam[playerid] = TEAM_ARMY;
   }
   else if (classid >= 11 && classid <=14)
   {
      GameTextForPlayer(playerid, "~g~Mafia", 1000, 3);
      SetPlayerTeam(playerid, TEAM_MAFIA);
        //gTeam[playerid] = TEAM_MAFIA;
   }
   else if (classid == 15)
   {
      GameTextForPlayer(playerid, "~r~+++Jermuk+++", 1000, 3);
      SetPlayerTeam(playerid, TEAM_POLIZEI);
        //gTeam[playerid] = TEAM_POLIZEI;
   }
   else if (classid == 16)
   {
      GameTextForPlayer(playerid, "~r~+++Merlin+++", 1000, 3);
      SetPlayerTeam(playerid, TEAM_MAFIA);
      //gTeam[playerid] = TEAM_MAFIA;
   }
   
   SetPlayerInterior(playerid,14);
   SetPlayerPos(playerid,258.4893,-41.4008,1002.0234);
   SetPlayerFacingAngle(playerid, 270.0);
   SetPlayerCameraPos(playerid,256.0815,-43.0475,1004.0234);
   SetPlayerCameraLookAt(playerid,258.4893,-41.4008,1002.0234);
   return 1;
}


Bei OnPlayerStateChange:
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
public OnPlayerStateChange(playerid, newstate, oldstate)
{
    new vehicleid = GetVehicleModel(GetPlayerVehicleID(playerid));
    if(newstate == PLAYER_STATE_DRIVER && vehicleid == 80 || vehicleid == 81 || vehicleid == 38 || v
ehicleid == 39 || vehicleid == 77 || vehicleid == 78 || vehicleid == 79 || vehicleid == 37 || vehicl
eid == 74 || vehicleid == 75 || vehicleid == 76)
   {
      if(GetPlayerTeam(playerid) != TEAM_POLIZEI)
      {
          kopfgeld[playerid] += 1000;
          SendClientMessage(playerid, COLOR_RED, "[WANTED] Du hast einen Polizeifahrzeug geklaut ~n~ 
und hast dabei 1000$ Kopfgeld kassiert!!!");
          GameTextForPlayer(playerid,"Du wirst gesucht!",3000,0);
          SetWantedLevel(playerid);
          for (new z=0;z<MAX_PLAYERS;z++)
          {
            if(GetPlayerTeam(z) == TEAM_POLIZEI && IsPlayerConnected(z))
            {
                new string[256];
                format(string,256,"[POLIZEI] Spieler %s hat ein Polizeifahrzeug geklaut!", PlayerNam
e2(playerid));
                SendClientMessage(z, COLOR_BLUE, string);
            }
         }
      }
    }
    
    if(newstate == PLAYER_STATE_DRIVER && vehicleid == 433 || vehicleid == 455)
   {
      if(GetPlayerTeam(playerid) != TEAM_ARMY)
      {
          kopfgeld[playerid] += 2000;
          SendClientMessage(playerid, COLOR_RED, "[WANTED] Du hast eine Militärfahrzeug geklaut ~n~ 
und hast dabei 2000$ Kopfgeld kassiert!!!");
          GameTextForPlayer(playerid,"Du wirst gesucht!",3000,0);
          SetWantedLevel(playerid);
          for (new z=0;z<MAX_PLAYERS;z++)
          {
            if(GetPlayerTeam(z) == TEAM_ARMY && IsPlayerConnected(z))
            {
                new string[256];
                format(string,256,"[MILITÄR] Spieler %s hat eine Militärfahrzeug geklaut!", PlayerNa
me2(playerid));
                SendClientMessage(z, COLOR_BLUE, string);
            }
         }
      }
    }
    
    if(newstate == PLAYER_STATE_DRIVER && vehicleid == 432)
   {
      if(GetPlayerTeam(playerid) != TEAM_ARMY)
      {
          kopfgeld[playerid] += 15000;
          SendClientMessage(playerid, COLOR_RED, "[WANTED] Du hast einen Panzer geklaut ~n~ und hast 
dabei 15000$ Kopfgeld kassiert!!!");
          GameTextForPlayer(playerid,"Du wirst gesucht!",3000,0);
          SetWantedLevel(playerid);
          for (new z=0;z<MAX_PLAYERS;z++)
          {
            if(GetPlayerTeam(z) == TEAM_ARMY && IsPlayerConnected(z))
            {
                new string[256];
                format(string,256,"[MILITÄR] Spieler %s hat einen Panzer geklaut!", PlayerName2(play
erid));
                SendClientMessage(z, COLOR_BLUE, string);
            }
         }
      }
    }
   return 1;
}


Wenn ich als ARMY in einen Panzer steige, werde ich wanted, wieso?

Vielen Dank im Voraus,

Gruß Jermuk

EDIT: Mist, schonwieder im falschen Forum gepostet!
Bitte verschieben!
dödel, 26.10.2008, 21:51
ZitatJermuk hat folgendes geschrieben:
EDIT: Mist, schonwieder im falschen Forum gepostet!
Bitte verschieben!

Dann lerne daraus, wir sind nicht dazu da um deine Threads rumzuschieben.
____________________

Komplett selbst ist das aber auch nicht gecodet,
sieht man schon an den diesen typischen g* - Variablen :D

Also warum hälst du dich nicht gleich an diese ? ;)

Code:
1
2
3
4
5
6
else if (classid == 10)
{
GameTextForPlayer(playerid, "~g~Militär", 1000, 3);
SetPlayerTeam(playerid, TEAM_ARMY);
gTeam[playerid] = TEAM_ARMY; // <- das hier gleich mit nutzen
}


Code:
1
2
3
4
5
if(gTeam[playerid] != TEAM_ARMY)
{
//code
if(gTeam[playerid] == TEAM_ARMY && IsPlayerConnected(z))
{


Zudem glaube ich Team ID 0, heißt das man in keinem Team ist, darum sollten deine Teams vllt. nicht
unbedingt bei 0 anfangen ;)

Code:
1
2
3
#define TEAM_POLIZEI 1
#define TEAM_ARMY 2
#define TEAM_MAFIA 3
Jermuk, 27.10.2008, 13:55
Warum soll ich denn die gleich mitbenutzen?
Warum funzt MEIN Script-Code nicht? (Das mit den SetPlayerTeam() )
Und wie soll ich das dann, bei einem Filterscript abfragen?
Vielen Dank nochmal für die Antwort!

Und nochmal Danke im Voraus,

Gruß Jermuk
dödel, 27.10.2008, 17:00
ZitatJermuk hat folgendes geschrieben:
Warum funzt MEIN Script-Code nicht? (Das mit den SetPlayerTeam() )

Der Coder wird sich schon was gedacht haben, wenn er die Teams in Variablen Speichert

Kurz gesagt
GetPlayerTeam()
gibt immer 255 aus ;)

Es ist nunmal einfach auf diese Weise nicht möglich :P

ZitatJermuk hat folgendes geschrieben:
Und wie soll ich das dann, bei einem Filterscript abfragen?

Was willst du denn mit Filterscripts, das ist doch Sinnlos,
du kannst den Code gleich in den Mode einbauen.
Aber wenn es dir so wichtig ist, schreibe die Teams doch für jede ID
in eine Extradatei wie zb. per Userdata Management ;)
Jermuk, 27.10.2008, 17:31
Also ist GetPlayerTeam() ein Bug, oder wie?
Ich habe es jetzt so gemacht wie du es gesagt hattest, und das FS in den GM importiert.
Wozu sind eigentlich Filterscripte da, wenn man sie doch eh in den GM einbauen kann?
Auf jeden Fall Funzt jetzt alles!
Vielen, vielen Dank, und ich hoffe, ich poste das nicht mehr ins Falsche Forum!!!!
Gruß Jermuk
dödel, 27.10.2008, 18:13
Filterscripts sind dazu da, um diese Codes Parallel zum Gamemode laufen zu lassen, sie sind kein
fester bestandteil des Gamemodes und bleiben somit immernoch aktiv, wenn der Gamemode gewechselt
wird.

Ich weiß nicht genau es der Fehler bei GetPlayerTeam oder SetPlayerTeam liegt,
zumindestens gibt GetPlayerTeam immer 255 aus, was auch daran liegen könne
das SetPlayerTeam einfach nicht funktioniert.
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