stock Speichern(playerid)
{
new string[300],name[128];
GetPlayerName(playerid,name,128);
format(string,sizeof(string),"UPDATE `accounts` SET `Kills` = %d, `Tode` = %d WHERE `Name` = '%s'",BeispielArray[playerid][Kills], BeispielArray[playerid][Tode], Name);
mysql_query(string);
return 1;
}
Beiträge von .Gottkomplex.
-
-
public OnPlayerDeath(playerid, killerid, reason)
{
BeispielArray[playerid][Tode]++;
BeispielArray[killerid][Kills]++;
return 1;
} -
Ja, wie vorher erwähnt, algorithmisch effizienter.
Naja, da es sich jetzt für dich geklärt haben sollte, bin ich jetzt raus. -
Du meinst also jetzt, dass Switch nicht effizienter ist, weil der Aufwand viel größer sei ?LG
Du schlussfolgerst völlig falsch
Switch ist nicht effizienter, weil der Aufwand nicht (viel)weniger ist.
Aber das hier wäre wie bereits mehrmals erwähnt, eine Frage der Genauigkeit.
Denn ich vermute, wenn wir die Zeichen zählen würden, wäre Switch effizienter.
Aber da es da nur um paar Zeichen geht, ist es gar nicht wert, es effizienter zu nennen. -
Doch, aber du sagtest nicht, dass es um auf Algorithmen bezogene Effizienz geht.
Zitat von WikipediaEffizienz ist das Verhältnis zwischen einem definierten Nutzen und dem Aufwand, der zu dessen Erreichung notwendig ist.
Also um dich aufzuklären:
- Switch ist schneller.
- Switch ist NICHT effizienter.
- Nach Beurteilung der "algorithmischen Effizienz" ist Switch algorithmisch effizienter. -
Du hast es dir doch nicht mal durchgelesenGeht es dir jetzt um Effizienz oder Schnelligkeit?
-
Und wie gesagt sind es immer noch nur Meinungen. Es gibt keine Antwort, wenn wir es nicht genau nehmen.
Effizienz = weniger Aufwand = weniger Zeichen...
Von den Zeichen her, wäre Switch effizienter, denke ich. Habe nicht gezählt. -
Das kommt aus der C-Syntax und deshalb interessiert mich sicher nicht, was ein Autor der Samp-Wikipage für ne Meinung hat. Bei so etwas kann man nicht falsch liegen, es sei denn wir nehmen die Frage genau und würden jedes einzelne Zeichen zählen, das verwendet wurde.
-
Trotz allem ist es effizienter & das ist auch ziemlich wichtig.
Man sollte nicht immer nur funktional denken.LG
Wenn man es von der effizienten Seite betrachtet, ist es auch nicht so viel besser switch zu benutzen...
if(lisitem==1)
{}
else if(listitem==0)
{}
switch(listitem)
{
case 1:{
}
case 2:{
}
} -
Ich würde dir eh empfehlen bei OnDialogResponse mit switch & case zu arbeiten (zu viele If-Abfragen),
das ist übersichtlicher & effizienter.LG
Ansichtssache, was man übersichtlicher findet.
-
StrassenSound So wird die Person nur in der Tabliste farbig
Nicht ganz. Es ändert für den Spieler die Farbe eines anderen Spielers auf der Minimap.
-
if(dialogid==dBank)
{
if(response)
{
if(listitem==0)
{
ShowPlayerDialog(playerid,dBankWithdraw,DIALOG_STYLE_INPUT,"Abheben","Wieviel möchtest Du abheben?","Abheben","Abbrechen");
}
if(listitem==1)
{
ShowPlayerDialog(playerid,dBankDeposit,DIALOG_STYLE_INPUT,"Einzahlen","Wieviel möchtest Du einzahlen?","Einzahlen","Abbrechen");
}
if(listitem==2)
{
ShowPlayerDialog(playerid,dBankTransferID,DIALOG_STYLE_INPUT,"Überweisung","Wem möchtest Du etwas überweisen? \nTippe seine ID ein :","Auswählen","Abbrechen");
}
if(listitem==3)
{
new string[64];
format(string,sizeof(string),"Dein Kontostand beträgt : [%i€]",GetPVarInt(playerid,"Kontostand"));
SCM(playerid,Blau,string);
}
}
}
if(dialogid==dBankTransferID)
{
transferid=strval(inputtext);
new string[128];
if(!IsPlayerConnected(transferid)) return ERROR_OFFLINE
format(string,sizeof(string),"Kontostand : %i€\nGewähle ID : %i\nWieviel möchtest Du überweisen?",GetPVarInt(playerid,"Kontostand"),transferid);
ShowPlayerDialog(playerid,dBankTransfer,DIALOG_STYLE_INPUT,"Überweisung",string,"Überweisen","Abbrechen");
}
if(dialogid==dBankTransfer)
{
if(GetPVarInt(playerid,"Kontostand") <= strval(inputtext)) return ERROR_MONEY
new string[128],bstring[128];
format(string,sizeof(string),"[BANK] %s hat Dir %i€ überwiesen.",SpielerName(playerid),strval(inputtext));
format(bstring,sizeof(bstring),"Du hast %s erfolgreich %i€ überwiesen.",SpielerName(transferid),strval(inputtext));
SetPVarInt(playerid,"Kontostand",GetPVarInt(playerid,"Kontostand")-strval(inputtext));
SetPVarInt(transferid,"Kontostand",GetPVarInt(transferid,"Kontostand")+strval(inputtext));
SCM(transferid,Gold,string);
SCM(playerid,Blau,bstring);}
-
Probiers ma aus.
ocmd:frage(playerid,params[])
{
if(GetPVarInt(playerid,"Muted") != 0) return ERROR_MUTE
new Frage[128], string[128];
if(sscanf(params,"s",Frage)) return SCM(playerid,Rot,"Verwendung : /frage [FRAGE]");
for(new i; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(GetPVarInt(i,"Adminlevel")>=0)
{
format(string,sizeof(string),"[FRAGE] %s [ID: %i] fragt : %s",SpielerName(playerid),playerid,Frage);
SCM(i,Lila,string);
}
}
}
return 1;
} -
Also ich konnte nichts finden. Ich finde es auch sehr komisch, dass die genau 0 haben, wenn man mit GivePlayerMoney nicht Geld setzt, sondern abzieht oder dazu gibt.
Sowie ich den Code sehe, kann es nur daran liegen, dass die Miete ihrer Häuser zu hoch war. Sonst werden im gesamten Code normale Werte in GivePlayerMoney benutzt. -
... Zeig mal den Stock Stats1
-
Dann zeig mal den Stats Befehl. Vielleicht erfahre ich dann ja endlich, in welche Vars/Arrays ihr den Geldstand legt.
-
Und wo genau? In den Stats?
Ich muss wissen, was auf 0 gesetzt wurde. -
Woher weißt du, dass er den Geldstand auf 0 setzt?
-
Poste das mal bitte anständig.
Beim editieren auf Quellcode stellen und [**pwn] vor den Code und [**/pwn] hinter den Code schreiben. (Ohne die Sterne) -
Was ist welche Zeile?