Ersetz den stock aus deinem Script einfach mit dem, den ich dir gerade geschickt habe.
Beiträge von [ASAP]Frosty
-
-
stock isPlayerRank(playerid,rankid)
{
if(GetPVarInt(playerid,"Rank") >= rankid)return 1;
return 0;
}Da hab ich irgendwie gefailt. Die Warnings haben alle nichts damit zu tun.
-
Zeig mal die Warnings und die dazugehörigen Zeilen.
-
ocmd:admins(playerid,params[])
{
new text[128];
for(new i=0; i<GetMaxPlayers(); i++)
{
if(SpielerInfo[i][Adminlevel] >= 1){
format(text,sizeof(text),"%s\n%s ID: %d",text, pName(i),i);
}}
ShowPlayerDialog(playerid,DIALOG_SHOWADMINS,DIALOG_STYLE_MSGBOX,"Alle verfügbaren Admins\n%s",text,"Fertig","");
return 1;
} -
if(SpielerInfo[i][Adminlevel] == 0)continue;
müsste meiner Meinung nach auch so aussehen:
if(SpielerInfo[i][Adminlevel] > 0)continue;
Verbessert mich, wenn ich falsch liege. -
Bekommst gleich 'ne Antworte, dauert noch 5 Minuten.
new invited[MAX_PLAYERS] = 0;
new invfrak[MAX_PLAYERS] = 0;
ocmd:annehmen(playerid,params[])
{
if(invited[playerid] == 0) return SendClientMessage(playerid,-1,"Du wurdest nicht in eine Fraktion eingeladen!");
//if(GetPVarInt(playerid,"Fraktion") != 0)return SendClientMessage(playerid,-1,"Du bist bereits in einer Fraktion.");
new ftext[128];
if(invfrak[playerid] == 1) { ftext= "LSPD"; SetPVarInt(playerid,"Fraktion",1); SetPVarInt(playerid,"Rank",1); }
else if(invfrak[playerid] == 2) { ftext= "Ordnungsamt"; SetPVarInt(playerid,"Fraktion",2); SetPVarInt(playerid,"Rank",1); }
else if(invfrak[playerid] == 3) { ftext= "Sanitäter"; SetPVarInt(playerid,"Fraktion",3); SetPVarInt(playerid,"Rank",1); }
else if(invfrak[playerid] == 4) { ftext= "Grove Street"; SetPVarInt(playerid,"Fraktion",4); SetPVarInt(playerid,"Rank",1); }
else if(invfrak[playerid] == 5) { ftext= "Yakuza"; SetPVarInt(playerid,"Fraktion",5); SetPVarInt(playerid,"Rank",1); }
new string[128];
format(string,sizeof(string),"Du bist nun Mitglied der Fraktion %s.",ftext);
SendClientMessage(playerid,-1,string);
for(new i=0;i<MAX_PLAYERS;i++)
{
if(GetPVarInt(i,"Fraktion") == invfrak[playerid] && GetPVarInt(i,"Rank") == 6)
{
SendClientMessage(i,-1,"Die Inviteanfrange wurde angenommen.");
}
}
invited[playerid] = 0;
invfrak[playerid] = 0;
return 1;
}
ocmd:invite(playerid,params[])
{
if(!isPlayerRank(playerid,6))return SendClientMessage(playerid,-1,"Du bist kein Leader einer Fraktion.");
new InviteID, rank;
if(sscanf(params,"u",InviteID))return SendClientMessage(playerid,-1,"Benutze: /invite [Spielerid]");
rank = GetPVarInt(playerid,"Fraktion");
new ftext[128];
if(rank == 1) { ftext= "LSPD";}
else if(rank == 2) { ftext= "Ordnungsamt";}
else if(rank == 3) { ftext= "Sanitäter";}
else if(rank == 4) { ftext= "Grove Street";}
else if(rank == 5) { ftext= "Yakuza";}
new string[128];
format(string,sizeof(string),"%s von der Fraktion %s möchte dich %s in die Fraktion aufnehmen. Tippe /annehmen.",SpielerName(playerid),SpielerName(InviteID),ftext);
SendClientMessage(InviteID,-1,string);
invfrak[InviteID] = rank;
invited[InviteID] = 1;
return 1;
}Ungetestet, kann also sein, dass das nicht ganz funktioniert, dann sag einfach Bescheid. Falls du was nicht verstehst sag auch Bescheid.
//edit2: Und an dem stock ist was falsch, so ist es richtig:
stock isPlayerRank(playerid,rankid)
{
if(GetPVarInt(playerid,"Rank") < rankid)return 1;
return 0;
}//edit3: Das auskommentiert dort oben, kannst du mit reinnehmen, musst du aber nicht.
-
Hier ein Script womit unendlich viele Leute in ein Nevada können, müsstest du dann natürlich auf dein AT-400 umschreiben.
-
Machst du doch schon mit "SetPVarInt(playerid,"Rank",6);".
Um den Rank abzufragen, beispielsweise im /invite Befehl:
if(GetPVarInt(playerid,"Rank") < 6) return SendClientMessage(playerid,FARBE,"Du hast nicht die nötigen Rechte!"); //Wenn der Rank kleiner ist als 6, soll die Message ausgegeben werden
else //ansonsten
{
//Was passieren soll, wenn man Rank 6 ist.
} -
Im Moment wird niemand mehr gesucht.
-
Ich möchte gerne an der BETA teilnehmen. Alter: 16
-
Richtig, wie gesagt, wenn du Hilfe brauchst kannst du mir gerne deine TeamViewer Daten schicken.
-
-
Und statt "GetPVarInt(playerid,"Fraktion") == 1;" musst du "SetPVarInt(playerid,"Fraktion",1);" schreiben.
-
Wanteds kannst du mit "SetPlayerWantedLevel" vergeben.
Punkte für einen Führerscheinentzug ist ein wenig komplizierter, dafür müsstest du in der Spielerdatei/tabelle einen Punkt names "Punkte" o.ä. hinzufügen und diesem immer um eins erhöhen, wenn man bspw. durch einen Blitzer fährt oder ein Cop mit einem Befehl dem Spieler einen Punkt gibt.//e: Wenn ich dir das mal über TeamViewer oder so zeigen soll, musst du mich morgen anschreiben. Bin jetzt erstmal off.
-
Laut GTA Wiki hat der 2 Sitzplätze, lässt sich aber scripttechnisch erweitern, wenn nötig.
-
VIelleicht ist die Playervariable "Fraktion" auf Null und ansonsten versuch mal den Code bei OnPlayerSpawn nach ganz unten zu tun.
-
new hitsound[MAX_PLAYERS];
new Arena[MAX_PLAYERS];
new ordnungsamtcar[26];
new lspdcar[18];main() //fehler Laut Pawn
{
print("\n----------------------------------");
print("United Deathmatch");
print("----------------------------------\n");
}
Hinter dem lspdcars[18] fehlte ein ";".Und:
//Ordnungsamt
#define ordnungsamtspawn 2262.3352,2035.9197,10.8203Da war ein Komma zu viel.
-
Dann zeig mal die Zeile 316.
-
switch(GetPVarInt(playerid,"Fraktion"))
{
case 0:{}
case 1:{SetPlayerPos(playerid,lspdspawn);SetPlayerColor(playerid,BLAU);GivePlayerWeapon(playerid,41,500);GivePlayerWeapon(playerid,24,200);GivePlayerWeapon(playerid,3,1);GivePlayerWeapon(playerid,25,200);GivePlayerWeapon(playerid,31,250);GivePlayerWeapon(playerid,34,50);}
case 2:{SetPlayerPos(playerid,ordnungsamtspawn);SetPlayerColor(playerid,BABYBLAU);GivePlayerWeapon(playerid,41,500);}
case 3:{SetPlayerPos(playerid,sanitäterspawn);SetPlayerColor(playerid,ROT);GivePlayerWeapon(playerid,41,500);}
case 4:{SetPlayerPos(playerid,grovestreetspawn);GivePlayerWeapon(playerid,24,100);GivePlayerWeapon(playerid,1,1);GivePlayerWeapon(playerid,25,40);GivePlayerWeapon(playerid,30,100);}
case 5:{SetPlayerPos(playerid,yakuzaspawn);GivePlayerWeapon(playerid,24,100);GivePlayerWeapon(playerid,8,1);GivePlayerWeapon(playerid,25,40);GivePlayerWeapon(playerid,30,100);}
}
return 1;So sollte es klappen, lag am GivePlayerWeapon; du kannst nicht mehrere Waffen in einem "GivePlayerWeapon" vergeben.
-
Zeig mal wie du lspdspawn definiert hast.
Du musst nämlich eigentlich x, y und z einzeln definieren, bspw. lspdspawnx, lspdspawny.. oder lspdspawn[3];