ShowPlayerDialog(playerid,4521,"Titel",string2,"Schließen","");
ist natürlich:
ShowPlayerDialog(playerid,4521, DIALOG_STYLE_MSGBOX,"Titel",string2,"Schließen","");
Hatte ich übersehen.
ShowPlayerDialog(playerid,4521,"Titel",string2,"Schließen","");
ist natürlich:
ShowPlayerDialog(playerid,4521, DIALOG_STYLE_MSGBOX,"Titel",string2,"Schließen","");
Hatte ich übersehen.
if(IsNumeric(inputtext) > 0 && IsNumeric(inputtext) < 99)
zu:
if(strval(inputtext) > 0 && strval(inputtext) < 99)
IsNumeric fragt ab ob nur numerische Ziffern vorhanden sind (Zahlen).
strval gibt den Integer Wert eines strings zurück, das brauchst du hier.
new coordsstring2[7][256],string2[7*256];
format(coordsstring2[0], sizeof(coordsstring2[]),"*** %s ***",name);
format(coordsstring2[1], sizeof(coordsstring2[]), "Level:[%d] Geschlecht:[%s] Alter:[%d] Herkunft:[%s] Spawnenergie:[%.1f] Geld:[$%d] Bank:[$%d] Ph:[%d]", level,atext,age,otext,shealth+50, cash, account, pnumber);
format(coordsstring2[2], sizeof(coordsstring2[]), "Premium Rang:[%s] Verheiratet:[%s] Spielzeit:[%d] LottoNr:[%d] Job:[%s]", drank,married,ptime,lotto,jtext);
format(coordsstring2[3], sizeof(coordsstring2[]), "FishesCaught:[%d] GrösterFisch:[%d] Verbrechen:[%d] Gefängniszeit:[%d] Gesucht:[%d]", fishes,bigfish,crimes,arrests,warrests );
format(coordsstring2[4], sizeof(coordsstring2[]), "Kills:[%d] Tode:[%d] Nächstes Level:[$%d] Respekt:[%d/%d] WantedLevel:[%d] Familie:[%s]",kills,deaths,costlevel,exp,expamount,wanted,f2text);
format(coordsstring2[5], sizeof(coordsstring2[]), "Drugs:[%d] Materials:http://forum.sa-mp.de/wcf/images/smilies/confused.png[%d] Team:[%s] Krankheit:[%s] Organisation:[%s] Rank:[%s]",drugs,mats,ttext,dtext,ftext,rtext);
format(coordsstring2[6], sizeof(coordsstring2[]), "Spielminuten seit Login: [%d] Spielminuten Insgesamt: [%d]",PlayerInfo[targetid][pMinutesSinceLogin],PlayerInfo[targetid][pGesamtMinutes]);
format(string2,sizeof(string2),"%s\n%s\n%s\n%s\n%s\n%s\n%s",coordsstring[0],coordsstring[1],coordsstring[2],coordsstring[3],coordsstring[4],coordsstring[5],coordsstring[6]);
ShowPlayerDialog(playerid,4521,"Titel",string2,"Schließen","");
Hast du das ==0 zu ==1 geändert?
Wenn ja dann füge zu OnPlayerConnect hinzu:
IstInDeagle[playerid] =0;
Das von OnPlayerDeath muss zu OnPlayerSpawn aber mit der Abfrage:
if(IstInDeagle[playerid] == 1)
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp(cmdtext, "/admins", true) == 0)
{
if(IsPlayerConnected(playerid))
{
SendClientMessage(playerid,WEIß, "______________ Admins Online ______________");
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
new sendername[MAX_PLAYER_NAME];
if(IsPlayerAnAdmin(playerid,4))
{
GetPlayerName(i, sendername, sizeof(sendername));
format(string, 256, "Administrator: %s [%d]", sendername,i);
SendClientMessage(playerid,GRAU, string);
}
else if(IsPlayerAnAdmin(playerid,3))
{
GetPlayerName(i, sendername, sizeof(sendername));
format(string, 256, "Moderator: %s [%d]", sendername,i);
SendClientMessage(playerid,GRAU, string);
}
else if(IsPlayerAnAdmin(playerid,2))
{
GetPlayerName(i, sendername, sizeof(sendername));
format(string, 256, "Communityleitung: %s [%d]", sendername,i);
SendClientMessage(playerid,GRAU, string);
}
else if(IsPlayerAnAdmin(playerid,1))
{
GetPlayerName(i, sendername, sizeof(sendername));
format(string, 256, "Supporter: %s [%d]", sendername,i);
SendClientMessage(playerid,GRAU, string);
}
}
}
}
return 1;
}
So würde das dann aussehen.
So:
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp(cmdtext, "/admins", true) == 0)
{
if(IsPlayerConnected(playerid))
{
SendClientMessage(playerid,WEIß, "______________ Admins Online ______________");
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
new sendername[MAX_PLAYER_NAME];
if(IsPlayerAnAdmin(playerid,1))
{
GetPlayerName(i, sendername, sizeof(sendername));
format(string, 256, "Supporter: %s [%d]", sendername,i);
SendClientMessage(playerid,GRAU, string);
}
if(IsPlayerAnAdmin(playerid,2))
{
GetPlayerName(i, sendername, sizeof(sendername));
format(string, 256, "Moderator: %s [%d]", sendername,i);
SendClientMessage(playerid,GRAU, string);
}
if(IsPlayerAnAdmin(playerid,3))
{
GetPlayerName(i, sendername, sizeof(sendername));
format(string, 256, "Administrator: %s [%d]", sendername,i);
SendClientMessage(playerid,GRAU, string);
}
if(IsPlayerAnAdmin(playerid,4))
{
GetPlayerName(i, sendername, sizeof(sendername));
format(string, 256, "Communityleitung: %s [%d]", sendername,i);
SendClientMessage(playerid,GRAU, string);
}
}
}
}
return 1;
}
Zitatnew sendername[MAX_PLAYER_NAME];
hat gefehlt.
Zeig doch bitte mal den ganzen Command oder die ganze Funktion und nicht nur eine Zeile. In der ist nichts falsch, der Fehler liegt woanders.
Kopieren und ganz unten enfügen.
Falls OnPlayerClickMap schon vorhanden ist, kannst einfach
SetPlayerPosFindZ(playerid, fX, fY, fZ);
in diesem Callback einfügen.
Habt ihr denn Code für denn Kommand?
#include <a_samp>
#define MAX_FLUGHAEFEN 5
#define DODO_ID 593
#define NEVADA_ID 553
#define SHAMAL_ID 519
#define BEAGLE_ID 511
new Dodo[MAX_FLUGHAEFEN];
new Shamal[MAX_FLUGHAEFEN];
new Nevada[MAX_FLUGHAEFEN];
new Beagle[MAX_FLUGHAEFEN];
new Flughafen[MAX_PLAYERS] = {-1,...};
new FlughafenNr[MAX_PLAYERS];
enum Check
{
Float:x,
Float:y,
Float:z,
Float:size
};
//Die Flughäfen
new Float:Checkpoints[5][Check] = {
{1576.9788,1391.3984,10.8483, 10.0},//lva,0
{-1364.0537,-215.1572,14.1484, 10.0},//sfa,1
{-760.1149,1994.4023,5.4734,10.0},//sherman,2
{1726.6909,-2407.4905,13.5547,10.0},//ls,3
{2866.5273,1870.2122,14.1785,10.0}//rockshore,4
};
public OnFilterScriptInit()
{
Dodo[0]=1;
Dodo[1]=1;
Dodo[2]=1;
Dodo[3]=1;
Dodo[4]=1;
Shamal[0] = 1;
Shamal[1] = 1;
Shamal[2] = 1;
Shamal[3] = 1;
Shamal[4] = 1;
Nevada[0] = 1;
Nevada[1] = 1;
Nevada[2] = 1;
Nevada[3] = 1;
Beagle[0]=1;
Beagle[1]=1;
Beagle[2]=1;
Beagle[3]=1;
Beagle[4]=1;
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if(!strcmp(cmdtext, "/work", true))
{
new vehid = GetPlayerVehicleID(playerid);
if(GetVehicleModel(vehid) != DODO_ID && GetVehicleModel(vehid) != NEVADA_ID && GetVehicleModel(vehid) != SHAMAL_ID && GetVehicleModel(vehid) != BEAGLE_ID) return SendClientMessage(playerid, 0xFF0000FF, "Error: Kein Flugzeug.");
new id = GetNearestAirport(playerid);
if(id == -1) return SendClientMessage(playerid, 0xFF0000FF, "Error: No Airports found (If you get this error use /admin to report this bug to an admin!).");
Flughafen[playerid] = id;
FlughafenNr[playerid] = 0;
DisablePlayerCheckpoint(playerid);
SetPlayerCheckpoint(playerid,Checkpoints[id][x],Checkpoints[id][y],Checkpoints[id][z],Checkpoints[id][size]);
new str[144];
format(str, sizeof(str), "Info: Flughafen %d wird angezeigt. Erlaubte Flugzeuge:", id);
SendClientMessage(playerid, 0x00FFFFFF, str);
if(Dodo[id] == 1) format(str, sizeof(str), "Dodo", str);
if(Shamal[id] == 1) format(str, sizeof(str), "%s, Shamal", str);
if(Nevada[id] == 1) format(str, sizeof(str), "%s, Nevada", str);
if(Beagle[id] == 1) format(str, sizeof(str), "%s, Beagle", str);
return SendClientMessage(playerid, 0x00FFFFFF, str);
}
return 0;
}
public OnPlayerEnterCheckpoint(playerid)
{
FlughafenNr[playerid]++;
if(FlughafenNr[playerid] == 1)
{
//kein Geld, dafür:
//Neuer Flughafen ...
new vehid = GetPlayerVehicleID(playerid);
if(GetVehicleModel(vehid) != DODO_ID && GetVehicleModel(vehid) != NEVADA_ID && GetVehicleModel(vehid) != SHAMAL_ID && GetVehicleModel(vehid) != BEAGLE_ID) return SendClientMessage(playerid, 0xFF0000FF, "Error: Kein Flugzeug.");
new id = GetNearestAirport(playerid);
if(id == -1) return SendClientMessage(playerid, 0xFF0000FF, "Error: Kein Flughafen gefunden.");
Flughafen[playerid] = id;
DisablePlayerCheckpoint(playerid);
SetPlayerCheckpoint(playerid,Checkpoints[id][x],Checkpoints[id][y],Checkpoints[id][z],Checkpoints[id][size]);
new str[144];
format(str, sizeof(str), "Info: Flughafen %d wird angezeigt. Erlaubte Flugzeuge:", id);
SendClientMessage(playerid, 0x00FFFFFF, str);
if(Dodo[id] == 1) format(str, sizeof(str), "Dodo", str);
if(Shamal[id] == 1) format(str, sizeof(str), "%s, Shamal", str);
if(Nevada[id] == 1) format(str, sizeof(str), "%s, Nevada", str);
if(Beagle[id] == 1) format(str, sizeof(str), "%s, Beagle", str);
return SendClientMessage(playerid, 0x00FFFFFF, str);
}
else
{
//Geld...und kein neuer Flughafen mehr:
FlughafenNr[playerid]=0;
Flughafen[playerid]=-1;
GivePlayerMoney(playerid,random(11000-25000)+25000);
}
return 1;
}
stock GetNearestAirport(playerid)
{
new Float:d = 2000000000.0, id = -1, veh = GetVehicleModel(GetPlayerVehicleID(playerid));
for(new i=0; i<MAX_FLUGHAEFEN; i++)
{
if(i == Flughafen[playerid]) continue;
new Float:tmp = GetPlayerDistanceFromPoint(playerid, Checkpoints[i][x],Checkpoints[i][y],Checkpoints[i][z]);
if(tmp < d)
{
if(veh == DODO_ID && Dodo[i] == 1 ||
veh == SHAMAL_ID && Shamal[i] == 1 ||
veh == BEAGLE_ID && Beagle[i] == 1 ||
veh == NEVADA_ID && Nevada[i] == 1) d = tmp, id = i;
}
}
return id;
}
Oskaar1994:
Es wird jetzt nach dem 2. Checkpoint beendet.
Kleiner Fehler repariert.
Jetzt sollte alles so sein wie du es willst.
==> Das das so war, dass er immer zwischen zweien gewechselt hat ist ja logisch. Wenn F1 zu F2 am nächsten ist, dann ist F2 auch zu F1 am nächsten, ist eben so. Das Problem hast du ja aber jetzt nicht mehr, da es nur 2 Flughäfen zum anfliegen gibt, danach ist /work vorbei.
Ich brauche alles, was mit dem Bizz System zu tun hat. Wenn du es selbst geschrieben hast, solltest du wissen was dazugehört, wenn das nicht der Fall ist, dann würde ich dir dringend davon abraten an dem Code rumzufuchteln, das wird nix.
Geht übers leider tablet schlecht. Poste einfach mal den Code hier, erkläre das Problem möglichst genau und dann schaue ich es mir morgen gegen abend an, sofern niemand anders es bereits gelöst hat.
Dann ist woanders was falsch. Aber einen array mit einem character zu deklarieren geht nicht, es müssn mindestens zwei sein.
Du solltest dann mal deine Bizz ladefunktion prüfen.
Setze es einfach mal zu 100 dann hast du einen Puffer. Du musst das natürlich hochsetzen wenn du mehr als 100 Bizz hast. Mehr definieren geht immer, mehr haben geht nicht.
Das hat er gemeint mit definiert. Setze mal die 1 zu 10 oder eben dem Wert wie viele Bizz du hast. Dann geht's.
Nein. return 1;
Deine Funktion wurde ja korrekt ausgeführt.
Oskaar1994:
#include <a_samp>
#define MAX_FLUGHAEFEN 2
#define DODO_ID 593
#define NEVADA_ID 553
#define SHAMAL_ID 519
new Dodo[MAX_FLUGHAEFEN];
new Shamal[MAX_FLUGHAEFEN];
new Nevada[MAX_FLUGHAEFEN];
new Flughafen[MAX_PLAYERS];
new FlughafenNr[MAX_PLAYERS];
enum Check
{
Float:x,
Float:y,
Float:z,
Float:size
};
//Die Flughäfen
new Float:Checkpoints[2][Check] = {
{1576.9788,1391.3984,10.8483, 10.0},
{-1364.0537,-215.1572,14.1484, 10.0}
};
public OnFilterScriptInit()
{
Dodo[0]=1;
Dodo[1]=0;
Shamal[0] = 0;
Shamal[1] = 1;
Nevada[0] = 1;
Nevada[1] = 1;
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if(!strcmp(cmdtext, "/work", true))
{
new vehid = GetPlayerVehicleID(playerid);
if(GetVehicleModel(vehid) != DODO_ID && GetVehicleModel(vehid) != NEVADA_ID && GetVehicleModel(vehid) != SHAMAL_ID) return SendClientMessage(playerid, 0xFF0000FF, "Error: Kein Flugzeug.");
new id = GetNearestAirport(playerid);
if(id == -1) return SendClientMessage(playerid, 0xFF0000FF, "Error: Kein Flughafen gefunden.");
Flughafen[playerid] = id;
FlughafenNr[playerid] = 0;
DisablePlayerCheckpoint(playerid);
SetPlayerCheckpoint(playerid,Checkpoints[id][x],Checkpoints[id][y],Checkpoints[id][z],Checkpoints[id][size]);
new str[144];
format(str, sizeof(str), "Info: Flughafen %d wird angezeigt. Erlaubte Flugzeuge:", id);
SendClientMessage(playerid, 0x00FFFFFF, str);
if(Dodo[id] == 1) format(str, sizeof(str), "Dodo", str);
if(Shamal[id] == 1) format(str, sizeof(str), "%s, Shamal", str);
if(Nevada[id] == 1) format(str, sizeof(str), "%s, Nevada", str);
return SendClientMessage(playerid, 0x00FFFFFF, str);
}
return 0;
}
public OnPlayerEnterCheckpoint(playerid)
{
FlughafenNr[playerid]++;
if(FlughafenNr[playerid] == 1)
{
//kein Geld
}
else
{
//Geld...
}
//Neuer Flughafen ...
new vehid = GetPlayerVehicleID(playerid);
if(GetVehicleModel(vehid) != DODO_ID && GetVehicleModel(vehid) != NEVADA_ID && GetVehicleModel(vehid) != SHAMAL_ID) return SendClientMessage(playerid, 0xFF0000FF, "Error: Kein Flugzeug.");
new id = GetNearestAirport(playerid);
if(id == -1) return SendClientMessage(playerid, 0xFF0000FF, "Error: Kein Flughafen gefunden.");
Flughafen[playerid] = id;
DisablePlayerCheckpoint(playerid);
SetPlayerCheckpoint(playerid,Checkpoints[id][x],Checkpoints[id][y],Checkpoints[id][z],Checkpoints[id][size]);
new str[144];
format(str, sizeof(str), "Info: Flughafen %d wird angezeigt. Erlaubte Flugzeuge:", id);
SendClientMessage(playerid, 0x00FFFFFF, str);
if(Dodo[id] == 1) format(str, sizeof(str), "Dodo", str);
if(Shamal[id] == 1) format(str, sizeof(str), "%s, Shamal", str);
if(Nevada[id] == 1) format(str, sizeof(str), "%s, Nevada", str);
return SendClientMessage(playerid, 0x00FFFFFF, str);
}
stock GetNearestAirport(playerid)
{
new Float:d = 2000000000.0, id = -1, veh = GetVehicleModel(GetPlayerVehicleID(playerid));
for(new i=0; i<MAX_FLUGHAEFEN; i++)
{
if(i == Flughafen[playerid]) continue;
new Float:tmp = GetPlayerDistanceFromPoint(playerid, Checkpoints[i][x],Checkpoints[i][y],Checkpoints[i][z]);
if(tmp < d)
{
if(veh == DODO_ID && Dodo[i] == 1 ||
veh == SHAMAL_ID && Shamal[i] == 1 ||
veh == NEVADA_ID && Nevada[i] == 1) d = tmp, id = i;
}
}
return id;
}
Jetzt hab ich dir den halben Server gemacht...anhand dessen solltest du doch nun auch selbst weiter kommen, nicht?
Ich hoffe es tut soweit.
Faszinierend. Überragend. Könnten Sie mir dies bitte etwas genauer erläutern.
Das Problem liegt darin, dass IPrototypeI es zwar richtig geschrieben hat, ABER: \ " (ohne Lücke) wird als " angezeigt. Also so würde es aussehen:
format(string,128," Deine Virtuelle Welt wurde auf \ "%d\ " gesetzt!",welt); //Lücken zwischen \ und " weg machen.
Durch den Backslash wird verhindert, dass der Compiler denkt, der Text würde dort enden.