Wenn jetzt jemand schon COLOR_RED als Makro definiert hat, bekommt er einen Warning ![]()
Du solltest es wenn schon so machen:
#if !defined COLOR_RED
#define COLOR_RED 0xFF5C33FF //Rote Farbe für SendClientMessage
#endif
mfg. ![]()
Wenn jetzt jemand schon COLOR_RED als Makro definiert hat, bekommt er einen Warning ![]()
Du solltest es wenn schon so machen:
#if !defined COLOR_RED
#define COLOR_RED 0xFF5C33FF //Rote Farbe für SendClientMessage
#endif
mfg. ![]()
Du kannst dir ja mal evtl meine Include anschauen: [ INCLUDE ] Kleine Tor Vereinfachung
PS: Dein Fehler liegt beim 2. MoveObject, da hast du anstatt einem , einen . gesetzt bei den Koordinaten ![]()
mfg. ![]()
Schreibe es mal so:
if(!strcmp("/afk",cmdtext,true))
{
new string[128];
if(!afk[playerid]) {
format(string,sizeof(string),"%s ist in den afk Modus gegangen",SpielerName(playerid));
Alle(-0,string);
SCM(playerid,-1,"Benutze /AFK um wieder zu kommen");
TogglePlayerControllable(playerid,0);
afk[playerid] = true;
}
else {
format(string,sizeof(string),"%s ist wieder zurück",SpielerName(playerid));
Alle(-0,string1);
TogglePlayerControllable(playerid,1);
afk[playerid] = false;
}
return 1;
}
//Edit: deklariere es so: new bool:afk[MAX_PLAYERS];
mfg. ![]()
bekomm ich die nicht iwie anders?
Nein, es wird schon so gemacht, aber es hat schon einer mal gemacht und als Filterscript released ![]()
Hier: [ FILTERSCRIPT ] Blinker-System UPDATED v. 2.6.1
mfg. ![]()
Fügt ein Anti-DeAMX Hinzu =)
So ein Schwachsinn ![]()
Zu deinem Script...naja, teile sehen zusammenkopiert aus und du solltest mal mehr Arrays benutzen und nicht immer:
zoll1,
zoll2,
zoll3,
zoll4,
zoll5,
//sondern einfach:
zoll[6]
mfg. ![]()
Ah JA und woher bekomme ich das FILTERSCRIPT???
Entweder du googelst bis du fündig wirst oder du schreibst es schnell selbst ![]()
mfg. ![]()
Du speichertst die Server.cfg einfach als Variable. Dann kannst du diese auch Ingame ändern!
Dann wird sie aber nicht beim Restart übernommen ![]()
Theoretisch könnte man das machen mit folgender Pfad angabe: (nicht getestet)
und dann könnte man die Server.cfg editieren sprich so:
new File:f = fopen("../server.cfg",io_write);
fwrite(f,"Alles gelöscht");
fclose(f);
//In der Server.cfg würde jetzt stehen: "Alles gelöscht"
mfg. ![]()
Ich schreib dir mal eins, hier:
ocmd:countdown(playerid,params[]) {
new string[128],count;
if(sscanf(params,"d",count)) return SendClientMessage(playerid,rot,"Verwendung: /countdown [Zeit]");
Start_Countdown(count);
format(string,128,"Du hast den Countdown für %d Sekunden laufen lassen !",count);
SendClientMessage(playerid,blau,string);
return 1;
}
forward Start_Countdown(count);
public Start_Countdown(count) {
if(count > 1) format(string,128,"~r~%d",count);
else if(!count) format(string,128,"~g~Go Go Go"); //Text evtl ändern
else return 1;
GameTextForAll(string,1000,5);
new zahl = count--;
SetTimerEx("Start_Countdown", 1000, 1, "d",zahl);
return 1;
}
Versuchs mal ![]()
//Edit: ja den GameText doch nur für 1sek anzeigen lassen ![]()
mfg. ![]()
Sagt mal, finde das ja cool was ihr da so alles mit ein programmiert, aber ich habe dazu mal ein paar Fragen:
1. Ein paar Dinge die ihr da macht sind verboten und Kalcor wird diese Server bestimmt Blacklisten z.B. das mit den Bots...
2. Werdet ihr das dann als Plugin veröffentlichen ?
3. Lohnt es sich denn das zu machen, wenn ihr doch wisst das es verboten ist ?!
Ich verstehe den Sinn nicht dahinter, außerdem gibt es schon ein paar Sachen, wie z.B. Player seitige Gravitation hat Y_LESS schon mal veröffentlicht oder das mit den Bots...^^
mfg. ![]()
Falls doch noch Probleme auftreten sollten, schau dir das mal an: [ INCLUDE ] Kleine Tor Vereinfachung
mfg. ![]()
Bei dir müssen nun aber 4 online sein.
Ja...count ist ja 0 und net 1..passiert halt so abfragen:
if(count >= 3) return true;
oder einfach so:
if(count == 3) return true;
mfg. ![]()
Nein ![]()
Du fragst ab ob die Schleife bei playerid 3 ist etc... ![]()
So sollte das aussehen:
stock bool:Are3Online() {
new count;
for(new i; i<MAX_PLAYERS; i++) {
if(!IsPlayerConnected(i)) continue;
if(PlayerInfo[i][pFrak] == 3) count++; //PlayerInfo[i][pFrak] halt anpassen, wie du die Gang da einstellst
if(count > 3) return true;
}
return false;
}
//So abfragen
if(Are3Online()) {
//Es sind 3 Leute aus der Gang online
}
else {
//Hier nicht
}
mfg. ![]()
Man sieht, das du den Befehl zusammenkopiert hast und das richtig schlecht, so langsam solltest du doch mal etwas besser scripten können...
Schreibe das mal so:
if(!strcmp(cmdtext,"/tban",true))
{
tmp = strtok(cmdtext, idx);
if(!tmp[0]) return SendClientMessage(playerid, COLOR_GRAD2, "Benutze: /tban [Spielerid] [Zeit]");
new pid = strval(tmp);
tmp = strtok(cmdtext, idx);
if(!tmp[0]) return SendClientMessage(playerid, COLOR_GRAD2, "Benutze: /tban [Spielerid] [Zeit]");
new time = strval(tmp), name[MAX_PLAYER_NAME];
GetPlayerName(pid,name,sizeof(name));
format(string,sizeof(string),"Du hast den Spieler %s für %d Minuten gebannt!",name,time);
SendClientMessage(playerid,WHITE,string);
GetPlayerName(playerid,name,sizeof(name));
format(string,sizeof(string),"Der Admin %s hat dich für %d Minuten vom Server gebannt!",name,time);
SendClientMessage(pid,WHITE,string);
TBan(pid,time);
return 1;
}
Falls das immernoch nicht gehen sollte, poste mal bitte die Funktion TBan(pID,time); ![]()
mfg. ![]()
Genauso kann ein erneutes Einbauen von a_samp zu Problemen führen, falls dein Include erst nach neuen Definitions folgt.
Nicht wirklich ![]()
In der a_samp wird dann nämlich #endinput verwendet ![]()
mfg. ![]()
Den Sinn, dass man a_samp nochmals einbaut wird mir nicht klar.
Nicht ? Manche Leute sind so schlau und binden so ein Include so ein:
#include <Easy_Gate>
#include <a_samp>
Rotierende Objecte sind hier nicht möglich.
Doch, aber nicht richtig, siehe: [ INCLUDE ] Kleine Tor Vereinfachung
mfg. ![]()
Wie schaut es aus, wenn einer das tor in eine andere richtung öffnen will als in der Z achse?
Ja, da muss man dann selber rann, das würde dann so aussehen:
new obj = GetGate(playerid);
if(obj == -1) return SendClientMessage(playerid,rot,"Du befindest dich an keinem Tor !");
MoveObject(obj,neuX,neuY,neuZ,4.0);
return 1;
Muss man halt noch mit MoveObject machen ![]()
mfg. ![]()
//Edit: Omg, hatte da Buchstaben vertauscht
Habe das alles jetzt mal getestet und so funktioniert es
sry nochmal ![]()