danke
problem gelöst
Beiträge von Simon
-
-
Guten Tag
sobald das passwort richtig eingegeb wurde, lädt er die daten aus der .ini datei. Nun wollte ich die Ip von dem jenigen mit den Ips von den anderen vergleichen und sobald es die selben sind sollen die Admins eine Warnung bekommen, das diejenigen über die selbe Ip spielen.
for(new i = 0; i < MAX_PLAYERS; i++)
{
new pIp[20], iIp[20];
if(GetPlayerIp(i, iIp, sizeof(iIp)) == GetPlayerIp(playerid, pIp, sizeof(pIp)))
{
if(playerid != i)
{
new aname[MAX_PLAYER_NAME], bname[MAX_PLAYER_NAME],str[256];
GetPlayerName(playerid,aname,sizeof(aname));
GetPlayerName(i,bname,sizeof(bname));
format(str,sizeof(str),"[WARNUNG][MULTI] %s (%d) spielt unter der selben Ip wie %s (%d)", aname, playerid, bname, i);
for(new j = 0; j < MAX_PLAYERS; j++)
{
if(Spieler[j][Admin] >= 1)
{
SendClientMessage(j,0x0000FFFF,str);
}
}
}
}
}Diese meldung kommt aber immer wenn sich jemand einloggt, immer kommt das 2 unter der selben Ip spielen, obwohl sie es nicht tuhen.
wäre sehr nett wenn mir da jemand helfen könnte.
-
ja danke habs, klappt auch wunderbar
-
für dich, ja
für alle, nur bedingt.
die anderen müssen das dann genauso machen wie du.. -
Guten Tag
Ich bräuchte mal die hilfe bei Foats. und zwar würde ich gerne ein Float in ein integer umwandeln, da ich mit Centbeträgen rechne, aber GivePlayermoney nur ganze zahlen abzieht.
also als float habe ich folgendes:1,50.
nun möchte ich diese meinem system angepasst vom geld des spielers abziehen, und multipliziere diese mit 100.
dann habe ich folgendes: 150 ($1,50).
da aber bei Floats 1000ende 0en dahinter stehen, habe ich folgendes: 150.0000000.
nun würde ich fragen ob man so ein float iwie zu einem integer oder ähnliches machen kann, oder sie iwie aufrunden, damit es richtig vom geld abgezogen wird.
wäre sehr dankmar wenn mir da einer helfen könnte.
mfg
Simon -
Guten Tag
In meinem Taxisystem kann der Taxifahrer den Preis bestimmen(pro 10 sekunden). Also alle 10 Sekunden erhöht sich der gesammt betrag um dem festgelegten preis vom Taxifahrer, der immoment zwischen $1 und $5 liegt.
Aber da man in meinem Gm auch mit Centbeträgen rechnet, würde ich das gerne so machen das der Fahrer es auch mit Centbeträgen festlegen kann,
z.B.: 1,50 oder 1,75
dabei ist aber wichtig das es maximal 2 Nachkommastellen giebt. Ich habe das bereits mit Float versucht, die ich dann im string auf 2 komma stellen runde.
Also anstatt 2,500000000000000000 dann 2,50.
doch egal was man eingiebt, es kommt immer wieder die meldung vom sscanf.Vielleicht könnte mir da einer Helfen, wäre sehr dankbar.
dcmd_taxifahrt(playerid,params[])
{
new pID, preis;
if(gTeam[playerid] == Team_Taxi)
{
if(sscanf(params, "ud", pID, preis)) // hatte es vorher mit float, hat nicht geklappt, deswegen vorerst ganze zahlen
{
return SendClientMessage(playerid,0xFF0000FF,"Benutzung: /taxifahrt [id] [preis pro 10 Sekunden]");
}
if(!IsPlayerConnected(pID) || GetPlayerVehicleID(playerid) != GetPlayerVehicleID(pID))
{
return SendClientMessage(playerid,0xFF0000FF,"Ungültige Id!");
}
if(ptaxi[playerid] == 0) //wenn der taxifahrer nicht im dienst ist
{
return SendClientMessage(playerid,0xFF0000FF,"Du bist nicht im Dienst!");
}
if(preis < 1 || preis > 5) //hier wird festgelegt in welchem bereich der preis/10s liegen soll
{
return SendClientMessage(playerid,0xFF0000FF,"Der Preis muss zwischen $1 und $5 liegen!");
}
else
{
new aname[MAX_PLAYER_NAME], bname[MAX_PLAYER_NAME], str1[256], str2[256];
GetPlayerName(playerid,aname,sizeof(aname));
GetPlayerName(pID,bname,sizeof(bname));
format(str1,sizeof(str1),"Du hast %s eine Taxifahrt für $%d pro 10 Sekunden angeboten!", bname, preis);
format(str2,sizeof(str2),"%s hat dir eine Taxifahrt für $%d pro 10 Sekunden angeboten, du kannst sie mit */accept taxi* annehmen", aname, preis);
tID[playerid] = pID; //zur abfrage benötigt, falls der kunde /accept taxi eingibt
tpreis[pID] = preis; //hier wird der taxipreis vom spieler für den kunden festgelegt, damit er sich erhöht..
tfahrt[pID] = 1; //der spieler ist in einer taxifahrt, wird benötigt beim bezahlen.
SendClientMessage(playerid,türkis,str1);
SendClientMessage(pID,türkis,str2);
}
}
return 1;
}MfG
Simon//edit:
Ich glaube ich habe es hinbekommen, jedoch bekomme ich 2 warnings bei GivePlayerMoney, da nur ganze beträge abgezogen werde können und keine "komma-zahlen". Vielleicht könnte mir da ja einer helfen, wenn der endbetrag nun 1,50 ist, dann müssen 150 abgezogen werden. deswegen habe ich *100 dahinter geschrieben, jedoch sind immernoch komma stellen dahinter( 150,0000000000). weiß jemand wie man sowas runden kann? oder ähnliches?
wäre sehr hilfreich.
GivePlayerMoney(playerid,-tsumme[playerid]*100);
GivePlayerMoney(i,tsumme[playerid]*100); -
-
-
-
-
möchte einfach nur wissen ob man per pawn auf irgenteiner weise überprüfen kann ob ein Spieler laggt.
Laggs kommen immer wieder vor.
Aufjedenfall hatte ich schonmal auf einigen Servern häftige laggs und wurde auch vom script her gekickt, obwohl mein Ping ganz gut war.Wenn man es nicht überprüfen kann wäre meine Frage eigentlich schon beantwortet
-
-
-
-
-
Guten Tag
Ichh sitzte hier mit 2 Kollegen und wollten das Spiel F.E.A.R. zocken.
wir haben bereits ein Key von der Seite angefordert nd eingegeben.Nun wollten wir auch ein Server connecten und jedesmal kommt folgende Fehlermeldung:
"Datei konnte nicht heruntergeladen werden (FEARL_7.Arch00)"
kennt jemand dieses problem und die Lösung?
habe schon gegooglet aber nichts gefunden was mir weiterhilft..
wäre echt nett wenn uns da jemand helfen könnte..
mfg
SImon -
nene das werde ich wohl alleine schafen, danke ich werds mal eben versuchen
-
ganz schön dumme frage eigentlich so habs mal probiert mit sscanf und ich werde es gleich mal testen
danke schön
//edit: ich habs jetzt mal so gemacht, weiß aber net genau ob das richtig ist, ich habe immer noch split, aber diesmal die abfrage mit sscanf gemacht.
der fehler liegt eindeutig bei der sscanf abfrage, da es egal ist was man eingiebt..
if(dialogid == DIALOG_ÜBERWEISEN)
{
if(response)
{
new WeisInfo[2][50];
split(inputtext, WeisInfo, ' ');
if (strlen(inputtext) > 15 || strlen(inputtext) < 1)
{
SendClientMessage(playerid,0xFF000FF,"Angabe Fehler!");
new str[256], CHand, DHand, DBank;
DHand = GetPlayerMoney(playerid)/100;
CHand = GetPlayerMoney(playerid)%100;
DBank = Spieler[playerid][Bank]/100;
format(str,sizeof(str),"Wieviel Geld möchtest du an wen Überweisen?\nGebe folgendes ein: *Id Betrag*\n\nAktueller Kontostand: $%d\nBargeld: $%d,%d\n",DBank, DHand, CHand);
ShowPlayerDialog(playerid,DIALOG_ÜBERWEISEN,DIALOG_STYLE_INPUT,"Überweisen",str,"Okay","Zurück");
}
else
{
new str[50];
format(str,sizeof(str),"%s", inputtext);
if(sscanf(str, "dd", WeisInfo[0], WeisInfo[1]))
{
SendClientMessage(playerid,0xFF000FF,"Angabe Fehler!");
new gstr[256], CHand, DHand, DBank;
DHand = GetPlayerMoney(playerid)/100;
CHand = GetPlayerMoney(playerid)%100;
DBank = Spieler[playerid][Bank]/100;
format(gstr,sizeof(gstr),"Wieviel Geld möchtest du an wen Überweisen?\nGebe folgendes ein: *Id Betrag*\n\nAktueller Kontostand: $%d\nBargeld: $%d,%d\n",DBank, DHand, CHand);
ShowPlayerDialog(playerid,DIALOG_ÜBERWEISEN,DIALOG_STYLE_INPUT,"Überweisen",gstr,"Okay","Zurück");
}
else
{
if(!IsPlayerConnected(strlen(WeisInfo[0])))
{
SendClientMessage(playerid,0xFF000FF,"Ungültige Id!");
new astr[256], CHand, DHand, DBank;
DHand = GetPlayerMoney(playerid)/100;
CHand = GetPlayerMoney(playerid)%100;
DBank = Spieler[playerid][Bank]/100;
format(astr,sizeof(astr),"Wieviel Geld möchtest du an wen Überweisen?\nGebe folgendes ein: *Id Betrag*\n\nAktueller Kontostand: $%d\nBargeld: $%d,%d\n",DBank, DHand, CHand);
ShowPlayerDialog(playerid,DIALOG_ÜBERWEISEN,DIALOG_STYLE_INPUT,"Überweisen",astr,"Okay","Zurück");
}
if(Spieler[playerid][Bank] < strlen(WeisInfo[1]))
{
SendClientMessage(playerid,0xFF000FF,"Du hast nicht soviel Geld auf der Bank!");
new astr[256], CHand, DHand, DBank;
DHand = GetPlayerMoney(playerid)/100;
CHand = GetPlayerMoney(playerid)%100;
DBank = Spieler[playerid][Bank]/100;
format(astr,sizeof(astr),"Wieviel Geld möchtest du an wen Überweisen?\nGebe folgendes ein: *Id Betrag*\n\nAktueller Kontostand: $%d\nBargeld: $%d,%d\n",DBank, DHand, CHand);
ShowPlayerDialog(playerid,DIALOG_ÜBERWEISEN,DIALOG_STYLE_INPUT,"Überweisen",astr,"Okay","Zurück");
}
else
{
new strtest[256],name[MAX_PLAYER_NAME];
GetPlayerName(strval(WeisInfo[0]), name, sizeof(name));
format(strtest,256,"[TEST] Du wolltest $%d an %s (%d) überweisen!", strval(WeisInfo[1]), name, strval(WeisInfo[0]));
SendClientMessage(playerid,0x00EE00FF,strtest);
}
}
}
}
else
{
if(GetPlayerVirtualWorld(playerid) == 1)
{
ShowPlayerDialog(playerid,DIALOG_BANK,DIALOG_STYLE_LIST,"Los Santos Bank","Konto erstellen\nFinanzen\nAbheben oder Einzahlen\nÜberweisen","Weiter","Abbrechen");
}
if(GetPlayerVirtualWorld(playerid) == 2)
{
ShowPlayerDialog(playerid,DIALOG_BANK,DIALOG_STYLE_LIST,"San Fierro Bank","Konto erstellen\nFinanzen\nAbheben oder Einzahlen\nÜberweisen","Weiter","Abbrechen");
}
if(GetPlayerVirtualWorld(playerid) == 3)
{
ShowPlayerDialog(playerid,DIALOG_BANK,DIALOG_STYLE_LIST,"Las Venturas Bank","Konto erstellen\nFinanzen\nAbheben oder Einzahlen\nÜberweisen","Weiter","Abbrechen");
}
}
}
return 1;
} -
ähm ich benutzte sscanf bisher nur für dcmd.
wie würde es denn mit sscanf aussehen? das kenne ich garnicht -
ja das habe ich auch..
es klappt super und ist sehr hilfreich. also ich empfele es dir.