Ja das sind die "Weit-Weg"-Models
[SAMMELTHREAD] Kleine Scripting Fragen
- Rafelder
- Unerledigt
Dein Problem konnte durch einen User gelöst werden? Bedank dich bei ihm indem du seinen Beitrag als Hilfreich markierst sowie einen Daumen oben dalässt
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!
Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
-
-
das geht dann so:
#define DEFINIERTER _MUELL 3
public OnDialogResponse ( ... )
{
switch(dialogid)
{
case 0:print("dialog 0");
case 1:print("dialog 1");
case 2:print("dialog 2");
case DEFINIERTER_MUELL:print("dialog Müll");
}
}
und continue springt zum start einer schleife also
for(new i;i<10;i++)
{
if(i==5)continue;
printf("%d",i);
}Ausgabe:(5 wird übersprungen)
Okay das mit Continue Check ich.
Habs schon in einer Funtkion verwendet,
aber das mit Case verstehe ich immer noch nicht. -
alternativ kannste auch if / else if nehmen...
-
Also sind if & case quasi das gleiche?
Oder gibst da nen drastischen unterschied? -
naja ab 3 ist switch ressourcenschonender. also
test(var)
{
if(var==1)return fA();
else if(var==2)return fB();
else if(var==3)return fC();
else return fD();
}
//entspricht:
test(var)
{
switch(var)
{
case 1:return fA();
case 2:return fB();
case 3:return fC();
default:return fD();
}
}
//oder
test(var)return((var==1)?(fA()):((var==2)?(fB()):((var==3)?(fC()):(fD())))); -
if(dialogid == Chat){
if(listitem == 0){
new string[128];
new name[MAX_PLAYER_NAME];
format(string, sizeof(string), "[%s]: Guten Morgen Jungs und Mäddels! Wie geht es euch",name);
SendClientMessageToAll(0x0ffffff, string);Darf ich eben fragen, warum mir der Wert name nicht ausgegeben wird?
-
if(dialogid == Chat){
if(listitem == 0){
new string[128];
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof (name));
format(string, sizeof(string), "[%s]: Guten Morgen Jungs und Mäddels! Wie geht es euch",name);
SendClientMessageToAll(0x0ffffff, string); -
if(dialogid == Haupt){
if(response == 0){
new string[256];
format(string, sizeof(string), "abgebrochen");
ShowPlayerDialog(playerid, 212, DIALOG_STYLE_MSGBOX, "Buttler:",string, "Ok", "Schließen" );
}
if(listitem == 0){
}
ShowPlayerDialog(playerid, Chat, DIALOG_STYLE_LIST, "Was kann ich für Sie tun'?", "Begrüßung\nVerabschiedung\nKompliment\nEinstellungen", "Auswählen", "Schließen");
}
if(dialogid == Chat){
if(listitem == 0){
new string[128];
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof (name));
format(string, sizeof(string), "[%s]: Guten Morgen Jungs und Mäddels! Wie geht es euch",name);
SendClientMessageToAll(0x0ffffff, string);
}
if(listitem == 1){
new string[128];
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof (name));
format(string, sizeof(string), "[%s]: Tschüß und Aufwiedersehen Jungs und Mäddels! Sehen uns!",name);
SendClientMessageToAll(0x0ffffff, string);
}
}Findet ihr den Fehler?
Es ist so,
wenn ich Scrollrad drücke, öffne ich ein kleines Menü.
Wenn ich dort das 1. Auswähle öffnet sich dort ein 2. Menü. Und wenn ich dort das 1./2. ausw#hle, kommt eine Textnachricht an alle.Aber ich habe das problem, wenn ich beim ersten menü z.B escape drücke oder schließen, öffnet der mir das 2. sofort.
Und dann sendet ihr mir die Nachricht.
Also escape/schließen öffnet das nächste 1. seltsamer weiße.Hoffe jemand findet den Fehler schnell.
-
-
Suche für OnPlayerKeyState oder wie das heißt folgende Tasten:
Enter & 2 & 3 & 9 & STRG.
Bitte Helfen.Danke
-
-
Drake: Geh schlafen...Verpenntheits-Fehler
if(listitem == 0){
}
Was soll das denn bewirken..ohne Inhalt oder sonstiges ;DDan:
Die Zahlen kannst du nicht in OnPlayerKeyState benutzen. Doch 2 schon, dass ist der SPECIAL KEY. Aber der Rest nicht, da SA:MP nur auf Tasten die schon von GTA SA festgelegt sind zugreifen kann/will.
Frag mich, wieso Kye das so eingestellt hat -
-
Kann ich das LANGE/GROßE Unten stehende auch leichter machen? ALso anstatt 1oooox SendClientMessage vllt. iwie das es so ist SendClientMessage1000x oder so xD halt kürzer? Frisst zuviele Zeilen/Resourcen =/
if (strcmp("/clear", cmdtext, true, 10) == 0)
{
if(Player[playerid][admin] < 1)
{
SendClientMessage(playerid, COLOR_RED,"You must be a Moderator or higher to see clear the chat");
}
SendClientMessageToAll(COLOR_RED,"");
SendClientMessageToAll(COLOR_RED,"");
SendClientMessageToAll(COLOR_RED,"");
SendClientMessageToAll(COLOR_RED,"");
SendClientMessageToAll(COLOR_RED,"");
SendClientMessageToAll(COLOR_RED,"");
SendClientMessageToAll(COLOR_RED,"");
SendClientMessageToAll(COLOR_RED,"");
SendClientMessageToAll(COLOR_RED,"");
SendClientMessageToAll(COLOR_RED,"");
SendClientMessageToAll(COLOR_RED,"");
SendClientMessageToAll(COLOR_RED,"");
SendClientMessageToAll(COLOR_RED,"");
SendClientMessageToAll(COLOR_RED,"");
SendClientMessageToAll(COLOR_RED,"");
SendClientMessageToAll(COLOR_RED,"");
SendClientMessageToAll(COLOR_RED,"");
SendClientMessageToAll(COLOR_RED,"");
SendClientMessageToAll(COLOR_RED,"");
SendClientMessageToAll(COLOR_RED,"");
SendClientMessageToAll(COLOR_RED,"");
SendClientMessageToAll(COLOR_RED,"");
SendClientMessageToAll(COLOR_RED,"");
SendClientMessageToAll(COLOR_RED,"");
SendClientMessageToAll(COLOR_RED,"");
SendClientMessageToAll(COLOR_RED,"");
SendClientMessageToAll(COLOR_RED,"");
SendClientMessageToAll(COLOR_RED,"");
SendClientMessageToAll(COLOR_RED,"");
SendClientMessageToAll(COLOR_RED,"");
SendClientMessageToAll(COLOR_RED,"");
SendClientMessageToAll(COLOR_RED,"");
SendClientMessageToAll(COLOR_RED,"");
SendClientMessageToAll(COLOR_RED,"");
SendClientMessageToAll(COLOR_RED,"");
SendClientMessageToAll(COLOR_RED,"");
SendClientMessageToAll(COLOR_RED,"");
SendClientMessageToAll(COLOR_RED,"");
SendClientMessageToAll(COLOR_RED,"");
SendClientMessageToAll(COLOR_RED,"");
SendClientMessageToAll(COLOR_RED,"");
SendClientMessageToAll(COLOR_RED,"");
SendClientMessageToAll(COLOR_RED,"");
SendClientMessageToAll(COLOR_RED,"");
SendClientMessageToAll(COLOR_RED,"");
SendClientMessageToAll(COLOR_RED,"");
SendClientMessageToAll(COLOR_RED,"");
SendClientMessageToAll(COLOR_RED,"");
SendClientMessageToAll(COLOR_RED,"");
SendClientMessageToAll(COLOR_RED,"");
SendClientMessageToAll(COLOR_RED,"");
SendClientMessageToAll(COLOR_RED,"");
SendClientMessageToAll(COLOR_RED,"");
SendClientMessageToAll(COLOR_RED,"");
SendClientMessageToAll(COLOR_RED,"");
SendClientMessageToAll(COLOR_RED,"");
SendClientMessageToAll(COLOR_RED,"");
SendClientMessageToAll(COLOR_RED,"");
SendClientMessageToAll(COLOR_RED,"");
SendClientMessageToAll(COLOR_RED,"");
SendClientMessageToAll(COLOR_RED,"");
SendClientMessageToAll(COLOR_RED,"");
SendClientMessageToAll(COLOR_RED,"");
SendClientMessageToAll(COLOR_RED,"");
SendClientMessageToAll(COLOR_RED,"");
SendClientMessageToAll(COLOR_RED,"");
SendClientMessageToAll(COLOR_RED,"");
SendClientMessageToAll(COLOR_RED,"");
SendClientMessageToAll(COLOR_RED,"");
SendClientMessageToAll(COLOR_RED,"");
SendClientMessageToAll(COLOR_RED,"");
SendClientMessageToAll(COLOR_RED,"");
SendClientMessageToAll(COLOR_RED,"");
SendClientMessageToAll(COLOR_RED,"");
SendClientMessageToAll(COLOR_RED,"");
SendClientMessageToAll(COLOR_RED,"");
SendClientMessageToAll(COLOR_RED,"");
SendClientMessageToAll(COLOR_RED,"");
SendClientMessageToAll(COLOR_RED,"");
SendClientMessageToAll(COLOR_RED,"");
SendClientMessageToAll(COLOR_RED,"");
SendClientMessageToAll(COLOR_RED,"");
SendClientMessageToAll(COLOR_RED,"");
SendClientMessageToAll(COLOR_RED,"");
SendClientMessageToAll(COLOR_RED,"");
SendClientMessageToAll(COLOR_RED,"");
SendClientMessageToAll(COLOR_RED,"");
SendClientMessageToAll(COLOR_RED,"");
SendClientMessageToAll(COLOR_RED,"");
SendClientMessageToAll(COLOR_RED,"");
SendClientMessageToAll(COLOR_RED,"");
SendClientMessageToAll(COLOR_RED,"");
SendClientMessageToAll(COLOR_RED,"");
SendClientMessageToAll(COLOR_RED,"");
SendClientMessageToAll(COLOR_RED,"");
SendClientMessageToAll(COLOR_RED,"");
SendClientMessageToAll(COLOR_RED,"");
SendClientMessageToAll(COLOR_RED,"");
new name[MAX_PLAYER_NAME],string[128];
GetPlayerName(playerid,name,sizeof(name));
format(string,sizeof(string),"Admin %s has cleared the chat",name);
SendClientMessageToAll(COLOR_GREEN,string);
return 1;
} -
Und was mit Enter?
-
Die Funktion fängt bei Null an zu zählen, die Lösung habe ich oben genannt.
-
Ich check meinen Fehler immernoch nicht...
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == Haupt){
if(response == 0){
new string[256];
format(string, sizeof(string), "abgebrochen");
ShowPlayerDialog(playerid, 212, DIALOG_STYLE_MSGBOX, "Buttler:",string, "Ok", "Schließen" );
}
if(listitem == 0){
}
ShowPlayerDialog(playerid, Chat, DIALOG_STYLE_LIST, "Was kann ich für Sie tun'?", "Begrüßung\nVerabschiedung\nKompliment\nEinstellungen", "Auswählen", "Schließen");
}
if(dialogid == Chat){
if(dialogid == 1)
if(listitem == 0){
new string[128];
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof (name));
format(string, sizeof(string), "[%s]: Guten Morgen Jungs und Mäddels! Wie geht es euch",name);
SendClientMessageToAll(0x0ffffff, string);
}
if(listitem == 1){
new string[128];
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof (name));
format(string, sizeof(string), "[%s]: Tschüß und Aufwiedersehen Jungs und Mäddels! Sehen uns!",name);
SendClientMessageToAll(0x0ffffff, string);
}
} -
Kann ich das LANGE/GROßE Unten stehende auch leichter machen? ALso anstatt 1oooox SendClientMessage vllt. iwie das es so ist SendClientMessage1000x oder so xD halt kürzer? Frisst zuviele Zeilen/Resourcen =/
if (strcmp("/clear", cmdtext, true, 10) == 0)
{
if(Player[playerid][admin] < 1)
{
SendClientMessage(playerid, COLOR_RED,"You must be a Moderator or higher to see clear the chat");
}
SendClientMessageToAll(COLOR_RED,"");
new name[MAX_PLAYER_NAME],string[128];
GetPlayerName(playerid,name,sizeof(name));
format(string,sizeof(string),"Admin %s has cleared the chat",name);
SendClientMessageToAll(COLOR_GREEN,string);
return 1;
}Mach:
stock ClearScreen(playerid)
{
for(new i = 0; i < 50; i++)
{
SendClientMessageToAll(COLOR_WHITE, " ");
}
//return 0;
} -
Danke nun die Fragen:
stock ClearScreen(playerid)
{
for(new i = 0; i < 50; i++) //Ist die 50 die Anzahl wie oft der Satz kommt?
{
SendClientMessageToAll(COLOR_WHITE, " ");
}
//return 0;
}bzw. wo stelle ich ein wieoft die Zahl kommt^^?
-
Genau.
Der Chat hat aber nur 12 Zeilen, glaube ich. Von daher ist 1000 zuviel :p
-
if(strcmp(cmd, "/clear", true) == 0)
{
if (PlayerInfo[playerid][admin] >= 1)
{
for (new MSG=1; MSG<=51; MSG++) SendClientMessageToAll(0," ");
GetPlayerName(playerid,sendername,sizeof(sendername));
format(string, sizeof(string), "*** Administrator %s hat den Chat gelöscht ***",sendername);
SendClientMessageToAll(COLOR_LIGHTBLUE,string);
printf(string);
}
else SendClientMessage(playerid,0, "Du bist kein Admin !");
return 1;
}