Wo ist das Problem?
und wie kann ich das beheben.
This may be due to a blocked port
...Naja, der Port ist blockiert, bzw wird schon genutzt...
Schließ mal Skype, ich glaub das nutzt auch den Port 80 ![]()
mfg. ![]()
Wo ist das Problem?
und wie kann ich das beheben.
This may be due to a blocked port
...Naja, der Port ist blockiert, bzw wird schon genutzt...
Schließ mal Skype, ich glaub das nutzt auch den Port 80 ![]()
mfg. ![]()
Du musst bei der 2. Seite von VALUES keine `` verwenden, sondern ' ' ![]()
(Nur INSERT INTO ... 1.Seite VALUES 2.Seite)
mfg. ![]()
Ich denke nicht das das so richtig ist
Ouh da habe ich doch glatt Leerzeichen vergessen ![]()
Ist korriegiert ![]()
Ja mehr als genaug, zuviele unnötige klammern..
Das stimmt schon mal, aber man kann noch mehr verbessern:
if(!strcmp(cmd, "/pay", true)){
new string[128];
tmp = strtok(cmdtext, idx);
if(!tmp[0])return SendClientMessage(playerid, 0xFF00C3FF, "NUTZUNG: /pay [Spieler ID / Name] [betrag]");
giveplayerid = strval(tmp),tmp = strtok(cmdtext, idx);
if(!tmp[0]) return SendClientMessage(playerid, 0xFF00C3FF, "NUTZUNG: /pay [Spieler ID / Name] [betrag]");
moneys = strval(tmp);
if(moneys > 1000 && PlayerInfo[playerid][pLevel] < 1)return SendClientMessage(playerid, 0xFF00C3FF, "Du musst mindestens Level 3 sein, um über $1000 abgeben zu können.");
if(moneys < 1 || moneys > 99999)return SendClientMessage(playerid, 0xFF00C3FF, "Der Betrag muss zwischen $1 und $99999 sein!");
if(!IsPlayerConnected(giveplayerid)) return SendClientMessage(playerid, 0xFF00C3FF, "Ein Spieler mit dieser ID ist nicht online!");
if(!ProxDetectorS(5.0, playerid, giveplayerid)) return SendClientMessage(playerid, 0xFF00C3FF, "Du musst näher an dem Spieler sein!");
GetPlayerName(giveplayerid,giveplayer,MAX_PLAYER_NAME),GetPlayerName(playerid,sendername,MAX_PLAYER_NAME),playermoney = GetPlayerMoney(playerid);
if(playermoney < moneys) return SendClientMessage(playerid, 0xFF00C3FF, "Du besitzt nicht genug Geld.");
ConsumingMoney[giveplayerid] = 1,GivePlayerMoney(playerid,-moneys),GivePlayerMoney(giveplayerid, moneys);
format(string, sizeof(string), " Du hast %s(Spieler ID: %d), $%d auf die Hand gegeben.", giveplayer,giveplayerid, moneys);
PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0),SendClientMessage(playerid, COLOR_GRAD1, string);
format(string, sizeof(string), " Du hast $%d von %s(Spieler ID: %d) auf die Hand gegeben.", moneys, sendername, playerid);
SendClientMessage(giveplayerid, COLOR_GRAD1, string);
format(string, sizeof(string), "%s hat $%d dem Spieler %s auf die Hand gegeben.", sendername, moneys, giveplayer);
PayLog(string),PlayerPlaySound(giveplayerid, 1052, 0.0, 0.0, 0.0);
if(moneys >= 1000000)return ABroadCast(COLOR_YELLOW,string,1);
format(string, sizeof(string), "* %s nimmt etwas Geld aus seiner Tasche und gibt es %s.", sendername ,giveplayer);
ProxDetector(30.0, playerid, string, 0xFF00C3FF,0xFF00C3FF,0xFF00C3FF,0xFF00C3FF,0xFF00C3FF);
return 1;
}
Zudem ist strtok so wie es im GF verwendet wird, scheiße ![]()
mfg. ![]()
Ja toll, warum soll ich die Include nutzen wenn ich mir den Name doch da sowieso schon hole ? ..
Kann ich auch als Parameter einfach Name eintragen ..
...wie gesagt, les dir meinen Beitrag doch durch den ich auf BlackAce seine Antwort geschrieben habe ![]()
Dieser Code sendet genau das selbe aus und ist ressourcen schonender, da man nicht noch alles umschreibt und mehrfach speichern muss.
Les dir mal den Post Verlauf durch
Habe dazu ja schon was geschrieben ![]()
mfg. ![]()
Kaliber, in der Zeile 'if(rows)', wo soll ich dort dann die Dialoge hinschreiben? Also wenn ein Account existiert soll sein Loginfenster kommen, wenn er ein Account hat, soll ein Registerfenster kommen
irgendwie blick ich grad nicht durch, was du gepostet hast.
Achso
Das wolltest du einfach nur...dann einfach so:
public SpielerVorhanden(playerid)
{
new rows, fields;
cache_get_data(rows, fields);
if(rows) return ShowPlayerDialog(playerid,DIALOG_EINLOGGEN,DIALOG_STYLE_PASSWORD,"login",string,"Spielen"," ");
return ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_PASSWORD,"regist",string,"Anmelden"," ");
}
mfg. ![]()
Alles anzeigenpublic SpielerVorhanden(playerid)
{
new num_rows, num_fields,string[256],string2[256],name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
cache_get_data(num_rows, num_fields, dbhandle);
if(num_fields==0){
format(string,sizeof(string),"test",name);
ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_PASSWORD,"regist",string,"Anmelden"," ");
}else{
format(string2,sizeof(string2),"test",name);
ShowPlayerDialog(playerid,DIALOG_EINLOGGEN,DIALOG_STYLE_PASSWORD,"login",string,"Spielen"," ");
}
return 1;
}
Schreib das mal so:
public SpielerVorhanden(playerid)
{
new rows, fields;
cache_get_data(rows, fields);
if(rows)
{
//Wenn der Account existiert
new fetch[11],id;
cache_get_row(0, 0, fetch), id = strval(fetch);
//fetch holt den String aus dem cache und da id ein Integer ist, muss es dann nochmal umgewandelt werden.
//Du fragst ja nur die id ab in deinem Query, deshalb sind alle anderen Felder leer, wenn du mehr abfragen würdest, machst du das einfach so:
//cache_get_row(0, 1, fetch); hier hättest du dann den nächsten Eintrag
}
return 1;
}
mfg. ![]()
Also heißt das jetzt genau, dass was in dem listitem steht wird mit info[listitem] ausgegeben`?
Ja, genau so ist es ![]()
Allerdings hat mich BlackAce gerade darüber aufgeklärt, dass inputtext...schon diese Information enthält...jedoch kann man damit ja aber auch noch mehr machen, die davor und dahinter abfragen und bei ner MSGBox den String rausholen, wenn man ihn braucht...
Mhm...ich lass es einfach mal drinnen ![]()
mfg. ![]()
Das klappt soweit, aber wie kann ich es am besten wieder abfragen unter OnDialogResponse?
Ich hab dir dazu mal ein Include geschrieben: [ INCLUDE ] Dialog Erweiterung
mfg. ![]()
Guten Abend liebe Breadfisher,
ich habe in den letzten Tagen einige Threads gelesen, dass sie den Text den sie eingeben auch beim Callback wieder abrufen wollen. Dies war leider nicht möglich, bis jetzt ![]()
Ich habe mir mal kurz die Zeit genommen und ein Include geschrieben, der das macht.
1. Wie nutze ich sie und was bringt sie jetzt genau?
Also, ich verdeutliche das mal alles an einem Beispiel:
//Irgendwo rufen wir einen Dialog auf...
ShowPlayerDialog(playerid,0,DIALOG_STYLE_LIST,"Test","Peter\nHans","Bestätigen","");
//Und dann fragen wir ab:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[], info[][]) //info[][] ist mein Zusatz-Parameter diesen nicht vergessen! Darüber werden die Sachen übergeben!
{
if(dialogid==0) {
printf("%s",info[listitem]); //Zum Beispiel so, wenn wir jetzt Peter angeklickt hätten, würde hier Peter stehen, wenn wir Hans angeklickt hätten, halt Hans
}
return 1;
}
2. Source-Code:
Source-Code: Pastebin
Direkter-Download: Mediafire
3. Schlusswort:
Ich würde mich über eine kleine Rückmeldung freuen ![]()
mfg.
#define OnDuty
#define IsACop
#define IsPlayerConnected
#define cmd
Nette Idee, aber so funktioniert das nicht ![]()
Schließlich definierst du hier nur einen Begriff, jedoch ohne Wert...bzw ohne Anweisung, IsACop, weiß doch jetzt gar nicht, was er tun soll ![]()
Du musst dir die Funktionen suchen, die du verwenden willst oder selbst schreiben und lösch das bitte alles...macht alles keinen Sinn! ![]()
mfg. ![]()
a meckert der Compiler doch bestimmt, du kannst doch keinen Codeblock ohne Kontrollstruktur einfügen.
Doch kann man ![]()
//Ob
test();
//oder
{
test();
}
//oder
{
{
test();
}
}
Das macht alles keinen Unterschied ![]()
mfg. ![]()
Ich kenne es nur so indem man den String noch in Klammern packt.
Es geht beides, macht keinen Unterschied ![]()
mfg. ![]()
Ah habs auch gesehen, jetzt kommt noch folgendes:
Schreib das mal so:
if(listitem == 0) {
new string[128],dini[15 + MAX_PLAYER_NAME],name[MAX_PLAYER_NAME],Float:health;
GetPlayerName(playerid,name,MAX_PLAYER_NAME),format(dini,sizeof dini,"/Accounts/%s.ini",name),GetPlayerHealth(playerid, health);
format(string,sizeof string,"Name: %s\nGeld: %d\nLeben: %f\nScore: %d\nAdminlevel: %d\nWarns: %d", name, GetPlayerMoney(playerid), health, GetPlayerScore(playerid), dini_Int(dini,"Admin"), dini_Int(dini,"Warns"));
ShowPlayerDialog(playerid,DIALOG_STATS,DIALOG_STYLE_MSGBOX,"Statistiken",string,"Bestätigen","");
}
mfg. ![]()
Findet ihr es echt lustig, Leute auf eurer Hompage bloß zustellen?
Wenn ihr sowas machen wollt, macht es wenigstens anonym, sprich zensiert die Namen, aber sowas ist einfach nur arm!
mfg. ![]()
fprintf(
stdout,
"int Wert1 hat folgenden Wert: %s\n",
Wert1
);
Wert1 ist kein String, in fprintf nutzt du %s, aber das geht ja nicht, da Wert1 ein Integer ist, also ändere es mal auf %i oder %d ![]()
mfg. ![]()
Schreib den Code mal so:
public minute() {
new i,string[64];
for(; i<MAX_PLAYERS; i++) {
if(!IsPlayerConnected(i) || !GetPVarInt(i,"loggedin"))continue;
SetPVarInt(i,"Paytime",GetPVarInt(i,"Paytime")+1);
if(GetPVarInt(i,"Paytime")==60) {
new paydaygeld;
switch(GetPVarInt(i,"Fraktionsrang")) {
case 0:paydaygeld = 750; //zivi
case 1:paydaygeld = 1500;// pd
case 2:paydaygeld = 1000;// gang 1
case 3:paydaygeld = 2000;// medic
case 4:paydaygeld = 1000;// gang 2
case 5:paydaygeld = 1000;// gang 3
}
//was alle 60 minuten ausgeführt werden soll
SetPVarInt(i,"Paytime",0), format(string,64,"Payday. Du erhältst %d$.",paydaygeld),SendClientMessage(i,BLAU,string);
GivePlayerMoney(i,paydaygeld), SetPlayerScore(i,GetPlayerScore(i)+1);
}
}
return 1;
}
mfg. ![]()