Ah ja, stimmt.
Was ist denn die größte Zahl die ich da eingeben kann, und ist das vom Nachteil wenn ich eine höhere Zahl habe aber weniger benutze, und wenn ja welche?
Ah ja, stimmt.
Was ist denn die größte Zahl die ich da eingeben kann, und ist das vom Nachteil wenn ich eine höhere Zahl habe aber weniger benutze, und wenn ja welche?
Funktioniert gut nur kleines Problem, warum wird nicht alles in meinem Dialog gezeigt? Bin mir ziemlich sicher das ich auf vielen Servern gesehen habe das die viel größer waren als meine.
Zeigt alles an bis zum der Line /enextround, danach kommt nix mehr.
CMD:ecmds(playerid,params[])
{
new string[300];
//Player Commands
strcat(string,"Player Commands:\n\n");
strcat(string,"/ejoin - Join an event.\n");
strcat(string,"/eleave - Leave an event.\n");
strcat(string,"/elist - View player who are in the event.\n\n");
//Admin Commands
strcat(string,"Admin Commands:\n\n");
strcat(string,"/eteleport - Teleport to the Event Map.\n");
strcat(string,"/ecountdown - Start a global countdown.\n");
strcat(string,"/estopcountdown - Stop the countdown.\n");
strcat(string,"/enextround - Open the doors and start the next round.\n");
strcat(string,"/erem - Remove player with the Wrong Answer.\n");
strcat(string,"/elock - Locks and unlock the doors manually.\n");
//Special thanks to
strcat(string,"Credits:\n\n");
strcat(string,"JustMe.77 - Mapping & Scripting.\n");
strcat(string,"Jeffry - Great support in Scripting.\n");
strcat(string,"Nominal - Code optimization.\n");
ShowPlayerDialog(playerid, DIALOG_EVENT, DIALOG_STYLE_MSGBOX, "Event Commands", string, "Okay", "");
}
Alles anzeigen
Warum wird der Part von Marvin nicht angezeigt? Ich mach's komplett falsch oder?
CMD:ecmds(playerid,params[])
{
ShowPlayerDialog(playerid, DIALOG_EVENT, DIALOG_STYLE_MSGBOX, "Event Commands", "/ecountdown - Start a global Countdown\n/eteleport - Teleport you to the Event Map", "Oki", "");
new string[300];
strcat(string,"Das ist die erste Zeile\n");
strcat(string,"Das ist die zweite Zeile\n");
strcat(string,"Das ist die dritte Zeile\n");
return 1;
}
Alles anzeigen
Was ist die beste Methode um ShowPlayerDialog Msgstylebox so übersichtlich wie Möglich zu gestalten? Möchte viel reinschreiben doch in eine Ganze Zeile passt das nicht. Wenn ich das alles in eine Zeile reinpacke sieht das nicht schön aus und ist unübersichtlich..
Ich weiß nicht ob dir das wirklich hilft, aber du kannst SAMP 3 mal laufen lassen wenn du dich bei 3 verschiedenen Benutzern anmeldest und jedes mal auf "Benutzer Wechseln" gehst. So mach ich das wenn ich das mal benötige
Ich habe das jetzt so gemacht wie du gesagt hast, nun treten 2 Fehler auf:
1) Die Türen sind von Anfang an schon geschlossen.
2) /ecountdown funktioniert nicht, sagt mir immer: ERROR: Nicht unlocked.
CMD:ecountdown(playerid,params[]) //Starts a countdown, after the countdown the Doors will be locked. (There is no command yet to unlock the doors).
{
if(countTimer != -1) return SendClientMessage(playerid, RED, "ERROR: Countdown is already enabled.");
if(!params[0]) return SendClientMessage(playerid, 0xFF0055FF, "Type in a time.");
if(!status) return SendClientMessage(playerid, 0xFF0000FF, "Error: Nicht unlocked.");
new time = strval(params);
if(time < 10 || time > 500) return SendClientMessage(playerid, RED, "Type in a time from 10 to 500..");
countTimer = SetTimerEx("CountDownObjekte", 1000, false, "dd", playerid, time);
return 1;
}
Yo @Jeffry
Ich habe ja beim Countdown die Funktion dass wenn der Countdown vorbei ist, sich 2 Objekte erstellen welche die Türen schließen. Wenn ich aber danach den Befehl nochmal benutze, kann ich die nicht mehr entfernen.
Also benötige ich Hilfe in entweder A) Eine Funktion erstellen welche mir nicht erlaubt den Befehl zu benutzen bis ich die nächste Runde gestartet habe, oder B) ein Befehl womit ich notfalls die Objekte löschen kann.
Der Befehl womit ich den Countdown starte sieht immer noch so aus:
CMD:ecountdown(playerid,params[]) //Starts a countdown, after the countdown the Doors will be locked. (There is no command yet to unlock the doors).
{
if(countTimer != -1) return SendClientMessage(playerid, RED, "ERROR: Countdown is already enabled.");
if(!params[0]) return SendClientMessage(playerid, 0xFF0055FF, "Type in a time.");
new time = strval(params);
if(time < 10 || time > 500) return SendClientMessage(playerid, RED, "Type in a time from 10 to 500..");
countTimer = SetTimerEx("CountDownObjekte", 1000, false, "dd", playerid, time);
return 1;
}
Die Funktionen die dazu gehören
forward CountDownObjekte(playerid, count);
public CountDownObjekte(playerid, count)
{
count--;
if(count <= 0)
{
KillTimer(countTimer);
countTimer = -1;
for(new i=0; i<MAX_PLAYERS; i++) PlayerPlaySound(i, 1057, 0.0, 0.0, 0.0); //GO - Sound
gObj[0] = CreateObject(1498,1866.485,-2496.830,5047.411,0.000,0.000,36.199,300.000);
SetObjectMaterial( gObj[0], 0, 5150, "wiresetc_las2", "ganggraf01_LA_m", 0);
SetObjectMaterialText(gObj[0], "LOCKED", 0, 50, "Calibri", 15, 1, -65536, 0, 1);
gObj[1] = CreateObject(1498,1841.824,-2495.508,5047.339,0.000,0.000,335.900,300.000);
SetObjectMaterial( gObj[1], 0, 5150, "wiresetc_las2", "ganggraf01_LA_m", 0);
SetObjectMaterialText(gObj[1], "LOCKED", 0, 50, "Calibri", 15, 1, -65536, 0, 1);
GameTextForAll( "Go!" , 1000, 3 );
return 1;
}
new str[16];
format(str, sizeof(str), "%d", count);
GameTextForAll( str, 5000, 4 );
for(new i=0; i<MAX_PLAYERS; i++) PlayerPlaySound(i, 1056, 0.0, 0.0, 0.0); //Timer - Sound
countTimer = SetTimerEx("CountDownObjekte", 1000, false, "dd", playerid, count);
return 1;
}
Alles anzeigen
Und den Befehl womit ich die Objekte manuell erstellen und löschen kann, aber wenn ich die Objekte mit dem Countdown erstelle, kann ich sie nicht mit /elock löschen..
CMD:elock(playerid,params[]) //Test command with which you can lock and unlock the doors.
{
static bool:status;
if(!status)
{
gObj[0] = CreateObject(1498,1866.485,-2496.830,5047.411,0.000,0.000,36.199,300.000);
SetObjectMaterial( gObj[0], 0, 5150, "wiresetc_las2", "ganggraf01_LA_m", 0);
SetObjectMaterialText(gObj[0], "LOCKED", 0, 50, "Calibri", 15, 1, -65536, 0, 1);
gObj[1] = CreateObject(1498,1841.824,-2495.508,5047.339,0.000,0.000,335.900,300.000);
SetObjectMaterial( gObj[1], 0, 5150, "wiresetc_las2", "ganggraf01_LA_m", 0);
SetObjectMaterialText(gObj[1], "LOCKED", 0, 50, "Calibri", 15, 1, -65536, 0, 1);
SendClientMessage(playerid,0xFF0055FF,"Rooms locked");
}
else
{
SendClientMessage(playerid,0xFF0055FF,"Rooms unlocked");
for(new i=0; i<sizeof(gObj); i++)
{
if(gObj[i] != -1) DestroyObject(gObj[i]);
gObj[i] = -1;
}
}
status = !status;
return 1;
}
Alles anzeigen
Edit: Vergessen die Funktion zu posten für die nächste Runde.
Kann mir jemand sagen wieso der Sound immer nur bei jedem zweiten mal ertönt?
CMD:enextround(playerid,params[])
{
SendClientMessageToAll(RED,"Rooms unlocked, next round will start soon!");
static bool:status;
if(!status)
{
for(new i=0; i<sizeof(gObj); i++)
{
if(gObj[i] != -1) DestroyObject(gObj[i]);
gObj[i] = -1;
PlayerPlaySound(i, 1057, 0.0, 0.0, 0.0);
}
}
status = !status;
return 1;
}
Alles anzeigen
Danke an euch beiden
Habe noch ein Countdown Befehl hier rumliegen, der benutzt aber selbsterstelle Textdraws, möchte lieber einen haben der mit GameTextStyles arbeitet.
Sieht zurzeit so aus:
CMD:ecountdown(playerid,params[]) //Starts a countdown, after the countdown the Doors will be locked.
{
if(countTimer != -1) return SendClientMessage(playerid, RED, "ERROR: Countdown is already enabled.");
if(!params[0]) return SendClientMessage(playerid, 0xFF0055FF, "Type in a time.");
new time = strval(params);
if(time < 10 || time > 500) return SendClientMessage(playerid, RED, "Type in a time from 10 to 500..");
countTimer = SetTimerEx("CountDownObjekte", 1000, false, "dd", playerid, time);
return 1;
}
forward CountDownObjekte(playerid, count);
public CountDownObjekte(playerid, count)
{
count--;
if(count <= 0)
{
KillTimer(countTimer);
countTimer = -1;
for(new i=0; i<MAX_PLAYERS; i++) PlayerPlaySound(i, 1057, 0.0, 0.0, 0.0); //GO - Sound
gObj[0] = CreateObject(1498,1866.485,-2496.830,5047.411,0.000,0.000,36.199,300.000);
SetObjectMaterial( gObj[0], 0, 5150, "wiresetc_las2", "ganggraf01_LA_m", 0);
SetObjectMaterialText(gObj[0], "LOCKED", 0, 50, "Calibri", 15, 1, -65536, 0, 1);
gObj[1] = CreateObject(1498,1841.824,-2495.508,5047.339,0.000,0.000,335.900,300.000);
SetObjectMaterial( gObj[1], 0, 5150, "wiresetc_las2", "ganggraf01_LA_m", 0);
SetObjectMaterialText(gObj[1], "LOCKED", 0, 50, "Calibri", 15, 1, -65536, 0, 1);
TextDrawHideForAll(Textdraw0);
return 1;
}
new str[16];
format(str, sizeof(str), "%d", count);
TextDrawSetString(Textdraw0, str);
for(new i=0; i<MAX_PLAYERS; i++) PlayerPlaySound(i, 1056, 0.0, 0.0, 0.0); //Timer - Sound
TextDrawShowForAll(Textdraw0);
countTimer = SetTimerEx("CountDownObjekte", 1000, false, "dd", playerid, count);
return 1;
}
Alles anzeigen
Yo, hab ne kleine Frage.
Habe folgenden Befehl:
CMD:orem(playerid,params[])
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(!IsPlayerConnected(i) || IsPlayerNPC(i)) continue;
if(IsPlayerInRangeOfPoint(i, 5, 1869.0564,-2499.7913,5048.4761))
{
SetPlayerPos(i, 1857.0629,-2477.5789,5048.4761);
SendClientMessage(playerid,RED,"Wrong answer!");
}
}
return 1;
}
Alles anzeigen
Mein Problem ist, wenn ich jemanden aus der Zone entferne, bekomme ich 2 mal die Nachicht, aber er keine.. Ich möchte das aber so haben das ALLE die Nachicht erhalten die entfernt werden.
wie gesagt dann steht in der konsole nur dass das plugin nicht geladen wurde
Stell sicher das dass Plugin in der server.cfg eingetragen ist, und wichtig ist, falls du ein Linuxserver besitzt muss die Endung am Ende vorhanden sein, sprich crashdetect.so etc..
Dann muss der Server halt die komplette Schleife durchgehen, auch wenn nur einer connected ist.
Warum hast du die Abfragen denn raus genommen?
Sagt mir "error 017: undefined symbol "IsPlayerConnnected" obwohl es doch eigentlich definiert ist.
Das kannst du so machen:
Cfor(new i = 0; i < MAX_PLAYERS; i++) { if(!IsPlayerConnnected(i) || IsPlayerNPC(i)) continue; if(IsPlayerInRangeOfPoint(i, range, x, y, z)) { SetPlayerPos(i, x_zu, y_zu, z_zu); } }
range, x, y, z und x_zu, y_zu, z_zu musst du natürlich jeweils mit den Koordinaten bzw. Werten ersetzen, die da drin stehen sollen.
Hey, danke erstmal für den netten Code. Ich habe daraus ein Befehl gemacht, nur hatte ich ein kleines Problem habe es aber behoben indem ich die IsPlayerConnected Abfrage rausgemacht habe. Meine Frage ist, kann das zu irgendwelchen Problem kommen?
Befehl sieht so aus:
Gibt's ne Funktion mit der ich ein von mir bestimmten Bereich Leute die sich darin befinden zu entfernen bzw. zu einer bestimmten Position teleportiere?
Nette Vorstellung, aber ma ne Frage, wisst ihr was 420 bedeutet ?
Nein wir benutzen diesen Tag ohne zu wissen was er bedeutet.. /Ironie off
Und danke, obwohl 90 % der Grafiken wegen Pic-Upload fehlen.
Ja, das habe ich auch bemerkt. Die Grafiken besitze ich nicht mehr deswegen bin ich auf der Suche nach freiwilligen Designer die das gerne machen würden
Edit:
-Einige kleine Updates der Woche:
-Nametags während Events ausgeschaltet (verhindert Teaming)
-Befehl um eine Meteranzahl anzugeben welche den Spieler aus dem Event entfernt wenn er z.B. 5 Meter unter der Eventposition ist (für GoKart Events auf Dächern. Fällt er = Remove vom System)
- Möglichkeit einzustellen wie viel Blut man erhält wenn man einen Kill erzielt
- Neue Zaun Typen (Mehrere gleichzeitig verwendbar)
- Area51 Zaun komplett entfernt
- 2 neue modifizierte Fahrzeuge hinzugefügt (erwerbbar)
- Und vieles mehr (die Liste betrifft nur diese Woche)
Außerdem beschäftigt sich Pottus wieder mit der Entwicklung unseres Gamemodes um nicht alles auf Slice zu lasten. Doch er bleibt weiterhininaktiv im englischem SAMP Forum.
Update:
Halloween Season hat nun begonnen, holt euch euren Kürbis ab und erhaltet coole Items, oder auch böse Überraschungen
Edit: IPs ausgeblendet
Edit: Push2
Edit: Halloween Saison eröffnet!!
Wir updaten auf Version v-420.120, Änderungen Ingame mit /changes aufgelistet.
Schaffen wir heute nach einiger Zeit wieder die 100 + Marke?
Die Farbe habe ich nicht gesetzt, nein. Ich habe dein Fix nun eingebunden, hat sich zwar was verändert aber nicht im positivem Sinne.
Schaut so aus:
[17:34:39] # (1) ÿ {00005B}ttttttt
Code so:
Yo, hab mal ne mini Frage:
Ich möchte mein Admin Chat in diesem Format:
# (12) JustMe.77:Hey, alles klar?
Ich habe da nach GetPlayerColor gefunden doch kriege das irgendwie mit der Farbe nicht hin, die ist dann immer Schwarz. Die Farbe soll immer die sein die der Spieler auch in der Online Liste hat.
if(GetPlayerGAdminLevel(playerid) >= 1)
{
if(text[0] == '#')
{
new string[144];
format(string, sizeof(string), "# (%i) %s {%06x} %s ", playerid ,GetPlayerColor(playerid) >>> 8 , ReturnPlayerName(playerid), text[1]);
SendClientMessageForAdmins(0xF209E1FF, string);
return 0;
}
}
Vielleicht liegt es einfach an den Standard Einstellungen von GTA.
Ganz wichtig ist FrameLimiter ausschalten.
Nachdem du das gemacht hast, würde ich mir ein Asiloader holen und crashes.asi. Dann kannst du mehr als 100 FPS haben.
Gibt's schon irgendwas neues? Habt ihr euch für etwas entschieden ?