KOSTENLOSE REGISTRIERUNG - FREE REGISTER
  • Willkommen, Gast!
  • Sonntag, 01. März 2026, 03:59:40
Position: Home » Grand Theft Auto: San Andreas » Multiplayer » Taxi Script

Willkommen im GTAvision.com Forum

Du bist noch nicht bei uns angemeldet. Wenn das dein erster Besuch bei uns ist, so kannst du die wichtigsten Funktionen des Boards in der FAQ nachlesen. Um Beiträge zu schreiben oder neue Themen zu erstellen musst du in fast jedem Forum registriert und eingeloggt sein. Dies gilt nicht bei den Newskommentaren, dort können auch Gäste etwas schreiben ohne sich vorher registrieren zu müssen. Damit du Beiträge lesen kannst, musst du dir erst ein Forum aussuchen welches dich interessiert, z.B. GTA V - Allgemeines, dann klickst du auf ein Thema das dich interessiert z.B. "Allgemeine GTA V Plauderecke" und schon kannst du die Beiträge lesen. Um im genannten Thema zu antworten, musst du dich allerdings vorher eingeloggt haben. Viel Spaß in unserem Forum, wünscht das gesamte GTAvision.com Team.

Follow @GTAvision
Grand Theft Auto: San Andreas
Thema: Taxi Script [Seite 1 ]  

Kein neuer Beitrag 11.10.2008, 19:55
Beitrag #1   

Jermuk
Informant
* * * * O O O O O O O
Kein Bild vorhanden
Registrierung: 25.09.2008, 20:26
User-Info: Blutiger Anfänger
Lieblings-GTA: GTA: Vice City
Script Editor: Pawno
Wohnort: Mist, vergessen
Beiträge: 48

Hallo an alle,

ich habe mal wieder eine Frage zu meinem Script.
Wenn ich /accept mache, sagt er "Nutze /accept [Preis]" und wenn ich dann /accept 100 mache zeigt
er mir SERVER ERROR: Unkown Command an.
Was habe ich mal wieder falsch gemacht?
Und was könnte ich machen, damit es ein bisschen entchaotisiert wird?
Würde denn das Script so wie ichs wollte laufen?
Hier das Script:

Code:
1
2
3
4
5
6
7
8
new bool:Taxidriver[MAX_PLAYERS];
new bool:wanttaxi[MAX_PLAYERS];
new bool:hadclient[MAX_PLAYERS];
new bool:accept1[MAX_PLAYERS];
new bool:accept2[MAX_PLAYERS];
new Float:accept3[MAX_PLAYERS];
new Float:accept4[MAX_PLAYERS];
new preis;


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
87
if (strcmp(cmdtext, "/iamtaxi", true)==0)
    {
        new string[256];
        format(string,sizeof(string),"%s ist nun Taxifahrer. Tippe /taxi um ihn zu rufen.", PlayerName(playerid) );
      SendClientMessageToAll(0xFFFF00AA,string);
      Taxidriver[playerid] = true;
      return 1;
   }
   
   
   // --------------------------------------------------------------------------------------------------
   
   if (strcmp(cmd, "/taxi", true)==0)
    {
        new string[256];
        new tmp[256];
        new zielort;
        tmp = strtok(cmdtext, idx);
        if(!strlen(tmp))
      {
         SendClientMessage(playerid, COLOR_YELLOW, "Nutze: /taxi [Zielort]");
         return 1;
      }
      zielort = strval(tmp);
      for (new i = 0; i < MAX_PLAYERS; i++)
        {
            if(Taxidriver[i]==true)
            {
                if(hadclient[i] != true && wanttaxi[playerid] != true)
                {
                   format(string,sizeof(string),"%s braucht ein Taxi und will hierhin: %s", PlayerName2(playerid),zielort);
               SendClientMessage(i,0xFFFF00AA,string);
               format(string,sizeof(string),"Nutze /accept [Preis] zum Akzeptieren");
               SendClientMessage(i,0xFFFF00AA,string);
               wanttaxi[playerid] = true;
               accept1[i] = true;
               accept3[playerid] = i;
               accept4[i] = playerid;
               //hadclient[i] = true;
            }
            else
            {
                SendClientMessage(playerid,0xFFFF00AA,"Momentan ist kein Taxifahrer frei.");
             }
         }
        }
      return 1;
   }
   // -------------------------------------------------------------------------------------------------
   if (strcmp(cmd, "/accept", true)==0)
    {
        new string[256];
        if(accept1[playerid] == true)
        {
            new tmp[256];
           tmp = strtok(cmdtext, idx);
           if(!strlen(tmp))
         {
            SendClientMessage(playerid, COLOR_YELLOW, "Nutze: /accept [Preis]");
            return 1;
         }
         preis = strval(tmp);
         format(string,sizeof(string),"Man hat dein Angebot angenommen. Es würde dich $%d kosten.", preis);
         SendClientMessage(accept4[playerid],0xFFFF00AA,string);
         format(string,sizeof(string),"Wenn du dies anehmen möchtest tippe /accept ein.");
         SendClientMessage(accept4[playerid],0xFFFF00AA,string);
         accept2[accept4[playerid]] = true;
         accept1[playerid] = false;
         
      }
      if(accept2[playerid] == true)
      {
          for (new i = 0; i < MAX_PLAYERS; i++)
          {
              if(accept3[playerid] == i && accept2[playerid] == true)
               {
                   format(string,sizeof(string),"Angebot akzeptiert");
               SendClientMessage(playerid,0xFFFF00AA,string);
               format(string,sizeof(string),"Angebot wurde akzeptiert. Fahre zu Checkpoint!");
               SendClientMessage(i,0xFFFF00AA,string);
               accept2[playerid] = false;
               hadclient[playerid] = true;
            }
         }
      }
      return 1;
   }


Und unter OnPlayerEnterVehicle:

Code:
1
2
3
4
5
6
7
8
9
10
11
12
if (ispassenger)
    {
       for (new i = 0; i < MAX_PLAYERS; i++)
       {
           if (wanttaxi[playerid] == true && vehicleid == GetPlayerVehicleID(i) && Taxidriver[i] == true)
           {
               new string[256];
               format(string, sizeof(string), "Du hast ein Taxi betreten! Das kostet dich $%d!",preis);
               SendClientMessage(playerid, farbe_orange, string);
         }
      }
   }


Ich hoffe ihr könnt dieses Chaos lesen *sarkasmus*

vielen Dank im Voraus,

Gruß Jermuk

Kein neuer Beitrag 11.10.2008, 20:12
Beitrag #2   

dödel
Capo
* * * * * * * * * * O
Registrierung: 16.04.2007, 22:15
Lieblings-GTA: GTA: Vice City
Wohnort: The Triangle
Beiträge: 3191

wie genau wurde denn 'cmd' definiert?

if (strcmp(cmd < dieses hier ;)



Erstmal ist deine for-schleife dort unnötig


Code:
1
2
3
4
5
6
7
8
9
        if(accept2[playerid] == true)
        {
                    format(string,sizeof(string),"Angebot akzeptiert");
                    SendClientMessage(playerid,0xFFFF00AA,string);
                    format(string,sizeof(string),"Angebot wurde akzeptiert. Fahre zu Checkpoint!");
                    SendClientMessage(accept3[playerid],0xFFFF00AA,string);
                    accept2[playerid] = false;
                    hadclient[playerid] = true;
        }


Und wenn sowas passiert wie du sagst, aber nichts wirklich sichtbar ist,
gibts noch einen ganz einfach Test dazu ;)

Nutz einfach mal diesen Code und dann siehst du ja, bei welcher Funktion es hängenbleibt bzw. wie
weit es überhaupt kommt :)


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
    if (strcmp(cmd, "/accept", true)==0)
     {
    print("accept 1");
         new string[256];
         if(accept1[playerid] == true)
         {
         print("accept 1-0");
             new tmp[256];
             tmp = strtok(cmdtext, idx);
             print("accept 1-2");
             if(!strlen(tmp))
            {
                SendClientMessage(playerid, COLOR_YELLOW, "Nutze: /accept [Preis]");
                return 1;
            }
            preis = strval(tmp);
            print("accept 1-3");
            format(string,sizeof(string),"Man hat dein Angebot angenommen. Es würde dich $%d kosten.", preis);
            SendClientMessage(accept4[playerid],0xFFFF00AA,string);
            print("accept 1-4");
            format(string,sizeof(string),"Wenn du dies anehmen möchtest tippe /accept ein.");
            SendClientMessage(accept4[playerid],0xFFFF00AA,string);
            print("accept 1-5");
            accept2[accept4[playerid]] = true;
            accept1[playerid] = false;
        print("accept 1-6");
        }
        print("accept 2");
        if(accept2[playerid] == true)
        {
       print("accept 2-0");
        format(string,sizeof(string),"Angebot akzeptiert");
       SendClientMessage(playerid,0xFFFF00AA,string);
        print("accept 2-1");
       format(string,sizeof(string),"Angebot wurde akzeptiert. Fahre zu Checkpoint!");
       SendClientMessage(accept3[playerid],0xFFFF00AA,string);
        print("accept 2-2");
       accept2[playerid] = false;
       hadclient[playerid] = true;
       print("accept 2-3");
        return 1;
    }


Durch solche Kontrollpunkte kannst du genau sehen, bis zu welcher Funktion es kommt
(logischerweise hängt es dann immer bei der Funktion nach dem Kontrollpunkt)
Dieser Beitrag wurde insgesamt 2 mal editiert. Das letzte Mal 11.10.2008, 20:27 von dödel.

Kein neuer Beitrag 11.10.2008, 21:29
Beitrag #3   

Jermuk
Informant
* * * * O O O O O O O
Kein Bild vorhanden
Registrierung: 25.09.2008, 20:26
User-Info: Blutiger Anfänger
Lieblings-GTA: GTA: Vice City
Script Editor: Pawno
Wohnort: Mist, vergessen
Beiträge: 48

Danke für die Antwort dödel,

es funzt.
Aber leider nur zur Hälfte.
Zum Schluss wird nicht die Nachricht "Angebot wurde akzeptiert. Fahre zu Checkpoint!"
angezeigt.
Was habe ich diesmal Falsch gemacht?
Es liegt wahrscheinlich daran, dass accept3[playerid] nicht den richtigen Wert hat.

Danke im voraus,

Gruß Jermuk

PS: Nochmal danke für die Antwort dödel!!!!!!! *hi*
Dieser Beitrag wurde insgesamt 1 mal editiert. Das letzte Mal 11.10.2008, 21:32 von Jermuk.

Kein neuer Beitrag 11.10.2008, 21:59
Beitrag #4   

dödel
Capo
* * * * * * * * * * O
Registrierung: 16.04.2007, 22:15
Lieblings-GTA: GTA: Vice City
Wohnort: The Triangle
Beiträge: 3191

Zeig mir mal wie dein /accept inzwischen aussieht ;)

Kein neuer Beitrag 12.10.2008, 10:43
Beitrag #5   

Jermuk
Informant
* * * * O O O O O O O
Kein Bild vorhanden
Registrierung: 25.09.2008, 20:26
User-Info: Blutiger Anfänger
Lieblings-GTA: GTA: Vice City
Script Editor: Pawno
Wohnort: Mist, vergessen
Beiträge: 48

Mein Code sieht momentan so aus:

Code:
1
2
3
4
5
6
7
8
9
// Taxi-Driver
new bool:Taxidriver[MAX_PLAYERS];
new bool:wanttaxi[MAX_PLAYERS];
new bool:hadclient[MAX_PLAYERS];
new bool:accept1[MAX_PLAYERS];
new bool:accept2[MAX_PLAYERS];
new Float:accept3[MAX_PLAYERS];
new Float:accept4[MAX_PLAYERS];
new preis;


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
if (strcmp(cmd, "/taxi", true)==0)
    {
        new string[256];
        new tmp[256];
        new zielort;
        tmp = strtok(cmdtext, idx);
        if(!strlen(tmp))
      {
         SendClientMessage(playerid, COLOR_YELLOW, "Nutze: /taxi [Zielort]");
         return 1;
      }
      zielort = strval(tmp);
      for (new i = 0; i < MAX_PLAYERS; i++)
        {
            if(Taxidriver[i]==true)
            {
                if(hadclient[i] != true && wanttaxi[playerid] != true)
                {
                   format(string,sizeof(string),"%s braucht ein Taxi und will hierhin: %s", PlayerName2(playerid),zielort);
               SendClientMessage(i,0xFFFF00AA,string);
               format(string,sizeof(string),"Nutze /accept [Preis] zum Akzeptieren");
               SendClientMessage(i,0xFFFF00AA,string);
               wanttaxi[playerid] = true;
               accept1[i] = true;
               accept3[playerid] = i;
               accept4[i] = playerid;
               //hadclient[i] = true;
            }
            else
            {
                SendClientMessage(playerid,0xFFFF00AA,"Momentan ist kein Taxifahrer frei.");
             }
         }
        }
      return 1;
   }


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
if (strcmp(cmd, "/accept", true)==0)
    {   
        new string[256];
        if(accept1[playerid] == true)
        {
            new tmp[256];
           tmp = strtok(cmdtext, idx);
           if(!strlen(tmp))
         {
            SendClientMessage(playerid, COLOR_YELLOW, "Nutze: /accept [Preis]");
            return 1;
         }
         preis = strval(tmp);
         format(string,sizeof(string),"Man hat dein Angebot angenommen. Es würde dich $%d kosten.", preis);
         SendClientMessage(accept4[playerid],0xFFFF00AA,string);
         format(string,sizeof(string),"Wenn du dies anehmen möchtest tippe /accept ein.");
         SendClientMessage(accept4[playerid],0xFFFF00AA,string);
         accept2[accept4[playerid]] = true;
         accept1[playerid] = false;
         accept3[accept4[playerid]] = playerid;
         return 1;
         
      }
      /*
      if(accept2[playerid] == true)
      {
          for (new i = 0; i < MAX_PLAYERS; i++)
          {
              if(accept3[playerid] == i && accept2[playerid] == true)
               {
                   format(string,sizeof(string),"Angebot akzeptiert");
               SendClientMessage(playerid,0xFFFF00AA,string);
               format(string,sizeof(string),"Angebot wurde akzeptiert. Fahre zu Checkpoint!");
               SendClientMessage(i,0xFFFF00AA,string);
               accept2[playerid] = false;
               hadclient[playerid] = true;
            }
         }
      }
      */
      if(accept2[playerid] == true)
        {
                    format(string,sizeof(string),"Angebot akzeptiert");
                    SendClientMessage(playerid,0xFFFF00AA,string);
                    format(string,sizeof(string),"Angebot wurde akzeptiert. Fahre zum Marker!");
                    SendClientMessage(accept3[playerid],0xFFFF00AA,string);
                    accept2[playerid] = false;
                    hadclient[playerid] = true;
               new Float:X;
               new Float:Y;
               new Float:Z;
               GetPlayerPos(playerid,X,Y,Z);
               SetPlayerMapIcon(accept3[playerid], 12, X, Y, Z, 58, 0 );
      }
      return 1;
   }


Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
    if (ispassenger)
    {
       for (new i = 0; i < MAX_PLAYERS; i++)
       {
           if (wanttaxi[playerid] == true && vehicleid == GetPlayerVehicleID(i) && Taxidriver[i] == true)
           {
               new string[256];
               GivePlayerMoney(playerid,-preis);
            GivePlayerMoney(i,preis);
               format(string, sizeof(string), "Du hast das Taxi betreten!");
               SendClientMessage(playerid, farbe_orange, string);
         }
      }
   }
   return 1;
}

Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public OnPlayerExitVehicle(playerid, vehicleid)
{
   for (new i = 0; i < MAX_PLAYERS; i++)
       {
           if (wanttaxi[playerid] == true && vehicleid == GetPlayerVehicleID(i) && Taxidriver[i] == true)
           {
               new string[256];
               format(string, sizeof(string), "Du hast das Taxi verlassen!");
               SendClientMessage(playerid, farbe_orange, string);
               wanttaxi[playerid] = false;
               hadclient[i] = false;
               RemovePlayerMapIcon(i, 12 );
         }
      }
   return 1;
}

Im /taxi Script ist auch noch irgendwo ein Fehler drinnen, denn der Zielort wird nicht angezeigt

Ich hatte inzwischen das Script ein bisschen echter gemacht.

Gruß Jermuk
Dieser Beitrag wurde insgesamt 1 mal editiert. Das letzte Mal 12.10.2008, 10:45 von Jermuk.

Kein neuer Beitrag 12.10.2008, 14:16
Beitrag #6   

dödel
Capo
* * * * * * * * * * O
Registrierung: 16.04.2007, 22:15
Lieblings-GTA: GTA: Vice City
Wohnort: The Triangle
Beiträge: 3191

Dann bauen wir doch einfach die for-schleife neu und ändern sie etwas ab

Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
        if(accept2[playerid] == true)
        {
        for(new i; i<MAX_PLAYERS; i++)
        {
        if(accept3[i] == playerid)
        {
                    format(string,sizeof(string),"Angebot akzeptiert");
                    SendClientMessage(playerid,0xFFFF00AA,string);
                    format(string,sizeof(string),"Angebot wurde akzeptiert. Fahre zum Marker!");
                    SendClientMessage(i,0xFFFF00AA,string);
                    accept2[playerid] = false;
                    hadclient[playerid] = true;
                    new Float:X;
                    new Float:Y;
                    new Float:Z;
                    GetPlayerPos(playerid,X,Y,Z);
                    SetPlayerMapIcon(accept3[playerid], 12, X, Y, Z, 58, 0 );
        }
        }
        }



Zu deinem Problem mit dem Zielort:
Du speicherst ihn als Zahl und nicht als Text,
ich weiß nicht ob das gewollt ist, aber du scheinst
ihn später ja als string ausgeben zu wollen, also
sollte /taxi wie folgt aussehen.

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
if (strcmp(cmd, "/taxi", true)==0)
     {
         new string[256];
         new tmp[256];
         new zielort[256];
         tmp = strtok(cmdtext, idx);
         if(!strlen(tmp))
        {
            SendClientMessage(playerid, COLOR_YELLOW, "Nutze: /taxi [Zielort]");
            return 1;
        }
        zielort = strtok(cmdtext, idx);
         if(!strlen(zielort))
        {
            SendClientMessage(playerid, COLOR_YELLOW, "Nutze: /taxi [Zielort]");
            return 1;
        }
        for (new i = 0; i < MAX_PLAYERS; i++)
        {
            if(Taxidriver[i]==true)
            {
                if(hadclient[i] != true && wanttaxi[playerid] != true)
                {
                    format(string,sizeof(string),"%s braucht ein Taxi und will hierhin: %s", PlayerName2(playerid),zielort[6]);
                    SendClientMessage(i,0xFFFF00AA,string);
                    format(string,sizeof(string),"Nutze /accept [Preis] zum Akzeptieren");
                    SendClientMessage(i,0xFFFF00AA,string);
                    wanttaxi[playerid] = true;
                    accept1[i] = true;
                    accept3[playerid] = i;
                    accept4[i] = playerid;
                    //hadclient[i] = true;
                }
                else
                {
                    SendClientMessage(playerid,0xFFFF00AA,"Momentan ist kein Taxifahrer frei.");
                }
            }
        }
        return 1;
    }

Kein neuer Beitrag 12.10.2008, 14:37
Beitrag #7   

Jermuk
Informant
* * * * O O O O O O O
Kein Bild vorhanden
Registrierung: 25.09.2008, 20:26
User-Info: Blutiger Anfänger
Lieblings-GTA: GTA: Vice City
Script Editor: Pawno
Wohnort: Mist, vergessen
Beiträge: 48

Danke für die Antwort!!!

Es klappt!!!

Gruß Jermuk

Druckansicht

n/a n/a 1     (Anzeige: 1 – 7; Insgesamt: 7) n/a n/a
Toggle Ähnliche Themen zu „Taxi Script“
  Antworten Aufrufe Themeneröffnung Letzter Beitrag
Keine neuen Beiträge, „heißes Thema“   Dreifache Boni bei Lamar- und Taximissionen und mehr 0 14701 03.08.2023, 22:38
Von: GTAvision.com
03.08.2023, 22:38
Von: GTAvision.com
Zum letzten Beitrag
Keine neuen Beiträge, „heißes Thema“   GTA+: Kostenloses Taxi, mehr Einnahmen und mehr 0 4776 22.01.2023, 22:27
Von: GTAvision.com
22.01.2023, 22:27
Von: GTAvision.com
Zum letzten Beitrag
Keine neuen Beiträge, „heißes Thema“   Taxiarbeiten, das Jahr des Hasen und mehr 0 1850 22.01.2023, 22:15
Von: GTAvision.com
22.01.2023, 22:15
Von: GTAvision.com
Zum letzten Beitrag
Keine neuen Beiträge, „heißes Thema“   Suche Scripter 0 85249 27.06.2019, 15:25
Von: Domse
27.06.2019, 15:25
Von: Domse
Zum letzten Beitrag
Keine neuen Beiträge, „heißes Thema“   Wichtiges Thema Scripter für SA:MP gesucht   Seiten 1 2 3 4  ...7 ] 94 427904 25.12.2007, 13:04
Von: GTA_FreakY
24.03.2019, 11:10
Von: Elite55
Zum letzten Beitrag
  • 0.052862 Sek., 17 DB-Zugriffe, 2.084 MiB
  • Powered by Boardsolution v1.45
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