Hey Leute
ich brauche mal hilfe
ich hab bisjetz 30 % des server fertig ... mysql etc.. alles dabei
Nur jetz kommt das dumme
Wie mache ich ein Backpack system
Wie zb :
if(IsItem == 100)//ZB Eine map oder etc...
Geht so etwas?
Hey Leute
ich brauche mal hilfe
ich hab bisjetz 30 % des server fertig ... mysql etc.. alles dabei
Nur jetz kommt das dumme
Wie mache ich ein Backpack system
Wie zb :
if(IsItem == 100)//ZB Eine map oder etc...
Geht so etwas?
enum pBP
{
Item1, //Map
Item2, //Toolbox
Item3, //Shovel
Item4, //Flashlight
}
new BackPack[MAX_PLAYERS][pBP];
Abfrage:
if(BackPack[playerid][Item1] > 0)
{
//Map
}
else
{
//Keine Map
}
Ahhh Danke
Also muss ich zb wenn ein Object in der nähe ist
zb abfragen ob er in pos des Items ist?
Das hat damit nichts zu tun.
Das ist nur das BackPack der einzelnen Spieler.
Würdest du jetzt Items machen wollen die rumliegen, könntest du das nach ähnlichem Prinzip machen:
#define MAX_ITEMS 5000
enum GI
{
Float:GIx,
Float:GIy,
Float:GIz,
GITyp,
GIObject
}
new GroundItem[MAX_ITEMS][GI];
Befehl zum aufsammeln von Items.
if(strcmp(cmd, "/GetItem",true)==0)
{
for(new i; i < MAX_ITEMS; i++)
{
if(IsPlayerInRangeOfPoint(playerid, 3, GroundItem[i][GIx], GroundItem[i][GIx], GroundItem[i][GIx]))
{
BackPack[playerid][GroundItem[i][GITyp]]++;
return 1;
}
}
}
Die Methode ist aber Resourcenfressend, da die Schleife die Positionen von allen Items mit deiner Position abgleicht.
Ahh Danke
frage wie mache ich jetz das wenn mann z (onplayerkeychange) ....
Naja das mit "z" hab ich schon aber wie mache ich das das dann der Backpack angezeigt wird was alles drin ist
und wie kann ich das in MySQL Speichern also die items ?
Du settest die Position als Float, die Objektid / Typ als Integer und beim laden gibst du die Daten dem Spieler?
Was ist daran so schwer
ICH MEINE DEN BACKPACK
ich will ja das mann dort sachen rausnehmen kann !
und diese item in MySQL gespeichert werden
Ungetestet, gerade erst geschrieben, aber so könnte es aussehen, das gleiche mit dem Mysql speichern.
Einfach die Anzahl von Brot in die Tabelle speichern und beim Login abrufen und setzen.//=====| Enum/ Variable |=====//
enum Backpackitems {
Wasser,
Saft,
Brot,
Benzin
};
new Backpack[MAX_PLAYERS][Backpackitems];
//=====| Befehle |=====//
ocmd:showbackpack(playerid, params[])
{
new Backpackstr[180];
if(Backpack[playerid][Wasser] > 0)
format(Backpackstr, sizeof Backpackstr, "%sWasser %d\n", Backpackstr, Backpack[playerid][Wasser]);
if(Backpack[playerid][Saft] > 0)
format(Backpackstr, sizeof Backpackstr, "%sSaft %d\n", Backpackstr, Backpack[playerid][Saft]);
if(Backpack[playerid][Brot] > 0)
format(Backpackstr, sizeof Backpackstr, "%sBrot %d\n", Backpackstr, Backpack[playerid][Brot]);
if(Backpack[playerid][Benzin] > 0)
format(Backpackstr, sizeof Backpackstr, "%sBenzin %d\n", Backpackstr, Backpack[playerid][Benzin]);
ShowPlayerDialog(playerid, diaBackpackItems, DIALOG_STYLE_LIST, "Backpack Inhalt", Backpackstr, "Okay", "Danke");
return 1;
}
ocmd:trinken(playerid, params[])
{
if(Backpack[playerid][Wasser] > 0) {
Backpack[playerid][Wasser]--;
new Float:hp;
GetPlayerHealth(playerid, hp);
SetPlayerHealth(playerid, hp+20.0);
SendClientMessage(playerid, cRed, "Du trinkst was...");
}
return 1;
}
Sorry das ich erst heute früh schreibe ;D
Das Funktioniert nicht !
Es zeigt mir nicht den Dialog an
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if(newkeys == KEY_YES)
{
new Backpackstr[500];
if(Backpack[playerid][Wasser] > 0)
{
format(Backpackstr, sizeof Backpackstr, "%sWasser %i\n", Backpackstr, Backpack[playerid][Wasser]);
}
if(Backpack[playerid][Saft] > 0)
{
format(Backpackstr, sizeof Backpackstr, "%sSaft %i\n", Backpackstr, Backpack[playerid][Saft]);
}
if(Backpack[playerid][Brot] > 0)
{
format(Backpackstr, sizeof Backpackstr, "%sBrot %i\n", Backpackstr, Backpack[playerid][Brot]);
}
if(Backpack[playerid][Benzin] > 0)
{
format(Backpackstr, sizeof Backpackstr, "%sBenzin %i\n", Backpackstr, Backpack[playerid][Benzin]);
}
ShowPlayerDialog(playerid, diaBackpackItems, DIALOG_STYLE_LIST, "Backpack Inhalt", Backpackstr, "Okay", "Danke");
}
return 1;
}
Hallo,
diaBackpackItems ist die Dialogid, die musst du davor definieren, z.B.
#define diaBackpackItems 50.
geht leider immer noch nicht