Beiträge von Crank93
-
-
1. Informationen auf mehrere Strings aufteilen und jeden string einzeln formatieren.
2. die einzelenen strings in einem "großen" String speichern, indem du sie über strcat miteinander verbindest. -
hab ich oben schon geschrieben.
für adminlevel brauchst du den Typ Int
für die Fraktion (wenn du sie als String speicherst den Typ Varchar (dazu kannst du dann noch unter "Lenght eine Maximallänge angeben.)//edit: oder so wie Maddin (etwas ausführlicher ;)) beschreiben hat.
-
einfach auf "add field" klicken
-
-
wie wärs mit sscanf? (plugin)
if(!sscanf(cmdtext, "{s[10]}iii", ID, color1, color2)) -
Zitat
main()
{
return 1;
}
Und was soll das zur Fehlerbehebung beitragen?pawn_lang.pdf:
Zitat
013 no entry point (no public functions)
The file does not contain a main function or any public function.
The compiled file thereby does not have a starting point for the
execution. -
main()
{
return 1;
} -
stock isNumeric(str[]) //ysi_misc.own
{
new
ch,
i;
while ((ch = str[i++])) if (ch < '0' || ch > '9') return 0;
return 1;
}
//OnDialogResponse
if(!isNumeric(inputtext)) return SendClientMessage(playerid, 0xFFFFFFFF, "Nur Zahlen!"); -
so:
stock IsPlayerNearPlayer(playerid, nearplayerid, Float:maxdis = 5.0) // optionale entfernung von 5 || kannste auch kleiner oder größer einstellen
{
new Float:pos[3];
GetPlayerPos(playerid, pos[0], pos[1], pos[2]);
return (GetPlayerDistanceFromPoint(nearplayerid,pos[0],pos[1],pos[2]) < maxdis) ? true : false;
} -
die optimale lösung für alle, die das lästige einfügen von printf zum debuggen leid sind: Klick
-
wie ist pBannGrund definiert?
-
if(GetPlayerMoney(playerid) < 30)return SendClientMessage(playerid,0xAF0000FF,"Du hast nicht genug geld"); -
Das hier solltest du dir unbedingt durchlesen.
-
-
public AntiMoney(playerid) //hier kein semikolon
{
new string[128];
new name[MAX_PLAYER_NAME];
new sgeld = GetPlayerMoney(playerid);
GetPlayerName(playerid,name,sizeof(name));
format(string,sizeof(string),"/Spieler/%s.ini",name);
new rgeld = dini_Int(string,"Geld");
if(sgeld == rgeld)
{
}
else
{
SetPlayerMoney(playerid, rgeld);
}
//SetTimer(Antimoney, 1000, 1); ergibt hier keinen Sinn, da ein sich wiederholender Timer logischerweise nur einmal erstellt werden muss.
return 1;
}Du solltest den Timer unter OnGameModeInit packen und mit einer Schleife versehen, da du vermutlich möchtest, dass alle Spieler überprüft werden.
-
hast du auch die samp-server.exe ersetzt?
-
Die Klammern dienen nicht nur der Übersichtilichkeit, sie haben auch einen logischen Zweck:
Bsp:
#define MULTIPLIZIEREN(%0,%1) %0 * %1
//
main()
{
return printf("%d", MULTIPLIZIEREN(5+2,3));
}eigentlich sollte jetzt 21 ausgegeben werden. (7 * 3)
das ist aber nicht der Fall, denn nach dem Präprozessor sieht der code so aus:
main()
{
return printf("%d", 5+2 * 3); //ergebnis: 11 (Punkt vor Strich!)
}um solche Fehler zu vermeiden ist es sinnvoll, die makros in Klammern zu setzten, da Klammern vor der Punkt-vor-Strich Regel kommen:
#define MULTIPLIZIEREN(%0,%1) ((%0) * (%1))
//
main()
{
return printf("%d", MULTIPLIZIEREN(5+2,3)); //nach präprozessor: printf("%d", ((5+2) * (3))); ergebnis: 21
} -
Die anfrage an die datenbank wird nicht ausgeführt, weil du einen Syntaxfehler in der anfrage hast.
schau dir die log doch mal genau an, da steht sogar, wo genau du nach dem Fehler suchen musst.
-
wenn du die nummern als string speicherst, dann machs so:
stock bool: ExistCellPhoneNumber(number[])
{
for(new i; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(!strcmp(SpielerInfo[i][handynr], number, false) return true;
}
}
return false;
}