Ich habe von den Speichersystem noch jetzt wenig Ahnung deswegen verwende ich MySQL, weil ich da schon mehr Erfahrung habe (2 Jahre)
Andere Frage, wie füge ich einen Transparenzgrad zu einem Gangzone Gebiet zu? Hab ich vergessen
Beiträge von YaBroo
-
-
Edit: Neue Frage, wie mache ich sozusagen eine "playerid" für jeden Spieler der online ist?
Jeder spieler bekommt automatisch eine ID( Identität) zugewiesen wenn er online kommt. (TAB)
-
//Sry, ich habe vergessen dir noch ne Abfrage einzubauen.
if(TodPickup[i][TodErstellt] == 0) continue;
zu
if(TodPickup[i][TodErstellt] == 0 || TodPickup[i][TodCop] == 0) continue;Somit werden nur die TodCop Pickups gewertet.
lg
-
Und wo genau hackt es nun nachdem du den CMD angepasst hast?
if(strcmp("/takedienstmarke", cmd, true) == 0)
{
if(PlayerInfo[playerid][pLeader] != 21 && PlayerInfo[playerid][pMember] != 21) return SendClientMessage(playerid,COLOR_ERRORTEXT,"Du bist kein Mitglied der Freiheitskämpfer und kannst diesen Befehl nicht nutzen.");
if(PlayerInfo[playerid][pDienstmarke] != 0) return SendClientMessage(playerid,-1,"Du trägst bereits eine Dienstmarke")
for(new i = 0; i < sizeof(TodPickup); i++)
{
if(TodPickup[i][TodErstellt] == 0) continue;
if(!IsPlayerInRangeOfPoint(playerid,3.0,TodPickup[i][TodPickupX],TodPickup[i][TodPickupY],TodPickup[i][TodPickupZ])) continue;
SendClientMessage(playerid,COLOR_YELLOW,"Du hast die Dienstmarke eines Officers erfolgreich aufgehoben");
PlayerInfo[playerid][pDienstmarke] = 1;
return 1;
}
return 1;
} -
-
Kann man Abfragen ob ein Spieler vor einer Wand/Haus steht ? Ich bin der Meinung, schonmal was davon gefunden zuhaben, aber aktuell find ich nichts mehr.
Quasi vor Objekten die du nicht selber erstellt hast?
-
Beim erstellen des Pickups fragst du dann die Fraktion ab ob der tote ein cop ist und erstellst danach dein pickup.
Die Float Koordinaten speicherst du unter OnPlayerDeath in deine Variable mit am besten der größe MAX_PLAYERS.Beim CMD gehst du wieder mit einer Schleife alle TodPickups durch und fragst dann mit deiner IsPlayerInRangeOfPoint ab ob er in der Nähe ist.
Codefor(new i = 0; i < sizeof(TodPickup); i++) { if(TodPickup[i][TodErstellt] == 0) continue; if(!IsPlayerInRangeOfPoint(playerid,3.0,TodPickup[i][TodPickupX],TodPickup[i][TodPickupY],TodPickup[i][TodPickupZ])) continue; //Was passiert wenn er in der rechtweite von einem der Pickups ist return 1; }
-
ja ist es:D Danke an alle!
Ist es eig. normal dass wenn man in der nähe der Zone ist dass manchmal das komplette radar die farbe der Zone kurz hat?
Nein, eigentlich nicht.
-
Seine Daten geben eine GZone aus die auch angezeigt wird, allerdings ist sie einfach zu klein und nur ersichtlich wenn man im Umkreis auf der Minimap ist.
-
Ich weiss ja nicht, was du mit 0 Punkt meinst, aber laut Wiki muss erst minX, minY danach maxX, maxY gesetzt werden. -1775 ist kleiner als -1710 laut Mathematik. Und ja, das Problem mit dem vertauschen hatte ich damals bei GTA United (U1-MP bzw. SA-MP 0.3b war das) einmal, daher weiss ich das. Probiers mal aus und berichte, wie sich das auswirkt. Ich teste das jetzt selber nochmal mit einem leerem GameMode. Ergebnis folgt gleich...
Ich habs nun selber ausprobiert, beides wird normal angezeigt. -
ja, weil es -1710 ist und nicht 1710 (plus)
Und ja, es spielt eine Rolle, da es sonst zu Fehlern kommt bei der Anzeige der Zone
1. Es sind beides - Werte
2. Wenn du in einem Rechteck die überliegenden Seiten vertauschst, kommt es zu Fehlern?So ein Unsinn
-
MySQL ist nur eine Speicherfunktion genauso wie Dini oder SQL.
Die Teams über #define zu definieren ist das gleiche nur in Grün aber in meinen Augen für den späteren Verlauf unübersichtlicher.
-
Mhh, das kann dann eig. nur noch daran liegen das deine Farbe evt. nicht packt.
GangZoneShowForPlayer(playerid, groovezone, 0xFFFF0096);
Die GZone müsste an der Nähe des Friseurs im SinglePlayer nähe GS Base sein. (Schau mal auf deine Karte wenn du die Änderung vorgenommen hast)
-
Hä. Sry ich komme da nicht wirklich hinterher.
Beim regulären Reallife-Scripts übergibst du den Fraktionswert beim invite. Somit hat der Spieler ab dem Moment eine Fraktionsvariable die != 0 ist.
Bei allen Fraktionsbezogenen Befehlen/Aktionen kann man dann später diese Variable Abfragen.Wenn du Sie in MySQL speichern willst brauchst du nur den Wert der Variable ausgeben und beim laden wieder aus der Datenbank in die Variable setzen.
-
Wie oben beschrieben setzt du den Wert für PLAYERID sowie du sie für PLAYERID abfragst.
-
Das ist relativ simpel.
Fraktion[MAX_PLAYERS];
Das wars schon.
Jetzt kannst du dir selber aussuchen wie viele Teams es gibt.
Teams setzt du dann soFraktion[playerid] = 1; //Setzt den Spieler in Team 1
Abfrage
if(Fraktion[playerid] == 1) // Ist Spieler im Team 1Musst dir nur selber ausdenken welches Team was ist.
Über eine Variable entscheidest & orientierst du dich letztendlich wer was ist. -
Gibt's eine alternative für OnPlayerWraponShot? Brauche diesen Callback, der wird aber bei lagcomomode 0 nicht aufgerufen..
Benutzt du alle Funktionen aus dem Callback?
-
Wie stelle ich eigentlich die LagComp offline? Mir wurde immer gesagt das geht nur wenn man einen hoster hat, ich weiß aber nicht wieso.
-
Das gute bei dem Programm als Gangzonecreater ist ja, dass man auf der Map haargenau abstimmen kann wie und wo man das will
Wenn die Koordinaten ingame und beim Programm das Selbe sind hab ich es wahrscheinlich einfach immer falsch eingebaut
Es kann sein, das manchmal die Werte fürs Script nicht richtig sortiert gespeichert werden, vermutlich war das dann immer dein Fehler das du sie nicht korrigiert hast.
Einfach merken, die kleinen Zahlen nach links, großen nach rechts.
minX,minY,maxX,maxY. Habs dir oben im Pastebin rein editiert. -
Hallo.
Besteht die Möglichkeit, Objekte in eine eingetragene Virtuelle Welt zusetzen ?Ist mit CreateDynamicObject möglich
CreateDynamicObject(modelid, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz, worldid = -1, interiorid = -1, playerid = -1, Float:streamdistance = 300.0);