Willst du einen neuen Text/Dialog anzeigen lassen oder willst du Level und Fraktion nur mit drin anzeigen lassen?
Dialog nein nicht nur Level Fraktion sondern
Tode Kills, Job, usw
Willst du einen neuen Text/Dialog anzeigen lassen oder willst du Level und Fraktion nur mit drin anzeigen lassen?
Dialog nein nicht nur Level Fraktion sondern
Tode Kills, Job, usw
Vielen Dank.
Muss ich nun immer neue strings erstellen? zb für Level oder Fraktion ?
Danke, und eine Frage wo kommt das "GetName" hin?
Okay , aber nun wenn ich Jemanden Mute kann er nichts Schreiben aber es kommt auch kein Fehler das er Gemutet ist / were
Vielen Dank, habe mir bereits deinen Thread Gelesen in Zukunft mache ichs besser.
Und noch ne Frage undzwar wie kann ich das machen das es auch an die Admins gesendet wird zb:
/mute 0 10 Test
dann Admin %s hat %s gemutet Grund: halt auch an die Admins gesendet wird zb bei Makeleader %s hat %s zum Leader der Fraktion %s gemacht
Ja öhm, wenn man Gemutet, ist kann man trotzdem weiter Schreiben :p
ocmd:mute(playerid,params[])
{
new pID;
new string[128];
new grund[64];
if(IsPlayerConnected(pID))
{
if(SpielerInfo[playerid][Adminlevel] < 1)return SendClientMessage(playerid,GRAU,"Du darfst diesen Befehl nicht verwenden.");
if(sscanf(params,"us",pID,grund))return SendClientMessage(playerid,GRAU,"Verwendung: /mute [playerid][Grund]");
if(SpielerInfo[playerid][Adminlevel] < SpielerInfo[pID][Adminlevel])
{
return SendClientMessage(playerid,RR,"Du kannst keinen Admin muten, der einen höheren Rang als du besitzt!");
}
format(string,sizeof(string),"%s wurde von %s gemutet! Grund: %]",GetName(playerid),GetName(pID),grund);
SendClientMessageToAll(RR,string);
SpielerInfo[pID][Mute] = 1;
Adminlog(string);
}
return 1;
}
ocmd:unmute(playerid,params[])
{
new pID;
new string[128];
if(IsPlayerConnected(pID))
{
if(SpielerInfo[playerid][Adminlevel] < 1)return SendClientMessage(playerid,GRAU,"Du darfst diesen Befehl nicht verwenden.");
if(sscanf(params,"u",pID))return SendClientMessage(playerid,GRAU,"Verwendung: /unmute [playerid]");
format(string,sizeof(string),"%s wurde von %s entmutet.",GetName(playerid),GetName(pID));
SendClientMessageToAll(RR,string);
SpielerInfo[pID][Mute] = 0;
Adminlog(string);
}
return 1;
}
Alles anzeigen
Bei SpielerSpeichern gespeichert und Account Laden
ocmd:setskin(playerid,params[])
{
new string[528],pID,SkinID;
if(SpielerInfo[playerid][Adminlevel] < 1)return SendClientMessage(playerid,GRAU,"Du darfst diesen Befehl nicht verwenden.");
if(sscanf(params,"ui",pID,SkinID))return SendClientMessage(playerid,WEIß,"Verwendung: /setskin [playerid][SkinID]");
SetPlayerSkin(pID,SkinID);
format(string,sizeof(string),"%s hat den Skin von %d auf %d umgeändert.",GetName(playerid),GetName(pID),SkinID);
AdminChat(RR,string);
format(string,sizeof(string),"Deine Skinid wurde von %d auf %d umgeändert.",GetName(playerid),SkinID);
Adminlog(string);
SpielerInfo[playerid][pSkin] = 5;
return 1;
}
Alles anzeigen
Alles anzeigenVom Code her sieht es in etwa so aus:
In das enum von SpielerInfo einfügen:Überall dort wo du einen Skin setzt:
Beim SpielerSpeichern:
Beim SpielerLaden:
Füge dann noch bei OnPlayerConnect das ein:
Und dann, bei OnPlayerSpawn:
Bedenke, dass das so keine Copy-Paste-Lösung ist, sondern du musst die Variablen-Namen natürlich an deine Bezeichnungen anpassen.
Danke, aber wenn ich /setskin mache und dann rlg mache kommt ganz ein anderes skin ._.
ocmd:auf(playerid,params[])
{
if(IsPlayerInRangeOfPoint(playerid,10.0,246.3300,71.9613,1003.6406))
{
if(SpielerInfo[playerid][Fraktion]==1)
MoveObject(Tore[0],246.58043, 72.39567, 1008.55176, 5);
SetTimer("close", 5000,0);
return 1;
}
else if(IsPlayerInRangeOfPoint(playerid,10.0, 1547.5786,-1627.8486,13.3828))
{
if(SpielerInfo[playerid][Fraktion]==1)
MoveObject(Tore[1],1588.11206, -1638.19910, 14.91731, 5);
SetTimer("close", 5000,0);
return 1;
}
else
{
SendClientMessage(playerid,RR,"Du bist nicht in der Nähe des Tores!");
}
return 1;
}
Alles anzeigen
so und dann bei OnGameModeInit
Tore[0] == CreateObject x y z
Tore[1] == CreateObject x y z
Kommt die ClientMessage unten, dass du nicht in der Nähe eines Tores bist, oder passiert einfach garnichts?
Wenn zweiteres:
Überprüfe ob es die richtigen Koordinaten sind auf die das Tor gesetzt werden soll.
bei ongamemodeinit? oder bei public close ?
So wie es dann ist, können beide Tore nur geöffnet werden, wenn du Fraktion 1 bist.
Außerdem musst du für die Tore jeweils eigene Tore definieren, also andere Variablen bei dem CreaeteObject vom Tor.
Ich habe bei CreateObject == auf gemacht, und bei public close MoveObject(auf,x,y,z) etc
Ein Bild sagt mehr als tausend Worte^^
Danke
aber jetzt bewegen sich die Toren nicht mehr?
ocmd:auf(playerid,params[])
{
if(SpielerInfo[playerid][Fraktion]==1)
if(IsPlayerInRangeOfPoint(playerid,10.0,246.3300,71.9613,1003.6406))
{
MoveObject(auf,246.58043, 72.39567, 1008.55176, 5);
SetTimer("close", 5000,0);
return 1;
}
else if(IsPlayerInRangeOfPoint(playerid,10.0, 1547.5786,-1627.8486,13.3828))
{
if(SpielerInfo[playerid][Fraktion]==1)
MoveObject(auf,1588.11206, -1638.19910, 14.91731, 5);
SetTimer("close", 5000,0);
return 1;
}
else
{
SendClientMessage(playerid,RR,"Du bist nicht in der Nähe des Tores!");
}
return 1;
}
Alles anzeigen
Dein Else-Block muss auf jeden Fall hinter allen Toren sein
Ich checks nich
Das Else muss ans Ende, also unter den else if - Abfragen, vergleiche mal unsere Codeblöcke
Bei dein Code sind die Zeilen irgendwo das bringt chaos
CodeAlles anzeigenocmd:auf(playerid,params[]) { if(IsPlayerInRangeOfPoint(playerid,10.0,246.3300,71.9613,1003.6406)) { if(SpielerInfo[playerid][Fraktion]==1){ MoveObject(auf,246.58043, 72.39567, 1008.55176, 5); SetTimer("close", 5000,0); return 1; } else{ SendClientMessage(playerid, -1, "Du bist kein Mitglied des LSPD's!"); } } else if(IsPlayerInRangeOfPoint(playerid,10.0, TOR_X, TOR_Y, TOR_Z)) { if(SpielerInfo[playerid][Fraktion]==FRAKTION_ID_HITMAN || SpielerInfo[playerid][Fraktion]==1){ MoveObject(hitman_tor_object,x, y, z, 5); SetTimer("close", 5000,0); return 1; } else{ SendClientMessage(playerid, -1, "Du bist kein Mitglied der Hitmans!"); } } else { SendClientMessage(playerid,RR,"Du bist nicht in der Nähe eines Tores!"); } return 1; }
Habe dort paar Sachen drinne die dir Errors geben werden, dort musst du dann gucken, dass du es in deine Sachen ändern musst
Also bei mir steht das ich nicht in der Nähe eines Tores bin ?
ocmd:auf(playerid,params[])
{
if(SpielerInfo[playerid][Fraktion]==1)
if(IsPlayerInRangeOfPoint(playerid,10.0,246.3300,71.9613,1003.6406))
{
MoveObject(auf,246.58043, 72.39567, 1008.55176, 5);
SetTimer("close", 5000,0);
return 1;
}
else
{
SendClientMessage(playerid,RR,"Du bist nicht in der Nähe des Tores!");
}
else if(IsPlayerInRangeOfPoint(playerid,10.0, 1547.5786,-1627.8486,13.3828))
{
if(SpielerInfo[playerid][Fraktion]==1)
MoveObject(auf,1588.11206, -1638.19910, 14.91731, 5);
SetTimer("close", 5000,0);
return 1;
}
return 1;
}
Alles anzeigen
CodeAlles anzeigenif(IsPlayerInRangeOfPoint(playerid, 5.0, Tor_X, Tor_Y, Tor_Z)){ if(SpielerInfo[playerid][Fraktion]==1 || SpielerInfo[playerid][Frkation==2) { //TOR Öffnen -> Kann Fraktion 1 und Fraktion 2 } } else if(IsPlayerInRangeOfPoint(playerid, 5.0, Tor_X, Tor_Y, Tor_Z)){ if(SpielerInfo[playerid][Fraktion]==1) { //TOR Öffnen -> Kann nur Fraktion 1 } }
ocmd:auf(playerid,params[])
{
if(SpielerInfo[playerid][Fraktion]==1)
if(IsPlayerInRangeOfPoint(playerid,10.0,246.3300,71.9613,1003.6406))
{
MoveObject(auf,246.58043, 72.39567, 1008.55176, 5);
SetTimer("close", 5000,0);
return 1;
}
else
{
SendClientMessage(playerid,RR,"Du bist nicht in der Nähe des Tores!");
}
return 1;
}
Alles anzeigen
so siehts bei mir aus wo soll ich das ganz genau schreiben
Das kannst du von Tor zu Tor unterschiedlich einstellen
so?
okay kann dann auch hitman die tore öffnen von lspd? oder nur lspd
Bei /auf abfragen bei welchem Tor er ist (IsPlayerInRangeOfPoint) und dann noch ob in der richtigen Fraktion für das Tor ist
Ja und wie mache ich das mit mehrere Fraktionen?