wenn du sscanf nutzt einfach dein Eingabewert auf f setzen
oder du nutzt die Funktion [wiki]float[/wiki]
hab den wert auf f gesetzt bekomme aber trotzdem als zahlen nur bei 100hp 100.00000000 ausgegeben
wenn du sscanf nutzt einfach dein Eingabewert auf f setzen
oder du nutzt die Funktion [wiki]float[/wiki]
hab den wert auf f gesetzt bekomme aber trotzdem als zahlen nur bei 100hp 100.00000000 ausgegeben
wie kann ich bei nem sethp befehl den Floatwert auslesen lassen?
Also das im format die eingegebene hp zahl steht? Bei mir kommen nur zahlen wie 188292782 o.ä.
Keine Ahnung was du meinst. https://www.w3schools.com/colors/colors_picker.asp ?
Perfekt! Danköö
Wollte nur ne möglichkeit, die definierten Codes in HTML umzuwandeln!
Na ich hab ja meine farb defines
Und da diese sich aber nicht für einzelne worte verwenden lassen brauch ich halt den html code
Moin, wie ich gemerkt habe, muss man um in einer SendClientMessage mehrere farben verwenden zu können, den HTML Farbcode vor den zu färbenden text setzen.
Haben die Codes eine bestimmte struktur mit der sich der HTML Code ermitteln lässt oder geht das nur mit der funktion im colorpicker?
habe es mit dem color pciker versucht, aber die farbe war heller als sie sein sollte
Alles anzeigenUngetestet, aber sollte so funktionieren.
PS: Wieso überhaupt ein Timer? Kannst ihn ja auch ohne kicken..
public OnPlayerConnect (playerid)
{
if(sSpieler[playerid][Gebannt] = 1)
{
DelayKick[playerid] = SetTimerEx("DelayKickPlayer", 1000, false, "i", playerid);
}
return 1;
}
da muss ein fehler sein weil da 26 errors kommen!
wieso aber englisch?
Hätte da schon Bock drauf, wenn das such wirklich richtig survival mit essen trinken tanken pinkeln kacken etc xD ist.
Wäre dabei
der timer sollte nur sein damit die nachricht gesendet wird bevor er wieder gekickt wird.
Werde das heute abend oder morgen mal testen und mich melden dsnke erstmal
Ich teste grad alle meine Befehle und Optimiere sie ein wenig.
Dabei ist mir aufgefallen, das mein /ban Command nicht korrekt funktioniert bzw. die abfrage ob ein Spieler gebannt ist garnicht funktioniert.
Wenn bei OnPlayerConnect
Meine abfrage if (sSpieler [playerid][gebannt] = 1 abgefragt wird soll eine nachricht kommen und ein timer starten dsmit der spieler gekickt wird.
Leider passiert dies nicht
public OnPlayerConnect (playerid)
{
if (sSpieler[playerid][Gebannt] = 1)
{
SendclientMessage ...
SetTimer("KickTimer",300,0);
return 1;
}
Der Spieler hatte ein ausreichendes Adminlevel, aber durch das default: continue; gings dann aufeinmal!
passt das default continue hats gebracht
hat gefunkt
die letzte sache die nicht funktioniert wäre dies hier.
mein /leader ist exakt genauso aufgebaut und funktioniert tadelos
dcmd_admins(playerid,params[])
{
#pragma unused params
new admin[MAX_PLAYER_NAME];
new string[256];
SendClientMessage(playerid,Weiß, "Anwesende Admins:");
//for(new i; i < MAX_PLAYERS; i++)
for(new i=0; i<MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(sSpieler[i][Adminlevel] == 1)
{
GetPlayerName(i,admin,sizeof(admin));
format(string,sizeof(string),"Supporter: %s",admin);
SendClientMessage(playerid,Weiß,string);
}
if(sSpieler[i][Adminlevel] == 2)
{
GetPlayerName(i,admin,sizeof(admin));
format(string,sizeof(string),"Moderator: %s",admin);
SendClientMessage(playerid,Weiß,string);
}
if(sSpieler[i][Adminlevel] == 3)
{
GetPlayerName(i,admin,sizeof(admin));
format(string,sizeof(string),"Super Moderator: %s",admin);
SendClientMessage(playerid,Weiß,string);
}
if(sSpieler[i][Adminlevel] == 4)
{
GetPlayerName(i,admin,sizeof(admin));
format(string,sizeof(string),"Vorstand: %s",admin);
SendClientMessage(playerid,Weiß,string);
return 1;
}
}
}
return 1;
}
dcmd_amodus(playerid,params[])
{
#pragma unused params
if(sSpieler[playerid][Adminlevel] < 1) return SendClientMessage(playerid,Weiß,"Du hast nicht die benötigten Rechte, um diesen Befehl auszuführen!");
if(aDuty[playerid] == 0)
{
aDuty[playerid] = 1;
new str[64], name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof(name));
SetPVarString(playerid, "oldName", name);
format(str, sizeof(str), "[ADMIN]%s", name);
SetPlayerName(playerid, str);
SetPlayerHealth(playerid,60000);
SetPlayerArmour(playerid,60000);
SendClientMessage(playerid,Weiß,"Du hast den Adminmodus gestartet!");
}
else
{
aDuty[playerid] = 0;
new name[MAX_PLAYER_NAME];
GetPVarString(playerid, "oldName", name, MAX_PLAYER_NAME);
SetPlayerName(playerid, name);
SetPlayerHealth(playerid,100);
SetPlayerArmour(playerid,100);
SendClientMessage(playerid,Weiß,"Du hast den Adminmodus beendet!");
}
return 1;
}
Habe es momentan so aber leider ändert sich der spielername nichtmehr zurück.
Meine frage wäre jetzt wie man einen spieler ein 3d textlabel ransetzt und die farbe ändert und bein ausschalten des modus auf die ursprungsfarbe setzz
hatte ich glaube schon gemacht, da war aber irgendwas falsch weswegen 26 errors kamen.
was müsste denn da hin?
Habe diesen Giverank befehl
dcmd_giverank(playerid,params[])
{
new pid;
new rang = sSpieler[playerid][Rang];
new spieler[256];
new leader[256];
new spielername[MAX_PLAYER_NAME];
new leadername[MAX_PLAYER_NAME];
if(sscanf(params,"ud",pid,rang)) return SendClientMessage(playerid,Weiß,"Info: /giverank (playerid)(rang)");
if(pid == INVALID_PLAYER_ID) return SendClientMessage(playerid,Weiß,"Der Spieler mit dieser ID ist nicht Online!");
if(sSpieler[playerid][Leader] < 1) return SendClientMessage(playerid,Weiß,"Du bist kein Leader!");
if(pid == playerid) return SendClientMessage(playerid,Weiß,"Du kannst dir nicht selbst einen Rang geben!");
if(rang < 1 || rang > 6) return SendClientMessage(playerid,Weiß,"Der Rang muss zwischen 1 und 6 liegen!");
GetPlayerName(playerid,leadername,sizeof(leadername));
GetPlayerName(pid,spielername,sizeof(spielername));
if(sSpieler[playerid][Leader] > 0)
{
format(spieler,sizeof(spieler),"Du wurdest von %s zum Rang %d befördert",leadername,rang);
format(leader,sizeof(leader),"Du hast %s zum Rang %d befördert",spielername,rang);
SendClientMessage(pid,Weiß,spieler);
SendClientMessage(playerid,Weiß,leader);
}
return 1;
}
und folgenden stock der die rangnamen definieren soll
//FRAKTIONSRÄNGE
stock GetRangName(playerid)
{
new name[32];
name = "Rangname";
switch(sSpieler[playerid][Fraktion])
{
case 1:
{
switch(sSpieler[playerid][Rang])
{
case 1: name = "Laufbursche";
case 2: name = "Fahrer";
case 3: name = "Bodyguard";
case 4: name = "Homie";
case 5: name = "Rechte Hand";
case 6: name = "Anführer";
case 7: name = "Leader";
}
}
case 2:
{
switch(sSpieler[playerid][Rang])
{
case 1: name = "Laufbursche";
case 2: name = "Fahrer";
case 3: name = "Bodyguard";
case 4: name = "Homie";
case 5: name = "Rechte Hand";
case 6: name = "Anführer";
case 7: name = "Leader";
}
}
case 3:
{
switch(sSpieler[playerid][Rang])
{
case 1: name = "Officer";
case 2: name = "Sergeant";
case 3: name = "Leutenant";
case 4: name = "Captain";
case 5: name = "Inspector";
case 6: name = "Chief";
case 7: name = "Stuff Chief";
}
}
case 4:
{
switch(sSpieler[playerid][Rang])
{
case 1: name = "Rettungshelfer";
case 2: name = "Rettungsassistent";
case 3: name = "Rettungssanitäter";
case 4: name = "Notarzt";
case 5: name = "Notärztin";
case 6: name = "Oberarzt";
case 7: name = "Chefarzt";
}
}
case 5:
{
switch(sSpieler[playerid][Rang])
{
case 1: name = "Fahrlehrer";
case 2: name = "Fahrlehrer";
case 3: name = "Fahrlehrer";
case 4: name = "Fahrlehrer";
case 5: name = "Fahrlehrer";
case 6: name = "Stv. Chef";
case 7: name = "Chef";
}
}
case 6:
{
switch(sSpieler[playerid][Rang])
{
case 1: name = "Fahrer";
case 2: name = "Logistiker";
case 3: name = "Fachlogistiker";
case 4: name = "Lagerleiter";
case 5: name = "Lagermeister";
case 6: name = "Stv. Geschäftsleitung";
case 7: name = "Geschäftsleitung";
}
}
}
return name;
}
leider ändert sich nur der rang aber nicht der rangname.
habe schon ein paar sachen versucht ohne erfolg
Finde ein Anticheat im Gamemode besser, weil ja heutzutage alles NSA überwacht ist, denken die Spieler vlt. das ein Client auf mehr zugriff hat als nur auf das Spiel.
Gut habs doch gelöst bekommen.
Eine frage wäre aber. kann der befehl deshalb nicht gegangen sein, weil beim makeleader befehl die reiehnfolge nicht korrekt war?