Beiträge von JustMe.77
-
-
Mit return 0 verhindere ich den Spieler Nachrichten abzusenden aber nicht das er noch Nachrichten von anderen Spielern einsehen kann !
-
Okay, jetzt funktioniert's. Habe eine Funktion erstellt womit der Spieler den Global Chat für sich an / ausschalten kann, nur fehlt mir folgende Funktion.
(Das man nichts mehr schreiben kann habe ich hinbekommen)
Wie mache ich das man keine Nachrichten von den anderen Spielern mehr sieht?
In OnPlayerText
if(pData[playerid][P_GlobalChat] == 1)
{
SendClientMessage(playerid, COLOR_RED, "Your global chat is disabled!");
return 0;
} -
Hast du die Variable P_GlobalChat als boolean deklariert, also so bool:P_GlobalChat?
Nein, ist nicht als boolean deklariert
Jetzt wo du es ansprichst, muss ich true einfach mit 1 ersetzen, richtig? -
Hmm, jemand ne Idee warum ich ein Warning erhalte?
if(pData[playerid][P_GlobalChat] == true)
{
SendClientMessage(playerid, COLOR_RED, "Your global chat is disabled!");
return 0;
}: warning 213: tag mismatch
-
Bitte sei doch so nett und füg den Code hier ein anstatt das per Screenshot zu machen, dann ist es auch leichter das Problem zu beheben und die richtige Lösung zu posten.
-
Bei google Maps gibts die möglichkeit, sein aktuelles Gebiet herunterzuladen, also sein Zuhause und die Umgebung bis 120.000 Quadratkilometer.
Bei iOS kp.
Ja? Wie denn?
-
Ich konnte den damals ohne Probleme benutzen.
-
Ich hoffe mal die Frage ist nicht ernst gemeint!Ja man brauch den Client "unbedingt".
MfG
Nö, die Frage ist berechtigt. Der Serverbetreiber hat selbst die Möglichkeit zu entscheiden wer den Clienten benutzen muss und wer nicht
-
Hi, ich habe bereits seit längerer Zeit das Problem das einige Textdraws von mir nicht problemfrei arbeiten, sie "conflicten" miteinander (schwer zu erklären), mal ist es da, mal nicht..
Habe bereits nach dem Problem gesucht und habe etwas gefunden, nur leider klappt es nicht ganz (ich erhalte Errors bei der Problemlösung), vielleicht könnt ihr mir ja helfen.http://forum.sa-mp.com/showthread.php?t=314350
Wie müsste ich z.B. folgendes umschreiben wie Gamer_Z im Thema vorgeschlagen hat?
new PlayerText:Arrow[MAX_PLAYERS][5];
-
Oder man schließt den Spieler gar nicht aus und sendet einfach eine Nachricht an allen Admins das Spieler XY eventuell sein Ban umgeht (bezogen auf die GPCI Funktion)
-
Das ist mir bewusst, nur versuche ich hier klarzustellen das dass nicht alles so einfach wär wie es klingt und eventuell könnte man auch Lösungen für meine oben genannten "Problemen" finden
-
Das Ganze ist trotzdem noch nicht 100 % durchdacht worden, so ist es in meinen Augen zumindest.
Jeder Server bestraft Cheater komplett anders, der eine Server lässt sie gar nicht mehr drauf spielen, der andere entbannt die wieder nach x Tagen etc.
Wird dann ein Entbann Antrag erstellt und man einigt sich drauf Spieler XY zu entbannen, muss man auf den "Plugin Betreiber" warten bis er ihn entbannt und nehmen wir mal an dein Plugin wird von mehreren großen Communitys verwendet, wie willst du das alles managen die Spieler auf Anfrage zu entbannen? -
Ich würde als Server Owner nie ein Plugin installieren wenn dadurch Spieler gesperrt werden außerhalb meines Admin Teams. Habe schon oft die Inkompetenz Admins anderer Server erleben dürfen und hätte keine Lust darauf das Spieler nicht auf mein Server connecten können weil 90% der Admins keine Ahnung von Cheats/Hacks haben.
-
Okay, nun klappt es. Was genau hast du geändert bzw. was habe ich falsch gemacht? Muss das noch 5 mal erneut machen und möchte dann wissen wie es richtig geht
-
Ja, so geht's aber man sieht eine Box dahinter, wie kann ich die entfernen?
-
Jemand eine Idee warum sich mein Textdraw nicht anklicken lässt?
SkillTD[playerid][1] = CreatePlayerTextDraw(playerid,244.000000, 100.000000, "Double - EXP");
PlayerTextDrawBackgroundColor(playerid,SkillTD[playerid][1], 255);
PlayerTextDrawFont(playerid,SkillTD[playerid][1], 2);
PlayerTextDrawLetterSize(playerid,SkillTD[playerid][1], 0.280000, 1.200000);
PlayerTextDrawTextSize(playerid, SkillTD[playerid][1], 340.0, 8.0);
PlayerTextDrawColor(playerid,SkillTD[playerid][1], -1);
PlayerTextDrawSetOutline(playerid,SkillTD[playerid][1], 0);
PlayerTextDrawSetProportional(playerid,SkillTD[playerid][1], 1);
PlayerTextDrawSetShadow(playerid,SkillTD[playerid][1], 1);
PlayerTextDrawSetSelectable(playerid,SkillTD[playerid][1], 1);public OnPlayerClickPlayerTextDraw(playerid, PlayerText:playertextid)
{if(playertextid == SkillTD[playerid][1])
{
new expstring[512];
strcat(expstring,"{FFFFFF}Skill Name:\n{FF0000}Double EXP Chance\n");
strcat(expstring,"{FFFFFF}Description:\n");
strcat(expstring,"{FFFFFF}You have a {FF0000}chance{FFFFFF} to get {FF0000}double EXP {FFFFFF}if you kill someone.\n");
strcat(expstring,"{FFFFFF}The chance depends on your {FF0000}skill level.\n\n\n");
strcat(expstring,"{FFFFFF}Skill 1 = {FF0000}10 % Chance.\n");
strcat(expstring,"{FFFFFF}Skill 2 = {FF0000}20 % Chance.\n");
strcat(expstring,"{FFFFFF}Skill 3 = {FF0000}30 % Chance.\n");
strcat(expstring,"{FFFFFF}Skill 4 = {FF0000}40 % Chance.\n");
strcat(expstring,"{FFFFFF}Skill 5 = {FF0000}50 % Chance.\n");
ShowPlayerDialog(playerid, D_DoubleEXP, DIALOG_STYLE_MSGBOX, "Description", expstring, "Ok", "");
}
}return 1;
} -
Hmm als ich das nur für ein Skill hinzugefügt habe, hat es funktioniert, jetzt habe ich es für alle gemacht und es kommt überall eine andere Prozentzahl raus O.o
Außerdem fehlt das Prozentzeichen, obwohl ich es auch dahinter eingefügt habe
new string[5];
format(string,sizeof(string),"%d",100/pData[playerid][P_DoubleEXP]);
PlayerTextDrawSetString(playerid, EXPSkillCount[playerid][0], string);switch(pData[playerid][P_DoubleEXP])
{
case 5:SetPlayerProgressBarColour(playerid, Bar0[playerid], 0x008000FF);
case 4:SetPlayerProgressBarColour(playerid, Bar0[playerid], 0x80FF00FF);
case 3:SetPlayerProgressBarColour(playerid, Bar0[playerid], 0xFFFF00FF);
case 2:SetPlayerProgressBarColour(playerid, Bar0[playerid], 0xFF8000FF);
case 1:SetPlayerProgressBarColour(playerid, Bar0[playerid], 0xFF0000FF);
case 0:SetPlayerProgressBarColour(playerid, Bar0[playerid], 0xC0C0C0FF);
}SetPlayerProgressBarValue(playerid,Bar1[playerid],pData[playerid][P_DoubleWeed]*20);
new string2[5];
format(string2,sizeof(string2),"%d",100/pData[playerid][P_DoubleWeed]);
PlayerTextDrawSetString(playerid, EXPSkillCount[playerid][1], string2);
switch(pData[playerid][P_DoubleWeed]) -
Ok, ist ja in Ordnung, dachte nur man hätte das noch einfacher schreiben können. Meine letzte Frage:
Ich habe Textdraws eingefügt die anzeigen wie viel Prozent man zurzeit hat (0, 20, 40, 60, 80 & 100)
Wie kann ich die Zahl dem passenden Level anpassen ohne gleich den Code um die ~25 mal zu kopieren?Also, so setze ich den beispielsweise auf 100 %
PlayerTextDrawSetString(playerid, EXPSkillCount[playerid][0], "100%");
Könnte ich nicht eine ähnliche Variante wie SetPlayerProgressBarValue(playerid,Bar0[playerid],pData[playerid][P_DoubleEXP]*20); verwenden damit ich das nicht oftmals kopieren muss?
-
Danke schonmal, das ist natürlich schon um Welten besser !
Nur, ich besitze ja auch 6 verschiedene Skills, müsste ich dazu für jeden Skill den ganzen Case kopieren oder könnte man da auch zaubern?
(Die Farben bleiben ja gleich, auch wenn die Skills verschieden sind. Beispiel: DoppelGeld & Doppel EXP Skill Level 1 bleibt rot.)(Oben sind ja zwei verschiedene Skills aufgelistet (P_Deatghexplosion & P_Armourspawn) )
Genauer gesagt, muss ich das so machen oder geht's nochmal besser?:
CMD:skills2(playerid,params[])
{
if(SkillShowing[playerid] == 1)
{
SkillShowing[playerid] = 0;
HideSkillTextDraw(playerid);
HideSkillBar(playerid);
return 1;
}else
{
SkillShowing[playerid] = 1;
ShowSkillBar(playerid);
ShowSkillTextDraw(playerid);
SetPlayerProgressBarValue(playerid,Bar0[playerid],pData[playerid][P_DoubleEXP]*20);
switch(pData[playerid][P_DoubleEXP])
{
case 5:SetPlayerProgressBarColour(playerid, Bar0[playerid], 0x008000FF);
case 4:SetPlayerProgressBarColour(playerid, Bar0[playerid], 0x80FF00FF);
case 3:SetPlayerProgressBarColour(playerid, Bar0[playerid], 0xFFFF00FF);
case 2:SetPlayerProgressBarColour(playerid, Bar0[playerid], 0xFF8000FF);
case 1:SetPlayerProgressBarColour(playerid, Bar0[playerid], 0xFF0000FF);
case 0:SetPlayerProgressBarColour(playerid, Bar0[playerid], 0xC0C0C0FF);
}SetPlayerProgressBarValue(playerid,Bar1[playerid],pData[playerid][P_DoubleWeed]*20);
switch(pData[playerid][P_DoubleWeed])
{
case 5:SetPlayerProgressBarColour(playerid, Bar1[playerid], 0x008000FF);
case 4:SetPlayerProgressBarColour(playerid, Bar1[playerid], 0x80FF00FF);
case 3:SetPlayerProgressBarColour(playerid, Bar1[playerid], 0xFFFF00FF);
case 2:SetPlayerProgressBarColour(playerid, Bar1[playerid], 0xFF8000FF);
case 1:SetPlayerProgressBarColour(playerid, Bar1[playerid], 0xFF0000FF);
case 0:SetPlayerProgressBarColour(playerid, Bar1[playerid], 0xC0C0C0FF);
}
ShowSkillBar(playerid);
}
return 1;
}