Hallo an alle,
ich habe ein Problem und finde keine Lösung.
Und zwar brauch ich eine Funktion, welche den Namen einens Spielers mit einer Reihe von Namen aus einer INI Datei abgleicht. Im Grunde hab ich die Funktion auch schon, doch sie funktioniert nicht.
new abc=0; //eine globale variable
stock CheckHouse(playerid)
{
new pname[24]; GetPlayerName(playerid,pname,24);
for(new i;i<MAX_HOUSES;i++)
{
if(strcmp(dini_Get("House.ini",hInfo[i][Besitzer]),pname,false)==0) abc = 1;
else abc = 0;
}
}
Die Funktion soll also ablaufen bevor geprüft wird ob ein Spieler schon eines der Objekte besitzt. In der Abfrage möchte ich dann einfach mit einer if Abfrage rausfinden ob er ein Objekt hat oder nicht.
Ich hoffe ihr versteht mein Anliegen. Solltet ihr was nich verstehn solltet, aber mir trotzem helfen wollt, fragt einfach nach
mfg
//Edit
Um es noch etwas besser auszudrücken häng ich noch den /buy befehl an, mit welchem man ein haus kaufen kann udn für welchen die funktion sein soll.
if (strcmp("/buy", cmdtext, true, 10) == 0)
{
for(new i; i<MAX_HOUSES; i++)
{
if(IsPlayerInRangeOfPoint(playerid, 3, hInfo[i][iconx], hInfo[i][icony], hInfo[i][iconz]))
{
new Pname[24]; GetPlayerName(playerid,Pname,24);
for(new S;S<MAX_HOUSES;S++)//Sollte eigentlich checken, ob schon ein Haus vorhanden ist bei diesem Spieler, geht aber nicht
{
if(strcmp(dini_Get("Besitzer.ini",hInfo[S][Hausname]), Pname))
{
SendClientMessage(playerid,weis,"Du besitzt schon ein Haus");
break;
}
}
if(hInfo[i][Gekauft] == 1) return SendClientMessage(playerid,weis,"Dieses Haus ist schon verkauft");
if(GetPlayerMoney(playerid) < hInfo[i][Preis]) return SendClientMessage(playerid,weis,"Du hast nicht genug Geld");
GivePlayerMoney(playerid, - hInfo[i][Preis]);
GameTextForPlayer(playerid, "~r~Haus gekauft!", 2000, 3);
hInfo[i][Gekauft] = 1;
GetPlayerName(playerid,Pname,24);
format(hInfo[i][Besitzer], 24, "%s", Pname);
dini_Set("Besitzer.ini", hInfo[i][Hausname], Pname);
DestroyPickup(PickupID[i]);
PickupID[i] = CreatePickup(1272,1,hInfo[i][iconx],hInfo[i][icony],hInfo[i][iconz],-1);
return 1;
}
}
SendClientMessage(playerid,weis,"Du bist nicht in der Nähe von einem Haus");
return 1;
}