Gib mir die TS-Daten.^^
Beiträge von LoWtRoNiiX
-
-
Es geht nicht! v.v
Ich verzweifel. -
Ja, habe ich.
Bei dir steht bei 50: "50" und bei 100: "100.0"
Aufjedenfall geht es nicht. -
Ich habe es so:
if (strcmp("/waffen", cmdtext, true, 10) == 0)
{
if(IsPlayerInRangeOfPoint(playerid,10,295.6970,-34.9315,1001.5156))
{
ShowPlayerDialog(playerid,DIALOG_ListDialog,DIALOG_STYLE_LIST,"Ammunation Downtown","Waffen (ohne Munition)\nWaffen (mit Munition)\nSchutzwesten","Weiter","Abbrechen");
}
else
{
SendClientMessage(playerid,WEISS,"Du hast dir keine Waffen gekauft!");
}
return 1;
}Dann:
if(listitem == 2)//Was passiert wenn das erste listen item(Last Item) ausgewæhlt wird
{
ShowPlayerDialog(playerid,DIALOG_SCHUTZWESTEN,DIALOG_STYLE_LIST,"Schutzwesten","Halbe Schutzweste\nVolle Schutzweste","Kaufen","Abbrechen");
return 1;
}So hab ich das doch alles.
-
Aber es geht nicht, guck dir den Dialog an:
if(dialogid == DIALOG_SCHUTZWESTEN)//wenn SCHUTZWESTEN geöffnet ist
{
if(response == 0)//Wenn das rechte (abbruch) button angeklickt wird
{
return 1; // Diese Abfrage kann eigentlich weggelassen werden.
}
if(response == 1)//Wenn das linke (OK) button angeklickt wird
{
if(listitem == 0)//0 - Halbe Weste
{
AddArmour(playerid,50);
}
if(listitem == 1)//1 - Volle Weste
{
AddArmour(playerid,100.00);
}
} -
Hatte ich schon, geht nicht.
-
Hier der stock:
stock AddArmour(playerid, Float:armour)
{
new Float:player_Armour;
if(GetPlayerArmour(playerid, player_Armour))
{
SetPlayerArmour(playerid, player_Armour+armour);
return 1;
}
return 0;
}Hier das Waffenmenu: (Teil der Westen)
if(response == 1)//Wenn das linke (OK) button angeklickt wird
{
if(listitem == 0)//0 - Halbe Weste
{
AddArmour(playerid,50.00);
return 1;
}
if(listitem == 1)//1 - Volle Weste
{
AddArmour(playerid,100.00);
return 1;
}
} -
Dass man trotzdem kein Armour bekommt!!!!
-
Ich hatte vergessen ein "Health" in Armour umzutauschen, der stock sieht nun so aus:
stock AddArmour(playerid, Float:armour)
{
new Float:player_Armour;
if(GetPlayerArmour(playerid, player_Armour))
{
SetPlayerArmour(playerid, player_Armour+armour);
return 1;
}
return 0;
} -
Ich habe die Erros wegbekommen, aber man bekommt trotzdem kein Armour.
-
Kannst du mir das nicht oben anpassen und hier reinstellen?
-
Habe ich, dort kommen Errors. Kannst du mir das machen und reinstellen?
-
Es geht um Armour, nicht um Health.
-
Es kommt kein Error, hast du TeamSpeak 3? Dann gebe ich dir IP und wir reden kurz.
-
Auch dies geht nicht.
-
Hallo, ich habe eine kleine Frage.
Wie mache ich in diesem Code, dass die Spieler-Armour hochgeht, und nicht auf 10 gesetzt wird, sondern dass er +50 Armour bekommt.
Leider geht es so nicht.if(listitem == 0)//0 - Halbe Weste
{
new Float:armour;
GetPlayerArmour(playerid, armour);
SetPlayerArmour(playerid, armour + 50);
return 1;
}
if(listitem == 1)//1 - Volle Weste
{
new Float:armour;
GetPlayerArmour(playerid, armour);
SetPlayerArmour(playerid, armour + 100);
return 1;
} -
Komplett falsch.
Habe ich schon gesagt, soviel Ahnung habe ich ja.
Bloß mir fiel der Text nicht ein. -
if(listitem == 6)//6 - Große Pommes
{
SetPlayerHealth(playerid,+10);
return 1;
}
Das geht nicht.Zu dreamcatcher: Danke, genau das habe ich gesucht.
-
Hallo, ich habe eine kleine Frage.
Wie mache ich in diesem Code, dass die Spieler-HP hochgeht, und nicht auf 10 gesetzt wird, sondern dass er +10 HP bekommt.
if(listitem == 6)//6 - Große Pommes
{
SetPlayerHealth(playerid,10);
return 1;
} -
Hier stelle ich dir mal ein kleines von mir rein, ist leicht bearbeitbar.
Oben trägst du ein:
#include <dini>Dann definierst du die Dialoge oben:
#define DIALOG_REGISTER 1
#define DIALOG_LOGIN 2Dann machst du am Ende des Gamemode's diese stock's:
stock Register(playerid,key[])
{
new Spielerdatei[64];
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
dini_Create(Spielerdatei);
dini_Set(Spielerdatei,"Passwort",key);
SendClientMessage(playerid,WEISS,"Du hast dich erfolgreich registriert.");
SetPlayerScore(playerid,0);
SetPVarInt(playerid,"loggedin",1);
return 1;
}stock Login(playerid,key[])
{
new Spielerdatei[64];
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
if(!strcmp(key,dini_Get(Spielerdatei,"Passwort"),false))
{
LoadAccount(playerid);
SendClientMessage(playerid,WEISS,"Du hast dich erfolgreich eingeloggt.");
return 1;
}
else
{
SendClientMessage(playerid,WEISS,"Du hast ein falsches Passwort eingegeben...");
ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"LogIn","Dein Account wurde gefunden. Gib bitte das Passwort ein.","Login","Abbrechen");
return 1;
}
}stock LoadAccount(playerid)
{
new Spielerdatei[64];
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
SetPlayerScore(playerid,dini_Int(Spielerdatei,"Level"));
GivePlayerMoney(playerid,dini_Int(Spielerdatei,"Geld"));
SetPVarInt(playerid,"Adminlevel",dini_Int(Spielerdatei,"Adminlevel"));
SetPVarInt(playerid,"Fraktion",dini_Int(Spielerdatei,"Fraktion"));
SetPVarInt(playerid,"Fraktlevel",dini_Int(Spielerdatei,"Fraktlevel"));
SetPVarInt(playerid,"Leader",dini_Int(Spielerdatei,"Leader"));
SetPVarInt(playerid,"Baned",dini_Int(Spielerdatei,"Baned"));
if(GetPVarInt(playerid,"Baned")==1)
{
SendClientMessage(playerid,ROT,"Du wurdest vom Server gebannt!");
Kick(playerid);
}
SetPVarInt(playerid,"loggedin",1);
return 1;
}stock SpielerSpeichern(playerid)
{
if(GetPVarInt(playerid,"loggedin")==1)
{
new Spielerdatei[64];
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
dini_IntSet(Spielerdatei,"Level",GetPlayerScore(playerid));
dini_IntSet(Spielerdatei,"Geld",GetPlayerMoney(playerid));
dini_IntSet(Spielerdatei,"Adminlevel",GetPVarInt(playerid,"Adminlevel"));
dini_IntSet(Spielerdatei,"Fraktion",GetPVarInt(playerid,"Fraktion"));
dini_IntSet(Spielerdatei,"Fraktlevel",GetPVarInt(playerid,"Fraktlevel"));
dini_IntSet(Spielerdatei,"Leader",GetPVarInt(playerid,"Leader"));
dini_IntSet(Spielerdatei,"Baned",GetPVarInt(playerid,"Baned"));
}
return 1;
}Nun bei OnPlayerConnect das einfügen:
public OnPlayerConnect(playerid)
{
new Spielerdatei[64];
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
if(dini_Exists(Spielerdatei))
{
ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"LogIn","Dein Account wurde gefunden und geladen.\nBitte gib nun dein Passwort ein:","LogIn","Abbrechen");
}
else
{
ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Registrieren","Gib bitte dein gewünschtes Passwort ein:","Registrieren","Abbrechen");
}
return 1;
}Bei OnPlayerDisconnect dieses einfügen:
public OnPlayerDisconnect(playerid, reason)
{
if(GetPVarInt(playerid,"loggedin")==1)
{
SpielerSpeichern(playerid);
}
return 1;
}Bei OnDialogResponse dieses einfügen:
if(dialogid==DIALOG_LOGIN)
{
if(response==0)
{
SendClientMessage(playerid,WEISS,"Du hast den LogIn-Vorgang abgebrochen.");
Kick(playerid);
return 1;
}
if(response==1)
{
if(!strlen(inputtext))
{
SendClientMessage(playerid,WEISS,"Das eingegebene Passwort war leider zu kurz.");
ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"LogIn","Dein Account wurde gefunden und geladen.\nBitte gib nun dein Passwort ein:","LogIn","Abbrechen");
return 1;
}
else
{
Login(playerid,inputtext);
return 1;
}
}
}
if(dialogid==DIALOG_REGISTER)
{
if(response==0)
{
SendClientMessage(playerid,WEISS,"Du hast die Registration abgrebrochen..");
Kick(playerid);
return 1;
}
if(response==1)
{
if(!strlen(inputtext))
{
SendClientMessage(playerid,WEISS,"Das gewünschte Passwort war leider kurz...");
ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Registrieren","Gib bitte das gewünschte Passwort ein:","Registrieren","Abbrechen");
return 1;
}
else
{
Register(playerid,inputtext);
return 1;
}
}
}Das wars, nun nur noch im Scriptfiles Ordner den Order: "Accounts" erstellen.
Den Rest kannst du selber bearbeiten.Viel Spaß.