Wie wärs mit:
if(INI_ReadInt("bErsteller") == 1 || IsPlayerAdmin(playerid))
?
Wie wärs mit:
if(INI_ReadInt("bErsteller") == 1 || IsPlayerAdmin(playerid))
?
Moinsen.
Kleine Frage...
Wie kann ich einen String für einen Dialog beispielsweise sooft formatieren wie eine Bedingung ist?
Beispiel:
for(new var=0; var < MAX_RADIO_CHANNELS; var++)
{
format(pfad, sizeof pfad, "/RadioChannels/%d.ini", number);
format(var1, sizeof var1, "%s", dini_Get(pfad, "Channelname"));
}
return ShowPlayerDialog(playerid, DIALOG_RADIO, DIALOG_STYLE_MSGBOX, "Radio: Wählen sie ihren Channel!", var1, "Anhoeren", "Verlassen");
Geht aber nicht wirklich.
Also ich will sooft wie Variable MAX_RADIO_CHANNELS gross ist die Schleife durchgehen, danach soll pro "erstellter datei" der channelname ausgelesen werden.
der soll dann im string formatiert werden damit eben danach zb folgendes steht:
ZitatChannel 1
Channel 2
Das ganz fürn Listdialog. Wieso aber öffnet sich kein Dialog?
Alles anzeigenOb Aaron da Recht hat ka...
Ich würde dir ZCMD empfehlen ist nach meinem Wissen die schnellste CMD Variante
dazu einfach die ZCMD Include von hier : http://forum.sa-mp.com/showthread.php?t=91354
in den Includes Ordner und oben ins Script #include <zcmd>
Nun einfach das
if(strcmp(cmd, "/createh", true) == 0)
mit dem ersetzen :
COMMAND:createh(playerid,params[])
Wichtig alle estra CMD Arten wie ZCMD dürfen nicht unter dem Callback
public OnPlayerCommandText(playerid, cmdtext[])
{
return 1;
}
stehen sie müssen immer außerhalb eines Callbacks stehen Beispiel :
public OnPlayerCommandText(playerid, cmdtext[])
{
return 1;
}
COMMAND:createh(playerid,params[])
{
if(IsPlayerConnected(playerid))
{
if(pInfo[playerid][pAdminlevel] != 4) return SendClientMessage(playerid, COLOR_RED, "Du bist nicht befugt diesen Befehl zu benutzten.");
new priceh,inter;
if(sscanf(params,"ii",priceh,inter)) return SendClientMessage(playerid, COLOR_RED, "Benutzung: /createh [Preis] [Interrior]");
if(priceh != 1) return SendClientMessage(playerid, COLOR_GREY, "Das Haus kann nicht weniger als 1$ kosten.");
if(inter < 0 || inter > 15) return SendClientMessage(playerid, COLOR_GREY, "Die Interior-ID kann nicht unter 0 und über 15 sein.");
new Float:X,Float:Y,Float:Z;
GetPlayerPos(playerid, X,Y,Z);
format(string, sizeof(string), "Du hast ein Haus welches %d kostet mit dem Interrior: %d erstellt.",priceh,inter);
SendClientMessage(playerid, COLOR_GREY, string);
CreateHaus(X,Y,Z,priceh,"Keiner",inter);
}
return 1;
}
MFG
Kollege, gewähn dir mal was an...
Wenn du schreibst
if(pInfo[playerid][pAdminlevel] != 4) return SendClientMessage(playerid, COLOR_RED, "Du bist nicht befugt diesen Befehl zu benutzten.");
Kann NUR Adminrang 4 es ausführen.
Es müsste heissen:
if(pInfo[playerid][pAdminlevel] < 4) return SendClientMessage(playerid, COLOR_RED, "Du bist nicht befugt diesen Befehl zu benutzten.");
Selbiges beim Geld.
Du hast:
if(priceh != 1) return SendClientMessage(playerid, COLOR_GREY, "Das Haus kann nicht weniger als 1$ kosten.");
So KANN das Haus nur 1$ kosten. Bei mehr oder weniger, gibts ne Fehlermeldung.
Alles anzeigenWeil sscanf nicht mit dem standart strcmp geht sondern nur mit ocmd, dcmd etc
Nimm einfach meins.
Achja.
bei deinem format
%d == float (kommazahl)
%i == integer (ganzzahl)
ergo -> benutz %i statt %d
Weil sscanf nicht mit dem standart strcmp geht sondern nur mit ocmd, dcmd etc
Nimm einfach meins.
Achja.
bei deinem format
%d == float (kommazahl)
%i == integer (ganzzahl)
ergo -> benutz %i statt %d
Angenommen du hast Sscanf und OCMD.
ocmd:createh(playerid, params[]) //wenn /createh geschrieben wird
{
if(pInfo[playerid][pAdminlevel] < 4)
{
SendClientMessage(playerid, COLOR_RED, "Du bist nicht befugt diesen Befehl zu benutzten.");
return 1;
}
new priceh, inter;
if(sscanf(params, "ii", priceh, inter)) // wird priceh oder inter nicht ausgefüllt (zb nur /createh 0 statt /createh 0 1
return SendClientMessage(playerid, COLOR_RED, "Benutzung: /createh [Preis] [Interrior]");
if(priceh < 1)
return SendClientMessage(playerid, COLOR_GREY, "Das Haus kann nicht weniger als 1$ kosten.");
if(inter < 0 || inter > 15)
return SendClientMessage(playerid, COLOR_GREY, "Die Interior-ID kann nicht unter 0 und über 15 sein.");
new Float:X,Float:Y,Float:Z;
GetPlayerPos(playerid, X,Y,Z);
format(string, sizeof(string), "Du hast ein Haus welches %d kostet mit dem Interrior: %d erstellt.",priceh,inter);
SendClientMessage(playerid, COLOR_GREY, string);
CreateHaus(X,Y,Z,priceh,"Keiner",inter);
}
sag zeile
Ach du Scheisse, deine Beiträge bestehen allesamt aus solch einem Müll kannst du bitte verschwinden?!
@Topic: Bitte mal deinen gesamten "/lock" Befehl posten ich mach dir das dann.
Mal ganz ehrlich.
Wie benutzt du nicht einfach sscanf? Es ist nicht sonderlich schwer, und es verkleinert deinen Befehl enorm wodurch du eine bessere Übersicht behälst.
Zu deinem Problem kann ich dir aber leider nicht weiterhelfen.
if(PlayerInfo[i][pAdmin] >= 1 && PlayerInfo[i][pAdmin] < 2000)
{
GetPlayerName(i, sendername, sizeof(sendername));
format(string,sizeof(string)," %d* Admin: %s[%d] Nummer: %d",PlayerInfo[i][pAdmin],sendername,i,PlayerInfo[i][pPnumber]);
SendClientMessage(playerid, COLOR_GRAD2, string);
}
Thread gemeldet!
Man darf laut Blizzard keinen WoW Account verkaufen/tauschen.
Dann melds Blizzard aber doch nicht dem Forenteam -.-
Hauste.
Wobei es aber echt niemand intressiert. Was denkst du wieso es keine "Ich verlasse das Forum" Section gibt?
ZitatIhr wisst noch nicht mal was Azzlack heisst, ihr Helden
Hiess das nicht "Arschlecker"?
Kann mich auch irren, sorry.
Hallo. Ich arbeite derzeit an einem kleinen System...
Nun hab ich zb einen Define (MAX_RADIO_CHANNELS).
Wie frage ich nun ab wieviele Dateien in einem ordner (bsp /scriptfiles/Channels) sind?
Thx in advance.
Ich versteh sehr wohl was von Rap und hör auch selber welchen aber auf solche Chamela-Haftbefäääähl Kanacken Rapper kann ich verzichten.
Ersetz es halt durch 22.
Max_PLAYER_NAME == 22
if(strcmp(cmdtext, "/event", true) == 0)
{
if(EventAktiv == 1)
{
new sendername[MAX_PLAYERS_NAME];
new string[250];
SetPlayerPos(playerid, EventPosX, EventPosY, EventPosZ);
SendClientMessage(playerid, Grau, "Du hast dich zum Event telepotiert!");
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "%s hat sich zum Event geportet!", sendername));
SendAdminMessage(GELB, string);
}
else
{
SendClientMessage(playerid, ROT, "Es ist kein Event am Laufen!!");
}
return 1;
}
Wie die Bild sagen würde: Scheisse.
if(strcmp(cmd, "/frakrc", true) == 0 || strcmp(cmd, "/frc", true) == 0)
{
if(PlayerInfo[playerid][pLeader] == 2002)
{
for(new pv = 0; pv < sizeof(PolizeiVehs); pv++)
{
if(IsVehicleEmpty(pv))
SetVehicleToRespawn(PolizeiVehs[pv]);
}
SendClientMessage(playerid, COLOR_GRAD1, "Du hast deine Fraktionsautos erfolgreich zurückgespawnt!");
}
return 1;
}
IsVehicleEmpty(carid)
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(!IsPlayerConnected(i)) continue;
if(IsPlayerInVehicle(i, carid)) return 0;
}
return 1;
}
Hab dich mal abboniert.
Is ne jute Sache
Kompaktere Version für gleiche Abfragen
Bsps anstatt
if(listitem == 1)
if(listitem == 2)
if(listitem == 3)
switch(listitem)
{
case 1: { /*Was soll getan werden? */} // wenn listitem == 1 ist
case 2: { /*Was soll getan werden? */} // wenn listitem == 2 ist
}