Hey,
ich hab jetzt ein Inventarsystem gemacht.
Es werden zahlen in 5 verschiedenen Zellen in der DB gespeichert.
Naja. Aufrufen und anzeigen funktioniert, aber wenn ich was auswähle:
Ist ein Dialog mit 5 Zeilen, 0 wäre "Leer", also kein item, 1 - Fertiggericht, 2-Zigaretten, 3-Flasche Wasser
So hab ich es bei OnDialogResponse Abgefragt:
{
switch(SpielerInfo[playerid][pItem1])
{
case 0: SendClientMessage(playerid,grau,"Du hast kein Item im Slot 1!");
case 1:
{
SendClientMessage(playerid,grau,"Du hast ein Fertiggericht zu dir genommen.");
GivePlayerHealth(playerid,50);
SpielerInfo[playerid][pItem1] = 0;
return 1;
}
case 2:
{
if(zigaretten[playerid] == 1)
{
SendClientMessage(playerid,grau,"Du hast dir deine letzte Zigarette angezündet.");
SetPlayerSpecialAction(playerid,SPECIAL_ACTION_SMOKE_CIGGY);
SpielerInfo[playerid][pZig] -= 1;
SpielerInfo[playerid][pItem2] = 0;
return 1;
}
else
{
SendClientMessage(playerid,grau,"Du hast dir eine Zigarette angezündet.");
SetPlayerSpecialAction(playerid,SPECIAL_ACTION_SMOKE_CIGGY);
SpielerInfo[playerid][pZig] -= 1;
return 1;
}
}
case 3:
{
SendClientMessage(playerid,grau,"Du hast dein Wasser getrunken.");
GivePlayerHealth(playerid,25);
SpielerInfo[playerid][pItem3] = 0;
return 1;
}
}
switch(SpielerInfo[playerid][pItem2])
{
case 0: SendClientMessage(playerid,grau,"Du hast kein Item im Slot 2!");
case 1:
{
SendClientMessage(playerid,grau,"Du hast ein Fertiggericht zu dir genommen.");
GivePlayerHealth(playerid,50);
SpielerInfo[playerid][pItem1] = 0;
return 1;
}
case 2:
{
if(zigaretten[playerid] == 1)
{
SendClientMessage(playerid,grau,"Du hast dir deine letzte Zigarette angezündet.");
SetPlayerSpecialAction(playerid,SPECIAL_ACTION_SMOKE_CIGGY);
SpielerInfo[playerid][pZig] -= 1;
SpielerInfo[playerid][pItem2] = 0;
return 1;
}
else
{
SendClientMessage(playerid,grau,"Du hast dir eine Zigarette angezündet.");
SetPlayerSpecialAction(playerid,SPECIAL_ACTION_SMOKE_CIGGY);
SpielerInfo[playerid][pZig] -= 1;
return 1;
}
}
case 3:
{
SendClientMessage(playerid,grau,"Du hast dein Wasser getrunken.");
GivePlayerHealth(playerid,25);
SpielerInfo[playerid][pItem3] = 0;
return 1;
}
}
switch(SpielerInfo[playerid][pItem3])
{
case 0: SendClientMessage(playerid,grau,"Du hast kein Item im Slot 3!");
case 1:
{
SendClientMessage(playerid,grau,"Du hast ein Fertiggericht zu dir genommen.");
GivePlayerHealth(playerid,50);
SpielerInfo[playerid][pItem1] = 0;
return 1;
}
case 2:
{
if(zigaretten[playerid] == 1)
{
SendClientMessage(playerid,grau,"Du hast dir deine letzte Zigarette angezündet.");
SetPlayerSpecialAction(playerid,SPECIAL_ACTION_SMOKE_CIGGY);
SpielerInfo[playerid][pZig] -= 1;
SpielerInfo[playerid][pItem2] = 0;
return 1;
}
else
{
SendClientMessage(playerid,grau,"Du hast dir eine Zigarette angezündet.");
SetPlayerSpecialAction(playerid,SPECIAL_ACTION_SMOKE_CIGGY);
SpielerInfo[playerid][pZig] -= 1;
return 1;
}
}
case 3:
{
SendClientMessage(playerid,grau,"Du hast dein Wasser getrunken.");
GivePlayerHealth(playerid,25);
SpielerInfo[playerid][pItem3] = 0;
return 1;
}
}
switch(SpielerInfo[playerid][pItem4])
{
case 0: SendClientMessage(playerid,grau,"Du hast kein Item im Slot 4!");
case 1:
{
SendClientMessage(playerid,grau,"Du hast ein Fertiggericht zu dir genommen.");
GivePlayerHealth(playerid,50);
SpielerInfo[playerid][pItem1] = 0;
return 1;
}
case 2:
{
if(zigaretten[playerid] == 1)
{
SendClientMessage(playerid,grau,"Du hast dir deine letzte Zigarette angezündet.");
SetPlayerSpecialAction(playerid,SPECIAL_ACTION_SMOKE_CIGGY);
SpielerInfo[playerid][pZig] -= 1;
SpielerInfo[playerid][pItem2] = 0;
return 1;
}
else
{
SendClientMessage(playerid,grau,"Du hast dir eine Zigarette angezündet.");
SetPlayerSpecialAction(playerid,SPECIAL_ACTION_SMOKE_CIGGY);
SpielerInfo[playerid][pZig] -= 1;
return 1;
}
}
case 3:
{
SendClientMessage(playerid,grau,"Du hast dein Wasser getrunken.");
GivePlayerHealth(playerid,25);
SpielerInfo[playerid][pItem3] = 0;
return 1;
}
}
switch(SpielerInfo[playerid][pItem5])
{
case 0: SendClientMessage(playerid,grau,"Du hast kein Item im Slot 5!");
case 1:
{
SendClientMessage(playerid,grau,"Du hast ein Fertiggericht zu dir genommen.");
GivePlayerHealth(playerid,50);
SpielerInfo[playerid][pItem1] = 0;
return 1;
}
case 2:
{
if(zigaretten[playerid] == 1)
{
SendClientMessage(playerid,grau,"Du hast dir deine letzte Zigarette angezündet.");
SetPlayerSpecialAction(playerid,SPECIAL_ACTION_SMOKE_CIGGY);
SpielerInfo[playerid][pZig] -= 1;
SpielerInfo[playerid][pItem2] = 0;
return 1;
}
else
{
SendClientMessage(playerid,grau,"Du hast dir eine Zigarette angezündet.");
SetPlayerSpecialAction(playerid,SPECIAL_ACTION_SMOKE_CIGGY);
SpielerInfo[playerid][pZig] -= 1;
return 1;
}
}
case 3:
{
SendClientMessage(playerid,grau,"Du hast dein Wasser getrunken.");
GivePlayerHealth(playerid,25);
SpielerInfo[playerid][pItem3] = 0;
return 1;
}
}
}
Ist ein ziemlich langer Code wenn man bedenkt das der hier gerade mal für die Zeile 1 ist. Gibt noch 4 weitere. Sehen aber alle genauso aus, da letzten Ende ja immer abgefragt wird welche Zahl in dem Fall Item1 nun hat und was danach passieren soll.
Wenn ich nun Item 1 anklicke kommt immer die Message von case 0 also das ich keins hab und es kommt - Du hast dir eine Zigarette angezündet .Egal welches Item ich anklicke. Außerdem wird es nicht auf 0 bzw. Leer gesetzt wenn ich es beutzt habe.
Woran liegt das?
- Tomsen