Ich wollte in mein Script so etwas aehnliches wie bei Life of German einbauen:
Es geht darum:
Wenn sich ein Fraktions Member eine Waffe aus dem Waffenlager nimmt soll dies in eine Liste eingetragen werden, mein Code sieht so aus Funktionier abert nicht:
Die Datei MUSS per Hand erstellt haben, was ich hier natuerlich getan habe.
public OnGameModeInit()
{
if(!dini_Exists("waffenlager.txt"))
{
print("waffenlager.txt ist nicht vorhanden!");
SendRconCommand("exit");
}
}
ocmd:waffenlager(playerid,params[])
{
ShowPlayerDialog(playerid,0,DIALOG_STYLE_LIST,"Waffen Lager:","Desert Eagle\nMP5\nM4A1\nSniper\nRPG 7","Nehmen","Abbrechen");
return 1;
}
Ja, ich weiss das man das mit Switch(listitem) und case(0/1/2/..):{} haette machen koennen aber wenns schnell gehe benutz ich halt die If-Abfragen
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid==0)
{
if(response!=0)
{
new iToString[5];
new String[128];
new x[5]="1000";
format(String,sizeof(String),"Fehler!");
if(listitem==0)
{
format(String,sizeof(String),"Desert Eagle!");
for(new i=0; i>1000; i++)
{
format(iToString,sizeof(iToString),"%i",i);
if(!dini_Isset(Waffenlagerfile,iToString))
{
new WaffenText[264];
format(WaffenText,264,"%s hat um %s Uhr am %s die Waffe >Desert Eagle< genommen!",GetNameOfPlayer(playerid),GetZeit(),GetDatum());
print(WaffenText);
dini_Set(Waffenlagerfile,iToString,WaffenText);
return 1;
}
if(dini_Isset(Waffenlagerfile,iToString)){return 0;}
if(dini_Isset(Waffenlagerfile,x))
{
dini_Remove(Waffenlagerfile);
dini_Create(Waffenlagerfile);
}
}
}
if(listitem==1)
{
format(String,sizeof(String),"MP5!");
}
if(listitem==2)
{
format(String,sizeof(String),"M4A1!");
}
if(listitem==3)
{
format(String,sizeof(String),"Sniper!");
}
if(listitem==4)
{
format(String,sizeof(String),"RPG 7!");
}
SendClientMessage(playerid,weiss,String);
}
else
{
SendClientMessage(playerid,weiss,"Du hast das Waffenlager verlassen.");
}
}
return 1;
}
Falls ihr noch die benutzten Stocks braucht:
stock GetNameOfPlayer(playerid)
{
new PlayerName[MAX_PLAYER_NAME];
if(IsPlayerConnected(playerid)){GetPlayerName(playerid,PlayerName,MAX_PLAYER_NAME);}
else if(!IsPlayerConnected(playerid)){format(PlayerName,sizeof(PlayerName),"Fehler!");}
return PlayerName;
}
stock GetZeit()
{
new Stunde, Minute, Sekunde;
new String[128];
gettime(Stunde,Minute,Sekunde);
format(String,sizeof(String),"%i:%i:%i",Stunde,Minute,Sekunde);
return String;
}
stock GetDatum()
{
new Jahr, Monat, Tag;
new String[128];
getdate(Jahr,Monat,Tag);
format(String,sizeof(String),"%i:%i%i",Tag,Monat,Jahr);
return String;
}