Per-Player Variablen-System (PVars)
-
-
Kann man nicht einfach VVar deffinieren, indem man GetPlayerVehicleID(Vehicleid) mit MAX_PLAYERS addiert und diesen dann im SetPVarInt einsetzt? Falls man aus irgendeinen Grund, den ich mir nicht vorstellen kann hinterher wieder die Ursprungs id braucht dann ist es VVar - MAX_PLAYERS
-
Denke nicht, da man Autos, wenn man die in ein Array mit MAX_VEHICLES erstellt, ohne einen Spieler verwenden will. Sonnst würde man ja einfach GetPlayerVehicleId nutzen.
Hast du evtl. eine Idee, bfx? Diese Optimierung würde mich auch sehr interessieren. -
ich werde in den nächsten Tag mal versuchen die Zeit zu finden & dann ein Plugin dafür zu bauen , so das man auch Fahrzeuge Dynamisch verwalten kann.
-
Außerdem kann man auch ganz einfach TextDraws in pVars speichern, ohne auch für sie ein extra Array anzulegen:
SetPVarInt(playerid, "Text", _:TextDrawCreate(0.0,0.0,"Text"));
new _:Text = GetPVarInt(playerid, "Text");
TextDrawUseBox(Text:Text,1);
TextDrawBoxColor(Text:Text,0x00000033);
TextDrawTextSize(Text:Text,217.0,60.0);
TextDrawAlignment(Text:Text,0);
TextDrawBackgroundColor(Text:Text,0x000000ff);
TextDrawFont(Text:Text,2);
TextDrawLetterSize(Text:Text,0.2,1.2);
TextDrawColor(Text:Text,0xffffffff);
TextDrawSetOutline(Text:Text,1);
TextDrawSetProportional(Text:Text,1);
TextDrawSetShadow(Text:Text,1);// und später dann:
TextDrawSetString(Text:GetPVarInt(playerid, "Text"), string);
TextDrawShowForPlayer(playerid, Text:GetPVarInt(playerid, "Text")); -
Hi,
wenn ich jetz zum Beispiel mal eine längere Abfolge von Befehlen habe in denen alle GetPVarInt mit der selben Variable vorkommt kann man GetPVarInt irgendwie in eine andere Variable einlesen
Bsp.:
new rechnung;
rechnung=(GetPVarInt(playerid,"schlagmichtot1")+GetPVarInt(playerid,"schlagmichtot2")) + 1000 / 2.563;
//dann vielleicht
SetPlayerHealth(playerid, GetPVarInt(playerid,"schlagmichtot1")*rechnung);
GivePlayerMoney(playerid,GetPVarInt(playerid,"schlagmichtot2")*rechnung);
Is jetz ein krasses und unrealistisches Beispiel .
Aber könnt ich nich irgendwie GetPVarInt(playerid,"schlagmichtot1") und GetPVarInt(playerid,"schlagmichtot2") in Variablen packen ?
Also dass ich nicht immer GetPVarInt schreibe sonder vielleicht nur schlagmichtot1.
Oder ist das kein Problem wenn ich GetPVarInt immer wieder hintereinander in jede Anweisung schreibe?
MfG JonnyMcBob -
new variable = GetPVarInt(playerid, "schlagmichtot1");
-
Aber wenn ich diese Variable wieder auf einen bestimmten Spieler beziehen will müsste ich doch wieder einen Array mit [MAX_PLAYERS] machen.
variable[playerid]=GetPVarInt(playerid,"schlagmichtot1");
Wär ja irgendwie komisch...
Also muss ich doch eigentlich schon immer GetPVarInt(playerid,"schlagmichtot1") hinschreiben?
Also:
if(GetPVarFloat(playerid,"schlagmichtot1") == 0.0)
{
SetPlayerHealth(playerid,GetPVarFloat(playerid,"schlagmichtot1"));
}
else if(GetPVarFloat(playerid,"schlagmichtot1") == 1.0)
{
SetPlayerHealth(playerid,GetPVarFloat(playerid,"schlagmichtot1")+1.0);
}
//usw.
MfG JonnyMcBob -
variable[playerid]=GetPVarInt(playerid,"schlagmichtot1"); wäre unnötig
es reicht echt immer GetPVarInt hinzuschreiben sowie deine abfragen sind passen die schon ...
-
Ich muss sagen,
dass ich einiges aus diesem Tutorial lernen konnte.Nach dem ich es mir angeschaut habe, habe ich natürlich direkt versucht, damit zu arbeiten und musste feststellen,
dass es wesentlich einfacher ist.Ausserdem ist das Tutorial Supper - Alles erklärt und sehr hilfreich.
MfG Firer
-
Danke dir
-
Ich hab mich jetzt auch mal damit befasst und hab mein Selfmade umgebaut mit PVars, ich muss sagen es ist doch sehr leicht wobei ich grade das Problem habe einen Namen zu speichern, da ja bisher nur mit bool oder integer gearbeitet wurde.
Muss man dazu SetPVarString verwenden? Bisher hab ich es so:
//GetPlayerName(...);
format(string,sizeof(string),"%s",Aname);
SetPVarString(pID,"BanVon",string);