Die kannst du so errechnen:
new days, hours, minutes, seconds, tmp;
tmp = Spieler[playerid][DonatorBis] - gettime();
days = tmp / 86400;
tmp -= days * 86400;
hours = tmp / 3600;
tmp -= hours * 3600;
minutes = tmp / 60;
tmp -= minutes * 60;
seconds = tmp;
new str[145];
format(str, sizeof(str), "Du hast noch %d Tage, %d Stunden, %d Minuten und %d Sekunden den Donator Status.", days, hours, minutes, seconds);
SendClientMessage(playerid, 0xFF0000FF, str);
Beiträge von Jeffry
-
-
new name[MAX_PLAYER_NAME],string[100];
GetPlayerName(i,name, MAX_PLAYER_NAME);Dann sollte es klappen.
-
Das ist normal, das ist der Unix Timestamp, zu dem der Donator Status abläuft.
Siehe hier für den momentanen Timestamp:
http://www.unixtimestamp.de/ -
Genau, über den Timestamp kannst du das machen.
Geht ganz einfach:ocmd:tpremium(playerid, params[])
{
new pID, zeit, string[128];
if(sscanf(params,"ui", pID, zeit))return SendClientMessage(playerid, fGREY, "Benutze: /premium [ID] [Zeit in Tagen]");
if(!IsPlayerConnected(pID))return SendClientMessage(playerid, fGREY, "Der Spieler ist nicht eingeloggt!");
if(!isPlayerAnAdmin(playerid, 5)) return SendClientMessage(playerid, Grey,""#ADMINSATZ"");
Spieler[pID][Donator] = 1;
Spieler[pID][DonatorBis] = gettime() + zeit * 86400; //1 Tag = 86400 Sekunden
format(string, sizeof(string), "%s hat deinen Accountstatus auf Premium gesetzt. Tage: %i", SpielerName(playerid),zeit);
SendClientMessage(pID, COLOR_LIGHTBLUE, string);
return 1;
}Beim Login und bei einem Timer die Abfrage:
if(Spieler[playerid][DonatorBis] < gettime())
{
//Donator-Status weg nehmen.
} -
{
case 1:
{
if(Spieler[playerid][pDuty] != 0)
{
SetPlayerSkin(playerid,Spieler[playerid][pFraktSkin]),SetPlayerColor(playerid,SAPDDUTY);
}
}
//[S]an [A]ndreas [P]olice [D]epartment
case 2:
{
if(Spieler[playerid][pDuty] != 0)
{
SetPlayerSkin(playerid,Spieler[playerid][pFraktSkin]),SetPlayerColor(playerid,FBIDUTY);
}
}
//F.B.I
case 3:
{
if(Spieler[playerid][pDuty] != 0)
{
SetPlayerSkin(playerid,Spieler[playerid][pFraktSkin]),SetPlayerColor(playerid,MEDICDUTY);
}
}
//San Andreas Rettungsdienst
case 4:
{
SetPlayerSkin(playerid,Spieler[playerid][pFraktSkin];
}
//LSV
case 5:
{
SetPlayerSkin(playerid,Spieler[playerid][pFraktSkin]);
}
//GSF
case 6:
{
if(Spieler[playerid][pDuty] != 0)
{
SetPlayerSkin(playerid,Spieler[playerid][pFraktSkin]),SetPlayerColor(playerid,ARMYDUTY);
}
}
//San Andreas ARMY
case 7:
{
SetPlayerSkin(playerid,Spieler[playerid][pFraktSkin]);
}
//BALLAS
case 8:
{
if(Spieler[playerid][pHaveMaske] == 1)
{
SetPlayerSkin(playerid,Spieler[playerid][pFraktSkin]);
}
}
//TERRORS
case 9:
{
SetPlayerSkin(playerid,Spieler[playerid][pFraktSkin]);
}
//YAKUZA
case 10:
{
if(Spieler[playerid][pDuty] != 0)
{
SetPlayerSkin(playerid,Spieler[playerid][pFraktSkin]);
}
}
//San Andreas News
case 11:
{
if(Spieler[playerid][pDuty] != 0)
{
SetPlayerSkin(playerid,Spieler[playerid][pFraktSkin]);
}
}
//Ordnungsamt
case 12:
{
SetPlayerSkin(playerid,Spieler[playerid][pFraktSkin]);
}
//LCN
case 13:
{
SetPlayerSkin(playerid,Spieler[playerid][pFraktSkin]);
}
//Sons of Anarchy
case 14:
{
if(Spieler[playerid][pDuty] != 0)
{
SetPlayerSkin(playerid,Spieler[playerid][pFraktSkin]),SetPlayerColor(playerid,FAHRSCHULEDUTY);
}
}
//faHRSCULE
case 15:
{
if(Spieler[playerid][pDuty] != 0)
{
SetPlayerSkin(playerid,Spieler[playerid][pFraktSkin]),SetPlayerColor(playerid,SAELEKTRONIKGmBhDUTY);
}
}
//SA ELEKTRONIK GmBh
case 16:
{
SetPlayerSkin(playerid,Spieler[playerid][pFraktSkin]),Spieler[playerid][pDuty] = 1;
}
//Regierung
case 17:
{
SetPlayerSkin(playerid,Spieler[playerid][pFraktSkin]);
}
//Sureño Syndikat
case 18:
{
SetPlayerSkin(playerid,Spieler[playerid][pFraktSkin]);
}
//Die Sekte
} -
case 4:
{
SetPlayerSkin(playerid,Spieler[playerid][pFraktSkin]);//LSV
SetPlayerColor(playerid, FARBE);
}
case 5:
{
SetPlayerSkin(playerid,Spieler[playerid][pFraktSkin]);
SetPlayerColor(playerid, FARBE);
}//GSF@_iPit_: Du hast da zwei Klammern am Ende, da werden ein paar Errors kommen.

Und was meinst du mit Abfrage ob der Spieler spawnt? Du kannst es ja bei OnPlayerSpawn hinschreiben.
-
Suche die Textur und net die Objektid.

Oh. Na dann, die kannst du mit dem SA-MP Map Editor herausfinden.
http://forum.sa-mp.com/showthread.php?t=331497Objekt ID eingeben und wie beschrieben die Textur auslesen.
-
Ich schätze das ist was du meinst:
http://wiki.sa-mp.com/wiki/ShowPlayerMarkers
http://wiki.sa-mp.com/wiki/LimitPlayerMarkerRadiusEDIT: (Post unten)
@Tobi_Wayne: Da dein Problem behoben ist, wäre es super, wenn du den Thread als erledigt markierst. Danke! -
Ohh, ich sehe grade das was du vor hast geht ja gar nicht.
Du musst es als normales 3DLabel erstellen, nicht als Player-3DLabel.http://wiki.sa-mp.com/wiki/Create3DTextLabel
Das erstellst du per Array:
new Text3D:Statusarbeit[MAX_PLAYERS];Und
Statusarbeit[playerid] = Create3DTextLabel(playerid,"Status",CL_GREEEN,X,Y,Z,40.0); -
Zeige bitte den Teil von OnPlayerEnterCheckpoint.
-
Hast du es so deklariert?
new PlayerText3D:Statusarbeit;
Wenn nicht, mach das. -
weiß jemand ob die Pickups & TextLabels ab 0 oder 1 anfangen zu zählen.
Beide fangen bei 0 an. -
Dann passt das
da aber nicht. 
So:
case 1://linie 2
{
if(isPlayerInJob(playerid,4) && IsVehicleAPostCar(GetPlayerVehicleID(playerid)))//postbote
{
Spieler[playerid][WorkInJob] = 1;
SendClientMessage(playerid,GELB,"Du hast dich für die Postbotenroute 2 entschieden! Ein Checkpoint wurde gesetzt.(/stopjob um abzubrechen)");
postjobgo2[playerid] = 1;
SetPlayerCheckpoint(playerid,1295.4149,-1413.6486,13.0933,3.0);
return 1;
}
if(isPlayerInJob(playerid,10) && IsVehicleATruck(GetPlayerVehicleID(playerid)))//truckerjob
{
Spieler[playerid][WorkInJob] = 1;
SendClientMessage(playerid,GELB,"Fahre zuerst zum Anhängerstellplatz! Ein Checkpoint wurde gesetzt.(/stopjob um abzubrechen)");
SendClientMessage(playerid,GELB,"Steige während der Fahrt nicht aus deinem Truck.");
truckerjobgo2[playerid] = 1;
new spawnrand = random(sizeof(TrailerSpawns2));
truckertrailer[playerid] = CreateVehicleEx(591,TrailerSpawns2[spawnrand][0],TrailerSpawns2[spawnrand][1],TrailerSpawns2[spawnrand][2],TrailerSpawns2[spawnrand][3],-1,-1,-1,false);
SetPlayerCheckpoint(playerid,TrailerSpawns2[spawnrand][0],TrailerSpawns2[spawnrand][1],TrailerSpawns2[spawnrand][2],12.5);
return 1;
}
if(isPlayerInJob(playerid,11) && IsVehicleABus(GetPlayerVehicleID(playerid)))//busfahrerjob
{
if(Spieler[playerid][pBusfahrerEXP] < 100) return SendClientMessage(playerid,0x0069FFFF,"Du hast noch nicht 100EXP also kannst du diese Linie nicht fahren!");
Spieler[playerid][WorkInJob] = 1;
SetPlayerCheckpoint(playerid,buslinie2[0][Xcp],buslinie2[0][Ycp],buslinie2[0][Zcp],buslinie2[0][CPSize]);
BusCheckpointStatus2[playerid] = 0;
buslinieninfo[playerid] = 30;//für das textlabel
format(string,sizeof(string),"Linie %i | Busfahrer %s ist nun im Dienst! Kosten: %i$",buslinieninfo[playerid],SpielerName(playerid),MAX_BUS_PRICE);
SendClientMessageToAll(GRUEN,string);
SendClientMessage(playerid,GELB,"Fahre nun einzeln die Haltestellen ab! Ein Checkpoint wurde gesetzt.(/stopjob um abzubrechen)");
format(string,sizeof(string),"Linie %i\nNächster Halt: %s\nBusfahrer: %s\nKosten: %i$",buslinieninfo[playerid],buslinie1[BusCheckpointStatus1[playerid]][CheckPointText],SpielerName(playerid),MAX_BUS_PRICE);
VehicleOnDuty[GetPlayerVehicleID(playerid)] = true;
buspriceinfo[GetPlayerVehicleID(playerid)] = CreateDynamic3DTextLabel(string, BUSuTAXIDUTYFARBE, 0.0,0.0,0.0,50.0,INVALID_PLAYER_ID,GetPlayerVehicleID(playerid),1,0,-1,-1);
return 1;
}
} -
-
Suche diese Textur vom Glas:
Objekt ID: 19325 / 19466 -
Nein...
So:
case 1://linie 2
{
if(isPlayerInJob(playerid,4) && IsVehicleAPostCar(GetPlayerVehicleID(playerid)))//postbote
{
Spieler[playerid][WorkInJob] = 1;
SendClientMessage(playerid,GELB,"Du hast dich für die Postbotenroute 2 entschieden! Ein Checkpoint wurde gesetzt.(/stopjob um abzubrechen)");
postjobgo2[playerid] = 1;
SetPlayerCheckpoint(playerid,1295.4149,-1413.6486,13.0933,3.0);
return 1;
}
if(isPlayerInJob(playerid,10) && IsVehicleATruck(GetPlayerVehicleID(playerid)))//truckerjob
{
Spieler[playerid][WorkInJob] = 1;
SendClientMessage(playerid,GELB,"Fahre zuerst zum Anhängerstellplatz! Ein Checkpoint wurde gesetzt.(/stopjob um abzubrechen)");
SendClientMessage(playerid,GELB,"Steige während der Fahrt nicht aus deinem Truck.");
truckerjobgo2[playerid] = 1;
new spawnrand = random(sizeof(TrailerSpawns2));
truckertrailer[playerid] = CreateVehicleEx(591,TrailerSpawns2[spawnrand][0],TrailerSpawns2[spawnrand][1],TrailerSpawns2[spawnrand][2],TrailerSpawns2[spawnrand][3],-1,-1,-1,false);
SetPlayerCheckpoint(playerid,TrailerSpawns2[spawnrand][0],TrailerSpawns2[spawnrand][1],TrailerSpawns2[spawnrand][2],12.5);
return 1;
}
if((isPlayerInJob(playerid,11) || Spieler[playerid][pBusfahrerEXP] >= 100) && IsVehicleABus(GetPlayerVehicleID(playerid)))//busfahrerjob
{
Spieler[playerid][WorkInJob] = 1;
SetPlayerCheckpoint(playerid,buslinie2[0][Xcp],buslinie2[0][Ycp],buslinie2[0][Zcp],buslinie2[0][CPSize]);
BusCheckpointStatus2[playerid] = 0;
buslinieninfo[playerid] = 30;//für das textlabel
format(string,sizeof(string),"Linie %i | Busfahrer %s ist nun im Dienst! Kosten: %i$",buslinieninfo[playerid],SpielerName(playerid),MAX_BUS_PRICE);
SendClientMessageToAll(GRUEN,string);
SendClientMessage(playerid,GELB,"Fahre nun einzeln die Haltestellen ab! Ein Checkpoint wurde gesetzt.(/stopjob um abzubrechen)");
format(string,sizeof(string),"Linie %i\nNächster Halt: %s\nBusfahrer: %s\nKosten: %i$",buslinieninfo[playerid],buslinie1[BusCheckpointStatus1[playerid]][CheckPointText],SpielerName(playerid),MAX_BUS_PRICE);
VehicleOnDuty[GetPlayerVehicleID(playerid)] = true;
buspriceinfo[GetPlayerVehicleID(playerid)] = CreateDynamic3DTextLabel(string, BUSuTAXIDUTYFARBE, 0.0,0.0,0.0,50.0,INVALID_PLAYER_ID,GetPlayerVehicleID(playerid),1,0,-1,-1);
return 1;
}
else if(Spieler[playerid][pBusfahrerEXP] < 100) return SendClientMessage(playerid,0x0069FFFF,"Du hast noch nicht 100EXP also kannst du diese Linie nicht fahren!");//DIEZEILE
} -
Fahrzeugmodel eien 2. Farbe haben kann?
-
public OnPlayerText(playerid, text[])
{
return 0;
}
Zu
public OnPlayerText(playerid, text[])
{
return 1;
}Return 0 verhindert, dass die Nachricht gesendet wird.
-
Füge mal vor dem ShowPlayerDialog das ein:
printf("string: %s", string);Was wird dann geprintet, wenn du einen Spieler andrückst?
-
Kommt die Nachricht im Chat?
Wie hast du definiert?
Bist du Admin Level 1?