Hallo Brotfische,
Ich habe mir vorhin ein kleines Taschenrechner Script gebastelt . Leider besteht noch ein kleines Problem. Tippt man 2 2 + (Aufgabe 2+2) kommt als Ergebnis 2 raus... ist aber falsch . Leider finde ich den Fehler nicht. Ich hoffe es mann mir jemand weiterhelfen.
[spoiler='Code']
C
ocmd:rechner(playerid,params[]){
new number[2],character[1];
if(sscanf(params,"dds",number[0],number[1],character))return SCM(playerid,-1,"Verwendung: /rechner [Zahl 1] [Zahl 2] [+|-|x|/]");
if(!AllowedCharacter(character))return SCM(playerid,-1,"Fehler: Ungültiges Zeichen!");
if(strlen(character)>1)return SCM(playerid,-1,"Fehler: Ungültige Länge des Zeichens!");
Calculator(playerid,number[0],character,number[1]);
return 1;
}
stock Calculator(playerid,n1,_char[],n2){//©German_ScripterHD
new str[128],Float:result;
if(!strcmp(_char,"+",false)){
result = n1 + n2;
format(str,sizeof(str),"Aufgabe: %d + %d = %f",n1,n2,result);
}
if(!strcmp(_char,"-",false)){
result = n1 - n2;
format(str,sizeof(str),"Aufgabe: %d - %d = %f",n1,n2,result);
}
if(!strcmp(_char,"x",false)){
result = n1 * n2;
format(str,sizeof(str),"Aufgabe: %d x %d = %f",n1,n2,result);
}
if(!strcmp(_char,"/",false)){
result = n1 / n2;
format(str,sizeof(str),"Aufgabe: %d / %d = %f",n1,n2,result);
}
return SendClientMessage(playerid,-1,str);
}
stock AllowedCharacter(_char[]){//©German_ScripterHD
if(strlen(_char)<2){
if(!strcmp(_char,"+",false)){
return 1;
}
if(!strcmp(_char,"-",false)){
return 1;
}
if(!strcmp(_char,"x",false)){
return 1;
}
if(!strcmp(_char,"/",false)){
return 1;
}
return 0;
}
return 0;
}
Alles anzeigen