würde ich auch gerne wissen
[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
-
-
Kannst dir'n Client programmieren mit dem man nur spielen kann wenn man diesen hat. Dieser durchsucht einfach den GTA SA Ordner.
So machts ein anderer Serevr.
Muss aber jeder runterladen und wird auch oft als virus angezeigt. -
Wie erstell ich eine Schleife um abzufragen ob einer der Spieler in einer bestimmten Fraktion ist?
Also zB. sind Cops unter den 10 Spielern?
Wieviel ist egal, nur ob welche da sind.
- Tom
-
würde sagn mit IsPlayerConnected?
-
Alles anzeigen
Wie erstell ich eine Schleife um abzufragen ob einer der Spieler in einer bestimmten Fraktion ist?
Also zB. sind Cops unter den 10 Spielern?
Wieviel ist egal, nur ob welche da sind.
- Tom
for(new i=0; i< MAX_PLAYERS; i++)
{
if(BlaCop[i] == 1)
{
//cop gefunden
}
}hier eine Beispiel-Funktion um die Cops zu zählen: GetCopAnzahl()
GetCopAnzahl()
{
new amount = 0;
for(new i=0; i< MAX_PLAYERS; i++)
{
if(BlaCop[i] == 1 && IsPlayerConnected(i))
{
//cop gefunden
amount++;
}
}
return amount;
}if(GetCopAnzahl() > 3)//gibt es mehr als 3 cops ?
oder besser wenn du nur fragen willst ob EINER existiert:
IstEinCopDa()
{
for(new i=0; i< MAX_PLAYERS; i++)
{
if(BlaCop[i] == 1 && IsPlayerConnected(i))
{
return 1;
}
}
return 0;
}if(IstEinCopDa()) //ja nein ?
-
@d0.: einfach
for(new i=0; i< MAX_PLAYERS; i++)
{
if(BlaCop[i] == 1)
{
//cop gefunden
}
} -
Aber trotzdem würde mich mal interessieren wie die das hinbekommen haben das ich S0beit drinne hatte..
ohne das ich gecheatet habe. -
Aber trotzdem würde mich mal interessieren wie die das hinbekommen haben das ich S0beit drinne hatte..
ohne das ich gecheatet habe.
Hatte der Server nen Programm wo du Installieren/runterladen musstest? -
Hatte der Server nen Programm wo du Installieren/runterladen musstest?
nope -
Servus Leute,
angenommen ich habe einen makeadmin Befehl. Wie kriege ich die Funktionen die man dort eingibt unter makeadmin
unter einen Dialog?
Sprich ich gebe /makeadmin ein, bei ihm öffnet sich ein Dialog ect das habe ich alles, aber wie kriege ich die Funktionen die eig. bei makeadmin abgefragt werden unter den Dialog?
makeleader sieht zB so ausocmd:makeadmin(playerid,params[])
{
new pID, rank, string[500],string2[500];
if(!IsPlayerAnAdmin(playerid, 0)) return SendClientMessage(playerid, ROT,"Dein Rang reicht nicht aus um diese Funktion zu benutzen.");
if(sscanf(params,"ui",pID,rank)) return SendClientMessage(playerid, ROT,"Benutzung: /Makeadmin [ID] [Rang[1-5]]");
if(rank<0||rank>5) return SendClientMessage(playerid, ROT,"Bitte gebe einen gültigen Rang an. [1-5]");
SendClientMessageToAll( GELB," [NEWS].::International Mini-Games::.[NEWS]");
format(String, sizeof(String),"#COL_MAGENTA"Spieler %s "#COL_YELLOW"wurde von "#COL_MAGENTA"%s "#COL_YELLOW"zum "#COL_MAGENTA"[IMG]Supporter Rang: %d "#COL_YELLOW"ernannt.",SpielerName(pID),SpielerName(playerid), rank);
SendClientMessageToAll(grün, String);
SetPVarInt(pID, "Adminlevel",rank);
SpielerSpeichern(pID);
Emailcheck[playerid] = 1;Wie kriege ich
SendClientMessageToAll(GELB," [NEWS].::International Mini-Games::.[NEWS]");
format(String, sizeof(String),"#COL_MAGENTA"Spieler %s "#COL_YELLOW"wurde von "#COL_MAGENTA"%s "#COL_YELLOW"zum "#COL_MAGENTA"[IMG]Supporter Rang: %d "#COL_YELLOW"ernannt.",SpielerName(pID),SpielerName(playerid), rank);
SendClientMessageToAll(grün, String);
SetPVarInt(pID, "Adminlevel",rank);
SpielerSpeichern(pID);das unter' den Dialog sodass der rank angezeigt wird und der rank auch gesetzt wird.
/e2 -
Alles anzeigen
Servus Leute,
angenommen ich habe einen makeadmin Befehl. Wie kriege ich die Funktionen die man dort eingibt unter makeadmin
unter einen Dialog?
Sprich ich gebe /makeadmin ein, bei ihm öffnet sich ein Dialog ect das habe ich alles, aber wie kriege ich die Funktionen die eig. bei makeadmin abgefragt werden unter den Dialog?
makeleader sieht zB so ausocmd:makeadmin(playerid,params[])
{
new pID, rank, string[500],string2[500];
if(!IsPlayerAnAdmin(playerid, 0)) return SendClientMessage(playerid, ROT,"Dein Rang reicht nicht aus um diese Funktion zu benutzen.");
if(sscanf(params,"ui",pID,rank)) return SendClientMessage(playerid, ROT,"Benutzung: /Makeadmin [ID] [Rang[1-5]]");
if(rank<0||rank>5) return SendClientMessage(playerid, ROT,"Bitte gebe einen gültigen Rang an. [1-5]");
SendClientMessageToAll( GELB," [NEWS].::International Mini-Games::.[NEWS]");
format(String, sizeof(String),"#COL_MAGENTA"Spieler %s "#COL_YELLOW"wurde von "#COL_MAGENTA"%s "#COL_YELLOW"zum "#COL_MAGENTA"[IMG]Supporter Rang: %d "#COL_YELLOW"ernannt.",SpielerName(pID),SpielerName(playerid), rank);
SendClientMessageToAll(grün, String);
SetPVarInt(pID, "Adminlevel",rank);
SpielerSpeichern(pID);
Emailcheck[playerid] = 1;Wie kriege ich
SendClientMessageToAll(GELB," [NEWS].::International Mini-Games::.[NEWS]");
format(String, sizeof(String),"#COL_MAGENTA"Spieler %s "#COL_YELLOW"wurde von "#COL_MAGENTA"%s "#COL_YELLOW"zum "#COL_MAGENTA"[IMG]Supporter Rang: %d "#COL_YELLOW"ernannt.",SpielerName(pID),SpielerName(playerid), rank);
SendClientMessageToAll(grün, String);
SetPVarInt(pID, "Adminlevel",rank);
SpielerSpeichern(pID);das unter' den Dialog sodass der rank angezeigt wird und der rank auch gesetzt wird.
/e2Listitem switchen. (OnDialogResponse)
Variable für eingegeben ID im Dialog erhöhen > pID.
SendClientMessage(pID, Farbe, "xYz");
Meinst du das?
-
Ich möchte die Funktionen die aktuell unter /makeleader stehen am Ende eines Dialoges abrufen.
mit makeleader bestimmt man ja aktuell den rank und dann öffnet sich auch der dialog. Aber am Ende des Dialoges muss ich ja alles neu definieren und dann stehen Sachen wie rank wieder auf 0 die zu Anfang bei makeleader eingegeben wurden.
Wie krieg ich die oben definierten Sachen so unter einen Dialog das die Variablen rank gleich bleiben -
Noch eine Frage zu meinem Post, das Problem ist gelöst aber muss man die Adminränge sprich "rank" der oben angegeben ist in MAX_PLAYERS & [playerid] setzen?
-
Alles anzeigen
for(new i=0; i< MAX_PLAYERS; i++)
{
if(BlaCop[i] == 1)
{
//cop gefunden
}
}hier eine Beispiel-Funktion um die Cops zu zählen: GetCopAnzahl()
GetCopAnzahl()
{
new amount = 0;
for(new i=0; i< MAX_PLAYERS; i++)
{
if(BlaCop[i] == 1 && IsPlayerConnected(i))
{
//cop gefunden
amount++;
}
}
return amount;
}if(GetCopAnzahl() > 3)//gibt es mehr als 3 cops ?
oder besser wenn du nur fragen willst ob EINER existiert:
IstEinCopDa()
{
for(new i=0; i< MAX_PLAYERS; i++)
{
if(BlaCop[i] == 1 && IsPlayerConnected(i))
{
return 1;
}
}
return 0;
}if(IstEinCopDa()) //ja nein ?
Ich habs jetzt so:
stock IsCopOn()
{
for(new i=0; i< MAX_PLAYERS; i++)
{
if(IsACop[i])
{
return 1;
}
}
return 0;
}Aber wenn ich die Funktion benutze kommt ein Error:
Benutzen tu ich die Funktion so:
if(!IsCopOn) return ....
- Tom
-
stock IsCopOn()
{
for(new i=0; i< MAX_PLAYERS; i++)
{
if(IsACop(i))
{
return 1;
}
}
return 0;
} -
stock IsCopOn() { for(new i=0; i< MAX_PLAYERS; i++) { if(IsACop(i)) { return 1; } } return 0; }
Geht immernoch nicht.
- Tom
-
Geht immernoch nicht.
- Tom
Das hier ist der eigentliche Fehler
if(!IsCopOn) return ....
...so:
if(!IsCopOn()) return .... -
Ok danke.
Vorher ging das nicht da hatte ich nachher noch mehr Fehler, hatte aber die Klammern vergessen.
- Tom
Edit: Wie kann ich einen Timer für playerid killen?
SetTimerEx("Bankraub",3000,1,"d",playerid);KillTimer(Bankraub(playerid));
- Tom
-
Wie kann ich das machen das wen ich ein Befehl eingebe denn es nicht gibt da kommt
"Diesen Befehl gibt es nicht!"
-
Wie kann ich einen Timer für playerid killen?
Mit einer Variable:
//oben:
new BankraubTimer[MAX_PLAYERS];
//Benutzung:
BankraubTimer[playerid] = SetTimerEx(...);
Und dann:
KillTimer(BankraubTimer[playerid]);EliteBread:
Bei OnPlayerCommandText statt dem return 0; am ende dieses hier:
return SendClientMessage(playerid, COLOR_RED, "Diesen Befehl gibt es nicht!"); -
