Hi Leutz,
wie kann ich einen string testen, ob er beschrieben ist?
Bitte Helft mir!
MfG
Ich
Hi Leutz,
wie kann ich einen string testen, ob er beschrieben ist?
Bitte Helft mir!
MfG
Ich
stock IsEmpty(const string[])
{
for(new text = 0; text < strlen(string; text++) {
if(string[text] != '\0') {
return false;
}
}
return true;
}
Sollte funktionieren.
// EDIT: Argh, stimmt. Danke Goldkiller.
if(strlen(string)==0)
oder
if(!strlen(string))
oder
if(string[0]==0)
oder
if(!string[0])
usw.
// Damit prüfst du ob der String leer ist.
danke an beide
ich wähle das 2. das versteh ich besser =D
Okay jetzt hat sich allerdings in meinem Script ein fehler aufgetan:
//==========================================================
new WaffenString[100], WaffeID[13], WaffeAmmo[13], String2[256];
for (new Waffe = 0; Waffe < 13; Waffe++)
{
GetPlayerWeaponData(pID, Waffe, WaffeID[Waffe], WaffeAmmo[Waffe]);
switch (WaffeID[Waffe])
{
case 0: { WaffenString = "Keine"; }
case 30: { WaffenString = "AK47"; }
case 31: { WaffenString = "M4"; }
}
if (WaffeID[Waffe] == 0)
{
}
else
{
if (strlen(String2) == 0) // Von Hier
{
format(String2, sizeof(String2), "Waffen: %s", WaffenString);
}
else
{
format(String2, sizeof(String2), "%s, %s", String2, WaffenString);
} // Bis hier her
}
}
//==========================================================
SendClientMessage(playerid, Weis, String2);
Der Server Crasht. Es muss an dem makierten absatz liegen. davor klappt alles. habs ausprobiert, indem ich dne absatz mal drausen hatte. was ist falsch?
Könnte daran liegen,dass WaffenString ein leerer String ist da du nur WaffenString einen String zuweist wenn die WaffenID 0,30 oder 31 ist aber bei allen Anderen nix,weshalb der String leer bleibt.
case 0: { WaffenString = "Keine"; }
case 30: { WaffenString = "AK47"; }
case 31: { WaffenString = "M4"; }
default : { WaffenString ="- Error -"; }
also wo ich es ausprobiert habe hatte ich nur 1 waffe oder keine also entweder ak47, m4 oda halt keine. der rest meiner slots war leer also kann des daran ja glaub net liegen oda?
Dein probelm liegt wie oben schon beschrieben wahrscheinlich an einem leeren string, sowohl bei Weaponname, als auch bei string2, welchen du bei
if (WaffeID[Waffe] == 0)
{
}
nicht setzt, nur bei "else". Wenn du einfach die Waffen anzeigen lassen willst, die ein Spieler trägt, dann probier mal sowas:
new
string[100],
weaponname[20],
weapon,
ammo;
for(new slot = 0; slot < 15; slot++)
{
GetPlayerWeaponData(playerid, slot, weapon, ammo);
if(weapon > 0 && weapon < 47 && ammo > 0)
{
GetWeaponName(weapon, weaponname, sizeof(weaponname));
format(string, sizeof(string), "Slot: %d | Waffe: %d (%d) | Munition: %d", slot, weaponname, weapon, ammo);
SendClientMessage(playerid, Weis, string);
}
}
ahh danke. ich hab einfach "if (WaffeID[Waffe] == 0)" rausgenommen. Danke an alle