du unterbrichst es ja auch,
da wo bei dir ein return 1; steht gehört der Code zum tanken rein
du unterbrichst es ja auch,
da wo bei dir ein return 1; steht gehört der Code zum tanken rein
Warum Speicherst du Lizenzen in einer extra Datei?
Also wird eine falsche Nachricht gesendet oder wie?
schau dir Youtube Tutorials an
versuch es mal so:
SetPVarInt(pID,"Fraktion",GetPVarInt(playerid,"Fraktion"));
Es kann sein das ich etwas durcheinander bringe, aber:
du sagst er soll "Fraktion" von pID auf den Wert der variable fID setzen.
Aber er bekommt nirgendwo den Wert für die variable fID
schau mal hier
du setzt Fraktion auf fID
Aber woher kommt das fID?
SetPVarInt(pID,"Fraktion",fID);
Zitatich will das er Leader abfragt oder ob er bei rank 11 hat warum < das
wen man es mit == abfragen kann ? weil das egal ob ob man da abragt ob
er drüber ist oder gleich ist
nur er fragt nur leader ab wen ich kein leader bin und nur rank 11 habe lässt er mich net
So sollte es gehen:
if(PlayerInfo[playerid][pLeader] == 1 || PlayerInfo[playerid][pRank] >= 11 && PlayerInfo[playerid][pLeader] == 1 || PlayerInfo[playerid][pRank] >= 11)
bezweifel ich, ich habe aus
if(PlayerInfo[playerid][pLeader] 1 || PlayerInfo[playerid][pRank] 11)
if(PlayerInfo[playerid][pLeader] == 1 || PlayerInfo[playerid][pRank] == 11)
//Edit ReborN: Das wollte er doch auch?
if(strcmp(cmd, "/invite", true) == 0)
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD2, "BENUTZUNG: /invite [playerid/Name]");
return 1;
}
new leader = PlayerInfo[playerid][pLeader];
new para1 = ReturnUser(tmp);
if(PlayerInfo[playerid][pLeader] == 1 || PlayerInfo[playerid][pRank] == 11)
{
if(IsPlayerConnected(para1))
{
if(para1 != INVALID_PLAYER_ID)
{
if(gTeam[para1]==TEAM_GREEN && PlayerInfo[para1][pMember] == 0 && PlayerInfo[para1][pFMember] == 255)
{
if(PlayerInfo[para1][pFrakSperre] == 0)
{
GetPlayerName(para1, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
printf("Adminmeldung: %s hat %s in die Fraktion %s eingeladen.", sendername, giveplayer,Fracs[leader-1]);
format(string, sizeof(string), "Du wurdest in die Fraktion %s von Leader %s eingeladen.",Fracs[leader-1], sendername);
SendClientMessage(para1, COLOR_LIGHTBLUE, string);
ShowPlayerDialog(para1,DIALOG_INVITE,DIALOG_STYLE_MSGBOX,"Du wurdes Eingeladen","Ein leader möchte dich gerne Einladen\nMöchtes du Invitet werden?","Ja","Nein");
format(string, sizeof(string), "Du hast %s in die Fraktion %s eingeladen.", giveplayer,Fracs[leader-1]);
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
SendClientMessage(playerid, COLOR_GRAD2, " Der Spieler muss nun deine Einladung annehmen oder ablehnen.");
new iyear, imonth,iday;
getdate(iyear, imonth, iday);
format(string, sizeof(string), "%s[Level:%d] wurde von %s in die Fraktion %s eingeladen (%d-%d-%d)", giveplayer,PlayerInfo[para1][pLevel],sendername,Fracs[leader-1],imonth,iday,iyear);
Eingeladen[para1] = leader;
}
else
{
SendClientMessage(playerid, COLOR_GREY, "Dieser Spieler hat eine Fraktions-Sperre");
return 1;
}
}
else
{
SendClientMessage(playerid, COLOR_GREY, "Dieser Spieler ist in einer anderen Fraktion oder bereits ein Fraktionsmitglied.");
return 1;
}
}
}
}
else
{
SendClientMessage(playerid, COLOR_GRAD1, "Nur der Leader kann diesen Befehl nutzen!");
return 1;
}
return 1;
}
Zitatif(PlayerInfo[playerid][pLeader] == 1 && PlayerInfo[playerid][pRank] == 11)
So ein blödsinn, hier fragst du ab ob er Leader und Rang 11 hat.
mit sagst du oder
da du sagen möchtest Leader == 1 oder Rang == 11 must du mit arbeiten.
zeig mal den gesamten Code, vielleicht liegt ja garnicht hier der Fehler.
(Ich denke man das da eigendlich eine Klammer dran ist, oder??... wenn nicht fehlt da eine )
und wo genau liegt dein problem?
if(strcmp(cmd, "/ahelp", true) == 0 || strcmp(cmd, "/ah", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if(PlayerInfo[playerid][pAdmin] >= 1 || PlayerInfo[playerid][pSupporter] >= 1)
{
new str[2048];
strcat(str,""#COL_ORANGE"Supporter:\n/kick - Jemanden Kicken\n/unfreeze - Jemanden vom Freeze befreihen\n");
strcat(str,"/goto - Sich zu einem Spieler Teleportieren\n/aws - \n");
strcat(str,"/aduty - Sich als Supporter anmelden\n/supmobil - Ein Supporter Fahrzeug Spawnen\n");
strcat(str,"/gethere - Jemand zu sich Teleportieren\n/bigears - Den Chat lauschen\n\n");
strcat(str,""#COL_RED"Adminlevel 1:\n/prison - Die Gefängniszeit von jemanden bearbeiten\n/");
strcat(str,"/ar - Den report von jemanden annehmen\n/cr - Den Report von jemanden schließen\n");
strcat(str,"/tr - Den Report von jemanden verweigern\n/cleartext - Den Chatverlauf löschen\n");
strcat(str,"/checkwarns - Von jemanden die Warnsanzahl überprüfen\n/check - Die Statistiken von jemanden anzeigen\n");
strcat(str,"/setint - Das Interrior von jemanden setzen\n/mute - Jemanden Muten(Stummschalten)\n");
strcat(str,"/kickres - Reservierte Plätze kicken\n/warn - Jemanden Warnen\n/sban - Jemand ohne Nachricht Bannen\n");
strcat(str,"/ban - Jemand Bannen mit Nachricht an alle Spieler\n");
ShowPlayerDialog(playerid,DIALOG_ADMINHELP,DIALOG_STYLE_MSGBOX,"Hi",str,"Nächste Seite","Abbrechen");
return 1;
}
else
{
SendClientMessage(playerid, COLOR_WHITE, "Du bist kein Supporter / Admin.");
return 1;
}
}
return 1;
}
Teste es mal
Jop, ist möglich
Arbeite mit AttachObjectToVehicle und einem Timer^^
Mehr kann ich dir leider auch nicht dazu sagen xD
über dem
if (GetPlayerState(playerid) == 2)
{
new tmpcar = GetPlayerVehicleID(playerid);
SetVehiclePos(tmpcar, plocx, plocy+4, plocz);
TelePos[playerid][0] = 0.0;TelePos[playerid][1] = 0.0;
}
bau eine Abfrage rein:
if(GetPlayerInterior(playerid) != GetPlayerInterior(plo))
{
SetPlayerInterior(playerid,GetPlayerInterior(plo));
}
Dort fragst du ab ob der, der sich Teleportiert im selben Interrior ist wie der, zu dem man sich portet.
Wenn nicht wird der Interior auf den selben gesetzt.
Ich denke mir mal das deine FraktionsID's mit den Namen der Dateien übereinstimmen.
Wenn ja könntest du vielleicht mit folgendem arbeiten:
fDaten[Spieler[playerid][Fraktion]][Spieler[playerid][Rang]] //Ich hoffe das konnte dir einen kleinen denk anschub geben;
Ja, glaube eine neue Zeile ging mit \n
Wichtig ist das du die Variable unter OnPlayerDisconnect auch wieder auf 0 stellst